:root{--cream:#fff6e9;--cream-2:#ffefd9;--card:#fff;--ink:#1b1238;--ink-soft:#4f4566;--ink-mute:#8b82a0;--line:#e9e3d6;--coral:#ff5a5f;--coral-deep:#d63c42;--butter:#ffc93c;--butter-deep:#ce9c13;--mint:#3dd8b6;--mint-deep:#19a085;--violet:#7c5cff;--violet-deep:#4f33c7;--sky:#5ec0ff;--sky-deep:#2f88c9;--r-pill:999px;--r-card:24px;--r-chip:16px;--r-input:18px;--shadow-card:0 8px 0 -2px rgba(27,18,56,.06),0 24px 40px -20px rgba(27,18,56,.18);--shadow-soft:0 1px 0 0 rgba(27,18,56,.04),0 8px 24px -10px rgba(27,18,56,.12)}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100vh}body{font-family:Nunito,system-ui,sans-serif;color:var(--ink);background:var(--cream)}#app{min-height:100vh}a{text-decoration:none;color:inherit}button{font-family:inherit}.btn{font-family:Fredoka,Nunito,sans-serif;font-weight:600;font-size:18px;letter-spacing:.01em;border:none;cursor:pointer;border-radius:var(--r-pill);padding:14px 28px;display:inline-flex;align-items:center;justify-content:center;gap:10px;color:var(--ink);position:relative;transition:transform .08s ease;text-decoration:none}.btn:active:not(:disabled){transform:translateY(2px)}.btn:disabled{cursor:not-allowed;opacity:.55;filter:saturate(.6)}.btn-coral{background:var(--coral);color:#fff;box-shadow:0 5px 0 0 var(--coral-deep),0 12px 18px -8px rgba(255,90,95,.45)}.btn-butter{background:var(--butter);color:var(--ink);box-shadow:0 5px 0 0 var(--butter-deep)}.btn-mint{background:var(--mint);color:#06342b;box-shadow:0 5px 0 0 var(--mint-deep)}.btn-violet{background:var(--violet);color:#fff;box-shadow:0 5px 0 0 var(--violet-deep)}.btn-ghost{background:#fff;color:var(--ink);box-shadow:0 5px 0 0 #e5dec9,inset 0 0 0 2px var(--line)}.btn-lg{font-size:22px;padding:18px 36px}.btn-sm{font-size:15px;padding:10px 18px}.btn-xl{font-size:26px;padding:22px 48px}.tabs{gap:10px;padding:6px;background:rgba(27,18,56,.06);border-radius:var(--r-pill)}.tab,.tabs{display:inline-flex}.tab{font-family:Fredoka,sans-serif;font-weight:500;font-size:16px;border:none;background:transparent;color:var(--ink-soft);padding:10px 22px;border-radius:var(--r-pill);cursor:pointer;align-items:center;gap:8px;text-decoration:none}.tab.active{background:#fff;color:var(--ink);box-shadow:0 2px 0 0 rgba(27,18,56,.08),0 1px 0 0 rgba(0,0,0,.04)}.card{background:var(--card);border-radius:var(--r-card);box-shadow:var(--shadow-card);border:1.5px solid #f1e8d4}.display{font-weight:600;letter-spacing:-.01em;line-height:1.05;color:var(--ink);margin:0}.display,.eyebrow{font-family:Fredoka,sans-serif}.eyebrow{font-weight:500;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--coral)}.bg-cream{background:radial-gradient(circle at 20% 10%,rgba(255,201,60,.18),transparent 40%),radial-gradient(circle at 80% 90%,rgba(124,92,255,.12),transparent 45%),radial-gradient(circle at 60% 20%,rgba(61,216,182,.1),transparent 35%),var(--cream)}.bg-dots{background-image:radial-gradient(rgba(27,18,56,.08) 1.4px,transparent 0);background-size:22px 22px;background-color:var(--cream)}.input{font-family:Nunito,sans-serif;font-weight:700;font-size:20px;color:var(--ink);background:#fff;border:2px solid var(--line);border-radius:var(--r-input);padding:16px 22px;width:100%;outline:none;box-shadow:inset 0 -3px 0 0 rgba(27,18,56,.04)}.input::-moz-placeholder{color:var(--ink-mute);font-weight:600}.input::placeholder{color:var(--ink-mute);font-weight:600}.input:focus{border-color:var(--coral)}.letter-row{gap:10px;flex-wrap:wrap}.letter,.letter-row{display:flex;justify-content:center}.letter{width:48px;height:56px;background:#fff;border:2px solid var(--line);border-radius:14px;align-items:center;font-family:Fredoka,sans-serif;font-weight:600;font-size:26px;color:var(--ink);box-shadow:0 3px 0 0 #e5dec9;text-transform:uppercase}.letter.blank{color:var(--ink-mute);background:#fffbf1}.letter.revealed{background:#fff3d6;border-color:var(--butter);box-shadow:0 3px 0 0 var(--butter-deep)}.letter.solved{background:var(--mint);color:#06342b;border-color:var(--mint-deep);box-shadow:0 3px 0 0 var(--mint-deep)}.chip{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:#fff;border-radius:999px;box-shadow:0 3px 0 0 #e5dec9,inset 0 0 0 1.5px #f1e8d4;font-family:Fredoka,sans-serif;font-weight:500;font-size:15px;color:var(--ink)}.chip-accent{color:var(--coral)}.silhouette{filter:brightness(0);width:100%;height:100%;-o-object-fit:contain;object-fit:contain}