#web-view .rank-panel{box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:1fr;align-content:start;gap:16px;padding:12px 0;display:grid}#web-view .rank-panel h2{font-family:var(--display);letter-spacing:0;text-transform:none;color:var(--paper-dim);border:0;margin:0 0 6px;font-size:15px;font-weight:500}#web-view .rank-name{font-size:1.35rem;line-height:1.4}#web-view .rank-note{font-family:var(--display);letter-spacing:0;text-transform:none;margin-top:5px;font-size:12px}#web-view .rank-progress-trigger{color:var(--paper);border-radius:8px;grid-template-columns:80px minmax(0,1fr);align-items:center;column-gap:18px;padding:0;display:grid}#web-view .rank-gauge{grid-row:1/3;width:80px;height:80px;position:relative}#web-view .rank-gauge svg{width:100%;height:100%;display:block}#web-view .rank-gauge>span{font-size:20px;font-family:var(--display);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#web-view .rank-gauge small{margin-left:2px;font-size:11px}#web-view .rank-progress-label{font-family:var(--display);letter-spacing:0;text-transform:none;text-align:left;align-self:end;font-size:13px}#web-view .rank-next{text-align:left;font-family:var(--display);letter-spacing:0;text-transform:none;color:var(--paper-dim);align-self:start;margin-top:4px;font-size:12px}#web-view .rank-progress-trigger:hover .rank-next{color:var(--paper);text-underline-offset:4px;text-decoration:underline}#web-view .rank-level-test-btn{min-height:44px;color:var(--paper);font-family:var(--display);letter-spacing:0;text-transform:none;text-underline-offset:5px;background:0 0;border:0;border-radius:4px;justify-self:start;padding:8px 0;font-size:13px;text-decoration:underline}#web-view .rank-level-test-btn:hover{color:var(--paper-dim)}#web-view .primary-map{box-shadow:none;margin-top:0}@media (width<=850px){#web-view .rank-panel{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 16px;padding:0}#web-view .rank-progress-trigger{grid-area:1/2/3;grid-template-columns:minmax(0,1fr);justify-items:end;gap:0}#web-view .rank-gauge{grid-row:auto;width:64px;height:64px}#web-view .rank-progress-label{text-align:right;margin-top:8px;font-size:11px}#web-view .rank-next{text-align:right;font-size:11px}#web-view .rank-level-test-btn{grid-column:1}#web-view .rank-name{font-size:1.125rem}}.desktop-masthead{flex-wrap:nowrap;gap:42px;min-height:70px;padding:0 3%}.desktop-masthead .chrono button.fullscreen-toggle{display:none}.desktop-brand{color:var(--paper);align-items:center;gap:13px;font-size:28px;font-weight:700;display:flex}.desktop-brand>span{background:var(--accent);width:36px;height:36px;color:var(--ink);font-family:var(--han);border-radius:4px;place-items:center;font-size:28px;font-weight:400;display:grid}.desktop-navigation{align-self:stretch;gap:34px;margin-right:auto;display:flex}.desktop-navigation button{color:var(--paper-dim);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:0 5px}.desktop-navigation button[aria-current]{border-bottom-color:var(--accent);color:color-mix(in srgb, var(--accent) 65%, var(--paper))}.desktop-navigation button:hover:not(:disabled){color:var(--accent)}.desktop-navigation button:disabled{cursor:default}.desktop-masthead .chrono{flex-wrap:nowrap;gap:16px}.masthead-words{font-family:var(--display);color:var(--paper-dim);white-space:nowrap;font-variant-numeric:tabular-nums;margin-right:14px;font-size:14px}.desktop-masthead .profile-avatar{width:42px;height:42px}main.learning-home-mode:has(.desktop-dashboard){padding:24px 3% 28px}#web-view.desktop-dashboard{font-variant-numeric:tabular-nums}.desktop-dashboard button,.desktop-dashboard input,.desktop-dashboard select{font-family:inherit}.desktop-dashboard button{cursor:pointer;touch-action:manipulation}.desktop-dashboard button:disabled{opacity:.45;cursor:not-allowed}.desktop-dashboard :is(button,input,select):focus-visible,.desktop-masthead button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.level-tabs{flex-shrink:0;align-items:center;gap:2px;display:flex}.level-tabs>span{color:var(--paper-faint);font-family:var(--display);letter-spacing:.08em;margin:0 6px 0 2px;font-size:12px;font-weight:600}.level-tabs button{width:32px;height:36px;color:var(--paper-dim);font-family:var(--display);cursor:pointer;background:0 0;border:0;border-radius:0;padding:0;font-size:15px;font-weight:500;position:relative}.level-tabs button:hover:not(:disabled){color:var(--paper)}.level-tabs button[data-state=on]{color:var(--paper);font-weight:700}.level-tabs button[data-state=on]:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:4px;left:9px;right:9px}.level-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.learning-path-hub-toggle{color:var(--paper-dim);font-family:var(--display);text-underline-offset:4px;white-space:nowrap;background:0 0;border:0;flex-shrink:0;margin-right:6px;padding:4px 6px;font-size:14px;text-decoration:underline}.learning-path-hub-toggle:hover,.learning-path-hub-toggle[aria-pressed=true]{color:var(--paper)}.desktop-learning-workspace{grid-template-columns:minmax(340px,1fr) minmax(0,1.82fr);align-items:stretch;gap:22px;display:grid}#web-view.desktop-dashboard .primary-map{border:1px solid var(--hair-strong);background:var(--surface);min-width:0;box-shadow:none;border-radius:12px;margin-top:0;overflow:hidden}.map-toolbar{z-index:25;border-bottom:1px solid var(--hair);background:var(--ink-2);align-items:center;gap:10px;padding:12px 18px;display:flex;position:relative}#web-view.desktop-dashboard .map-toolbar :is(.web-zoom-controls,.web-fullscreen-toggle){box-shadow:none;position:static}.map-search{flex:0 256px;min-width:140px;margin-right:auto;position:relative}.map-search label{border:1px solid var(--hair-strong);background:var(--ink);min-height:38px;color:var(--paper-dim);border-radius:6px;align-items:center;gap:10px;padding:0 14px;display:flex}.map-search input{width:100%;min-width:0;color:var(--paper);background:0 0;border:0;font-size:15px}.map-search input:focus-visible{outline:0}.map-search label:focus-within{border-color:rgba(var(--accent-rgb), .6)}.map-search input::placeholder{color:var(--paper-dim)}.map-search-results{border:1px solid var(--hair-strong);background:var(--ink-2);border-radius:6px;width:300px;max-height:300px;position:absolute;top:calc(100% + 8px);left:0;overflow:auto;box-shadow:0 12px 28px #0003}.map-search-results button{text-align:left;border:0;border-bottom:1px solid var(--hair);width:100%;color:var(--paper);background:0 0;padding:12px 16px;display:block}.map-search-results button:hover{background:var(--surface-up)}.map-search-results p{padding:12px 16px}#web-view.desktop-dashboard .web-wrap{background:radial-gradient(circle, var(--hair) .7px, transparent .8px) 0 0 / 16px 16px, var(--ink);border:0;flex-direction:column;padding:0;display:flex;position:relative;overflow:hidden}.desktop-dashboard .web-level-hub{min-height:510px;padding:24px}.desktop-dashboard #web{width:100%;height:clamp(460px,100dvh - 300px,760px)}.desktop-dashboard .web-stage{position:relative}.map-scrollbar{z-index:6;cursor:pointer;touch-action:none;width:22px;position:absolute;top:14px;bottom:14px;right:6px}.map-scrollbar:before{content:"";background:var(--hair);border-radius:2px;width:2px;margin-left:-1px;transition:background .16s;position:absolute;top:0;bottom:0;left:50%}.map-scrollbar:hover:before,.map-scrollbar.dragging:before{background:var(--hair-strong)}.desktop-dashboard .map-scrollbar:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:11px}.map-scrollbar-defs{width:0;height:0;position:absolute}.map-scrollbar-goo{filter:url(#map-scrollbar-goo);pointer-events:none;position:absolute;inset:-12px 0}.map-scrollbar-thumb,.map-scrollbar-drop{left:50%;top:calc(12px + (100% - 24px - var(--thumb-size)) * var(--thumb-at));background:var(--accent);border-radius:999px;position:absolute}.map-scrollbar-thumb{width:10px;height:var(--thumb-size);pointer-events:auto;cursor:grab;margin-left:-5px;transition:top 70ms ease-out,width .22s cubic-bezier(.3,1.6,.5,1),margin-left .22s cubic-bezier(.3,1.6,.5,1)}.map-scrollbar-drop{width:8px;height:24px;margin:calc(var(--thumb-size) / 2 - 12px) 0 0 -4px;transition:top .48s cubic-bezier(.3,1.45,.45,1)}.map-scrollbar-drop-late{width:6px;height:12px;margin:calc(var(--thumb-size) / 2 - 6px) 0 0 -3px;transition-duration:.82s}.map-scrollbar:hover .map-scrollbar-thumb,.map-scrollbar.dragging .map-scrollbar-thumb{width:14px;margin-left:-7px}.map-scrollbar.dragging .map-scrollbar-thumb{cursor:grabbing;transition:width .22s cubic-bezier(.3,1.6,.5,1),margin-left .22s cubic-bezier(.3,1.6,.5,1)}.desktop-dashboard .web-edges path{stroke:var(--paper-faint);stroke-width:2.5px;opacity:.8}.desktop-dashboard .web-edges .learned-edge{stroke:var(--accent);opacity:1}.desktop-dashboard .web-edges .placement-covered-edge{stroke:var(--placed);opacity:1}.desktop-node-disc{fill:var(--ink-2);stroke:var(--paper-faint);stroke-opacity:.45;stroke-width:3px;transition:stroke .15s,fill .15s}.desktop-node-progress{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round;pointer-events:none;transition:stroke-dasharray .4s ease-out,stroke-width .15s}.node-fading .desktop-node-progress{stroke:var(--gold)}.node-solid .desktop-node-disc{stroke:var(--accent);stroke-opacity:1}.node-solid .desktop-node-hanzi{fill:var(--accent)}.node.selected .desktop-node-disc{stroke-width:4px;fill:var(--ink-3)}.node.selected .desktop-node-progress{stroke-width:4px}.placement-covered .desktop-node-disc{stroke:var(--placed);stroke-opacity:1}.node:hover .desktop-node-disc,.node:focus-visible .desktop-node-disc{stroke:var(--accent-pale);stroke-opacity:1;stroke-width:4px}.desktop-node-hanzi{fill:var(--paper);text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-family:Noto Serif SC,Songti SC,SimSun,serif;font-size:36px}.desktop-node-current rect{fill:var(--accent)}.desktop-node-current text{fill:var(--ink);font-family:var(--display);font-size:11px;font-weight:700}.desktop-node-halo{fill:none;stroke:rgba(var(--accent-rgb), .5);stroke-width:1.5px;pointer-events:none}@media (prefers-reduced-motion:reduce){.desktop-node-progress{transition:none}}.desktop-dashboard .node-label{fill:var(--paper);font-family:var(--display);letter-spacing:0;paint-order:stroke;stroke:var(--ink-2);stroke-width:12px;stroke-linejoin:round;font-size:18px}.desktop-dashboard .node-label.current{fill:color-mix(in srgb, var(--accent) 70%, var(--paper));font-weight:600}.desktop-dashboard .web-fullscreen-toggle{border:1px solid var(--hair-strong);background:var(--ink);width:40px;height:40px;color:var(--paper);border-radius:6px;place-items:center;display:grid}.desktop-dashboard .web-fullscreen-toggle:hover{border-color:rgba(var(--accent-rgb), .6)}.desktop-dashboard .web-zoom-controls{border:1px solid var(--hair-strong);background:var(--ink);border-radius:6px;gap:0;padding:0;overflow:hidden}.desktop-dashboard .web-zoom-controls button{height:38px;color:var(--paper);border-radius:0}.desktop-dashboard .web-zoom-controls button:not(.web-zoom-reset){width:38px;height:38px;font-size:18px;font-weight:400}.desktop-dashboard .web-zoom-controls .web-zoom-reset{border-inline:1px solid var(--hair-strong);min-width:72px;padding:0 10px;font-size:14px}.desktop-dashboard .web-wrap:fullscreen{flex-direction:column;justify-content:flex-start;align-items:stretch}.desktop-dashboard .web-wrap:fullscreen .web-stage{flex:1;min-height:0}.desktop-dashboard .web-wrap:fullscreen #web{width:100%;height:100%}#web-view.desktop-dashboard .key{z-index:5;pointer-events:none;background:0 0;border:0;gap:9px;padding:0;display:grid;position:absolute;bottom:18px;left:20px}.desktop-dashboard .key-item{font-family:var(--display);text-transform:none;letter-spacing:0;color:var(--paper-dim);text-shadow:0 1px 6px var(--ink);gap:12px;font-size:13px}.desktop-key-symbol{border:2px solid var(--paper-faint);border-radius:50%;flex-shrink:0;width:16px;height:16px;display:inline-block}.desktop-key-symbol.solid{border-color:var(--accent);background:var(--accent)}.desktop-key-symbol.learning{border-color:var(--accent)}.desktop-key-symbol.fading{border-color:var(--gold)}.lesson-word-preview{flex-wrap:wrap;gap:10px;display:flex}.lesson-word-preview button{border:1px solid var(--hair-strong);background:var(--surface-up);min-width:48px;min-height:46px;color:inherit;cursor:pointer;border-radius:6px;place-items:center;padding:3px 10px;font-family:Noto Serif SC,Songti SC,SimSun,serif;font-size:25px;transition:background .15s,border-color .15s;display:grid}.lesson-word-preview button.preview-word-active{background:color-mix(in srgb, var(--accent) 35%, var(--surface-up));border-color:var(--accent)}.daily-target-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.daily-target-row label{font-size:16px;font-weight:500}.daily-target-control{border:1px solid var(--hair-strong);border-radius:6px;display:flex;overflow:hidden}.daily-target-control button{width:32px;height:34px;color:var(--paper);background:0 0;border:0;font-size:20px}.daily-target-control button:hover:not(:disabled){background:var(--surface-up)}.daily-target-control :is(output,input){border:0;border-inline:1px solid var(--hair);min-width:46px;color:var(--paper);font:inherit;text-align:center;background:0 0;place-items:center;padding:0 5px;font-size:16px;display:grid}.daily-target-control input{appearance:textfield}.daily-target-control input::-webkit-inner-spin-button{appearance:none;margin:0}.daily-target-control input::-webkit-outer-spin-button{appearance:none;margin:0}.desktop-start-lesson{background:var(--accent);width:100%;min-height:48px;color:var(--ink);border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:14px;margin-top:18px;font-size:16px;font-weight:650;display:flex}.desktop-start-lesson:hover{background:var(--accent-pale)}.desktop-start-lesson span{font-size:24px;font-weight:400}.learning-steps{border:1px solid var(--hair-strong);background:var(--ink-2);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.learning-step{min-width:0;position:relative}.learning-step:not(:last-child):after{content:"";z-index:2;pointer-events:none;background:linear-gradient(to top right, transparent calc(50% - .75px), var(--hair-strong) 50%, transparent calc(50% + .75px)) top / 100% 50% no-repeat, linear-gradient(to bottom right, transparent calc(50% - .75px), var(--hair-strong) 50%, transparent calc(50% + .75px)) bottom / 100% 50% no-repeat;width:10px;position:absolute;top:0;bottom:0;right:0}.learning-step button{width:100%;min-height:66px;color:var(--paper);text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:10px 18px 10px 16px;transition:background .15s;display:flex}.learning-step+.learning-step button{width:calc(100% + 10px);margin-left:-10px;padding-left:32px}.learning-step:first-child button{clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%)}.learning-step+.learning-step:not(:last-child) button{clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%,10px 50%)}.learning-step:last-child button{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,10px 50%)}.learning-step button:hover{background:var(--surface)}.learning-step button.learning-step-current{background:var(--surface-up);box-shadow:inset 0 -3px 0 var(--accent)}.learning-step-status{flex:none;width:30px;height:30px;overflow:visible}.learning-step-status circle{fill:none;stroke-width:2px}.learning-step-status-track{stroke:var(--paper-faint)}.learning-step-status-fill{stroke:var(--accent);stroke-linecap:round;transform-origin:50%;transition:stroke-dasharray .3s;transform:rotate(-90deg)}.learning-step-status.done .learning-step-status-track{fill:var(--accent);stroke:var(--accent)}.learning-step-status-tick{fill:none;stroke:var(--ink);stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.learning-step-copy{gap:3px;min-width:0;font-size:15px;font-weight:600;line-height:1.15;display:grid}.learning-step-copy small{color:var(--paper-dim);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:400;overflow:hidden}.learning-step-due .learning-step-copy small{color:var(--gold)}.desktop-dashboard .learning-step button:focus-visible{outline:2px solid var(--accent);outline-offset:-12px;border-radius:12px}@media (width>=601px) and (width<=1200px){.desktop-masthead{gap:26px}.desktop-navigation{gap:22px}.desktop-learning-workspace{grid-template-columns:340px minmax(0,1fr);gap:20px}.desktop-dashboard #web{height:510px}.learning-step-status{display:none}}@media (width>=601px) and (width<=1440px){.learning-step button{gap:8px;padding-inline:10px 14px}.learning-step+.learning-step button{padding-left:26px}.learning-step-status{width:26px;height:26px}.learning-step-copy{font-size:14px}.learning-step-copy small{font-size:12px}}@media (width>=601px) and (width<=900px){.desktop-masthead{gap:18px}.masthead-words{display:none}.desktop-learning-workspace{grid-template-columns:minmax(0,1fr)}}@media (width>=901px) and (height>=620px){#root:has(>.desktop-masthead){flex-direction:column;height:100dvh;display:flex}:is(#root>.desktop-masthead,#root:has(>.desktop-masthead)>.sync-warning){flex-shrink:0}main.learning-home-mode:has(.desktop-dashboard){flex:1;grid-template-rows:minmax(0,1fr);align-items:stretch;min-height:0;padding-block:20px}main.learning-home-mode:has(.desktop-dashboard)>.stage{min-height:0}#web-view.desktop-dashboard{flex-direction:column;height:100%;min-height:0;display:flex}.desktop-learning-workspace{flex:1;grid-template-rows:minmax(0,1fr);min-height:0}#web-view.desktop-dashboard .primary-map{flex-direction:column;flex:1;min-height:0;display:flex}.map-toolbar{flex-shrink:0}#web-view.desktop-dashboard .web-wrap,.desktop-dashboard .web-stage{flex:1;min-height:0}.desktop-dashboard #web{height:100%}.desktop-dashboard .web-level-hub{flex:1;min-height:0;overflow-y:auto}.desktop-lesson-panel{scrollbar-width:none;min-height:0;overflow-y:auto;container:session/size}.side-panel-session{flex-direction:column;flex:1 0 auto;display:flex}.side-panel-body{flex:1 0 auto}.side-panel-body>.side-panel-cta{margin-top:auto}.side-panel-body>:has(+.side-panel-cta){margin-bottom:14px}}@media (width>=901px) and (height>=620px) and (height<=900px){main.learning-home-mode:has(.desktop-dashboard){padding-block:16px}}@media (prefers-reduced-motion:reduce){.desktop-node-disc,.learning-step-status-fill,.map-scrollbar-thumb,.map-scrollbar-drop{transition:none}}.desktop-lesson-panel.side-panel{flex-direction:column;gap:14px;min-width:0;display:flex}.side-panel-card{border:1px solid var(--hair-strong);background:var(--surface);border-radius:12px;flex-shrink:0}.side-panel-session{padding:14px}.side-panel-body{flex-direction:column;min-width:0;padding:18px 4px 4px;animation:.28s cubic-bezier(.2,.8,.3,1) both side-panel-in;display:flex}@keyframes side-panel-in{0%{opacity:0;transform:translateY(6px)}}.side-panel-context{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-dim);margin:0 0 12px;font-size:11.5px}.side-panel-hero{align-items:center;gap:16px;display:flex}.side-panel-seal{min-width:56px;height:56px;font-family:var(--han);white-space:nowrap;color:var(--ink);background:var(--accent);border-radius:10px;flex-shrink:0;place-items:center;padding:0 6px;font-size:25px;font-weight:700;line-height:1;display:grid}.desktop-lesson-panel .side-panel-title{text-transform:none;min-width:0;font-family:var(--display);letter-spacing:-.02em;color:var(--paper);text-wrap:balance;border:0;margin:0;padding:0;font-size:28px;font-weight:700;line-height:1.15}.side-panel-subtitle{-webkit-line-clamp:2;color:var(--paper-dim);-webkit-box-orient:vertical;margin:12px 0 0;font-size:16.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.side-panel-progress{gap:12px;margin-top:20px;display:grid}.side-panel-progress-row{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.side-panel-progress-row strong{color:var(--paper);font-size:16px;font-weight:600}.side-panel-progress-row span{color:var(--paper-dim);font-variant-numeric:tabular-nums;font-size:15px}.side-panel-meter{background:var(--surface-up);border-radius:3px;height:6px;overflow:hidden}.side-panel-meter span{border-radius:inherit;background:var(--accent);height:100%;transition:width .3s;display:block}.desktop-lesson-panel .side-panel-label{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--paper-dim);border:0;margin:22px 0 10px;padding:0;font-size:11.5px;font-weight:500}.side-panel-words ul{border:1px solid var(--hair-strong);border-radius:8px;margin:0;padding:0;list-style:none;overflow:hidden}.side-panel-words li+li{border-top:1px solid var(--hair-strong)}.side-panel-words button{width:100%;min-height:48px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:52px auto minmax(0,1fr) 16px;align-items:center;gap:18px;padding:5px 16px 5px 18px;transition:background .15s;display:grid}.side-panel-words button:hover,.side-panel-words button.is-playing{background:var(--surface-up)}.side-panel-words button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.side-panel-word-han{font-family:var(--han);color:var(--paper);white-space:nowrap;font-size:22px;line-height:1.2}.side-panel-word-text{display:contents}.side-panel-word-pinyin{color:var(--accent);white-space:nowrap;font-size:15px}.side-panel-word-gloss{color:var(--paper-dim);white-space:nowrap;text-overflow:ellipsis;font-size:15px;overflow:hidden}.side-panel-word-play{color:var(--paper-faint);opacity:0;place-items:center;transition:opacity .15s,color .15s;display:grid}.side-panel-word-play svg{width:15px;height:15px}.side-panel-words button:hover .side-panel-word-play,.side-panel-words button:focus-visible .side-panel-word-play,.side-panel-words button.is-playing .side-panel-word-play{opacity:1;color:var(--accent)}.side-panel-more{color:var(--accent);margin:12px 0 0;font-size:14.5px}.side-panel-meta{color:var(--paper-dim);font-variant-numeric:tabular-nums;margin:14px 0 0;font-size:14.5px}.side-panel-cta{width:100%;min-height:56px;font-family:var(--display);color:var(--ink);background:var(--accent);cursor:pointer;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:0 20px;font-size:18px;font-weight:600;transition:background .15s;display:flex}.side-panel-cta span{font-size:20px;font-weight:400;transition:transform .15s}.side-panel-cta:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 84%, white 16%)}.side-panel-cta:hover:not(:disabled) span{transform:translate(3px)}.side-panel-cta:focus-visible{outline:2px solid var(--paper);outline-offset:3px}.side-panel-cta:disabled{color:var(--paper-faint);background:var(--surface-up);cursor:default}.side-panel-review-queue button{grid-template-columns:fit-content(60%) minmax(0,1fr) 16px}.side-panel-review-queue .side-panel-word-han{text-overflow:ellipsis;font-size:18px;overflow:hidden}.side-panel-options{gap:8px;margin:24px 0 0;padding:0;list-style:none;display:grid}.side-panel-options button{border:1px solid var(--hair-strong);width:100%;color:var(--paper);text-align:left;cursor:pointer;background:0 0;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name arrow""note arrow";align-items:center;gap:2px 12px;padding:14px 16px;transition:border-color .15s,background .15s;display:grid}.side-panel-options button>span[aria-hidden]{color:var(--paper-faint);grid-area:arrow;font-size:18px}.side-panel-options button:hover:not(:disabled){border-color:rgba(var(--accent-rgb), .6);background:var(--surface-up)}.side-panel-options button:hover:not(:disabled)>span[aria-hidden]{color:var(--accent)}.side-panel-options button:disabled{opacity:.55;cursor:default}.side-panel-option-name{font-family:var(--display);grid-area:name;font-size:15px;font-weight:600}.side-panel-option-note{color:var(--paper-dim);grid-area:note;font-size:13px}.side-panel-option-soon{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--paper-dim);white-space:nowrap;grid-area:arrow;font-size:10.5px}.side-panel-settings{padding:18px 18px 16px}.desktop-lesson-panel .side-panel-settings-title{font-family:var(--display);letter-spacing:-.01em;text-transform:none;color:var(--paper);border:0;margin:0 0 12px;padding:0;font-size:18px;font-weight:600}.side-panel-allowance-body{gap:10px;display:grid}.side-panel-allowance .daily-target-row label{color:var(--paper);flex:1;font-size:15.5px;font-weight:400;line-height:1.3}.side-panel-allowance .daily-target-control{border-radius:6px}.side-panel-allowance .daily-target-control button{width:38px;height:40px;font-size:20px}.side-panel-allowance .daily-target-control :is(output,input){border-color:var(--hair-strong);min-width:68px;font-size:17px}.side-panel-allowance-note{color:var(--paper-dim);margin:4px 0 0;font-size:13.5px}@container session (height<=828px){.side-panel-body{padding-top:16px}.side-panel-seal{min-width:48px;height:48px;font-size:22px}.desktop-lesson-panel .side-panel-title{font-size:24px}.side-panel-subtitle{margin-top:10px;font-size:15px}.desktop-lesson-panel .side-panel-label{margin-top:18px}.side-panel-words button{min-height:44px}.side-panel-meta{margin-top:14px}.side-panel-cta{min-height:50px}}@container session (height<=892px){.side-panel-settings{padding-block:16px 14px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-body{padding-top:16px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-seal{min-width:48px;height:48px;font-size:22px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-title{font-size:24px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-subtitle{margin-top:10px;font-size:15px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-label{margin-top:18px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-words button{min-height:44px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-meta{margin-top:14px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-cta{min-height:50px}}@container session (height<=788px){.side-panel-subtitle{display:none}}@container session (height<=852px){.learning-step button{min-height:56px}.side-panel-allowance-note{display:none}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-subtitle{display:none}}@container session (height<=682px){.side-panel-meta{display:none}.side-panel-body{padding-top:12px}.desktop-lesson-panel .side-panel-label{margin:14px 0 8px}.side-panel-words button{min-height:38px;padding-block:2px}.side-panel-more{margin-top:8px}.side-panel-progress{gap:8px;margin-top:14px}.side-panel-cta{min-height:46px}.side-panel-options{gap:6px;margin-top:14px}.side-panel-options button{padding:9px 14px}.side-panel-option-note{display:none}}@container session (height<=746px){.learning-step button{min-height:50px;padding-block:6px}.side-panel-session{padding:10px}.side-panel-settings{padding:12px 18px}.desktop-lesson-panel .side-panel-settings-title{margin-bottom:8px;font-size:16px}.side-panel-allowance-body{gap:6px}.side-panel-allowance .daily-target-control button{height:34px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-meta{display:none}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-body{padding-top:12px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-label{margin:14px 0 8px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-words button{min-height:38px;padding-block:2px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-more{margin-top:8px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-progress{gap:8px;margin-top:14px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-cta{min-height:46px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-options{gap:6px;margin-top:14px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-options button{padding:9px 14px}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-option-note{display:none}}@container session (height<=562px){.side-panel-words{display:none}.side-panel-options button{padding-block:7px}}@container session (height<=626px){.desktop-lesson-panel:has(.side-panel-progress) .side-panel-words{display:none}.desktop-lesson-panel:has(.side-panel-progress) .side-panel-options button{padding-block:7px}}@media (prefers-reduced-motion:reduce){.side-panel-body{animation:none}}@media (width<=600px){.masthead.mobile-masthead{min-height:0;padding:max(10px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 8px max(16px, env(safe-area-inset-left));border-bottom:1px solid var(--hair-strong)}.mobile-masthead .chrono>:not(.level-chip):not(.profile-menu){display:none}.mobile-masthead .level-chip{margin:0}main.learning-home-mode:has(.mobile-dashboard){padding:0 14px 90px;display:block}.mobile-dashboard{font-family:var(--display);font-variant-numeric:tabular-nums}.mobile-dashboard button,.mobile-dashboard input{font:inherit}.mobile-dashboard button{cursor:pointer;touch-action:manipulation}.mobile-dashboard button:disabled{opacity:.45;cursor:not-allowed}.mobile-dashboard :is(button,input):focus-visible{outline:2px solid var(--accent);outline-offset:3px}.mobile-learning-steps{margin:10px 0 16px}.mobile-learning-steps .learning-step button{gap:7px;min-height:54px;padding:8px 14px 8px 10px}.mobile-learning-steps .learning-step+.learning-step button{padding-left:22px}.mobile-learning-steps .learning-step-status{width:22px;height:22px}.mobile-learning-steps .learning-step-copy{gap:2px;font-size:13px}.mobile-learning-steps .learning-step-copy small{font-size:11px}.mobile-dashboard .mobile-learning-steps button:focus-visible{outline-offset:-6px}.mobile-next{box-sizing:border-box;border:1px solid var(--hair-strong);background:var(--ink-2);border-radius:14px;flex-direction:column;height:308px;min-height:308px;padding:16px;display:flex;position:relative}.mobile-dashboard .mobile-kicker{color:var(--paper-dim);letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;font-size:11px;font-weight:600}.mobile-next h1{letter-spacing:-.025em;margin:0;font-size:24px;font-weight:700;line-height:1.2}.mobile-next p,.mobile-topic-content>p,.mobile-target p{color:var(--paper-dim);margin:8px 0 0;font-size:14px;line-height:1.5}.mobile-target{border-top:1px solid var(--hair);margin-top:16px;padding-top:12px}.mobile-next .mobile-target{border-top:0;margin-top:0;padding-top:0}.mobile-lesson-progress{gap:9px;display:grid}.mobile-lesson-progress-heading{align-items:baseline;gap:12px;display:flex}.mobile-next .mobile-lesson-progress-heading{position:absolute;top:16px;right:16px}.mobile-lesson-progress-heading strong{color:var(--paper);font-size:15px;font-weight:700}.mobile-lesson-progress-track{background:var(--surface-up);border-radius:8px;height:8px;overflow:hidden}.mobile-next .mobile-lesson-progress-track{margin-top:20px}.mobile-lesson-progress-track span{border-radius:inherit;background:var(--accent);height:100%;transition:width .18s ease-out;display:block}.mobile-daily-target-summary{color:var(--paper-dim);justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.mobile-daily-target-summary button{color:var(--accent);text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:12px;font-weight:600;text-decoration:underline}.mobile-extra-words{border-top:1px solid var(--hair);justify-content:space-between;align-items:center;gap:12px;margin:18px 0 0;padding-top:14px;display:flex}.mobile-extra-words>div:first-child{gap:3px;display:grid}.mobile-extra-words strong{color:var(--paper);font-size:14px}.mobile-extra-words small{color:var(--paper-dim);font-size:12px}.mobile-dashboard .daily-target-control{flex-shrink:0}.mobile-dashboard .daily-target-control button,.mobile-dashboard .daily-target-control :is(output,input){width:40px;min-height:44px}.mobile-dashboard .desktop-start-lesson{border-radius:10px;min-height:44px;margin-top:12px;font-size:17px;font-weight:700}.mobile-next>.desktop-start-lesson,.mobile-next>.mobile-practice-list{margin-top:auto}.mobile-practice-list{margin:0;padding:0;list-style:none}.mobile-practice-list li+li{border-top:1px solid var(--hair)}.mobile-practice-list button{width:100%;min-height:50px;color:var(--paper);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:6px 2px;display:flex}.mobile-practice-list button>span:first-child{gap:1px;min-width:0;display:grid}.mobile-practice-list strong{font-size:15px;font-weight:600}.mobile-practice-list small{color:var(--paper-dim);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.mobile-practice-list button>span[aria-hidden]{color:var(--accent);font-size:18px;transition:transform .15s}.mobile-practice-list button:hover:not(:disabled)>span[aria-hidden]{transform:translate(3px)}.mobile-practice-list em{color:var(--paper-faint);flex-shrink:0;font-size:12px;font-style:normal}.mobile-dashboard .mobile-practice-list button:disabled{opacity:1;cursor:default}.mobile-practice-list button:disabled strong{color:var(--paper-dim)}.mobile-review-preview{flex:1;align-content:center;gap:10px;margin:12px 0;display:grid}.mobile-review-preview span{background:var(--surface-up);border-radius:9px;height:9px;animation:2.4s ease-in-out infinite review-preview-pulse;display:block}.mobile-review-preview span:first-child{width:88%}.mobile-review-preview span:nth-child(2){width:64%;animation-delay:.12s}.mobile-review-preview span:nth-child(3){width:76%;animation-delay:.24s}.mobile-review-preview span:nth-child(4){width:48%;animation-delay:.36s}.mobile-text-action{width:100%;min-height:44px;color:var(--accent);background:0 0;border:0;padding:12px 0 0;display:block;font-weight:600!important}@keyframes review-preview-pulse{0%,to{opacity:.45}50%{opacity:.9}}@media (prefers-reduced-motion:reduce){.mobile-review-preview span{animation:none}}.mobile-test-page{flex-direction:column;min-height:calc(100dvh - 150px);padding:24px 4px 112px;display:flex}.mobile-test-page h1{letter-spacing:-.03em;max-width:11ch;margin:0;font-size:32px;line-height:1.1}.mobile-test-page>p:not(.mobile-kicker){max-width:32ch;color:var(--paper-dim);margin:14px 0 0;font-size:16px;line-height:1.55}.mobile-test-details{gap:12px;margin:30px 0 0;display:grid}.mobile-test-details div{border-bottom:1px solid var(--hair);padding-bottom:12px}.mobile-test-details dt{color:var(--paper);font-size:14px;font-weight:700}.mobile-test-details dd{color:var(--paper-dim);margin:3px 0 0;font-size:14px;line-height:1.45}.mobile-test-page .desktop-start-lesson{margin-top:24px}.mobile-deck-page{padding:22px 2px 112px}.mobile-deck-heading h1{letter-spacing:-.03em;margin:0;font-size:30px;line-height:1.12}.mobile-deck-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin:18px 0 0;display:grid}.mobile-deck-stats div{border-left:1px solid var(--hair);padding:2px 14px}.mobile-deck-stats div:first-child{border-left:0;padding-left:0}.mobile-deck-stats dt{color:var(--paper-faint);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.mobile-deck-stats dd{color:var(--paper);letter-spacing:-.02em;margin:4px 0 0;font-size:24px;font-weight:600;line-height:1.1}.mobile-deck-review{background:var(--accent);width:100%;min-height:72px;color:var(--ink);text-align:left;border:0;border-radius:14px;justify-content:space-between;align-items:center;gap:16px;margin-top:22px;padding:14px 18px;transition:transform .16s cubic-bezier(.16,1,.3,1);display:flex}.mobile-deck-review:active:not(:disabled){transform:scale(.985)}.mobile-deck-review>span:first-child{gap:3px;display:grid}.mobile-deck-review strong{letter-spacing:-.01em;font-size:17px;font-weight:700}.mobile-deck-review small{opacity:.72;font-size:12.5px}.mobile-deck-review>span:last-child{font-size:22px}.mobile-deck-review:disabled{border:1px solid var(--hair);background:var(--surface);color:var(--paper-dim);opacity:1}.mobile-deck-error{color:#ff9b86;margin:12px 0 0;font-size:13px}.mobile-deck-controls{gap:12px;margin-top:22px;display:grid}.mobile-deck-search{display:block;position:relative}.mobile-deck-search svg{width:18px;height:18px;color:var(--paper-faint);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.mobile-deck-search input{border:1px solid var(--hair-strong);background:var(--ink-2);width:100%;min-height:46px;color:var(--paper);border-radius:12px;padding:10px 12px 10px 40px;font-size:16px}.mobile-deck-search input::placeholder{color:var(--paper-faint)}.mobile-deck-filters{border:1px solid var(--hair);background:var(--ink-2);border-radius:12px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.mobile-deck-filters button{min-height:38px;color:var(--paper-dim);text-transform:capitalize;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:6px 10px;font-size:14px;transition:background .16s,color .16s;display:flex}.mobile-deck-filters button span{color:var(--paper-faint);font-family:var(--mono);font-size:11px}.mobile-deck-filters button[aria-pressed=true]{background:var(--surface-up);color:var(--paper)}.mobile-deck-filters button[aria-pressed=true] span{color:var(--accent)}.mobile-deck-list{margin-top:18px}.mobile-deck-list ol{margin:0;padding:0;list-style:none}.mobile-deck-group{z-index:1;border-bottom:1px solid var(--hair);background:var(--ink);color:var(--paper-faint);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:12px;margin-top:18px;padding:10px 0 8px;font-size:10.5px;display:flex;position:sticky;top:0}.mobile-deck-group:first-child{margin-top:0}.mobile-deck-group span:first-child{color:var(--accent);font-weight:600}.mobile-deck-sentence{border:0;border-bottom:1px solid var(--hair);width:100%;color:inherit;text-align:left;background:0 0;gap:3px;padding:13px 2px;display:grid}.mobile-deck-sentence:active{background:rgba(var(--accent-rgb), .05)}.mobile-deck-sentence span{color:var(--paper);font-family:var(--han);text-overflow:ellipsis;white-space:nowrap;font-size:20px;line-height:1.35;overflow:hidden}.mobile-deck-sentence small{color:var(--paper-dim);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.mobile-deck-sentence i{color:var(--paper-faint);font-family:var(--mono);letter-spacing:.06em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;margin-top:3px;font-size:10px;font-style:normal;overflow:hidden}.mobile-deck-words.mobile-deck-words{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.mobile-deck-words .mobile-deck-group{grid-column:1/-1;margin-bottom:2px}.mobile-deck-words .mobile-deck-group:not(:first-child){margin-top:12px}.mobile-deck-word{border:1px solid var(--hair);background:var(--surface);width:100%;height:100%;color:inherit;text-align:left;border-radius:10px;align-content:start;gap:2px;padding:11px 12px;display:grid}.mobile-deck-word:active{border-color:rgba(var(--accent-rgb), .45)}.mobile-deck-word span{color:var(--paper);font-family:var(--han);font-size:20px}.mobile-deck-word small{color:var(--accent-pale);font-family:var(--mono);letter-spacing:.04em;font-size:11px}.mobile-deck-word i{color:var(--paper-faint);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-style:normal;overflow:hidden}.mobile-deck-more{border:1px solid var(--hair-strong);width:100%;min-height:44px;color:var(--paper);background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-top:14px;font-size:14px;display:flex}.mobile-deck-more span{color:var(--paper-faint);font-size:12px}.mobile-deck-skeleton{gap:10px;display:grid}.mobile-deck-skeleton span{background:var(--surface);border-radius:10px;height:64px;animation:1.4s ease-in-out infinite mobile-deck-pulse}@keyframes mobile-deck-pulse{50%{opacity:.5}}.mobile-deck-empty{color:var(--paper-dim);text-align:center;margin:0;padding:28px 0;font-size:14px}.mobile-deck-preferences{border:1px solid var(--hair);background:var(--surface);border-radius:14px;margin-top:28px}.mobile-deck-preferences summary{min-height:56px;color:var(--paper);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-weight:600;list-style:none;display:flex}.mobile-deck-preferences summary::-webkit-details-marker{display:none}.mobile-deck-preferences summary:after{content:"";border-right:1.5px solid var(--paper-faint);border-bottom:1.5px solid var(--paper-faint);flex:none;width:8px;height:8px;margin-left:2px;transition:transform .18s;transform:translateY(-2px)rotate(45deg)}.mobile-deck-preferences[open] summary:after{transform:translateY(2px)rotate(-135deg)}.mobile-deck-preferences summary small{color:var(--paper-faint);margin-left:auto;font-size:12px;font-weight:400}.mobile-deck-preferences>div{gap:16px;padding:4px 16px 16px;display:grid}.mobile-deck-preferences label{color:var(--paper-dim);gap:6px;font-size:12px;display:grid}.mobile-deck-preferences output{color:var(--paper);font-size:15px}.mobile-deck-card-backdrop{z-index:30;background:#00000080;align-items:end;display:grid;position:fixed;inset:0}.mobile-deck-card-detail{max-height:92dvh;padding:40px 16px max(24px, env(safe-area-inset-bottom));background:var(--ink-2);border-radius:20px 20px 0 0;animation:.22s cubic-bezier(.16,1,.3,1) mobile-deck-card-enter;position:relative;overflow-y:auto}.mobile-deck-card-detail:focus{outline:none}.mobile-deck-card-detail .progress-detail-card{background:0 0;border:0;gap:20px;padding:0}.mobile-deck-card-detail .progress-detail-card-chrome{padding-right:40px}.mobile-deck-card-stats{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);text-align:left;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:14px 0;display:grid}.mobile-deck-card-stats div{border-left:1px solid var(--hair);padding-left:12px}.mobile-deck-card-stats div:first-child{border-left:0;padding-left:0}.mobile-deck-card-stats dt{color:var(--paper-faint);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.mobile-deck-card-stats dd{color:var(--paper);margin:3px 0 0;font-size:15px;font-weight:600}.mobile-deck-card-confirm{gap:12px;display:grid}.mobile-deck-card-confirm p{color:var(--paper-dim);margin:0;font-size:13px}.mobile-deck-card-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.mobile-deck-card-actions button{border:1px solid var(--hair-strong);min-height:46px;color:var(--paper);background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:8px;font-size:14px;display:inline-flex}.mobile-deck-card-actions button.danger{border-color:color-mix(in srgb, var(--tone-4) 45%, transparent);color:var(--tone-4)}.mobile-deck-card-actions svg{width:15px;height:15px}@media (prefers-reduced-motion:reduce){.mobile-deck-skeleton span,.mobile-deck-card-detail{animation:none}}@keyframes mobile-deck-card-enter{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mobile-map>header{align-items:center;gap:10px;padding:12px 2px 0;display:flex}.mobile-map>header>div{flex:1}.mobile-map h2{color:var(--paper);font-family:var(--display);letter-spacing:-.02em;text-transform:none;border:0;margin:0;padding:0;font-size:22px;font-weight:700}.mobile-map header p{color:var(--paper-dim);margin:4px 0 0;font-size:14px}.mobile-map header button{border:1px solid var(--hair-strong);background:var(--ink-2);width:44px;height:44px;color:var(--paper);border-radius:50%;place-items:center;display:grid}.mobile-map .level-tabs{margin:2px 0 0 -2px}.mobile-map header .level-tabs button{width:32px;height:36px;color:var(--paper-dim);background:0 0;border:0;border-radius:0;display:block}.mobile-map header .level-tabs button[data-state=on]{color:var(--paper)}.mobile-map .lattice-root{padding:0}.mobile-map .lattice-hint,.mobile-map .lattice-relic,.mobile-map .lattice-summary,.mobile-map .lattice-node-halo{display:none}.mobile-map .lattice-canvas{background:radial-gradient(circle, var(--hair-strong) .7px, transparent 1px) 0 0 / 18px 18px}.mobile-map .lattice-node-shape,.mobile-map :is(.lattice-node--new,.lattice-node--learning,.lattice-node--fading,.lattice-node--mature) .lattice-node-shape{border:3px solid var(--paper-faint);clip-path:none;background:var(--ink-2);width:68px;height:68px;color:var(--paper);opacity:1;box-shadow:none;border-radius:50%;transform:none}.mobile-map .lattice-node-shape:before{display:none}.mobile-map .lattice-word{transform:none;font-size:23px!important}.mobile-map .lattice-node-label{background:var(--ink);max-width:94px;color:var(--paper-dim);opacity:1;border-radius:6px;padding:1px 4px;font-size:12px;position:relative}.mobile-map .lattice-node .lattice-node-shape{border:0}.lattice-node-ring{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible;transform:rotate(-90deg)}.lattice-node-ring circle{fill:none;stroke-width:3px;transition:stroke-width .15s}.lattice-node-ring-track{stroke:var(--paper-faint);opacity:.45}.lattice-node-ring-fill{stroke:var(--accent);stroke-linecap:round;transition:stroke-dasharray .4s ease-out}.lattice-node--fading .lattice-node-ring-fill{stroke:var(--gold)}.mobile-map .lattice-node.lattice-node--recommended .lattice-node-shape{box-shadow:0 0 0 4px var(--ink), 0 0 0 5.5px rgba(var(--accent-rgb), .5)}.mobile-map .lattice-node--recommended .lattice-node-label{color:color-mix(in srgb, var(--accent) 70%, var(--paper));font-weight:600}.mobile-map .lattice-node[aria-pressed=true] .lattice-node-shape{background:var(--ink-3)}.lattice-node[aria-pressed=true] .lattice-node-ring circle{stroke-width:4px}.mobile-map .lattice-node.lattice-node--mature .lattice-node-shape{color:var(--accent)}.mobile-map .lattice-node--mature .lattice-word{font-weight:700}@media (prefers-reduced-motion:reduce){.lattice-node-ring-fill{transition:none}}.mobile-map .lattice-edge{stroke:var(--paper-faint);stroke-dasharray:none;opacity:.8;stroke-width:2px}.mobile-map .lattice-edge--learned{stroke:var(--accent);opacity:1}.mobile-search{margin-top:12px}.mobile-search input{border:1px solid var(--hair-strong);background:var(--ink-2);width:100%;min-height:44px;color:var(--paper);border-radius:8px;padding:10px;font-size:16px}.mobile-search button{background:var(--ink-2);width:100%;min-height:44px;color:var(--paper);text-align:left;border:0;padding:10px;display:block}.mobile-bottom-nav{z-index:20;padding:8px 12px max(10px, env(safe-area-inset-bottom));border-top:1px solid var(--hair-strong);background:var(--ink-2);display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-bottom-nav button{min-height:48px;color:var(--paper-dim);background:0 0;border:0;flex:1;justify-items:center;gap:5px;padding:0;font-size:12px;display:grid}.mobile-bottom-nav button[aria-current]{color:var(--accent)}.mobile-topic-sheet{border:1px solid var(--hair-strong);background:var(--ink-2);width:100%;max-width:600px;max-height:85dvh;color:var(--paper);transform:translateY(calc(100% + var(--sheet-drag-offset,0px)));overscroll-behavior:contain;border-bottom:0;border-radius:22px 22px 0 0;margin:0 auto;padding:0;transition:transform .26s cubic-bezier(.16,1,.3,1);position:fixed;inset:auto 0 0;overflow:hidden}.mobile-topic-sheet::backdrop{background:#00000038}.mobile-topic-sheet--open{transform:translateY(var(--sheet-drag-offset,0px))}.mobile-topic-sheet--dragging{transition:none;animation:none}.mobile-topic-sheet--closing{pointer-events:none;animation:.18s cubic-bezier(.4,0,1,1) forwards mobile-topic-sheet-exit}.mobile-topic-content{max-height:85dvh;padding:52px 20px max(24px, env(safe-area-inset-bottom));overscroll-behavior:contain;overflow-y:auto}.sheet-drag-region{z-index:1;touch-action:none;cursor:grab;height:48px;position:absolute;top:0;left:0;right:0}.sheet-drag-region:active{cursor:grabbing}.sheet-handle{background:var(--paper-faint);border-radius:4px;width:44px;height:5px;position:absolute;top:13px;left:calc(50% - 22px)}.sheet-close{z-index:2;width:44px;height:44px;color:var(--paper);background:0 0;border:0;place-items:center;display:grid;position:absolute;top:10px;right:8px}.mobile-topic-content h2{font-family:var(--display);letter-spacing:-.025em;text-transform:none;border:0;margin:10px 0 0;padding:0;font-size:28px;font-weight:700;line-height:1.2}.mobile-topic-content .lesson-word-preview{margin-top:16px}.mobile-topic-content .lesson-word-preview span{min-width:52px;padding:8px 14px;font-size:24px}.mobile-topic-content .mobile-target{margin-top:18px;padding-top:14px}@keyframes mobile-topic-sheet-exit{0%{transform:translateY(var(--sheet-drag-offset,0))}to{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.mobile-topic-sheet,.mobile-topic-sheet--closing{transition:none;animation:none}}@media (width<=350px){.mobile-learning-steps .learning-step-status{display:none}.mobile-dashboard .daily-target-control button,.mobile-dashboard .daily-target-control output{width:34px}}}
