/* Shared LexiLuma identity. Learning state keeps its existing storage keys. */
.account-slot{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:.875rem}.account-label{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-link{font:inherit;font-weight:700;border:1px solid var(--line);border-radius:99px;padding:8px 14px;text-decoration:none;background:var(--card);color:var(--ink);cursor:pointer}.auth-blocker{padding:24px;border:1px solid var(--line);border-radius:16px}
.account-slot[hidden]{display:none}
:root{--ink:#29272b;--paper:#faf7ef;--card:#fffefa;--muted:#69616a;--line:#dfd7c8;--orange:#975315;--yellow:#f4d887;--blue:#6a587d;--green:#287556;--shadow:0 16px 45px rgba(55,42,28,.065)}
body{background:var(--paper);color:var(--ink)}
.brand{letter-spacing:-.035em;font-size:1.2rem}
.brandmark,.mark{width:56px;height:56px;background:transparent;border-radius:0;flex-shrink:0;display:grid;place-items:center}
.brandmark img,.mark img{width:100%;height:100%;object-fit:contain}
.brand-name{white-space:nowrap}
.brand-name .luma{color:var(--orange)}
.brand-tagline{display:block;font-size:.71rem;font-weight:600;letter-spacing:.01em;color:var(--muted);margin-top:3px}
.course-picker{position:relative;z-index:20}.course-picker-button{display:inline-flex;align-items:center;gap:10px;min-height:38px;cursor:pointer}.course-picker-button[aria-expanded="true"]{border-color:var(--orange);color:var(--ink)}.course-menu{position:absolute;top:calc(100% + 7px);left:0;min-width:170px;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px rgba(55,42,28,.16)}.course-menu[hidden]{display:none}.course-menu a{display:block;padding:10px 12px;border-radius:9px;color:var(--ink);font-size:.9rem;font-weight:750;text-decoration:none;white-space:nowrap}.course-menu a:hover,.course-menu a:focus-visible{background:#f8e9bd}.course-menu a[aria-current="page"]{color:var(--orange);background:#fff5dc}
.intro h1{font-size:clamp(3rem,7vw,5.8rem);line-height:1;max-width:790px}
.primary,a.button{background:var(--ink);color:var(--paper)}
.primary:hover,a.button:hover{background:#42383d}
.primary:focus-visible,.secondary:focus-visible,a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.progress>span,.dots span.on{background:#b87927}
.method,.promise{border-color:#e6cf95;background:#f8e9bd}
.memory-image{background:white}
.brand-note{color:var(--muted);font-size:.85rem;line-height:1.5}
.kanji-note{font-size:.8rem!important;margin-top:10px!important}
@media(max-width:520px){.brandmark,.mark{width:44px;height:44px}.brand{font-size:1.1rem}.topbar .brand{gap:9px}.brand-tagline{font-size:.68rem}.intro h1{font-size:3.2rem}}
.sync-cover{position:fixed;inset:0;z-index:1000;background:rgba(23,23,19,.58);display:grid;place-items:center;padding:20px}.sync-card{max-width:520px;width:100%;background:var(--card);color:var(--ink);border-radius:20px;padding:28px;box-shadow:var(--shadow)}.sync-card h2{margin:0 0 12px;font-size:1.7rem}.sync-card p{line-height:1.55;color:var(--muted)}
.sync-notice{position:fixed;z-index:900;bottom:16px;left:16px;right:16px;max-width:620px;margin:auto;background:var(--ink);color:var(--paper);padding:12px 16px;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:var(--shadow)}.sync-notice button{font:inherit;font-weight:700;border:0;background:var(--yellow);color:var(--ink);padding:8px 12px;border-radius:9px;white-space:nowrap}
