:root{color-scheme:light;--bg: #f3ede2;--bg-tint: #eee6d8;--surface: #fbf7f0;--surface-2: #f6f0e6;--surface-3: #ede5d7;--border: #e3d9c8;--border-strong: #d2c5b0;--text: #2b251e;--text-2: #4b4237;--muted: #74695b;--faint: #a39684;--accent: #5b5bd6;--accent-strong: #4b4bc4;--accent-soft: #ebe6f4;--accent-text: #4141b5;--on-accent: #ffffff;--ok: #17a34a;--ok-soft: #e4efdc;--ok-text: #11803a;--err: #e5484d;--err-soft: #f8e3dc;--err-text: #c62f35;--warn: #f59e0b;--warn-soft: #f9ecd3;--warn-text: #a86500;--flame: #ff6a1a;--flame-soft: #f9e6d6;--gold: #e0a100;--heat-0: #e9e0d1;--heat-1: #c9c9f6;--heat-2: #9d9cef;--heat-3: #7271e3;--heat-4: #4b4bc4;--shadow-sm: 0 1px 2px rgba(61, 44, 22, .07);--shadow: 0 1px 2px rgba(61, 44, 22, .06), 0 4px 16px rgba(61, 44, 22, .07);--shadow-lg: 0 10px 40px rgba(61, 44, 22, .16);--ring: 0 0 0 3px rgba(91, 91, 214, .28);--overlay: rgba(34, 26, 16, .42);--radius-sm: 10px;--radius: 14px;--radius-lg: 20px;--radius-xl: 28px;--sidebar-w: 248px;--content-w: 760px;--topbar-h: 60px;--tabbar-h: 64px;--ease: cubic-bezier(.2, .7, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);font-family:Inter,Segoe UI Variable Text,Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}:root[data-theme=dark]{color-scheme:dark;--bg: #0e1016;--bg-tint: #12141c;--surface: #161922;--surface-2: #1b1f2a;--surface-3: #232836;--border: #262b38;--border-strong: #353b4c;--text: #eceef4;--text-2: #c8ccd8;--muted: #959bad;--faint: #6b7184;--accent: #8484f4;--accent-strong: #9a9af7;--accent-soft: #23243f;--accent-text: #aeaefa;--on-accent: #0e1016;--ok: #3dd07a;--ok-soft: #13291d;--ok-text: #5fe093;--err: #ff6b70;--err-soft: #2e1618;--err-text: #ff8c90;--warn: #ffb53d;--warn-soft: #2d2311;--warn-text: #ffc566;--flame: #ff8a3d;--flame-soft: #2e1d12;--gold: #ffcc4d;--heat-0: #1e2230;--heat-1: #2f3165;--heat-2: #48499c;--heat-3: #6667d4;--heat-4: #9a9af7;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 20px rgba(0, 0, 0, .28);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .5);--ring: 0 0 0 3px rgba(132, 132, 244, .35);--overlay: rgba(4, 5, 10, .6)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--bg);color:var(--text);transition:background .25s ease,color .25s ease;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable=true]{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{-webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin:0}::selection{background:var(--accent-soft);color:var(--accent-text)}:focus-visible{outline:none;box-shadow:var(--ring)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.shell{min-height:100vh;display:flex}.sidebar{position:sticky;top:0;height:100vh;width:var(--sidebar-w);flex-shrink:0;display:flex;flex-direction:column;gap:4px;padding:20px 14px;border-right:1px solid var(--border);background:var(--surface)}.brand{display:flex;align-items:center;gap:10px;padding:6px 10px 18px;font-weight:750;font-size:1.15rem;letter-spacing:-.01em}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,var(--accent) 0%,#9b6cf0 100%);color:#fff;font-size:1rem;font-weight:800;box-shadow:0 4px 14px #5b5bd659}.nav{display:flex;flex-direction:column;gap:2px}.nav-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--text-2);font-weight:550;font-size:.95rem;transition:background .15s ease,color .15s ease}.nav-link svg{width:20px;height:20px;flex-shrink:0;opacity:.85}.nav-link:hover{background:var(--surface-2);color:var(--text)}.nav-link.active{background:var(--accent-soft);color:var(--accent-text)}.nav-link.active svg{opacity:1}.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px;padding:12px 6px 0;border-top:1px solid var(--border)}.user-chip{display:flex;align-items:center;gap:10px;padding:8px 6px;border-radius:var(--radius-sm)}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);font-weight:700;flex-shrink:0}.user-chip-name{font-weight:600;font-size:.92rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip-sub{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:.8rem}.shell-body{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;height:var(--topbar-h);display:flex;align-items:center;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color .2s ease}.topbar.scrolled{border-bottom-color:var(--border)}.topbar-inner{width:100%;max-width:calc(var(--content-w) + 48px);margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:10px}.topbar-title{flex:1;min-width:0;font-weight:650;font-size:.98rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.topbar-brand{display:none}.topbar-actions{display:flex;align-items:center;gap:6px}.main{flex:1;width:100%;max-width:calc(var(--content-w) + 48px);margin:0 auto;padding:8px 24px 64px}.page{animation:page-in .32s var(--ease) both}.shell:not(.shell-focus) .page{--stage-step: 70ms;animation:none}.page>*>*{--stage: 6}.page>*>:nth-child(1){--stage: 0}.page>*>:nth-child(2){--stage: 1}.page>*>:nth-child(3){--stage: 2}.page>*>:nth-child(4){--stage: 3}.page>*>:nth-child(5){--stage: 4}.page>*>:nth-child(6){--stage: 5}.shell:not(.shell-focus) .page>:not(.skeleton-page,.loading)>*{animation:stage-in .45s var(--ease) backwards;animation-delay:calc(var(--stage) * var(--stage-step))}.shell:not(.shell-focus) .page>:not(.skeleton-page,.loading)>:has(.tile,.continue-card,.theory-section,.help-block,.ach,.lang-card,.choice-card){animation-name:fade-in}.shell:not(.shell-focus) .page>:is(.skeleton-page,.loading){animation:fade-in .3s ease .3s backwards}.shell:not(.shell-focus) .page[data-after-skeleton]>:not(.skeleton-page,.loading)>*,.shell:not(.shell-focus) .page[data-after-skeleton] :is(.tile,.continue-card,.theory-section,.help-block,.ach,.lang-card,.choice-card){animation-name:settle-in}.shell:not(.shell-focus) .page[data-after-skeleton]>:not(.skeleton-page,.loading)>:has(.tile,.continue-card,.theory-section,.help-block,.ach,.lang-card,.choice-card){animation:none}.tabbar,.shell-focus .sidebar,.shell-focus .tabbar{display:none}.shell-focus .main{max-width:680px}@media(max-width:960px){.sidebar{display:none}.topbar-brand{display:flex}.topbar-inner,.main{padding-left:16px;padding-right:16px}.main{padding-bottom:calc(var(--tabbar-h) + 32px + env(safe-area-inset-bottom))}.shell-focus .main{padding-bottom:40px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-top:1px solid var(--border)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:.7rem;font-weight:600;transition:color .15s ease}.tab svg{width:22px;height:22px}.tab.active{color:var(--accent-text)}}.stack{display:flex;flex-direction:column;gap:12px}.stack-lg{display:flex;flex-direction:column;gap:24px}.stack-sm{display:flex;flex-direction:column;gap:8px}.row{display:flex;align-items:center;gap:10px}.row-wrap{display:flex;flex-wrap:wrap;gap:10px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.spacer{flex:1}.center{text-align:center}.page-head{display:flex;flex-direction:column;gap:6px;margin:12px 0 22px}.page-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.eyebrow{color:var(--accent-text);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.page-title{font-size:clamp(1.55rem,3.2vw,2rem);font-weight:750;letter-spacing:-.02em;line-height:1.15}.page-sub{color:var(--muted);font-size:.98rem;max-width:60ch}.section{display:flex;flex-direction:column;gap:12px;margin-top:28px}.section:first-child{margin-top:0}.section-title{font-size:.82rem;font-weight:700;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:.86rem}.prose{white-space:pre-wrap;line-height:1.65;color:var(--text-2)}.prose strong,.prose b{color:var(--text)}.error{color:var(--err-text);font-size:.95rem}.hint{font-size:.86rem;color:var(--muted)}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;border:1px solid transparent;border-radius:var(--radius);background:var(--accent);color:var(--on-accent);font-weight:650;font-size:.97rem;line-height:1.2;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .12s var(--ease),box-shadow .15s ease,opacity .15s ease}.btn:hover:not(:disabled){background:var(--accent-strong)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:18px;height:18px;flex-shrink:0}.btn-block{width:100%}.btn-lg{min-height:54px;padding:0 26px;font-size:1.02rem;border-radius:var(--radius-lg)}.btn-sm,.btn-compact{min-height:36px;padding:0 14px;font-size:.88rem;border-radius:var(--radius-sm)}.btn-secondary{background:var(--surface);border-color:var(--border);color:var(--text);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.btn-soft{background:var(--accent-soft);color:var(--accent-text)}.btn-soft:hover:not(:disabled){background:color-mix(in srgb,var(--accent-soft) 70%,var(--accent) 30%);color:var(--accent-text)}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.btn-danger{background:var(--err);color:#fff}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--err) 85%,#000)}.btn-danger-soft{background:var(--err-soft);color:var(--err-text)}.btn-danger-soft:hover:not(:disabled){background:color-mix(in srgb,var(--err-soft) 75%,var(--err) 25%)}.btn-icon{width:40px;min-width:40px;min-height:40px;height:40px;padding:0;border-radius:12px}.btn-icon svg{width:20px;height:20px}.btn-icon.btn-sm{width:34px;min-width:34px;min-height:34px;height:34px}.btn-icon.btn-sm svg{width:17px;height:17px}.btn.is-loading{color:transparent!important}.btn.is-loading:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;border:2px solid currentColor;border-color:var(--on-accent) var(--on-accent) transparent transparent;animation:spin .7s linear infinite}.btn-secondary.is-loading:after,.btn-ghost.is-loading:after,.btn-soft.is-loading:after{border-color:var(--accent) var(--accent) transparent transparent}.btn-row{display:flex;flex-wrap:wrap;gap:10px}.btn-row>.btn{flex:1 1 180px}.header-icon{width:20px;height:20px}.card{position:relative;display:flex;flex-direction:column;gap:8px;padding:20px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text);text-align:left}.card-pad-lg{padding:28px}.card-title{font-weight:700;font-size:1.05rem;letter-spacing:-.01em}.card-meta{color:var(--muted);font-size:.9rem}.card-hero{overflow:hidden;background:radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--accent) 22%,transparent) 0%,transparent 55%),var(--surface)}.clickable{cursor:pointer;transition:border-color .15s ease,box-shadow .2s ease,transform .2s var(--ease),background .15s ease}.clickable:hover:not(:disabled):not(.locked){border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.clickable:active:not(:disabled):not(.locked){transform:translateY(0) scale(.99)}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.tile-grid.cols-2{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.tile{position:relative;display:flex;flex-direction:column;gap:10px;min-height:112px;padding:18px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .2s ease,transform .2s var(--ease);animation:rise-in .36s var(--ease) both}.tile:hover:not(:disabled):not(.locked){border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.tile:active:not(:disabled):not(.locked){transform:translateY(0) scale(.99)}.tile.locked{cursor:pointer;background:var(--surface-2)}.tile.locked .tile-title{color:var(--muted)}.tile.done{border-color:color-mix(in srgb,var(--ok) 35%,var(--border))}.tile-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.tile-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--accent-soft);color:var(--accent-text);font-size:1.25rem;flex-shrink:0}.tile-icon svg{width:22px;height:22px}.tile-title{font-weight:680;font-size:1rem;line-height:1.3;letter-spacing:-.005em}.tile-meta{margin-top:auto;color:var(--muted);font-size:.85rem}.tile-badge{flex-shrink:0}.tone-violet .tile-icon{background:#efe9fe;color:#7445d6}.tone-blue .tile-icon{background:#e6f0ff;color:#2f6bd6}.tone-green .tile-icon{background:#e4f7ec;color:#158a45}.tone-orange .tile-icon{background:#fff0e3;color:#d4620f}.tone-pink .tile-icon{background:#fde8f1;color:#c73a79}.tone-teal .tile-icon{background:#e1f6f5;color:#0f8a85}.tone-gray .tile-icon{background:var(--surface-3);color:var(--text-2)}:root[data-theme=dark] .tone-violet .tile-icon{background:#2b2347;color:#b89cff}:root[data-theme=dark] .tone-blue .tile-icon{background:#1c2a45;color:#86b2ff}:root[data-theme=dark] .tone-green .tile-icon{background:#16301f;color:#6fdc98}:root[data-theme=dark] .tone-orange .tile-icon{background:#362212;color:#ffa45c}:root[data-theme=dark] .tone-pink .tile-icon{background:#3a1c2a;color:#ff8fc0}:root[data-theme=dark] .tone-teal .tile-icon{background:#12302f;color:#5fd8d2}.list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.list-row{display:flex;align-items:center;gap:14px;width:100%;min-height:60px;padding:12px 18px;border:0;border-bottom:1px solid var(--border);background:transparent;text-align:left;transition:background .12s ease}.list-row:last-child{border-bottom:0}button.list-row,a.list-row{cursor:pointer}button.list-row:hover:not(:disabled),a.list-row:hover{background:var(--surface-2)}.list-row.locked .list-title{color:var(--muted)}.list-lead{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--surface-3);color:var(--text-2);font-weight:700;font-size:.92rem;flex-shrink:0}.list-lead.ok{background:var(--ok-soft);color:var(--ok-text)}.list-lead.accent{background:var(--accent-soft);color:var(--accent-text)}.list-lead svg{width:19px;height:19px}.list-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.list-title{font-weight:600;line-height:1.3}.list-sub{color:var(--muted);font-size:.86rem}.list-end{display:flex;align-items:center;gap:8px;color:var(--muted);flex-shrink:0}.list-end svg.chev{width:18px;height:18px;color:var(--faint)}.badge{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:999px;background:var(--surface-3);color:var(--text-2);font-size:.76rem;font-weight:700;white-space:nowrap}.badge svg{width:13px;height:13px}.badge-accent{background:var(--accent-soft);color:var(--accent-text)}.badge-ok{background:var(--ok-soft);color:var(--ok-text)}.badge-warn{background:var(--warn-soft);color:var(--warn-text)}.badge-err{background:var(--err-soft);color:var(--err-text)}.badge-flame{background:var(--flame-soft);color:var(--flame)}.badge-lock{background:var(--surface-3);color:var(--muted)}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-weight:600;font-size:.92rem;cursor:pointer;transition:all .15s ease}.chip:hover:not(:disabled){border-color:var(--border-strong);color:var(--text)}.chip.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.chip:disabled{opacity:.5;cursor:not-allowed}.chip-row .btn{flex:1;min-width:64px}kbd,.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:6px;border:1px solid var(--border-strong);border-bottom-width:2px;background:var(--surface-2);color:var(--text-2);font:600 .74rem/1 ui-monospace,SF Mono,Consolas,monospace}.cmd{display:inline-block;padding:1px 7px;border-radius:7px;background:var(--accent-soft);color:var(--accent-text);font:600 .88em/1.5 ui-monospace,SF Mono,Consolas,monospace;white-space:nowrap}.notice{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);font-size:.95rem;white-space:pre-wrap;animation:rise-in .3s var(--ease) both}.notice>svg{width:20px;height:20px;margin-top:1px;flex-shrink:0}.notice-info{background:var(--accent-soft);border-color:transparent;color:var(--accent-text)}.notice-ok{background:var(--ok-soft);border-color:transparent;color:var(--ok-text)}.notice-warn{background:var(--warn-soft);border-color:transparent;color:var(--warn-text)}.notice-err{background:var(--err-soft);border-color:transparent;color:var(--err-text)}.banner,.toast-banner{padding:14px 16px;border-radius:var(--radius);background:var(--accent-soft);color:var(--accent-text);white-space:pre-wrap}.progress{position:relative;height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden}.progress-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent) 0%,#9b6cf0 100%);transition:width .5s var(--ease)}.progress.ok .progress-bar{background:var(--ok)}.progress.flame .progress-bar{background:linear-gradient(90deg,#ffb13d 0%,var(--flame) 100%)}.progress-sm{height:5px}.ring{position:relative;display:grid;place-items:center;flex-shrink:0}.ring svg{transform:rotate(-90deg)}.ring-track{stroke:var(--surface-3)}.ring-value{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .8s var(--ease)}.ring.ok .ring-value{stroke:var(--ok)}.ring.flame .ring-value{stroke:var(--flame)}.ring-label{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-weight:750;letter-spacing:-.02em}.field{display:flex;flex-direction:column;gap:8px}.field label,.field-label{font-size:.9rem;font-weight:600;color:var(--text-2)}.input{width:100%;min-height:48px;padding:12px 16px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.input::placeholder{color:var(--faint)}.input:focus{border-color:var(--accent);box-shadow:var(--ring)}.input:disabled{opacity:.6}.textarea{min-height:200px;resize:vertical;line-height:1.55;font-family:ui-monospace,SF Mono,Consolas,Liberation Mono,monospace;font-size:.92rem}.switch{position:relative;display:inline-flex;width:46px;height:28px;flex-shrink:0;border-radius:999px;border:0;background:var(--border-strong);cursor:pointer;transition:background .2s ease}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .22s var(--ease-spring)}.switch.on{background:var(--accent)}.switch.on:after{transform:translate(18px)}.switch:disabled{opacity:.5}.segmented{display:inline-flex;padding:4px;gap:4px;border-radius:14px;background:var(--surface-3)}.segmented button{min-height:34px;padding:0 14px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-weight:650;font-size:.88rem;cursor:pointer;transition:all .15s ease}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.loading,.empty{padding:48px 0;color:var(--muted);text-align:center}.empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:44px 20px;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);color:var(--muted);text-align:center}.empty-state .empty-icon{font-size:2rem}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg,var(--surface-3) 0%,var(--surface-2) 50%,var(--surface-3) 100%);background-size:200% 100%;animation:shimmer 1.3s ease-in-out infinite}.skeleton-page{display:flex;flex-direction:column;gap:14px;padding-top:18px}.spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--surface-3);border-top-color:var(--accent);animation:spin .8s linear infinite}.pair-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.pair-list>li{display:flex;align-items:center;gap:14px;padding:13px 18px;border-bottom:1px solid var(--border);animation:fade-in .3s var(--ease) both}.pair-list>li:last-child{border-bottom:none}.pair-list .word{flex:0 1 44%;font-weight:650;color:var(--text);overflow-wrap:anywhere}.pair-list .translation{flex:1;color:var(--text-2);text-align:right;overflow-wrap:anywhere}.pair-audio{flex-shrink:0;display:inline-grid;place-items:center;width:32px;height:32px;margin:-6px -8px -6px 0;padding:0;border:0;border-radius:10px;background:transparent;color:var(--faint);cursor:pointer;transition:color .15s ease,background .15s ease,transform .15s ease}.pair-audio svg{width:17px;height:17px}.pair-audio:hover:not(:disabled){color:var(--accent-text);background:var(--accent-soft)}.pair-audio:active:not(:disabled){transform:scale(.92)}.pair-audio.playing{color:var(--accent);background:var(--accent-soft)}.pair-audio.missing{opacity:.45}.pair-audio:disabled{cursor:progress}.pair-list-hybrid .pair-entry.expanded{display:grid;grid-template-columns:1fr auto;align-items:start;row-gap:0}.pair-list-hybrid .pair-entry.expanded .word{grid-column:1}.pair-list-hybrid .pair-entry.expanded .pair-audio{grid-column:2;grid-row:1}.pair-list-hybrid .pair-senses{grid-column:1 / -1;list-style:none;margin:4px 0 0;padding:0}.pair-list-hybrid .pair-senses li{position:relative;padding:3px 0 3px 16px;color:var(--text-2)}.pair-list-hybrid .pair-senses li:before{content:"";position:absolute;left:2px;top:.8em;width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.7}.pair-list-hybrid>.pair-entry{padding-top:9px;padding-bottom:9px}.pair-list-spaced>.pair-entry{padding-top:14px;padding-bottom:14px}.pair-list.compact>li{padding:10px 14px}.pair-list.flat{box-shadow:none}.quiz{display:flex;flex-direction:column;gap:18px;padding-top:4px}.quiz-progress{display:flex;align-items:center;gap:14px}.quiz-meter{--done: 0%;--hue: 0;position:relative;flex:1;height:12px;border-radius:999px;background:var(--surface-3);box-shadow:inset 0 1px 2px #00000014;overflow:hidden}.quiz-meter-fill{position:absolute;inset:0 auto 0 0;width:max(var(--done),12px);border-radius:inherit;background:linear-gradient(180deg,rgb(255 255 255 / .35),transparent 55%),linear-gradient(90deg,var(--accent),hsl(calc(230 - var(--hue)) 75% 55%));box-shadow:0 0 12px color-mix(in srgb,var(--accent) 45%,transparent);transition:width .55s var(--ease-spring),background .55s ease}.quiz-meter-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(90deg,transparent,rgb(255 255 255 / .45),transparent);background-size:200% 100%;animation:shimmer 2.4s linear infinite}.quiz-count{color:var(--muted);font-size:.88rem;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.quiz-count b{display:inline-block;min-width:1.4ch;color:var(--text);font-size:1.05rem;font-weight:800;text-align:center;animation:count-drop .4s var(--ease-spring) both}.combo-chip{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px;border-radius:999px;background:linear-gradient(135deg,#ffd04a,#ff8a1f);color:#4a2300;font-size:.82rem;font-weight:800;font-variant-numeric:tabular-nums;box-shadow:0 4px 14px #ff8a1f59;animation:combo-pop .45s var(--ease-spring) both}.quiz-stage{position:relative}.quiz-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px;padding:clamp(28px,6vw,48px) clamp(18px,4vw,36px);border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);text-align:center}.quiz-card.enter{animation:card-in .38s var(--ease) both}.quiz-card.is-correct{border-color:color-mix(in srgb,var(--ok) 55%,var(--border));box-shadow:var(--shadow),0 0 0 4px color-mix(in srgb,var(--ok) 18%,transparent);transition:border-color .3s ease,box-shadow .3s ease}.quiz-panel{display:flex;flex-direction:column}.quiz-panel.has-answer{--prompt-space: clamp(20px, 3.4vh, 28px);gap:var(--prompt-space);padding:var(--prompt-space) clamp(12px,2.6vw,20px) clamp(12px,2.6vw,20px);border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);transition:border-color .3s ease,box-shadow .3s ease}.quiz-panel.has-answer{position:relative}.quiz-panel.has-answer .quiz-stage{position:static}.quiz-panel.has-answer .quiz-card{z-index:4;gap:12px;padding:0 clamp(8px,2vw,16px);border:0;border-radius:0;background:none;box-shadow:none}.quiz-panel.has-answer.is-correct{border-color:color-mix(in srgb,var(--ok) 55%,var(--border));box-shadow:var(--shadow),0 0 0 4px color-mix(in srgb,var(--ok) 18%,transparent)}.quiz-panel.has-answer .answer-input{min-height:58px;padding:0 58px 0 18px;background:var(--surface-2);box-shadow:none}@media(max-width:560px){.quiz-panel.has-answer .answer-input{font-size:1.08rem}}.quiz-panel.has-answer .answer-input:focus{background:var(--surface);box-shadow:var(--ring)}.quiz-panel.has-answer .answer-input.is-wrong{background:color-mix(in srgb,var(--err-soft) 40%,var(--surface))}.quiz-panel.has-answer .answer-submit{width:42px;min-width:42px;height:42px;min-height:42px;right:8px;border-radius:12px}@media(min-width:961px)and (min-height:700px){.shell-focus .quiz{padding-top:8vh;gap:22px}.quiz-panel.has-answer{--prompt-space: clamp(28px, 4.5vh, 40px)}.quiz-panel.has-answer .prompt:not(.prompt-long,.prompt-senses){font-size:2.1rem}.quiz-panel.has-answer .prompt-senses{font-size:1.45rem}}.answer-burst{position:absolute;inset:0 0 auto 0;height:0;display:grid;grid-template-rows:0px;place-items:center;pointer-events:none;z-index:3}.answer-burst>*{grid-area:1 / 1}.burst-ring{width:76px;height:76px;border-radius:50%;border:3px solid var(--ok);opacity:0;animation:burst-ring .7s var(--ease) both}.burst-check{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;border:3px solid var(--surface);background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--ok) 70%,#fff),var(--ok));color:#fff;box-shadow:0 8px 24px color-mix(in srgb,var(--ok) 45%,transparent);animation:burst-check .9s var(--ease-spring) both}.burst-check svg{width:28px;height:28px;stroke-width:3}.burst-confetti{position:relative;width:0;height:0}.burst-confetti i{--angle: calc(360deg / var(--n) * var(--i));position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:2px;background:hsl(calc(var(--i) * 47) 90% 60%);opacity:0;animation:confetti .85s cubic-bezier(.15,.7,.3,1) both}.burst-confetti i:nth-child(3n){border-radius:50%}.burst-confetti i:nth-child(3n+1){width:5px;height:11px}.burst-text{--shift: calc(50% + 40px) ;padding:4px 14px;white-space:nowrap;border-radius:999px;background:var(--ok-soft);color:var(--ok-text);font-weight:800;font-size:1rem;opacity:0;animation:burst-text .9s var(--ease) both}.answer-burst.is-big .burst-check{width:64px;height:64px;background:radial-gradient(circle at 35% 30%,#ffe27a,#ff8a1f);box-shadow:0 10px 34px #ff8a1f80}.answer-burst.is-big .burst-ring{border-color:#ffb238}.answer-burst.is-big .burst-text{background:linear-gradient(135deg,#ffd04a,#ff8a1f);color:#4a2300;font-size:1.1rem}.answer-burst.is-big .burst-confetti i{animation-duration:1.15s}.burst-confetti.is-stars i{left:-7px;top:-7px;width:14px;height:14px;border-radius:0;background:hsl(calc(38 + var(--i) * 4) 100% calc(55% + var(--i) * 1.5%));clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);animation:star-fly .95s cubic-bezier(.15,.7,.3,1) both}.burst-confetti.is-stars i:nth-child(2n){width:9px;height:9px;left:-4.5px;top:-4.5px}.answer-burst.fx-stars .burst-ring{border-color:#ffc23a}.answer-burst.fx-glow .burst-ring{border:0;background:radial-gradient(circle,color-mix(in srgb,var(--ok) 38%,transparent),transparent 70%);width:120px;height:120px;animation:glow-halo .9s var(--ease) both}.answer-burst.fx-glow .burst-check{width:44px;height:44px;animation:glow-check .95s var(--ease) both}.answer-burst.fx-glow .burst-check svg{width:22px;height:22px}.quiz[data-correct-fx=glow] .quiz-card.is-correct,.quiz[data-correct-fx=glow] .quiz-panel.has-answer.is-correct{animation:card-glow .9s var(--ease) both}.quiz[data-correct-fx=glow] .quiz-panel.has-answer .quiz-card.is-correct{animation:card-in .38s var(--ease) both}.burst-emoji{font-size:54px;line-height:1;filter:drop-shadow(0 8px 16px rgb(0 0 0 / .18));animation:emoji-float 1s var(--ease-spring) both}.answer-burst.is-big .burst-emoji{font-size:66px;animation-duration:1.25s}.answer-burst.fx-emoji .burst-text{--shift: calc(50% + 44px) }.quiz[data-wrong-fx=shake] .answer-field.nudge,.quiz[data-wrong-fx=shake] .option.is-wrong{animation:shake .42s linear both}.quiz[data-wrong-fx=pulse] .answer-field.nudge,.quiz[data-wrong-fx=pulse] .option.is-wrong{animation:none}.quiz[data-wrong-fx=pulse] .answer-field.nudge .answer-input,.quiz[data-wrong-fx=pulse] .option.is-wrong{animation:wrong-pulse .75s var(--ease) both}.quiz[data-wrong-fx=none] .answer-field.nudge,.quiz[data-wrong-fx=none] .option.is-wrong{animation:none}.fx-preview{padding-top:34px}.fx-preview .quiz-card{padding:26px 18px;gap:10px}.fx-preview .prompt{font-size:1.5rem}.fx-preview .combo-chip{position:absolute;top:12px;right:12px}.fx-preview .option svg{width:18px;height:18px;flex-shrink:0}.fx-group{display:flex;flex-direction:column;gap:12px;padding-top:14px;border-top:1px solid var(--border)}.fx-group:first-of-type{border-top:0;padding-top:0}.fx-choice{display:flex;flex-direction:column;gap:8px}.quiz-label{color:var(--muted);font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.prompt{font-size:clamp(1.45rem,4vw,1.85rem);font-weight:680;line-height:1.25;letter-spacing:-.015em;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}.prompt.prompt-long{font-size:clamp(1.1rem,2.8vw,1.35rem);font-weight:600;line-height:1.5;letter-spacing:-.005em}.prompt-note{color:var(--muted);font-size:.7em;font-weight:450;letter-spacing:0}.prompt-senses{display:flex;flex-direction:column;gap:6px;text-align:left;font-size:clamp(1.12rem,3vw,1.35rem)}.prompt-senses .prompt-note{font-size:.8em}.prompt-senses div{position:relative;padding-left:20px}.prompt-senses div:before{content:"";position:absolute;left:2px;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--accent)}.quiz-tools{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.answer-form{display:flex;flex-direction:column;gap:10px}.answer-field{position:relative}.answer-field.nudge{animation:nudge .55s cubic-bezier(.36,.07,.19,.97) both}.answer-input{width:100%;min-height:62px;padding:0 64px 0 22px;border-radius:var(--radius-lg);border:2px solid var(--border);background:var(--surface);color:var(--text);font-size:1.22rem;font-weight:560;outline:none;box-shadow:var(--shadow-sm);transition:border-color .15s ease,box-shadow .15s ease,background .2s ease}.answer-input::placeholder{color:var(--faint);font-weight:500}.answer-input:focus{border-color:var(--accent);box-shadow:var(--ring)}.answer-input.is-wrong{border-color:color-mix(in srgb,var(--err) 75%,var(--border));background:color-mix(in srgb,var(--err-soft) 40%,var(--surface));transition:border-color .35s ease,background .35s ease}.answer-input.is-ok{border-color:var(--ok);background:color-mix(in srgb,var(--ok-soft) 55%,var(--surface))}.answer-submit{position:absolute;top:50%;right:9px;transform:translateY(-50%);width:46px;min-width:46px;height:46px;min-height:46px;padding:0;border-radius:14px}.answer-submit:active:not(:disabled){transform:translateY(-50%) scale(.96)}.options{display:grid;grid-template-columns:1fr;gap:10px}.options.two{grid-template-columns:1fr 1fr}.options.letters{grid-template-columns:repeat(auto-fill,minmax(76px,1fr))}.option{position:relative;display:flex;align-items:center;gap:14px;min-height:58px;padding:12px 16px;border-radius:var(--radius);border:2px solid var(--border);background:var(--surface);color:var(--text);font-weight:600;font-size:1.02rem;text-align:left;cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color .12s ease,background .12s ease,transform .12s var(--ease);animation:rise-in .3s var(--ease) both}.option:hover:not(:disabled){border-color:var(--accent);background:color-mix(in srgb,var(--accent-soft) 45%,var(--surface))}.option:active:not(:disabled){transform:scale(.985)}.option:disabled{cursor:default}.option-key{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--surface-3);color:var(--muted);font:700 .8rem/1 ui-monospace,SF Mono,Consolas,monospace;flex-shrink:0}.option.is-wrong{border-color:color-mix(in srgb,var(--err) 70%,var(--border));background:color-mix(in srgb,var(--err-soft) 70%,var(--surface));color:var(--err-text);opacity:.85;animation:nudge .55s cubic-bezier(.36,.07,.19,.97) both;transition:background .35s ease,border-color .35s ease,opacity .35s ease}.option.is-ok{border-color:var(--ok);background:var(--ok-soft);color:var(--ok-text);animation:option-ok .5s var(--ease-spring) both}.options.letters .option{justify-content:center;min-height:64px;font-size:1.3rem}.options.letters .option-key{display:none}.feedback-panel{--tone: var(--accent);--tone-soft: var(--accent-soft);display:flex;flex-direction:column;gap:8px;padding:14px 18px 16px;border:1px solid color-mix(in srgb,var(--tone) 20%,transparent);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--tone-soft) 55%,var(--surface));color:var(--accent-text);text-align:left;animation:slide-up .28s var(--ease) both}.feedback-panel.ok{--tone: var(--ok);--tone-soft: var(--ok-soft);color:var(--ok-text)}.feedback-panel.wrong{--tone: var(--err);--tone-soft: var(--err-soft);color:var(--err-text)}.feedback-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 7px;font-size:.95rem;font-weight:700}.feedback-head svg{width:17px;height:17px}.feedback-body{color:var(--text);white-space:pre-wrap}.feedback-attempt{margin-left:2px;color:var(--err-text);font-size:.92rem;font-weight:500;text-decoration-thickness:1.5px;opacity:.85;overflow-wrap:anywhere}.feedback-panel .pair-list{border:0;border-radius:0;background:none;box-shadow:none}.feedback-panel .pair-list>li{padding:0;border:0}.feedback-panel .pair-entry .word{color:var(--text);font-size:1.12rem;font-weight:750}.feedback{font-weight:650;white-space:pre-wrap}.feedback.ok{color:var(--ok-text)}.feedback.wrong{color:var(--err-text)}.coach{display:flex;gap:12px;padding:14px 16px;border-radius:var(--radius-lg);background:var(--accent-soft);color:var(--accent-text);text-align:left;white-space:pre-wrap;animation:slide-up .3s var(--ease) both}.coach-icon{font-size:1.3rem;line-height:1.2}.result-hero{display:flex;flex-direction:column;align-items:center;gap:14px;padding:36px 20px 30px;border-radius:var(--radius-xl);border:1px solid var(--border);background:radial-gradient(100% 120% at 50% 0%,color-mix(in srgb,var(--accent) 16%,transparent) 0%,transparent 60%),var(--surface);box-shadow:var(--shadow);text-align:center;animation:card-in .45s var(--ease) both}.result-hero.great{background:radial-gradient(100% 120% at 50% 0%,color-mix(in srgb,var(--ok) 18%,transparent) 0%,transparent 60%),var(--surface)}.result-title{font-size:1.45rem;font-weight:750;letter-spacing:-.02em}.stats-row,.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.stat-box{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);text-align:left}.stat-box.highlight{border-color:transparent;background:var(--accent-soft)}.stat-box.highlight .stat-value{color:var(--accent-text)}.stat-value{font-size:1.6rem;font-weight:760;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.15}.stat-label{color:var(--muted);font-size:.84rem;font-weight:550}.achievement-toast{display:flex;flex-direction:column;gap:8px;padding:16px 18px;border-radius:var(--radius-lg);background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 18%,var(--surface)) 0%,var(--surface) 100%);border:1px solid color-mix(in srgb,var(--gold) 40%,var(--border));animation:pop .5s var(--ease-spring) both}.achievement-toast-title{font-weight:750}.achievement-item{display:flex;gap:10px;color:var(--text-2)}.result-mistakes{margin:0;padding:0;list-style:none}.streak-card{display:flex;align-items:center;gap:20px}.streak-flame{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:var(--flame-soft);flex-shrink:0}.streak-flame.off{background:var(--surface-3)}.streak-num{font-size:2.1rem;font-weight:800;letter-spacing:-.03em;line-height:1}.track{display:flex;flex-direction:column;gap:8px}.track-head{display:flex;justify-content:space-between;font-size:.9rem;font-weight:600}.profile-section{margin-bottom:20px}.profile-line{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.kv{display:flex;flex-direction:column}.kv-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border)}.kv-row:last-child{border-bottom:0}.kv-key{color:var(--muted)}.kv-val{font-weight:650;text-align:right}.heatmap-wrap{position:relative;display:grid;gap:14px;border-radius:6px;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.heatmap-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.heatmap{display:grid;grid-auto-flow:column;grid-template-rows:auto repeat(7,auto);grid-template-columns:24px repeat(var(--weeks),minmax(0,1fr));gap:3px;max-width:calc(24px + var(--weeks) * 21px)}.halves .heatmap{gap:2px}.heatmap-month{height:16px;font-size:11px;line-height:16px;color:var(--muted);white-space:nowrap}.heatmap-label{align-self:center;font-size:10px;line-height:1;color:var(--muted)}.heatmap-cell{width:100%;aspect-ratio:1;border-radius:22%;background:var(--heat-0)}.heatmap .heatmap-cell{cursor:pointer}.heatmap-tip{position:absolute;z-index:2;padding:5px 9px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface-3);color:var(--text);box-shadow:var(--shadow);font-size:12px;line-height:1.3;white-space:nowrap;pointer-events:none;transform:translate(-50%,calc(-100% - 6px))}.heatmap-tip.start{transform:translate(-12px,calc(-100% - 6px))}.heatmap-tip.end{transform:translate(calc(-100% + 12px),calc(-100% - 6px))}.heatmap-day{margin:0;min-height:1.5em;font-size:14px;color:var(--text-2)}.heatmap-cell.level-1{background:var(--heat-1)}.heatmap-cell.level-2{background:var(--heat-2)}.heatmap-cell.level-3{background:var(--heat-3)}.heatmap-cell.level-4{background:var(--heat-4)}.heatmap-cell.today{outline:2px solid var(--flame);outline-offset:1px}.heatmap-cell.selected{outline:2px solid var(--text);outline-offset:1px}.heatmap-legend{display:flex;align-items:center;gap:4px;margin-top:10px;font-size:12px;color:var(--muted)}.heatmap-legend .heatmap-cell{display:inline-block;width:12px}.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.ach{display:flex;gap:12px;padding:14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);animation:rise-in .3s var(--ease) both}.ach.locked{background:var(--surface-2);opacity:.72}.ach-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--gold) 20%,var(--surface));font-size:1.2rem;flex-shrink:0}.ach.locked .ach-icon{background:var(--surface-3);filter:grayscale(1)}.ach-title{font-weight:650;line-height:1.3}.ach-desc{color:var(--muted);font-size:.86rem}.clock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.clock{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;border-radius:var(--radius);border:2px solid var(--border);background:var(--surface);cursor:pointer;transition:all .15s ease}.clock:hover:not(:disabled){border-color:var(--accent)}.clock.active{border-color:var(--accent);background:var(--accent-soft)}.clock.suggested{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}.clock-time{font-size:1.2rem;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.clock-tz{color:var(--muted);font-size:.74rem;font-weight:600}.theory{display:flex;flex-direction:column;gap:14px}.theory-section{padding:22px 24px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);animation:rise-in .35s var(--ease) both}.theory-section h2{margin:0 0 10px;font-size:.82rem;font-weight:750;color:var(--accent-text);letter-spacing:.05em;text-transform:uppercase}.theory-section .prose{font-size:1.02rem}.theory-step-title{font-weight:700;font-size:1.1rem}.passage{padding:clamp(20px,4vw,32px);border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);font-size:1.08rem;line-height:1.75;white-space:pre-wrap;color:var(--text)}.passage.reading{font-family:Iowan Old Style,Charter,Georgia,Cambria,serif;font-size:1.14rem}.listen-card{display:flex;flex-direction:column;align-items:center;gap:16px;padding:36px 20px;border-radius:var(--radius-xl);border:1px solid var(--border);background:radial-gradient(90% 120% at 50% 0%,color-mix(in srgb,var(--accent) 14%,transparent) 0%,transparent 60%),var(--surface);text-align:center}.play-big{display:grid;place-items:center;width:84px;height:84px;border-radius:50%;border:0;background:var(--accent);color:var(--on-accent);cursor:pointer;box-shadow:0 10px 30px color-mix(in srgb,var(--accent) 40%,transparent);transition:transform .15s var(--ease),background .15s ease}.play-big:hover:not(:disabled){transform:scale(1.05);background:var(--accent-strong)}.play-big:disabled{opacity:.6}.play-big svg{width:34px;height:34px}.play-big.playing{animation:pulse 1.4s ease-in-out infinite}.letter-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:20px;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .18s ease both}.modal{width:100%;max-width:420px;display:flex;flex-direction:column;gap:14px;padding:24px;border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-lg);animation:modal-in .26s var(--ease-spring) both}.modal-title{font-size:1.15rem;font-weight:750}.modal-text{color:var(--text-2);white-space:pre-wrap}.modal-actions{display:flex;gap:10px;margin-top:6px}.modal-actions .btn{flex:1}.toast-stack{position:fixed;left:50%;bottom:24px;z-index:70;display:flex;flex-direction:column;align-items:center;gap:8px;transform:translate(-50%);pointer-events:none}@media(max-width:960px){.toast-stack{bottom:calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom))}}.toast{display:flex;align-items:center;gap:10px;max-width:min(92vw,460px);padding:12px 18px;border-radius:999px;background:var(--text);color:var(--bg);font-weight:600;font-size:.92rem;box-shadow:var(--shadow-lg);white-space:pre-wrap;animation:toast-in .3s var(--ease-spring) both}.lookup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;justify-content:center;align-items:flex-start;padding:72px 16px 16px;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .18s ease both}.lookup-panel{width:100%;max-width:640px;max-height:calc(100vh - 100px);display:flex;flex-direction:column;border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-lg);overflow:hidden;animation:modal-in .26s var(--ease) both}.lookup-search{display:flex;align-items:center;gap:10px;padding:14px;border-bottom:1px solid var(--border)}.lookup-search-icon{width:20px;height:20px;margin-left:6px;color:var(--faint);flex-shrink:0}.lookup-input{flex:1;min-width:0;height:40px;border:0;outline:none;background:transparent;color:var(--text);font:inherit;font-size:1.08rem}.lookup-input:focus-visible{box-shadow:none}.lookup-input::placeholder{color:var(--faint)}.lookup-kbd{flex-shrink:0}.lookup-hint{margin:20px;color:var(--muted);font-size:.92rem}.lookup-results{flex:1;overflow:auto}.lookup-message{margin:20px;color:var(--muted)}.lookup-blocks{list-style:none;margin:0;padding:14px;display:flex;flex-direction:column;gap:12px}.lookup-block{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface-2);animation:rise-in .3s var(--ease) both}.lookup-block.locked{color:var(--muted);background:var(--surface);border-style:dashed}.lookup-card-head{display:flex;align-items:flex-start;gap:8px}.lookup-card-head .lookup-card-entry{flex:1;min-width:0}.lookup-card-entry.pair-list{margin:0;border:none;border-radius:0;box-shadow:none;background:transparent;overflow:visible}.lookup-card-entry.pair-list>li{padding:0;border:none}.lookup-place{display:inline-flex;align-items:center;gap:6px;color:var(--accent-text);font-size:.9rem;font-weight:600}.lookup-listen{flex-shrink:0;color:var(--accent-text)}.lookup-listen[data-playing]{animation:pulse 1.4s ease-in-out infinite}.lookup-teaser{display:flex;align-items:flex-start;gap:8px;margin:0;white-space:pre-wrap}.lookup-teaser svg{width:16px;height:16px;margin-top:3px;flex-shrink:0}.home-hero{padding:8px 0 4px}.home-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;align-items:start}.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.continue-card{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text);text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .2s ease,transform .2s var(--ease);animation:rise-in .36s var(--ease) both}.continue-card:hover:not(:disabled){border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.continue-card:active:not(:disabled){transform:translateY(0) scale(.99)}.continue-card:disabled{opacity:.6;cursor:progress}.continue-card.locked{background:var(--surface-2)}.continue-card.locked .continue-title{color:var(--muted)}.continue-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.continue-title{font-weight:680;font-size:1.02rem;line-height:1.3}.continue-card .chev{width:18px;height:18px;color:var(--faint);flex-shrink:0;transition:transform .2s var(--ease)}.continue-card:hover .chev{transform:translate(3px)}.sticky-actions{position:sticky;bottom:0;z-index:5;display:flex;gap:10px;margin:4px -8px 0;padding:14px 8px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(to bottom,transparent,var(--bg) 38%)}.sticky-actions .btn{white-space:nowrap;padding-inline:14px}@media(max-width:960px){.shell:not(.shell-focus) .sticky-actions{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:14px}}.btn-icon.btn-lg{width:54px;min-width:54px;height:54px;min-height:54px;padding:0;border-radius:var(--radius-lg)}.step-bar-gap{flex:none;width:54px}@media(max-width:560px){.theory-vocab,.head-icon-btn{width:40px;min-width:40px;padding:0}.theory-vocab-label,.head-icon-label{display:none}}.tile-add{border-style:dashed;background:transparent;box-shadow:none}.tile-add:hover:not(:disabled){background:var(--surface)}.help-blocks{display:grid;gap:12px}.help-block{animation:rise-in .35s var(--ease) both}.dict-sample{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.link{color:var(--accent-text);font-weight:600;text-decoration:underline;text-underline-offset:3px}.setting-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 16px;padding:4px 0}.setting-row>.stack-sm{flex:1 1 260px;min-width:0}.setting-row+.setting-row{padding-top:14px;border-top:1px solid var(--border)}.setting-label{font-weight:620}.list-row.selected{background:var(--accent-soft)}.list-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.list-row-main:disabled{cursor:default}.radio{position:relative;width:20px;height:20px;border-radius:50%;border:2px solid var(--border-strong);flex-shrink:0;transition:border-color .15s ease}.radio.on{border-color:var(--accent)}.radio.on:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:50%;background:var(--accent);animation:pop .25s var(--ease-spring) both}.brand-mark-lg{width:64px;height:64px;border-radius:20px;font-size:1.7rem;box-shadow:0 12px 32px color-mix(in srgb,var(--accent) 35%,transparent)}.input-lg{min-height:54px;font-size:1.05rem}.login{display:grid;place-items:center;min-height:calc(100vh - 80px);padding:24px 0}.login-card{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:22px;padding:36px 28px;border-radius:var(--radius-xl);border:1px solid var(--border);background:radial-gradient(120% 90% at 50% 0%,color-mix(in srgb,var(--accent) 12%,transparent) 0%,transparent 60%),var(--surface);box-shadow:var(--shadow-lg);animation:card-in .4s var(--ease) both}.login-card form{width:100%}.login-card .brand-mark svg{width:30px;height:30px}.auth-field{gap:6px}.auth-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px}.auth-links-center{justify-content:center}.link-btn{padding:0;border:0;background:none;color:var(--accent-text);font:inherit;font-size:.9rem;font-weight:560;text-decoration:none;cursor:pointer}.link-btn:hover:not(:disabled){text-decoration:underline}.link-btn:disabled{color:var(--faint);cursor:default}.link-btn.auth-inline{align-self:flex-start;text-align:left}.link-btn.email-typo{margin-top:-6px}.auth-divider{display:flex;align-items:center;gap:12px;width:100%;color:var(--faint);font-size:.85rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.check-row{display:flex;align-items:flex-start;gap:10px;color:var(--text-2);cursor:pointer}.check-row input{width:18px;height:18px;margin:1px 0 0;flex-shrink:0;accent-color:var(--accent)}.check-row a{color:var(--accent-text)}.code-input{text-align:center;font-size:1.5rem;font-variant-numeric:tabular-nums;letter-spacing:.4em}.tg-note{margin:0;text-align:center}.account-form .tg-note{text-align:left}.nav-dot{display:inline-block;width:8px;height:8px;flex-shrink:0;border-radius:50%;background:var(--err)}.nav-link .nav-dot{margin-left:auto}.account-group{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.account-group>.setting-row{width:100%}.account-group+.account-group{padding-top:14px;border-top:1px solid var(--border)}.account-form{width:100%;max-width:420px}.account-value{overflow-wrap:anywhere}.setting-icon{width:17px;height:17px;color:var(--muted)}.account-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;width:100%}.account-choice>.btn{align-self:flex-start;margin-top:6px}.legal{max-width:720px;line-height:1.65;color:var(--text-2)}.legal h1{margin:0}.legal h2{margin:12px 0 0;color:var(--text);font-size:1.1rem}.legal p,.legal ul{margin:0}.legal ul{display:flex;flex-direction:column;gap:6px;padding-left:1.2em}.legal a{color:var(--accent-text)}.password-field{position:relative;display:block}.password-field .input{width:100%;padding-right:52px}.password-toggle{position:absolute;top:50%;right:8px;display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer;transform:translateY(-50%);transition:color .15s var(--ease),background .15s var(--ease)}.password-toggle:hover{color:var(--text);background:var(--surface-2)}.password-toggle svg{width:19px;height:19px}.ob-screen{max-width:600px;margin:0 auto;padding-top:8px}.ob-hero{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.ob-hero .prose{text-align:center}.ob-emoji{font-size:3rem;line-height:1;animation:pop .45s var(--ease-spring) both}.ob-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px}.ob-streak{align-items:center;text-align:left}.ob-steps{display:flex;justify-content:center;gap:6px;margin:0;padding:0;list-style:none;color:var(--faint);font-size:.84rem;font-weight:650}.ob-steps li{display:flex;align-items:center;gap:6px}.ob-steps li+li:before{content:"";width:22px;height:2px;border-radius:2px;background:var(--border)}.ob-steps li.now{color:var(--accent-text)}.ob-steps li.done{color:var(--ok-text)}.ob-step-dot{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--surface-3);font-size:.78rem}.ob-steps li.now .ob-step-dot{background:var(--accent);color:var(--on-accent)}.ob-steps li.done .ob-step-dot{background:var(--ok-soft)}.lang-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.lang-card,.choice-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 16px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text);text-align:center;cursor:pointer;transition:border-color .15s ease,box-shadow .2s ease,transform .2s var(--ease);animation:rise-in .36s var(--ease) both}.lang-card:hover:not(:disabled),.choice-card:hover:not(:disabled){border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}.lang-card:active:not(:disabled),.choice-card:active:not(:disabled){transform:scale(.98)}.lang-card:disabled,.choice-card:disabled{opacity:.55;cursor:not-allowed}.lang-card.current{border-color:var(--accent);background:var(--accent-soft)}.lang-flag{font-size:2.6rem;line-height:1}.lang-code{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--accent-soft);color:var(--accent);font-weight:800;letter-spacing:.04em}.lang-label{font-weight:680;font-size:1.05rem}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.pick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pick-card{align-items:flex-start;gap:6px;padding:18px 18px 16px;text-align:left}.pick-card.current{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent) inset,var(--shadow-sm)}.pick-title{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:1.05rem}.pick-price{font-size:1.6rem;font-weight:780;font-variant-numeric:tabular-nums;line-height:1.15}@media(max-width:560px){.pick-grid{gap:8px}.pick-card{padding:14px 12px}.pick-price{font-size:1.3rem}}.paybox{align-items:stretch;gap:18px;background:var(--surface)}.paybox-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.paybox-brand{font-weight:750;letter-spacing:.01em}.paybox-sum{display:flex;flex-direction:column;gap:2px;padding:16px;border-radius:var(--radius);background:var(--surface-2)}.paybox-sum strong{font-size:2rem;font-weight:780;font-variant-numeric:tabular-nums}.paybox-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 14px;margin:0;font-size:.92rem}.paybox-facts dt{color:var(--muted)}.paybox-facts dd{margin:0;overflow-wrap:anywhere}.pay-result{max-width:520px;margin:24px auto 0;align-items:center;text-align:center}.pay-result-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%}.pay-result-icon svg{width:28px;height:28px}.pay-result-icon.tone-ok{background:var(--ok-soft);color:var(--ok-text)}.pay-result-icon.tone-warn{background:var(--warn-soft);color:var(--warn-text)}.pay-result-icon.tone-err{background:var(--err-soft);color:var(--err-text)}.pay-result-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.choice-icon{display:grid;place-items:center;min-width:52px;height:52px;padding:0 10px;border-radius:16px;background:var(--accent-soft);color:var(--accent-text);font-size:1.6rem;font-weight:800}.choice-title{font-weight:700;font-size:1.05rem}.choice-sub{color:var(--muted);font-size:.86rem}.letter-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:border-color .15s ease,transform .15s var(--ease),background .15s ease}.letter-card>svg{width:14px;height:14px;color:var(--faint)}.letter-card:hover:not(:disabled){border-color:var(--accent);transform:translateY(-2px)}.letter-card[data-playing]{border-color:var(--accent);background:var(--accent-soft)}.letter-glyph{font-size:1.5rem;font-weight:750;line-height:1.1}.letter-name{color:var(--muted);font-size:.74rem}.listen-icon{font-size:2.6rem;line-height:1}.challenge-card{background:radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--flame) 14%,transparent) 0%,transparent 55%),var(--surface)}.day-track{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}.day-dot{display:grid;place-items:center;height:34px;border-radius:10px;background:var(--surface-3);color:var(--muted);font-size:.85rem;font-weight:700}.day-dot.past{background:var(--ok-soft);color:var(--ok-text)}.day-dot.now{background:var(--flame);color:#fff;box-shadow:0 6px 18px color-mix(in srgb,var(--flame) 40%,transparent)}.day-dot.weekly:not(.now){background:color-mix(in srgb,var(--gold) 18%,var(--surface-3))}.countdown{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:8px 14px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font-size:.92rem}.countdown svg{width:17px;height:17px}.countdown b{font-variant-numeric:tabular-nums;font-size:1.05rem}.countdown.urgent{background:var(--err-soft);color:var(--err-text);animation:pulse 1.4s ease-in-out infinite}.leaderboard{margin:0;padding:0;list-style:none;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.lb-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}.lb-row:last-child{border-bottom:0}.lb-row.me{background:var(--accent-soft)}.lb-place{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--surface-3);font-weight:750;font-size:.9rem;flex-shrink:0}.lb-place.place-1{background:color-mix(in srgb,var(--gold) 28%,var(--surface))}.lb-place.place-2{background:color-mix(in srgb,#9aa3b5 30%,var(--surface))}.lb-place.place-3{background:color-mix(in srgb,#c27a43 26%,var(--surface))}.lb-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.lb-name{font-weight:680}.lb-days{display:flex;flex-wrap:wrap;gap:4px}.lb-day{padding:1px 7px;border-radius:6px;background:var(--surface-3);color:var(--muted);font-size:.74rem;font-variant-numeric:tabular-nums}.lb-day.weekly{background:color-mix(in srgb,var(--gold) 16%,var(--surface-3))}.lb-total{font-weight:750;font-variant-numeric:tabular-nums}.live-counter{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.92rem}.live-dot{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 color-mix(in srgb,var(--ok) 50%,transparent);animation:live 1.8s ease-out infinite}.mm-screen{display:flex;flex-direction:column;align-items:center;gap:14px;padding-top:6vh;text-align:center}.radar{position:relative;display:grid;place-items:center;width:160px;height:160px;margin-bottom:10px}.radar span{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid var(--accent);opacity:0}.radar.searching span{animation:radar 2.4s ease-out infinite}.radar.searching span:nth-child(2){animation-delay:.8s}.radar.searching span:nth-child(3){animation-delay:1.6s}.radar b{display:grid;place-items:center;width:84px;height:84px;border-radius:50%;background:var(--accent-soft);font-size:2.2rem}.radar.found b{background:var(--ok-soft);animation:pop .45s var(--ease-spring) both}.player-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.player-slot{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius);border:1px dashed var(--border-strong);color:var(--faint)}.player-slot.filled{border-style:solid;border-color:var(--border);background:var(--surface);color:var(--text);animation:pop .35s var(--ease-spring) both}.player-slot.left{opacity:.5;text-decoration:line-through}.player-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--surface-3);font-weight:750;flex-shrink:0}.player-slot.filled .player-avatar{background:linear-gradient(135deg,var(--accent) 0%,#9b6cf0 100%);color:#fff}.player-nick{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:620}.invite-row{display:flex;align-items:center;gap:8px}.invite-label{width:74px;color:var(--muted);font-size:.86rem;font-weight:650;flex-shrink:0}.invite-link{flex:1;min-width:0;padding:8px 10px;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-2);font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-emoji{font-size:3.4rem;line-height:1;animation:pop .5s var(--ease-spring) both}@media(max-width:760px){.home-grid{grid-template-columns:1fr}.invite-row{flex-wrap:wrap}.invite-label{width:100%}}.audio-toggle.is-playing{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--accent-soft);color:var(--accent-text)}.sound-bars{display:inline-flex;align-items:flex-end;gap:2px;height:14px}.sound-bars i{width:3px;height:100%;border-radius:2px;background:currentColor;transform-origin:bottom;animation:sound-bar .9s ease-in-out infinite}.sound-bars i:nth-child(2){animation-delay:-.3s}.sound-bars i:nth-child(3){animation-delay:-.6s}.pair-audio.playing svg{width:13px;height:13px}.audio-player{display:flex;align-items:center;flex-wrap:wrap;gap:12px;width:100%;max-width:460px;margin-inline:auto;padding:8px 14px 8px 8px;border-radius:999px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm)}.audio-player-main{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border:0;border-radius:50%;background:var(--accent);color:var(--on-accent);cursor:pointer;box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 35%,transparent);transition:transform .15s var(--ease),background .15s ease}.audio-player-main:hover:not(:disabled){background:var(--accent-strong)}.audio-player-main:active:not(:disabled){transform:scale(.94)}.audio-player-main svg{width:20px;height:20px}.audio-player.is-playing .audio-player-main{animation:pulse 2s ease-in-out infinite}.audio-player-label{flex:1;font-weight:650}.audio-player-bar{position:relative;flex:1;min-width:100px;height:6px;border-radius:999px;background:var(--surface-3);cursor:pointer;outline:none}.audio-player-bar:before{content:"";position:absolute;top:-10px;right:0;bottom:-10px;left:0}.audio-player-bar:focus-visible{box-shadow:var(--ring)}.audio-player-fill{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:var(--accent);transition:width .25s linear}.audio-player-knob{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:var(--surface);border:3px solid var(--accent);transform:translate(-50%,-50%);box-shadow:var(--shadow-sm);transition:left .25s linear,transform .15s var(--ease)}.audio-player-bar:hover .audio-player-knob{transform:translate(-50%,-50%) scale(1.2)}.audio-player-time{color:var(--muted);font-size:.82rem;font-weight:600;font-variant-numeric:tabular-nums}.audio-player-stop{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;background:var(--surface-3);color:var(--text-2);cursor:pointer;transition:background .15s ease,color .15s ease}.audio-player-stop:hover{background:var(--err-soft);color:var(--err-text)}.audio-player-stop svg{width:14px;height:14px}.range{--value: 100%;flex:1;min-width:120px;height:22px;margin:0;background:transparent;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.range:focus{outline:none}.range::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(90deg,var(--accent) var(--value),var(--surface-3) var(--value))}.range::-moz-range-track{height:6px;border-radius:999px;background:var(--surface-3)}.range::-moz-range-progress{height:6px;border-radius:999px;background:var(--accent)}.range::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-6px;border-radius:50%;border:3px solid var(--accent);background:var(--surface);box-shadow:var(--shadow-sm);transition:transform .15s var(--ease)}.range::-moz-range-thumb{width:12px;height:12px;border-radius:50%;border:3px solid var(--accent);background:var(--surface);box-shadow:var(--shadow-sm)}.range:hover::-webkit-slider-thumb,.range:focus-visible::-webkit-slider-thumb{transform:scale(1.15)}.range:focus-visible::-webkit-slider-thumb{box-shadow:var(--ring)}.volume-control{position:relative}.volume-control .is-muted{color:var(--faint)}.volume-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:40;display:flex;flex-direction:column;gap:8px;width:260px;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg, var(--shadow));animation:modal-in .18s var(--ease) both}@media(max-width:560px){.volume-popover{position:fixed;top:60px;left:12px;right:12px;width:auto}}.volume-popover-title{color:var(--muted);font-size:.8rem;font-weight:700}.volume-slider{display:flex;align-items:center;gap:10px;width:100%}.volume-mute{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border:0;border-radius:10px;background:var(--surface-2);color:var(--text-2);cursor:pointer}.volume-mute:hover{background:var(--surface-3)}.volume-mute svg{width:18px;height:18px}.volume-value{min-width:4ch;color:var(--muted);font-size:.82rem;font-weight:650;font-variant-numeric:tabular-nums;text-align:right}.flame{position:relative;display:inline-grid;place-items:center;flex-shrink:0;width:var(--flame-size);height:calc(var(--flame-size) * 1.25);vertical-align:middle}.flame svg{position:relative;overflow:visible;filter:drop-shadow(0 2px 6px rgb(255 106 26 / .35))}.flame path{transform-box:fill-box;transform-origin:50% 100%}.flame.is-lit .flame-outer{animation:flame-sway 2.6s ease-in-out infinite}.flame.is-lit .flame-middle{animation:flame-flicker 1.4s ease-in-out infinite}.flame.is-lit .flame-core{animation:flame-flicker .9s ease-in-out infinite reverse}.flame-glow{position:absolute;top:15%;right:5%;bottom:0;left:5%;border-radius:50%;background:radial-gradient(circle,rgb(255 150 50 / .55),transparent 70%);filter:blur(calc(var(--flame-size) * .12));animation:flame-glow 2.2s ease-in-out infinite}.flame.is-off svg{filter:grayscale(1);opacity:.45}.flame.is-off .flame-glow{display:none}.flame-embers{position:absolute;inset:auto 0 30% 0;height:0}.flame-embers i{--dx: calc((var(--i) - 4) * 9px);position:absolute;left:calc(50% + (var(--i) - 4) * 6px);bottom:0;width:6px;height:6px;border-radius:50%;background:radial-gradient(circle,#fff3c4,#ff8a1f);box-shadow:0 0 8px #ffb238;animation:ember 1.8s ease-out infinite;animation-delay:calc(var(--i) * .21s)}.streak-badge{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 12px 0 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:.9rem;font-weight:800;font-variant-numeric:tabular-nums;text-decoration:none;transition:transform .15s var(--ease),background .15s ease}.streak-badge.is-lit{background:var(--flame-soft);color:var(--flame)}.streak-badge:hover{transform:translateY(-1px)}.streak-celebration{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;overflow:hidden;padding:24px;background:radial-gradient(circle at 50% 38%,rgb(255 166 64 / .35),transparent 55%),linear-gradient(180deg,#2a1206,#120802);color:#fff;cursor:pointer;animation:sc-in .3s ease both;-webkit-user-select:none;user-select:none}.streak-celebration.is-leaving{animation:sc-out .26s ease both}.sc-rays{position:absolute;top:38%;left:50%;width:160vmax;height:160vmax;margin:-80vmax 0 0 -80vmax;background:repeating-conic-gradient(rgb(255 190 90 / .09) 0deg 9deg,transparent 9deg 24deg);-webkit-mask-image:radial-gradient(circle,#000 0%,transparent 45%);mask-image:radial-gradient(circle,#000 0%,transparent 45%);animation:sc-rays 40s linear infinite}.sc-content{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;max-width:420px;text-align:center}.sc-content>.flame{animation:sc-flame-in .9s var(--ease-spring) both}.sc-count{position:relative;display:grid;height:1.1em;overflow:hidden;margin-top:-12px;font-size:clamp(4rem,16vw,6rem);font-weight:900;line-height:1.1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.sc-num{grid-area:1 / 1;background:linear-gradient(180deg,#fff3c4,#ffb238 60%,#ff6a1a);-webkit-background-clip:text;background-clip:text;color:transparent}.sc-num-old{animation:sc-num-out 1.1s var(--ease) .35s both}.sc-num-new{animation:sc-num-in 1.1s var(--ease-spring) .35s both}.sc-title{margin:0;font-size:clamp(1.6rem,5vw,2.1rem);font-weight:850;letter-spacing:-.02em;animation:rise-in .5s var(--ease) .7s both}.sc-sub{margin:-6px 0 0;color:#ffe6c8cc;font-size:1.05rem;font-weight:600;animation:rise-in .5s var(--ease) .8s both}.sc-week{display:flex;gap:10px;margin-top:8px;padding:14px 16px;border-radius:20px;background:#ffffff0f;border:1px solid rgb(255 255 255 / .08)}.sc-day{display:flex;flex-direction:column;align-items:center;gap:6px;animation:sc-dot-in .35s var(--ease) both;animation-delay:calc(.9s + var(--i) * .06s)}.sc-dot{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#ffffff1a;color:#4a2300;font-size:.85rem;font-weight:900}.sc-day.done .sc-dot{background:linear-gradient(135deg,#ffd04a,#ff6a1a);box-shadow:0 0 12px #ff8c2880}.sc-day.today .sc-dot{outline:2px solid rgb(255 220 150 / .8);outline-offset:3px;animation:sc-dot-ignite .6s var(--ease-spring) 1.5s both}.sc-day-label{color:#ffe6c8a6;font-size:.72rem;font-weight:700;text-transform:capitalize}.sc-day.today .sc-day-label{color:#ffd04a}.sc-hint{margin-top:18px;color:#ffe6c8b3;font-size:.86rem;font-weight:600;animation:sc-hint 2s ease-in-out 1.6s infinite both}@media(max-width:420px){.sc-week{gap:6px;padding:12px}.sc-dot{width:26px;height:26px}}@keyframes live{0%{box-shadow:0 0 color-mix(in srgb,var(--ok) 50%,transparent)}to{box-shadow:0 0 0 10px color-mix(in srgb,var(--ok) 0%,transparent)}}@keyframes radar{0%{opacity:.7;transform:scale(.5)}to{opacity:0;transform:scale(1.15)}}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes stage-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes settle-in{0%{opacity:.45;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes card-in{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(14px) scale(.95)}to{opacity:1;transform:none}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}@keyframes pop{0%{transform:scale(.96)}55%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--accent) 45%,transparent)}50%{box-shadow:0 0 0 14px color-mix(in srgb,var(--accent) 0%,transparent)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes nudge{0%{transform:translate(0)}18%{transform:translate(-6px)}38%{transform:translate(4px)}58%{transform:translate(-2px)}78%{transform:translate(1px)}to{transform:translate(0)}}@keyframes option-ok{0%{transform:scale(1)}40%{transform:scale(1.035);box-shadow:0 0 0 6px color-mix(in srgb,var(--ok) 22%,transparent)}to{transform:scale(1);box-shadow:var(--shadow-sm)}}@keyframes count-drop{0%{opacity:0;transform:translateY(-8px) scale(1.3)}to{opacity:1;transform:none}}@keyframes combo-pop{0%{transform:scale(.4) rotate(-12deg);opacity:0}60%{transform:scale(1.18) rotate(4deg);opacity:1}to{transform:scale(1) rotate(0)}}@keyframes burst-ring{0%{opacity:.9;transform:scale(.5)}to{opacity:0;transform:scale(1.7)}}@keyframes burst-check{0%{opacity:0;transform:scale(.2) rotate(-30deg)}35%{opacity:1;transform:scale(1.15) rotate(6deg)}55%{transform:scale(.95) rotate(0)}75%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9) translateY(-6px)}}@keyframes confetti{0%{opacity:1;transform:rotate(var(--angle)) translateY(0) rotate(0)}70%{opacity:1}to{opacity:0;transform:rotate(var(--angle)) translateY(-78px) rotate(320deg)}}@keyframes star-fly{0%{opacity:1;transform:rotate(var(--angle)) translateY(0) scale(.4) rotate(0)}60%{opacity:1}to{opacity:0;transform:rotate(var(--angle)) translateY(-92px) scale(1.1) rotate(200deg)}}@keyframes glow-halo{0%{opacity:0;transform:scale(.4)}40%{opacity:1}to{opacity:0;transform:scale(1.5)}}@keyframes glow-check{0%{opacity:0;transform:scale(.6)}30%{opacity:1;transform:scale(1)}75%{opacity:1}to{opacity:0;transform:translateY(-4px)}}@keyframes card-glow{0%{box-shadow:var(--shadow),0 0 color-mix(in srgb,var(--ok) 35%,transparent)}45%{box-shadow:var(--shadow),0 0 0 10px color-mix(in srgb,var(--ok) 16%,transparent),0 0 40px color-mix(in srgb,var(--ok) 30%,transparent)}to{box-shadow:var(--shadow),0 0 0 4px color-mix(in srgb,var(--ok) 18%,transparent)}}@keyframes emoji-float{0%{opacity:0;transform:translateY(14px) scale(.3) rotate(-18deg)}30%{opacity:1;transform:translateY(-6px) scale(1.15) rotate(6deg)}50%{transform:translateY(-10px) scale(1) rotate(0)}80%{opacity:1}to{opacity:0;transform:translateY(-38px) scale(.95)}}@keyframes wrong-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--err) 45%,transparent)}to{box-shadow:0 0 0 12px color-mix(in srgb,var(--err) 0%,transparent)}}@keyframes burst-text{0%{opacity:0;transform:translate(calc(var(--shift) - 14px)) scale(.8)}25%{opacity:1;transform:translate(var(--shift)) scale(1.05)}40%{transform:translate(var(--shift)) scale(1)}75%{opacity:1;transform:translate(var(--shift))}to{opacity:0;transform:translate(var(--shift)) translateY(-6px)}}@keyframes sound-bar{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes flame-sway{0%,to{transform:rotate(-2.5deg) scale(1)}25%{transform:rotate(1.5deg) scale(.98,1.04)}50%{transform:rotate(2.5deg) scale(1.02,.97)}75%{transform:rotate(-1deg) scale(.99,1.03)}}@keyframes flame-flicker{0%,to{transform:scale(1) translateY(0)}30%{transform:scale(.94,1.08) translateY(-1px)}60%{transform:scale(1.05,.95) translateY(1px)}}@keyframes flame-glow{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.85;transform:scale(1.12)}}@keyframes ember{0%{opacity:0;transform:translate(0) scale(1)}15%{opacity:1}to{opacity:0;transform:translate(var(--dx),-120px) scale(.3)}}@keyframes sc-in{0%{opacity:0}to{opacity:1}}@keyframes sc-out{to{opacity:0;transform:scale(1.04)}}@keyframes sc-flame-in{0%{opacity:0;transform:scale(.2) translateY(40px)}55%{opacity:1;transform:scale(1.15) translateY(-6px)}75%{transform:scale(.96)}to{transform:scale(1)}}@keyframes sc-rays{to{transform:rotate(360deg)}}@keyframes sc-num-out{0%,40%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-70%)}}@keyframes sc-num-in{0%,40%{opacity:0;transform:translateY(70%)}80%{opacity:1;transform:translateY(-6%)}to{opacity:1;transform:translateY(0)}}@keyframes sc-dot-in{0%{opacity:0;transform:translateY(10px) scale(.6)}to{opacity:1;transform:none}}@keyframes sc-dot-ignite{0%{transform:scale(1);background:var(--surface-3)}50%{transform:scale(1.35)}to{transform:scale(1);background:linear-gradient(135deg,#ffd04a,#ff6a1a)}}@keyframes sc-hint{0%,to{opacity:.55}50%{opacity:1}}.stagger>*{animation-delay:calc(var(--i, 0) * 35ms)}.tile,.continue-card,.theory-section,.help-block,.ach,.lang-card,.choice-card{animation-delay:calc(var(--stage, 0) * var(--stage-step, 0ms) + min(var(--i, 0),12) * 35ms)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:560px){.card,.card-pad-lg{padding:18px}.tile-grid,.grid{grid-template-columns:1fr 1fr;gap:10px}.tile-grid.cols-2{grid-template-columns:1fr}.tile{min-height:104px;padding:14px}.options.two{grid-template-columns:1fr}.pair-list>li{padding:12px 14px}.streak-num{font-size:1.8rem}}
