.hoy-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s5)}.greeting{font-size:var(--fs-h1);font-weight:600}.date-line{font-size:var(--fs-label);margin-top:2px}.head-actions{display:flex;gap:var(--s1);flex-shrink:0}.ico-sun{display:none}.ico-moon,html.dark-mode .ico-sun{display:block}html.dark-mode .ico-moon{display:none}.today-line{font-size:var(--fs-h2);color:var(--text-muted);margin-bottom:var(--s4);line-height:1.3}.choices{display:flex;flex-direction:column;gap:var(--s3);margin-bottom:var(--s6)}.choice-row{display:flex;gap:var(--s3)}.choice-card{display:flex;align-items:center;gap:var(--s4);flex:1;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:var(--s5);text-decoration:none;color:var(--text);transition:transform var(--dur-fast) var(--ease-settle),box-shadow var(--dur-fast) var(--ease-out)}.choice-card:active{transform:scale(.985)}.choice-row .choice-card{flex-direction:column;align-items:flex-start;gap:var(--s2);padding:var(--s4)}.choice-ico{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-md);flex-shrink:0;background:color-mix(in oklab,var(--accent) 12%,var(--surface-muted));color:var(--accent)}.choice-body{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.choice-title{font-size:var(--fs-h2);font-weight:600;line-height:1.1}.choice-sub{font-family:var(--font-ui);font-size:var(--fs-caption);color:var(--text-muted)}.choice-go{color:var(--text-faint);flex-shrink:0}.choice-primary{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-lift)}.choice-primary .choice-ico{background:color-mix(in oklab,var(--on-accent) 18%,transparent);color:var(--on-accent)}.choice-primary .choice-sub{color:color-mix(in oklab,var(--on-accent) 92%,transparent)}.choice-primary .choice-go{color:color-mix(in oklab,var(--on-accent) 70%,transparent)}.choice-capture .choice-ico{background:color-mix(in oklab,var(--accent-cool) 14%,var(--surface-muted));color:var(--accent-cool)}.light-link{display:block;text-align:center;text-decoration:none;font-family:var(--font-ui);font-size:var(--fs-caption);color:var(--text-muted);padding:var(--s1) 0 var(--s2);margin-top:calc(-1 * var(--s1))}.light-link:hover{color:var(--accent)}.light-link.welcome-back{color:var(--accent-cool);font-size:var(--fs-label);font-weight:500;padding:var(--s2) 0 var(--s3)}.section-eyebrow{font-family:var(--font-ui);font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--s2)}.idiom-card{margin-bottom:var(--s6)}.idiom-front{font-size:var(--fs-h1);line-height:1.25}.idiom-gloss{font-family:var(--font-ui);font-size:var(--fs-body);color:var(--text);margin-top:var(--s1);font-weight:500}.idiom-eg{font-size:var(--fs-body);color:var(--text-muted);margin-top:var(--s2)}.heritage-card{display:block;text-decoration:none;color:var(--text);margin-bottom:var(--s6)}.heritage-title{font-size:var(--fs-display);margin:2px 0 var(--s2)}.route-line{font-family:var(--font-ui);font-size:var(--fs-caption);line-height:1.5}.heritage-foot{display:flex;align-items:center;justify-content:space-between;margin-top:var(--s4)}.route-nodes{display:flex;gap:6px}.route-nodes i{width:9px;height:9px;border-radius:var(--r-full);border:1.5px solid var(--accent-cool);display:inline-block}.route-nodes i.on{background:var(--accent-cool)}.heritage-prog{font-family:var(--font-ui);font-size:var(--fs-label);font-weight:600}.level-chip{display:inline-flex;align-items:center;gap:var(--s2);margin-bottom:var(--s4);background:var(--surface);border:0;border-radius:var(--r-full);box-shadow:var(--shadow-card);padding:var(--s2) var(--s3) var(--s2) var(--s4);cursor:pointer;color:var(--text)}.level-chip:active{transform:scale(.97)}.level-chip-label{font-family:var(--font-ui);font-size:var(--fs-caption);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.level-chip-band{font-size:var(--fs-label);font-weight:600}.level-chip svg{color:var(--text-faint)}.level-backdrop{position:fixed;inset:0;z-index:90;background:color-mix(in oklab,var(--bg) 50%,rgba(0,0,0,.35));opacity:0;transition:opacity var(--dur-base) var(--ease-out)}.level-backdrop.show{opacity:1}.level-sheet{position:fixed;left:0;right:0;bottom:0;z-index:91;margin:0 auto;max-width:560px;background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:var(--shadow-sheet);padding:var(--s3) var(--gutter) calc(var(--s5) + var(--safe-bottom));transform:translateY(100%);transition:transform var(--dur-base) var(--ease-out)}.level-sheet.show{transform:translateY(0)}.sheet-grabber{width:36px;height:4px;border-radius:var(--r-full);background:var(--border);margin:0 auto var(--s4)}.level-sheet-title{font-size:var(--fs-h1)}.level-sheet-sub{font-family:var(--font-ui);font-size:var(--fs-label);margin:var(--s1) 0 var(--s4)}.level-list{list-style:none;display:flex;flex-direction:column;gap:var(--s2);margin-bottom:var(--s4)}.level-row{display:flex;align-items:center;gap:var(--s3);width:100%;text-align:left;background:var(--surface-muted);border:0;border-radius:var(--r-md);padding:var(--s4);cursor:pointer;color:var(--text)}.level-row:disabled{cursor:default;opacity:.65}.level-row.current{background:color-mix(in oklab,var(--accent) 14%,var(--surface-muted));box-shadow:inset 0 0 0 2px var(--accent)}.level-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.level-row-name{font-family:var(--font-serif);font-size:var(--fs-body-lg);font-weight:600}.level-row-cefr{font-family:var(--font-ui);font-size:var(--fs-caption);color:var(--text-muted);margin-left:var(--s2)}.level-row-note{font-family:var(--font-ui);font-size:var(--fs-caption);color:var(--text-muted);margin-top:2px}.level-row.current .level-row-note{color:var(--accent);font-weight:600}.level-row-tag{font-family:var(--font-ui);font-size:var(--fs-caption);font-weight:600;flex-shrink:0}.level-row .lock{color:var(--text-faint);flex-shrink:0}.level-done{margin-top:var(--s1)}@media(min-width:768px){.level-sheet{inset:50% auto auto 50%;margin:0;border-radius:var(--r-lg);max-height:min(82vh,760px);overflow-y:auto;transform:translate(-50%,-46%) scale(.98)}.level-sheet.show{transform:translate(-50%,-50%) scale(1)}.sheet-grabber{display:none}}
