:root{color-scheme:light;--bg:#f7fafc;--card:#fff;--fg:#273746;--muted:#5e7285;--border:#dee7ee;--accent:#6e94b5;--accent-ink:#4c7191;--on-accent:#fff;--sand:#e6c9a8;--sand-ink:#8a6743;--sand-on:#273746;--ok:#2a7d59;--bad:#b0503c}@media (prefers-color-scheme:dark){:root{color-scheme:dark;--bg:#273746;--card:#31465a;--fg:#f7fafc;--muted:#a7b8c7;--border:#3e566b;--accent:#8fb3d0;--accent-ink:#a6c6de;--on-accent:#273746;--sand-ink:#e2c4a0;--ok:#7ed4a8;--bad:#f0a891}}:root[data-theme=light]{color-scheme:light;--bg:#f7fafc;--card:#fff;--fg:#273746;--muted:#5e7285;--border:#dee7ee;--accent:#6e94b5;--accent-ink:#4c7191;--on-accent:#fff;--sand-ink:#8a6743;--ok:#2a7d59;--bad:#b0503c}:root[data-theme=dark]{color-scheme:dark;--bg:#273746;--card:#31465a;--fg:#f7fafc;--muted:#a7b8c7;--border:#3e566b;--accent:#8fb3d0;--accent-ink:#a6c6de;--on-accent:#273746;--sand-ink:#e2c4a0;--ok:#7ed4a8;--bad:#f0a891}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font:16px/1.55 system-ui,-apple-system,Segoe UI,sans-serif}.wrap{max-width:620px;margin:0 auto;padding:2rem 1.25rem max(4rem,calc(env(safe-area-inset-bottom) + 3rem))}.wrap-wide{max-width:900px}.brand{font-size:1.35rem;font-weight:700;letter-spacing:.01em}.status{color:var(--muted);font-size:.9rem;margin-top:.25rem}.card{border:1px solid var(--border);background:var(--card);border-radius:16px;padding:1.5rem;margin-top:1.25rem;box-shadow:0 1px 2px color-mix(in srgb,var(--fg) 5%,transparent)}.tag{display:inline-block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-ink);font-weight:700;margin-bottom:.5rem}.prompt{font-size:1.05rem;margin:0 0 .25rem}.explanation{color:var(--muted);margin:.25rem 0 0}.jp{font-size:2.4rem;font-weight:600;margin:.75rem 0}.reading{font-size:1rem;margin-left:.5rem}.chain{font-family:ui-monospace,SF Mono,monospace;color:var(--muted);margin-top:.5rem}input[type=email],input[type=password],input[type=text]{font:inherit;padding:.6rem .75rem;width:100%;border:1px solid var(--border);border-radius:10px;background:transparent;color:inherit}input:focus{outline:2px solid color-mix(in srgb,var(--accent) 28%,transparent);outline-offset:2px;border-color:var(--accent)}button{font:inherit;cursor:pointer;padding:.6rem 1rem;margin:.4rem .4rem 0 0;border:1px solid var(--border);border-radius:10px;background:transparent;color:inherit;transition:background .12s,border-color .12s}button:hover{border-color:var(--accent)}button.primary{background:var(--accent-ink);border-color:var(--accent-ink);color:var(--on-accent)}button.primary:hover{background:color-mix(in srgb,var(--accent-ink) 88%,var(--fg))}button:disabled{opacity:.45;cursor:default}.choices{display:flex;flex-direction:column;gap:.25rem;align-items:stretch}.choices button{text-align:left;margin:0}.verdict{font-weight:600;margin:.25rem 0}.verdict.ok{color:var(--ok)}.verdict.bad{color:var(--bad)}.err{margin:.25rem 0}.done,.err{color:var(--muted)}.done{text-align:center;padding:3rem 1rem}.mastery{margin-top:2rem;font-size:.85rem;color:var(--muted)}.mastery-bar{height:6px;border-radius:3px;background:var(--border);overflow:hidden;margin-top:.25rem}.mastery-bar>span{display:block;height:100%;background:var(--accent-ink)}.bars{display:flex;align-items:flex-end;gap:2px;height:80px;margin-top:.5rem}.bar{flex:1 1;min-height:2px;background:var(--accent);border-radius:2px 2px 0 0;opacity:.85}.study-progress{margin:.5rem 0 1rem}.study-progress .mastery-bar{height:8px}.study-remaining{display:flex;justify-content:space-between;font-size:.82rem;color:var(--muted);margin-bottom:.25rem}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:1rem;padding:max(.6rem,env(safe-area-inset-top)) max(1.25rem,env(safe-area-inset-right)) .6rem max(1.25rem,env(safe-area-inset-left));background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.nav-brand{font-size:1.3rem;font-weight:800;text-decoration:none;color:var(--fg)}.nav-offline{flex-shrink:0;padding:.15rem .5rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--sand) 60%,var(--border));background:color-mix(in srgb,var(--sand) 22%,transparent);color:var(--sand-ink);font-size:.72rem;font-weight:700;letter-spacing:.03em;white-space:nowrap}.nav-offline span{font-size:.6em;vertical-align:.12em}.nav-synced,.nav-syncing{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent-ink)}.nav-syncing span{animation:nav-spin 1.1s linear infinite;display:inline-block}@keyframes nav-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.nav-syncing span{animation:none}}.nav-links{display:flex;align-items:center;justify-content:center;gap:.25rem;flex:1 1}.nav-link{text-decoration:none;color:var(--muted);padding:.35rem .6rem;border-radius:8px;font-size:.9rem}.nav-link:hover{color:var(--fg);background:color-mix(in srgb,var(--fg) 8%,transparent)}.nav-link.active{color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 16%,transparent)}.nav-menu{position:relative}.nav-trigger{display:inline-flex;align-items:center;gap:.22rem;margin:0;border:0;background:transparent}.nav-trigger:hover{border-color:transparent}.nav-caret{font-size:.82rem;transition:transform .12s ease}.nav-trigger[aria-expanded=true] .nav-caret{transform:rotate(180deg)}.nav-popover{position:absolute;top:calc(100% + .55rem);left:50%;transform:translateX(-50%);width:17.5rem;padding:.45rem;border:1px solid var(--border);border-radius:12px;background:var(--bg);box-shadow:0 16px 38px color-mix(in srgb,var(--fg) 16%,transparent)}.nav-popover-link{display:block;padding:.6rem .7rem;border-radius:8px;color:var(--fg);text-decoration:none}.nav-popover-link.active,.nav-popover-link:hover{background:color-mix(in srgb,var(--accent) 11%,transparent)}.nav-popover-link span,.nav-popover-link strong{display:block}.nav-popover-link strong{font-size:.9rem}.nav-popover-link span{margin-top:.08rem;color:var(--muted);font-size:.78rem;line-height:1.35}.nav-settings{display:inline-grid;place-items:center;width:2.15rem;height:2.15rem;color:var(--muted);text-decoration:none;border-radius:8px;font-size:1.05rem}.nav-settings:hover{color:var(--fg);background:color-mix(in srgb,var(--fg) 8%,transparent)}.nav-settings.active{color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 16%,transparent)}.mobile-nav-panel,.mobile-nav-toggle{display:none}@media (max-width:760px){.nav{justify-content:space-between;padding:max(.6rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) .6rem max(1rem,env(safe-area-inset-left))}.nav-links{display:none}.mobile-nav-toggle{display:inline-grid;place-items:center;width:2.35rem;height:2.35rem;margin:0;padding:0;border:1px solid var(--border);border-radius:9px;background:color-mix(in srgb,var(--card) 90%,var(--bg));font-size:1.25rem}.mobile-nav-panel{display:block;position:absolute;top:100%;left:0;right:0;max-height:calc(100vh - 3.6rem);overflow-y:auto;padding:.65rem 1rem 1rem;border-bottom:1px solid var(--border);background:var(--bg);box-shadow:0 16px 30px color-mix(in srgb,var(--fg) 13%,transparent)}.mobile-nav-group{margin:.4rem 0;padding:.45rem;border:1px solid var(--border);border-radius:11px}.mobile-nav-group.active{border-color:color-mix(in srgb,var(--accent) 50%,var(--border))}.mobile-nav-heading{padding:.2rem .45rem .35rem;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.mobile-nav-link{display:block;padding:.5rem .55rem;border-radius:8px;color:var(--fg);text-decoration:none}.mobile-nav-link.active,.mobile-nav-link:hover{background:color-mix(in srgb,var(--accent) 11%,transparent)}.mobile-nav-link span,.mobile-nav-link strong{display:block}.mobile-nav-link strong{font-size:.92rem}.mobile-nav-link span{color:var(--muted);font-size:.78rem;line-height:1.35}}.page-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-top:1rem}.page-title{font-size:1.4rem;margin:0}.muted{color:var(--muted)}.small{font-size:.82rem}.jp .big,.jp.big{font-size:2rem}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) 420px;grid-gap:3rem;gap:3rem;align-items:center;max-width:980px;margin:0 auto;padding:4rem 1.5rem}.auth-intro{min-width:0}.auth-brand{display:inline-flex;align-items:center;gap:.65rem;font-weight:800;letter-spacing:.01em}.auth-mark{display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:9px;background:var(--sand);color:var(--sand-on);font-weight:800}.auth-intro h1{max-width:10em;margin:1.5rem 0 .75rem;font-size:2.85rem;line-height:1.05;letter-spacing:0}.auth-intro p{max-width:31rem;margin:0;color:var(--muted);font-size:1.05rem}.auth-chain{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border);color:var(--muted)}.auth-chain .jp{margin:0;color:var(--fg);font-size:1.35rem;font-weight:700}.auth-features{display:grid;grid-gap:.75rem;gap:.75rem;margin-top:1.25rem}.auth-feature{display:grid;grid-template-columns:2rem 1fr;grid-gap:.7rem;gap:.7rem;align-items:start}.auth-feature-icon{font-size:1.15rem;line-height:1.55}.auth-feature span,.auth-feature strong{display:block}.auth-feature strong{font-size:.95rem}.auth-feature div>span{color:var(--muted);font-size:.88rem;line-height:1.4}.auth-panel{width:100%;border:1px solid var(--border);background:color-mix(in srgb,var(--card) 94%,var(--bg));border-radius:10px;padding:1.35rem;box-shadow:0 20px 45px color-mix(in srgb,var(--fg) 10%,transparent)}.auth-panel-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1.25rem}.auth-panel h2{margin:0;font-size:1.45rem;line-height:1.2;letter-spacing:0}.auth-mode{flex-shrink:0}.field{display:flex;flex-direction:column;gap:.35rem;margin-top:.85rem}.field span{font-weight:650}.auth-hint,.field span{color:var(--muted);font-size:.82rem}.auth-hint{min-height:1.3rem;margin:.55rem 0 0}.btn.auth-google,.btn.auth-submit{width:100%;margin:.85rem 0 0}.auth-divider{display:flex;align-items:center;gap:.75rem;margin:1rem 0 .2rem;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.btn.auth-google{display:inline-flex;align-items:center;justify-content:center;gap:.55rem}.google-mark{display:inline-grid;place-items:center;width:1.3rem;height:1.3rem;border:1px solid var(--border);border-radius:50%;font-weight:800}.auth-alert{margin:.9rem 0 0;padding:.65rem .75rem;border-radius:8px;font-size:.9rem}.auth-alert.bad{color:var(--bad);background:color-mix(in srgb,var(--bad) 9%,transparent)}.auth-alert.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,transparent)}.auth-switch{margin:1rem 0 0;color:var(--muted);text-align:center}.link-button{margin:0;padding:0;border:0;border-radius:0;color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px}.link-button:hover{border-color:transparent}@media (max-width:760px){.auth-shell{grid-template-columns:1fr;gap:1.5rem;padding:2rem 1.1rem}.auth-intro h1{font-size:2.2rem;max-width:12em}.auth-panel-head{flex-direction:column}.auth-mode{width:100%}.auth-mode .seg-btn{flex:1 1}}.btn{display:inline-block;text-decoration:none;text-align:center;font:inherit;cursor:pointer;padding:.6rem 1rem;border-radius:10px;border:1px solid var(--border);background:transparent;color:inherit}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent-ink);border-color:var(--accent-ink);color:var(--on-accent)}.btn.primary:hover{background:color-mix(in srgb,var(--accent-ink) 88%,var(--fg))}.btn.big{padding:.8rem 1.4rem;font-size:1.05rem;font-weight:600}.hero{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.hero-num{font-size:2.6rem;font-weight:800;line-height:1}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.75rem;gap:.75rem;margin-top:.75rem}.stat{text-align:center}.stat-num{font-size:1.8rem;font-weight:800}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:.75rem;gap:.75rem;margin-top:.75rem}.tile{text-decoration:none;color:inherit;transition:border-color .12s}.tile:hover{border-color:var(--accent)}.tile-title{font-weight:700;margin-bottom:.25rem}.daily-dashboard{padding-top:.75rem}.daily-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-top:.5rem}.daily-heading h1{margin:0;font-size:clamp(2rem,7vw,3.1rem);line-height:1;letter-spacing:-.04em}.daily-heading p{max-width:29rem;margin:.75rem 0 0;color:var(--muted)}.daily-total{flex:0 0 auto;text-align:right}.daily-total strong{display:block;font-size:2.25rem;line-height:.9}.daily-total span{display:block;margin-top:.35rem;color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.05em}.daily-next{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.75rem;border-color:color-mix(in srgb,var(--sand) 62%,var(--border));background:color-mix(in srgb,var(--sand) 20%,var(--card))}.daily-next-copy{min-width:0}.daily-next-label{margin-bottom:.25rem;color:var(--sand-ink);font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.daily-next h2{margin:0;font-size:1.55rem}.daily-next p{max-width:27rem;margin:.35rem 0 .65rem;color:var(--muted)}.daily-due{font-size:.85rem;font-weight:650}.daily-primary{flex:0 0 auto}.daily-timebar{display:flex;gap:3px;height:5px;margin:.8rem .4rem 0;overflow:hidden;border-radius:999px}.daily-timebar span{min-width:1rem}.daily-timebar-review{background:var(--accent-ink)}.daily-timebar-immerse{background:var(--sand-ink)}.daily-timebar-speak{background:var(--muted)}.daily-routine{margin-top:2.2rem}.daily-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.25rem}.daily-section-head h2{margin:0;font-size:1rem}.daily-section-head span{color:var(--muted);font-size:.8rem}.daily-step{display:grid;grid-template-columns:2.5rem minmax(0,1fr) auto;grid-gap:.85rem;gap:.85rem;align-items:center;padding:1.15rem 0;border-bottom:1px solid var(--border)}.daily-step-number{color:color-mix(in srgb,var(--muted) 72%,transparent);font:700 .82rem/1 ui-monospace,SF Mono,monospace}.daily-step-title{display:flex;align-items:baseline;gap:.6rem}.daily-step-title h3{margin:0;font-size:1.02rem}.daily-step-title span{color:var(--accent-ink);font-size:.75rem;font-weight:750;text-transform:uppercase}.daily-step-copy p{margin:.2rem 0 0;color:var(--muted);font-size:.88rem}.daily-step-action{min-width:8.8rem}.daily-footnote{max-width:32rem;margin:1.5rem auto 0;color:var(--muted);font-size:.78rem;text-align:center}@media (max-width:560px){.daily-heading{align-items:flex-start}.daily-total strong{font-size:1.8rem}.daily-total span{max-width:6rem}.daily-next{align-items:stretch;flex-direction:column;padding:1.35rem}.daily-primary{width:100%}.daily-step{grid-template-columns:2rem minmax(0,1fr)}.daily-step-action{grid-column:2;width:100%}}.guide-page{--guide-line:color-mix(in srgb,var(--accent) 28%,var(--border))}.guide-head{align-items:center;margin:1rem 0 1.5rem}.guide-head>div:first-child{max-width:34rem}.guide-head h1{margin:0;font-size:clamp(2rem,5vw,3.25rem);line-height:1.02;letter-spacing:-.035em}.guide-lede{margin:1rem 0 0;color:var(--muted);font-size:1.08rem}.guide-chain{display:flex;flex-direction:column;align-items:center;gap:.1rem;min-width:11rem;padding:1rem 1.25rem;border:1px solid var(--guide-line);border-radius:16px;background:color-mix(in srgb,var(--sand) 18%,var(--card));color:var(--muted)}.guide-chain .jp{margin:0;color:var(--fg);font-size:1.25rem}.guide-toc{position:-webkit-sticky;position:sticky;top:3.6rem;z-index:5;display:flex;gap:.35rem;flex-wrap:wrap;margin:0 -1rem;padding:.55rem 1rem;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--bg) 90%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.guide-toc a{padding:.3rem .55rem;border-radius:7px;color:var(--muted);text-decoration:none;font-size:.82rem}.guide-toc a:hover{color:var(--fg);background:color-mix(in srgb,var(--fg) 8%,transparent)}.guide-section{scroll-margin-top:7.5rem;padding:4rem 0 1rem}.guide-section h2{max-width:24em;margin:.15rem 0 .8rem;font-size:clamp(1.5rem,3vw,2.15rem);line-height:1.15;letter-spacing:-.02em}.guide-section>p{max-width:46rem}.guide-kicker{color:var(--accent-ink);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.75rem;gap:.75rem;margin-top:1.4rem}.guide-card{padding:1.15rem;border:1px solid var(--border);border-radius:14px;background:var(--card)}.guide-card h3{margin:0;font-size:1rem}.guide-card p{margin:.35rem 0 0;color:var(--muted);font-size:.9rem}.guide-flow{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin:1.4rem 0}.guide-flow-step{display:inline-flex;align-items:center;gap:.4rem}.guide-flow-step span{padding:.38rem .65rem;border:1px solid var(--guide-line);border-radius:999px;font-size:.85rem;font-weight:650}.guide-flow-step b{color:var(--muted);font-weight:400}.guide-path{display:grid;grid-gap:.6rem;gap:.6rem;margin-top:1.5rem}.guide-path>div{display:grid;grid-template-columns:7rem 1fr;grid-gap:.8rem;gap:.8rem;padding-top:.6rem;border-top:1px solid var(--border)}.guide-path span{color:var(--muted)}.guide-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.5rem}.guide-trust{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:1.5rem;gap:1.5rem;align-items:center}.guide-rule{padding:1.2rem;border-left:3px solid var(--accent);border-radius:0 12px 12px 0;background:color-mix(in srgb,var(--accent) 8%,transparent)}.guide-rule span,.guide-rule strong{display:block}.guide-rule span{margin-top:.35rem;color:var(--muted);font-size:.9rem}.guide-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.5rem 1.5rem;gap:.5rem 1.5rem;max-width:46rem;padding-left:1.2rem}.guide-list li{padding-left:.15rem;color:var(--muted)}@media (max-width:650px){.guide-head,.guide-trust{display:block}.guide-chain{display:none}.guide-toc{top:3.55rem;margin:0 -.5rem;overflow-x:auto;flex-wrap:nowrap}.guide-toc a{white-space:nowrap}.guide-section{padding-top:3.25rem}.guide-grid,.guide-list,.guide-path>div{grid-template-columns:1fr}.guide-path>div{gap:.15rem}.guide-rule{margin-top:1.25rem}}.concept-list{display:flex;flex-direction:column;gap:.6rem;margin-top:1rem}.concept.locked{opacity:.55}.concept-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.concept-title{font-weight:700}.concept-summary{margin:.25rem 0 .5rem}.badge{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;padding:.15rem .5rem;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.badge.mastered{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,transparent)}.badge.learning{color:var(--accent-ink);border-color:color-mix(in srgb,var(--accent) 55%,transparent)}.badge.locked{opacity:.7}.inspector-search{display:flex;gap:.5rem;margin-top:1rem}.inspector-search input,.search{font:inherit;padding:.6rem .75rem;width:100%;border:1px solid var(--border);border-radius:10px;background:transparent;color:inherit}.search{margin:.75rem 0}.chips,.tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.6rem}.chip{font:inherit;cursor:pointer;padding:.35rem .7rem;border-radius:999px;border:1px solid var(--border);background:transparent;color:inherit}.chip:hover{border-color:var(--accent)}.inspector-result{margin-top:1rem}.inspector-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.inspector-head .jp{font-size:2rem;font-weight:700}.reading{color:var(--muted)}.form-table{display:flex;flex-direction:column;gap:.1rem;margin-top:.75rem}.form-row{display:grid;grid-template-columns:12rem 8rem 1fr;grid-gap:.5rem;gap:.5rem;padding:.4rem 0;border-top:1px solid var(--border);align-items:baseline}.form-name{color:var(--muted);font-size:.9rem}.form-result{font-size:1.15rem;font-weight:600}.form-chain{overflow-x:auto;white-space:nowrap}@media (max-width:560px){.form-row{grid-template-columns:1fr;gap:.1rem}}.tabs .tab{font:inherit;cursor:pointer;padding:.4rem .8rem;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--muted)}.tabs .tab.active{color:var(--accent-ink);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.grammar-item{margin-bottom:.6rem}.grammar-top{display:flex;justify-content:space-between;align-items:center}.grammar-title{font-size:1.3rem;font-weight:700}.grammar-meaning{margin:.25rem 0;font-weight:600}.unit-card.locked{opacity:.6}.unit-top{display:flex;justify-content:space-between;align-items:center;cursor:pointer;gap:.5rem}.unit-title{font-size:1.15rem;font-weight:700}.unit-caret{color:var(--muted)}.unit-lessons{margin-top:.75rem;display:flex;flex-direction:column;gap:.75rem}.lesson{padding-top:.75rem;border-top:1px solid var(--border)}.example{margin-top:.5rem;padding-left:.75rem;border-left:2px solid var(--border)}.example .jp{font-size:1.1rem}.setting{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.75rem}.setting-label{font-weight:600}.seg{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden}.seg-btn{font:inherit;cursor:pointer;margin:0;padding:.4rem .8rem;border:none;background:transparent;color:inherit;text-transform:capitalize}.seg-btn.active{background:var(--accent-ink);color:var(--on-accent)}.toggle{width:46px;height:26px;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--fg) 20%,transparent);position:relative;cursor:pointer;transition:background .15s}.toggle.on{background:var(--accent-ink);border-color:var(--accent-ink)}.toggle .knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--card);box-shadow:0 1px 2px rgb(0 0 0/.2);transition:left .15s}.toggle.on .knob{left:22px;background:var(--on-accent)}textarea.search{font-family:inherit}code{font-family:ui-monospace,SF Mono,monospace;font-size:.85em;background:color-mix(in srgb,var(--sand) 32%,transparent);padding:.1rem .3rem;border-radius:5px}.adaptive-line{display:flex;flex-wrap:wrap;gap:.4rem .25rem;align-items:flex-end;margin:.15rem 0 1rem}.adaptive-token{display:inline-flex;flex-direction:column;align-items:center;gap:.05rem;padding:.12rem .25rem;border-radius:8px;min-width:1.6rem}.adaptive-token.learning{border-bottom:2px solid color-mix(in srgb,var(--accent) 55%,transparent)}.adaptive-token.unknown{background:color-mix(in srgb,var(--accent) 12%,transparent)}.adaptive-surface{font-size:1.5rem;font-weight:650;line-height:1.25}.adaptive-surface.jp,.token-surface.jp{margin:0}.adaptive-gloss{max-width:8rem;color:var(--muted);font-size:.72rem;line-height:1.15;text-align:center;overflow-wrap:anywhere}ruby.adaptive-surface,ruby.token-surface{ruby-position:over}rt{color:var(--muted);font-size:.62em;font-weight:500;line-height:1}.token-list{display:flex;flex-direction:column;gap:.1rem}.token-row{padding:.6rem 0;border-top:1px solid var(--border)}.token-row:first-child{border-top:none}.token-row.familiarity-unknown{margin-top:.2rem;padding:.65rem .75rem;border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--accent) 6%,transparent)}.token-main{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.token-surface{font-size:1.35rem;font-weight:600}.token-meaning{margin-top:.1rem}.token-actions{display:flex;gap:.4rem;margin-top:.4rem;flex-wrap:wrap}.token-actions .chip{text-decoration:none;font-size:.8rem;padding:.25rem .55rem}.note-item{margin-top:.6rem;padding-left:.75rem;border-left:2px solid var(--border)}.attempt-line{margin:.3rem 0 .6rem}.feedback-verdict{display:flex;align-items:center;gap:.5rem;margin:.3rem 0 .75rem;flex-wrap:wrap}.natural-box{background:color-mix(in srgb,var(--accent) 8%,transparent);border-radius:12px;padding:.75rem 1rem;margin:.5rem 0}.issue-list{display:flex;flex-direction:column;gap:.5rem;margin:.75rem 0}.issue{padding:.5rem .75rem;border-left:3px solid var(--bad);background:color-mix(in srgb,var(--bad) 7%,transparent);border-radius:0 8px 8px 0}.bad-text{color:var(--bad)}.breakdown{display:flex;flex-wrap:wrap;gap:.4rem;margin:.75rem 0}.breakdown-part{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.35rem .6rem;border:1px solid var(--border);border-radius:10px}.tips{margin:.5rem 0 0;padding-left:1.1rem;color:var(--muted)}.tips li{margin:.2rem 0}.word-card{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.word-card .chip{flex-shrink:0}.flashcard-list{display:flex;flex-direction:column}.flashcard-copy{min-width:0;overflow-wrap:anywhere}.flashcard-list-front{margin:0;font-size:1.4rem}.flashcard-back-tag{display:block;margin:.8rem 0 .2rem}.flashcard-source{margin-top:.6rem}.flashcard-actions{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.flashcard-actions .chip{margin:0}.flashcard-form h2{margin:0 0 .25rem;font-size:1.1rem}.flashcard-form textarea{width:100%;resize:vertical;font:inherit;padding:.6rem .75rem;border:1px solid var(--border);border-radius:10px;background:transparent;color:inherit}.flashcard-form textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 28%,transparent);outline-offset:2px;border-color:var(--accent)}.flashcard-form-actions{display:flex;gap:.4rem;margin-top:.8rem}.flashcard-review{text-align:center}.flashcard-front{font-size:2.6rem;overflow-wrap:anywhere}.flashcard-answer{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.flashcard-ratings{margin-top:1rem}.preserve-lines{white-space:pre-wrap}@media (max-width:560px){.word-card{flex-direction:column}.flashcard-actions{justify-content:flex-start}}.video-wrap{position:relative;width:100%;aspect-ratio:16/9;margin-top:1rem;border-radius:12px;overflow:hidden;background:#1b2733}.video-wrap #yt-player,.video-wrap :global(iframe){position:absolute;inset:0;width:100%;height:100%;border:0}.caption-bar{margin-top:.75rem}.caption-src{margin-bottom:.4rem}.audio-capture{margin-top:.75rem;padding-top:.6rem;border-top:1px solid var(--border)}.current-line{font-size:1.7rem;line-height:1.3;min-height:2.2rem;margin:.25rem 0 .6rem}.looked-up-line{margin-top:1rem}kbd{font-family:ui-monospace,monospace;font-size:.8em;border:solid var(--border);border-width:1px 1px 2px;border-radius:5px;padding:.05rem .35rem}