.plan-items:empty{display:none}.app-header{z-index:45;top:max(var(--space-5), env(safe-area-inset-top));right:var(--space-4);position:absolute}.app-avatar{border:1px solid var(--color-border);background:var(--color-primary-soft);width:2.25rem;height:2.25rem;color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);border-radius:50%;place-items:center;text-decoration:none;display:grid}.app-user{align-items:center;gap:var(--space-3);display:inline-flex}.wizard{gap:var(--space-4);flex-direction:column;display:flex}.plan-items{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.plan-item{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);box-sizing:border-box;min-height:3.5rem;transition:background-color .15s;display:flex}.plan-item:has(a):hover{background:var(--color-bg-subtle)}.plan-item+.plan-item{border-top:1px solid var(--color-border)}body[data-session=active] .tabs-bar,body[data-session=active] .sidebar,body[data-focus=on] .sidebar{display:none}body[data-focus=on] .app-layout,body[data-session=active] .app-layout{justify-content:center}body[data-session=active] .app-header{display:none}.session-body{gap:var(--space-4);flex-direction:column;flex:1;display:flex}.exit-dialog{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);max-width:26rem;width:calc(100% - var(--space-8));box-shadow:var(--shadow-md);background:var(--color-bg);color:var(--color-text)}.exit-dialog::backdrop{background:#00000080}.exit-dialog-content{gap:var(--space-3);flex-direction:column;display:flex}.exit-dialog-actions{gap:var(--space-2);margin-top:var(--space-2);display:flex}.exit-dialog-actions>*{flex:1}.exam-runner>header{flex-wrap:nowrap;align-items:center}.exam-head-title{flex:1;min-width:0}.exam-head-title p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.exam-head-title h1{font-size:var(--text-lg);white-space:nowrap}.toolbar{gap:var(--space-1);padding:var(--space-1);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex}.tool-btn{min-width:0;min-height:52px;padding:var(--space-1);font:inherit;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;display:flex}.tool-btn span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tool-btn:hover:not(:disabled){color:var(--color-text);background:var(--color-bg-subtle)}.tool-btn[aria-pressed=true]{color:var(--color-primary-text);font-weight:var(--weight-semibold)}.tool-btn:disabled{opacity:.45;cursor:not-allowed}.tool-btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.tabs-bar{background:var(--color-bg);box-shadow:var(--shadow-bar);padding:var(--space-2) var(--space-2) max(var(--space-2), env(safe-area-inset-bottom));border-radius:0;margin-top:auto;display:flex;position:sticky;bottom:0}.tab-icon{display:inline-flex}.stat{flex-direction:column;min-width:70px;display:flex}.stat strong{font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight)}.card-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.tabs-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.app-layout{min-height:100dvh;display:flex}.desktop-only{display:none}.mobile-tabs-container{z-index:40;position:fixed;bottom:0;left:0;right:0}.mobile-tabs-container .tabs-bar{position:static}@media (min-width:768px){.mobile-only{display:none!important}.desktop-only{display:flex}.app-layout{flex-direction:row}.sidebar{width:var(--sidebar-width);gap:var(--space-2);padding:max(var(--space-2), env(safe-area-inset-top)) var(--space-2) var(--space-2);background:var(--color-bg-subtle);border-right:1px solid var(--color-border);box-sizing:border-box;flex-direction:column;flex:none;height:100dvh;position:sticky;top:0}.sidebar-header{min-height:3rem;padding:0 var(--space-2);align-items:center;display:flex}.sidebar-nav{padding-top:var(--space-2);flex:1}.sidebar-footer{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-2) var(--space-1);border-top:1px solid var(--color-border);font-size:var(--text-sm);display:flex}.sidebar .tabs-bar{box-shadow:none;gap:var(--space-1);background:0 0;border-radius:0;flex-direction:column;padding:0;position:static}.fab{width:fit-content;box-shadow:none;align-self:flex-start;position:static}.chat-bar{bottom:var(--space-4)}.settings-segmented{flex:none}.settings-segment{padding:0 var(--space-4);flex:none}.pricing-grid{grid-template-columns:1fr 1fr;align-items:start}.library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.welcome-back{border-color:var(--color-success)}.empty-state{align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);text-align:center;flex-direction:column;display:flex}.empty-state-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);margin:0}.empty-state-body{max-width:34ch;margin:0}.empty-state-action{margin-top:var(--space-2)}.state-icon{border-radius:var(--radius-lg);background:var(--color-primary-soft);width:3rem;height:3rem;color:var(--color-text);flex:none;place-items:center;display:grid}.week-col{flex-direction:column;align-items:center;gap:4px;display:flex}.study-chart{height:7.5rem;margin-top:var(--space-2);position:relative}.study-bars{gap:var(--space-1);grid-template-columns:repeat(14,minmax(0,1fr));height:100%;margin:0;padding:0;list-style:none;display:grid}.study-bars li{align-items:center;gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.study-bar-track{background:color-mix(in srgb, var(--color-chart) 12%, transparent);border-radius:var(--radius-sm);flex:1;align-items:flex-end;width:100%;max-width:1.25rem;display:flex;overflow:hidden}.study-bar{background:var(--color-chart);border-radius:var(--radius-sm);width:100%;display:block}.study-day{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1}.study-chart{--study-day-row:calc(var(--text-xs) + var(--space-1))}.study-goal{left:0;right:0;bottom:calc(var(--study-day-row) + (100% - var(--study-day-row)) * var(--goal,0));border-top:var(--stroke) dashed var(--color-text-muted);pointer-events:none;z-index:1;position:absolute}.study-legend{align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted);align-self:flex-end;margin:0;display:inline-flex}.study-legend:before{content:"";border-top:var(--stroke) dashed var(--color-text-muted);width:1.25rem}.feed-card{scroll-snap-align:start}.feed-more,.feed-done{text-align:center;align-items:center;min-height:auto}.recall-stage{gap:var(--space-4);flex-direction:column;animation:.3s ease-out duo-enter;display:flex}.recall-flash{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-5);text-align:center;background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-xl);border-bottom-width:5px;flex-direction:column;display:flex}.recall-flash.is-revealed{animation:.4s ease-out recall-flip}.recall-word{font-size:var(--text-3xl);margin:0}.recall-back{gap:var(--space-2);padding-top:var(--space-3);border-top:2px dashed var(--color-border);flex-direction:column;width:100%;display:flex}.recall-back p{margin:0}.recall-meaning{font-size:var(--text-lg);font-weight:var(--weight-semibold)}.recall-ratings{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (min-width:640px){.recall-ratings{grid-template-columns:repeat(4,minmax(0,1fr))}.library-grid{gap:var(--space-4)}.onb-ask-bubble{font-size:var(--text-xl)}.onb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.onb-grid--tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}.recorder audio{width:100%}.writing-area{box-sizing:border-box;resize:vertical;width:100%}.prewrap{white-space:pre-wrap}.excerpt{padding:var(--space-2) 0;border-top:1px solid var(--color-border)}.diff-added{background:color-mix(in srgb, var(--color-success) 20%, transparent);text-decoration:none}.diff-removed{background:color-mix(in srgb, var(--color-error) 15%, transparent);text-decoration:line-through}.flagged-words{margin:var(--space-2) 0 0;gap:var(--space-2);padding:0;list-style:none;display:grid}.flagged-words li{align-items:baseline;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-subtle);flex-wrap:wrap;display:flex}.flagged-words li[data-error=mispronunciation],.flagged-words li[data-error=omission]{border-color:color-mix(in srgb, var(--color-error) 45%, transparent);background:var(--color-error-soft)}.flagged-words li[data-error=insertion],.flagged-words li[data-error=none]{border-color:color-mix(in srgb, var(--color-warning) 45%, transparent);background:var(--color-warning-soft)}.save-status{align-items:center;gap:var(--space-1);display:inline-flex}.save-status-saving{color:var(--color-text-muted)}.save-status-saved{color:var(--color-success-text)}.save-status-failed{color:var(--color-error-text);align-items:center;gap:var(--space-2);display:inline-flex}.save-status-restored{color:var(--color-text-muted)}.save-spinner{vertical-align:middle;border:2px solid;border-top-color:#0000;border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin;display:inline-block}.save-icon{justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.save-retry-btn{border-radius:var(--radius-md);color:inherit;font:inherit;font-size:var(--text-xs);font-weight:var(--weight-medium);padding:2px var(--space-2);cursor:pointer;background:0 0;border:1px solid;line-height:1.2;transition:background-color .15s,opacity .15s}.save-retry-btn:hover{background:color-mix(in srgb, currentColor 10%, transparent)}.save-retry-btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.word-counter{align-items:center;gap:var(--space-1);display:inline-flex}.passage-text{white-space:pre-line;margin-top:var(--space-2);max-height:60vh;line-height:1.6;overflow-y:auto}.invite-link code{overflow-wrap:anywhere;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);display:block}.checkbox{align-items:center;gap:var(--space-2);color:var(--color-text)!important;flex-direction:row!important}.streak-card{text-align:center;align-items:center}.streak-title{font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight)}.streak-week{gap:var(--space-2);grid-template-columns:repeat(7,minmax(0,1fr));width:100%;margin:0;padding:0;list-style:none;display:grid}.streak-day{min-width:0;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted);flex-direction:column;align-items:center;gap:4px;display:flex}.streak-dot{aspect-ratio:1;border:1px solid var(--color-border-strong);width:100%;max-width:2rem;color:var(--color-primary-contrast);font-weight:var(--weight-semibold);border-radius:50%;place-items:center;display:grid}@media (max-width:359px){.streak-week{gap:2px}.streak-day{font-size:.6875rem}}.shield-chip{padding:2px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-primary-soft);color:var(--color-primary-text);font-size:var(--text-xs);font-weight:var(--weight-medium);align-items:center;gap:6px;display:inline-flex}.shield-chip span{display:inline-flex}.stat-tiles{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (min-width:420px){.stat-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}.stat-tile{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xs);flex-direction:column;display:flex;overflow:hidden}.stat-tile-head{padding:var(--space-3) var(--space-3) 0;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);align-items:center;gap:6px;display:flex}.stat-tile-icon{color:var(--tone-text);display:inline-flex}.stat-tile-value{padding:var(--space-1) var(--space-3) var(--space-3);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);font-variant-numeric:tabular-nums}.stat-tile:has(.stat-tile-action) .stat-tile-value{padding-bottom:var(--space-1)}.stat-tile-action{padding:0 var(--space-3) var(--space-3);margin-top:auto;display:block}.estimate-card{background:var(--color-bg-subtle)}.rings{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(96px,1fr));margin:0;padding:0;list-style:none;display:grid}.rings li{align-items:center;gap:var(--space-2);text-align:center;font-size:var(--text-sm);font-weight:var(--weight-medium);flex-direction:column;display:flex}.ring-track{fill:none;stroke:color-mix(in srgb, var(--color-chart) 18%, transparent);stroke-width:7px}.ring-value{fill:none;stroke:var(--color-chart);stroke-width:7px;stroke-linecap:round}.ring-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;position:absolute}.calendar-head{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted)}.cal-day{aspect-ratio:1;border-radius:var(--radius-md);width:100%;max-width:2.25rem;font-size:var(--text-sm);font-weight:var(--weight-regular);color:var(--color-text);place-items:center;margin:0 auto;display:grid}.plan-card-head{align-items:center}.plan-badge{padding:2px var(--space-2);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-primary-soft);color:var(--color-text);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap}.upgrade-head{align-items:flex-start;gap:var(--space-3);display:flex}.upgrade-icon{border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-primary-contrast) 14%, transparent);flex:none;place-items:center;width:2.5rem;height:2.5rem;display:grid}.upgrade-features{gap:var(--space-2);font-size:var(--text-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.upgrade-features li{align-items:flex-start;gap:var(--space-2);display:flex}.settings-page{gap:var(--space-4);flex-direction:column;display:flex}.account-row{align-items:center;gap:var(--space-3);flex-direction:row}.account-main{flex-direction:column;display:flex}.settings-group{gap:var(--space-2);flex-direction:column;display:flex}.settings-group-title{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);padding:0 var(--space-1)}.settings-group-description{padding:0 var(--space-1);margin:0}.settings-rows{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-xs);margin:0;padding:0;list-style:none;overflow:hidden}.settings-row+.settings-row{border-top:var(--stroke-thin) solid var(--color-border)}.settings-hit{align-items:center;gap:var(--space-3);box-sizing:border-box;width:100%;min-height:calc(var(--control-h) + var(--space-2));padding:var(--space-3) var(--space-4);color:inherit;font:inherit;text-align:left;text-decoration:none;display:flex}a.settings-hit,label.settings-hit,button.settings-hit{cursor:pointer}a.settings-hit:hover,label.settings-hit:hover,button.settings-hit:hover:not(:disabled){background:var(--color-bg-subtle)}.settings-hit:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}label.settings-hit:has(:focus-visible){outline:2px solid var(--color-focus);outline-offset:-2px}label.settings-hit :focus-visible{outline:none}button.settings-hit{background:0 0;border:none}button.settings-hit:disabled{cursor:not-allowed;opacity:.6}.settings-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.settings-label{font-size:var(--text-sm);font-weight:var(--weight-medium);flex:1}.settings-text .settings-label{flex:none}.settings-item-label{overflow-wrap:anywhere}.settings-detail{font-size:var(--text-sm);font-weight:var(--weight-regular);flex:none}.settings-icon{border-radius:var(--radius-md);background:var(--color-well-primary);width:2rem;height:2rem;color:var(--color-text);flex:none;place-items:center;display:grid}.settings-chevron{color:var(--color-text-muted);display:inline-flex}.settings-field input{width:8.5rem;min-height:var(--control-h);padding:0 var(--space-3);font:inherit;font-size:var(--text-sm);color:var(--color-text);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);background:0 0;flex:none}.settings-field input[type=number]{width:4.5rem}.settings-field input:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-focus) 30%, transparent);outline:none}.settings-item:has(.settings-segmented){flex-wrap:wrap}.settings-segmented{background:var(--color-primary-soft);border-radius:var(--radius-lg);flex:100%;gap:2px;padding:3px;display:flex}.settings-segment{min-height:calc(var(--control-h) - 6px);padding:0 var(--space-3);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);white-space:nowrap;border-radius:var(--radius-md);cursor:pointer;background:0 0;border:1px solid #0000;flex:1}.settings-segment:hover{color:var(--color-text)}.settings-segment[aria-pressed=true],.settings-segment[aria-checked=true]{font-weight:var(--weight-semibold);color:var(--color-text);background:var(--color-bg);border-color:var(--color-border);box-shadow:var(--shadow-sm)}.settings-segment:focus-visible{outline-offset:-2px}.segmented{flex:none}.segmented .settings-segment{flex:1}.row-meta{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;flex:none}.feed-card.feed-row{align-items:center;gap:var(--space-2);flex-direction:row;padding:0;display:flex;overflow:hidden}.feed-row-hit{align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-4);color:inherit;flex:1;text-decoration:none;display:flex}.feed-row-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.feed-row[data-tint] .kind{color:var(--tint-accent);font-weight:var(--weight-bold)}.feed-done-art{aspect-ratio:5/4;width:min(200px,60%);margin:0 auto}.atile-grid--compact .atile-hit{min-height:0}@media (max-width:560px){.atile-grid--compact{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr))}.atile-grid--compact .atile-hit{padding:var(--space-3) var(--space-2);text-align:center;align-items:center}.atile-grid--compact .atile-art{width:44px;height:44px}.atile-grid--compact .atile-title{font-size:var(--text-sm)}}.feed-row-hit:hover{background:var(--color-bg-subtle)}.feed-row-hit:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.feed-row-title{font-size:var(--text-base);font-weight:var(--weight-semibold)}.feed-row-side{align-items:center;gap:var(--space-1);padding-right:var(--space-3);display:flex}.feed-row-side .tool-btn{flex:none;width:3.5rem}.clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.fab{z-index:35;right:var(--space-4);bottom:calc(76px + var(--space-4) + env(safe-area-inset-bottom));align-items:center;gap:var(--space-2);min-height:52px;padding:0 var(--space-5);font:inherit;font-weight:var(--weight-bold);color:var(--color-primary-contrast);background:var(--color-primary-strong);border-radius:var(--radius-pill);box-shadow:var(--shadow-primary);cursor:pointer;border:none;display:inline-flex;position:fixed}.fab:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.notice-row .settings-row{align-items:center;display:flex}.notice-row .settings-hit{flex:1;min-width:0}.notice-dismiss{width:44px;height:44px;margin-right:var(--space-2);font:inherit;color:var(--color-text-muted);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;flex:none}.notice-dismiss:hover{color:var(--color-text);background:var(--color-bg-subtle)}@media (max-width:767px){.streak-card{gap:var(--space-2);padding:var(--space-4)}.streak-card .state-icon{display:none}.streak-title{font-size:var(--text-xl)}.stat-tiles{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr))}.stat-tile-head{padding:var(--space-2) var(--space-2) 0}.stat-tile-value{padding:2px var(--space-2) var(--space-2);font-size:var(--text-lg)}}.choice-check{text-align:center;width:1.5rem;font-weight:var(--weight-bold);color:var(--color-primary-text);flex:none}.choice-rows .settings-hit:has(:focus-visible){outline:2px solid var(--color-focus);outline-offset:-2px}.notice-line{align-items:center;gap:var(--space-3);font-size:var(--text-sm);margin:0;display:flex}.row-tool{flex:none;width:3.5rem}.chat-bar{bottom:calc(var(--tabs-bar-reserve) - var(--space-3));z-index:5;gap:var(--space-2);padding:var(--space-2) 0;background:var(--color-bg);flex-direction:column;display:flex;position:sticky}.chat-bar-row{align-items:flex-end;gap:var(--space-2);display:flex}.chat-bar textarea{field-sizing:content;min-height:44px;max-height:9rem;padding:10px var(--space-4);font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);resize:none;border-radius:22px;flex:1}.chat-bar textarea:focus{border-color:var(--color-focus);outline:none}.chat-send{width:44px;height:44px;color:var(--color-primary-contrast);background:var(--color-primary-strong);cursor:pointer;border:none;border-radius:50%;flex:none;place-items:center;display:grid}.chat-send:disabled{opacity:.45;cursor:not-allowed}.chat-send:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.app-avatar{padding:0;overflow:hidden}.app-avatar-face{place-items:center;width:100%;height:100%;display:grid}.sidebar-user{align-items:center;gap:var(--space-2);display:inline-flex}.profile-photo{align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);display:flex}.profile-photo-main{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.profile-photo-main h2{font-size:var(--text-base)}.profile-photo-pick{cursor:pointer}.profile-photo-pick:has(:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}.menu-page{gap:var(--space-5);flex-direction:column;display:flex}.trial-card{border-color:var(--color-primary);background:var(--color-primary-soft)}.trial-card:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.trial-countdown{color:var(--color-primary-text);font-weight:var(--weight-semibold);margin:0}.interval-picker{gap:var(--space-2);border:0;flex-direction:column;margin:0;padding:0;display:flex}.interval-picker legend{margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:0}.interval-option{align-items:center;gap:var(--space-3);min-height:var(--tap-target);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-xs);cursor:pointer;display:flex}.interval-option:has(input:checked){border-color:var(--color-primary);background:var(--color-primary-soft)}.interval-option:has(input:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}.interval-option input{width:1rem;height:1rem;accent-color:var(--color-primary-strong);flex:none;margin:0}.interval-main{flex-direction:column;flex:1;gap:2px;display:flex}.interval-price{font-size:var(--text-sm)}.interval-monthly{font-size:var(--text-xs);color:var(--color-text-muted)}.interval-save{padding:2px var(--space-2);border-radius:var(--radius-md);background:var(--color-primary-strong);color:var(--color-primary-contrast);font-size:var(--text-xs);font-weight:var(--weight-medium);flex:none}.upgrade-link{white-space:nowrap}.upgrade-link-icon{display:inline-flex}.pricing-head h1{margin-bottom:var(--space-2)}.pricing-head p{margin:0}.pricing-grid{gap:var(--space-4);display:grid}.pricing-plan{gap:var(--space-4);padding:var(--space-6);border-radius:var(--radius-card)}.pricing-plan h2,.pricing-plan p{margin:0}.pricing-price{font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight)}.pricing-features{gap:var(--space-2);font-size:var(--text-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.pricing-features li{align-items:flex-start;gap:var(--space-2);display:flex}.auth-shell{box-sizing:border-box;justify-content:center;align-items:center;gap:var(--space-6);min-height:100dvh;padding:max(var(--space-6), env(safe-area-inset-top)) var(--space-4) max(var(--space-6), env(safe-area-inset-bottom));background:var(--color-bg-subtle);flex-direction:column;display:flex}.auth-brand{color:var(--color-text);text-decoration:none}.auth-main{gap:var(--space-4);flex-direction:column;width:100%;max-width:24rem;display:flex}.auth-field{gap:var(--space-2);flex-direction:column;display:flex}.auth-field-label{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.auth-hint{color:var(--color-text-muted)}.auth-aside-link{min-height:44px;font-size:var(--text-sm);color:var(--color-text);align-items:center;text-decoration:none;display:inline-flex}.auth-aside-link:hover{text-decoration:underline}.auth-footer{text-align:center;font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.auth-footer a{color:var(--color-text);font-weight:var(--weight-medium)}.auth-notice-error{color:var(--color-error-text);background:var(--color-error-soft);border-color:color-mix(in srgb, var(--color-error) 45%, transparent)}.vocab-due,.review-done{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.review-done p{margin:0}.account-main{flex:1;min-width:0}.account-edit{flex-wrap:wrap;align-items:flex-end}.account-edit .account-main{gap:var(--space-2);flex-direction:column;display:flex}.account-actions{gap:var(--space-2);display:flex}.community-threads,.community-posts,.community-blocked{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.community-thread-link{color:var(--color-text);text-decoration:none}.community-thread-link:hover strong{text-decoration:underline}.community-excerpt{margin:var(--space-1) 0}.community-meta{margin:0 0 var(--space-2)}.community-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.community-actions{gap:var(--space-3);margin-top:var(--space-2);display:flex}.community-composer:not(.chat-bar) textarea{min-height:6rem}.community-report fieldset{gap:var(--space-1);border:0;margin:0;padding:0;display:grid}.community-radio{align-items:center;gap:var(--space-2);font-weight:var(--weight-regular);display:flex}.community-rules ul{padding-left:var(--space-5);gap:var(--space-1);margin:0;display:grid}.community-notice{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-subtle);margin:0}.community-blocked li{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.community-question{border-top:1px solid var(--color-border);padding-top:var(--space-4)}.community-stem{padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-border-strong);background:var(--color-bg-subtle);border-radius:var(--radius-md);white-space:pre-wrap;margin:0}.profile-form fieldset{border:0;margin:0;padding:0}.profile-form legend{font-weight:var(--weight-semibold);margin-bottom:var(--space-2)}.profile-section-title{font-size:var(--text-lg);margin:var(--space-4) 0 0}.profile-consent label{align-items:flex-start;gap:var(--space-2);font-weight:var(--weight-regular);display:flex}.profile-consent input[type=checkbox]{flex:none;margin-top:.2em}.community-filter{align-items:center;gap:var(--space-2);display:flex}.tab-badge{border-radius:var(--radius-pill);background:var(--color-primary-strong);min-width:1.1rem;color:var(--color-primary-contrast);font-size:.6875rem;font-weight:var(--weight-semibold);text-align:center;padding:0 .3rem;line-height:1.1rem;position:absolute;top:2px;left:calc(50% + 6px)}.community-notifications ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.community-notifications li{gap:2px;display:grid}.self-check{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.self-check h2{font-size:var(--text-lg);margin:0}.self-check p{margin:0}.self-check-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.self-check-item{align-items:flex-start;gap:var(--space-3);min-height:var(--tap-target);cursor:pointer;display:flex}.self-check-item input{width:1.25rem;height:1.25rem;accent-color:var(--color-chart);flex:none;margin-top:.15rem}.self-check-summary{align-items:center;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);display:flex}.community-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.community-head h1{margin:0}.community-rules-toggle{display:contents}.community-rules-panel{flex-basis:100%}.community-rules-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.community-rules-list li{align-items:flex-start;gap:var(--space-3);display:flex}.community-rules-icon{border-radius:var(--radius-md);background:var(--color-well-primary);width:2.25rem;height:2.25rem;color:var(--color-primary-text);flex:none;place-items:center;display:grid}.community-votes{align-items:center;gap:var(--space-2);margin-inline-end:auto;display:inline-flex}.community-vote,.community-vote-static{align-items:center;gap:var(--space-1);font-variant-numeric:tabular-nums;display:inline-flex}.community-vote{min-height:var(--tap-target);min-width:var(--tap-target);padding:0 var(--space-3);border:var(--stroke) solid var(--color-border-strong);border-radius:var(--radius-pill);color:var(--color-text-muted);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;justify-content:center}.community-vote:hover:not(:disabled){background:var(--color-primary-soft)}.community-vote[aria-pressed=true]{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-text)}.community-vote:disabled{cursor:progress}.community-actions{flex-wrap:wrap;align-items:center}.topic-map{gap:var(--space-4);flex-direction:column;display:flex}.topic-map h1,.topic-map h2{margin:0}.topic-map-summary{gap:var(--space-2);display:grid}.topic-map-count{font-size:var(--text-lg);font-weight:var(--weight-bold);margin:0}.topic-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.topic-row{align-items:center;gap:var(--space-1);border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) auto;display:grid}.topic-row-hit{align-items:center;gap:var(--space-3);width:100%;min-height:56px;padding:var(--space-3) 0;font:inherit;text-align:left;color:inherit;cursor:pointer;background:0 0;border:none;display:flex}.topic-row-hit .topic-row-main{flex:1}.topic-row-hit:disabled{cursor:progress}.topic-row-hit:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-md)}.topic-row:last-child{border-bottom:none}.topic-row-icon{border-radius:var(--radius-md);background:var(--color-well-grey);width:2.25rem;height:2.25rem;color:var(--color-text-muted);place-items:center;display:grid}.topic-row[data-status=IN_PROGRESS] .topic-row-icon{background:var(--color-well-primary);color:var(--color-primary-text)}.topic-row[data-status=COMPLETED] .topic-row-icon{background:var(--color-well-green);color:var(--color-success-text)}.topic-row[data-weak] .topic-row-icon{background:var(--color-well-red);color:var(--color-error-text)}.topic-row-main{gap:var(--space-1);min-width:0;display:grid}.topic-row-title{font-weight:var(--weight-semibold)}.topic-row-status{font-weight:var(--weight-semibold);color:var(--color-text-muted);white-space:nowrap}.topic-row[data-status=COMPLETED] .topic-row-status{color:var(--color-success-text)}.topic-row[data-weak] .topic-row-status{color:var(--color-error-text)}.topic-focus{min-width:var(--tap-target);min-height:var(--tap-target);border-radius:var(--radius-pill);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;place-items:center;display:grid}.topic-focus:hover:not(:disabled){background:var(--color-primary-soft)}.topic-focus[aria-pressed=true]{color:var(--color-warning-text)}.topic-focus:disabled{cursor:not-allowed;opacity:.4}.roadmap-facts{gap:var(--space-2);flex-wrap:wrap;display:flex}.roadmap-fact{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--color-primary-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);display:inline-flex}.roadmap-date-form{gap:var(--space-2);max-width:22rem;display:grid}.roadmap-week>summary{justify-content:space-between;align-items:baseline;gap:var(--space-2);min-height:var(--tap-target);cursor:pointer;flex-wrap:wrap;display:flex}.roadmap-week-title{font-weight:var(--weight-bold)}.roadmap-days{margin:var(--space-3) 0 0;padding:0;list-style:none;display:grid}.roadmap-day{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-top:1px solid var(--color-border);grid-template-columns:4.5rem auto minmax(0,1fr);display:grid}.roadmap-day-date{display:grid}.roadmap-day-icon{border-radius:var(--radius-md);background:var(--tint-bg,var(--color-well-primary));width:2.25rem;height:2.25rem;color:var(--tint-accent,var(--color-primary-text));place-items:center;display:grid}.roadmap-day-main{min-width:0;display:grid}.roadmap-day-kind{font-weight:var(--weight-bold);color:var(--tint-accent,var(--color-text-muted))}.roadmap-strip{gap:var(--space-1);flex-basis:100%;display:flex}.roadmap-strip-day{border-radius:var(--radius-pill);background:var(--tint-accent);flex:1;max-width:2.5rem;height:.5rem}.library-search{align-items:center;display:flex;position:relative}.library-search-icon{color:var(--color-text-muted);display:inline-flex;position:absolute;inset-inline-start:var(--space-3)}.library-search input{width:100%;min-height:var(--control-h-sm);padding:var(--space-2) var(--space-3) var(--space-2) calc(var(--space-3) * 2 + 20px);border:var(--stroke-thin) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--text-base)}.library-search input:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.library-chips{gap:var(--space-2);padding-bottom:var(--space-1);scrollbar-width:none;white-space:nowrap;display:flex;overflow-x:auto}.library-chips::-webkit-scrollbar{display:none}.library-group{gap:var(--space-3);margin-top:var(--space-2);flex-direction:column;display:flex}.library-group-title{align-items:center;gap:var(--space-2);margin:var(--space-2) 0 0;font-size:var(--text-lg);flex-wrap:wrap;display:flex}.library-group-icon{border-radius:var(--radius-md);background:var(--tint-bg);width:32px;height:32px;color:var(--tint-accent);place-items:center;display:inline-grid}.library-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.library-tile{min-width:0;display:flex}@media (min-width:1100px){.library-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.library-tile-hit{box-sizing:border-box;gap:var(--space-2);width:100%;min-height:100%;padding:var(--space-3) var(--space-3) var(--space-4);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-card);color:var(--color-text);flex-direction:column;text-decoration:none;display:flex}.library-tile-hit:hover{box-shadow:var(--shadow-sm), var(--shadow-card)}.library-tile-hit:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.library-tile-art{aspect-ratio:2;max-height:112px;margin-bottom:var(--space-1);border-radius:var(--radius-lg);background:var(--tint-bg,var(--color-tint-grey));color:var(--tint-accent,var(--color-text));place-items:center;display:grid}.library-tile-title{font-weight:var(--weight-bold);overflow-wrap:anywhere;line-height:1.3}.library-tile-meta{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.library-tile-status{align-items:center;gap:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--color-border);font-size:var(--text-xs);color:var(--color-text-muted);margin-top:auto;display:inline-flex}.library-tile-status[data-status=COMPLETED]{color:var(--color-success-text)}.library-tile-status[data-status=IN_PROGRESS]{color:var(--color-primary-text)}.notes-band{gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-card);background:var(--tint-bg);align-items:flex-start;display:flex}.notes-band .skill-badge{background:var(--color-surface)}.notes-band-text{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.notes-kicker{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text-muted);flex-wrap:wrap;margin:0;display:inline-flex}.notes-band-summary{font-size:var(--text-base);margin:0;line-height:1.5}.notes-facts{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.notes-facts li{align-items:center;gap:var(--space-1);min-height:28px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);display:inline-flex}.notes-facts svg{color:var(--tint-accent)}@media (max-width:480px){.notes-band{padding:var(--space-4);flex-direction:column}}.notes-toc-n{width:1.375rem;height:1.375rem;background:var(--color-primary-soft);color:var(--color-primary-text);font-size:var(--text-xs);font-weight:var(--weight-bold);border-radius:50%;place-items:center;margin-inline-end:var(--space-2);display:inline-grid}.notes-words{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));display:grid}.notes-word{gap:var(--space-2);padding:var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);border-bottom-width:4px;flex-direction:column;display:flex}.notes-word[data-open]{border-color:var(--color-accent-purple);background:var(--color-tint-purple)}.notes-word-toggle{align-items:baseline;gap:var(--space-2);min-height:44px;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-wrap:wrap;flex:1;padding:0;display:flex}.notes-word-cue{color:var(--color-primary-text);font-size:var(--text-xs);font-weight:var(--weight-bold);margin-inline-start:auto}.notes-word-back{gap:var(--space-1);flex-direction:column;display:flex}.notes-word-back[hidden]{display:none}.notes-word p{margin:0}.notes-word-head{align-items:center;gap:var(--space-2);display:flex}.notes-word-head strong{font-size:var(--text-lg)}.notes-word-pos{font-size:var(--text-xs);color:var(--color-text-muted)}.notes-word-head>:last-child{margin-inline-start:auto}.notes-word-example{font-size:var(--text-sm);color:var(--color-text-muted)}.notes-task p{margin:0}.notes-actions{align-items:center;gap:var(--space-2);padding:var(--space-2) 0 var(--space-6);flex-direction:column;display:flex}.duo-top{align-items:center;gap:var(--space-3);display:flex}.duo-streak{align-items:center;gap:var(--space-1);font-weight:var(--weight-bold);color:var(--color-warning-text);animation:.4s ease-out duo-pop;display:inline-flex}.duo-sound{border-radius:var(--radius-md);width:44px;height:44px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex:none;place-items:center;display:grid}.duo-sound:hover{color:var(--color-text);background:var(--color-bg-subtle)}.duo-sound[aria-pressed=false]{color:var(--color-text-muted);opacity:.7}.duo-body{gap:var(--space-4);flex-direction:column;animation:.3s ease-out duo-enter;display:flex}.duo-kicker{justify-content:space-between;align-items:baseline;gap:var(--space-3);font-size:var(--text-xl);font-weight:var(--weight-bold);margin:0;display:flex}.duo-count{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);flex:none}.duo-tools{justify-content:center;gap:var(--space-1);display:flex}.duo-tools .tool-btn{flex:0 96px}.duo-top-count{font-size:var(--text-sm);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;color:var(--color-text-muted);flex:none}.duo-session-title{margin:calc(-1 * var(--space-2)) 0 0;font-size:var(--text-sm);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.duo-lesson-head h1{margin:0}.duo-lesson-head p{margin:var(--space-1) 0 0}.duo-task{gap:var(--space-3)}.duo-sheet-links{gap:var(--space-1) var(--space-3);color:var(--color-text-muted);flex-wrap:wrap;margin:0;display:flex}.duo-confidence{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.duo-exam-head{justify-content:space-between;align-items:flex-end;gap:var(--space-3);display:flex}.completion-screen{gap:var(--space-5)}.completion-hero{align-items:center;gap:var(--space-2);padding-top:var(--space-4);text-align:center;flex-direction:column;display:flex;position:relative}.completion-hero h1{margin:var(--space-2) 0 0;font-size:var(--text-3xl);color:var(--color-warning-text)}.completion-hero p{margin:0}.completion-mascot{animation:.9s cubic-bezier(.3,1.4,.5,1) 2 completion-jump}.completion-burst{pointer-events:none;width:0;height:0;position:absolute;top:56px;left:50%}.completion-confetti{opacity:0;background:var(--color-chart);width:8px;height:14px;transform:rotate(calc(var(--i) * 30deg)) translateY(0);animation:1.1s ease-out forwards completion-confetti;animation-delay:calc(var(--i) * 25ms);border-radius:2px;position:absolute}.completion-confetti:nth-child(3n+1){background:var(--color-success)}.completion-confetti:nth-child(3n+2){background:var(--color-warning)}.completion-tiles{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.completion-tile{--tile:var(--color-success);--tile-ink:var(--color-success-text);--tile-fill:var(--color-success-strong);--tile-on:var(--color-success-contrast);border:2px solid var(--tile);border-radius:var(--radius-lg);flex-direction:column;animation:.4s ease-out both duo-pop;display:flex;overflow:hidden}.completion-tile:nth-child(2){animation-delay:.1s}.completion-tile:nth-child(3){animation-delay:.2s}.completion-tile[data-tone=primary]{--tile:var(--color-primary);--tile-ink:var(--color-primary-text);--tile-fill:var(--color-primary-strong);--tile-on:var(--color-primary-contrast)}.completion-tile[data-tone=warning]{--tile:var(--color-warning);--tile-ink:var(--color-warning-text);--tile-fill:var(--color-warning-soft);--tile-on:var(--color-warning-text)}.completion-tile-label{padding:var(--space-1) var(--space-2);background:var(--tile-fill);color:var(--tile-on);font-size:var(--text-xs);font-weight:var(--weight-bold);text-align:center;text-transform:uppercase;letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.completion-tile-value{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-2);background:var(--color-surface);color:var(--tile-ink);font-size:var(--text-lg);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;white-space:nowrap;display:flex}.completion-weak{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:2px solid var(--color-warning);border-radius:var(--radius-lg);background:var(--color-warning-soft);display:flex}.completion-weak p{margin:0}.completion-weak-icon{color:var(--color-warning-text);flex:none}.completion-mistakes{gap:var(--space-3);flex-direction:column;display:flex}.completion-mistakes h2{font-size:var(--text-lg);margin:0}.completion-mistake-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.completion-mistake{gap:var(--space-1);padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-left:4px solid var(--color-error);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;display:flex}.completion-mistake p{margin:0}.completion-mistake-answer{align-items:baseline;gap:var(--space-1);flex-wrap:wrap;display:flex}.completion-mistake-answer svg{color:var(--color-error-text);align-self:center}.completion-mistake-answer strong{color:var(--color-success-text)}.completion-actions{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}@media (prefers-reduced-motion:reduce){.completion-burst{display:none}}.lpath{gap:var(--space-4);flex-direction:column;display:flex}.lpath-title{margin:0}.learn-path-page{gap:var(--space-4);flex-direction:column;display:flex}.lpath-chapter{gap:var(--space-3);flex-direction:column;display:flex}.lpath-banner{--tint:var(--color-tint-blue);align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--tint);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;border-bottom-width:4px;transition:transform 80ms;display:flex}.lpath-banner:active{transform:translateY(2px)}.lpath-banner[data-tint=purple]{--tint:var(--color-tint-purple)}.lpath-banner[data-tint=orange]{--tint:var(--color-tint-orange)}.lpath-banner[data-tint=teal]{--tint:var(--color-tint-teal)}.lpath-banner[data-tint=red]{--tint:var(--color-tint-red)}.lpath-banner[data-tint=green]{--tint:var(--color-tint-green)}.lpath-banner-text{flex-direction:column;flex:1;min-width:0;display:flex}.lpath-banner-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.lpath-banner strong{font-size:var(--text-base)}.lpath-ring{background:radial-gradient(circle closest-side, var(--color-surface) 76%, transparent 78%), conic-gradient(var(--color-chart) calc(var(--pct) * 1%), var(--color-border) 0);width:48px;height:48px;font-size:var(--text-xs);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;display:grid}.lpath-nodes{padding:var(--space-4) 0;align-items:center;gap:var(--space-4);flex-direction:column;margin:0;list-style:none;display:flex}.lpath-section{align-self:stretch;align-items:center;gap:var(--space-2);margin:var(--space-2) 0 var(--space-1);display:flex}.lpath-section-icon{border-radius:var(--radius-md);background:var(--tint-bg);width:32px;height:32px;color:var(--tint-accent);place-items:center;display:inline-grid}.lpath-section-name{color:var(--color-text);font-size:var(--text-base);font-weight:var(--weight-bold);margin:0}.lpath-row{position:relative}.lpath-row:has(.lpath-start){margin-top:2.5rem}.lpath-row{justify-content:center;width:100%;display:flex}.lpath-node-wrap{transform:translateX(var(--x,0));position:relative}.lpath-row:has(.lpath-card){z-index:10}.lpath-node{--node:var(--color-bg-subtle);--node-edge:var(--color-border-strong);--node-ink:var(--color-text-muted);background:var(--node);width:68px;height:62px;color:var(--node-ink);box-shadow:0 6px 0 var(--node-edge);cursor:pointer;border:none;border-radius:50%;place-items:center;padding:0;transition:transform 80ms,box-shadow 80ms;display:grid}.lpath-node:active{box-shadow:0 2px 0 var(--node-edge);transform:translateY(4px)}.lpath-node[data-state=done]{--node:var(--color-warning);--node-edge:var(--color-warning-text);--node-ink:var(--color-warning-text)}.lpath-node[data-state=current]{--node:var(--color-primary-strong);--node-edge:var(--color-primary-deep);--node-ink:var(--color-primary-contrast);animation:1.8s ease-in-out infinite lpath-pulse}.lpath-node[data-state=todo][data-tint]{--node:var(--tint-bg);--node-edge:color-mix(in srgb, var(--tint-accent) 45%, var(--tint-bg));--node-ink:var(--tint-accent)}.lpath-node[data-state=todo][data-exam]{--node:var(--color-primary-soft);--node-edge:var(--color-primary);--node-ink:var(--color-primary-text)}.lpath-node[data-exam]{--tint-accent:var(--color-primary)}.lpath-section[data-exam]{--tint-bg:var(--color-primary-soft);--tint-accent:var(--color-primary-text)}.lpath-node[data-state=started]{--node:var(--color-surface);--node-edge:var(--tint-accent,var(--color-primary));--node-ink:var(--tint-accent,var(--color-primary-text));outline:3px solid var(--tint-accent,var(--color-primary));outline-offset:-3px}.lpath-node:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}.lpath-start{padding:var(--space-1) var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-primary-text);font-size:var(--text-sm);font-weight:var(--weight-bold);white-space:nowrap;animation:1.6s ease-in-out infinite lpath-bob;position:absolute;bottom:calc(100% + 12px);left:50%;translate:-50%}.lpath-start:after{content:"";background:var(--color-surface);border-right:2px solid var(--color-border);border-bottom:2px solid var(--color-border);width:10px;height:10px;margin-top:-5px;position:absolute;top:100%;left:50%;translate:-50%;rotate:45deg}.lpath-card{z-index:6;align-items:center;gap:var(--space-2);width:min(240px, calc(100vw - var(--space-8)));padding:var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md);text-align:center;flex-direction:column;animation:.25s ease-out duo-pop;display:flex;position:absolute;top:calc(100% + 14px);left:50%;translate:-50%}.lpath-mascot{flex-direction:column;align-items:center;display:flex;position:absolute;top:50%;translate:0 -50%}.lpath-mascot-body{transform-origin:50% 100%;animation:3.6s ease-in-out infinite lpath-pina;animation-delay:var(--delay,0s);display:block}.lpath-mascot-shadow{background:color-mix(in srgb, var(--color-text) 16%, transparent);width:44px;height:8px;animation:3.6s ease-in-out infinite lpath-pina-shadow;animation-delay:var(--delay,0s);border-radius:50%;margin-top:-4px}.lpath-mascot[data-side=left]{left:max(0px,50% - 170px)}.lpath-mascot[data-side=right]{right:max(0px,50% - 170px)}.lpath-goal{justify-content:center;display:flex}.lpath-trophy{background:var(--color-bg-subtle);width:56px;height:56px;color:var(--color-text-muted);border:2px solid var(--color-border);border-radius:50%;place-items:center;display:grid}.lpath-trophy[data-done]{background:var(--color-warning-soft);color:var(--color-warning-text);border-color:var(--color-warning)}.onb-body{gap:var(--space-5);flex-direction:column;width:100%;max-width:720px;margin-inline:auto;animation:.3s ease-out duo-enter;display:flex}.onb-talk{flex:1;place-items:center;animation:.3s ease-out duo-enter;display:grid}.onb-talk-inner{align-items:center;gap:var(--space-5);text-align:center;flex-direction:column;max-width:420px;display:flex}.onb-talk-bubble{padding:var(--space-3) var(--space-5);border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);font-size:var(--text-lg);font-weight:var(--weight-semibold);margin:0;animation:.4s ease-out duo-pop;position:relative}.onb-talk-bubble:after{content:"";background:var(--color-surface);border-right:2px solid var(--color-border);border-bottom:2px solid var(--color-border);width:14px;height:14px;margin-top:-7px;position:absolute;top:100%;left:50%;translate:-50%;rotate:45deg}.onb-talk-pina{animation:3.6s ease-in-out infinite lpath-pina}.onb-ask{align-items:center;gap:var(--space-3);display:flex}.onb-ask-pina{flex:none}.onb-ask-bubble{padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);font-size:var(--text-lg);margin:0;line-height:1.35;position:relative}.onb-ask-bubble:before{content:"";background:var(--color-surface);border-left:2px solid var(--color-border);border-bottom:2px solid var(--color-border);width:14px;height:14px;position:absolute;top:50%;left:-9px;translate:0 -50%;rotate:45deg}.onb-grid,.onb-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.onb-grid--tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.onb-list{width:100%;max-width:560px;margin-inline:auto}.onb-option{box-sizing:border-box;align-items:center;gap:var(--space-3);width:100%;height:100%;min-height:64px;padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;border-bottom-width:4px;transition:transform 80ms,border-color .15s,background-color .15s;display:flex}.onb-option:hover{background:var(--color-bg-subtle)}.onb-option:active{border-bottom-width:2px;margin-bottom:2px;transform:translateY(2px)}.onb-option[aria-pressed=true]{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-text)}.onb-option--tile{padding:var(--space-5) var(--space-3);text-align:center;flex-direction:column;justify-content:center}.onb-option--big{padding:var(--space-5) var(--space-4)}.onb-option-text{flex-direction:column;gap:2px;min-width:0;display:flex}.onb-option-text strong{font-weight:var(--weight-bold)}.onb-option-hint{font-size:var(--text-sm);color:var(--color-text-muted)}.onb-option[aria-pressed=true] .onb-option-hint{color:inherit}.onb-option-trailing{font-weight:var(--weight-semibold);color:var(--color-text-muted);flex:none;margin-left:auto}.onb-option[aria-pressed=true] .onb-option-trailing{color:inherit}.onb-well{--well:var(--color-tint-grey);border-radius:var(--radius-md);background:var(--well);width:44px;height:44px;color:var(--color-text);flex:none;place-items:center;display:grid}.onb-option--tile .onb-well,.onb-option--big .onb-well{border-radius:var(--radius-lg);width:72px;height:64px}.onb-well[data-tint=blue]{--well:var(--color-tint-blue)}.onb-well[data-tint=purple]{--well:var(--color-tint-purple)}.onb-well[data-tint=teal]{--well:var(--color-tint-teal)}.onb-well[data-tint=orange]{--well:var(--color-tint-orange)}.onb-well[data-tint=red]{--well:var(--color-tint-red)}.onb-well[data-tint=green]{--well:var(--color-tint-green)}.onb-well[data-tint=yellow]{--well:var(--color-tint-yellow)}.onb-well[data-tint=exam]{--well:var(--color-primary-soft);color:var(--color-primary-text)}.onb-bars{align-items:flex-end;gap:3px;height:24px;display:inline-flex}.onb-bars span{background:var(--color-border);border-radius:2px;width:5px}.onb-bars span[data-on]{background:var(--color-chart)}.onb-benefits{width:100%;max-width:560px;margin:0 auto;padding:0;list-style:none}.onb-benefits li{align-items:center;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--color-border);animation:.35s ease-out both duo-enter;display:flex}.onb-benefits li:nth-child(2){animation-delay:80ms}.onb-benefits li:nth-child(3){animation-delay:.16s}.onb-benefits li:nth-child(4){animation-delay:.24s}.onb-benefits li:last-child{border-bottom:none}.onb-benefits li>span:last-child{flex-direction:column;gap:2px;display:flex}.onb-form{gap:var(--space-4);flex-direction:column;width:100%;max-width:420px;margin-inline:auto;display:flex}.onb-field{gap:var(--space-1);font-weight:var(--weight-semibold);flex-direction:column;display:flex}.onb-field input{box-sizing:border-box;width:100%;min-height:52px;padding:var(--space-2) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);font:inherit}.onb-field input:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.duo-sheet-actions{gap:var(--space-2);flex-wrap:wrap;margin:0;display:flex}.duo-sheet-action{align-items:center;gap:var(--space-1);min-height:36px;padding:0 var(--space-3);border-radius:var(--radius-pill);color:var(--duo-ink,var(--color-text-muted));font:inherit;font-size:var(--text-sm);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;background:0 0;border:none;display:inline-flex}.duo-sheet-action:hover:not(:disabled){background:color-mix(in srgb, var(--duo-ink,var(--color-text)) 10%, transparent)}.duo-sheet-action:disabled{cursor:default;opacity:.7}.diag-facts{gap:var(--space-2);text-align:left;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.diag-facts li{align-items:center;gap:var(--space-2);font-weight:var(--weight-semibold);display:flex}.diag-facts svg{color:var(--color-primary-text)}.diag-bar{flex:1;display:flex;position:relative}.diag-streak{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.06em;color:var(--color-warning-text);white-space:nowrap;animation:.4s ease-out duo-pop;position:absolute;bottom:calc(100% + 4px);left:50%;translate:-50%}.diag-result{gap:var(--space-5)}.diag-kicker{font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin:0}.diag-level{background:var(--color-primary-strong);width:96px;height:88px;color:var(--color-primary-contrast);box-shadow:0 6px 0 var(--color-primary-deep);font-size:var(--text-3xl);font-weight:var(--weight-bold);border-radius:50%;place-items:center;animation:.5s ease-out duo-pop;display:grid}.diag-result .completion-hero h1{font-size:var(--text-2xl);color:var(--color-text)}.diag-ladder{align-items:flex-end;gap:var(--space-2);margin:0 auto;padding:0;list-style:none;display:flex}.diag-ladder li{align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.diag-ladder-bar{border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--color-bg-subtle);border:2px solid var(--color-border);transform-origin:bottom;width:36px;animation:.5s ease-out both diag-rise;display:block}.diag-ladder li:nth-child(2) .diag-ladder-bar{animation-delay:60ms}.diag-ladder li:nth-child(3) .diag-ladder-bar{animation-delay:.12s}.diag-ladder li:nth-child(4) .diag-ladder-bar{animation-delay:.18s}.diag-ladder li:nth-child(5) .diag-ladder-bar{animation-delay:.24s}.diag-ladder li:nth-child(6) .diag-ladder-bar{animation-delay:.3s}.diag-ladder li[data-on] .diag-ladder-bar{background:var(--color-chart);border-color:var(--color-chart)}.diag-ladder li[aria-current=step] .diag-ladder-bar{box-shadow:0 0 0 3px var(--color-bg), 0 0 0 5px var(--color-chart)}.diag-ladder-label{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-text-muted)}.diag-ladder li[aria-current=step] .diag-ladder-label{color:var(--color-primary-text)}.diag-skills h2{margin:0 0 var(--space-2);font-size:var(--text-lg)}.diag-skills ul{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.diag-skill{align-items:center;gap:var(--space-1) var(--space-3);padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);grid-template-columns:1fr auto;display:grid}.diag-skill-name{font-weight:var(--weight-bold)}.diag-skill-level{font-size:var(--text-sm);color:var(--color-text-muted)}.diag-skill-level[data-known]{padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--color-primary-text);font-weight:var(--weight-bold)}.diag-topics summary{cursor:pointer;font-weight:var(--weight-semibold);align-items:center;min-height:44px;display:flex}.diag-topics ul{margin:0;padding:0;list-style:none}.diag-topics li{justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);display:flex}.results-duo{gap:var(--space-5);flex-direction:column;display:flex}.results-back{align-items:center;gap:var(--space-2);margin:0;display:flex;overflow:hidden}.results-back>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.results-score{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-primary-text);margin:0}.results-chips{justify-content:center;gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.results-chips li{padding:var(--space-1) var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--text-sm);color:var(--color-text-muted)}.results-chips strong{color:var(--color-text)}.results-block{gap:var(--space-3);flex-direction:column;display:flex}.results-block h2{font-size:var(--text-lg);margin:0}.results-block>p{margin:0}.results-bars{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.results-bars li{align-items:center;gap:var(--space-1) var(--space-3);padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);grid-template-columns:1fr auto;display:grid}.results-bar-name{font-weight:var(--weight-semibold);min-width:0}.results-questions summary{justify-content:space-between;align-items:baseline;gap:var(--space-3);cursor:pointer;min-height:44px;list-style:none;display:flex}.results-questions summary::-webkit-details-marker{display:none}.results-questions summary:after{content:"▾";color:var(--color-text-muted)}.results-questions[open] summary:after{content:"▴"}.results-questions ol{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.results-q{gap:var(--space-3);padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);border-left-width:4px;display:flex}.results-q[data-state=correct]{border-left-color:var(--color-success)}.results-q[data-state=wrong]{border-left-color:var(--color-error)}.results-q-icon{color:var(--color-text-muted);flex:none}.results-q[data-state=correct] .results-q-icon{color:var(--color-success-text)}.results-q[data-state=wrong] .results-q-icon{color:var(--color-error-text)}.results-q-body{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.results-q-meta{color:var(--color-text-muted);font-weight:var(--weight-semibold)}.speak-stage{gap:var(--space-4);flex-direction:column;display:flex}.speak-prompt{font-size:var(--text-base);font-weight:var(--weight-semibold)}.speak-mic-area{align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);flex-direction:column;display:flex}.speak-mic{background:var(--color-primary-strong);width:96px;height:92px;color:var(--color-primary-contrast);box-shadow:0 6px 0 var(--color-primary-deep);cursor:pointer;border:none;border-radius:50%;place-items:center;transition:transform 80ms,box-shadow 80ms;display:grid}.speak-mic:active:not(:disabled){box-shadow:0 2px 0 var(--color-primary-deep);transform:translateY(4px)}.speak-mic:disabled{opacity:.5;cursor:not-allowed}.speak-mic[data-recording]{background:var(--color-error-strong);color:var(--color-error-contrast);box-shadow:0 6px 0 var(--color-error-deep);animation:1.4s ease-in-out infinite speak-pulse}.speak-mic:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}.speak-mic-label{font-weight:var(--weight-bold)}.speak-timer{font-variant-numeric:tabular-nums;color:var(--color-text-muted);margin:0}.speak-audio{width:100%}.write-stage{gap:var(--space-3);flex-direction:column;display:flex}.write-stage .writing-area{box-sizing:border-box;width:100%;min-height:18rem;padding:var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);font:inherit;resize:vertical;line-height:1.6}.write-stage .writing-area:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);outline:none}.write-issues{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.write-issues li{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border:2px solid var(--color-warning);border-radius:var(--radius-md);background:var(--color-warning-soft);color:var(--color-text);display:flex}.write-issues svg{color:var(--color-warning-text);flex:none}.write-actions{gap:var(--space-2);flex-direction:column;display:flex}.skill-result .skill-band{align-items:center;gap:var(--space-2);text-align:center;flex-direction:column;display:flex}[data-tint=blue]{--tint-bg:var(--color-tint-blue);--tint-accent:var(--color-accent-blue)}[data-tint=green]{--tint-bg:var(--color-tint-green);--tint-accent:var(--color-accent-green)}[data-tint=teal]{--tint-bg:var(--color-tint-teal);--tint-accent:var(--color-accent-teal)}[data-tint=purple]{--tint-bg:var(--color-tint-purple);--tint-accent:var(--color-accent-purple)}[data-tint=red]{--tint-bg:var(--color-tint-red);--tint-accent:var(--color-accent-red)}[data-tint=orange]{--tint-bg:var(--color-tint-orange);--tint-accent:var(--color-accent-orange)}[data-tint=yellow]{--tint-bg:var(--color-tint-yellow);--tint-accent:var(--color-accent-yellow)}[data-tint=brown]{--tint-bg:var(--color-tint-brown);--tint-accent:var(--color-accent-brown)}[data-tint=grey]{--tint-bg:var(--color-tint-grey);--tint-accent:var(--color-accent-grey)}.skill-icon{color:var(--tint-accent);flex:none;display:inline-flex}.skill-badge{border-radius:var(--radius-row);background:var(--tint-bg);width:48px;height:48px;color:var(--tint-accent);flex:none;place-items:center;display:inline-grid}.skill-badge[data-size=sm]{border-radius:var(--radius-md);width:36px;height:36px}.skill-badge[data-size=lg]{border-radius:var(--radius-lg);width:64px;height:64px}.level-badge{min-height:22px;padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--tint-bg);box-shadow:inset 0 0 0 1.5px var(--tint-accent);color:var(--color-text);font-size:var(--text-xs);font-weight:var(--weight-bold);white-space:nowrap;align-items:center;line-height:1;display:inline-flex}.pring{flex:none;place-items:center;display:inline-grid;position:relative}.pring svg{position:absolute;inset:0}.pring-track{fill:none;stroke:var(--color-well-primary)}.pring-value{fill:none;stroke:var(--color-chart);stroke-linecap:round;transition:stroke-dasharray .4s ease-out}.pring-centre{font-size:var(--text-xl);position:relative}.streak-flame-outer{fill:var(--color-accent-grey)}.streak-flame-inner{fill:var(--color-surface)}.streak-flame[data-lit] .streak-flame-outer{fill:var(--color-accent-orange)}.streak-flame[data-lit] .streak-flame-inner{fill:var(--color-accent-yellow)}@media (prefers-reduced-motion:reduce){.pring-value{transition:none}}.tile-group-title{margin:var(--space-2) 0 var(--space-3);font-size:var(--text-lg)}.atile-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}@media (min-width:900px){.atile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.atile{min-width:0;display:flex}.atile[data-featured]{grid-column:1/-1}.atile-hit{box-sizing:border-box;align-items:flex-start;gap:var(--space-3);width:100%;min-height:9rem;padding:var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;border-bottom-width:4px;flex-direction:column;text-decoration:none;transition:transform .12s,border-color .12s;display:flex;position:relative}.atile-hit:hover:not(:disabled){border-color:var(--tint-accent)}.atile-hit:active:not(:disabled){transform:translateY(2px)}.atile-hit:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.atile-hit:disabled{cursor:default;opacity:.55}.atile[data-featured] .atile-hit{background:var(--tint-bg);border-color:#0000;border-bottom-color:var(--tint-accent);flex-direction:row;align-items:center;min-height:0}.atile-art{border-radius:var(--radius-lg);background:var(--tint-bg);width:56px;height:56px;color:var(--tint-accent);flex:none;place-items:center;display:grid}.atile[data-featured] .atile-art{background:var(--color-surface);width:72px;height:72px}.atile-text{flex-direction:column;gap:2px;min-width:0;display:flex}.atile-title{font-size:var(--text-base);font-weight:var(--weight-bold);line-height:1.25}.atile[data-featured] .atile-title{font-size:var(--text-xl)}.atile-hint{color:var(--color-text-muted);font-size:var(--text-sm)}.atile-badge{top:var(--space-3);right:var(--space-3);min-width:1.75rem;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--color-surface);box-shadow:inset 0 0 0 1.5px var(--tint-accent);color:var(--color-text);font-size:var(--text-xs);font-weight:var(--weight-bold);text-align:center;position:absolute}.mode-cards{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.mode-card{align-items:center;gap:var(--space-3);padding:var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;display:flex}.mode-card[aria-checked=true]{border-color:var(--tint-accent);background:var(--tint-bg);box-shadow:inset 0 0 0 1px var(--tint-accent)}.mode-card:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.mode-card-icon{border-radius:var(--radius-md);background:var(--tint-bg);width:40px;height:40px;color:var(--tint-accent);flex:none;place-items:center;display:grid}.mode-card[aria-checked=true] .mode-card-icon{background:var(--color-surface)}.mode-card-text{flex-direction:column;gap:2px;min-width:0;display:flex}.mode-card-text>span{color:var(--color-text-muted);font-size:var(--text-xs)}@media (max-width:560px){.mode-card{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.atile-hit{transition:none}}.streak-art{aspect-ratio:5/4;width:min(180px,55%);margin:0 auto calc(-1 * var(--space-2))}.streak-head{justify-content:center;align-items:center;gap:var(--space-2);display:flex}.streak-head .streak-title{align-items:center;gap:var(--space-2);margin:0;display:inline-flex}.rings li[data-tint] .ring-value{stroke:var(--tint-accent)}.rings li[data-tint] .ring-track{stroke:var(--tint-bg)}.info-tip{display:inline-block;position:relative}.info-tip>summary{width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;border-radius:50%;place-items:center;list-style:none;display:inline-grid}.info-tip>summary::-webkit-details-marker{display:none}.info-tip>summary:hover,.info-tip[open]>summary{background:var(--color-bg-subtle);color:var(--color-text)}.info-tip>summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.info-tip-body{z-index:20;top:calc(100% + var(--space-1));width:min(18rem,80vw);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-regular);letter-spacing:normal;text-align:left;line-height:1.45;position:absolute;right:0}.info-tip-body p{margin:0}.info-tip-body p+p{margin-top:var(--space-2)}.topic-map-summary{align-items:center;gap:var(--space-4);flex-direction:row}.topic-map-summary-text{align-items:center;gap:var(--space-1);display:flex}.topic-map-summary-text p{margin:0}.topic-map-weak-head{align-items:center;gap:var(--space-1);display:inline-flex}.topic-map-weak-head h2{margin:0}.topic-map-skill[data-tint]{border-top:4px solid var(--tint-accent)}.topic-map-skill-head{align-items:center;gap:var(--space-3);display:flex}.topic-map-skill-head h3{flex:1;margin:0}.topic-map-skill-head .pring-value{stroke:var(--tint-accent)}.topic-map-skill-head .pring-track{stroke:var(--tint-bg)}.topic-map-skill-count{font-size:var(--text-xs);font-weight:var(--weight-bold)}.topic-map-skill .topic-row-icon{color:var(--tint-accent)}.exam-sets{gap:var(--space-3);box-shadow:none;background:0 0;border:0;display:grid;overflow:visible}.exam-sets>.settings-row,.exam-sets>.settings-row+.settings-row{border:1.5px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);border-bottom-width:4px;overflow:hidden}.exam-sets .settings-hit{padding:var(--space-4)}.exam-sets .settings-icon{border-radius:var(--radius-lg);background:var(--color-primary-soft);width:3rem;height:3rem;color:var(--color-primary-text)}.exam-sets .settings-label{font-size:var(--text-base);font-weight:var(--weight-bold)}.reels{z-index:30;inset:0 0 var(--tabs-bar-reserve) 0;background:var(--color-bg);position:fixed}@media (min-width:768px){.reels{left:var(--sidebar-width);bottom:0}}.reels--state{gap:var(--space-4);padding:max(var(--space-6), env(safe-area-inset-top)) var(--space-4) var(--space-4);flex-direction:column;display:flex;overflow-y:auto}.reels-top{z-index:3;gap:var(--space-2);padding:max(var(--space-4), env(safe-area-inset-top)) 4.5rem 0 var(--space-4);pointer-events:none;flex-direction:column;display:flex;position:absolute;top:0;left:0;right:0}.reels-top>*{pointer-events:auto}.reels-pills{gap:var(--space-2);scrollbar-width:none;display:flex;overflow-x:auto}.reels-pill{align-items:center;gap:var(--space-1);min-height:36px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--color-surface);box-shadow:var(--shadow-sm);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-bold);flex:none;text-decoration:none;display:inline-flex}.reels-pill svg{color:var(--tint-accent)}.reels-pill:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.reels-track{overscroll-behavior:contain;scroll-snap-type:y mandatory;scrollbar-width:none;height:100%;overflow-y:auto}.reels-track::-webkit-scrollbar{display:none}.reels-track[data-peek]{scroll-snap-type:none}.reels-track:focus-visible{outline:3px solid var(--color-focus);outline-offset:-3px}.reel{box-sizing:border-box;height:100%;padding:calc(max(var(--space-4), env(safe-area-inset-top)) + 5.5rem) var(--space-5) 0;background:var(--tint-bg,var(--color-bg-subtle));scroll-snap-align:start;scroll-snap-stop:always;display:flex;position:relative}.reel-inner{flex-direction:column;width:100%;max-width:36rem;min-height:0;margin:0 auto;display:flex}.reel-scroll{justify-content:flex-end;gap:var(--space-5);min-height:0;padding-bottom:var(--space-4);scrollbar-width:none;flex-direction:column;flex:1;display:flex;overflow-y:auto}.reel-hero{justify-content:center;align-items:center;gap:var(--space-3);flex-direction:column;flex:1;display:flex}.reel-text{gap:var(--space-2);flex-direction:column;display:flex}.reel-text>p,.reel-text>h2{margin:0}.reel-footer{gap:var(--space-3);padding:var(--space-3) 0 var(--space-4);flex-direction:column;flex:none;display:flex}.reel:has(.reel-rail) .reel-text{padding-right:4rem}@media (min-width:900px){.reel:has(.reel-rail) .reel-text{padding-right:0}}.reel-art{background:var(--color-surface);width:112px;height:112px;box-shadow:var(--shadow-sm);color:var(--tint-accent);border-radius:36px;place-items:center;display:grid}.reel-art--scene{width:min(240px,70%);height:auto;box-shadow:none;background:0 0;border-radius:0}.reel-art--scene .reel-end-art{width:100%}.reel-chips{gap:var(--space-2);margin-bottom:var(--space-1);flex-wrap:wrap;display:flex}.reel-chip{align-items:center;gap:var(--space-1);min-height:28px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);font-size:var(--text-xs);font-weight:var(--weight-bold);display:inline-flex}.reel-chip svg{color:var(--tint-accent)}.reel-chip--kind{color:var(--tint-accent);letter-spacing:.04em;text-transform:uppercase}.reel-chip--done,.reel-chip--done svg{color:var(--color-success-text)}.reel-chip--extra{background:var(--color-primary-strong);color:var(--color-primary-contrast)}.reel-topic{color:var(--tint-accent);font-size:var(--text-sm);font-weight:var(--weight-bold)}.reel-title{font-size:var(--text-3xl);overflow-wrap:anywhere;line-height:1.15}.reel-summary{font-size:var(--text-base);line-height:1.55}.reel-cta{gap:var(--space-2);flex:1}.reel-question{gap:var(--space-3);flex-direction:column;display:flex}.reel-question>p{margin:0}.reel-stimulus{padding:var(--space-3);border-radius:var(--radius-lg);background:var(--color-surface);font-size:var(--text-sm);line-height:1.55}.reel-stem{font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:1.5}.reel-stem--clamp{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.reel-done-note{align-items:center;gap:var(--space-2);color:var(--color-success-text);font-weight:var(--weight-bold);display:inline-flex}.reel-feedback{gap:var(--space-1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);flex-direction:column;display:flex}.reel-feedback-title{align-items:center;gap:var(--space-2);color:var(--color-error-text);font-weight:var(--weight-bold);margin:0;display:inline-flex}.reel-feedback[data-correct] .reel-feedback-title{color:var(--color-success-text)}.reel-feedback-body{font-size:var(--text-sm);margin:0;line-height:1.5}.reel-rail{right:var(--space-3);gap:var(--space-4);flex-direction:column;display:flex;position:absolute;bottom:7.5rem}@media (min-width:900px){.reel-rail{right:calc(50% - 20.5rem)}}.reel-rail-btn{align-items:center;gap:var(--space-1);color:var(--color-text);font:inherit;font-size:var(--text-xs);font-weight:var(--weight-bold);cursor:pointer;background:0 0;border:0;flex-direction:column;padding:0;text-decoration:none;display:flex}.reel-rail-icon{background:var(--color-surface);width:48px;height:48px;box-shadow:var(--shadow-sm);color:var(--tint-accent);border-radius:50%;place-items:center;display:grid}.reel-rail-btn[aria-pressed=true] .reel-rail-icon{background:var(--tint-accent);color:var(--color-surface)}.reel-rail-btn:focus-visible .reel-rail-icon{outline:3px solid var(--color-focus);outline-offset:2px}.reel--end .reel-inner{text-align:center;align-items:center}.reel-end-art{aspect-ratio:5/4;width:min(220px,60%)}.reels-nav{display:none}@media (min-width:900px){.reels-nav{z-index:3;top:50%;right:var(--space-5);gap:var(--space-2);flex-direction:column;display:flex;position:absolute;transform:translateY(-50%)}}.reels-nav-btn{border:1px solid var(--color-border);background:var(--color-surface);width:48px;height:48px;box-shadow:var(--shadow-sm);color:var(--color-text);cursor:pointer;border-radius:50%;place-items:center;display:grid}.reels-nav-btn:disabled{cursor:default;opacity:.4}.reels-hint{z-index:4;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--color-neutral-strong);color:var(--color-neutral-contrast);font-size:var(--text-sm);font-weight:var(--weight-bold);margin:0;animation:.3s ease-out reels-hint-in;display:inline-flex;position:absolute;bottom:6rem;left:50%;transform:translate(-50%)}.reels-hint-arrow{animation:.9s ease-in-out infinite reels-bounce;display:inline-flex}@keyframes reels-bounce{0%,to{transform:translateY(2px)}50%{transform:translateY(-4px)}}@keyframes reels-hint-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.reels-hint,.reels-hint-arrow{animation:none}}.celebrate{z-index:60;justify-content:center;align-items:center;gap:var(--space-3);padding:max(var(--space-6), env(safe-area-inset-top)) var(--space-5) max(var(--space-6), env(safe-area-inset-bottom));background:var(--color-bg);text-align:center;flex-direction:column;animation:.3s ease-out fade-in-up;display:flex;position:fixed;inset:0}.celebrate[data-kind=STREAK_DAY],.celebrate[data-kind=STREAK_WEEK]{background:color-mix(in srgb, var(--color-accent-orange) 14%, var(--color-bg))}.celebrate[data-kind=LEVEL_COMPLETE],.celebrate[data-kind=FIRST_LESSON],.celebrate[data-kind=FIRST_MOCK]{background:color-mix(in srgb, var(--color-chart) 12%, var(--color-bg))}.celebrate-art{place-items:center;min-height:180px;display:grid}.celebrate-scene{aspect-ratio:5/4;width:min(260px,70vw)}.celebrate-flame-scene{width:min(220px,60vw)}.celebrate-count{color:var(--color-text);margin:0;font-size:4rem;font-weight:900;line-height:1}.celebrate-title{font-size:var(--text-3xl);margin:0}.celebrate-body{max-width:28rem;color:var(--color-text-muted);margin:0}.celebrate-cta{width:100%;max-width:24rem;margin-top:var(--space-4)}.celebrate-burst{pointer-events:none;width:0;height:0;position:absolute;top:30%;left:50%}.celebrate-confetti{opacity:0;background:var(--color-chart);width:9px;height:16px;transform:rotate(calc(var(--i) * 22.5deg)) translateY(0);animation:1.3s ease-out forwards celebrate-confetti;animation-delay:calc(var(--i) * 20ms + .15s);border-radius:2px;position:absolute}.celebrate-confetti:nth-child(3n+1){background:var(--color-success)}.celebrate-confetti:nth-child(3n+2){background:var(--color-warning)}@keyframes celebrate-confetti{0%{opacity:1;transform:rotate(calc(var(--i) * 22.5deg)) translateY(0)}to{opacity:0;transform:rotate(calc(var(--i) * 22.5deg)) translateY(-160px)}}@media (prefers-reduced-motion:reduce){.celebrate{animation:none}.celebrate-burst{display:none}}.scene-notice{align-items:center;gap:var(--space-2);text-align:center;flex-direction:column;display:flex}.scene-notice-art{aspect-ratio:5/4;width:min(200px,60vw)}.scene-notice-title{font-size:var(--text-lg)}.scene-notice-hint{max-width:26rem;margin:0}.lpath-banner-name{align-items:center;gap:var(--space-2);display:inline-flex}.estimate-hero{align-items:center;gap:var(--space-3);display:flex}.estimate-art{aspect-ratio:5/4;flex:none;width:110px}.estimate-range{gap:var(--space-1);flex-direction:column;display:flex}.estimate-range-track{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-chart) 16%, transparent);height:12px;position:relative}.estimate-range-fill{border-radius:var(--radius-pill);background:var(--color-chart);position:absolute;top:0;bottom:0}.estimate-range-ends{color:var(--color-text-muted);font-size:var(--text-xs);justify-content:space-between;display:flex}.empty-state-scene{aspect-ratio:5/4;width:min(200px,60vw)}.reel-scene{aspect-ratio:5/4;width:min(300px,78vw);max-width:100%}.xp-chips{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.xp-chip{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-tint-yellow);font-variant-numeric:tabular-nums;flex-direction:column;gap:2px;display:flex}.xp-chip-label{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.04em;text-transform:uppercase}.badge-grid{gap:var(--space-4) var(--space-3);grid-template-columns:repeat(auto-fill,minmax(96px,1fr));margin:0;padding:0;list-style:none;display:grid}.badge-medal{align-items:center;gap:var(--space-1);text-align:center;flex-direction:column;display:flex}.badge-medal-disc{background:radial-gradient(closest-side, var(--color-bg-subtle) 82%, transparent 84%), conic-gradient(var(--color-chart) calc(var(--pct,0) * 1%), var(--color-border) 0);width:68px;height:68px;color:var(--color-text-muted);border-radius:50%;place-items:center;display:grid}.badge-medal[data-earned] .badge-medal-disc{background:radial-gradient(closest-side, var(--tint-bg) 82%, transparent 84%), conic-gradient(var(--tint-accent) 100%, var(--tint-accent) 0);color:var(--tint-accent)}.badge-medal-level{font-size:var(--text-lg);font-weight:900}.badge-medal-name{font-size:var(--text-sm);line-height:1.2}.badge-medal-state{color:var(--color-text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.league{gap:var(--space-4);flex-direction:column;display:flex}.league-intro{align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;display:flex}.league-intro-art{aspect-ratio:5/4;width:min(220px,60vw)}.league-intro h2,.league-intro p{margin:0}.league-privacy{gap:var(--space-1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-bg-subtle);text-align:left;flex-direction:column;display:flex}.league-privacy p{margin:0}.league-head{align-items:center;gap:var(--space-3);display:flex}.league-head h2,.league-head p{margin:0}.league-tier-medal{background:var(--color-tint-orange);width:56px;height:56px;color:var(--color-accent-orange);border-radius:50%;flex:none;place-items:center;display:grid}.league-head[data-tier=SILVER] .league-tier-medal{background:var(--color-tint-grey);color:var(--color-accent-grey)}.league-head[data-tier=GOLD] .league-tier-medal{background:var(--color-tint-yellow);color:var(--color-accent-yellow)}.league-head[data-tier=DIAMOND] .league-tier-medal{background:var(--color-tint-blue);color:var(--color-accent-blue)}.league-standings{border:1.5px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.league-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-variant-numeric:tabular-nums;grid-template-columns:2rem minmax(0,1fr) auto auto;display:grid}.league-row+.league-row{border-top:1px solid var(--color-border)}.league-row[data-me]{background:var(--color-primary-soft)}.league-rank{color:var(--color-text-muted);font-weight:900}.league-name{align-items:center;gap:var(--space-2);overflow-wrap:anywhere;min-width:0;font-weight:var(--weight-semibold);display:flex}.league-you{padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--color-primary-strong);color:var(--color-primary-contrast);font-size:var(--text-xs)}.league-zone{font-size:var(--text-xs);font-weight:var(--weight-bold);align-items:center;gap:2px;display:inline-flex}.league-row[data-zone=UP] .league-zone{color:var(--color-success-text)}.league-row[data-zone=DOWN] .league-zone{color:var(--color-error-text)}.league-leave{align-items:flex-start;gap:var(--space-1);flex-direction:column;display:flex}.league-leave p{margin:0}
