@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@500;700&family=Nunito:ital,wght@0,400;0,600;0,700;1,600&display=swap'); :root { --paper: #faf3e6; --paper-2: #fffdf7; --ink: #4b3b6b; --ink-soft: #6b4f8c; --rust: #c9622f; --mustard: #e8b84b; --sage: #a8d5bA; --rose: #e8a0bf; --line: #d9c9a8; --radius: 14px; --shadow: 0 6px 18px rgba(75, 59, 107, 0.14); } * { box-sizing: border-box; } html, body { margin: 0; min-height: 100%; background: var(--paper); background-image: radial-gradient(circle at 8% 12%, rgba(232, 160, 191, 0.14), transparent 38%), radial-gradient(circle at 92% 88%, rgba(168, 213, 186, 0.16), transparent 42%); color: var(--ink); font-family: 'Nunito', sans-serif; font-size: 16px; line-height: 1.5; } h1, h2, h3, .display { font-family: 'Caveat', cursive; color: var(--ink-soft); font-weight: 700; margin: 0 0 0.3em; letter-spacing: 0.2px; } h1 { font-size: 2.6rem; } h2 { font-size: 1.9rem; } h3 { font-size: 1.5rem; } a { color: var(--rust); } button, .btn { font-family: 'Nunito', sans-serif; font-weight: 700; border: none; border-radius: 999px; padding: 0.65em 1.4em; cursor: pointer; background: var(--ink-soft); color: #fff; box-shadow: var(--shadow); transition: transform 0.12s ease, box-shadow 0.12s ease; } button:hover, .btn:hover { transform: translateY(-1px); } button:active, .btn:active { transform: translateY(0); } button:disabled { opacity: 0.55; cursor: not-allowed; transform: none; } button.secondary { background: #fff; color: var(--ink-soft); border: 2px solid var(--ink-soft); box-shadow: none; } button.danger { background: var(--rust); } button.ghost { background: transparent; color: var(--ink-soft); box-shadow: none; padding: 0.4em 0.8em; } input[type="text"], input[type="password"], textarea, select { font-family: 'Nunito', sans-serif; font-size: 1rem; padding: 0.6em 0.8em; border: 2px solid var(--line); border-radius: 10px; background: var(--paper-2); color: var(--ink); width: 100%; } textarea { resize: vertical; min-height: 5em; } input:focus, textarea:focus, select:focus, button:focus-visible { outline: 3px solid var(--rose); outline-offset: 1px; } label { font-weight: 700; font-size: 0.85rem; display: block; margin-bottom: 0.3em; color: var(--ink-soft); } .card { background: var(--paper-2); border-radius: var(--radius); box-shadow: var(--shadow); padding: 1.4em; } .tape { position: absolute; width: 60px; height: 22px; background: rgba(232, 184, 75, 0.55); box-shadow: 0 1px 2px rgba(0,0,0,0.08); } .error-msg { background: #fce8e8; color: #a33; border-radius: 10px; padding: 0.6em 1em; font-weight: 600; font-size: 0.9rem; } .muted { color: #9a8fb0; font-style: italic; } .top-bar { display: flex; align-items: center; justify-content: space-between; padding: 1em 1.5em; flex-wrap: wrap; gap: 0.6em; } .container { max-width: 980px; margin: 0 auto; padding: 1em 1.2em 4em; } @media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }