:root{color-scheme:light;--page: #fbf7ee;--surface: #ffffff;--ink: #3c3c3c;--ink2: #6f6a5e;--muted: #a8a190;--grid: #e9e2d0;--axis: #d6cdb6;--border: rgba(60, 60, 60, .12);--s1: #1cb0f6;--s2: #ff9600;--s3: #58cc02;--good: #58cc02;--crit: #ff4b4b;--duo-green: #58cc02;--duo-green-dark: #46a302;--duo-blue: #1cb0f6;--duo-blue-dark: #1899d6;--duo-purple: #ce82ff;--duo-purple-dark: #a560e8;--duo-orange: #ff9600;--duo-orange-dark: #e08600;--duo-red: #ff4b4b;--duo-red-dark: #d33131;--duo-yellow: #ffc800;--ring-track: #efe8d8;--vz-ink: var(--ink);--vz-muted: var(--muted);--vz-axis: var(--axis);--vz-grid: var(--grid);--vz-s1: var(--s1);--vz-s2: var(--s2);--vz-surface: var(--surface)}@media (prefers-color-scheme: dark){:root:where(:not([data-theme=light])){color-scheme:dark;--page: #131f24;--surface: #1b2a32;--ink: #f1f7fb;--ink2: #c6d3da;--muted: #7f929c;--grid: #37464f;--axis: #465863;--border: rgba(255, 255, 255, .1);--s1: #49c0f8;--s2: #ffb020;--s3: #79d63d;--good: #79d63d;--crit: #ff6b6b;--ring-track: #24343d}}:root[data-theme=dark]{color-scheme:dark;--page: #131f24;--surface: #1b2a32;--ink: #f1f7fb;--ink2: #c6d3da;--muted: #7f929c;--grid: #37464f;--axis: #465863;--border: rgba(255, 255, 255, .1);--s1: #49c0f8;--s2: #ffb020;--s3: #79d63d;--good: #79d63d;--crit: #ff6b6b;--ring-track: #24343d}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font:15px/1.6 system-ui,-apple-system,Segoe UI,sans-serif}h1,h2,h3{letter-spacing:-.01em;font-weight:800}header.app{background:var(--surface);border-bottom:1px solid var(--border);padding:12px 24px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;position:sticky;top:0;z-index:5}header.app .brand{font:inherit;font-size:16px;margin:0;font-weight:800;border:none;background:none;color:var(--ink);cursor:pointer;display:flex;align-items:center;padding:0}header.app .brand .brand-aa{font-family:Georgia,serif;color:var(--s1);margin-right:6px}header.app .crumb{color:var(--ink2);font-size:13.5px;display:flex;gap:8px;align-items:center}header.app button.linkish{font:inherit;font-size:13.5px;border:none;background:none;color:var(--s1);cursor:pointer;padding:4px 6px;border-radius:6px}header.app button.linkish:hover{background:color-mix(in oklab,var(--s1) 12%,transparent)}main{max-width:980px;margin:0 auto;padding:28px 20px 80px}.hero{text-align:center;margin:28px 0 34px}.hero h2{font-size:30px;margin:0 0 6px}.hero p{color:var(--ink2);margin:0}.lesson-head{margin-bottom:18px}.lesson-head .kicker{color:var(--s1);font-size:12.5px;font-weight:650;text-transform:uppercase;letter-spacing:.06em}.lesson-head h2{margin:4px 0 8px;font-size:26px;font-family:Georgia,serif}.lesson-head .cando{display:inline-block;background:color-mix(in oklab,var(--s3) 12%,transparent);color:var(--s3);border-radius:999px;padding:4px 14px;font-size:13px;font-weight:600}section.block{margin:26px 0}section.block>h3{font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1px solid var(--grid);padding-bottom:6px}.vocab-intro{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.vocab-item{background:var(--surface);border:1.5px solid var(--grid);border-left:4px solid var(--s1);border-radius:10px;padding:12px 16px}.vocab-item b{font-family:Georgia,serif;font-size:16px;color:var(--s1);display:block;margin-bottom:4px}.vocab-item span{font-size:13.5px;color:var(--ink2)}.video-frame{background:#000;border-radius:12px;overflow:hidden;border:1px solid var(--border)}.video-frame video{display:block;width:100%}.video-missing{border:1.5px dashed var(--grid);border-radius:12px;padding:18px;color:var(--muted);font-size:13.5px}.reading p{margin:0 0 14px}.reading .callout{background:var(--surface);border:1.5px solid var(--grid);border-left:4px solid var(--s1);border-radius:10px;padding:14px 18px;margin:0 0 16px}.reading .callout b.title{display:block;margin-bottom:6px;color:var(--s1)}.reading .vis-wrap{margin:0 0 16px;text-align:center}.reading .vis-wrap svg{max-width:100%;height:auto;border:1px solid var(--grid);border-radius:12px}.reading .vis-wrap figcaption{color:var(--muted);font-size:12.5px;margin-top:6px}.dict-entry{background:var(--surface);border:1.5px solid var(--grid);border-radius:12px;padding:18px 22px;margin:0 0 16px;font-family:Georgia,Times New Roman,serif}.dict-entry .hw{font-size:22px;font-weight:700}.dict-entry .respell{color:var(--muted);margin-left:10px;font-size:14px}.dict-entry .ipa{color:var(--s2);margin-left:8px;font-size:14px}.dict-entry .posline{margin-top:8px}.dict-entry .pos{font-style:italic;color:var(--s2);font-weight:600}.dict-entry .inflect{color:var(--muted);font-size:13.5px}.dict-entry ol{margin:4px 0 8px;padding-left:26px}.dict-entry ol li{margin:3px 0}.dict-entry .label{font-variant:small-caps;color:var(--s1);font-size:13px;margin-right:5px}.dict-entry .ex{font-style:italic;color:var(--ink2)}.dict-entry .etym{color:var(--muted);font-size:13.5px;margin-top:8px}.dict-entry .relations{font-size:13.5px;margin-top:6px}.dict-entry .relations b{font-variant:small-caps;font-weight:600}.practice-card{background:var(--surface);border:1.5px solid var(--grid);border-radius:12px;padding:18px;margin-bottom:14px}.practice-card>.prompt{font-weight:650;margin-bottom:12px}.practice-card .result{margin-top:12px;font-weight:600}.practice-card .result.good{color:var(--s3)}.practice-card .result.bad{color:var(--crit)}.chip-row{display:flex;flex-wrap:wrap;gap:8px}button.chip{font:inherit;font-size:14.5px;font-weight:700;padding:8px 16px;border-radius:14px;border:2px solid var(--grid);border-bottom-width:4px;background:var(--surface);color:var(--ink);cursor:pointer;transition:filter .1s}button.chip:hover:not(:disabled){border-color:var(--s1)}button.chip:active:not(:disabled){transform:translateY(2px);border-bottom-width:2px;margin-bottom:2px}button.chip.picked{background:color-mix(in oklab,var(--s1) 14%,transparent);border-color:var(--s1)}button.chip.good{background:color-mix(in oklab,var(--s3) 16%,transparent);border-color:var(--s3)}button.chip.bad{background:color-mix(in oklab,var(--crit) 14%,transparent);border-color:var(--crit)}button.chip:disabled{cursor:default;opacity:.9}.slots{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;min-height:42px}.slot{min-width:84px;min-height:38px;border:1.5px dashed var(--axis);border-radius:10px;display:grid;place-items:center;padding:4px 10px;font-family:Georgia,serif;color:var(--muted);font-size:13px}.slot.filled{border-style:solid;color:var(--ink);background:var(--surface)}.buckets{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:12px}.bucket{border:1.5px solid var(--grid);border-radius:10px;padding:10px;min-height:90px}.bucket h4{margin:0 0 8px;font-size:13px;color:var(--ink2)}.bucket .chip-row{min-height:30px}.bucket-item{font:inherit;display:block;width:100%;text-align:left;padding:6px 10px;margin:4px 0;border-radius:8px;border:1.5px solid var(--grid);background:var(--surface);color:var(--ink);cursor:pointer;font-size:13.5px}.bucket-item.good{border-color:var(--s3)}.bucket-item.bad{border-color:var(--crit)}.gw-round{display:flex;align-items:center;gap:12px;margin:10px 0;flex-wrap:wrap}.gw-round .word{font-family:Georgia,serif;font-size:17px;font-weight:700;min-width:110px}.yn{display:flex;gap:8px}.pair-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pair-grid button{text-align:left}.quiz-q{margin-bottom:18px}.quiz-q .stem{font-weight:650;margin-bottom:8px}.quiz-q .choices{display:flex;flex-direction:column;gap:6px}.quiz-q .choices button{font:inherit;text-align:left;padding:9px 14px;border-radius:10px;border:1.5px solid var(--grid);background:var(--surface);color:var(--ink);cursor:pointer}.quiz-q .choices button:hover:not(:disabled){border-color:var(--s1)}.quiz-q .choices button.good{border-color:var(--s3);background:color-mix(in oklab,var(--s3) 12%,transparent)}.quiz-q .choices button.bad{border-color:var(--crit);background:color-mix(in oklab,var(--crit) 10%,transparent)}.quiz-q .explain{margin-top:8px;color:var(--ink2);font-size:13.5px;border-left:3px solid var(--s1);padding-left:12px}.quiz-score{font-size:16px;font-weight:650;background:color-mix(in oklab,var(--s1) 10%,transparent);border-radius:10px;padding:12px 16px}.glossary-pop{position:fixed;z-index:40;width:360px;max-width:calc(100vw - 16px);background:var(--surface);border:1.5px solid var(--s1);border-radius:12px;padding:12px 16px;box-shadow:0 10px 30px #0000002e}.glossary-pop b{font-family:Georgia,serif;font-size:16px;color:var(--s1)}.glossary-pop p{margin:6px 0 0;font-size:13.5px}.explorer{background:var(--surface);border:1.5px solid var(--grid);border-radius:12px;padding:18px}.explorer form{display:flex;gap:8px}.explorer input{font:inherit;font-family:Georgia,serif;flex:1;padding:9px 14px;border-radius:10px;border:1.5px solid var(--grid);background:var(--page);color:var(--ink)}.explorer input:focus{outline:none;border-color:var(--s1)}.explorer button.go{font:inherit;padding:9px 18px;border-radius:10px;border:none;background:var(--s1);color:#fff;font-weight:650;cursor:pointer}.explorer button.go:disabled{opacity:.5;cursor:default}.explorer .answer{margin-top:14px;white-space:pre-wrap}.explorer .hint{color:var(--muted);font-size:12.5px;margin-top:10px}.explorer .offline{color:var(--muted);font-size:13.5px}.footer-note{color:var(--muted);font-size:12.5px;text-align:center;margin-top:48px}.dict-entry .abbrev-note{font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:12px;color:var(--muted);border-top:1px dashed var(--grid);margin-top:8px;padding-top:8px}header.app .glossary-link{margin-left:auto;font-weight:650}.glossary-list{margin:0}.glossary-row{display:grid;grid-template-columns:minmax(150px,210px) 1fr;gap:14px;padding:10px 4px;border-bottom:1px solid var(--grid)}.glossary-row dt{font-family:Georgia,serif;font-weight:700;font-size:15.5px;color:var(--s1)}.glossary-row dt .stands-for{display:block;font-family:system-ui,sans-serif;font-weight:400;font-size:12px;color:var(--muted)}.glossary-row dd{margin:0;color:var(--ink2);font-size:14px}@media (max-width: 560px){.glossary-row{grid-template-columns:1fr;gap:2px}}.vg-intro{color:var(--ink2);margin:0 0 14px}.vg-controls{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.vg-controls .tabs{margin-left:0}.vg-search{font:inherit;padding:8px 12px;border-radius:8px;border:1px solid var(--grid);background:var(--surface);color:var(--ink);min-width:240px}.vg-status{color:var(--muted);font-size:13px;margin:4px 0 10px}.vg-sense{display:grid;grid-template-columns:auto 1fr;column-gap:6px;row-gap:2px;margin-bottom:8px}.vg-sense:last-child{margin-bottom:0}.vg-n{color:var(--s1);grid-row:1 / span 3}.vg-sense>:not(.vg-n){grid-column:2}.vg-def{color:var(--ink)}.vg-ex{color:var(--ink2)}.vg-used{font-size:12px;color:var(--muted)}.gate-note{color:var(--muted);font-size:13px;margin:0 0 10px}.lesson-row.locked{opacity:.6;cursor:not-allowed}.lesson-row.locked:hover{border-color:var(--grid)}.badge.perfect{border-color:var(--s3);background:color-mix(in oklab,var(--s3) 12%,transparent);color:var(--s3);font-weight:700}.locked-note{color:var(--muted);font-size:13px}.locked-note.done{color:var(--s3);font-weight:600}.next-chip{border-color:var(--s1);color:var(--s1);font-weight:600}.quiz-score.perfect{color:var(--s3);font-weight:600}.quiz-q .stem .first-try{margin-left:8px;font-size:12px;color:var(--s3);font-weight:600}.explain.nudge{color:var(--s2)}.help-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 4px;padding:10px 12px;border:1.5px dashed color-mix(in oklab,var(--s1) 45%,transparent);border-radius:10px;background:color-mix(in oklab,var(--s1) 6%,transparent)}.help-label{font-weight:650;color:var(--s1);font-size:13.5px}.help-chip{border-color:var(--s1);color:var(--s1)}.help-status,.help-muted{font-size:12.5px;color:var(--muted)}.practice-with-help{margin-bottom:14px}.practice-with-help .help-bar{margin-top:-6px}.vg-derivation{display:block;font-size:12.5px;color:var(--s2);font-style:italic;margin-bottom:6px}.daily-card{display:flex;align-items:center;gap:20px;background:var(--surface);border:2px solid var(--grid);border-bottom-width:5px;border-radius:20px;padding:20px 24px;margin:20px 0 30px;flex-wrap:wrap}.daily-body{flex:1;min-width:240px}.daily-body h2{margin:0 0 4px;font-size:22px}.daily-body p{margin:0 0 12px;color:var(--ink2);font-size:14px}.goal-ring .ring-big{font-size:26px;font-weight:800;fill:var(--ink)}.goal-ring .ring-small{font-size:11px;fill:var(--muted);font-weight:700}.streak{display:flex;flex-direction:column;align-items:center;min-width:64px}.streak .flame{font-size:30px}.streak b{font-size:22px;color:var(--duo-orange)}.streak-label{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase}.duo-btn{font:inherit;font-weight:800;font-size:15px;padding:12px 22px;border-radius:16px;border:0;border-bottom:4px solid rgba(0,0,0,.22);color:#fff;cursor:pointer;text-align:left}.duo-btn:active{transform:translateY(2px);border-bottom-width:2px;margin-bottom:2px}.duo-btn.primary{background:var(--duo-green);border-bottom-color:var(--duo-green-dark)}.home-heading{font-size:15px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:26px 0 12px}.tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.menu-tile{display:flex;align-items:center;gap:16px;text-align:left;font:inherit;color:var(--ink);background:var(--surface);border:2px solid var(--grid);border-bottom-width:5px;border-radius:18px;padding:16px;cursor:pointer;transition:transform .12s,border-color .12s}.menu-tile:hover{transform:translateY(-2px)}.menu-tile:active{transform:translateY(2px);border-bottom-width:2px;margin-bottom:3px}.menu-tile .tile-icon{flex:0 0 58px;height:58px;border-radius:16px;display:grid;place-items:center;font-size:28px;color:#fff;border-bottom:4px solid rgba(0,0,0,.2)}.tile-green .tile-icon{background:var(--duo-green)}.tile-blue .tile-icon{background:var(--duo-blue)}.tile-purple .tile-icon{background:var(--duo-purple)}.tile-orange .tile-icon{background:var(--duo-orange)}.tile-red .tile-icon{background:var(--duo-red)}.menu-tile.current.tile-green{border-color:var(--duo-green)}.menu-tile.current.tile-blue{border-color:var(--duo-blue)}.menu-tile.current.tile-purple{border-color:var(--duo-purple)}.menu-tile .tile-body{flex:1;display:flex;flex-direction:column;gap:2px}.menu-tile .tile-body b{font-size:16px;font-weight:800}.menu-tile .tile-sub{color:var(--ink2);font-size:13px}.menu-tile .tile-progress{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);font-weight:700;margin-top:4px}.menu-tile .tile-bar{flex:1;height:8px;border-radius:999px;background:var(--ring-track);overflow:hidden}.menu-tile .tile-bar span{display:block;height:100%;border-radius:999px;background:var(--duo-yellow)}.unit-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;color:#fff;border-radius:20px;padding:20px 24px;margin:18px 0 8px;border-bottom:5px solid rgba(0,0,0,.22)}.unit-banner.tile-green{background:var(--duo-green)}.unit-banner.tile-blue{background:var(--duo-blue)}.unit-banner.tile-purple{background:var(--duo-purple)}.unit-banner h2{margin:2px 0;font-size:24px}.unit-banner p{margin:0;font-size:13.5px;opacity:.92}.unit-kicker{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;opacity:.85}.unit-emoji{font-size:42px}.path{display:flex;flex-direction:column;align-items:center;padding:26px 0 10px}.path-row{display:flex;flex-direction:column;align-items:center;margin:14px 0;position:relative;max-width:340px;text-align:center}.path-node{width:76px;height:76px;border-radius:50%;border:0;border-bottom:7px solid rgba(0,0,0,.25);font-size:30px;cursor:pointer;display:grid;place-items:center;color:#fff;transition:transform .12s}.path-node:active:not(:disabled){transform:translateY(3px);border-bottom-width:4px}.path-node.locked{background:var(--grid);border-bottom-color:var(--axis);cursor:not-allowed;filter:grayscale(1)}.path-node.done{background:var(--duo-yellow);border-bottom-color:#e0a700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.25)}.path-node.done.gold{font-size:34px}.path-node.current.tile-green{background:var(--duo-green);border-bottom-color:var(--duo-green-dark)}.path-node.current.tile-blue{background:var(--duo-blue);border-bottom-color:var(--duo-blue-dark)}.path-node.current.tile-purple{background:var(--duo-purple);border-bottom-color:var(--duo-purple-dark)}.path-node.current{animation:node-pulse 1.6s ease-in-out infinite}@keyframes node-pulse{0%,to{box-shadow:0 0 color-mix(in oklab,var(--duo-yellow) 55%,transparent)}60%{box-shadow:0 0 0 14px transparent}}.start-bubble{position:absolute;top:-34px;background:var(--surface);color:var(--duo-green);border:2px solid var(--grid);border-radius:12px;padding:4px 12px;font-size:12px;font-weight:800;letter-spacing:.05em;animation:bubble-bob 1.4s ease-in-out infinite;z-index:2}.start-bubble:after{content:"";position:absolute;left:50%;bottom:-6px;transform:translate(-50%) rotate(45deg);width:10px;height:10px;background:var(--surface);border-right:2px solid var(--grid);border-bottom:2px solid var(--grid)}@keyframes bubble-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.path-label{margin-top:8px}.path-label b{display:block;font-size:14.5px}.path-label span{color:var(--ink2);font-size:12.5px}.path-label.dim{opacity:.55}.path-row.trophy .path-node{font-size:34px}[hidden]{display:none!important}.step-bar{display:flex;gap:6px;background:var(--surface);border:2px solid var(--grid);border-bottom-width:4px;border-radius:18px;padding:6px;margin:6px 0 18px;position:sticky;top:58px;z-index:4;overflow-x:auto}.step-tab{flex:1;min-width:74px;display:flex;flex-direction:column;align-items:center;gap:1px;font:inherit;font-size:12.5px;font-weight:800;color:var(--ink2);border:0;background:none;border-radius:13px;padding:7px 10px 6px;cursor:pointer}.step-tab .step-icon{font-size:17px}.step-tab.past{color:var(--muted)}.step-tab:hover{background:color-mix(in oklab,var(--grid) 45%,transparent)}.step-bar.tile-green .step-tab.active{background:var(--duo-green);color:#fff;box-shadow:0 3px 0 var(--duo-green-dark)}.step-bar.tile-blue .step-tab.active{background:var(--duo-blue);color:#fff;box-shadow:0 3px 0 var(--duo-blue-dark)}.step-bar.tile-purple .step-tab.active{background:var(--duo-purple);color:#fff;box-shadow:0 3px 0 var(--duo-purple-dark)}.step-continue{display:flex;justify-content:center;margin-top:22px}.step-continue.split-ends{justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
