:root{--ink:#1b2950;--soft:#64748b;--paper:#f5f7fb;--card:#fff;--accent:#ef3340;--accent-soft:#ffeff0;--ok:#15803d;--ok-soft:#f0fdf4;--bad:#b91c1c;--bad-soft:#fef2f2;--line:#e4e9f0;--select:#1b2950;--select-soft:#eef1f8;--shadow:0 1px 2px #1b29500f, 0 6px 18px #1b295012;color:var(--ink);background:var(--paper);font-synthesis:none;-webkit-tap-highlight-color:transparent;font:17px/1.5 system-ui,Segoe UI,Roboto,Noto Sans Malayalam,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--paper);margin:0}html[lang=ml] body{overflow-wrap:break-word;line-height:1.65}html[lang=ml] h1{letter-spacing:0;font-size:clamp(1.4rem,4.2vw,2rem);line-height:1.35}html[lang=ml] .kiosk h1{font-size:clamp(1.08rem,3.4vw,1.3rem);line-height:1.5}html[lang=ml] .prompt{line-height:1.55}html[lang=ml] .answer{font-weight:550}html[lang=ml] .option{font-size:.97rem;line-height:1.5}.en-line{color:var(--soft);margin-top:4px;font-size:.86rem;font-weight:450;line-height:1.4;display:block}.answer .en-line{color:#3f8f5c}.option.selected .en-line{color:var(--ink);opacity:.75}.sign-grid .en-line{font-size:.78rem}.en-toggle{min-height:40px;color:var(--ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;margin:0 0 12px;padding:6px 2px;font-size:.92rem;font-weight:550;display:inline-flex}.en-toggle .switch{background:#cbd5e1;border-radius:999px;flex:none;width:40px;height:24px;transition:background-color .15s;position:relative}.en-toggle .switch:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0003}.en-toggle[aria-checked=true] .switch{background:var(--ok)}.en-toggle[aria-checked=true] .switch:after{transform:translate(16px)}.en-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:8px}.kiosk .en-toggle{margin:-6px 0 8px}button,input,select{font:inherit;color:inherit}a{color:var(--accent)}h1,h2{letter-spacing:-.02em;margin:0 0 .45rem;font-weight:650;line-height:1.2}h1{text-wrap:balance;max-width:36rem;font-size:clamp(1.5rem,4.6vw,2.2rem)}h2{font-size:1.2rem}p{margin:0 0 .8rem}img{max-width:100%}.shell{max-width:920px;margin:0 auto;padding:14px 16px 104px}@media (width>=640px){.shell{padding-left:24px;padding-right:24px}}.topbar{z-index:6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f5f7fbeb;border-bottom:1px solid #0000;align-items:center;gap:12px;margin:-14px -16px 20px;padding:10px 16px;display:flex;position:sticky;top:0}@media (width>=640px){.topbar{margin-left:-24px;margin-right:-24px;padding-left:24px;padding-right:24px}}.brand{color:inherit;align-items:center;gap:10px;min-width:0;margin-right:auto;text-decoration:none;display:flex}.brand strong{font-size:1rem;display:block}.brand small{color:var(--soft);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;display:block;overflow:hidden}.mark{background:url(/favicon.svg) 50%/cover no-repeat;border-radius:9px;flex:none;width:32px;height:32px}.top-links{gap:4px;display:flex}.top-links a{color:var(--ink);border-radius:999px;padding:8px 14px;font-weight:550;text-decoration:none;transition:background-color .15s}.top-links a:hover{background:var(--select-soft)}.top-links a.active{background:var(--accent-soft);color:var(--accent)}.lang{border:1px solid var(--line);background:var(--card);border-radius:999px;flex:none;display:flex;overflow:hidden}.lang button{cursor:pointer;background:0 0;border:0;min-height:38px;padding:6px 12px;font-size:.9rem}.lang button.on{background:var(--accent);color:#fff}@media (width<=380px){.brand small{display:none}.lang button{padding:6px 9px}}.kicker{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px;font-size:.78rem;font-weight:650}html[lang=ml] .kicker{text-transform:none;letter-spacing:0;font-size:.85rem}.lede{max-width:40rem;color:var(--soft)}.quiet,.why{color:var(--soft)}.row{flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0;display:flex}.btn,.text-btn{text-align:center;border:1px solid var(--line);background:var(--card);min-height:44px;color:var(--ink);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:10px 16px;font-style:normal;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,transform .1s,box-shadow .15s;display:inline-flex}.btn:hover:not(:disabled){box-shadow:var(--shadow);border-color:#cbd3df}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:#d92633;border-color:#d92633}.btn-ghost{background:0 0}.btn-lg{min-height:52px;padding:12px 22px;font-size:1.02rem}.btn-block{width:100%}@media (width>=640px){.btn-block{width:auto;min-width:240px}}.btn:disabled{opacity:.45;cursor:not-allowed}.text-btn{color:var(--soft);background:0 0;border:0;padding-left:0;padding-right:0;font-weight:500}.text-btn:hover{color:var(--ink);text-decoration:underline}.card,.review li,.qbank li,.kiosk,.result,.rule-strip,.mock-card,.course-summary{background:var(--card);border:1px solid var(--line);border-radius:16px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.banners{margin:0 0 10px;position:relative}.banner-viewport{touch-action:pan-y;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow);border-radius:20px;overflow:hidden}.banner-track{transition:transform .55s cubic-bezier(.4,.1,.2,1);display:flex}.promo{color:#fff;background:radial-gradient(130% 150% at 100% 0%, #2f447c 0%, var(--ink) 60%);flex:0 0 100%;align-items:center;gap:14px;height:196px;padding:16px 16px 16px 20px;display:flex;overflow:hidden}@media (width>=640px){.promo{height:200px;padding:22px 28px}}.banner-text{flex:1;min-width:0}.banner-kicker{letter-spacing:.06em;text-transform:uppercase;opacity:.8;margin:0 0 6px;font-size:.74rem;font-weight:700}html[lang=ml] .banner-kicker{text-transform:none;letter-spacing:0;font-size:.82rem}.promo h2{text-wrap:balance;margin:0 0 6px;font-size:clamp(1.12rem,4.4vw,1.6rem);line-height:1.22}html[lang=ml] .promo h2{letter-spacing:0;font-size:clamp(1rem,3.9vw,1.35rem);line-height:1.4}html[lang=ml] .banner-body{font-size:.86rem;line-height:1.55}.banner-body{opacity:.88;max-width:34rem;margin:0;font-size:.92rem;line-height:1.45}.banner-art{flex:none;place-items:center;width:clamp(80px,25vw,136px);display:grid}.banner-svg{aspect-ratio:1;background:#fff;border-radius:50%;width:100%;padding:12%;display:block;box-shadow:0 6px 16px #00000038}.banner-road{aspect-ratio:1;background:#fff;border-radius:50%;width:100%;display:block;position:relative;overflow:hidden;box-shadow:0 6px 16px #00000038}.banner-road:before{content:"";background:#3a4664;height:22%;position:absolute;bottom:22%;left:0;right:0}.banner-road:after{content:"";background:repeating-linear-gradient(90deg,#fff 0 8px,#0000 8px 16px);height:2px;animation:.6s linear infinite road-scroll;position:absolute;bottom:calc(33% - 1px);left:0;right:0}.banner-car{z-index:1;width:72%;position:absolute;bottom:33%;left:14%}@keyframes road-scroll{0%{background-position:0 0}to{background-position:-16px 0}}.banner-dots{justify-content:center;gap:2px;margin-top:4px;display:flex}.banner-dots button{cursor:pointer;background:0 0;border:0;place-items:center;width:24px;height:24px;padding:0;display:grid}.banner-dots button:before{content:"";background:#c5cddb;border-radius:999px;width:8px;height:8px;transition:width .25s,background-color .25s}.banner-dots button.on:before{background:var(--accent);width:22px}@media (width<=380px){.promo{padding:14px 12px 14px 16px}.banner-body{font-size:.86rem}}@media (prefers-reduced-motion:reduce){.banner-track{transition:none}.banner-road:after{animation:none}}.mock-card{background:linear-gradient(160deg, #fff 40%, var(--accent-soft));color:inherit;border-color:#ffd0d4;align-items:center;gap:14px;margin:8px 0 16px;padding:16px 18px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.mock-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.mock-card-text{flex:1;gap:2px;min-width:0;display:grid}.mock-card-text h2{margin:0;font-size:1.1rem}.mock-card-text p{margin:0}.mock-card-text .quiet{font-size:.9rem}.mock-card-text .mock-score{align-items:center;gap:8px;margin:2px 0;display:flex}.mock-score strong{font-size:1.5rem;line-height:1.2}.mock-card .btn{flex:none}.mode-icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:12px;flex:none;place-items:center;display:grid}.mode-svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}@media (width<=560px){.mock-card{flex-wrap:wrap}.mock-card-text{flex-basis:calc(100% - 58px)}.mock-card .btn{width:100%}}.course-summary{margin:0 0 14px;padding:14px 16px 6px}.course-summary p{flex-wrap:wrap;justify-content:space-between;gap:2px 12px;margin:0;display:flex}.course-summary span{color:var(--soft);font-size:.9rem}.course-summary{padding-bottom:14px}.course-summary .bar{margin-bottom:4px}.summary-resume{background:var(--select-soft);color:var(--ink);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding:10px 12px;font-weight:600;text-decoration:none;display:flex}.summary-resume span{color:var(--ink);min-width:0;font-size:.95rem}.summary-resume .btn{flex:none;min-height:40px;padding:8px 16px}.badge{border-radius:999px;padding:2px 10px;font-size:.78rem;font-style:normal;font-weight:650}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-bad{background:var(--bad-soft);color:var(--bad)}.tabs{background:#e9edf4;border-radius:14px;grid-template-columns:1fr 1fr;gap:4px;margin:16px 0 12px;padding:4px;display:grid}.tabs button{min-height:46px;color:var(--soft);cursor:pointer;background:0 0;border:0;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:8px 10px;font-weight:600;transition:background-color .15s,color .15s,box-shadow .15s;display:flex}.tabs button small{background:#1b295014;border-radius:999px;padding:1px 8px;font-size:.75rem}.tabs button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px #1b29501f}.tabs button.on small{background:var(--accent-soft);color:var(--accent)}@media (width>=640px){.tabs{max-width:440px}}@media (width<=420px){.tabs button{white-space:nowrap;gap:6px;font-size:.92rem}}html[lang=ml] .tabs button{white-space:normal;line-height:1.25}.tabs-3{grid-template-columns:repeat(3,1fr)}@media (width>=640px){.tabs-3{max-width:560px}}@media (width<=460px){.tabs-3 button small{display:none}.tabs-3 button{padding:8px 6px}}.search{z-index:3;background:var(--card);border:1px solid var(--line);border-radius:14px;align-items:center;gap:8px;margin-bottom:14px;padding:0 14px;display:flex;position:sticky;top:62px;box-shadow:0 4px 12px #f5f7fbe6}.search:focus-within{border-color:var(--ink)}.search svg{fill:none;width:20px;height:20px;stroke:var(--soft);stroke-width:2px;stroke-linecap:round;flex:none}.search input{background:0 0;border:0;outline:0;flex:1;min-width:0;min-height:50px;font-size:1rem}.search input::-webkit-search-cancel-button{display:none}.search .text-btn{min-height:40px}.qbank{gap:10px;margin:0;padding:0;list-style:none;display:grid}@media (width>=860px){.qbank{grid-template-columns:1fr 1fr;align-items:start}}.qbank li,.review li{padding:14px 16px}.qnum{color:var(--accent);letter-spacing:.04em;margin:0 0 6px;font-size:.78rem;font-weight:700}.prompt{margin-bottom:8px;font-weight:600}.answer{background:var(--ok-soft);color:var(--ok);border-left:3px solid var(--ok);border-radius:10px;gap:2px;margin:0;padding:10px 12px;font-weight:600;display:grid}.answer>span:not(.en-line){text-transform:uppercase;letter-spacing:.06em;color:#3f8f5c;font-size:.72rem;font-weight:700}html[lang=ml] .answer>span:not(.en-line){text-transform:none;letter-spacing:0;font-size:.8rem}.qbank .why,.review .why{margin:8px 0 0;font-size:.92rem}.more{justify-items:center;gap:6px;margin:20px 0 8px;display:grid}.more .quiet{margin:0;font-size:.9rem}.more .btn-lg{width:100%;max-width:360px}.empty{text-align:center;color:var(--soft);background:var(--card);border:1px dashed var(--line);border-radius:16px;padding:28px 16px}.sign-grid{grid-template-columns:repeat(auto-fill,minmax(min(46%,132px),1fr));gap:10px;margin:4px 0 0;padding:0;list-style:none;display:grid}.sign-grid li{background:var(--card);border:1px solid var(--line);text-align:center;border-radius:14px;align-content:start;justify-items:center;gap:8px;margin:0;padding:14px 10px;font-size:.88rem;font-weight:550;line-height:1.3;display:grid}.sign-grid img{object-fit:contain;width:84px;height:84px}.rule-strip{grid-template-columns:repeat(3,1fr);margin:16px 0;display:grid;overflow:hidden}.rule-strip div{padding:14px 16px}.rule-strip div+div{border-left:1px solid var(--line)}.rule-strip b{font-size:clamp(1.3rem,5vw,1.7rem);display:block}.rule-strip span{color:var(--soft);font-size:.9rem}@media (width<=420px){.rule-strip div{padding:12px}.rule-strip span{font-size:.82rem;line-height:1.3;display:block}}.kiosk{max-width:720px;margin:0 auto;padding:16px}.kiosk h1{text-wrap:pretty;max-width:none;font-size:clamp(1.15rem,3.6vw,1.4rem)}.qhead{justify-content:space-between;align-items:center;gap:12px;display:flex}.qhead .kicker{margin:0}.total-left{color:var(--soft);margin:2px 0 0;font-size:.88rem}.total-left b{color:var(--ink);font-variant-numeric:tabular-nums}.timer{flex:none;width:64px;height:64px;position:relative}.timer svg{width:100%;height:100%}.timer strong{font-variant-numeric:tabular-nums;place-items:center;font-size:1.15rem;display:grid;position:absolute;inset:0}.timer circle{fill:none;stroke:#e2e8f0;stroke-width:6px}.timer circle:last-child{stroke:var(--accent);stroke-dasharray:176;stroke-linecap:round;transform-origin:36px 36px;transition:stroke-dashoffset .2s linear,stroke .2s;transform:rotate(-90deg)}.kiosk.urgent .timer strong{color:var(--bad)}.kiosk.urgent .timer circle:last-child{stroke:var(--bad)}.bar{background:var(--line);border-radius:999px;height:6px;margin:10px 0 14px;overflow:hidden}.bar span{border-radius:inherit;background:var(--accent);height:100%;transition:width .4s;display:block}@media (prefers-reduced-motion:reduce){.bar span{transition:none}}.road{--car:40px;--flag:20px;--lane:14px;height:34px;padding-right:calc(var(--flag) + 2px);margin:10px 0 14px;position:relative}.road-lane{left:0;right:calc(var(--flag) - 2px);height:var(--lane);background:#3a4664;border-radius:999px;position:absolute;bottom:2px;overflow:hidden;box-shadow:inset 0 -2px #0000002e}.road-lane:after{content:"";background:repeating-linear-gradient(90deg,#ffffffd9 0 10px,#0000 10px 20px);height:2px;margin-top:-1px;position:absolute;top:50%;left:8px;right:8px}.road-trail{width:calc(var(--car) / 2 + var(--share) * (100% - var(--car) - 2px));border-radius:inherit;background:linear-gradient(90deg,#ef334059,#ef3340d9);transition:width .6s cubic-bezier(.3,.7,.3,1);position:absolute;inset:0 auto 0 0}.road-car{bottom:calc(var(--lane) / 2 - 2px);left:calc(var(--share) * (100% - var(--car) - var(--flag)));width:var(--car);filter:drop-shadow(0 2px 2px #1b295040);transition:left .6s cubic-bezier(.3,.7,.3,1);position:absolute}.road-car-svg{width:100%;height:auto;animation:1.6s ease-in-out infinite car-bob;display:block}.road-done .road-car-svg{animation:none}.car-body{fill:var(--accent)}.car-glass{fill:#d7e6ff}.car-lamp{fill:#ffd25e}.car-tail{fill:#7f1d1d}.car-wheel{fill:#1b2950;stroke:#fff;stroke-width:1px}.car-hub{fill:#cbd5e1}.road-flag{width:var(--flag);height:auto;position:absolute;bottom:0;right:0}.road-done .road-flag{transform-origin:0 100%;animation:.9s ease-in-out 2 flag-wave}@keyframes car-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}@keyframes flag-wave{0%,to{transform:rotate(0)}50%{transform:rotate(-8deg)}}@media (prefers-reduced-motion:reduce){.road-car-svg,.road-flag{animation:none!important}}.options{gap:10px;margin:14px 0;display:grid}.option{text-align:left;border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:14px;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px 14px;transition:background-color .12s,border-color .12s,box-shadow .12s;display:flex}.option:hover{background:#fff;border-color:#b9c3d3}.option>span{border:1px solid var(--line);background:#fff;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:.85rem;font-weight:700;display:grid}.option.selected{border-color:var(--select);background:var(--select-soft);box-shadow:inset 0 0 0 1px var(--select)}.option.selected>span{background:var(--select);border-color:var(--select);color:#fff}.option>em{gap:2px;min-width:0;font-style:normal;display:grid}.keys-hint{color:var(--soft);font-size:.82rem;display:none}@media (hover:hover) and (pointer:fine){.keys-hint{display:block}}.action-bar{grid-template-columns:1fr 2fr;gap:8px;margin:12px 0;display:grid}@media (width<=859px){.action-bar{z-index:4;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffffff5;border-radius:0 0 16px 16px;margin:12px -16px -16px;position:sticky;bottom:0}}.end-ask{background:var(--bad-soft);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:12px;display:flex}.end-ask p{flex-basis:100%;margin:0}.end-ask button{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:10px;min-height:42px;padding:8px 14px}.end-ask button.danger,.btn-danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn-danger:hover:not(:disabled){background:#c81e2b;border-color:#c81e2b}.modal-backdrop{z-index:30;background:#0f172a8c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--card);width:min(420px,100%);box-shadow:var(--shadow);border-radius:16px;padding:20px}.modal h2{margin:0 0 6px;font-size:1.2rem}.modal p{color:var(--soft);margin:0}.modal-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;display:grid}html[lang=ml] .brand small{white-space:normal;font-size:.72rem;line-height:1.3}.kiosk>.text-btn{margin-top:8px}.result{align-items:center;gap:18px;padding:20px;display:flex}.result h1{margin-bottom:4px;font-size:clamp(1.4rem,4.5vw,1.9rem)}.result .quiet{margin:0}.result.passed{background:linear-gradient(160deg, #fff 40%, var(--ok-soft));border-color:#bbe5c8}.result.failed{background:linear-gradient(160deg, #fff 40%, var(--bad-soft));border-color:#f5c2c2}.result.passed h1{color:var(--ok)}.result.failed h1{color:var(--bad)}.score-ring{--tone:var(--bad);text-align:center;background:radial-gradient(closest-side, #fff 78%, transparent 79%), conic-gradient(var(--tone) calc(var(--share) * 100%), #e2e8f0 0);border-radius:50%;flex:none;place-content:center;width:104px;height:104px;display:grid}.passed .score-ring{--tone:var(--ok)}.score-ring b{font-size:2.1rem;line-height:1}.score-ring span{color:var(--soft);font-size:.85rem}@media (width<=420px){.result{text-align:center;flex-direction:column}}.result-actions .btn{flex:200px}.review-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:24px 0 12px;display:flex}.review-head h2{margin:0}.seg{background:#e9edf4;border-radius:12px;padding:3px;display:inline-flex}.seg button{min-height:38px;color:var(--soft);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:6px 12px;font-size:.9rem;font-weight:600}.seg button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px #1b29501f}.review{gap:10px;margin:0;padding:0;list-style:none;display:grid}.review .yours{margin-bottom:4px}.review .yours>span:not(.en-line){color:var(--soft)}.review .yours.ok{color:var(--ok)}.review .yours.bad{color:var(--bad)}.review .miss{box-shadow:inset 3px 0 0 var(--bad)}.review .hit{box-shadow:inset 3px 0 0 var(--ok)}.banner{background:#fff7ed;border-radius:10px;padding:10px 12px}.footnote,.tabbar{color:var(--soft)}.footnote{margin:10px 0 0;font-size:.8rem}.site-footer{border-top:1px solid var(--line);margin-top:32px;padding-top:20px}.site-footer>section+.footnote{margin-top:14px}.footer-contact{margin-top:18px}.site-footer h2{margin:0 0 4px;font-size:1rem}.site-footer section p{color:var(--soft);margin:0 0 6px;font-size:.9rem}.footer-mail{overflow-wrap:anywhere;align-items:center;gap:8px;min-height:40px;font-weight:650;text-decoration:none;display:inline-flex}.footer-mail:hover{text-decoration:underline}.footer-mail svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.footnote a{white-space:nowrap;font-weight:650}.tabbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));z-index:5;background:#fffffff2;grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--soft);border-radius:12px;justify-items:center;gap:2px;padding:6px 4px;font-size:.75rem;font-weight:600;text-decoration:none;display:grid}.tabbar a.active{color:var(--accent)}.tabbar a.active .nav-icon{background:var(--accent-soft)}.nav-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;border-radius:999px;width:52px;height:30px;padding:4px 14px}body.focus .tabbar,body.focus .site-footer,body.focus .top-links{display:none}body.focus .shell{padding-bottom:24px}@media (width>=860px){.tabbar{display:none}.shell{padding-bottom:32px}}@media (width<=859px){.top-links{display:none}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.figure{object-fit:contain;border-radius:10px;max-width:min(100%,280px);max-height:200px;margin:4px 0 14px;display:block}.figure-small{max-width:132px;max-height:104px;margin:0 0 10px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}@media (height<=760px){.kiosk .figure{max-height:150px}}.continue{color:#fff;background:radial-gradient(120% 140% at 100% 0%, #2c3f73 0%, var(--ink) 55%);border-radius:18px;margin:0 0 16px;padding:16px 18px 18px;box-shadow:0 10px 28px #1b295038}.continue .kicker{color:#ffb3b9;margin:0}.continue-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.continue-count{color:#c9d3ea;font-size:.88rem}.continue .road-lane{background:#55638a}.continue .road-flag rect:first-child{fill:#fff}.continue-body{color:#dfe6f5;margin:6px 0 12px}.continue-chapter{color:inherit;background:#ffffff14;border-radius:14px;align-items:center;gap:12px;margin-top:6px;padding:12px;text-decoration:none;transition:background-color .15s;display:flex}.continue-chapter:hover{background:#ffffff24}.continue-chapter .chapter-num{color:var(--ink);background:#fff}.continue-text{flex:1;gap:2px;min-width:0;display:grid}.continue-text small{color:#c9d3ea;font-size:.82rem}.continue-text strong{font-size:1.08rem;line-height:1.3}.continue-chapter .btn{flex:none;min-height:42px;padding:8px 16px}@media (width<=420px){.continue-chapter{flex-wrap:wrap}.continue-chapter .btn{width:100%}}.chapter-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}@media (width>=640px){.chapter-list{grid-template-columns:1fr 1fr}}.chapter-list li{display:grid}.chapter-card{background:var(--card);border:1px solid var(--line);color:inherit;border-radius:16px;align-content:start;gap:4px;padding:14px 16px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid}.chapter-card:hover{box-shadow:var(--shadow);border-color:#cbd3df;transform:translateY(-1px)}.chapter-top{align-items:center;gap:12px;display:flex}.chapter-num{background:var(--select-soft);width:36px;height:36px;color:var(--ink);border-radius:50%;flex:none;place-items:center;font-size:.95rem;font-weight:700;display:grid}.chapter-num svg{fill:none;stroke:currentColor;stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.chapter-card.complete{border-color:#bbe5c8}.chapter-card.complete .chapter-num{background:var(--ok);color:#fff}.chapter-title{min-width:0;display:grid}.chapter-title small{color:var(--soft);font-size:.75rem;font-weight:600}.chapter-title strong{font-size:1rem;line-height:1.3}.chapter-blurb{color:var(--soft);margin-top:2px;font-size:.9rem}.chapter-foot{color:var(--soft);justify-content:space-between;gap:8px;font-size:.84rem;display:flex}.chapter-foot em{color:var(--accent);white-space:nowrap;font-style:normal;font-weight:650}.chapter-card.complete .chapter-foot em{color:var(--ok)}.lesson-head{justify-content:space-between;align-items:center;gap:8px;margin:-6px 0 6px;display:flex}.lesson-head .text-btn{min-height:40px;font-size:.92rem}.lesson-head .text-btn,.lesson-count{white-space:nowrap}.lesson-count{color:var(--soft);font-size:.85rem}.lesson .kicker{margin:0}.lesson-meta{color:var(--soft);justify-content:space-between;align-items:center;margin:-4px 0 8px;font-size:.88rem;display:flex}.lesson-meta .qnum{margin:0}.lesson-hint{margin:-2px 0 0;font-size:.9rem}.option[aria-disabled=true]{cursor:default}.option.right{border-color:var(--ok);background:var(--ok-soft);box-shadow:inset 0 0 0 1px var(--ok);color:#0f5f2e}.option.right>span{background:var(--ok);border-color:var(--ok);color:#fff}.option.wrong{border-color:var(--bad);background:var(--bad-soft);box-shadow:inset 0 0 0 1px var(--bad);color:var(--bad)}.option.wrong>span{background:var(--bad);border-color:var(--bad);color:#fff}.option.dim{opacity:.55}.option.right:hover,.option.wrong:hover,.option.dim:hover{background:inherit}.option.right:hover{background:var(--ok-soft)}.option.wrong:hover{background:var(--bad-soft)}.option.dim:hover{border-color:var(--line);background:var(--paper)}.feedback{border-radius:12px;margin:0 0 12px;padding:12px 14px;animation:.2s ease-out pop-in}.feedback strong{display:block}.feedback p{color:var(--soft);margin:4px 0 0;font-size:.92rem}.feedback-right{background:var(--ok-soft);color:var(--ok)}.feedback-wrong{background:var(--bad-soft);color:var(--bad)}.feedback-shown{background:var(--select-soft);color:var(--ink)}.btn-reveal{border-color:var(--ink);color:var(--ink)}@keyframes pop-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.chapter-done{background:linear-gradient(160deg, #fff 40%, var(--ok-soft));border:1px solid #bbe5c8;border-radius:18px;max-width:640px;margin:8px auto 0;padding:20px}.chapter-done h1{color:var(--ok)}.chapter-done .bar{margin-bottom:18px}.chapter-done .btn{flex:220px}
