:root{--ink:#0e0f14;--ink-raised:#16171f;--ink-line:#2a2c38;--paper:#f7f1e8;--paper-ink:#1a1b22;--dusk:#132a2e;--dusk-line:#2a5a58;--mint:#2f9e78;--mint-soft:#7ddec8;--coral:#e85d4c;--amber:#e8a838;--gold:#c4a574;--muted:#9a9ba8;--text:#f2f1f5;--display:"Fraunces", Georgia, serif;--body:"DM Sans", system-ui, sans-serif;font-family:var(--body);color:var(--text);background:var(--ink);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(ellipse 80% 50% at 50% -10%, #2a3a3228, transparent), radial-gradient(circle at 1px 1px, #ffffff08 1px, transparent 0), var(--ink);background-size:auto,22px 22px,auto;min-height:100dvh;margin:0}button,input{font:inherit}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:3px;box-shadow:0 0 0 6px #c4a57426}.child-shell{min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) 16px max(20px, env(safe-area-inset-bottom));place-items:center;display:grid}.phone-frame{border:1px solid var(--ink-line);background:linear-gradient(165deg, #1a1b24 0%, var(--ink-raised) 48%, #12131a 100%);border-radius:36px;flex-direction:column;gap:16px;width:min(430px,100%);min-height:min(820px,100dvh - 36px);padding:26px 20px 28px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff06,0 28px 80px #0006}.phone-frame:before{content:"";pointer-events:none;background:radial-gradient(closest-side,#c4a57418,#0000 70%);height:40%;position:absolute;inset:-20% -10% auto}.phone-frame>*{position:relative}.phone-frame.study{justify-content:flex-start;gap:14px}.phone-frame.study .flip-stage{flex:auto}.brand{color:var(--gold);letter-spacing:.22em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:700}h1{font-family:var(--display);letter-spacing:-.03em;margin:6px 0 0;font-size:clamp(2.1rem,8vw,2.7rem);font-weight:600;line-height:1.05}.lead,.empty{color:var(--muted);margin:0;line-height:1.5}.empty{text-align:center;padding:48px 16px;font-size:.88rem}.stack{gap:12px;display:grid}label{color:var(--muted);gap:6px;font-size:.78rem;font-weight:600;display:grid}input{border:1px solid var(--ink-line);width:100%;color:var(--text);background:#0c0d12;border-radius:16px;padding:14px 16px}button{cursor:pointer;border:0;border-radius:18px;padding:16px 18px;font-weight:700;transition:transform .15s,background .15s,opacity .15s}.icon{flex:none;width:1.15rem;height:1.15rem}.primary,.ghost,.text-btn,.rate-again,.rate-hard,.rate-good{justify-content:center;align-items:center;gap:10px;display:inline-flex}button:disabled{opacity:.42;cursor:not-allowed}button:not(:disabled):active{transform:scale(.97)}.primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 34px #2f9e7855}.primary{background:linear-gradient(180deg, #3bb489, var(--mint));color:#04140f;min-height:3.6rem;box-shadow:0 10px 28px #2f9e7840}.ghost:hover:not(:disabled){background:#2a2b3a;border-color:#3e4058}.ghost{color:var(--text);background:#22232e;border:1px solid #323345;min-height:3.35rem}.text-btn{color:var(--gold);background:0 0;border-radius:10px;min-height:auto;padding:6px 8px;font-size:.8rem}.home-top h1{background:linear-gradient(135deg, #fff 30%, var(--gold));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.home-top{justify-content:space-between;align-items:start;gap:12px;display:flex}.home-top-actions{align-items:center;gap:8px;display:flex}.icon-circle-btn{border:1px solid var(--ink-line);width:2.6rem;height:2.6rem;color:var(--text);cursor:pointer;background:#1e1f2b;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative;box-shadow:0 4px 12px #0003}.icon-circle-btn:hover{border-color:var(--ink-raised);background:#272838}.icon-circle-btn .icon{width:1.25rem;height:1.25rem}.settings-badge-dot{background:var(--amber);width:8px;height:8px;box-shadow:0 0 6px var(--amber);border-radius:50%;position:absolute;top:4px;right:4px}.sync-warning-card{color:#f7d8a5;background:#2b1f14;border:1px solid #e8a83855;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;padding:12px 14px;display:flex}.sync-warning-text strong{color:#fcecd2;font-size:.84rem;display:block}.sync-warning-text small{color:#d1b88e;margin-top:2px;font-size:.74rem;display:block}.sync-warning-card button{color:#fcecd2;white-space:nowrap;border-color:#e8a83866;padding:6px 12px;font-size:.78rem}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#000000b3;justify-content:center;align-items:center;padding:16px;animation:.2s backdrop-fade;display:flex;position:fixed;inset:0}@keyframes backdrop-fade{0%{opacity:0}to{opacity:1}}.settings-drawer{background:#171822;border:1px solid #2e3042;border-radius:24px;flex-direction:column;width:100%;max-width:380px;animation:.25s cubic-bezier(.16,1,.3,1) modal-pop;display:flex;overflow:hidden;box-shadow:0 20px 50px #0008}@keyframes modal-pop{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.settings-header{border-bottom:1px solid var(--ink-line);justify-content:space-between;align-items:center;padding:18px 20px 14px;display:flex}.settings-header h2{color:var(--text);margin:0;font-size:1rem;font-weight:700}.settings-header .close-icon-btn{min-height:auto;color:var(--muted);padding:4px 8px;font-size:1rem}.settings-body{flex-direction:column;gap:16px;padding:18px 20px 22px;display:flex}.settings-card{border:1px solid var(--ink-line);background:#ffffff08;border-radius:14px;gap:6px;padding:14px;font-size:.84rem;display:grid}.settings-card p{margin:0}.settings-sub{color:var(--muted);font-size:.75rem}.settings-actions{flex-direction:column;gap:10px;display:flex}.settings-actions button{justify-content:center;width:100%}.danger-text-btn,.text-btn-danger{color:#ff6b6b;background:0 0;border:1px solid #ff6b6b22;margin-top:6px;padding:12px 16px;font-size:.82rem;transition:all .15s}.danger-text-btn:hover,.text-btn-danger:hover{background:#ff6b6b12;border-color:#ff6b6b44}.section-label{border-bottom:1px solid var(--ink-line);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:16px 0 6px;padding-bottom:8px;font-size:.72rem;font-weight:700}.deck-list{gap:12px;padding-bottom:72px;display:grid}.deck-card{text-align:left;color:inherit;background:linear-gradient(145deg,#1f2030,#181926);border:1px solid #2e3042;border-radius:22px;align-items:center;gap:14px;min-height:5.5rem;padding:18px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;box-shadow:0 12px 28px #00000040}.deck-card:hover{border-color:#3e4058;transform:translateY(-2px);box-shadow:0 16px 36px #0005}.deck-card:active{transform:translateY(0)scale(.98)}.deck-card-mark{width:2.9rem;height:2.9rem;color:var(--mint-soft);background:#14313080;border:1px solid #2a5a5866;border-radius:16px;flex:none;place-items:center;display:grid}.deck-card-mark .icon{width:1.4rem;height:1.4rem}.deck-card-body{min-width:0}.deck-card-go{color:var(--muted);margin-left:auto}.deck-card strong{font-family:var(--display);letter-spacing:-.02em;font-size:1.35rem;font-weight:600;display:block}.deck-card small{color:var(--muted);margin-top:8px;font-size:.78rem;font-weight:500;display:block}.study-top{gap:10px;display:grid}.study-meta{justify-content:space-between;align-items:center;gap:12px;display:flex}.study-meta-left{align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.study-exit-btn{border:1px solid var(--ink-line);min-height:auto;color:var(--muted);cursor:pointer;background:#ffffff0d;border-radius:8px;flex-shrink:0;align-items:center;gap:4px;padding:4px 8px;font-size:.72rem;font-weight:600;transition:all .15s;display:inline-flex}.study-exit-btn:hover{color:var(--text);background:#ffffff1f;border-color:#4b4d63}.study-exit-btn .icon{width:.9rem;height:.9rem}.study-deck{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.72rem;font-weight:700;overflow:hidden}.progress{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:.82rem;font-weight:600}.progress-track{background:#2a2c38;border-radius:999px;height:5px;overflow:hidden}.progress-fill{border-radius:inherit;background:linear-gradient(90deg, var(--gold), var(--mint-soft));height:100%;transition:width .35s cubic-bezier(.4,.1,.2,1);box-shadow:0 0 8px #c4a5744d}.flip-stage{perspective:1600px;flex:auto;width:100%;min-height:min(52dvh,26rem);max-height:28rem;position:relative}.flip-inner{transform-style:preserve-3d;will-change:transform;transition:transform .65s;position:absolute;inset:0}.flip-inner.is-flipped{transform:rotateY(180deg)}.flip-face{backface-visibility:hidden;text-align:center;border-radius:28px;flex-direction:column;justify-content:space-between;align-items:center;gap:14px;padding:22px 20px 24px;transition:box-shadow .3s;display:flex;position:absolute;inset:0;overflow:hidden;container-type:inline-size}.flip-face-front{backface-visibility:hidden;background:linear-gradient(160deg, #fffaf2 0%, var(--paper) 55%, #efe6d8 100%);color:var(--paper-ink);border:1px solid #e4d8c4;transform:rotateY(0)translateZ(1px);box-shadow:inset 0 2px #fffb,0 24px 60px #0004,0 0 0 1px #c4a57415}.flip-face-back{backface-visibility:hidden;background:linear-gradient(165deg, #1a3a3c 0%, var(--dusk) 55%, #0f2224 100%);color:#f4fffc;border:1.5px solid var(--dusk-line);transform:rotateY(180deg)translateZ(1px);box-shadow:0 24px 60px #0a202488,0 0 50px #2f9e7818}.flip-inner.is-flipped .flip-face-front,.flip-inner:not(.is-flipped) .flip-face-back{visibility:hidden;pointer-events:none;transition:visibility 0s linear .3s}.flip-face-front:after{content:"";pointer-events:none;border:1px dashed #c4a57455;border-radius:20px;position:absolute;inset:12px}.flip-face-back:after{content:"";pointer-events:none;border:1px dashed #7ddec833;border-radius:20px;position:absolute;inset:12px}.face-body{scrollbar-width:none;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:14px;width:100%;min-height:0;display:flex;overflow:auto}.face-body::-webkit-scrollbar{display:none}.face-ornament{opacity:.5;display:block}.face-ornament .icon{width:1.4rem;height:1.4rem}.flip-face-front .face-ornament{color:#b39a74}.flip-face-back .face-ornament{color:var(--mint-soft)}.face-label{letter-spacing:.18em;text-transform:uppercase;border-radius:999px;align-items:center;gap:8px;margin:0;padding:7px 14px;font-size:.68rem;font-weight:700;display:inline-flex}.face-label .icon{width:1rem;height:1rem}.flip-face-front .face-label{color:#7a6f5f;background:#ffffff8c;border:1px solid #e0d3bd}.flip-face-back .face-label{color:var(--mint-soft);background:#0f272980;border:1px solid #2a5a5899}.word-hero{font-family:var(--display);letter-spacing:-.02em;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;margin:0;font-size:clamp(2rem,19cqi,3.5rem);font-weight:700;line-height:1.1}.meaning-hero{font-family:var(--display);color:var(--mint-soft);overflow-wrap:anywhere;margin:0;font-size:clamp(1.4rem,12cqi,2.2rem);font-weight:600;line-height:1.25}.hero-md{font-size:clamp(1.6rem,13cqi,2.5rem)}.hero-sm{font-size:clamp(1.35rem,9.5cqi,1.95rem);line-height:1.22}.hero-xs{font-size:clamp(1.1rem,7cqi,1.5rem);line-height:1.35}.listen-prompt{font-family:var(--display);letter-spacing:-.02em;color:#8a7d6b;margin:0;font-size:clamp(2rem,19cqi,3.5rem);font-weight:700;line-height:1.1}.card-figure{object-fit:contain;border-radius:16px;max-width:min(100%,220px);max-height:160px;margin:0 auto .75rem;display:block}.child-instruction{letter-spacing:.04em;text-transform:uppercase;color:var(--gold);margin:0 0 .6rem;font-size:.92rem;font-weight:700}.text-hint-btn{color:var(--gold);cursor:pointer;background:#d4a01733;border:0;border-radius:999px;margin-top:.75rem;padding:.45rem .9rem;font-weight:700}.text-hint-body,.explanation-body,.typed-vs-expected{margin:.75rem 0 0;font-size:.95rem;line-height:1.35}.text-hint-body{color:var(--gold)}.explanation-body{color:var(--mint-soft)}.typed-vs-expected{color:var(--muted)}.front-input-form{width:100%;margin:0}.front-input{width:100%;min-height:1.15em;color:var(--paper-ink);text-align:center;text-transform:uppercase;caret-color:#9a7340;background:0 0;border:0;border-radius:0;padding:0;display:block}.front-input::placeholder{color:#b7a58a;text-transform:uppercase;opacity:1}.front-input:focus{outline:none}.typed-retry{color:var(--coral);margin:.5rem 0 0;font-weight:700}.typed-ok{color:var(--mint-soft);margin:.5rem 0 0;font-weight:700}.listening-dot{background:var(--coral);border-radius:50%;width:10px;height:10px;animation:1.2s ease-out infinite pulse-dot;box-shadow:0 0 #e85d4c66}@keyframes pulse-dot{0%{box-shadow:0 0 #e85d4c66}70%{box-shadow:0 0 0 14px #e85d4c00}to{box-shadow:0 0 #e85d4c00}}.study-actions{gap:10px;margin-top:auto;display:grid}.rate-row button{flex-direction:column;gap:6px;padding:12px 8px;font-size:.84rem}.rate-row .icon{width:1.4rem;height:1.4rem}.rate-again{color:#ffb4ab;background:#3a1f22;border:1px solid #5c3034;min-height:3.6rem}.rate-hard{color:#ffd78a;background:#3a3018;border:1px solid #5c4a22;min-height:3.6rem}.rate-good{background:linear-gradient(180deg, #3bb489, var(--mint));color:#04140f;min-height:3.6rem;box-shadow:0 10px 24px #2f9e7840}.toast{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:max-content;max-width:340px;color:var(--muted);background:#1e1f2bf2;border:1px solid #323345;border-radius:999px;margin:0;padding:8px 16px;font-size:.75rem;animation:.3s toast-slide-up;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}@keyframes toast-slide-up{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.caption{color:var(--muted);margin:0;font-size:.8rem}.rewards-panel{background:linear-gradient(145deg,#1f2030,#181926);border:1px solid #2e3042;border-radius:22px;gap:12px;padding:18px;display:grid;box-shadow:0 12px 28px #00000040}.rewards-balance{font-family:var(--display);color:var(--mint-soft);letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.55rem;font-weight:600;display:flex}.rewards-balance .icon{width:1.5rem;height:1.5rem}.rewards-list{gap:10px;display:grid}.reward-row{grid-template-columns:1fr auto;align-items:center;gap:10px;display:grid}.reward-row strong,.reward-row small{display:block}.reward-row small{color:var(--muted);margin-top:4px;font-size:.75rem}.reward-row .ghost{width:auto;min-height:2.75rem;padding:10px 14px}.face-header{z-index:2;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex;position:relative}.face-audio-btn{color:#5c503f;cursor:pointer;background:#fffa;border:1px solid #d9ccb4;border-radius:999px;place-items:center;width:2.4rem;height:2.4rem;padding:0;transition:transform .15s,background .15s;display:grid;box-shadow:0 2px 6px #00000014}.face-audio-btn:hover{transform:scale(1.08)}.face-audio-btn .icon{width:1.2rem;height:1.2rem}.flip-face-back .face-audio-btn{color:var(--mint-soft);background:#0f2729a0;border:1px solid #2a5a5899}.voice-feedback-card{text-align:left;border:1.5px solid;border-radius:20px;gap:6px;padding:14px 16px;animation:.25s fade-in-up;display:grid;box-shadow:0 4px 16px #0003}@keyframes fade-in-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.voice-feedback-card.is-great{color:var(--mint-soft);background:#143130b0;border-color:#2a5a58}.voice-feedback-card.is-good{color:var(--amber);background:#332810b0;border-color:#73531b}.voice-feedback-card.is-retry{color:#f7a199;background:#361715b0;border-color:#732a24}.voice-feedback-header{justify-content:space-between;align-items:center;font-size:.95rem;font-weight:700;display:flex}.voice-feedback-spoken{color:var(--text);opacity:.95;font-size:.84rem}.done-frame{text-align:center;flex-direction:column;align-items:center;gap:14px;display:flex;position:relative}.done-trophy-wrapper{background:radial-gradient(circle,#f5d48544 0%,#c4a57411 70%);border:1.5px solid #e8a83866;border-radius:50%;justify-content:center;align-items:center;width:6rem;height:6rem;margin-top:6px;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;position:relative;box-shadow:0 0 50px #e8a83844,0 0 100px #e8a83822}.done-trophy-wrapper .icon{width:3.2rem;height:3.2rem;color:var(--amber);animation:2s ease-in-out infinite trophy-bounce}@keyframes trophy-bounce{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-5px)scale(1.05)}}.done-stats-grid{grid-template-columns:repeat(2,1fr);gap:10px;width:100%;margin:4px 0;display:grid}.stat-tile{border:1px solid var(--ink-line);text-align:center;background:#ffffff0a;border-radius:18px;flex-direction:column;gap:4px;padding:12px 14px;transition:transform .2s;display:flex}.stat-tile:hover{transform:translateY(-2px)}.stat-val{font-family:var(--display);font-size:1.65rem;font-weight:700;line-height:1}.stat-val.good{color:var(--mint-soft)}.stat-val.gold{color:var(--gold)}.stat-val.amber{color:var(--amber)}.stat-lbl{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:600}.done-coins-card{background:linear-gradient(145deg,#2b2413 0%,#1c180e 100%);border:1.5px solid #e8a83866;border-radius:20px;justify-content:space-between;align-items:center;width:100%;padding:14px 18px;display:flex;box-shadow:0 8px 24px #e8a83822}.done-coins-card strong{font-family:var(--display);color:#ffdf85;align-items:center;gap:8px;font-size:1.4rem;display:flex}.done-coins-card small{color:#c4a574;font-size:.78rem;font-weight:600}.confetti-container{pointer-events:none;z-index:10;position:absolute;inset:0;overflow:hidden}.confetti-dot{opacity:.85;border-radius:3px;width:10px;height:14px;animation:linear infinite forwards fall;position:absolute;top:-12px}@keyframes fall{0%{opacity:1;transform:translateY(-12px)rotate(0)}to{opacity:0;transform:translateY(700px)rotate(720deg)}}.deck-badge{border-radius:8px;margin-top:4px;padding:3px 8px;font-size:.7rem;font-weight:700;display:inline-block}.deck-badge.is-due{color:var(--amber);background:#e8a83826;border:1px solid #e8a8384d}.deck-badge.is-free{color:var(--mint-soft);background:#2f9e7822;border:1px solid #2f9e7844}.done-finish-btn{width:100%;margin-top:6px;transition:all .2s cubic-bezier(.16,1,.3,1)}.voice-alert{color:#f7d8a5;text-align:left;background:#2b1f14;border:1px solid #e8a83855;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding:10px 14px;font-size:.82rem;line-height:1.35;display:flex}.voice-alert button{color:#f7d8a5;flex-shrink:0;padding:4px 8px;font-size:.75rem}@media (prefers-reduced-motion:reduce){.flip-inner{transition:none}.listening-dot{animation:none}.progress-fill,button{transition:none}.done-trophy-wrapper .icon{animation:none}.confetti-piece{animation:none;display:none}.voice-feedback-card{animation:none}}@media (width<=480px){.phone-frame{width:100%;min-height:100dvh;box-shadow:none;border:0;border-radius:0}.child-shell{padding:0}.flip-stage{min-height:min(48dvh,24rem)}}.floating-coins-pill{z-index:20;color:#ffcf40;cursor:pointer;background:linear-gradient(145deg,#2b2718,#1c1a10);border:1px solid #ffcf4073;border-radius:9999px;align-items:center;gap:8px;padding:10px 16px;font-size:.95rem;font-weight:700;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;position:absolute;bottom:24px;right:20px;box-shadow:0 8px 24px #0000008c,0 0 16px #ffcf4033}.floating-coins-pill:hover{border-color:#ffcf40bf;transform:translateY(-2px)scale(1.04);box-shadow:0 12px 28px #000000a6,0 0 20px #ffcf404d}.floating-coins-pill:active{transform:translateY(0)scale(.97)}.floating-coins-pill .coins-pill-icon{justify-content:center;align-items:center;width:1.3rem;height:1.3rem;display:flex}.floating-coins-pill .coins-pill-icon svg,.floating-coins-pill .icon{color:#ffcf40;width:1.3rem;height:1.3rem}.floating-coins-pill .coins-pill-count{font-family:var(--display);font-size:1.15rem;line-height:1}.floating-coins-pill .coins-pill-label{color:#d1b87a;text-transform:lowercase;font-size:.78rem;font-weight:600}.floating-coins-pill .coins-pill-status{color:var(--muted);text-transform:uppercase;background:#ffffff1a;border-radius:6px;padding:2px 6px;font-size:.65rem}.rewards-drawer-balance{border:1px solid var(--ink-line);background:#ffffff08;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.rewards-drawer-catalog{flex-direction:column;gap:10px;display:flex}.face-header-actions{align-items:center;gap:8px;display:flex}.card-help-chip{color:#7a6a50;cursor:pointer;background:#fffd;border:1px solid #d9ccb4;border-radius:999px;align-items:center;gap:5px;padding:5px 11px;font-size:.72rem;font-weight:700;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 2px 6px #0000000f}.card-help-chip:hover{background:#fff;border-color:#c4a574;transform:translateY(-1px)}.card-help-chip .icon{width:.95rem;height:.95rem}.card-help-chip.is-active{color:#b45309;cursor:default;background:#fef3c7;border-color:#f59e0b;box-shadow:0 0 10px #f59e0b4d}.card-help-chip:disabled{cursor:default}.listening-visualizer{flex-direction:column;justify-content:center;align-items:center;gap:10px;margin:8px 0;animation:.3s fade-in-up;display:flex}.soundwave-anim{align-items:center;gap:5px;height:32px;display:flex}.sw-bar{background:linear-gradient(#f59e0b,#e85d4c);border-radius:999px;width:5px;animation:.8s ease-in-out infinite alternate soundwave-jump}.sw-bar.b1{height:12px;animation-delay:.1s}.sw-bar.b2{height:26px;animation-delay:.3s}.sw-bar.b3{height:32px;animation-delay:0s}.sw-bar.b4{height:22px;animation-delay:.4s}.sw-bar.b5{height:14px;animation-delay:.2s}@keyframes soundwave-jump{0%{transform:scaleY(.35)}to{transform:scaleY(1.15)}}.listening-subtext{color:#c43e2f;margin:0;font-size:.88rem;font-weight:600;animation:1.5s ease-in-out infinite pulse-soft}@keyframes pulse-soft{0%,to{opacity:.85}50%{opacity:1;transform:scale(1.02)}}.mic-action-group{gap:10px;width:100%;display:grid}.hero-speech-btn{color:#fff;cursor:pointer;text-align:left;background:linear-gradient(135deg,#7c5cfc 0%,#5d3ce6 100%);border:1.5px solid #ffffff26;border-radius:22px;justify-content:center;align-items:center;gap:14px;width:100%;min-height:4.2rem;padding:14px 20px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden;box-shadow:0 10px 28px #5d3ce659}.hero-speech-btn:hover:not(:disabled){transform:translateY(-2px)scale(1.01);box-shadow:0 14px 34px #5d3ce673}.hero-speech-btn:active:not(:disabled){transform:translateY(0)scale(.98)}.hero-speech-btn .mic-btn-icon{background:#ffffff2e;border-radius:50%;flex-shrink:0;place-items:center;width:2.8rem;height:2.8rem;display:grid}.hero-speech-btn .mic-btn-icon .icon{width:1.4rem;height:1.4rem}.hero-speech-btn .mic-btn-label{flex-direction:column;flex:1;gap:2px;display:flex}.hero-speech-btn .mic-btn-label strong{letter-spacing:-.01em;font-size:1.05rem;font-weight:700}.hero-speech-btn .mic-btn-label small{opacity:.85;font-size:.78rem}.hero-speech-btn.is-recording{background:linear-gradient(135deg,#f43f5e 0%,#e11d48 100%);border-color:#ffffff4d;animation:1.8s ease-in-out infinite btn-breathing;box-shadow:0 12px 32px #e11d4873}@keyframes btn-breathing{0%,to{box-shadow:0 10px 28px #e11d4866}50%{box-shadow:0 14px 40px #e11d48b3}}.hero-speech-btn .mic-btn-icon.is-stop{color:#e11d48;background:#fff;font-size:1.2rem;font-weight:900}.pulse-ripple-ring{pointer-events:none;border:2px solid #fff9;border-radius:50%;width:2.8rem;height:2.8rem;animation:1.5s cubic-bezier(.25,1,.5,1) infinite ripple-out;position:absolute;top:50%;left:20px;transform:translateY(-50%)}.pulse-ripple-ring.r2{animation-delay:.75s}@keyframes ripple-out{0%{opacity:.8;transform:translateY(-50%)scale(1)}to{opacity:0;transform:translateY(-50%)scale(2.4)}}.subtle-mic-btn{border:1px solid var(--ink-line);color:var(--text);cursor:pointer;background:#ffffff0d;border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-size:.85rem;font-weight:600;transition:all .15s;display:flex}.subtle-mic-btn:hover:not(:disabled){background:#ffffff1a;border-color:#4b4d63}.subtle-mic-btn.is-recording{color:#fff;background:#e11d48;border-color:#f43f5e}.reveal-action-group{flex-direction:column;gap:10px;width:100%;display:flex}.hero-reveal-btn{background:linear-gradient(135deg,#7c5cfc 0%,#5d3ce6 100%);border-radius:20px;min-height:4rem;font-size:1.05rem;font-weight:700;box-shadow:0 10px 26px #5d3ce659}.subtle-link-btn{color:var(--muted);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:8px 12px;font-size:.82rem;text-decoration:underline;transition:color .15s}.subtle-link-btn:hover{color:var(--text)}.btn-continue-gate,.btn-continue-speech{background:linear-gradient(135deg,#10b981 0%,#059669 100%);border-radius:20px;min-height:3.8rem;font-size:1.05rem;font-weight:700;box-shadow:0 10px 26px #10b98159}.speech-unpassed-row{flex-direction:column;gap:10px;width:100%;display:flex}.skip-speech-btn{width:100%;min-height:3.2rem;color:var(--muted);font-size:.92rem;font-weight:650}.rate-container{flex-direction:column;gap:10px;width:100%;display:flex}.rate-container .primary,.rate-container .ghost{width:100%}.rate-prompt{text-align:center;color:var(--muted);letter-spacing:.02em;margin:0;font-size:.85rem;font-weight:600}.rate-row{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.rate-btn{cursor:pointer;text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:4.6rem;padding:10px 6px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.rate-btn:hover{transform:translateY(-2px)}.rate-btn:active{transform:translateY(0)scale(.96)}.rate-btn .icon{width:1.5rem;height:1.5rem}.rate-btn strong{font-size:.92rem;font-weight:700;line-height:1.2;display:block}.rate-btn small{opacity:.85;font-size:.7rem;display:block}.rate-btn.rate-good:hover{box-shadow:0 12px 28px #16654f80}.rate-btn.rate-hard:hover{box-shadow:0 12px 28px #71551c66}.rate-btn.rate-again:hover{box-shadow:0 12px 28px #6b242a66}.rate-btn.rate-again{color:#fda4af;background:linear-gradient(160deg,#3d1b1f 0%,#291214 100%);border:1.5px solid #6b242a;box-shadow:0 8px 20px #6b242a40}.rate-btn.rate-hard{color:#fde047;background:linear-gradient(160deg,#3d2f13 0%,#291e0a 100%);border:1.5px solid #71551c;box-shadow:0 8px 20px #71551c40}.rate-btn.rate-good{color:#6ee7b7;background:linear-gradient(160deg,#0f4435 0%,#08291f 100%);border:1.5px solid #16654f;box-shadow:0 8px 20px #16654f59}.pair-frame{text-align:center;align-items:center;padding:36px 24px}.pair-hero-icon{color:#a78bfa;background:linear-gradient(145deg,#2a253d,#1c182c);border:1px solid #4a3e6f;border-radius:28px;place-items:center;width:5.5rem;height:5.5rem;margin-bottom:8px;display:grid;position:relative;box-shadow:0 14px 40px #00000080,0 0 30px #a78bfa26}.pair-hero-icon .icon{width:2.8rem;height:2.8rem}.pair-sparkle-badge{font-size:1.2rem;position:absolute;top:-6px;right:-6px}.pin-input-group{flex-direction:column;gap:8px;width:100%;margin:12px 0 6px;display:flex}.pin-input-group label{color:var(--muted);text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-size:.85rem;font-weight:600}.pin-input{text-align:center;font-family:var(--display);letter-spacing:.35em;color:#f3f0f7;background:#101118;border:2px solid #3b374d;border-radius:20px;padding:16px 12px;font-size:2.2rem;font-weight:800;transition:all .2s;box-shadow:inset 0 4px 14px #0000004d}.pin-input:focus{border-color:#8b5cf6;box-shadow:0 0 0 4px #8b5cf640,inset 0 4px 14px #0000004d}.pair-submit-btn{background:linear-gradient(135deg,#7c5cfc 0%,#5d3ce6 100%);border-radius:20px;min-height:3.8rem;margin-top:6px;font-size:1.05rem;font-weight:700;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 12px 30px #5d3ce666}.pair-submit-btn:hover{transform:translateY(-2px);box-shadow:0 16px 38px #5d3ce680}.pair-advanced-toggle{margin-top:10px}.ghost-link{color:var(--muted);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;font-size:.78rem;text-decoration:underline}.ghost-link:hover{color:var(--text)}.pair-advanced-field{text-align:left;color:var(--muted);flex-direction:column;gap:6px;margin-top:8px;font-size:.8rem;display:flex}.pair-advanced-field input{padding:10px 12px;font-size:.82rem}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:48px 24px;display:flex}.empty-state .icon{width:2.4rem;height:2.4rem;color:var(--ink-line);opacity:.6}.empty-state .empty{color:var(--muted);font-size:.92rem}.empty-state .caption{color:var(--muted);opacity:.7;font-size:.78rem}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--ink-line);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}*{scrollbar-width:thin;scrollbar-color:var(--ink-line) transparent}
