:root {color-scheme:dark;--bg:#151a20;--panel:#1c232b;--panel2:#232c36;--ink:#eff2ee;--muted:#b0bdca;--line:#364450;--on:#151a20;--success:#97d4af;--error:#ffad96;--code:#11171d;font:16px/1.55 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--ink)}
:root[data-theme="light"]{color-scheme:light;--bg:#f8f7f2;--panel:#fffef9;--panel2:#eeefe8;--ink:#202822;--muted:#53615c;--line:#c9d0c6;--on:#fff;--success:#256346;--error:#a33d28;--code:#eff1ea}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,select{font:inherit;color:inherit}img{display:block}h1,h2,h3,p{margin:0}header{border-bottom:1px solid var(--line)}.bar,main,footer{max-width:1240px;margin:auto;padding-inline:clamp(18px,5vw,68px)}.bar,.nav,footer,.footline,.row,.actions,.crumb,.toggles,.pagehead,.codehead{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.bar{min-height:70px;justify-content:space-between}.nav{gap:16px}.logo,.nav a,footer a,.crumb a,.side a,.text-link,.skip,.steps a{display:inline-flex;align-items:center;min-height:44px}.nav [aria-current]{box-shadow:inset 0 -2px var(--c)}.nav a,footer,.crumb,.sub,.side a{color:var(--muted)}.nav a,.nav button,footer{font-size:14px}.logo,.nav a{padding-inline:3px}.nav button,.act,.toggles button,select{border:1px solid var(--line);background:var(--panel);min-height:44px;padding:8px 15px;border-radius:5px;cursor:pointer}.act{font-size:15px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;text-align:center}.primary{background:var(--c);color:var(--on);border-color:var(--c)}.actions{margin-top:22px;gap:10px}.linkish,.text-link,.crumb a{color:var(--u);text-decoration:underline;text-underline-offset:4px}.skip{position:absolute;top:-65px;background:var(--panel);z-index:4;padding:8px 14px}.skip:focus{top:6px}
main{min-height:68vh;padding-block:38px 54px}h1{font-size:clamp(32px,4.7vw,60px);line-height:1.14;letter-spacing:-.05em}h2{font-size:clamp(21px,2.45vw,30px);line-height:1.32;letter-spacing:-.025em}h3{font-size:19px}.hero{display:grid;grid-template-columns:1fr 1.05fr;gap:5%;align-items:center;padding:22px 0 44px;border-bottom:1px solid var(--line)}.hero h1{font-weight:740;font-size:clamp(40px,6vw,76px);line-height:1.08}.hero h1 i{font-style:normal;color:var(--c)}.hero p,.intro{color:var(--muted);max-width:55ch;margin-top:16px}.hero img{width:100%;height:auto}.choice{padding-top:34px}.choice>p{color:var(--muted);margin:7px 0 21px}.cards,.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.card,.stat,.box,.side,.steps,.panel,.note,.code{border:1px solid var(--line);background:var(--panel);border-radius:7px}.card{padding:20px;min-height:144px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.card .arrow{color:var(--c);float:right;font-weight:500}.card strong{font-size:21px}.card-top{width:100%;display:flex;justify-content:space-between}.icon{color:var(--u);font:560 17px/1.25 ui-monospace,monospace}.minor,.card small,.stepnum,.eyeline{font-size:13px;color:var(--muted)}.hint{font-size:14px;color:var(--muted);margin-top:15px}.crumb{font-size:14px;gap:8px;margin-bottom:13px}.pagehead{justify-content:space-between;align-items:flex-end;margin-bottom:24px}.pagehead h1,.inside h1{font-size:clamp(32px,4vw,47px)}.layout{display:grid;grid-template-columns:208px minmax(0,1fr);gap:23px;align-items:start}.steps,.side{padding:10px}.steps a,.side a{display:flex;gap:10px;border-radius:4px;padding:8px}.steps [aria-current],.side [aria-current],.toggles [aria-pressed="true"]{background:var(--panel2);color:var(--ink);box-shadow:inset 3px 0 var(--c)}.stepnum{font:13px/1.2 ui-monospace,monospace;color:var(--u);min-width:25px}.completed{color:var(--success)}.panel,.box{padding:clamp(17px,2.5vw,32px)}.panel h2,.box h2{margin-bottom:10px}.panel p,.box p{color:var(--muted)}.panel>p,.box>p{max-width:66ch}.eyeline{display:block;font:13px/1.4 ui-monospace,monospace;margin-bottom:13px;color:var(--u)}.toggles{margin-block:16px;gap:6px}.toggles button{font-size:14px}.code{margin-top:15px;background:var(--code);overflow:hidden}.codehead{justify-content:space-between;gap:6px;padding:5px 12px;font-size:13px;color:var(--muted);border-bottom:1px solid var(--line)}.codehead button{background:none;border:0;min-width:44px;min-height:44px;color:var(--u);cursor:pointer}.code pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;padding:14px 15px;font:14px/1.65 Menlo,Consolas,monospace}.note{padding:14px 16px;margin-top:16px;border-left:3px solid var(--u)}.note.good{border-left-color:var(--success)}.note.bad{border-left-color:var(--error)}.note b{display:block;margin-bottom:3px}.note p{font-size:14px}.footline{margin-top:18px;justify-content:space-between}.pagehead select{max-width:100%}.dashmain{display:grid;gap:17px}.stat{padding:17px}.stat strong{font-size:clamp(24px,3vw,37px);display:block;line-height:1.3}.stat span{color:var(--muted);font-size:14px}.stats{gap:8px}.record{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:15px 0;border-bottom:1px solid var(--line)}.record strong,.record small{display:block}.record small{color:var(--muted)}.record:last-child{border-bottom:0}.user-options{margin-top:18px;display:grid;gap:10px}.user-options .card{min-height:0;padding:16px;width:100%;text-align:left;color:inherit;cursor:pointer}.user-options span{color:var(--muted);font-size:14px}.user-options{max-width:660px}.stages{margin-bottom:22px}.dot{display:inline-block;background:var(--c);width:7px;height:7px;border-radius:50%;margin-right:9px}footer{border-top:1px solid var(--line);justify-content:space-between;padding-block:14px}.toast{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);padding:11px 17px;background:var(--ink);color:var(--bg);border-radius:4px;z-index:2}.toast:empty{display:none}
:where(button,a,select):focus-visible{outline:3px solid var(--u);outline-offset:3px}.card,.act,.toggles button,.nav button{transition:background-color .14s,border-color .14s}button:disabled{opacity:.5;cursor:not-allowed}button[aria-busy="true"]{cursor:wait}a:active,button:not(:disabled):active{filter:brightness(.86)}
@media(hover:hover) and (pointer:fine){.card:hover,.act:not(:disabled):hover,.toggles button:hover,.nav button:hover{border-color:var(--u);box-shadow:inset 0 0 0 1px var(--u)}.nav a:hover,footer a:hover,.side a:hover,.steps a:hover,.text-link:hover,.codehead button:hover{color:var(--c)}}
@media(max-width:820px){.layout{grid-template-columns:160px minmax(0,1fr);gap:14px}.hero{gap:20px}.bar{min-height:62px}.card{padding:15px}}
@media(max-width:650px){.bar{gap:6px}.nav{gap:6px}.nav a,.nav button{font-size:13px}.nav button{padding-inline:7px}.logo img{width:94px}.hero,.layout{grid-template-columns:1fr}.hero{padding:4px 0 24px}.hero img{max-height:200px}.cards{grid-template-columns:1fr}.card{min-height:0}.choice{padding-top:23px}main{padding-block:20px 32px}.steps,.side{display:flex;flex-wrap:wrap;gap:3px}.steps a,.side a{font-size:13px;padding:5px 8px;gap:4px}.stepnum{min-width:16px}.stat{padding:10px}.stats{gap:5px}.stat strong{font-size:22px}.stat span{font-size:12px}.actions .act{max-width:100%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
