:root{--bg:#f6efe3;--panel:#fffaf2;--panel-soft:#f1e7d8;--ink:#3b2a1e;--muted:#76604c;--line:#e2d4bf;--accent:#5b3a24;--accent-hover:#b08a64;--accent-ink:#4a2f1d;--soft:#efe2cf;--highlight:#fbf3e2;--highlight-line:#c9a978;--warn-bg:#fff0d2;--warn-ink:#704d00;--focus-ring:#8a5a35;--shadow:#3b2a1e0f;--chunk-0:#dff0e6;--chunk-1:#ffedc8;--chunk-2:#dcecf5;--chunk-3:#f7dfd8;--chunk-4:#e8e2f3;--level-a1-bg:#dff0e6;--level-a1-ink:#2d5a3d;--level-a2-bg:#dcecf5;--level-a2-ink:#24506b;--level-b1-bg:#ffedc8;--level-b1-ink:#6b4a00;--level-b2-bg:#f7dfd8;--level-b2-ink:#7a3626;--level-c1-bg:#e8e2f3;--level-c1-ink:#4a3872;--level-c2-bg:#efe2cf;--level-c2-ink:#4a2f1d;--hand-rule:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='6' viewBox='0 0 120 6'%3E%3Cpath d='M0 3.2c10-1.6 19 1.4 30 .2s19-1.8 30-.3 20 1.6 30 .1 20-1.3 30 .2' fill='none' stroke='%23b08a64' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E");--font-body:Inter, "Segoe UI", system-ui, sans-serif;--font-display:"Fraunces", Georgia, "Times New Roman", serif;font-family:var(--font-body);color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.45}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100vh;margin:0}body{background-image:radial-gradient(#3b2a1e09 1px,#0000 1px);background-size:6px 6px}#root{background:0 0}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;font-weight:600}body{color:var(--ink);margin:0}button,input,select{font:inherit}[hidden]{display:none!important}:root{accent-color:var(--accent)}h1,h2,h3,p{margin-top:0}#root{width:100%}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.flashcard-study-card:hover{transform:none}}.topbar{background:var(--panel-soft) var(--hand-rule) repeat-x left bottom;justify-content:space-between;align-items:center;padding:24px 30px;display:flex}.brand-title{align-items:center;gap:12px;display:flex}.brand-stamp{border:1.5px solid var(--accent);width:44px;height:44px;box-shadow:inset 0 0 0 3px var(--panel-soft), inset 0 0 0 4px var(--accent);color:var(--accent);font-family:var(--font-display);letter-spacing:.06em;border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:inline-grid;transform:rotate(-6deg)}.brand-block h1{margin:0;font-size:22px}.brand-block p{color:var(--muted);margin:4px 0 0}.api-pill{background:var(--soft);color:var(--ink);border-radius:999px;margin-top:8px;padding:4px 8px;font-size:11px;font-weight:700;display:inline-block}.api-pill.online{color:#264b2f;background:#e7efe7}.api-pill.offline{color:#7c4c22;background:#f6efe7}.header-actions{align-items:center;gap:12px;display:flex}.page-language-switcher{border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:4px;padding:4px 6px;transition:background .15s,border-color .15s;display:inline-flex}.language-pill{min-width:44px;color:var(--muted);border-radius:999px;justify-content:center;align-items:center;padding:5px 8px;font-size:11px;font-weight:700;transition:background .15s,color .15s,box-shadow .15s;display:inline-flex}.language-pill.active{background:var(--panel);color:var(--ink);box-shadow:0 1px 4px var(--shadow)}.language-divider{color:var(--line);font-size:12px;font-weight:700;line-height:1}.dev-toggle{color:var(--warn-ink);background:#fffaf0;border-color:#9d7d2a}button{border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;font:inherit;border-radius:9px;padding:8px 12px}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.secondary{background:var(--panel-soft)}.layout{grid-template-columns:240px 1fr;min-height:calc(100vh - 83px);display:grid}.sidebar{border-right:1px solid var(--line);background:var(--panel-soft);padding:18px 14px}.sidebar nav{flex-direction:column;gap:4px;display:flex}.sidebar nav button{text-align:left;background:0 0;border:none;border-radius:8px;width:100%;padding:10px 12px}.sidebar nav button.active{background:var(--soft);color:var(--accent-ink);font-weight:700}.footer-note{border-top:1px solid var(--line);color:var(--muted);margin-top:18px;padding-top:18px;font-size:12px}.developer-badge{letter-spacing:.08em;text-transform:uppercase;background:var(--warn-bg);color:var(--warn-ink);border-radius:999px;margin-bottom:8px;padding:4px 8px;font-size:10px;font-weight:800;display:inline-block}.main-content{width:100%;max-width:1500px;margin:0 auto;padding:24px}.panel{display:block}.metrics-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.two-column{grid-template-columns:1.35fr 1fr;gap:14px;display:grid}.three-column{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.card{background:var(--panel);border:1px solid var(--line);box-shadow:0 1px 0 var(--shadow);border-radius:13px;padding:18px}.metric-card .label{color:var(--muted);font-size:12px}.metric-card .value{margin-top:8px;font-size:28px;font-weight:700}.metric-card .delta{color:var(--accent);margin-top:6px;font-size:12px}.card h2,.card h3{margin-top:0;margin-bottom:10px}.section-gap{margin-top:16px}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;padding:10px 8px}th{color:var(--muted);font-size:12px}.bar{background:var(--soft);border-radius:10px;width:150px;height:9px;overflow:hidden}.bar i{background:var(--accent);height:100%;display:block}.notice{background:var(--soft);border-radius:10px;margin-bottom:12px;padding:12px}.pill{background:var(--soft);border-radius:999px;margin-top:12px;padding:4px 8px;font-size:11px;display:inline-block}.findings-list{margin:0;padding-left:18px;line-height:1.8}.node-wrap{border:1px solid var(--line);background:linear-gradient(#f8f7f3,#f2f2ee);border-radius:12px;height:260px;position:relative;overflow:hidden}.node{text-align:center;background:#4e62581f;border:1px solid #4e625833;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:120px;height:70px;font-size:12px;display:flex;position:absolute}.node-1{top:20%;left:10%}.node-2{top:35%;left:41%}.node-3{top:20%;right:10%}.node-4{top:60%;left:22%}.node-5{top:60%;right:20%}.session-form{border:1px solid var(--line);background:#f8f7f3;border-radius:10px;margin:14px 0 20px;padding:14px}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:12px;display:grid}label{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;display:flex}input,select{border:1px solid var(--line);font:inherit;background:var(--panel);border-radius:8px;padding:8px 10px}.form-actions{align-items:flex-end;gap:8px;display:flex}.control{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.control input[type=range]{width:100%}.log-box{border:1px solid var(--line);white-space:pre-wrap;background:#f8f8f6;border-radius:10px;margin-top:16px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}pre{white-space:pre-wrap;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.hero-card{background:linear-gradient(135deg, var(--panel) 0%, var(--soft) 100%);grid-template-columns:1.5fr .8fr;align-items:center;gap:18px;display:grid}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-size:12px;display:inline-block}.hero-card h2{margin:0 0 10px;font-size:clamp(28px,3vw,42px);line-height:1.1}.hero-card p{color:var(--muted);max-width:52ch;margin:0}.hero-actions{gap:10px;margin-top:18px;display:flex}.hero-card+.metrics-grid{margin-top:14px}.hero-stat-box{gap:12px;display:grid}.mini-stat{border:1px solid var(--line);background:#fffaf2bf;border-radius:12px;padding:16px 18px}.mini-stat span{color:var(--muted);font-size:12px;display:block}.mini-stat strong{margin-top:4px;font-size:22px;display:block}.section-header h2{background:var(--hand-rule) repeat-x left bottom;margin-bottom:0;padding-bottom:8px}.section-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.video-grid,.material-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.flashcard-toolbar{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.section-header.flashcard-header{z-index:4;border-bottom:1px solid var(--line);background:var(--bg);flex-direction:column;align-items:stretch;padding:8px 0 10px;position:sticky}.flashcard-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.flashcard-heading>button{white-space:nowrap;flex:none}.flashcard-deck-row{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:8px;display:flex}.flashcard-options{align-items:center;gap:8px;margin-left:auto;display:flex}.login-required{border:1px solid var(--line);background:var(--panel);border-radius:13px;justify-items:start;gap:12px;max-width:560px;padding:18px;display:grid}.login-required p{margin:0}.deck-switch{align-items:center;gap:4px;display:flex}.deck-icon-button{min-height:auto;color:var(--muted);padding:4px 8px}.page-back-tools{align-items:center;gap:8px;display:flex}.choice-menu{display:inline-block;position:relative}.choice-menu-button{border:1px solid var(--accent-hover);background:var(--panel);max-width:240px;color:var(--accent-ink);-webkit-tap-highlight-color:transparent;border-radius:999px;align-items:center;gap:8px;padding:7px 12px 7px 14px;font-weight:700;display:inline-flex}.choice-menu-button:hover,.choice-menu-button[aria-expanded=true]{background:var(--soft)}.choice-menu-small .choice-menu-button{border-color:var(--line);gap:6px;padding:4px 10px 4px 12px;font-size:13px}.choice-menu-prefix{color:var(--muted);font-size:12px;font-weight:600}.choice-menu-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.choice-menu-caret{opacity:.7;border-bottom:1.6px solid;border-right:1.6px solid;flex:none;width:7px;height:7px;margin:-3px 2px 0;transform:rotate(45deg)}.choice-menu-button[aria-expanded=true] .choice-menu-caret{margin-top:3px;transform:rotate(225deg)}.choice-menu-popover{z-index:30;border:1px solid var(--line);background:var(--panel);width:max-content;min-width:100%;max-width:min(280px,100vw - 32px);box-shadow:0 1px 4px var(--shadow), 0 8px 24px var(--shadow);border-radius:13px;padding:6px;position:absolute;top:calc(100% + 6px);left:0}.choice-menu-popover.align-right{left:auto;right:0}.choice-menu-popover.open-up{top:auto;bottom:calc(100% + 6px)}.choice-menu-button:disabled{opacity:.5}.choice-menu-list{overscroll-behavior:contain;scrollbar-color:var(--accent-hover) transparent;scrollbar-width:thin;gap:2px;max-height:260px;display:grid;overflow-y:auto}.choice-menu-item{width:100%;color:var(--ink);text-align:left;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:9px;align-items:center;gap:8px;padding:8px 10px;font-size:14px;font-weight:400;display:flex}.choice-menu-item:hover,.choice-menu-item:focus-visible{background:var(--panel-soft)}.choice-menu-item[aria-selected=true]{background:var(--soft);color:var(--accent-ink);font-weight:700}.choice-menu-check{width:14px;color:var(--accent);text-align:center;flex:none;font-weight:700}.choice-menu-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.choice-menu-hint{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:12px}.choice-menu-create{border-top:1px dashed var(--line);margin-top:6px;padding-top:6px}.choice-menu-new{color:var(--accent);font-weight:600}.choice-menu-create form{gap:8px;padding:4px;display:grid}.choice-menu-create input{width:100%;font-size:16px}.choice-menu-create-actions{justify-content:flex-end;gap:6px;display:flex}.choice-menu-create-actions button{padding:5px 12px;font-size:13px}.flashcard-option{color:var(--muted);flex-direction:row;align-items:center;gap:6px;font-size:12px;font-weight:700}.flashcard-option select{width:auto;padding:5px 8px;font-size:13px}.flashcard-option input[type=checkbox]{accent-color:var(--accent)}.flashcard-study-card strong .lesson-chunk{line-height:1.9}.flashcard-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:14px;display:grid}.flashcard-item{display:grid;position:relative}.flashcard-card-actions{gap:6px;display:flex;position:absolute;top:10px;right:10px}.flashcard-card-actions button{border:1px solid var(--line);background:var(--panel);border-radius:50%;place-items:center;width:32px;height:32px;min-height:32px;padding:0;font-size:14px;line-height:1;display:grid}.flashcard-card-actions button:hover{border-color:var(--accent-hover)}.flashcard-card-actions button.sentence-play-button{border-color:var(--accent);color:#fff;background:var(--accent);padding-left:2px}.flashcard-card-actions button.sentence-play-button span{font-size:12px}.flashcard-card-actions button.selected{border-color:var(--accent);color:#fff;background:var(--accent)}.flashcard-item.mastered .flashcard-study-card{border-color:var(--accent)}.flashcard-word-stat{color:var(--accent);font-weight:700}.metric-card small{color:var(--muted);margin-top:6px;font-size:12px;display:block}.flashcard-study-card{border:1px solid var(--line);background:var(--panel);text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:12px;min-height:210px;padding:18px;transition:border-color .16s,background-color .16s,transform .16s;display:flex}.flashcard-study-card:hover{border-color:var(--accent-hover);transform:translateY(-2px)}.flashcard-study-card.revealed{border-color:var(--highlight-line);background:var(--highlight)}.flashcard-card-meta,.flashcard-card-side,.flashcard-card-hint{color:var(--muted);font-size:11px}.flashcard-card-meta{overflow-wrap:anywhere;padding-right:114px}.flashcard-card-side{color:var(--accent);text-transform:uppercase;font-weight:800}.flashcard-study-card strong{color:var(--ink);overflow-wrap:anywhere;flex:1;align-content:center;font-size:19px}.flashcard-card-hint{align-self:flex-end}.video-thumb{color:#fff;background:linear-gradient(135deg, var(--accent-ink), var(--accent-hover));border-radius:12px;place-items:center;height:150px;margin-bottom:12px;font-size:36px;display:grid}.library-video-player{aspect-ratio:16/9;object-fit:contain;background:#151817;border-radius:8px;width:100%;margin-bottom:12px;display:block}.video-meta{flex-direction:column;gap:3px;display:flex}.video-meta small,.material-card small{color:var(--muted)}.material-card>small{margin-bottom:10px;display:block}.video-card p,.material-card p{color:var(--muted);margin:10px 0 14px}.resource-open-link,.material-open-link{color:var(--accent);font-weight:700;text-decoration:none}.material-card button.material-open-link{cursor:pointer;background:0 0;border:0;padding:0}.sidebar nav button{align-items:center;gap:10px;display:flex}.line-icon.nav-icon{opacity:.85;width:22px;height:22px}.sidebar nav button.active .nav-icon,.sidebar nav button:hover .nav-icon{opacity:1}@media (width<=980px){.sidebar nav button{gap:6px}.line-icon.nav-icon{width:20px;height:20px}}.line-icon{width:1.15em;height:1.15em;color:var(--accent);flex:none}.line-icon.small{width:1.35em;height:1.35em}.section-title{align-items:center;gap:.4em;display:flex}.eyebrow-with-icon{align-items:center;gap:6px;display:inline-flex}.page-back-bar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.page-back-bar .done-toggle{margin:0}.back-button{width:40px;height:40px;color:var(--accent);background:0 0;border-color:#0000;border-radius:50%;justify-content:center;align-items:center;padding:0;font-weight:700;display:inline-flex}.back-button:hover{border-color:var(--line);background:var(--panel)}.back-button .line-icon{width:22px;height:22px}.structured-lesson.lesson-page,.page-back-bar+.structured-lesson{border-top:0;margin-top:0;padding-top:8px}.material-card{flex-direction:column;display:flex}.material-card-actions{flex-wrap:nowrap;align-items:baseline;gap:12px;margin-top:auto;padding-top:12px;display:flex}.material-card>a.material-open-link{margin-top:auto;padding-top:12px}.material-study-link .label-short{display:none}.material-card-actions .material-study-link{margin-left:auto}.lesson-heading-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.practice-session{gap:18px;max-width:720px;margin:0 auto;display:grid}.practice-header{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.practice-header>.back-button{flex:none;margin-left:-8px}.practice-title{flex:1;min-width:0}.practice-tools{flex:none;margin-left:auto}.practice-header h3{margin:4px 0 0;font-size:22px}.practice-progress{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:12px;font-size:13px;display:flex}.practice-progress .bar{flex:1;width:auto}.practice-card-wrap{gap:12px;display:grid}.practice-card{width:100%;min-height:260px}.practice-card strong{font-size:24px;line-height:1.45}.practice-back-extra{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;display:flex}.practice-back-extra .sentence-play-button{margin-left:auto}.practice-actions{z-index:4;padding:10px 0 calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg);justify-content:space-between;gap:12px;margin-top:12px;display:flex;position:sticky;bottom:0}.app-embedded .practice-actions{padding-bottom:26px}.practice-actions button{min-width:120px}.practice-actions button:disabled{opacity:.45;cursor:default}.practice-done{text-align:center;justify-items:center;gap:14px;padding:36px 18px;display:grid}.practice-done h3{margin:0}@media (width<=700px){.practice-card{min-height:220px}.practice-card strong{font-size:20px}}.lesson-notes{grid-template-columns:minmax(0,1fr);gap:22px;max-width:1050px;margin-top:18px;display:grid}.notes-summary{border-left:4px solid var(--accent);background:var(--soft);max-width:1050px;margin-top:16px;padding:12px 16px}.notes-summary strong{color:var(--accent-ink);letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px;font-size:12px;display:block}.notes-summary p{margin:0;line-height:1.6}.lesson-notes-section h4{margin:0 0 6px;font-size:19px}.lesson-notes-explanation{color:var(--muted);margin:0 0 10px}.notes-table-wrap{border:1px solid var(--line);background:var(--panel);border-radius:10px;max-width:100%;overflow-x:auto}.notes-table{border-collapse:collapse;width:100%;font-size:15px}.notes-table th,.notes-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:9px 12px}.notes-table th{background:var(--soft);color:var(--accent-ink);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-size:12px;font-weight:800}.notes-table tbody tr:last-child td{border-bottom:0}.notes-table td:first-child{font-weight:700}.lesson-notes-examples{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.lesson-notes-examples li{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.lesson-notes-examples strong,.lesson-notes-examples small{display:block}.lesson-notes-examples small{color:var(--muted)}@media (width<=700px){.lesson-notes-examples li{grid-template-columns:auto minmax(0,1fr)}.lesson-notes-examples li>:last-child{grid-column:2;justify-self:start}.notes-table{font-size:14px}}.material-filter{flex-wrap:wrap;gap:8px;margin:0 0 14px;display:flex}.material-filter button{color:var(--muted);background:var(--panel);border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;display:inline-flex}.material-filter button.selected{border-color:var(--accent);color:var(--accent-ink);background:var(--soft);font-weight:700}.level-filter{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.level-filter::-webkit-scrollbar{display:none}.level-filter button{flex:none}.line-icon.chip-icon{width:16px;height:16px}.tag-writing{color:var(--accent-ink);align-items:center;gap:4px;display:inline-flex}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.writing-lesson{grid-template-columns:minmax(0,1fr);gap:26px;max-width:900px;margin-top:18px;display:grid}.writing-section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;margin-bottom:10px;display:flex}.writing-section-head h4,.writing-turn h4{margin:0;font-size:19px}.writing-toggles{flex-wrap:wrap;gap:14px;display:flex}.writing-intro{color:var(--muted);margin:-4px 0 14px}.writing-exercise{border:1px solid var(--line);background:var(--panel);border-radius:13px;gap:8px;margin-bottom:18px;padding:14px 16px;display:grid}.writing-source{gap:10px;margin:0;font-size:17px;line-height:1.6;display:flex}.writing-step{border:1.5px solid var(--accent);width:24px;height:24px;color:var(--accent);border-radius:50%;flex:none;place-items:center;margin-top:2px;font-size:12px;font-weight:800;display:inline-grid}.writing-exercise .writing-input{min-height:90px}.writing-exercise-actions,.writing-hint-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.writing-hint-bar{justify-content:flex-end}.writing-exercise-actions button.selected{border-color:var(--accent);background:var(--soft)}.writing-answer{border-left:3px solid var(--highlight-line);background:var(--highlight);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:10px 12px;display:grid}.writing-answer p{margin:0;font-size:17px;line-height:1.7}.writing-word{min-height:auto;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:3px;padding:0}.writing-word:hover,.writing-word:focus-visible{text-underline-offset:3px;text-decoration:underline}.writing-word:active{background:var(--chunk-1)}.writing-exercise-buttons{flex-wrap:wrap;gap:8px;display:flex}.writing-exercise-buttons button.selected{border-color:var(--accent);background:var(--soft)}.writing-source-meaning{color:var(--muted);margin-top:2px;font-size:14px;display:block}.writing-sentence-hints{border:1px dashed var(--highlight-line);background:var(--panel-soft);border-radius:10px;gap:6px;padding:10px 12px;font-size:14px;display:grid}.writing-sentence-hints ul{flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;list-style:none;display:flex}.writing-sentence-hints li{align-items:baseline;gap:6px;display:flex}.writing-sentence-hints li>span{color:var(--muted)}.writing-hint-word{color:var(--accent-ink)}.writing-sentence-hints p{margin:0}.writing-toggle input{accent-color:var(--accent)}.writing-toggle{color:var(--muted);flex-direction:row;align-items:center;gap:6px;font-size:13px}.writing-paragraph{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;margin-bottom:14px;display:grid}.writing-paragraph p{margin:0;font-size:19px;line-height:1.8}.writing-paragraph .writing-translation{color:var(--muted);margin-top:4px;font-size:15px;line-height:1.6}.writing-target{color:var(--accent-ink);background:var(--hand-rule) repeat-x left bottom / 60px 4px;cursor:help;padding-bottom:2px}.writing-hidden-note{border:1px dashed var(--highlight-line);color:var(--muted);background:var(--highlight);border-radius:10px;padding:14px 16px}.writing-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.writing-chips{grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.writing-chip{border:1px solid var(--line);background:var(--panel);border-radius:10px;gap:2px;padding:9px 12px;display:grid}.writing-chip.used{border-color:var(--accent);background:var(--soft)}.writing-chip-word{font-weight:800}.writing-chip-meaning{color:var(--muted);font-size:13px}.writing-chip-source{min-height:auto;color:var(--accent);text-underline-offset:2px;background:0 0;border:0;justify-self:start;padding:0;font-size:12px;text-decoration:underline}.writing-turn{border:1px solid var(--line);background:var(--panel);border-radius:13px;gap:10px;padding:18px;display:grid}.writing-tasks{margin:0;padding-left:20px;line-height:1.6}.writing-input{border:1px solid var(--line);width:100%;min-height:170px;color:var(--ink);background:var(--bg);font:inherit;resize:vertical;border-radius:10px;padding:12px 14px;font-size:17px;line-height:1.7}.writing-footer{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.writing-actions{gap:8px;display:flex}.writing-actions button:disabled{opacity:.45;cursor:default}.writing-note{color:var(--muted);margin:0;font-size:12px}@media (width<=700px){.writing-paragraph p{font-size:17px}.writing-turn{padding:14px 12px}.writing-input{font-size:16px}}.video-lesson{grid-template-columns:minmax(0,1fr);gap:14px;max-width:980px;display:grid}.video-frame-sticky{z-index:5;background:var(--bg);padding:6px 0 8px;position:sticky}.video-stage{width:min(100%,74.6667vh);margin:0 auto;position:relative}.video-frame{aspect-ratio:16/9;background:var(--ink);border-radius:13px;width:100%;position:relative;overflow:hidden}.video-unavailable{z-index:1;background:var(--ink);color:var(--panel);text-align:center;place-content:center;justify-items:center;gap:10px;padding:18px;display:grid;position:absolute;inset:0}.video-unavailable p{margin:0;font-weight:600}.video-unavailable a{background:var(--panel);color:var(--accent-ink);border-radius:9px;padding:8px 16px;font-weight:700;text-decoration:none}.video-unavailable small{opacity:.85;max-width:420px}.video-frame iframe,.video-frame>div:first-child{width:100%;height:100%;position:absolute;inset:0}.video-sentences{gap:4px;margin:0;padding:0;list-style:none;display:grid}.video-sentences>li{border:1px solid #0000;border-left-width:3px;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 10px 12px;display:grid}.video-sentences>li.current{border-color:var(--line);border-left-color:var(--accent);background:var(--soft)}.video-sentences>li:not(.current) .lesson-chunk{opacity:.8}.video-sentences>li{cursor:pointer;-webkit-tap-highlight-color:transparent}.video-sentences>li:not(.current):hover{background:var(--panel-soft)}.video-bar{z-index:5;padding:8px 12px calc(14px + env(safe-area-inset-bottom));border:1px solid var(--line);background:var(--panel-soft);box-shadow:0 -1px 4px var(--shadow);border-radius:13px 13px 0 0;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid;position:sticky;bottom:0}.video-play{width:52px;height:52px;color:var(--panel);background:var(--accent);border:0;border-radius:50%;place-items:center;padding:0;font-size:15px;display:grid}.video-play:hover:not(:disabled){background:var(--accent-ink)}.video-controls{grid-column:2;align-items:center;gap:18px;display:flex}.video-step,.video-explain-toggle,.video-panel-toggle{width:44px;height:44px;min-height:0;color:var(--accent);-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.video-step:hover:not(:disabled),.video-panel-toggle:hover{background:var(--soft)}.video-step .line-icon,.video-explain-toggle .line-icon,.video-panel-toggle .line-icon{width:26px;height:26px}.video-explain-toggle{border:1px solid var(--line);background:var(--panel);grid-column:1;justify-self:start}.video-explain-toggle[aria-pressed=true]{border-color:var(--accent);background:var(--soft)}.video-explain-toggle[aria-pressed=false] .line-icon{opacity:.5}.video-panel-toggle{border:1px solid var(--line);background:var(--panel);grid-column:3;justify-self:end}.video-panel-toggle .line-icon{transition:transform .2s}.video-panel-toggle[aria-expanded=true]{background:var(--soft)}.video-panel-toggle[aria-expanded=true] .line-icon{transform:rotate(180deg)}.video-bar-panel{border-bottom:1px solid var(--line);flex-wrap:wrap;grid-column:1/-1;justify-content:center;align-items:center;gap:8px;padding:2px 0 8px;display:flex}.video-bar-panel .choice-menu-button,.video-bar-panel .save-toggle{border:1px solid var(--line);background:var(--panel);height:36px;min-height:0;color:var(--accent-ink);box-shadow:none;border-radius:999px;margin:0;padding:0 12px;font-size:13px;font-weight:600}.video-bar-panel .save-toggle.icon-only{border-radius:50%;justify-content:center;width:36px;padding:0}.video-bar-panel .video-dictation-toggle{border:1px solid var(--line);background:var(--panel);height:36px;min-height:0;color:var(--accent-ink);box-shadow:none;border-radius:999px;margin:0;padding:0 14px;font-size:13px;font-weight:600}.video-bar-panel .video-dictation-toggle.on{border-color:var(--accent);background:var(--soft);font-weight:700}.video-dictation-range{border:1px solid var(--line);background:var(--panel);border-radius:13px;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 4px;padding:10px 12px;display:flex}.video-dictation-range-label{color:var(--accent-ink);font-weight:700}.video-sentences>li.dictating{grid-template-columns:auto minmax(0,1fr) auto}.video-sentences>li.in-part:not(.current){border-left-color:var(--accent-hover)}.video-dictation-check-area{cursor:pointer;justify-content:center;min-width:28px;padding-top:6px;display:flex}.video-dictation-check{width:20px;height:20px;accent-color:var(--accent);cursor:pointer;margin:0}.video-dictation-select{border-radius:999px;min-height:32px;padding:0 12px;font-size:13px}.video-dictation-play{border-radius:999px;min-height:36px;padding:0 14px}.video-dictation-count{color:var(--muted)}@media (pointer:coarse){.video-dictation-play,.video-dictation-select{min-height:44px}.video-dictation-check-area{min-width:44px;min-height:44px;margin:-6px -8px 0;padding-top:10px}.video-dictation-check{width:24px;height:24px}}.video-dictation-line{flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0;display:flex}.video-dictation-blanks{flex-wrap:wrap;gap:6px 8px;display:flex}.video-dictation-blanks span{border-bottom:2px dashed var(--accent-hover);height:1.2em;display:inline-block}.video-dictation-show{border:1px solid var(--line);background:var(--panel);height:28px;min-height:0;color:var(--accent-ink);border-radius:999px;padding:0 12px;font-size:12px;font-weight:600}@media (pointer:coarse){.video-dictation-show{height:44px;padding:0 16px}}.video-bar-panel .save-toggle.done{border-color:var(--accent);background:var(--soft)}.video-bar-panel .choice-menu-prefix{color:var(--accent);display:inline-flex}@media (prefers-reduced-motion:reduce){.video-panel-toggle .line-icon{transition:none}}@media (pointer:coarse){.video-bar-panel .choice-menu-button,.video-bar-panel .save-toggle{height:44px}.video-bar-panel .save-toggle.icon-only{width:44px}}.video-controls button:disabled{opacity:.45;cursor:default}.video-chunk-line{margin:0}.video-ipa{color:var(--muted);margin:0;font-size:14px}.video-chunk-line button.selected{text-underline-offset:4px;text-decoration:underline}.video-sentence{gap:6px;min-width:0;display:grid}.video-sentence .lesson-translation{margin:0}.video-word{border:1px dashed var(--highlight-line);background:var(--highlight);border-radius:10px;gap:6px;padding:10px 12px;display:grid}.video-word-head{align-items:center;gap:10px;display:flex}.video-word-head strong{font-size:19px}.video-word-close{min-height:auto;margin-left:auto;padding:2px 8px}.video-word p{margin:0}.video-word-chunk .lesson-chunk{margin-right:6px}.video-thumb-button{aspect-ratio:16/9;background:var(--ink);border:0;border-radius:10px;width:100%;min-height:auto;padding:0;display:block;position:relative;overflow:hidden}.video-thumb-button img{object-fit:cover;width:100%;height:100%}.video-thumb-length{color:var(--panel);background:color-mix(in srgb, var(--ink) 85%, transparent);font-variant-numeric:tabular-nums;border-radius:4px;padding:1px 6px;font-size:12px;font-weight:700;line-height:1.5;position:absolute;bottom:6px;right:6px}.video-thumb-play{width:40px;height:40px;color:var(--panel);background:var(--accent);border-radius:50%;place-items:center;font-size:14px;display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.video-lesson-list{gap:14px;margin-bottom:16px;display:grid}.load-more{min-height:44px;color:var(--accent-ink);margin:0 auto 20px;padding:8px 20px;font-weight:600;display:block}.load-more:hover{border-color:var(--accent-hover)}.video-row{grid-template-columns:minmax(160px,300px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.video-row-info{flex-direction:column;align-items:flex-start;gap:6px;min-width:0;display:flex}.video-row-title{min-height:auto;color:var(--ink);font-family:var(--font-display);text-align:left;background:0 0;border:0;padding:0;font-size:18px;font-weight:600;line-height:1.3}.video-row-title:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.video-row-info small{color:var(--muted)}.video-row-info p{color:var(--muted);margin:0;font-size:14px}.level-group{gap:12px;margin-bottom:24px;display:grid}.level-group-title{border-bottom:1px solid var(--line);font-family:var(--font-body);align-items:center;gap:10px;margin:0;padding-bottom:6px;font-size:15px;display:flex}.level-group-count{color:var(--muted);font-size:13px;font-weight:600}.done-toggle{width:fit-content;min-height:auto;color:var(--muted);border-radius:999px;align-items:center;gap:6px;margin:2px 0 10px;padding:4px 10px;font-size:13px;display:flex}.done-toggle .line-icon{opacity:.45}.done-toggle.done{border-color:var(--accent);background:var(--soft);color:var(--accent-ink);font-weight:700}.done-toggle.done .line-icon{opacity:1}.material-card,.video-row{position:relative}.card-corner{z-index:1;align-items:center;gap:6px;display:flex;position:absolute;top:12px;right:12px}.video-row .card-corner{top:0;right:0}.card-corner .done-toggle{margin:0}.material-card h3,.video-row-title{padding-right:92px}.material-card.corner-2 h3,.video-row.corner-2 .video-row-title{padding-right:134px}.done-icon{width:34px;height:34px;min-height:auto;color:var(--muted);border-radius:50%;place-items:center;padding:0;display:grid}.done-icon .line-icon{opacity:.4}.done-icon.done{border:2px solid var(--accent);background:var(--soft);color:var(--accent-ink)}.done-icon.done .line-icon{opacity:1}.saved-group{gap:12px;margin-bottom:24px;display:grid}.video-line-actions{align-content:start;justify-items:end;gap:6px;display:grid}.video-add-card{min-height:auto;color:var(--accent-ink);white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:12px}.video-add-card.video-card-added{border-color:var(--accent);background:var(--soft);color:var(--accent-ink);font-weight:700}.material-card.is-done{border-color:var(--accent-hover)}.video-row .done-toggle{margin:2px 0 0}.account-chip{align-items:center;gap:8px;display:flex}.account-name{max-width:180px;color:var(--accent-ink);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-weight:600;display:inline-flex;overflow:hidden}.account-dialog{border:1px solid var(--line);background:var(--panel);width:min(420px,100% - 32px);color:var(--ink);box-shadow:0 1px 4px var(--shadow);border-radius:13px;padding:20px}.account-dialog::backdrop{background:#3b2a1e59}.account-dialog form{gap:12px;display:grid}.account-dialog-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.account-dialog-head h2{font-family:var(--font-display);margin:0;font-size:22px}.account-dialog-note{color:var(--muted);margin:0;font-size:13px}.account-dialog label{color:var(--muted);gap:5px;font-size:13px;font-weight:600;display:grid}.account-dialog input{width:100%;color:var(--ink);font-size:16px}.account-dialog small{font-weight:400}.account-providers{gap:10px;display:grid}.account-google{justify-content:center;min-height:44px;display:flex}.account-apple{color:#fff;background:#000;border-color:#000;justify-content:center;align-items:center;gap:8px;min-height:44px;font-weight:600;display:inline-flex}.account-apple:hover:not(:disabled){background:#222;border-color:#000}.account-email-link{min-height:44px;color:var(--accent-ink);background:0 0;border:0;justify-self:center;font-size:14px;text-decoration:underline}.account-error{background:var(--warn-bg);color:var(--warn-ink);border-radius:9px;margin:0;padding:8px 10px;font-size:13px}.level-badge{border:1px solid var(--line);background:var(--soft);color:var(--accent-ink);letter-spacing:.04em;text-transform:none;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-block}.level-a1{background:var(--level-a1-bg);color:var(--level-a1-ink)}.level-a2{background:var(--level-a2-bg);color:var(--level-a2-ink)}.level-b1{background:var(--level-b1-bg);color:var(--level-b1-ink)}.level-b2{background:var(--level-b2-bg);color:var(--level-b2-ink)}.level-c1{background:var(--level-c1-bg);color:var(--level-c1-ink)}.level-c2{background:var(--level-c2-bg);color:var(--level-c2-ink)}.eyebrow .level-badge{margin-right:6px}@media (width<=700px){.video-row{grid-template-columns:150px minmax(0,1fr);gap:10px}.video-row-title{font-size:15px}.video-row-info p{display:none}.video-sentences>li{gap:6px;padding:8px}.video-frame-sticky{margin:0 -12px;padding:0}.video-frame{border-radius:0}.video-bar{border-width:1px 0 0;border-radius:0;margin:0 -12px}.app-embedded .video-bar{padding-bottom:26px}}.structured-lesson{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.lesson-heading,.lesson-sentence-topline{justify-content:space-between;align-items:center;gap:12px;display:flex}.lesson-heading h3{margin:5px 0 0;font-size:24px}.lesson-story-summary{max-width:760px;color:var(--muted)}.lesson-focus{border-left:4px solid var(--accent);background:var(--soft);max-width:900px;margin:20px 0 28px;padding:16px 18px}.lesson-focus p{margin:8px 0 0}.lesson-focus-word{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.lesson-focus-word h4{margin:0;font-size:21px}.lesson-focus-word span,.lesson-word-ipa{color:var(--muted);font-family:Georgia,serif}.lesson-focus-word button,.sentence-card-toggle{border-radius:5px;min-height:32px;padding:5px 9px;font-size:12px}.sentence-playback-controls{align-items:center;gap:7px;display:flex}.sentence-speed-control{border:1px solid var(--line);background:var(--panel-soft);border-radius:5px;padding:2px;display:inline-flex}.sentence-speed-control button{min-height:27px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:3px 7px;font-size:11px}.sentence-speed-control button.selected{color:var(--ink);background:var(--panel);box-shadow:0 1px 2px var(--shadow)}.sentence-play-button{border:1px solid var(--accent);color:#fff;background:var(--accent);cursor:pointer;border-radius:50%;place-items:center;width:34px;height:34px;min-height:34px;padding:0 0 0 2px;display:grid}.sentence-play-button span{font-size:12px;line-height:1}.lesson-sentence-list{gap:0;display:grid}.lesson-sentence{border-top:1px solid var(--line);padding:20px 0}.lesson-sentence-topline>span{color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:11px;font-weight:800}.lesson-chunk-line{flex-wrap:wrap;gap:4px;margin:14px 0 6px;font-size:22px;line-height:1.8;display:flex}.lesson-chunk{border-radius:4px;padding:2px 5px;display:inline}.lesson-chunk button{min-height:auto;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.lesson-chunk button:hover{text-underline-offset:3px;text-decoration:underline}.chunk-0{background:var(--chunk-0)}.chunk-1{background:var(--chunk-1)}.chunk-2{background:var(--chunk-2)}.chunk-3{background:var(--chunk-3)}.chunk-4{background:var(--chunk-4)}.lesson-translation{color:var(--muted);margin:0 0 14px}.lesson-sentence-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:1050px;display:grid}.lesson-sentence-facts p{gap:4px;margin:0;font-size:13px;display:grid}.lesson-sentence-facts strong{color:var(--muted);text-transform:uppercase;font-size:11px}.lesson-sentence-explanation{border-left:3px solid var(--accent);background:var(--highlight);max-width:1050px;margin:0 0 14px;padding:12px 14px}.lesson-sentence-explanation strong{color:var(--muted);text-transform:uppercase;margin-bottom:4px;font-size:11px;display:block}.lesson-sentence-explanation p{margin:0;font-size:15px;line-height:1.6}.lesson-chunk-analysis{gap:6px;max-width:1050px;margin:0 0 14px;padding:0;list-style:none;display:grid}.lesson-chunk-analysis li{grid-template-columns:minmax(90px,max-content) 1fr;align-items:baseline;gap:10px;font-size:14px;line-height:1.5;display:grid}.lesson-chunk-analysis .lesson-chunk{padding:2px 8px;font-weight:650}.lesson-chunk-analysis-head{justify-self:start;align-items:center;gap:6px;display:inline-flex}.chunk-play-button{border:1px solid var(--accent);width:24px;height:24px;min-height:24px;color:var(--accent);cursor:pointer;background:0 0;border-radius:50%;flex:none;place-items:center;padding:0 0 0 2px;display:grid}.chunk-play-button:hover{color:#fff;background:var(--accent)}.chunk-play-button span{font-size:9px;line-height:1}.lesson-sentence-notes{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:1050px;margin-top:12px;display:grid}.lesson-sentence-notes p{border-left:3px solid var(--line);gap:4px;margin:0;padding:10px 12px;font-size:14px;line-height:1.5;display:grid}.lesson-sentence-notes strong{color:var(--muted);text-transform:uppercase;font-size:11px}.lesson-vocabulary-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:10px;margin:14px 0;display:grid}.lesson-vocabulary-item{border-bottom:1px solid var(--line);grid-template-columns:auto auto 1fr;align-items:baseline;gap:4px 8px;padding:10px;font-size:12px;display:grid}.lesson-word-audio{color:var(--accent);cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;font-weight:800}.lesson-vocabulary-item small{color:var(--muted);grid-column:1/-1}.sentence-card-added{border:1px solid var(--accent);min-height:32px;color:var(--accent);background:var(--soft);border-radius:5px;align-items:center;padding:5px 9px;font-size:12px;display:inline-flex}button.sentence-card-added{cursor:pointer}button.sentence-card-added:hover{border-color:var(--accent-ink);background:var(--panel)}.library-message{color:var(--muted)}@media (width<=700px){.lesson-sentence-facts,.lesson-sentence-notes,.lesson-chunk-analysis li{grid-template-columns:1fr}.lesson-chunk-analysis li{gap:2px}.lesson-chunk-analysis-head{justify-self:start}.lesson-chunk-line{font-size:19px}.lesson-heading{align-items:flex-start}}.video-footer{color:var(--muted);justify-content:space-between;align-items:center;display:flex}.tag{background:var(--soft);border-radius:999px;margin-bottom:10px;padding:5px 8px;font-size:11px;display:inline-block}.tag.word-pos{color:var(--accent-ink);vertical-align:1px;margin:0 2px;padding:1px 7px;font-weight:600}.plan-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.plan-list li{background:var(--highlight);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.plan-list strong,.plan-list span{display:inline-block}.plan-list span{float:right;color:var(--muted)}.plan-list p{color:var(--muted);margin:6px 0 0}.feature-points{color:var(--muted);margin:0;padding-left:18px;line-height:1.8}.analysis-overlay{margin-top:20px}.analysis-toggle-card{background:#f7f4eb;border:1px dashed #3c5a4780;border-radius:12px;padding:18px}.analysis-panel{border-top:1px solid var(--line);margin-top:24px;padding-top:24px}.analysis-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.analysis-nav{flex-wrap:wrap;gap:8px;display:flex}.analysis-nav button{background:0 0}.analysis-nav button.active{background:var(--soft);font-weight:700}@media (width<=980px){.layout{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr)}.sidebar{background:var(--panel-soft);z-index:10;border-right:none;border-bottom:1px solid var(--line);padding:8px 16px;position:sticky;top:0}.sidebar nav{scrollbar-width:none;flex-direction:row;overflow-x:auto}.sidebar nav::-webkit-scrollbar{display:none}.sidebar nav button{white-space:nowrap;flex:none;width:auto}.footer-note{display:none}.topbar{gap:12px;padding:16px}.header-actions{flex-wrap:wrap}.main-content{padding:16px}.metrics-grid,.two-column,.three-column,.video-grid,.material-grid,.form-grid,.hero-card{grid-template-columns:1fr}.analysis-header,.section-header,.topbar{flex-direction:column;align-items:flex-start}}.ipa-text{font-family:Georgia,serif}.ipa-word+.ipa-word{margin-left:.3em}.ipa-text button{min-height:auto;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:3px;padding:0 2px}.ipa-text button:hover,.ipa-text button:focus-visible{background:var(--chunk-1);text-underline-offset:3px;text-decoration:underline}.ipa-text button:active{background:var(--chunk-2)}@media (pointer:coarse){button,.page-language-switcher,.sentence-card-added{min-height:44px}.flashcard-card-actions button,.sentence-play-button{width:44px;height:44px;min-height:44px}.flashcard-card-meta{padding-right:150px}.chunk-play-button{width:36px;height:36px;min-height:36px}.sentence-speed-control button{min-height:40px;padding:6px 12px}.lesson-chunk button,.writing-word,.ipa-text button,.lesson-word-audio,.video-thumb-button,.video-row-title,.material-card button.material-open-link{min-height:auto}}@media (width<=980px){.material-grid,.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}@media (width<=700px){.topbar{flex-flow:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px}.brand-block h1{font-size:18px}.brand-block p{display:none}.brand-stamp{width:36px;height:36px;font-size:10px}.header-actions{gap:8px}.main-content{padding:12px}.section-header{margin-bottom:12px}.section-header h2{font-size:20px}.section-header:has(>button){flex-direction:row;align-items:flex-end}.section-header>button{flex:none}.material-card{padding:14px 12px}.material-card h3{overflow-wrap:anywhere;margin-bottom:4px;font-size:16px;line-height:1.25}.material-card small{font-size:12px}.material-card p{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:8px 0 0;font-size:13px;display:-webkit-box;overflow:hidden}.material-card-actions{gap:8px;padding-top:8px;font-size:14px}.material-study-link .label-long{display:none}.material-study-link .label-short{display:inline}.metric-card .value{font-size:22px}.hero-card h2{font-size:26px}.lesson-heading{flex-direction:column;align-items:stretch}.lesson-heading h3{font-size:21px}.lesson-heading-actions{justify-content:flex-start}.hero-stat-box{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mini-stat{padding:12px}.mini-stat strong{font-size:17px}}@media (width<=340px){.material-grid{grid-template-columns:1fr}}@media (pointer:coarse){.material-card-actions .material-open-link{align-items:center;min-height:44px;display:inline-flex}}@media (width<=980px){.card-corner .save-toggle{border-radius:50%;place-items:center;width:34px;height:34px;padding:0;display:grid}.card-corner .toggle-text{display:none}.material-card{padding-top:52px}.material-card>.tag{margin:0;position:absolute;top:14px;left:12px}.material-card h3,.material-card.corner-2 h3{padding-right:0}.material-card .card-corner{top:10px;right:10px}.video-row-title{padding-right:40px}.video-row.corner-2 .video-row-title{padding-right:80px}}@media (pointer:coarse){.card-corner button{min-height:34px}}.roadmap-level{margin:0 0 22px}.roadmap-level-head{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:10px;min-height:44px;margin-bottom:8px;padding-bottom:6px;list-style:none;display:flex}.roadmap-level-head::-webkit-details-marker{display:none}.roadmap-level-head:after{content:"▾";color:var(--muted);margin-left:auto;transition:transform .15s}.roadmap-level[open]>.roadmap-level-head:after{transform:rotate(180deg)}.roadmap-level:not([open]){margin-bottom:6px}@media (prefers-reduced-motion:reduce){.roadmap-level-head:after{transition:none}}.roadmap-target{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-size:13px;font-weight:600;display:inline-flex}.roadmap-target.reached{color:var(--accent-ink)}.roadmap-steps{gap:6px;margin:0;padding:0;list-style:none;display:grid}.roadmap-steps li{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.roadmap-steps li>.done-icon{width:38px;height:38px}.roadmap-steps li>button:first-child{border:1px solid var(--line);background:var(--panel);text-align:left;border-radius:10px;grid-template-columns:30px minmax(0,1fr) auto auto;align-items:center;gap:10px;width:100%;padding:10px 12px;display:grid}.roadmap-steps li>button:first-child:hover{border-color:var(--accent-hover)}.roadmap-steps li.next>button:first-child{border:2px solid var(--accent)}.roadmap-step-number{border:1.5px solid var(--line);width:28px;height:28px;color:var(--muted);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid}.roadmap-steps li.done .roadmap-step-number{border-color:var(--accent);background:var(--soft);color:var(--accent-ink)}.roadmap-step-title{min-width:0;display:grid}.roadmap-step-title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.roadmap-step-title small{color:var(--muted);font-size:12px}.roadmap-next{background:var(--accent);color:var(--panel);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}.roadmap-topics{gap:8px;display:grid}.test-badge{border:1px solid var(--highlight-line);background:var(--highlight);color:var(--accent-ink);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-flex}.roadmap-topic>summary.has-badge{grid-template-columns:30px minmax(0,1fr) auto auto}.test-badge.compact{padding:3px 5px}.roadmap-test{border:1px dashed var(--accent-hover);background:var(--panel);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:4px 12px 12px;padding:10px 12px;display:flex}.roadmap-test.passed{border-style:solid;border-color:var(--highlight-line);background:var(--highlight)}.roadmap-test-text{flex:1;min-width:160px;display:grid}.roadmap-test-text small{color:var(--muted)}.roadmap-test button{min-height:44px}.path-test{gap:14px;max-width:760px;display:grid}.path-test .page-back-bar{justify-content:space-between}.path-test-head h2{font-family:var(--font-display);margin:2px 0 0}.path-test-head small{color:var(--muted);display:block}.path-test-rule{color:var(--muted);margin:6px 0 0}.path-test-score{border:1px solid var(--line);border-left:4px solid var(--warn-ink);background:var(--warn-bg);color:var(--ink);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;display:flex}.path-test-score.passed{border-left-color:var(--accent);background:var(--highlight)}.path-test-score strong{font-family:var(--font-display);font-size:26px}.path-test-questions{gap:12px;margin:0;padding:0;list-style:none;display:grid}.path-test-questions>li{border:1px solid var(--line);background:var(--panel);border-radius:13px;padding:14px}.path-test-questions>li.right{border-color:var(--level-a1-ink)}.path-test-questions>li.wrong{border-color:var(--warn-ink)}.path-test-questions fieldset{border:0;gap:10px;min-width:0;margin:0;padding:0;display:grid}.path-test-questions legend{gap:8px;padding:0;font-weight:600;display:flex}.path-test-number{background:var(--soft);width:24px;height:24px;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;font-size:13px;display:inline-grid}.path-test-french{font-family:var(--font-display);margin:0;font-size:18px}.path-test-options{gap:8px;display:grid}.path-test-options label{border:1px solid var(--line);background:var(--panel-soft);min-height:44px;color:var(--ink);cursor:pointer;border-radius:9px;flex-direction:row;align-items:center;gap:10px;padding:8px 12px;font-size:16px;font-weight:400;display:flex}.path-test-options label.selected{border-color:var(--accent);background:var(--soft)}.path-test-options label.answer{border-color:var(--level-a1-ink);background:var(--level-a1-bg);font-weight:700}.path-test-options label.chosen-wrong{border-color:var(--warn-ink);background:var(--warn-bg);text-decoration:line-through}.path-test-options input{accent-color:var(--accent)}.path-test-options label span{flex:1}.path-test-write{gap:6px;display:grid}.path-test-write input{border:1px solid var(--line);background:var(--panel-soft);width:100%;min-height:44px;color:var(--ink);border-radius:9px;padding:8px 12px;font-size:16px}.path-test-write input:focus{border-color:var(--accent);background:var(--panel)}.path-test-write input.right{border-color:var(--level-a1-ink);background:var(--level-a1-bg)}.path-test-write input.wrong{border-color:var(--warn-ink);background:var(--warn-bg)}.path-test-write small{color:var(--muted)}.path-test-model{background:var(--level-a1-bg);font-family:var(--font-display);border-radius:9px;align-items:center;gap:6px;margin:0;padding:8px 12px;display:flex}.path-test-model small{font-family:inherit}.path-test-explain{color:var(--muted);margin:0;font-size:14px}.path-test-actions{padding:10px 0 calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex;position:sticky;bottom:0}.path-test-actions span{color:var(--muted);margin-right:auto}.path-test-actions button{min-height:44px}.roadmap-topic{border:1px solid var(--line);background:var(--panel);border-radius:12px}.roadmap-topic.next{border-color:var(--accent-hover)}.roadmap-topic>summary{cursor:pointer;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;list-style:none;display:grid}.roadmap-topic>summary::-webkit-details-marker{display:none}.roadmap-topic>summary:after{content:"▾";color:var(--muted);grid-area:1/3;justify-self:end;margin-left:34px;transition:transform .15s}.roadmap-topic[open]>summary:after{transform:rotate(180deg)}.roadmap-topic.done>summary .roadmap-step-number{border-color:var(--accent);background:var(--soft);color:var(--accent-ink)}.roadmap-topic-count{color:var(--muted);font-variant-numeric:tabular-nums;grid-area:1/3;font-size:12px;font-weight:700}.roadmap-topic .roadmap-steps{padding:0 12px 12px}.path-grammar,.path-writing{border-radius:13px;gap:8px;margin:16px 0;padding:14px 16px;display:grid}.path-grammar{border:1px solid var(--highlight-line);border-left:4px solid var(--accent);background:var(--highlight)}.path-writing{border:1px solid var(--line);background:var(--panel)}.path-grammar h4,.path-grammar p,.path-writing p{margin:0}.path-grammar h4{font-family:var(--font-display);font-size:18px}.path-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}.path-patterns{gap:6px;margin:0;padding:0;list-style:none;display:grid}.path-patterns li{flex-wrap:wrap;gap:4px 10px;display:flex}.path-patterns strong{background:var(--chunk-2);border-radius:6px;padding:1px 8px}.path-writing .writing-input{min-height:110px}.path-writing>button,.path-model button{justify-self:start}.path-model{background:var(--highlight);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.path-model p{flex:240px}.roadmap-empty{color:var(--muted);margin:0;font-size:13px}@media (width<=700px){.roadmap-steps li>button:first-child{grid-template-columns:30px minmax(0,1fr) auto}}.layout.app-embedded{min-height:100vh;display:block}.layout.app-embedded .main-content{padding-top:12px}.points-pill{border:1px solid var(--line);background:var(--soft);color:var(--accent-ink);white-space:nowrap;border-radius:999px;flex:none;align-items:center;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.video-import{gap:10px;margin:0 0 16px;padding:14px 16px;display:grid}.video-import-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.video-import-head h3{font-family:var(--font-display);margin:0;font-size:18px}.video-import-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.video-import-row p,.video-import-confirm p,.video-import-status p{margin:0}.video-import-row p{color:var(--muted);flex:240px}.video-import-row input{flex:240px;min-width:0;font-size:16px}.video-import-confirm,.video-import-status{border-left:4px solid var(--accent);background:var(--highlight);border-radius:9px;justify-items:start;gap:8px;padding:10px 12px;display:grid}.video-import-url{max-width:100%;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.video-import-actions{flex-wrap:wrap;gap:8px;display:flex}@media (pointer:coarse){.back-button{width:44px;height:44px}}.video-paused-time{z-index:2;background:linear-gradient(to bottom, transparent, var(--ink) 35%);height:42%;color:var(--panel);pointer-events:none;justify-content:center;align-items:flex-end;padding-bottom:14px;display:flex;position:absolute;inset:auto 0 0}.video-paused-time span{background:color-mix(in srgb, var(--ink) 70%, transparent);font-variant-numeric:tabular-nums;border-radius:999px;padding:3px 10px;font-size:14px;font-weight:700}.video-tap-layer{z-index:1;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:0;width:100%;height:100%;min-height:0;padding:0;position:absolute;inset:0}.video-overlay-bar{z-index:3;pointer-events:none;background:linear-gradient(#3b2a1e4d,#3b2a1e00);border-radius:13px 13px 0 0;justify-content:space-between;align-items:flex-start;gap:8px;padding:8px;display:flex;position:absolute;top:0;left:0;right:0}.video-overlay-bar>*{pointer-events:auto}.video-overlay-bar .back-button{width:40px;height:40px;min-height:0;color:var(--panel);opacity:.75;filter:drop-shadow(0 1px 2px #3b2a1e99);background:0 0;border:0;padding:0}.video-overlay-bar .back-button:hover,.video-overlay-bar .back-button:focus-visible{opacity:1;background:0 0;border:0}.video-overlay-bar .back-button .line-icon{width:26px;height:26px;color:var(--panel)}@media (width<=700px){.video-overlay-bar{border-radius:0}}@media (pointer:coarse){.video-overlay-bar .back-button{width:44px;height:44px}}.practice-answer{border:1px solid var(--line);background:var(--panel);border-radius:13px;gap:10px;margin:14px 0;padding:14px;display:grid}.practice-answer-row{gap:8px;display:flex}.practice-answer-row input{flex:1;min-width:0;font-size:18px}.practice-accents{flex-wrap:wrap;gap:4px;display:flex}.practice-accents button{border-color:var(--line);background:var(--panel);min-width:34px;min-height:0;color:var(--ink);border-radius:7px;padding:4px 6px;font-size:15px}.practice-result{border-left:4px solid var(--accent);background:var(--highlight);border-radius:9px;gap:6px;margin:0;padding:10px 12px;scroll-margin-bottom:96px;display:grid}.practice-result p{margin:0}.practice-result-title{color:var(--accent-ink);font-weight:700}.practice-result-answer{font-size:18px;line-height:1.7}.practice-word+.practice-word{margin-left:.3em}.practice-word.missing{-webkit-text-decoration:underline 2px var(--accent);text-decoration:underline 2px var(--accent);text-underline-offset:4px;font-weight:700}.practice-word.accent{-webkit-text-decoration:underline dotted 2px var(--accent-hover);text-decoration:underline dotted 2px var(--accent-hover);text-underline-offset:4px}.practice-result-legend{color:var(--muted);font-size:12px}@media (width<=700px){.practice-card{min-height:170px}.practice-answer{padding:12px}}@media (pointer:coarse){.practice-accents button{min-height:44px}}.video-row-tags{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.video-row-tags .tag{margin:0;padding:2px 8px}
