:root{--bg:#0e0d12;--surface:#17161d;--surface2:#201f29;--line:#2c2b38;--fg:#f3efe6;--muted:#a29fb0;--accent:#ffb020;--accent-fg:#1a1203;--ok:#3ddc97;--ok-bg:#0f2e22;--bad:#ff6b6b;--bad-bg:#33161a;--pyq:#8ab4ff;--r:16px;--top:56px;--tab:64px;color-scheme:dark}:root[data-theme=light]{--bg:#faf7f2;--surface:#fff;--surface2:#f1ece2;--line:#ddd5c7;--fg:#1d1a17;--muted:#6b645b;--accent:#c26a00;--accent-fg:#fff;--ok:#12805a;--ok-bg:#ddf3e8;--bad:#c0392b;--bad-bg:#fbe3e0;--pyq:#2a5bd7;color-scheme:light}*{box-sizing:border-box;margin:0}html,body{height:100%}body{overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;background:var(--bg);color:var(--fg);-webkit-tap-highlight-color:transparent;font:16px/1.5 Outfit,system-ui,sans-serif;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[hidden]{display:none!important}#app{flex-direction:column;height:100dvh;display:flex;position:relative}.top{height:calc(var(--top) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 14px 0;flex:none;align-items:center;gap:10px;display:flex}.brand{letter-spacing:-.3px;margin-right:auto;font-size:19px;font-weight:800}.brand i{color:var(--accent);font-style:normal}.chip-btn{background:var(--surface);border:1px solid var(--line);border-radius:99px;align-items:center;gap:6px;min-height:40px;padding:0 12px;font-size:14px;font-weight:700;display:flex}.chip-btn.hot{border-color:var(--accent);color:var(--accent)}.ring{width:26px;height:26px;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:4px}.ring .bg{stroke:var(--line)}.ring .fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dasharray .4s}main{flex:1;min-height:0;position:relative}.view{flex-direction:column;display:flex;position:absolute;inset:0}.scroll{flex:1;padding:4px 16px 24px;overflow-y:auto}.tabbar{height:calc(var(--tab) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:var(--bg);flex:none;grid-template-columns:repeat(4,1fr);display:grid}.tabbar button{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:48px;font-size:12px;font-weight:600;display:flex}.tabbar button[aria-selected=true]{color:var(--accent)}.tabbar svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.modes{scrollbar-width:none;flex:none;gap:8px;padding:2px 14px 10px;display:flex;overflow-x:auto}.modes::-webkit-scrollbar{display:none}.pill{border:1px solid var(--line);background:var(--surface);white-space:nowrap;border-radius:99px;flex:none;min-height:40px;padding:0 14px;font-size:14px;font-weight:600}.pill[aria-pressed=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}.pill.scope{border-style:dashed}.reel{scroll-snap-type:y mandatory;scrollbar-width:none;overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.reel::-webkit-scrollbar{display:none}.slide{scroll-snap-align:start;scroll-snap-stop:always;flex-direction:column;gap:14px;height:100%;padding:6px 16px 18px;display:flex;overflow-y:auto}.meta{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.meta .crumb{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.badge{border:1px solid var(--line);border-radius:99px;flex:none;padding:2px 9px;font-size:12px;font-weight:700}.badge.pyq{color:var(--pyq);border-color:var(--pyq)}.save{width:40px;height:40px;color:var(--muted);border-radius:99px;place-items:center;display:grid}.save svg{stroke:currentColor;stroke-width:2px;fill:none;width:22px;height:22px}.save[aria-pressed=true]{color:var(--accent)}.save[aria-pressed=true] svg{fill:currentColor}.q,.verdict p,.res p,.res small{-webkit-user-select:text;user-select:text}.q{white-space:pre-line;text-wrap:pretty;font-size:clamp(18px,4.8vw,22px);font-weight:600;line-height:1.4}.opts{gap:10px;padding:0;list-style:none;display:grid}.opt{text-align:left;border-radius:var(--r);background:var(--surface);border:1.5px solid var(--line);align-items:flex-start;gap:12px;width:100%;min-height:56px;padding:14px;transition:transform 80ms,border-color .15s,background .15s;display:flex}.opt:active{transform:scale(.985)}.opt b{background:var(--surface2);border-radius:99px;flex:none;place-items:center;width:28px;height:28px;font-size:13px;display:grid}.opt span{white-space:pre-line;padding-top:2px}.done .opt{pointer-events:none}.opt.right{border-color:var(--ok);background:var(--ok-bg)}.opt.right b{background:var(--ok);color:#06190f}.opt.wrong{border-color:var(--bad);background:var(--bad-bg)}.opt.wrong b{background:var(--bad);color:#25090b}.done .opt:not(.right):not(.wrong){opacity:.55}.verdict{border-radius:var(--r);background:var(--surface);border:1px solid var(--line);padding:14px;animation:.25s ease-out rise}.verdict h3{margin-bottom:4px;font-size:16px}.verdict.ok h3{color:var(--ok)}.verdict.no h3{color:var(--bad)}.verdict p{color:var(--muted);white-space:pre-line;font-size:15px}.next{background:var(--accent);min-height:52px;color:var(--accent-fg);border-radius:99px;margin-top:auto;padding:0 20px;font-size:16px;font-weight:800}.hint{text-align:center;color:var(--muted);font-size:13px}.hint kbd{font:inherit;border:1px solid var(--line);border-radius:6px;padding:0 6px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.endcard{text-align:center;justify-items:center;gap:12px;margin:auto 0;display:grid}.endcard h2{font-size:24px}.endcard p{color:var(--muted);max-width:32ch}.btn{background:var(--surface2);border:1px solid var(--line);border-radius:99px;min-height:48px;padding:0 20px;font-weight:700}.btn.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.btn.danger{color:var(--bad)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px;padding:14px}.card h2{color:var(--muted);letter-spacing:.2px;margin-bottom:10px;font-size:15px;font-weight:600}.search{border:1px solid var(--line);background:var(--surface);width:100%;min-height:48px;color:var(--fg);font:inherit;border-radius:99px;padding:0 18px}.row{align-items:center;gap:10px;display:flex}.grow{flex:1;min-width:0}.res{text-align:left;border-bottom:1px solid var(--line);width:100%;padding:12px 0;display:block}.res small{color:var(--muted);display:block}.res p{-webkit-line-clamp:2;white-space:pre-line;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.bar{background:var(--surface2);border-radius:9px;height:8px;overflow:hidden}.bar i{background:var(--accent);border-radius:9px;height:100%;display:block}.big{font-size:44px;font-weight:800;line-height:1}.muted{color:var(--muted);font-size:14px}.stat{text-align:center;grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat b{font-size:24px;display:block}label.f{color:var(--muted);gap:4px;margin-bottom:10px;font-size:14px;display:grid}select,input[type=number]{border:1px solid var(--line);background:var(--surface2);min-height:44px;color:var(--fg);font:inherit;border-radius:12px;padding:0 10px}.chips{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.chips label{border:1px solid var(--line);background:var(--surface2);cursor:pointer;border-radius:99px;align-items:center;gap:6px;min-height:40px;padding:0 12px;font-size:14px;display:flex}.chips input{accent-color:var(--accent)}dialog{background:var(--surface);width:min(92vw,460px);max-height:86dvh;color:var(--fg);border:1px solid var(--line);border-radius:20px;margin:auto;padding:18px;overflow:auto}dialog::backdrop{background:#0009}#testRun{background:var(--bg);z-index:30;padding-top:env(safe-area-inset-top);flex-direction:column;display:flex;position:absolute;inset:0}#testRun .top{flex:none}.palette{grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:6px;display:grid}.palette button{border:1px solid var(--line);background:var(--surface);border-radius:10px;min-height:40px;font-size:14px;font-weight:700}.palette .a{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.palette .cur{outline:2px solid var(--fg)}.palette .fl{box-shadow:inset 0 -4px var(--bad)}.opt.sel{border-color:var(--accent);background:var(--surface2)}.opt.sel b{background:var(--accent);color:var(--accent-fg)}.toast{left:50%;bottom:calc(var(--tab) + env(safe-area-inset-bottom) + 14px);background:var(--fg);color:var(--bg);opacity:0;pointer-events:none;z-index:50;text-align:center;border-radius:99px;max-width:90%;padding:10px 16px;font-size:14px;font-weight:700;transition:all .25s;position:absolute;transform:translate(-50%,20px)}.toast.on{opacity:1;transform:translate(-50%)}.combo{right:16px;top:calc(var(--top) + 52px);color:var(--accent);z-index:5;opacity:0;font-weight:800;transition:all .2s;position:absolute}.combo.on{opacity:1}svg.chart text{fill:var(--muted);font-size:10px}.nav-brand,.vtitle,.side{display:none}kbd{font:inherit;border:1px solid var(--line);background:var(--surface2);border-radius:6px;padding:0 6px;font-size:12px}.ring.big{width:64px;height:64px}.ring.big circle{stroke-width:3px}.grid2{align-content:start;gap:12px;display:grid}.grid2 .card{margin:0}@media (hover:hover){.opt:hover,.pill:hover,.btn:hover{border-color:var(--muted)}.res:hover{background:var(--surface)}}@media (width<=699px){dialog{width:100%;max-width:none;padding-bottom:calc(18px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;margin:auto auto 0}.toast{max-width:calc(100% - 32px)}}@media (width>=700px){#app{--rail:84px;grid-template-columns:var(--rail) minmax(0,1fr);grid-template-rows:var(--top) minmax(0,1fr);grid-template-areas:"nav top""nav main";display:grid}.tabbar{border-top:0;border-right:1px solid var(--line);flex-direction:column;grid-area:nav;justify-content:flex-start;gap:6px;height:auto;padding:14px 10px;display:flex}.tabbar button{border-radius:14px;width:100%;min-height:64px}.tabbar button:hover,.tabbar button[aria-selected=true]{background:var(--surface)}.top{height:var(--top);border-bottom:1px solid var(--line);grid-area:top;padding:0 24px}main{grid-area:main}.brand{display:none}.vtitle{margin-right:auto;font-size:18px;font-weight:700;display:block}.nav-brand{text-align:center;padding:2px 0 12px;font-size:15px;font-weight:800;display:block}.nav-brand i{color:var(--accent);font-style:normal}.modes,.reel{width:100%;max-width:720px;margin-inline:auto}.modes{padding:14px 24px 12px}.slide{padding:8px 24px 28px}.scroll{padding:24px 28px 40px}.scroll>*{width:100%;max-width:1040px;margin-inline:auto}#v-search .scroll>*{max-width:760px}#testRun>*{width:100%;max-width:780px;margin-inline:auto}#testRun .top{padding:0 24px}.toast{bottom:28px}dialog{width:min(92vw,480px)}}@media (width>=900px){.grid2{grid-template-columns:1fr 1fr}}@media (width>=1024px){#app{--rail:232px}.tabbar{gap:4px;padding:20px 14px}.nav-brand{text-align:left;padding:2px 12px 22px;font-size:22px}.tabbar button{flex-direction:row;justify-content:flex-start;gap:14px;min-height:48px;padding:0 14px;font-size:15px}.q{font-size:clamp(20px,1.7vw,24px)}.opt{padding:16px}}@media (width>=1280px){#app{grid-template-columns:var(--rail) minmax(0,1fr) 340px;grid-template-areas:"nav top side""nav main side"}.side{border-left:1px solid var(--line);flex-direction:column;grid-area:side;gap:12px;padding:20px;display:flex;overflow-y:auto}.side .card{margin:0}.top .chip-btn{display:none}}@media (width>=1600px){#app{--rail:260px;grid-template-columns:var(--rail) minmax(0,1fr) 380px}}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/outfit-latin-400-normal.BGsTXAXT.woff2)format("woff2"),url(/_astro/outfit-latin-400-normal.DMwTpYkH.woff)format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/outfit-latin-600-normal.B7SfZ07L.woff2)format("woff2"),url(/_astro/outfit-latin-600-normal.BEfTtDA7.woff)format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/outfit-latin-800-normal.CQna6-G7.woff2)format("woff2"),url(/_astro/outfit-latin-800-normal.BRHLSPcU.woff)format("woff")}
