@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(../media/archivo-vietnamese-400-normal.268n3yrdgcyuk.woff2)format("woff2"),url(../media/archivo-vietnamese-400-normal.2onaat2gfg_xg.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(../media/archivo-latin-ext-400-normal.37ml2ec_pqf4w.woff2)format("woff2"),url(../media/archivo-latin-ext-400-normal.0cmp50sfwn8bq.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(../media/archivo-latin-400-normal.3ulrwo0hu78l8.woff2)format("woff2"),url(../media/archivo-latin-400-normal.2gwpxxz15gs-r.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(../media/archivo-vietnamese-600-normal.1zzqv7ar6igs7.woff2)format("woff2"),url(../media/archivo-vietnamese-600-normal.16-jpdn3al-l2.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(../media/archivo-latin-ext-600-normal.2l9-i4f7r6g1y.woff2)format("woff2"),url(../media/archivo-latin-ext-600-normal.1hfm64ncbskgi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(../media/archivo-latin-600-normal.2xrlizciyxkaw.woff2)format("woff2"),url(../media/archivo-latin-600-normal.0nr2cwb3yjqye.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(../media/archivo-vietnamese-700-normal.25a_8s5zwlnqg.woff2)format("woff2"),url(../media/archivo-vietnamese-700-normal.3h6r4gj55h9zy.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(../media/archivo-latin-ext-700-normal.0gpopa80-w53j.woff2)format("woff2"),url(../media/archivo-latin-ext-700-normal.1jqfiymonp3ox.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(../media/archivo-latin-700-normal.0xklgcivxid3p.woff2)format("woff2"),url(../media/archivo-latin-700-normal.1o9h0if12mn82.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(../media/archivo-vietnamese-800-normal.00pzl5m20pa1x.woff2)format("woff2"),url(../media/archivo-vietnamese-800-normal.064vg2uego00z.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(../media/archivo-latin-ext-800-normal.0rse0snt41vt2.woff2)format("woff2"),url(../media/archivo-latin-ext-800-normal.1cp4yo0dybag3.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(../media/archivo-latin-800-normal.3eeuy_h3stxve.woff2)format("woff2"),url(../media/archivo-latin-800-normal.169vk7srq_ic1.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Archivo Black;font-style:normal;font-display:swap;font-weight:400;src:url(../media/archivo-black-latin-ext-400-normal.2abjotv64f_3q.woff2)format("woff2"),url(../media/archivo-black-latin-ext-400-normal.1-q8h297ep_rh.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Black;font-style:normal;font-display:swap;font-weight:400;src:url(../media/archivo-black-latin-400-normal.28-s2vszyg0u5.woff2)format("woff2"),url(../media/archivo-black-latin-400-normal.2f-eiboqvs3t_.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#f2f3ef;--surface:#fff;--ink:#111418;--ink-muted:#4a5058;--border:#c9ccc4;--border-strong:#111418;--chip:#e3e5df;--yellow:#ffc400;--on-yellow:#111418;--green:#00754e;--green-bg:#ddf3e8;--red:#c8102e;--red-bg:#fbe3e7;--blue:#1d4f91;--button:#111418;--button-text:#ffc400;--font-display:"Archivo Black", "Archivo", system-ui, sans-serif;--font-body:"Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121417;--surface:#1c2025;--ink:#eef0ea;--ink-muted:#a5acb4;--border:#343a42;--border-strong:#6b737d;--chip:#2a3037;--green:#3fc58e;--green-bg:#12382a;--red:#ff6b7f;--red-bg:#431d25;--blue:#7fa8e8;--button:#ffc400;--button-text:#111418;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#121417;--surface:#1c2025;--ink:#eef0ea;--ink-muted:#a5acb4;--border:#343a42;--border-strong:#6b737d;--chip:#2a3037;--green:#3fc58e;--green-bg:#12382a;--red:#ff6b7f;--red-bg:#431d25;--blue:#7fa8e8;--button:#ffc400;--button-text:#111418;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 120px)}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-tap-highlight-color:transparent;flex-direction:column;min-height:100dvh;margin:0;font-size:17px;line-height:1.45;display:flex}button{font:inherit;color:inherit}a{color:inherit}code{background:var(--chip);border-radius:4px;padding:1px 5px;font-size:.9em}[hidden]{display:none!important}.page{flex:1 0 auto;width:100%;max-width:640px;margin:0 auto;padding:0 16px 8px}:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.app-header{top:env(safe-area-inset-top,0px);z-index:5;background:var(--surface);border-bottom:3px solid var(--border-strong);padding:12px 16px;position:sticky}.app-header-row{align-items:center;gap:12px;max-width:608px;margin:0 auto;display:flex}.plate{background:var(--yellow);color:var(--on-yellow);font-family:var(--font-display);letter-spacing:.02em;border:3px solid #111418;border-radius:6px;padding:6px 10px 3px;font-size:20px;line-height:1;text-decoration:none}.header-progress{text-align:right;flex:1;min-width:0;font-size:13px;font-weight:700;line-height:1.2}.header-progress b,.header-progress span{display:block}.header-progress span{color:var(--ink-muted);font-weight:400}.header-progress i{font-style:normal;font-weight:800}a.header-progress{text-decoration:none}.theme-toggle{border:2px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:16px;display:grid}.progress-bar{border:2px solid var(--border-strong);background:var(--surface);border-radius:3px;max-width:608px;height:10px;margin:10px auto 0;overflow:hidden}.progress-bar i{background:repeating-linear-gradient(135deg, var(--yellow) 0 8px, #111418 8px 16px);width:0;height:100%;transition:width .4s;display:block}@media (min-width:900px){.app-header{align-items:center;gap:16px;padding:12px 24px;display:flex}.app-header-row{display:contents}.plate{margin-right:auto}.progress-bar{flex:none;order:1;width:240px;margin:0}.header-progress{flex:none;order:2}.theme-toggle{order:3}}.bottom-nav{z-index:6;background:var(--surface);border-top:3px solid var(--border-strong);padding-bottom:env(safe-area-inset-bottom,0px);position:fixed;bottom:0;left:0;right:0}.bottom-nav-inner{grid-template-columns:repeat(4,1fr);max-width:640px;margin:0 auto;display:grid}.bottom-nav a{color:var(--ink-muted);flex-direction:column;align-items:center;gap:3px;padding:10px 4px 12px;font-size:13px;font-weight:600;text-decoration:none;display:flex}.bottom-nav a svg{width:22px;height:22px}.bottom-nav a[aria-current=page]{background:var(--yellow);color:#111418;font-weight:800}.site-footer{width:100%;max-width:640px;padding:0 16px calc(84px + env(safe-area-inset-bottom,0px));color:var(--ink-muted);flex-wrap:wrap;flex:none;justify-content:center;align-items:center;margin:28px auto 0;font-size:12.5px;display:flex}.site-footer a{padding:8px 2px;text-decoration:none}.site-footer a+a:before{content:"·";margin:0 8px;display:inline-block}.site-footer a:hover{color:var(--ink);text-decoration:underline}.site-footer .site-footer-feedback{text-align:center;color:var(--ink);flex-basis:100%;font-size:14px;font-weight:700;text-decoration:underline}.site-footer .site-footer-feedback+a:before{content:none}.toolbar{padding:14px 0 6px}.search{border:2px solid var(--border);background:var(--surface);width:100%;color:var(--ink);font:inherit;border-radius:10px;padding:12px 14px;font-size:16px}.search:focus{border-color:var(--border-strong);outline:none}.chip-row-wrap{margin:0 -16px;position:relative}.chip-row{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--border) transparent;gap:8px;padding:12px 16px 10px;display:flex;overflow-x:auto}.chip-row::-webkit-scrollbar{height:4px}.chip-row::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.chip{background:var(--chip);cursor:pointer;white-space:nowrap;border:2px solid #0000;border-radius:999px;flex:none;padding:7px 13px 5px;font-size:14px;font-weight:700}.chip[aria-pressed=true]{background:var(--ink);color:var(--bg)}.chip-arrow{cursor:pointer;z-index:1;width:56px;color:var(--ink);border:0;align-items:center;padding:0;display:flex;position:absolute;top:0;bottom:6px}.chip-arrow span{background:var(--surface);border:2px solid var(--border-strong);border-radius:50%;place-items:center;width:30px;height:30px;padding-bottom:2px;font-size:20px;font-weight:800;line-height:1;display:grid}.chip-arrow-left{background:linear-gradient(90deg, var(--bg) 45%, transparent);justify-content:flex-start;padding-left:8px;left:0}.chip-arrow-right{background:linear-gradient(270deg, var(--bg) 45%, transparent);justify-content:flex-end;padding-right:8px;right:0}.info-row{color:var(--ink-muted);justify-content:space-between;align-items:center;gap:10px;padding:8px 0;font-size:14px;display:flex}.info-row-center{justify-content:center}.info-row-title{color:var(--ink)}.switch{cursor:pointer;color:var(--ink);background:0 0;border:0;align-items:center;gap:8px;padding:4px 0;font-weight:700;display:flex}.switch-track{background:var(--border);border-radius:12px;flex:none;width:42px;height:24px;transition:background .2s;position:relative}.switch-track:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:3px;left:3px}.switch[aria-checked=true] .switch-track{background:var(--green)}.switch[aria-checked=true] .switch-track:after{transform:translate(18px)}.card{background:var(--surface);border:2px solid var(--border-strong);border-radius:10px;margin:12px 0;padding:16px 16px 14px}.q-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.q-number{color:#111418;flex:none;place-items:center;width:40px;height:40px;font-size:12px;font-weight:800;display:grid;position:relative}.q-number:before{content:"";background:var(--yellow);border:2px solid #111418;position:absolute;inset:6px;transform:rotate(45deg)}.q-number span{position:relative;top:1px}.q-topic{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);font-size:13px;font-weight:700}.badge{border-radius:999px;margin-left:auto;padding:3px 8px 1px;font-size:12px;font-weight:800}.badge-ok{background:var(--green-bg);color:var(--green)}.badge-bad{background:var(--red-bg);color:var(--red)}.q-text{margin:0 0 12px;font-size:18px;font-weight:700;line-height:1.35}.q-figure{border:1px solid var(--border);background:#fff;border-radius:8px;justify-content:center;margin:0 0 14px;padding:10px;display:flex}.q-figure img{max-width:100%;height:auto;max-height:220px;display:block}.q-figure-wide img{max-height:none}.options{flex-direction:column;gap:8px;display:flex}.option{text-align:left;border:2px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;align-items:flex-start;gap:12px;width:100%;padding:10px 12px 9px;font-size:16px;line-height:1.35;display:flex}.option-letter{border:2px solid var(--border-strong);border-radius:4px;flex:none;place-items:center;width:28px;height:28px;padding-top:2px;font-size:14px;font-weight:800;line-height:1;display:grid}.option-text{padding-top:3px}.option-selected{border-color:var(--border-strong);background:var(--chip)}.option-correct{border:3px solid var(--green);background:var(--green-bg);padding:9px 11px 8px;font-weight:700}.option-correct .option-letter{background:var(--green);border-color:var(--green);color:#fff}.option-wrong{border-color:var(--red);background:var(--red-bg)}.option-wrong .option-letter{background:var(--red);border-color:var(--red);color:#fff}.option-dim{opacity:.55}.option:disabled{cursor:default;color:inherit}.card-static .option{cursor:default}.empty{text-align:center;color:var(--ink-muted);padding:40px 10px}.panel{background:var(--surface);border:2px solid var(--border-strong);border-radius:10px;margin:14px 0;padding:18px 16px}.panel h2{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;margin:0 0 6px;font-size:22px;font-weight:400;line-height:1.15}.panel p{color:var(--ink-muted);margin:0 0 14px;font-size:15px}.field-label{text-transform:uppercase;letter-spacing:.08em;margin:14px 0 8px;font-size:13px;font-weight:800;display:block}.segmented{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.segmented button{border:2px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:10px 4px 8px;font-size:14px;font-weight:700}.segmented button[aria-pressed=true]{border-color:var(--border-strong);background:var(--ink);color:var(--bg)}select{width:100%;font:inherit;border:2px solid var(--border);background:var(--surface);color:var(--ink);border-radius:8px;padding:11px 12px;font-size:16px}.btn{width:100%;font-family:var(--font-display);letter-spacing:.03em;text-transform:uppercase;cursor:pointer;background:var(--button);color:var(--button-text);text-align:center;border:0;border-radius:10px;margin-top:16px;padding:15px 12px 13px;font-size:17px;text-decoration:none;display:block}.btn-secondary{color:var(--ink);border:2px solid var(--border-strong);font-family:var(--font-body);text-transform:none;letter-spacing:0;background:0 0;font-weight:700}.btn:disabled{opacity:.4;cursor:default}.btn-row{grid-template-columns:1fr 2fr;gap:8px;display:grid}.btn-row .btn{margin-top:14px}.q-top{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;align-items:center;gap:8px;padding:14px 2px 0;font-size:13px;font-weight:700;display:flex}.q-top b{color:var(--ink)}.feedback{border-radius:6px;margin-top:12px;padding:10px 12px 8px;font-size:15px;font-weight:800}.feedback-ok{background:var(--green);color:#fff}.feedback-bad{background:var(--red);color:#fff}.dots{flex-wrap:wrap;gap:5px;margin:12px 0 0;display:flex}.dots button{border:2px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;width:32px;height:32px;padding-top:2px;font-size:12px;font-weight:800}.dots button.dot-done{background:var(--chip)}.dots button.dot-current{border-color:var(--border-strong)}.dots button.dot-ok{background:var(--green-bg);border-color:var(--green);color:var(--green)}.dots button.dot-bad{background:var(--red-bg);border-color:var(--red);color:var(--red)}.score{font-family:var(--font-display);margin:8px 0 2px;font-size:60px;line-height:1}.score small{color:var(--ink-muted);font-size:24px}.verdict{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;border-radius:4px;margin:8px 0 4px;padding:6px 12px 4px;font-size:15px;display:inline-block}.verdict-ok{background:var(--green);color:#fff}.verdict-bad{background:var(--red);color:#fff}.time-info{color:var(--ink-muted);margin:4px 0 0;font-size:14px;font-weight:600}.panel .result-message{margin-top:8px}.feedback-link{text-align:center;color:var(--ink-muted);padding:14px 0 2px;font-size:14px;font-weight:700;display:block}.feedback-link:hover{color:var(--ink)}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0 0;display:grid}.stats div{background:var(--bg);text-align:center;border-radius:8px;padding:10px 8px 8px}.stats b{font-family:var(--font-display);font-size:24px;font-weight:400;line-height:1.1;display:block}.stats span{color:var(--ink-muted);font-size:12px}.link-button{color:var(--ink-muted);cursor:pointer;background:0 0;border:0;margin:0 auto;padding:12px 0;font-size:14px;text-decoration:underline;display:block}.confirm-box{border:2px solid var(--red);background:var(--red-bg);border-radius:8px;margin-top:12px;padding:12px;font-size:15px}.confirm-actions{gap:8px;margin-top:10px;display:flex}.confirm-actions button{cursor:pointer;border:2px solid var(--border-strong);background:var(--surface);border-radius:8px;flex:1;padding:10px;font-weight:700}.confirm-actions button.danger{background:var(--red);border-color:var(--red);color:#fff}.shuffle-setting{border-top:1px solid var(--border);margin:14px 0 0;padding:10px 0 0}.shuffle-setting .switch{justify-content:space-between;width:100%;font-size:16px}.shuffle-setting small{color:var(--ink-muted);margin-top:2px;font-size:13.5px;display:block}.topic-list{flex-direction:column;gap:14px;margin:12px 0 0;padding:0;list-style:none;display:flex}.topic-row{justify-content:space-between;align-items:baseline;gap:10px;font-size:16px;line-height:1.25;display:flex}.topic-score{font-variant-numeric:tabular-nums;flex:none;font-weight:800}.topic-score-ok{color:var(--green)}.topic-bar{background:var(--chip);border-radius:4px;height:8px;margin-top:5px;overflow:hidden}.topic-bar i{background:var(--green);border-radius:4px;height:100%;display:block}.topic-guides{color:var(--ink-muted);margin-top:6px;font-size:14px}.topic-guides a{color:var(--ink);font-weight:700}.history-list{margin:0;padding:0;list-style:none}.history-list>li{border-top:1px solid var(--border)}.history-head{align-items:center;gap:10px;padding:11px 0 9px;font-size:15px;list-style:none;display:flex}.history-head::-webkit-details-marker{display:none}summary.history-head{cursor:pointer}.history-date{min-width:0;color:var(--ink-muted);flex:1;font-size:14px}.history-score{font-variant-numeric:tabular-nums}.history-chevron{text-align:center;width:12px;color:var(--ink-muted);flex:none;font-size:20px;line-height:1;transition:transform .15s}details[open] .history-chevron{transform:rotate(90deg)}.history-body{padding:0 0 14px}.history-body .time-info{margin:0}.readiness{flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0;display:flex}.readiness-tag{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;border:2px solid;border-radius:4px;padding:6px 12px 4px;font-size:15px;line-height:1.2}.readiness-ready{background:var(--green-bg);color:var(--green);border-color:var(--green)}.readiness-almost{background:var(--yellow);color:var(--on-yellow);border-color:var(--on-yellow)}.readiness-not-yet{background:var(--chip);color:var(--ink);border-color:var(--border-strong)}.readiness-marks{gap:4px;display:flex}.readiness-marks i{border:2px solid var(--border);border-radius:5px;place-items:center;width:24px;height:24px;font-size:13px;font-style:normal;font-weight:800;line-height:1;display:grid}.readiness-marks .mark-ok{background:var(--green-bg);border-color:var(--green);color:var(--green)}.readiness-marks .mark-bad{background:var(--red-bg);border-color:var(--red);color:var(--red)}.score-chart{width:100%;max-width:440px;height:auto;margin:0 auto;display:block}.score-chart text{font-family:var(--font-body);fill:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:11px}.score-chart .chart-pass-label{fill:var(--ink);font-weight:800}.chart-grid{stroke:var(--border);stroke-width:1px}.chart-pass-line{stroke:var(--ink-muted);stroke-width:1.5px;stroke-dasharray:4 4}.chart-line{fill:none;stroke:var(--ink);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart-point{stroke:var(--surface);stroke-width:2px}.chart-point-ok{fill:var(--green)}.chart-point-bad{fill:var(--red)}.timer{background:var(--surface);border:2px solid var(--border-strong);font-variant-numeric:tabular-nums;color:var(--ink);letter-spacing:0;border-radius:6px;align-items:center;gap:6px;padding:5px 10px 3px;font-size:15px;font-weight:800;display:inline-flex}.timer svg{width:16px;height:16px;margin-top:-2px}.timer-warning{background:var(--red);border-color:var(--red);color:#fff}.timer-warning svg{animation:1s steps(2,end) infinite blink}@keyframes blink{50%{opacity:.35}}.toast{left:50%;top:calc(env(safe-area-inset-top,0px) + 90px);z-index:9;background:var(--red);color:#fff;text-align:center;border-radius:8px;width:max-content;max-width:calc(100% - 32px);padding:11px 16px 9px;font-size:15px;font-weight:800;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #00000040}.page-title{padding:18px 2px 2px}.page-title h1{font-family:var(--font-display);text-transform:uppercase;margin:0 0 4px;font-size:26px;font-weight:400;line-height:1.1}.page-title p{color:var(--ink-muted);margin:0;font-size:15px}.guide-item{text-align:left;background:var(--surface);border:2px solid var(--border-strong);border-radius:10px;align-items:center;gap:12px;width:100%;margin:10px 0;padding:12px 14px 10px;text-decoration:none;display:flex}.guide-item-text{flex:1;min-width:0}.guide-item-text b{font-size:17px;line-height:1.25;display:block}.guide-item-text small{color:var(--ink-muted);margin-top:2px;font-size:14px;display:block}.guide-item-chevron{color:var(--ink-muted);font-size:22px;line-height:1}.back-link{color:var(--ink-muted);padding:14px 0 4px;font-size:15px;font-weight:700;text-decoration:none;display:inline-block}.guide-title{font-family:var(--font-display);text-transform:uppercase;margin:2px 0 6px;font-size:26px;font-weight:400;line-height:1.15}.guide-practice{margin-top:20px}.guide-lead,.guide-text{margin:6px 0 10px;font-size:16px}.guide-heading{margin:22px 0 4px;font-size:18px}.guide-figure{background:var(--surface);border:2px solid var(--border-strong);border-radius:10px;margin:12px 0;padding:8px}.guide-figure svg{border-radius:6px;width:100%;height:auto;display:block}.guide-figure figcaption{margin:9px 4px 3px;font-size:15px;line-height:1.4}.guide svg text{font-family:var(--font-body)}.guide svg .label{fill:var(--ink);font-size:13px;font-weight:800}.guide svg .label-on-road{fill:#fff;opacity:.92;font-size:12px;font-weight:700}.guide svg .label-dark{fill:#1b1f24;font-size:13px;font-weight:800}.guide svg .label-dark-sub{fill:#3b4148;font-size:12px;font-weight:600}.guide svg .bracket{stroke:var(--ink-muted);fill:none;stroke-width:1.6px}.guide svg .leader{stroke:#1b1f24;stroke-width:1.4px;fill:none;stroke-dasharray:3 3}.guide-definitions{background:var(--surface);border:2px solid var(--border-strong);border-radius:10px;margin:12px 0;padding:12px 14px 4px}.guide-definitions dt{font-weight:800}.guide-definitions dd{color:var(--ink-muted);margin:0 0 10px;font-size:15px}.guide-tip{border-left:6px solid var(--yellow);background:var(--surface);border-radius:0 8px 8px 0;margin:12px 0;padding:11px 13px 9px;font-size:15px;line-height:1.45}.speed-list{flex-direction:column;gap:8px;margin:10px 0;display:flex}.speed-row{background:var(--surface);border:2px solid var(--border-strong);border-radius:10px;align-items:center;gap:12px;padding:8px 12px 8px 8px;display:flex}.speed-sign{flex:none;width:58px;height:58px}.speed-text{flex:1;min-width:0}.speed-text b{font-size:17px;display:block}.speed-text span{color:var(--ink-muted);font-size:14px;display:block}.speed-text i{background:var(--red);opacity:.8;border-radius:3px;height:6px;margin-top:6px;display:block}.guide-tiles{grid-template-columns:1fr 1fr;gap:8px;margin:10px 0;display:grid}.guide-tiles div{background:var(--surface);border:2px solid var(--border-strong);border-radius:10px;padding:11px 12px 9px}.guide-tiles b{font-family:var(--font-display);font-size:23px;font-weight:400;line-height:1.1;display:block}.guide-tiles span{color:var(--ink-muted);margin-top:3px;font-size:13.5px;line-height:1.3;display:block}.traffic-light{background:var(--surface);border:2px solid var(--border-strong);border-radius:10px;margin:12px 0;overflow:hidden}.traffic-light-row{align-items:stretch;gap:14px;display:flex}.traffic-light-row+.traffic-light-row>div{border-top:1px solid var(--border)}.traffic-light-lamp{background:#1b1f24;flex:none;place-items:center;width:76px;padding:10px 0;display:grid}.traffic-light-lamp i{border-radius:50%;width:48px;height:48px;display:block;box-shadow:0 0 16px #ffffff2e}.traffic-light-row>div{flex:1;padding:12px 12px 10px 0}.traffic-light-row b{font-size:17px;display:block}.traffic-light-row span{color:var(--ink-muted);font-size:15px;line-height:1.4;display:block}.sign-list{flex-direction:column;gap:8px;margin:10px 0;display:flex}.sign-list>div{background:var(--surface);border:2px solid var(--border-strong);border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.sign-list p{margin:0;font-size:15px;line-height:1.4}.signal-icon{flex:none;width:48px;height:48px}.sign-shape{flex:none;width:56px;height:56px}.guide-list{background:var(--surface);border:2px solid var(--border-strong);border-radius:10px;margin:10px 0;padding:12px 14px 12px 32px;font-size:15px}.guide-list li{margin:0 0 7px}.guide-list li:last-child{margin:0}.arm-signals{grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0;display:grid}.arm-signals figure{background:var(--surface);border:2px solid var(--border-strong);border-radius:10px;margin:0;padding:8px 8px 10px}.arm-signals svg{background:#e6eef5;border-radius:6px;width:100%;height:auto;display:block}.arm-signals figcaption{color:var(--ink-muted);margin-top:7px;font-size:13px;line-height:1.35}.arm-signals figcaption b{color:var(--ink)}@media (max-width:370px){.arm-signals{grid-template-columns:1fr 1fr}}.welcome-hero{text-align:center;padding:26px 4px 4px}.welcome-sign{place-items:center;width:96px;height:96px;margin:0 auto 14px;display:grid;position:relative}.welcome-sign:before{content:"";background:var(--yellow);border:4px solid #111418;border-radius:6px;position:absolute;inset:14px;transform:rotate(45deg)}.welcome-sign span{font-family:var(--font-display);color:#111418;padding-top:4px;font-size:34px;line-height:1;position:relative}.welcome-hero h1{font-family:var(--font-display);text-transform:uppercase;margin:0 0 8px;font-size:28px;font-weight:400;line-height:1.1}.welcome-hero p{max-width:30em;color:var(--ink-muted);margin:0 auto;font-size:16px}.welcome-steps{margin:18px 0 0;padding:0;list-style:none}.welcome-step{background:var(--surface);border:2px solid var(--border-strong);border-radius:10px;align-items:center;gap:12px;margin:10px 0;padding:12px 14px 10px;text-decoration:none;display:flex}.welcome-step-icon{background:var(--yellow);color:#111418;border-radius:8px;flex:none;place-items:center;width:40px;height:40px;display:grid}.welcome-step-icon svg{width:22px;height:22px}.welcome-step-text{flex:1;min-width:0}.welcome-step-text b{font-size:17px;line-height:1.25;display:block}.welcome-step-text b small{color:var(--ink-muted);font-size:15px}.welcome-step-text>span{color:var(--ink-muted);margin-top:2px;font-size:14px;display:block}.welcome-note{text-align:center;color:var(--ink-muted);margin:14px 0 0;font-size:13.5px}.school-promo{border:2px dashed var(--border);border-left:6px solid var(--yellow);border-radius:10px;align-items:center;gap:10px;margin:18px 0 0;padding:10px 12px 9px;text-decoration:none;display:flex}.school-promo-text{flex:1;min-width:0}.school-promo-text b{font-size:15px;display:block}.school-promo-text span{color:var(--ink-muted);margin-top:1px;font-size:13.5px;display:block}.legal{font-size:16px}.legal h2{margin:22px 0 4px;font-size:18px;line-height:1.25}.legal p,.legal ul{margin:6px 0 10px}.legal ul{padding-left:22px}.legal li{margin:0 0 6px}.legal a{overflow-wrap:anywhere;font-weight:700}.legal-summary{background:var(--surface);border:2px solid var(--border-strong);border-left:6px solid var(--yellow);border-radius:10px;margin:14px 0;padding:12px 14px 4px}.legal-summary h2{margin-top:0}.legal-more{color:var(--ink-muted);margin-top:22px;font-size:15px}.copy-email a{overflow-wrap:anywhere;color:var(--ink);font-size:19px;font-weight:800;display:block}.copy-email .btn{margin-top:12px}.panel-highlight{border-left:6px solid var(--yellow)}.panel p b{color:var(--ink)}.error-box{margin:24px 0}:root{--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}}@keyframes pop{40%{transform:scale(1.04)}}@keyframes shake{20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}@keyframes nav-pop{40%{transform:translateY(-3px)scale(1.15)}}@keyframes sign-drop{0%{opacity:0;transform:translateY(-36px)rotate(-14deg)}55%{opacity:1;transform:translateY(0)rotate(7deg)}75%{transform:rotate(-3deg)}90%{transform:rotate(1deg)}}@keyframes stamp{0%{opacity:0;transform:scale(1.7)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-16px)}}@keyframes stripes{to{background-position:22.63px 0}}.page>*{animation:rise .3s var(--ease-out) backwards}.stagger>*{animation:rise .35s var(--ease-out) backwards;animation-delay:.32s}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:40ms}.stagger>:nth-child(3){animation-delay:80ms}.stagger>:nth-child(4){animation-delay:.12s}.stagger>:nth-child(5){animation-delay:.16s}.stagger>:nth-child(6){animation-delay:.2s}.stagger>:nth-child(7){animation-delay:.24s}.stagger>:nth-child(8){animation-delay:.28s}.bottom-nav a{transition:background-color .2s,color .2s}.bottom-nav a[aria-current=page] svg{animation:nav-pop .35s var(--ease-out)}.btn,.option,.guide-item,.welcome-step,.school-promo,.chip,.segmented button,.dots button,.theme-toggle,.confirm-actions button,.bottom-nav a{transition:transform .12s var(--ease-out), box-shadow .15s, background-color .2s, border-color .2s, color .2s}.btn:not(:disabled):active,.option:not(:disabled):active,.guide-item:active,.welcome-step:active,.school-promo:active,.chip:active,.segmented button:active,.dots button:active,.theme-toggle:active,.confirm-actions button:active{transform:scale(.97)}@media (hover:hover){.guide-item:hover,.welcome-step:hover{box-shadow:4px 4px 0 var(--border-strong);transform:translate(-2px,-2px)}.guide-item:hover .guide-item-chevron,.welcome-step:hover .guide-item-chevron,.school-promo:hover .guide-item-chevron{color:var(--ink)}.school-promo:hover{border-color:var(--border-strong)}}.q-top+.card{animation:slide-in .3s var(--ease-out) backwards}.card:not(.card-static) .option-correct{animation:pop .4s var(--ease-spring)}.option-wrong{animation:.3s ease-in-out shake}.feedback{animation:rise .25s var(--ease-out) backwards}.welcome-sign{transform-origin:50% 0;animation:sign-drop .9s var(--ease-out) backwards}.progress-bar-moving i{animation:.6s linear 2 stripes}.score{animation:stamp .45s var(--ease-spring) backwards}.verdict{animation:stamp .4s var(--ease-spring) .35s backwards}.toast{animation:toast-in .3s var(--ease-out) backwards}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
