:root { --bg:#f4f4f1; --surface:#fff; --surface-2:#e8e9e6; --ink:#202426; --muted:#70777a; --line:#d4d7d5; --orange:#dc6844; --orange-deep:#a8472e; --mint:#e2ece8; --mint-deep:#236458; --yellow:#f0cc57; --good:#e2f1e6; --bad:#fff0eb; --shadow:0 16px 42px rgba(32,36,38,.08); }
body.dark { --bg:#202224; --surface:#2b2d30; --surface-2:#373a3d; --ink:#f0f1f2; --muted:#adb2b6; --line:#4a4e52; --orange:#ef8b63; --orange-deep:#ffb095; --mint:#41464a; --mint-deep:#d8dde0; --yellow:#f1ce62; --good:#304a3a; --bad:#4d3232; --shadow:0 18px 50px rgba(0,0,0,.25); }
* { box-sizing:border-box; } html { background:var(--bg); } body { min-width:320px; margin:0; color:var(--ink); background:var(--bg); font-family:"Atkinson Hyperlegible",sans-serif; } button,input { font:inherit; } button { cursor:pointer; }
.phone-frame { width:100%; max-width:520px; min-height:100vh; margin:0 auto; padding-bottom:76px; background:var(--bg); } .topbar { position:sticky; top:0; z-index:4; display:flex; align-items:center; justify-content:space-between; height:65px; padding:0 18px; border-bottom:1px solid var(--line); background:color-mix(in srgb,var(--bg) 91%,transparent); backdrop-filter:blur(14px); }
.brand { display:flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none; } .brand-mark { display:grid; place-items:center; width:35px; height:35px; border-radius:11px 11px 11px 3px; background:var(--ink); color:var(--yellow); font:700 11px "DM Mono",monospace; } .brand strong,.brand small { display:block; } .brand strong { font-size:14px; letter-spacing:.09em; } .brand small { margin-top:2px; color:var(--muted); font:8px "DM Mono",monospace; letter-spacing:.12em; text-transform:uppercase; }
.theme-toggle { width:35px; height:35px; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--ink); font-size:17px; } .screen { min-height:calc(100vh - 65px); padding:27px 18px 32px; } .is-hidden { display:none!important; } .eyebrow { margin:0; color:var(--mint-deep); font:10px "DM Mono",monospace; letter-spacing:.14em; text-transform:uppercase; } .home-kicker { display:flex; align-items:center; gap:8px; color:var(--muted); font:9px "DM Mono",monospace; letter-spacing:.08em; text-transform:uppercase; } .live-dot { width:7px; height:7px; border-radius:50%; background:#72b77a; box-shadow:0 0 0 4px var(--mint); }
.home-screen { display:flex; flex-direction:column; justify-content:center; padding-top:60px; padding-bottom:96px; } .home-mark { display:grid; place-items:center; width:68px; height:68px; margin:58px 0 28px; border-radius:50%; background:var(--yellow); color:var(--ink); font:700 21px "Space Grotesk",sans-serif; box-shadow:15px 13px 0 var(--orange); } .home-mark span { color:var(--orange-deep); } h1,h2 { font-family:"Space Grotesk",sans-serif; letter-spacing:-.06em; } h1 { margin:12px 0 18px; font-size:clamp(44px,13vw,70px); line-height:.9; } h1 em { color:var(--orange-deep); font-style:normal; } .home-copy { max-width:360px; margin:0; color:var(--muted); font-size:14px; line-height:1.7; } .hero-button { display:flex; align-items:center; justify-content:space-between; width:100%; max-width:360px; min-height:53px; margin-top:32px; padding:0 17px; border:0; border-radius:9px; background:var(--ink); color:var(--yellow); font-size:13px; font-weight:800; } .hero-button span { font-size:21px; } .home-stats { display:flex; gap:30px; margin-top:38px; } .home-stats span { display:flex; flex-direction:column; gap:3px; } .home-stats strong { font-size:17px; } .home-stats small { color:var(--muted); font:9px "DM Mono",monospace; letter-spacing:.06em; text-transform:uppercase; }
.screen-heading,.quiz-top,.quiz-progress { display:flex; align-items:center; justify-content:space-between; gap:12px; } h2 { margin:9px 0 0; font-size:32px; line-height:.95; } .back-button,.reset-button { padding:7px 0; border:0; background:transparent; color:var(--orange-deep); font-size:11px; font-weight:700; white-space:nowrap; } .search-field { display:flex; align-items:center; gap:10px; height:45px; margin:27px 0 18px; padding:0 13px; border:1px solid var(--line); border-radius:9px; background:var(--surface); color:var(--orange); } .search-field input { width:100%; border:0; outline:0; background:transparent; color:var(--ink); font-size:13px; } .search-field span { font-size:19px; }
.bank-content { padding-bottom:20px; } .lane-card,.list-card { display:flex; align-items:center; width:100%; margin:10px 0; padding:16px 14px; border:1px solid var(--line); border-radius:11px; background:var(--surface); color:var(--ink); text-align:left; box-shadow:var(--shadow); } .lane-card { gap:13px; min-height:79px; } .lane-icon { display:grid; place-items:center; flex:0 0 37px; height:37px; border-radius:9px; background:var(--mint); color:var(--mint-deep); font:12px "DM Mono",monospace; } .card-copy,.list-card span { display:flex; flex:1; flex-direction:column; gap:5px; min-width:0; } .card-copy strong,.list-card strong { font-size:13px; } .card-copy small,.list-card small,.module-row small { color:var(--muted); font-size:10px; } .card-arrow,.list-card b { color:var(--orange); font-size:20px; font-weight:400; } .inline-back { margin:0 0 11px; padding:0; border:0; background:transparent; color:var(--orange-deep); font-size:11px; font-weight:700; } .list-card { min-height:70px; } .quiet { color:var(--muted); font-size:13px; line-height:1.6; }
.topic-card { margin:10px 0; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:var(--surface); } .topic-card summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:55px; padding:0 14px; color:var(--ink); cursor:pointer; font-size:13px; font-weight:700; list-style:none; } .topic-card summary::-webkit-details-marker { display:none; } .topic-card summary::after { content:"+"; color:var(--orange); font-size:19px; font-weight:400; } .topic-card[open] summary::after { content:"−"; } .topic-card summary small { margin-left:auto; color:var(--muted); font:9px "DM Mono",monospace; font-weight:400; } .module-stack { padding:0 10px 10px; border-top:1px solid var(--line); } .module-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 4px; border-bottom:1px solid var(--line); } .module-row:last-child { border:0; } .module-row span { display:flex; flex-direction:column; gap:4px; min-width:0; } .module-row strong { overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; } .start-button { flex:0 0 auto; padding:8px 12px; border:0; border-radius:6px; background:var(--orange); color:#fff; font-size:10px; font-weight:800; }
.quiz-screen { padding-top:22px; } .quiz-crumb { overflow:hidden; color:var(--muted); font:9px "DM Mono",monospace; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; } .quiz-progress { align-items:end; margin-top:40px; } .quiz-progress strong { display:block; margin-top:7px; font-size:16px; } #score-label { color:var(--orange-deep); font:11px "DM Mono",monospace; } .progress-line { height:5px; margin:14px 0 18px; overflow:hidden; border-radius:9px; background:var(--surface-2); } .progress-line span { display:block; width:0; height:100%; background:var(--orange); transition:width .25s ease; } .question-card { padding:21px 16px 23px; border:1px solid var(--line); border-radius:12px; background:var(--surface); box-shadow:var(--shadow); } .question-meta { display:flex; justify-content:space-between; margin-bottom:23px; color:var(--muted); font:9px "DM Mono",monospace; text-transform:uppercase; } .question-copy { margin-bottom:23px; font-size:19px; font-weight:700; letter-spacing:-.03em; line-height:1.4; } .question-copy img,.explanation img { max-width:100%; height:auto; border-radius:6px; } .answer-list { display:grid; gap:8px; } .answer-button { display:flex; align-items:flex-start; gap:10px; width:100%; padding:12px 10px; border:1px solid var(--line); border-radius:8px; background:transparent; color:var(--ink); text-align:left; font-size:12px; line-height:1.55; } .answer-button:disabled { opacity:1; } .answer-key { display:grid; place-items:center; flex:0 0 23px; height:23px; border-radius:50%; background:var(--mint); color:var(--mint-deep); font:10px "DM Mono",monospace; } .answer-button.is-correct { border-color:#74a77c; background:var(--good); } .answer-button.is-wrong { border-color:#d89078; background:var(--bad); } .explanation { margin-top:18px; padding:14px; border-left:3px solid var(--mint-deep); background:var(--mint); color:var(--ink); font-size:11px; line-height:1.7; } .explanation strong { display:block; margin-bottom:5px; color:var(--mint-deep); font-size:10px; text-transform:uppercase; } .quiz-nav { display:flex; justify-content:space-between; gap:10px; margin-top:14px; } .nav-button,.next-button { min-height:43px; padding:0 14px; border-radius:8px; font-size:11px; font-weight:800; } .nav-button { border:1px solid var(--line); background:var(--surface); color:var(--ink); } .next-button { border:0; background:var(--ink); color:var(--yellow); } .loading-copy,.error-copy { color:var(--muted); font-size:13px; line-height:1.6; }
.bottom-nav { position:fixed; right:0; bottom:0; left:0; z-index:5; display:flex; justify-content:center; height:70px; padding:7px 12px max(7px,env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:color-mix(in srgb,var(--surface) 94%,transparent); backdrop-filter:blur(14px); } .bottom-item { display:flex; flex:0 1 150px; flex-direction:column; align-items:center; justify-content:center; gap:3px; border:0; background:transparent; color:var(--muted); } .bottom-item span { font-size:20px; line-height:1; } .bottom-item small { font-size:9px; font-weight:700; } .bottom-item.is-active { color:var(--orange-deep); }
@media (min-width:521px) { body { padding:0 20px; } .phone-frame { box-shadow:0 0 0 1px var(--line),0 30px 100px rgba(0,0,0,.08); } }
.theme-toggle svg, .hero-button svg, .bottom-item svg { width:18px; height:18px; stroke-width:2.1; }
.hero-button { gap:12px; }
.hero-button svg { flex:0 0 auto; width:20px; height:20px; }
.bottom-item svg { width:19px; height:19px; margin-bottom:2px; }
.home-kicker { width:max-content; max-width:100%; min-height:30px; padding:0 11px; border:1px solid var(--line); border-radius:999px; background:var(--surface); }
.live-dot { background:var(--yellow); box-shadow:0 0 0 4px rgba(240,204,87,.18); }
.live-dot.is-ready { background:#5eb675; box-shadow:0 0 0 4px rgba(94,182,117,.18); }
.live-dot.is-error { background:var(--orange); box-shadow:0 0 0 4px rgba(220,104,68,.18); }
.home-stats { padding-top:18px; border-top:1px solid var(--line); }
.home-screen { justify-content:flex-start; padding-top:35px; }
.home-mark { margin-top:68px; }
.home-copy { max-width:330px; }
.bottom-nav { box-shadow:0 -8px 24px rgba(32,36,38,.06); }
body.dark .bottom-nav { box-shadow:0 -8px 24px rgba(0,0,0,.18); }

/* Study-mode typography: prioritize scanning and long reading over dashboard styling. */
body { font-size: 16px; }
h1, h2 { font-family: "Atkinson Hyperlegible", sans-serif; letter-spacing: 0; }
.eyebrow, .home-kicker, .status-line, .home-stats small, .quiz-crumb { font-family: "Atkinson Hyperlegible", sans-serif; letter-spacing: .06em; }
.home-screen h1 { font-size: clamp(46px, 13vw, 68px); line-height: .98; font-weight: 700; }
.home-copy { font-size: 16px; line-height: 1.65; }
.hero-button { font-size: 15px; }
.screen-heading h2 { font-size: 35px; line-height: 1.05; font-weight: 700; }
.lane-card, .list-card { box-shadow: none; }
.lane-card strong, .list-card strong { font-size: 15px; }
.card-copy small, .list-card small, .module-row small { font-size: 12px; }
.topic-card summary { min-height: 60px; font-size: 15px; }
.module-row strong { font-size: 14px; }
.start-button { min-height: 38px; padding: 8px 14px; font-size: 12px; }
.question-copy { font-size: 22px; letter-spacing: 0; line-height: 1.5; }
.answer-button { padding: 14px 12px; font-size: 15px; line-height: 1.55; }
.answer-key { flex-basis: 27px; height: 27px; font-size: 12px; }
.explanation { font-size: 14px; line-height: 1.65; }
.nav-button, .next-button { font-size: 13px; }
.bottom-item small { font-size: 11px; }