:root{--bg:#15120e;--card:#1c1813;--card-2:#221d17;--fg:#c9c0b2;--strong:#f2ede4;--muted:#8c8273;--rule:#2a241c;--green:#a9c66b;--green-dim:#7e9850;--red:#e0705c;--display:"Chakra Petch","IBM Plex Sans Thai",system-ui,sans-serif;--sans:"IBM Plex Sans Thai","IBM Plex Sans",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--topbar-h:68px}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable}html,body{min-height:100%}body{background:var(--bg);color:var(--fg);font:15px/1.7 var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--green)}.wrap{flex-direction:column;gap:48px;width:min(1040px,100%);margin:0 auto;padding-block:0 96px;padding-inline:16px;display:flex;position:relative}.topbar{top:env(safe-area-inset-top,0px);z-index:10;background:linear-gradient(var(--bg) 85%,transparent);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex;position:sticky}.lockup{color:inherit;align-items:center;gap:12px;text-decoration:none;display:flex}.mark{background:#221d17;border-radius:2px;flex:none;place-items:center;width:38px;height:38px;display:grid;box-shadow:0 0 0 1px #2a241c}.mark svg{width:26px;height:26px}.lockup .name{flex-direction:column;gap:2px;display:flex}.lockup .name b{font:700 15px/1.1 var(--display);color:var(--strong)}.lockup .name b em{color:var(--green);font-style:normal}.lockup .name span{font:500 9.5px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}.nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px 28px;display:flex}.nav-group{flex-wrap:wrap;align-items:center;gap:2px 18px;display:flex}.nav-label{font:600 12px/1 var(--sans);color:var(--muted)}.nav-group+.nav-group{border-left:1px solid var(--rule);padding-left:28px}.nav a{min-height:40px;color:var(--fg);font:600 13.5px/1 var(--sans);align-items:center;text-decoration:none;transition:color .16s;display:inline-flex;position:relative}.nav a:after{content:"";background:var(--green);transform-origin:0;height:2px;transition:transform .2s;position:absolute;bottom:6px;left:0;right:0;transform:scaleX(0)}.nav a:hover,.nav a[aria-current=page]{color:var(--strong)}.nav a[aria-current=page]:after{transform:scaleX(1)}.menu-btn{display:none}.nav a:focus-visible,.btn:focus-visible,.track:focus-visible,input:focus-visible{outline:2px solid var(--green);outline-offset:3px}.eyebrow{font:600 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--green-dim)}h1,h2,h3{font-family:var(--display);color:var(--strong);text-wrap:balance;margin:0}h1{font-size:clamp(32px,5.4vw,56px);font-weight:700;line-height:1.06}h1 em{color:var(--green);font-style:normal}h2{font-size:clamp(22px,3.2vw,32px);font-weight:700;line-height:1.15}h3{font-size:17px;font-weight:600;line-height:1.3}p{margin:0}.hero{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:32px;padding-top:24px;display:grid}@media (max-width:820px){.hero{grid-template-columns:1fr}}.hero .copy{flex-direction:column;gap:16px;max-width:60ch;display:flex}.hero .lede{color:var(--fg);font-size:17px}.hero .lede b{color:var(--strong)}.cta{flex-wrap:wrap;gap:10px;display:flex}.btn{border:1px solid var(--rule);background:var(--card);min-height:46px;color:var(--strong);font:600 14px/1 var(--display);letter-spacing:.02em;cursor:pointer;border-radius:2px;align-items:center;gap:8px;padding:0 20px;text-decoration:none;display:inline-flex}.btn.primary{background:var(--green);border-color:var(--green);color:#15120e}.btn:hover{border-color:var(--green)}.btn[disabled]{opacity:.5;cursor:default}.hero .art{box-shadow:0 0 0 1px var(--rule);background:var(--card);border-radius:2px;position:relative;overflow:hidden}.hero .art img{width:100%;max-width:100%;height:auto;display:block}.hero .art .cap{font:600 10.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--green);background:#0b0d10cc;border-radius:6px;padding:6px 8px;position:absolute;bottom:12px;left:12px}.how{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}@media (max-width:720px){.how{grid-template-columns:1fr}}.how .card{border-top:2px solid var(--rule);background:var(--card);border:1px solid var(--rule);border-radius:2px;flex-direction:column;gap:8px;min-width:0;padding:18px;display:flex}.how .num{background:var(--green);color:#15120e;width:28px;height:28px;font:700 14px/28px var(--mono);text-align:center;border-radius:2px}.section{flex-direction:column;gap:18px;display:flex}.section-head{flex-direction:column;gap:6px;max-width:64ch;display:flex}.tracks{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.track{border-top:2px solid var(--rule);background:var(--card);border:1px solid var(--rule);color:inherit;border-radius:2px;flex-direction:column;gap:10px;min-width:0;padding:18px;text-decoration:none;display:flex;position:relative}.track[href]:hover{border-color:var(--green)}.track .top{justify-content:space-between;align-items:center;gap:10px;display:flex}.track .tag{font:600 10.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--rule);color:var(--muted);border-radius:2px;padding:5px 8px}.track .tag.live{border-color:var(--green);color:var(--green)}.track h3{color:var(--strong)}.track .meta{font:12px/1.5 var(--mono);color:var(--muted)}.track .lessons{flex-wrap:wrap;gap:6px;display:flex}.track .lessons span{font:600 11px/1 var(--mono);background:var(--card-2);color:var(--fg);border-radius:6px;padding:5px 7px}.track .lessons span.done{color:#15120e;background:var(--green)}.track.path{position:relative;overflow:hidden}.track-art{object-fit:contain;pointer-events:none;opacity:.88;filter:drop-shadow(0 4px 10px #00000073);width:52px;height:52px;transition:transform .2s,opacity .2s;position:absolute;top:12px;right:14px}.track.path:hover .track-art{opacity:1;transform:scale(1.08)rotate(-2deg)}.track.path .top{padding-right:56px}.track.path h3{padding-right:50px}.progress{background:var(--rule);border-radius:2px;height:4px;overflow:hidden}.progress i{background:var(--green);width:0;height:100%;display:block}.signup{background:var(--card-2);border:1px solid var(--rule);border-radius:2px;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:20px;padding:24px;display:grid;position:relative;overflow:hidden}.signup:after{content:"";pointer-events:none;background:radial-gradient(closest-side,#a9c66b33,#0000 70%);border-radius:2px;width:360px;height:360px;position:absolute;bottom:-140px;right:-100px}@media (max-width:720px){.signup{grid-template-columns:1fr}}.signup form{z-index:1;flex-direction:column;gap:10px;display:flex;position:relative}.signup label{font:600 11px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.signup input{font:15px/1.4 var(--sans);color:var(--strong);background:var(--bg);border:1px solid var(--rule);border-radius:2px;width:100%;min-height:46px;padding:12px 14px}.signup .msg{font:13px/1.5 var(--sans);color:var(--fg);min-height:20px}.signup .msg.ok{color:var(--green)}.signup .msg.err{color:var(--red)}.signup .consent{font:12px/1.6 var(--sans);color:var(--muted)}.signup .hp{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.foot{font:12px/1.7 var(--mono);color:var(--muted);border-top:1px solid var(--rule);flex-direction:column;gap:4px;padding-top:14px;display:flex}.foot a{color:var(--fg);text-underline-offset:3px;text-decoration:underline}.foot a:hover{color:var(--strong)}.lesson-bar{background:var(--card);border:1px solid var(--rule);border-radius:2px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;display:flex}.lesson-bar .crumbs{font:600 12px/1.4 var(--mono);color:var(--muted)}.lesson-bar .crumbs b{color:var(--strong)}.lesson-bar .pr{flex:1;align-items:center;gap:10px;min-width:220px;display:flex}.lesson-bar .pr .progress{flex:1}.lesson-bar .pr span{font:600 11px/1 var(--mono);color:var(--muted);white-space:nowrap}.next{background:var(--card-2);border:1px solid var(--rule);border-radius:2px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:20px 22px;display:flex}.next .t{flex-direction:column;gap:4px;display:flex}.next .t b{font:700 18px/1.2 var(--display);color:var(--strong)}.quiz{flex-direction:column;gap:14px;max-width:760px;display:flex}.q{background:var(--card);border:1px solid var(--rule);border-radius:2px;flex-direction:column;gap:12px;padding:18px;display:flex}.q .qn{font:600 11px/1 var(--mono);letter-spacing:.12em;color:var(--green-dim);text-transform:uppercase}.q h3{font-size:16px}.q .opts{flex-direction:column;gap:8px;display:flex}.q .opt{border:1px solid var(--rule);background:var(--bg);cursor:pointer;color:var(--fg);font:14px/1.5 var(--sans);text-align:left;border-radius:2px;align-items:flex-start;gap:10px;min-height:44px;padding:10px 12px;display:flex}.q .opt:hover{border-color:var(--muted)}.q .opt .k{border:1px solid var(--rule);width:22px;height:22px;font:700 11px/22px var(--mono);text-align:center;color:var(--muted);border-radius:2px;flex:none}.q .opt[aria-pressed=true]{border-color:var(--green);color:var(--strong)}.q .opt[aria-pressed=true] .k{background:var(--green);color:#15120e;border-color:var(--green)}.q[data-state=right] .opt[aria-pressed=true]{border-color:var(--green)}.q[data-state=wrong] .opt[aria-pressed=true]{border-color:var(--red)}.q[data-state=wrong] .opt[data-right="1"]{border-color:var(--green)}.q .why{font:13.5px/1.6 var(--sans);color:var(--fg);border-top:1px solid var(--rule);padding-top:10px;display:none}.q[data-state] .why{display:block}.q .why b{color:var(--strong)}.q .why a{text-underline-offset:3px;white-space:nowrap;font-weight:600}.q[data-state] .opt{cursor:default}.q[data-state] .opt[data-right="1"] .k{background:var(--green);border-color:var(--green);color:var(--bg)}.q[data-state=wrong] .opt[aria-pressed=true] .k{background:var(--red);border-color:var(--red);color:var(--bg)}.q[data-state=wrong] .opt[data-right="1"]{background:#a9c66b14}.q .opt .right-tag{border:1px solid var(--green-dim);font:600 11px/1 var(--sans);color:var(--green);white-space:nowrap;border-radius:2px;flex:none;align-self:center;margin-left:auto;padding:4px 7px}.q,.result{scroll-margin-top:calc(var(--topbar-h) + 16px)}.q h3,.q .opt,.q .why{overflow-wrap:anywhere}.result{background:var(--card-2);border:1px solid var(--rule);border-radius:2px;flex-direction:column;gap:10px;padding:22px;display:flex}.result .score{font:700 44px/1 var(--display);color:var(--green)}.misses{border-top:1px solid var(--rule);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.misses li{border-bottom:1px solid var(--rule);align-items:center;gap:12px;min-height:44px;font-size:14px;display:flex}.misses b{width:44px;font:600 13px/1 var(--sans);color:var(--red);flex:none}.misses span{color:var(--muted)}.will-reveal{opacity:0;transition:opacity .55s cubic-bezier(.2,.7,.2,1),transform .55s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*70ms);transform:translateY(14px)}.will-reveal.in{opacity:1;transform:none}.btn,.track,.how .card,.q .opt{transition:transform .16s,border-color .16s,box-shadow .16s,background .16s}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(1px)scale(.99)}.btn.primary:hover{box-shadow:0 0 0 1px var(--green),0 8px 28px #a9c66b38}.track[href]:hover{transform:translateY(-2px);box-shadow:0 10px 30px #00000059}.track[href]{box-shadow:0 0 #0000}.hero .art{transition:transform .3s,box-shadow .3s}.hero .art:hover{box-shadow:0 0 0 1px var(--green),0 16px 40px #0006;transform:translateY(-3px)}.hero .art img{transition:transform 6s}.hero .art:hover img{transform:scale(1.03)}.hero h1 em{background:linear-gradient(90deg,var(--green),#b9ff9a,var(--green));color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:6s linear infinite sheen}@keyframes sheen{to{background-position:200% 0}}.signup input{transition:border-color .16s,box-shadow .16s}.signup input:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 3px #a9c66b2e}.progress i{transition:width .6s cubic-bezier(.2,.7,.2,1)}.track .lessons span{transition:background .3s,color .3s}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));opacity:0;background:var(--strong);color:#0b0d10;font:600 13px/1.3 var(--sans);z-index:50;pointer-events:none;border-radius:2px;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:12px 16px;transition:opacity .25s,transform .25s;display:flex;position:fixed;transform:translate(-50%,16px);box-shadow:0 10px 30px #0006}.toast.show{opacity:1;transform:translate(-50%)}.toast .tick{background:var(--green);border-radius:2px;flex:none;place-items:center;width:20px;height:20px;display:grid}.toast .tick svg{width:12px;height:12px}.toast .tick path{stroke:#0b0d10;stroke-width:3px;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20px;animation:.4s .1s forwards tick}@keyframes tick{to{stroke-dashoffset:0}}.q .opt:hover{transform:translate(2px)}.q[data-state] .opt:hover{transform:none}.q[data-state=right] .opt[aria-pressed=true]{background:#a9c66b14}.q[data-state=wrong] .opt[aria-pressed=true]{background:#e0705c14;animation:.4s shake}@keyframes shake{20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.q .why{animation:.35s fadeup}@keyframes fadeup{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.q[data-state] .qn:after{content:" · ตอบแล้ว";color:var(--muted)}.q[data-state=right] .qn:after{content:" · ถูก";color:var(--green)}.q[data-state=wrong] .qn:after{content:" · ดูคำอธิบาย";color:var(--red)}.result .score{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){.will-reveal{opacity:1;transition:none;transform:none}.hero h1 em{color:var(--green);background:0 0;animation:none}.btn,.track,.hero .art,.hero .art img,.q .opt{transition:none}.q[data-state=wrong] .opt[aria-pressed=true]{animation:none}.toast .tick path{stroke-dashoffset:0;animation:none}}.topstrip{z-index:40;pointer-events:none;background:0 0;height:3px;position:fixed;top:0;left:0;right:0}.topstrip i{background:var(--green);width:0;height:100%;transition:width .6s cubic-bezier(.2,.7,.2,1);display:block;box-shadow:0 0 12px #a9c66b99}.hero .art:before{content:"";background:linear-gradient(90deg,var(--green) 0 62%,var(--rule) 62%);z-index:1;height:3px;position:absolute;top:0;left:0;right:0}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips span,.chips a{font:600 12px/1 var(--mono);border:1px solid var(--rule);color:var(--muted);border-radius:2px;align-items:center;gap:6px;padding:8px 10px;display:inline-flex}.chips .live{border-color:var(--green);color:var(--green);text-decoration:none}.chips .live:before{content:"";background:var(--green);width:6px;height:6px;box-shadow:0 0 8px var(--green);border-radius:50%}.proof{font:12.5px/1.4 var(--sans);color:var(--muted);align-items:center;gap:10px;display:flex}.proof .avatars{display:flex}.proof .avatars i{background:var(--card-2);border:2px solid var(--bg);width:22px;height:22px;font:700 10px/1 var(--mono);color:var(--green);border-radius:50%;place-items:center;margin-left:-8px;display:grid}.proof .avatars i:first-child{margin-left:0}.toc a.done b:after{content:"✓";margin-left:4px;font-size:11px}.toc a[aria-current=true]{border-color:var(--green);color:var(--strong)}.band{z-index:30;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--rule);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .3s cubic-bezier(.2,.7,.2,1);position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}.band.show{transform:none}.band[data-kind=right]{background:#a9c66b24}.band[data-kind=wrong]{background:#e0705c29}.band .in{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;width:min(760px,100%);margin:0 auto;display:flex}.band .msg{font:700 15px/1.2 var(--display);color:var(--strong);align-items:center;gap:10px;display:flex}.band .msg .tick{border-radius:2px;flex:none;place-items:center;width:26px;height:26px;display:grid}.band[data-kind=right] .msg .tick{background:var(--green)}.band[data-kind=wrong] .msg .tick{background:var(--red)}.band .msg .tick svg{width:14px;height:14px}.band .acts{gap:8px;display:flex}.band .btn{min-height:40px;padding:0 14px;font-size:13px}.result-banner{top:calc(var(--topbar-h) + env(safe-area-inset-top,0px));z-index:6;background:linear-gradient(#a9c66b1f,#a9c66b1f),var(--bg);border:1px solid var(--green);border-radius:2px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;display:none;position:sticky}.result-banner.show{display:flex}.result-banner b{font:700 20px/1.1 var(--display);color:var(--strong)}.result-banner b em{color:var(--green);font-style:normal}.result-banner small{color:var(--fg);font-size:12.5px;display:block}@media (max-width:1023px){.topbar{gap:10px}.lockup .name span{display:none}.lockup .name{min-width:0}.lockup .name b{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.lockup{flex:auto;min-width:0}.menu-btn{border:1px solid var(--rule);background:var(--card);min-height:40px;color:var(--strong);font:600 13px/1 var(--sans);cursor:pointer;border-radius:2px;flex:none;align-items:center;padding:0 14px;display:inline-flex}.menu-btn[aria-expanded=true]{border-color:var(--green)}.menu-btn:focus-visible{outline:2px solid var(--green);outline-offset:3px}.nav{background:var(--bg);border-bottom:1px solid var(--rule);flex-direction:column;align-items:stretch;gap:0;padding:8px 0 16px;display:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 24px 32px -12px #0009}.nav.open{display:flex}.nav-group{flex-direction:column;align-items:stretch;gap:0;padding:8px 0}.nav-group+.nav-group{border-left:0;border-top:1px solid var(--rule);padding-left:0}.nav-label{padding:8px 0 4px}.nav a{min-height:44px;font-size:15px}.nav a:after{width:24px;bottom:8px;right:auto}}@media (max-width:760px){.toc{scrollbar-width:none;flex-wrap:nowrap;padding:4px 0;position:static;overflow-x:auto}.toc::-webkit-scrollbar{display:none}.toc a{flex:none}}.eyebrow,.track .tag,.track .meta,.signup label,.foot,.lesson-bar .crumbs,.q .qn{font-family:var(--sans);letter-spacing:.02em}.burn-body{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.burn-story{flex-direction:column;gap:12px;max-width:66ch;display:flex}.burn-story p{color:var(--fg);margin:0;font-size:15.5px;line-height:1.75}.burn-story blockquote{font:600 17px/1.6 var(--sans);color:var(--strong);background:#e0705c14;border-left:3px solid #e0705c;margin:4px 0;padding:12px 16px}.burn-story .burn-link{color:var(--muted);font-size:13.5px}.burn-story .burn-link a{color:var(--green)}.burn-me{background:var(--card);border:1px solid var(--rule);border-radius:2px;flex-direction:column;gap:8px;padding:16px;display:flex}.burn-me b{font:700 15px/1.3 var(--display);color:var(--strong)}.burn-me span{color:var(--fg);font-size:13.5px;line-height:1.65}@media (max-width:760px){.burn-body{grid-template-columns:1fr}}.hero h1{text-wrap:balance;font-size:clamp(30px,4.2vw,46px);line-height:1.18}.kw-wrap{background:0 0;margin:0 0 20px}.kw-wrap .iso-figure{margin:0}.kw-wrap .iso-plate{padding:44px 16px 40px;display:block}.kw-wrap .iso-stage{width:100%}.kw-wrap .iso-svg{width:100%;max-width:980px;height:auto}.kw-cap{color:var(--fg);align-items:center;gap:14px;margin-top:12px;font-size:14px;line-height:1.65;display:flex}.kw-cap .kw-btn{flex:none}.kw-splash{z-index:50;background:var(--bg);place-items:center;padding:16px;transition:opacity .35s,visibility 0s linear .35s;animation:.35s 8s forwards kw-splash-out;display:grid;position:fixed;inset:0}.kw-splash[data-out]{opacity:0;visibility:hidden;pointer-events:none}.kw-splash-in{flex-direction:column;align-items:center;gap:12px;width:min(860px,100%);display:flex}.kw-splash-in .kw-wrap{width:100%;margin:0}.kw-splash-in p{font:500 14px/1.4 var(--sans);color:var(--muted);margin:0}@keyframes kw-splash-out{to{opacity:0;visibility:hidden;pointer-events:none}}@media (max-width:760px){.kw-cap{flex-direction:column;align-items:flex-start}.kw-wrap .iso-plate{padding:40px 8px 64px}}@media (prefers-reduced-motion:reduce){.kw-splash{transition:none}}.segbar{gap:3px;margin-top:auto;padding-top:4px;display:flex}.segbar i{background:var(--rule);border-radius:1px;flex:1;height:4px;transition:background .3s}.segbar i.on{background:var(--green)}.path-next{font:13px/1.5 var(--sans);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.path-next b{color:var(--fg);font-weight:600}.path-next.fin,.track.path:hover .path-next b{color:var(--green)}@media (prefers-reduced-motion:reduce){.segbar i{transition:none}}.lv{min-height:20px;font:600 10.5px/1 var(--sans);letter-spacing:.02em;border:1px solid var(--rule);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;padding:0 7px;display:inline-flex}.lv.basic{color:var(--green);border-color:#a9c66b8c}.lv.next{color:#d9a441;background:0 0;border-color:#d9a4418c;border-radius:999px;padding:0 7px;display:inline-flex}.lv.advanced{color:var(--strong);border-color:#f2ede480}.first-board{font:13.5px/1.65 var(--sans);color:var(--muted);max-width:60ch}.first-board b{color:var(--strong);font-weight:600}.intro-mark{object-fit:contain;filter:drop-shadow(0 4px 10px #00000073);align-self:flex-start;width:80px;height:80px;margin:0 0 4px}.intro-mark.icon{border:1px solid var(--rule);background:var(--card);filter:none;border-radius:2px;width:56px;height:56px;padding:12px}@media (max-width:560px){.intro-mark{width:56px;height:56px}.intro-mark.icon{width:44px;height:44px;padding:9px}}
.iso{--anatomy-page:#0b0b0b;--anatomy-card:#131313;--anatomy-text:#a3a3a3;--anatomy-strong:#e6e6e6;--anatomy-muted:#6e6e6e;--anatomy-paper:#131313;--anatomy-face:#1b1b1b;--anatomy-top:#1c1c1c;--anatomy-shade-0:#0f0f0f;--anatomy-shade-1:#121212;--anatomy-shade-2:#151515;--anatomy-shade-3:#181818;--anatomy-lit-top:#262626;--anatomy-lit-shade:#1d1d1d;--anatomy-hi:#d4d4d4;--anatomy-mid:#6a6a6a;--anatomy-lo:#3e3e3e;--anatomy-faint:#2a2a2a;--anatomy-lit:#fff;--anatomy-halo:#050505;--anatomy-halo-opacity:.9;--anatomy-dot:#e6e6e6;--anatomy-red:#ff6b6b;--anatomy-green:#6be0a0;--anatomy-blue:#6b9bff;--anatomy-weight:.6px;--anatomy-ease:cubic-bezier(.32,.72,0,1);--anatomy-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;--anatomy-lift:inset 0 1px 0 0 #ffffff0a,inset 0 0 0 1px #ffffff06,0 0 0 1px #00000026,0 1px 1px -.5px #00000014,0 3px 3px -1.5px #00000014,0 6px 6px -3px #00000014,0 12px 12px -6px #00000014}.iso[data-theme=light]{--anatomy-page:#f2f2ef;--anatomy-card:#fbfbfa;--anatomy-text:#57575a;--anatomy-strong:#18181a;--anatomy-muted:#8c8c90;--anatomy-paper:#fbfbfa;--anatomy-face:#fff;--anatomy-top:#fff;--anatomy-shade-0:#dcdcd9;--anatomy-shade-1:#e5e5e2;--anatomy-shade-2:#ededea;--anatomy-shade-3:#f4f4f1;--anatomy-lit-top:#fff;--anatomy-lit-shade:#eeeeeb;--anatomy-hi:#26262a;--anatomy-mid:#8a8a8f;--anatomy-lo:#b4b4b8;--anatomy-faint:#d4d4d6;--anatomy-lit:#000;--anatomy-halo:#8a8a80;--anatomy-halo-opacity:.32;--anatomy-dot:#3a3a3e;--anatomy-red:#e5484d;--anatomy-green:#30a46c;--anatomy-blue:#3e63dd;--anatomy-lift:inset 0 1px 0 0 #fff,0 0 0 1px #0000000f,0 1px 1px -.5px #0000000a,0 3px 3px -1.5px #0000000a,0 6px 6px -3px #0000000a,0 12px 12px -6px #0000000a}.iso-svg{width:100%;height:auto;display:block;overflow:visible}.iso-svg path,.iso-svg circle{vector-effect:non-scaling-stroke}.iso-fill{fill:var(--anatomy-paper);stroke:none}.iso-solid[data-lit]>.iso-fill{fill:var(--anatomy-face)}.iso-shade,.iso-top{stroke:none}.iso-shade[data-shade="0"]{fill:var(--anatomy-shade-0)}.iso-shade[data-shade="1"]{fill:var(--anatomy-shade-1)}.iso-shade[data-shade="2"]{fill:var(--anatomy-shade-2)}.iso-shade[data-shade="3"]{fill:var(--anatomy-shade-3)}.iso-top{fill:var(--anatomy-top)}.iso-solid[data-lit]>.iso-top{fill:var(--anatomy-lit-top)}.iso-solid[data-lit]>.iso-shade{fill:var(--anatomy-lit-shade)}.iso-solid[data-seamless]>.iso-shade,.iso-solid[data-seamless]>.iso-top{stroke-width:.4px;stroke-linejoin:round}.iso-solid[data-seamless]>.iso-shade[data-shade="0"]{stroke:var(--anatomy-shade-0)}.iso-solid[data-seamless]>.iso-shade[data-shade="1"]{stroke:var(--anatomy-shade-1)}.iso-solid[data-seamless]>.iso-shade[data-shade="2"]{stroke:var(--anatomy-shade-2)}.iso-solid[data-seamless]>.iso-shade[data-shade="3"]{stroke:var(--anatomy-shade-3)}.iso-solid[data-seamless]>.iso-top{stroke:var(--anatomy-top)}.iso-solid[data-seamless][data-lit]>.iso-top{stroke:var(--anatomy-lit-top)}.iso-solid[data-seamless][data-lit]>.iso-shade{stroke:var(--anatomy-lit-shade)}.iso-solid[data-lit]>.iso-edge{stroke:var(--anatomy-lit)}.iso-halo{fill:var(--anatomy-halo);stroke:none;filter:blur(9px);opacity:var(--anatomy-halo-opacity);transform:translateY(3px)}.iso-line{fill:none;stroke:var(--anatomy-lo);stroke-width:var(--anatomy-weight);stroke-linecap:round;stroke-linejoin:round}.iso-line[data-tone=hi]{stroke:var(--anatomy-hi)}.iso-line[data-tone=mid]{stroke:var(--anatomy-mid)}.iso-line[data-tone=lo]{stroke:var(--anatomy-lo)}.iso-line[data-tone=faint]{stroke:var(--anatomy-faint)}.iso-line[data-tone=lit]{stroke:var(--anatomy-lit)}.iso-line[data-tone=red]{stroke:var(--anatomy-red)}.iso-line[data-tone=green]{stroke:var(--anatomy-green)}.iso-line[data-tone=blue]{stroke:var(--anatomy-blue)}.iso-line[data-dotted]{stroke-dasharray:.01 3.5;stroke-width:1px}.iso-line[data-dashed]{stroke-dasharray:3 3}.iso-line[data-flow]{stroke-dasharray:2 6}.iso-wire-end{fill:var(--anatomy-paper);stroke:var(--anatomy-lo);stroke-width:var(--anatomy-weight)}.iso-wire[data-tone=hi] .iso-wire-end{stroke:var(--anatomy-hi)}.iso-wire[data-tone=mid] .iso-wire-end{stroke:var(--anatomy-mid)}.iso-wire[data-tone=faint] .iso-wire-end{stroke:var(--anatomy-faint)}.iso-wire[data-tone=lit] .iso-wire-end{stroke:var(--anatomy-lit)}.iso-dots circle{fill:var(--anatomy-dot);stroke:none;opacity:.32}.iso-dots[data-tone=hi] circle{opacity:.85}.iso-dots[data-tone=mid] circle{opacity:.45}.iso-dots[data-tone=lo] circle{opacity:.22}.iso-dots[data-tone=faint] circle{opacity:.12}.iso-face-text{fill:var(--anatomy-mid);font-family:var(--anatomy-mono);letter-spacing:.04em}.iso-face-text[data-tone=hi]{fill:var(--anatomy-hi)}.iso-face-text[data-tone=lo]{fill:var(--anatomy-lo)}.iso-face-text[data-tone=faint]{fill:var(--anatomy-faint)}.tb-body{fill:var(--anatomy-shade-2);stroke:none}.tb-shine{fill:var(--anatomy-top);stroke:none}.tb-shade{fill:var(--anatomy-shade-0);stroke:none}.tb-ring{fill:none;stroke:var(--anatomy-lo);stroke-width:.45px;stroke-linecap:butt;stroke-linejoin:round}.tb-ring[data-tone=mid]{stroke:var(--anatomy-mid)}.tb-ring[data-tone=faint]{stroke:var(--anatomy-faint)}.tb-ring[data-tone=hi]{stroke:var(--anatomy-hi)}@keyframes iso-flow{to{stroke-dashoffset:-32px}}@keyframes iso-pulse{0%,to{opacity:.18}12%{opacity:1}40%{opacity:.18}}.iso-line[data-flow]{animation:1.6s linear infinite iso-flow}.iso-dots circle[data-pulse]{animation:1.6s step-end infinite iso-pulse;animation-delay:var(--pulse-at,0s)}.iso-figure{margin:32px 0 36px}.iso-plate{background:var(--anatomy-card);box-shadow:0 0 0 1px var(--anatomy-mid);--anatomy-paper:var(--anatomy-card);border-radius:0;padding:52px 24px;position:relative}.iso-plate-corners{pointer-events:none;position:absolute;inset:18px 20px}.iso-plate-corner{color:var(--anatomy-muted);font-family:var(--anatomy-mono);letter-spacing:.04em;white-space:nowrap;font-size:10.5px;line-height:1;position:absolute}.iso-plate-corner[data-corner=fig]{color:var(--anatomy-text);top:0;left:0}.iso-plate-corner[data-corner=title]{text-transform:uppercase;letter-spacing:.1em;top:0;right:0}.iso-plate-corner[data-corner=hint]{text-transform:uppercase;letter-spacing:.1em;bottom:0;left:0}.iso-plate-corner[data-corner=readout]{color:var(--anatomy-text);font-variant-numeric:tabular-nums;bottom:0;right:0}.iso-plate .iso-svg{margin:0 auto}.iso-legend{color:var(--anatomy-muted);gap:8px;margin-top:12px;font-size:13px;line-height:1.55;display:grid}.iso-keys{flex-wrap:wrap;gap:6px 18px;display:flex}.iso-key{align-items:center;gap:7px;display:inline-flex}.iso-swatch{flex:none;width:16px;height:10px;overflow:visible}.iso-swatch path{fill:none;stroke:var(--anatomy-hi);stroke-width:1px;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.iso-swatch[data-mark=raised] path,.iso-swatch[data-mark=flat] path{stroke:var(--anatomy-mid)}.iso-swatch[data-mark=lit] path{stroke:var(--anatomy-lit)}.iso-swatch[data-mark=dim] path{stroke:var(--anatomy-lo)}.iso-swatch[data-mark=dotted] path{stroke-dasharray:.01 3;stroke-width:1.4px}.iso-swatch[data-mark=dashed] path{stroke-dasharray:3 2.5}.iso-swatch[data-mark=red] path{stroke:var(--anatomy-red)}.iso-swatch[data-mark=green] path{stroke:var(--anatomy-green)}.iso-swatch[data-mark=blue] path{stroke:var(--anatomy-blue)}.iso-swatch-crease{stroke:var(--anatomy-lo)!important}@media (max-width:560px){.iso-plate{padding:48px 12px 70px}.iso-plate-corner[data-corner=hint]{bottom:18px}}@media (prefers-reduced-motion:reduce){.iso-line[data-flow],.iso-dots circle[data-pulse]{animation:none}}:root{--bg:#15120e;--card:#1c1813;--fg:#c9c0b2;--strong:#f2ede4;--muted:#8c8273;--rule:#2a241c;--green:#a9c66b;--green-dim:#7e9850;--display:"Chakra Petch","IBM Plex Sans Thai",system-ui,sans-serif;--sans:"IBM Plex Sans Thai","IBM Plex Sans",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable}html,body{min-height:100%}body{background:var(--bg);color:var(--fg);font:15px/1.7 var(--sans);-webkit-font-smoothing:antialiased;margin:0}.wrap{flex-direction:column;gap:40px;width:min(960px,100%);margin:0 auto;padding-block:44px 96px;padding-inline:16px;display:flex;position:relative}.bracket{border:2px solid var(--green);pointer-events:none;width:26px;height:26px;position:absolute}.bracket.tl{border-bottom:0;border-right:0;top:18px;left:16px}.bracket.br{border-top:0;border-left:0;bottom:60px;right:16px}.lockup{align-items:center;gap:14px;display:flex}.mark{background:#221d17;border-radius:2px;flex:none;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 0 0 1px #2a241c}.mark svg{width:30px;height:30px}.lockup .name{flex-direction:column;gap:3px;display:flex}.lockup .name b{font:700 18px/1.1 var(--display);color:var(--strong)}.lockup .name b em{color:var(--green);font-style:normal}.lockup .name span{font:500 10.5px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}.intro{flex-direction:column;gap:12px;max-width:68ch;display:flex}.eyebrow{font:600 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--green-dim)}.intro h1{font:700 clamp(30px,4.8vw,48px)/1.1 var(--display);color:var(--strong);text-wrap:balance;margin:0}.intro h1 em{color:var(--green);font-style:normal}.intro p{margin:0}.intro p b{color:var(--strong)}.toc{top:env(safe-area-inset-top,0px);z-index:5;background:linear-gradient(var(--bg) 80%,transparent);scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;gap:8px;padding:10px 0;display:flex;position:sticky;overflow-x:auto}.toc::-webkit-scrollbar{display:none}.toc a{scroll-snap-align:start;border:1px solid var(--rule);background:var(--card);min-height:40px;color:var(--fg);font:600 13px/1 var(--mono);border-radius:2px;flex:none;align-items:center;gap:8px;padding:0 14px;text-decoration:none;display:inline-flex}.toc a b{color:var(--green);font-size:15px}.toc a:hover{border-color:var(--green)}.toc a.locked{opacity:.55}.toc a .lk{font-size:11px;line-height:1}.toc a:focus-visible{outline:2px solid var(--green);outline-offset:2px}@media (max-width:760px){.toc{scrollbar-width:none;flex-wrap:nowrap;padding:4px 0;position:static;overflow-x:auto}.toc a{flex:none}}.figure{border-top:1px solid var(--rule);flex-direction:column;gap:18px;padding-top:12px;scroll-margin-top:70px;display:flex}.fig-head{align-items:flex-start;gap:14px;display:flex}.fig-head .letter{background:var(--green);color:#15120e;width:44px;height:44px;font:700 24px/44px var(--display);text-align:center;border-radius:2px;flex:none}.fig-head h2{font:700 clamp(18px,2.2vw,24px)/1.2 var(--display);color:var(--strong);text-wrap:balance;margin:2px 0 4px}.fig-head p{max-width:70ch;margin:0;font-size:13.5px;line-height:1.55}.fig-head .scene{gap:8px;margin:8px 0 12px;padding:0;display:grid}.fig-head .scene .st-img{aspect-ratio:3;object-fit:cover;border:1px solid var(--rule);border-radius:4px;width:100%;height:auto;display:block}.fig-head .scene figcaption{gap:3px;display:grid}.fig-head .scene-k{font:600 11px/1.4 var(--sans);letter-spacing:.03em;color:var(--green)}.fig-head .scene p{color:var(--strong);font-size:13.5px;line-height:1.55}.st-lede{color:var(--fg);opacity:.85}.iso-plate-corner:empty{display:none}@media (min-width:761px){.is-shut .iso-plate{align-items:flex-start;gap:24px;padding-top:40px;display:flex}.is-shut .iso-plate .fig-head{z-index:2;position:relative}.figure:not(.is-shut) .iso-figure{margin:0}.figure:not(.is-shut) .iso-plate{flex-direction:column;gap:10px;padding:14px 20px 34px;display:flex}.figure:not(.is-shut) .fig-head{z-index:2;align-items:center;position:relative}.figure:not(.is-shut) .fig-head>div{flex-wrap:wrap;flex:auto;align-items:center;gap:2px 14px;min-width:0;display:flex}.figure:not(.is-shut) .fig-head .eyebrow,.figure:not(.is-shut) .fig-head>div>p,.figure:not(.is-shut) .bd-maps{flex-basis:100%}.figure:not(.is-shut) .fig-head h2{flex:auto;margin:0}.figure:not(.is-shut) .fig-head .scene{display:none}.figure:not(.is-shut) .story-link,.figure:not(.is-shut) .board-open{flex:none;margin:0}.figure:not(.is-shut) .bd-maps{flex-direction:row;gap:24px;margin:6px 0 0}}@media (max-width:760px){.iso-plate .fig-head{margin:-24px 0 10px}}.iso-plate{box-shadow:0 0 0 1px var(--rule);border-radius:2px}.iso-plate-corner{font-family:var(--mono)}.iso-plate-corner[data-corner=title]{color:var(--green)}.iso-plate-corner[data-corner=readout]{white-space:normal;text-align:right;max-width:60%;line-height:1.3}.iso-legend{font-family:var(--sans)}.iso{--good:#a9c66b;--bad:#e0705c;--anatomy-page:#15120e;--anatomy-card:#1c1813;--anatomy-paper:#1c1813;--anatomy-lit:#a9c66b;--anatomy-strong:#f2ede4}.scene{position:relative}@media (min-width:761px){.figure.is-near .stepcard{z-index:5;position:sticky;bottom:12px;box-shadow:0 -10px 30px #00000059}}@media (max-width:640px){.iso-plate{padding:40px 12px 52px}.iso-plate-corners{inset:12px}.iso-plate-corner[data-corner=hint]{display:none}.iso-plate-corner[data-corner=readout]{text-align:left;max-width:none;font-size:11px;left:0;right:0}.iso-plate-corner[data-corner=title]{font-size:9.5px}.mobile-tip{display:block}}.mobile-tip{font:12px/1.5 var(--sans);color:var(--muted);margin-top:-8px;display:none}.iso-plate-corner[data-corner=readout]:empty{display:none}.stepcard{background:var(--card);border:1px solid var(--rule);border-radius:4px;flex-direction:column;gap:10px;padding:14px 18px 16px;display:flex}.sc-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.sc-count{font:600 12px/1 var(--mono);color:var(--muted);letter-spacing:.06em}.sc-count b{color:var(--strong);font-size:14px}.sc-dots{gap:4px;display:flex}.sc-dot{cursor:pointer;background:0 0;border:0;border-radius:2px;width:28px;height:28px;padding:0;position:relative}.sc-dot:before{content:"";background:var(--rule);border-radius:2px;transition:background .16s,transform .16s;position:absolute;inset:9px}.sc-dot.done:before{background:var(--green-dim)}.sc-dot.active:before{background:var(--green);transform:scale(1.35)}.sc-dot:hover:before{background:var(--muted)}.sc-dot:focus-visible{outline:2px solid var(--green);outline-offset:2px}.sc-bar{background:var(--rule);border-radius:3px;height:6px;overflow:hidden}.sc-bar i{background:var(--green);border-radius:3px;width:0;height:100%;transition:width .32s ease-out;display:block}.sc-step{display:none}.sc-step.active{flex-direction:column;gap:4px;min-height:76px;display:flex}.ask{border:1px solid var(--rule);background:var(--card);color:var(--fg);border-radius:6px;width:min(640px,100vw - 32px);max-height:min(90svh,760px);padding:0;box-shadow:0 30px 80px #0009}.ask::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a0805bd}.ask-body{padding:18px 20px 20px}.ask-job{font:700 18px/1.3 var(--display);color:var(--strong);text-wrap:balance}.sc-choice{flex-direction:column;gap:12px;display:flex}.sc-choice[hidden]{display:none}.sc-opts{gap:10px;display:grid}.sc-opt{text-align:left;cursor:pointer;border:1px solid var(--rule);background:var(--bg);color:var(--strong);font:15px/1.6 var(--sans);border-radius:14px 14px 14px 4px;margin:0;padding:12px 16px;transition:border-color .15s,background .15s}.sc-opt q{quotes:"“" "”"}.sc-opt:hover:not(:disabled){border-color:var(--green)}.sc-opt:focus-visible{outline:2px solid var(--green);outline-offset:2px}.sc-opt:disabled{cursor:default}.sc-opt.is-right{border-color:var(--green);background:#a9c66b1f}.sc-opt.is-wrong{color:var(--fg);background:#e0705c14;border-color:#e0705c;animation:.4s bd-shake}.sc-opt:disabled:not(.is-right):not(.is-wrong){opacity:.5}.sc-verdict{border-left:3px solid var(--green);font:13.5px/1.5 var(--sans);color:var(--strong);background:#a9c66b14;border-radius:3px;margin:0;padding:8px 12px}.sc-verdict[hidden]{display:none}.sc-verdict.no{background:#e0705c14;border-color:#e0705c}.sc-eyebrow{font:600 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--green)}.sc-step b{font:600 18px/1.25 var(--display);color:var(--strong)}.sc-step p{font:14px/1.6 var(--sans);color:var(--fg);margin:0}.rule .ask{display:block}.rule .ask i{vertical-align:top;font:600 12px/1.6 var(--sans);font-style:normal;display:inline-block}.sc-step code,.st-slide code,.st-pairs code,.fig-head code,.rule code{font:12.5px/1.2 var(--mono);color:var(--strong);white-space:nowrap;background:#ffffff12;border-radius:3px;padding:1px 5px}.story-link{color:var(--green);font:13px/1.5 var(--sans);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-self:flex-start;margin-top:8px;padding:0;text-decoration:underline}.story-link:hover{color:var(--strong)}.board-open{background:var(--green);color:#15120e;min-height:46px;font:700 15px/1 var(--display);letter-spacing:.04em;cursor:pointer;box-shadow:0 4px 0 var(--green-dim);border:0;border-radius:4px;margin-top:14px;padding:0 22px;display:block}.board-open:active{box-shadow:0 1px 0 var(--green-dim);transform:translateY(3px)}.board-open:focus-visible{outline:2px solid var(--strong);outline-offset:3px}.figure:not(.is-shut) .board-open{min-height:34px;color:var(--fg);border:1px solid var(--rule);box-shadow:none;font:600 13px/1 var(--display);background:0 0;margin-top:10px;padding:0 14px}.figure:not(.is-shut) .board-open:hover{color:var(--strong);border-color:var(--muted)}.is-shut .fig-head .scene .st-img{aspect-ratio:auto;object-fit:contain;height:auto}html:has(.figure.is-open){overflow:hidden}.figure.is-open{max-height:calc(100svh - var(--lock-top,0px) - 8px);overscroll-behavior:contain;overflow:auto}.figure.is-open>*{flex-shrink:0}.is-shut .scene.board,.is-shut .iso-plate-corners,.is-shut .iso-legend,.is-shut>.mobile-tip,.is-shut>.stepcard,.is-shut>.rule,.is-shut>.related,.is-shut>.beyond{display:none}@media (min-width:761px){.is-shut .iso-plate .fig-head{flex:auto}.is-shut .fig-head .scene{max-width:760px}}.figure.is-started:not(.is-shut) .fig-head .scene,.figure[data-view=term] .iso-stage>.board,.figure[data-view=term] .bd-wire,.figure[data-view=term] .bd-key,.figure[data-view=term] .bd-ticket,.figure:not([data-view=term]) .bd-term,.figure[data-view=term] .sc-readout,.figure[data-view=out] .sc-readout{display:none}:is(.figure[data-view=out] .bd-side:has(.bd-page) .bd-file,.figure[data-view=out] .bd-side:has(.bd-page) .bd-group,.figure[data-view=out] .bd-side:has(.bd-page) .bd-start){display:none!important}.figure[data-view=out] .bd-side:not(:has(.bd-page)) .bd-file:not(.open):not(.ripple):not(.added):not(.bd-new):not(.rejected){display:none!important}.figure[data-view=out] .bd-group:not(:has(.bd-file.open,.bd-file.ripple,.bd-file.added,.bd-file.rejected)){display:none!important}.figure[data-view=out] .bd-page .mk-browser{max-height:calc(100svh - 340px);overflow:auto}.figure[data-view=board] .bd-page{display:none}@media (min-width:761px){:is(html:has(.figure.is-open) .topbar,html:has(.figure.is-open) .toc){display:none}.figure.is-open{height:calc(100svh - var(--lock-top,0px) - 8px);border-top:0;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:8px;width:calc(100vw - 32px);max-height:none;margin-left:calc(50% - 50vw + 16px);padding-top:0;scroll-margin-top:0;display:grid;overflow:hidden}.figure.is-open .sc-panels{max-width:900px}.figure.is-open>.iso-figure{flex-direction:column;min-width:0;min-height:0;display:flex}.figure.is-open .iso-plate{overscroll-behavior:contain;flex:auto;min-height:0;overflow:auto}.figure.is-open>.stepcard{box-shadow:none;position:static}.figure.is-open>.rule,.figure.is-open>.related,.figure.is-open>.beyond,.figure.is-open>.mobile-tip{display:none}.stepcard{gap:8px;padding:10px 16px 12px}.sc-step.active{min-height:0}.sc-step b{font-size:16px}.sc-step p{font-size:14px;line-height:1.55}.sc-readout{padding:8px 12px;font-size:12.5px}.sc-next,.sc-prev{min-height:42px}.figure.is-near .stepcard{bottom:6px}.figure{gap:12px}.figure:not(.is-shut) .stepcard{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"bar bar""panels top""panels actions""readout actions""lock actions";align-items:start;gap:6px 20px;padding:0 16px 10px;display:grid}.figure:not(.is-shut) .sc-bar{border-radius:0;grid-area:bar;height:4px;margin:0 -16px 6px}.figure:not(.is-shut) .sc-bar i{border-radius:0}.figure:not(.is-shut) .sc-top{grid-area:top;justify-content:flex-end;align-self:center}.figure:not(.is-shut) .sc-panels{grid-area:panels}.figure:not(.is-shut) .sc-readout{grid-area:readout}.figure:not(.is-shut) .sc-lock{grid-area:lock}.figure:not(.is-shut) .sc-actions{grid-area:actions;align-self:end;min-width:310px}.figure:not(.is-shut) .sc-step.active{flex-wrap:wrap;align-items:baseline;gap:2px 10px;display:flex}.figure:not(.is-shut) .sc-step p{flex-basis:100%}.figure.is-tight .bd-key,.figure.is-tight .iso-legend,.figure.is-tight .iso-plate-corner[data-corner=hint]{display:none}.figure.is-tight .bd-ticket{margin-bottom:10px;padding:5px 10px}.figure.is-tight .iso-plate{gap:6px;padding:10px 16px 14px}.figure.is-tight .board{gap:18px}.figure.is-tight .bd-file{gap:4px;padding:6px 9px}.figure.is-tight .bd-m,.figure.is-tight .bd-flow .bd-m{padding:5px 9px}.figure.is-tight .bd-side.bd-flow{gap:18px}.figure.is-tight .bd-flow .bd-m+.bd-m{margin-top:16px}.figure.is-tight .bd-flow .bd-m+.bd-m:before{top:-15px}.figure.is-tight .bd-flow .bd-start~.bd-file[data-file]:before,.figure.is-tight .bd-flow .bd-file[data-file]~.bd-file[data-file]:before{top:-19px}.figure.is-tight .stepcard{row-gap:4px;padding-bottom:8px}}.story{border:1px solid var(--rule);background:var(--card);color:var(--fg);border-radius:6px;width:min(580px,100vw - 32px);max-height:min(86svh,760px);padding:0;box-shadow:0 30px 80px #0009}.story::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a0805bd}.st-head{border-bottom:1px solid var(--rule);align-items:center;gap:14px;padding:18px 20px 14px;display:flex}.st-head .letter{background:var(--green);color:#15120e;width:40px;height:40px;font:700 22px/40px var(--display);text-align:center;border-radius:2px;flex:none}.st-head b{font:700 18px/1.25 var(--display);color:var(--strong);text-wrap:balance;display:block}.st-close{border:1px solid var(--rule);color:var(--fg);width:34px;height:34px;font:20px/1 var(--sans);cursor:pointer;background:0 0;border-radius:3px;flex:none;margin-left:auto}.st-close:hover{color:var(--strong);border-color:var(--muted)}.st-slides{padding:18px 20px 6px}.st-slide{flex-direction:column;gap:12px;display:none}.st-slide.active{display:flex}.st-burn{background:#e0705c14;border-left:3px solid #e0705c;border-radius:2px;flex-direction:column;gap:4px;padding:10px 14px;display:flex}.st-burn b{font:700 13px/1.3 var(--display);color:#e0705c}.st-burn .st-burn-who{font:12px/1.4 var(--sans);color:var(--muted)}.st-slide .st-burn p{font-size:14px;line-height:1.65}.st-img{border:1px solid var(--rule);background:#1a1510;border-radius:4px;width:100%;height:auto;display:block}.st-eyebrow{font:600 12px/1.4 var(--sans);color:var(--green-dim);letter-spacing:.03em}.st-slide p{font:15.5px/1.7 var(--sans);color:var(--strong);margin:0}.st-pairs{border-collapse:collapse;width:100%;font:13.5px/1.5 var(--sans)}.st-pairs th{text-align:left;font:600 12px/1.4 var(--sans);color:var(--green-dim);border-bottom:1px solid var(--rule);padding:0 10px 8px 0}.st-pairs td{border-bottom:1px solid var(--rule);vertical-align:top;color:var(--fg);padding:8px 10px 8px 0}.st-pairs td:first-child{color:var(--strong);white-space:nowrap;font-weight:600}.st-pairs tr:last-child td{border-bottom:0}.st-actions{justify-content:space-between;align-items:center;gap:12px;padding:14px 20px 18px;display:flex}.st-dots{gap:6px;display:flex}.st-dots i{background:var(--rule);border-radius:50%;width:8px;height:8px}.st-dots i.on{background:var(--green)}.st-next{background:var(--green);color:#15120e;min-width:180px;min-height:46px;font:700 15px/1 var(--display);letter-spacing:.04em;cursor:pointer;box-shadow:0 4px 0 var(--green-dim);border:0;border-radius:4px;flex:none;padding:0 20px}.st-next:active{box-shadow:0 1px 0 var(--green-dim);transform:translateY(3px)}.st-next:focus-visible{outline:2px solid var(--strong);outline-offset:3px}@media (max-width:760px){.story{width:calc(100vw - 20px);max-height:92svh}.st-pairs{font-size:12.5px}.st-pairs td:first-child{white-space:normal}.st-next{flex:1;min-width:0}}.next.is-locked a.btn{pointer-events:none;opacity:.4}.next-lock{font:13px/1.5 var(--sans);color:var(--muted);flex-basis:100%;margin:0}.next-lock:empty{display:none}.sc-readout{border-left:3px solid var(--green);min-height:22px;font:13px/1.5 var(--mono);color:var(--strong);background:#a9c66b14;border-radius:3px;margin:0;padding:10px 12px}.sc-readout:empty{display:none}.sc-actions{gap:10px;display:flex}.sc-prev{border:1px solid var(--rule);background:var(--card);min-width:112px;min-height:46px;color:var(--fg);font:600 14px/1 var(--display);cursor:pointer;border-radius:4px;flex:none;box-shadow:0 4px #1f1a14}.sc-prev:hover{border-color:var(--muted);color:var(--strong)}.sc-prev:focus-visible{outline:2px solid var(--green);outline-offset:3px}.sc-prev[disabled]{opacity:.4;cursor:default}.sc-lock{font:13px/1.5 var(--sans);color:var(--strong);background:#e0705c14;border-left:3px solid #e0705c;border-radius:3px;margin:0;padding:10px 12px;display:none}.sc-lock a{color:var(--green)}.is-locked .sc-lock{display:block}.is-locked .sc-readout,.is-locked .sc-panels{opacity:.45}.is-locked .iso-figure{opacity:.55;filter:saturate(.6)}.is-locked .sc-dots{pointer-events:none;opacity:.5}.eyebrow,.sc-eyebrow,.sc-readout,.iso-plate-corner,.toc a,.lesson-bar .crumbs,.foot{font-family:var(--sans);letter-spacing:0}.eyebrow,.sc-eyebrow{letter-spacing:.03em}.sc-next{background:var(--green);color:#15120e;min-height:46px;font:700 15px/1 var(--display);letter-spacing:.04em;cursor:pointer;box-shadow:0 4px 0 var(--green-dim);border:0;border-radius:4px;flex:1;transition:transform 80ms,box-shadow 80ms,background .16s,opacity .16s}.sc-next:hover{filter:brightness(1.05)}.sc-next:active{box-shadow:0 1px 0 var(--green-dim);transform:translateY(3px)}.sc-next:focus-visible{outline:2px solid var(--strong);outline-offset:3px}.is-done .sc-next{background:var(--card);color:var(--green);border:1px solid var(--green);box-shadow:0 4px 0 var(--green-dim)}.sc-next[disabled],.is-done .sc-next[disabled]{background:var(--rule);color:var(--muted);cursor:default;border-color:#0000;transform:none;box-shadow:0 4px #1f1a14}@media (prefers-reduced-motion:reduce){.sc-bar i,.sc-dot:before,.sc-next{transition:none}}.st-pairs-wrap{margin-top:2px}.st-pairs-wrap summary{cursor:pointer;font:600 13px/1.6 var(--sans);color:var(--green);list-style:none}.st-pairs-wrap summary:before{content:"▸ ";font-size:11px}.st-pairs-wrap[open] summary:before{content:"▾ "}.st-pairs-wrap[open] summary{margin-bottom:8px}.sc-copy{border:1px solid var(--rule);background:var(--card);min-height:32px;color:var(--fg);font:600 12px/1 var(--sans);cursor:pointer;white-space:nowrap;border-radius:3px;align-self:center;padding:0 12px}.sc-copy:hover{border-color:var(--green);color:var(--strong)}.sc-copy:focus-visible{outline:2px solid var(--green);outline-offset:2px}.rule{color:var(--strong);box-shadow:0 0 0 1px var(--rule);background:#221d17;border-radius:2px;flex-direction:column;gap:8px;padding:20px 22px;display:flex;position:relative;overflow:hidden}.rule:after{content:"";pointer-events:none;background:radial-gradient(closest-side,#a9c66b38,#0000 70%);border-radius:2px;width:320px;height:320px;position:absolute;bottom:-120px;right:-80px}.rule .eyebrow{color:var(--green)}.rule p{font:500 clamp(17px,2.3vw,22px)/1.45 var(--display);text-wrap:balance;margin:0}.rule small{font:13px/1.6 var(--sans);color:var(--fg)}.rule .ask{font:500 15px/1.6 var(--sans);color:var(--strong);border-left:3px solid var(--green);background:#a9c66b14;margin:0;padding:10px 12px 10px 132px}.rule .ask i{width:120px;color:var(--green);margin-left:-120px;line-height:1.9}@media (max-width:760px){.rule .ask{padding-left:12px}.rule .ask i{width:auto;margin:0;display:block}}.related{border:1px solid var(--rule);background:var(--card);border-radius:2px;flex-direction:column;gap:8px;padding:14px 18px;display:flex}.related .eyebrow{color:var(--green-dim)}.related ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.related li{font:14px/1.5 var(--sans)}.related a{color:var(--strong);border-bottom:1px solid var(--rule);text-decoration:none}.related a:hover{color:var(--green);border-color:var(--green)}.beyond{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:10px;display:grid}.beyond a{border:1px solid var(--rule);background:var(--card);border-radius:2px;flex-direction:column;gap:4px;padding:12px 16px;text-decoration:none;transition:border-color .16s;display:flex}.beyond a:hover{border-color:var(--green-dim)}.beyond a:focus-visible{outline:2px solid var(--green);outline-offset:2px}.beyond b{font:600 14px/1.4 var(--sans);color:var(--green)}.beyond span{font:13px/1.5 var(--sans);color:var(--fg)}.closing{border-top:1px solid var(--rule);flex-direction:column;gap:10px;max-width:70ch;padding-top:24px;display:flex}.closing h2{font:700 24px/1.2 var(--display);color:var(--strong);margin:0}.closing p{margin:0}.foot{font:12px/1.7 var(--mono);color:var(--muted);border-top:1px solid var(--rule);flex-direction:column;gap:4px;padding-top:14px;display:flex}.scene.board{display:block}.board{z-index:1;grid-template-columns:1fr 1fr;gap:20px;padding:4px 0 8px;display:grid;position:relative}.scene.board .iso-stage{position:relative}.bd-wire{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.bd-w{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.bd-w-L{stroke:var(--green)}.bd-w-R{stroke:#d9a441}.bd-w-rip{stroke:#d9a441;stroke-dasharray:4 4}.bd-w-bus{stroke:#ffffff52}.bd-side{flex-direction:column;gap:10px;min-width:0;display:flex}.bd-title{font:600 13px/1.4 var(--sans);color:var(--green);flex-direction:column;gap:2px;min-height:40px;display:flex}.bd-side[data-side=R] .bd-title{color:#e0705c}.is-split .bd-side[data-side=R] .bd-title{color:var(--green)}.bd-tt{align-items:center;gap:6px;display:inline-flex}.bd-tt .bd-g{width:14px;height:14px}.bd-side[data-side=L] .bd-g.warn,.bd-side[data-side=R] .bd-g.ok{display:none}.is-split .bd-side[data-side=R] .bd-g.ok{display:inline-block}.is-split .bd-side[data-side=R] .bd-g.warn{display:none}.bd-tally{flex-wrap:wrap;align-items:baseline;gap:2px 14px;min-height:22px;display:flex}.bd-stat{align-items:baseline;gap:5px;display:inline-flex}.bd-stat b{font:700 22px/1 var(--display);color:var(--strong);font-variant-numeric:tabular-nums;animation:.35s ease-out bd-pop}.bd-stat i{font:11.5px/1.3 var(--sans);color:var(--muted);font-style:normal}.bd-stat.bad b{color:#e0705c}.bd-stat.warn b{color:#d9a441}.bd-stat.zero b{color:var(--muted)}.bd-stat-note{font:600 12px/1.3 var(--sans);color:var(--green)}.bd-ticket{border:1px solid #a9c66b66;border-left:3px solid var(--green);font:500 14.5px/1.4 var(--sans);color:var(--strong);background:#a9c66b12;border-radius:3px;align-items:center;gap:10px;margin:0 0 12px;padding:9px 12px;display:flex}.bd-ticket[hidden]{display:none}.bd-ticket b{font:700 11.5px/1 var(--sans);letter-spacing:.02em;background:var(--green);color:#15120e;border-radius:2px;flex:none;padding:5px 7px}.bd-ticket.bd-in{animation:.5s ease-out bd-pulse}.bd-ticket .bd-q{-webkit-line-clamp:3;white-space:normal;contain:inline-size;-webkit-box-orient:vertical;flex:auto;min-width:0;display:-webkit-box;overflow:hidden}.bd-ticket .bd-copy{flex:none;min-height:28px;margin-left:auto;padding:0 10px;font-size:11.5px}.bd-file,.mk-sec{scroll-margin-top:104px}.mk-tell{scroll-margin-top:130px}.bd-ticket .bd-q:before{content:"“"}.bd-ticket .bd-q:after{content:"”"}.bd-g{fill:none;stroke:currentColor;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:12px;height:12px}.bd-g.grip path{stroke-width:2.1px}.bd-group{background:#ffffff06;border:1px solid #ffffff0a;border-radius:4px;flex-direction:column;gap:8px;padding:8px 8px 10px;display:flex}.bd-gl{font:600 11.5px/1.4 var(--sans);color:var(--muted);letter-spacing:.02em}.bd-file{border:1px solid var(--rule);background:#1a1510;border-radius:4px;flex-direction:column;gap:8px;padding:10px 12px;transition:border-color .2s,box-shadow .2s;display:flex}.bd-file[hidden]{display:none}.bd-file.open{border-color:var(--green);box-shadow:0 0 0 2px var(--green),0 0 32px #a9c66b38;background:#1f1a13}.bd-side[data-side=R] .bd-file.open{border-color:#d9a441;box-shadow:0 0 0 2px #d9a441,0 0 32px #d9a44138}.figure.is-started:not(.is-play) .bd-file[data-file]:not(.open):not(.ripple):not(.rejected):not(.added){opacity:.5;transition:opacity .25s}.bd-file.ripple{border-style:dashed;border-color:#d9a441}.bd-file.rejected{border-style:dashed;border-color:#e0705c}.bd-file.rejected .bd-badge{color:#e0705c}.bd-file.added{animation:.5s ease-out bd-pulse}.bd-file.bd-empty{color:var(--muted);font:12.5px/1.5 var(--sans);text-align:center;background:0 0;border-style:dashed}.bd-fh{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 8px;display:flex}.bd-name{font:600 13.5px/1.3 var(--mono);color:var(--strong);align-items:center;gap:6px;display:inline-flex}.bd-name .bd-g{color:var(--muted)}.bd-file.open .bd-name .bd-g,.bd-file.bd-new .bd-name .bd-g,.bd-file.bd-kept .bd-name .bd-g{color:var(--green)}.bd-side[data-side=R] .bd-file.open .bd-name .bd-g,.bd-file.ripple .bd-name .bd-g{color:#d9a441}.bd-file.rejected .bd-name .bd-g{color:#e0705c}.bd-owner{flex-wrap:wrap;justify-content:flex-end;gap:4px;min-width:0;margin-left:auto;display:flex}.bd-ow{max-width:100%;font:11px/1.35 var(--sans);color:var(--muted);text-align:left;background:#ffffff0d;border:1px solid #ffffff12;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-style:normal;display:inline-flex}.bd-ow .bd-g{width:10px;height:10px}.bd-ppl{color:var(--fg);display:inline-flex}.bd-ppl .bd-g{width:12px;height:12px}.bd-ppl .bd-g+.bd-g{margin-left:-3px}.bd-file.bd-new .bd-ppl,.bd-file.bd-kept .bd-ppl{color:inherit}.bd-file.bd-new .bd-ow,.bd-file.bd-kept .bd-ow{color:var(--green);border-color:#a9c66b4d}.bd-mock{font:12px/1.45 var(--sans);color:var(--fg);background:#0f0c09;border:1px solid #ffffff12;border-radius:4px;flex-direction:column;gap:6px;padding:10px;display:flex}.mk-h{font:700 15px/1.2 var(--display);color:var(--strong)}.mk-grad{background:linear-gradient(90deg,#b46cff,#ff6cb5,#ffa24d);color:#0000;-webkit-background-clip:text;background-clip:text}.mk-sub{font:11.5px/1.4 var(--sans);color:var(--muted)}.mk-row{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.mk-card{font:10.5px/1.35 var(--sans);color:var(--muted);border:1px solid #ffffff1a;border-radius:3px;min-height:34px;padding:6px}.mk-card b{color:var(--fg);margin-bottom:2px;font-size:11px;display:block}.mk-btn{background:var(--green);color:#15120e;font:600 11px/1.3 var(--sans);border-radius:999px;align-self:flex-start;padding:4px 10px;display:inline-block}.mk-btn.grad{color:#fff;background:linear-gradient(90deg,#b46cff,#ff6cb5)}.mk-dots{background:radial-gradient(circle,#ffffff8c 1px,#0000 1.6px) 0 0/14px 14px,radial-gradient(circle,#b46cff80 1px,#0000 1.6px) 7px 9px/18px 18px;border-radius:3px;height:20px}.mk-img{background:repeating-linear-gradient(135deg,#ffffff12 0 6px,#ffffff05 6px 12px);border-radius:3px;height:28px}.mk-p{font:12.5px/1.55 var(--sans);color:var(--fg);margin:0}.mk-p em{color:#e0705c;text-underline-offset:3px;font-style:normal;-webkit-text-decoration:underline dotted #e0705ccc;text-decoration:underline dotted #e0705ccc}.mk-p i{color:var(--green);font-style:normal}.bd-mock:has(.mk-sec){border-color:#ffffff1f;gap:0;padding:0;overflow:visible}.mk-sec{font:12px/1.45 var(--sans);border-radius:4px;flex-direction:column;gap:9px;padding:16px 18px;display:flex;position:relative}.mk-sec.cream{color:#2a241c;text-align:left;background:#f4efe4;align-items:flex-start}.mk-sec.dark{color:#e8e6f0;text-align:center;background:#0b0a14;align-items:center}.mk-nav{font:600 10px/1.4 var(--sans);opacity:.6;justify-content:space-between;align-self:stretch;display:flex}.mk-nav span+span{opacity:.8;font-weight:400}.mk-h1{font:800 19px/1.2 var(--display);letter-spacing:-.01em;color:inherit;margin:0}.mk-sec.cream .mk-h1 em{color:#c8441f;font-style:normal}.mk-lead{font:12px/1.5 var(--sans);opacity:.78;margin:0}.mk-cta{color:#fff;font:600 12px/1.3 var(--sans);background:#c8441f;border-radius:5px;padding:7px 14px;display:inline-block}.mk-cta.grad{background:linear-gradient(90deg,#7c5cff,#ff5ca8);border-radius:999px;box-shadow:0 0 18px #7c5cff80}.mk-particles{background:radial-gradient(circle,#ffffffb3 1px,#0000 1.7px) 3px 4px/16px 16px,radial-gradient(circle,#7c5cffcc 1.2px,#0000 1.9px) 11px 12px/22px 22px;border-radius:4px;align-self:stretch;height:26px}.mk-cards{grid-template-columns:repeat(3,1fr);align-self:stretch;gap:8px;display:grid}.mk-cards>div{text-align:center;font:10.5px/1.35 var(--sans);background:#ffffff0f;border:1px solid #ffffff14;border-radius:8px;padding:10px 8px}.mk-cards .mk-ico{margin-bottom:4px;font-size:17px;display:block}.mk-cards b{margin-bottom:2px;font-size:11px;display:block}.mk-stars{color:#f5b301;letter-spacing:.05em}.mk-shot{background:#fff;border:1px solid #00000024;border-radius:6px;grid-template-columns:1fr 1fr;align-self:stretch;gap:6px;padding:8px;display:grid}.mk-shot>div{background:#f7f3ea;border-radius:4px;flex-direction:column;gap:4px;padding:6px;display:flex}.mk-shot i{background:#e2dacb;border-radius:2px;height:7px;display:block}.mk-shot i.ok{background:#a9c66b}.mk-shot i.bad{background:#e0705c}.mk-cap{font:10.5px/1.4 var(--sans);opacity:.65}.mk-list{font:12px/1.45 var(--sans);flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.mk-list li{align-items:baseline;gap:8px;display:flex}.mk-list b{color:#f4efe4;width:18px;height:18px;font:700 10px/18px var(--sans);text-align:center;background:#2a241c;border-radius:50%;flex:none}.mk-bignum{font:800 34px/1 var(--display);margin:0}.mk-quote{font:12px/1.5 var(--sans);align-items:flex-start;gap:10px;display:flex}.mk-avatar{background:#d9c9a8;border:2px solid #fff;border-radius:50%;flex:none;width:30px;height:30px;box-shadow:0 0 0 1px #0000001a}.mk-quote small{opacity:.7;margin-top:3px;font-size:10.5px;display:block}.bd-term{grid-template-columns:1fr 1fr;gap:20px;padding:4px 0 8px;display:none}.figure[data-view=term] .bd-term{display:grid}.tm-pane{background:#0b0a08;border:1px solid #ffffff24;border-radius:8px;flex-direction:column;min-width:0;min-height:340px;display:flex;overflow:hidden;box-shadow:0 10px 30px #00000059}.tm-bar{font:600 11.5px/1.6 var(--sans);color:var(--green);background:#1a1510;border-bottom:1px solid #ffffff14;align-items:center;gap:5px;padding:7px 10px;display:flex}.tm-pane[data-pane=R] .tm-bar{color:#e0705c}.tm-bar i{background:#e0705c;border-radius:50%;flex:none;width:8px;height:8px}.tm-bar i+i{background:#d9a441}.tm-bar i+i+i{background:#a9c66b}.tm-bar span{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-left:6px;overflow:hidden}.tm-out{font:13px/1.65 var(--mono);color:var(--fg);white-space:pre-wrap;overflow-wrap:anywhere;flex:1;margin:0;padding:12px 14px;overflow:auto}.tm-l{display:block}.tm-l.k-prompt{color:var(--strong);display:inline}.tm-l.k-prompt.is-wrong{color:#e0705c}.tm-l.k-prompt+.tm-l,.tm-l.k-prompt+.tm-cur+.tm-l{margin-top:8px}.tm-l.k-open{color:var(--strong)}.tm-l.k-ripple{color:#d9a441}.tm-l.k-edit,.tm-l.k-add{color:var(--green);padding-left:1.5em}.tm-l.k-retest{color:var(--muted);padding-left:1.5em}.tm-l.k-broken{color:#e0705c;padding-left:1.5em}.tm-l.k-note{color:var(--muted);font-style:italic}.tm-l.k-sum{color:var(--strong);border-top:1px dashed #ffffff24;margin-top:8px;padding-top:6px}.tm-l.k-ok{color:var(--green);font-weight:600}.tm-l.k-bad{color:#e0705c;font-weight:600}.tm-cur{vertical-align:-.15em;background:var(--green);width:.6em;height:1.05em;margin-left:2px;animation:1s steps(2,end) infinite tm-blink;display:inline-block}@keyframes tm-blink{to{visibility:hidden}}.bd-page{margin:0 0 4px}.mk-browser{background:#0f0c09;border:1px solid #ffffff24;border-radius:8px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 10px 30px #00000059}.mk-bar{background:#1a1510;border-bottom:1px solid #ffffff14;align-items:center;gap:5px;padding:7px 10px;display:flex}.mk-bar i{background:#e0705c;border-radius:50%;width:8px;height:8px}.mk-bar i+i{background:#d9a441}.mk-bar i+i+i{background:#a9c66b}.mk-url{font:10px/1.6 var(--mono);color:var(--muted);background:#ffffff0f;border-radius:4px;flex:1;margin-left:6px;padding:2px 9px}.mk-browser .mk-sec{border-radius:0}.mk-browser .mk-sec+.mk-sec.cream{border-top:1px solid #00000014}.mk-browser .mk-sec+.mk-sec.dark{border-top:1px solid #ffffff12}.mk-browser [hidden]{display:none}.mk-sec.open{outline:2px solid var(--green);outline-offset:-2px}.bd-side[data-side=R] .mk-sec.open{outline-color:#d9a441}.mk-sec.ripple{outline-offset:-2px;outline:2px dashed #d9a441}.mk-blank{min-height:120px;font:12.5px/1.5 var(--sans);color:var(--muted);text-align:center;justify-content:center;align-items:center;padding:20px;display:none}.mk-browser:not(:has(.mk-sec:not([hidden]))) .mk-blank{display:flex}.mk-tell{transition:opacity .25s,filter .25s;position:relative}.mk-tell.on,.mk-tell.ok{outline-offset:4px;border-radius:4px;outline:2px dashed #e0705c}.mk-tell.ok{outline-color:#4c8a3b}.mk-tell.on:before,.mk-tell.ok:before{content:attr(data-n);z-index:3;color:#15120e;width:18px;height:18px;font:700 11px/18px var(--sans);text-align:center;background:#e0705c;border-radius:50%;position:absolute;top:-26px;left:-11px;box-shadow:0 1px #0006}.mk-tell.ok:before{color:#fff;background:#4c8a3b}.mk-tell.on:after,.mk-tell.ok:after{content:attr(data-note);z-index:2;color:#15120e;max-width:min(250px,64vw);height:18px;font:600 10.5px/18px var(--sans);text-align:left;white-space:nowrap;text-overflow:ellipsis;background:#e0705c;border-radius:0 9px 9px 0;padding:0 8px 0 12px;position:absolute;top:-26px;left:6px;overflow:hidden}.mk-tell.ok:after{color:#fff;background:#4c8a3b}.mk-tell.on,.mk-tell.ok{margin-top:24px}.mk-tell.cut{opacity:.22;filter:grayscale()}.mk-tell.cut:after{content:none}.bd-imports{font:11px/1.4 var(--mono);color:var(--muted)}.bd-imports b{color:var(--fg);font-weight:400}.bd-imports b.bad{color:#e0705c}.bd-badge{font:11px/1.4 var(--sans);color:#d9a441}.bd-badge:empty{display:none}.bd-methods{flex-wrap:wrap;gap:8px;min-height:30px;display:flex}.bd-m{border:1px solid var(--rule);color:var(--fg);font:13.5px/1.2 var(--mono);-webkit-user-select:none;user-select:none;touch-action:none;background:#221d17;border-radius:4px;align-items:center;gap:7px;padding:7px 11px;transition:border-color .2s,color .2s,box-shadow .2s,transform .12s,background .2s;display:inline-flex}.bd-m[hidden]{display:none}.bd-m code{font:inherit;color:inherit;white-space:nowrap;background:0 0;padding:0}.bd-m .bd-grip{color:var(--green);margin:0 -2px 0 -3px;display:none}.bd-m .bd-tag{font:600 11px/1 var(--sans);color:var(--strong);background:#ffffff14;border-radius:3px;align-items:center;gap:3px;padding:4px 6px;font-style:normal;display:inline-flex}.bd-m .bd-tag:empty{display:none}.bd-m .bd-tag[data-k]:before{content:"";width:9px;height:9px;-webkit-mask:var(--k) center/contain no-repeat;-webkit-mask:var(--k) center/contain no-repeat;mask:var(--k) center/contain no-repeat;background:currentColor;flex:none}.bd-tag[data-k=edit]{--k:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 10l.6-2.6 6-6 2 2-6 6z M7.4 2.6l2 2'/%3E%3C/svg%3E")}.bd-tag[data-k=add]{--k:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2v8 M2 6h8'/%3E%3C/svg%3E")}.bd-tag[data-k=retest]{--k:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 6a4 4 0 11-1.2-2.9 M10 1.5v2.5H7.5'/%3E%3C/svg%3E")}.bd-tag[data-k=broken]{--k:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3l6 6 M9 3l-6 6'/%3E%3C/svg%3E")}.bd-tag[data-k=moved]{--k:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 6h8 M6.5 2.5L10 6l-3.5 3.5'/%3E%3C/svg%3E")}.bd-m.edit{border-color:var(--green);color:var(--strong);box-shadow:0 0 0 1px var(--green);background:#a9c66b29;animation:.6s ease-out bd-pulse}.bd-m.edit .bd-tag{background:var(--green);color:#15120e}.bd-m.retest{background:#d9a44117;border-style:dashed;border-color:#d9a441}.bd-m.retest .bd-tag{color:#d9a441;background:#d9a44138}.bd-m.broken{color:#e0705c;background:#e0705c29;border-style:solid;border-color:#e0705c;animation:.5s bd-break;box-shadow:0 0 0 1px #e0705c99}.bd-m.broken code{-webkit-text-decoration:line-through #e0705ccc;text-decoration:line-through #e0705ccc}.bd-m.broken .bd-tag{color:#15120e;background:#e0705c}.bd-m.grab{cursor:grab;border-color:var(--strong);box-shadow:0 2px #0e0b08,0 0 0 1px #a9c66b4d}.bd-m.grab .bd-grip{display:inline-block}.bd-m.grab:hover{border-color:var(--green);box-shadow:0 3px 0 #0e0b08,0 0 0 1px var(--green);transform:translateY(-1px)}.bd-m.grab:active{cursor:grabbing;transform:none}.bd-m:focus-visible{outline:2px solid var(--green);outline-offset:2px}.bd-m.picked{outline:2px solid var(--green);outline-offset:2px;background:#a9c66b1f}.bd-m.dragging{opacity:.35}.bd-m.nope{animation:.4s bd-shake}.bd-ghost{z-index:60;pointer-events:none;opacity:.95;border-color:var(--green);position:fixed;transform:translate(-50%,-50%)rotate(-2deg);box-shadow:0 12px 30px #0000008c}.bd-ghost .bd-grip{display:inline-block}.bd-drop{text-align:center;color:var(--muted);font:12.5px/1.5 var(--sans);background:0 0;border-style:dashed;flex-direction:column;align-items:center;gap:4px;padding:10px 12px;transition:background .2s,border-color .2s;display:flex}.bd-drop .bd-dl{align-items:center;gap:6px;font-size:12px;display:inline-flex}.bd-drop .bd-dp{flex-direction:column;align-items:center;gap:3px;display:none}.bd-drop b{color:var(--green);font:600 14px/1.4 var(--display)}.bd-dc{font:600 11px/1.4 var(--sans);color:var(--strong);background:#ffffff12;border-radius:999px;padding:1px 8px}.is-play .bd-drop{color:var(--fg);border-color:#a9c66b8c;animation:.5s ease-out bd-pulse}.is-play .bd-drop .bd-dl{display:none}.is-play .bd-drop .bd-dp{display:flex}.is-split .bd-drop{display:none}.bd-file[data-accepts]{cursor:copy}.is-grabbing .bd-drop,.is-grabbing .bd-file[data-accepts]{border-style:dashed;border-color:#a9c66bb3}.bd-drop.over,.bd-file[data-accepts].over{border-color:var(--green);background:#a9c66b14}.bd-drop:focus-visible,.bd-file[data-accepts]:focus-visible{outline:2px solid var(--green);outline-offset:2px}.bd-file.bd-new{animation:.5s ease-out bd-pulse}.bd-file.bd-wrong{border-color:#e0705c;animation:.4s bd-shake}.bd-file.bd-wrong .bd-badge{color:#e0705c}.bd-file.hl{box-shadow:0 0 0 2px var(--strong)}.bd-key{border-top:1px dashed var(--rule);font:12px/1.5 var(--sans);color:var(--muted);flex-wrap:wrap;gap:6px 18px;margin:12px 0 0;padding-top:10px;display:flex}.bd-key>span{align-items:center;gap:6px;display:inline-flex}.bd-key .bd-ms{border:1px solid var(--rule);font:11px/1.2 var(--mono);color:var(--fg);background:#221d17;border-radius:3px;padding:2px 6px;display:inline-flex}.bd-key .bd-ow{font-size:10.5px}.bd-key .bd-g.grip{color:var(--green)}.figure.is-started .bd-key{display:none}.bd-maps{flex-direction:column;gap:10px;margin-top:10px;display:none}.figure.is-started .bd-maps{display:flex}.figure.is-started .fig-head>div>p,.figure.is-started .fig-head .story-link{display:none}.bd-mapwrap{flex-direction:column;gap:3px;margin:0;display:flex}.bd-mapwrap figcaption{font:600 11px/1.4 var(--sans);color:var(--green)}.bd-mapwrap[data-side=R] figcaption{color:#e0705c}.is-split .bd-mapwrap[data-side=R] figcaption{color:var(--green)}.bd-map{width:100%;max-width:300px;height:auto;display:block;overflow:visible}.bd-mapkey{font:11px/1.5 var(--sans);color:var(--muted);margin:0}.bd-mapkey b{font-weight:600}.bd-mapkey .ok{color:var(--green)}.bd-mapkey .bad{color:#e0705c}.bd-n rect{fill:#1a1510;stroke:var(--rule);stroke-width:1px}.bd-n .bd-nl{font:9.5px/1 var(--sans);fill:var(--fg)}.bd-n .bd-nl.c{text-anchor:middle}.bd-n .bd-ic{fill:none;stroke:var(--muted);stroke-width:1.2px;stroke-linecap:round;stroke-linejoin:round}.bd-n.open rect{stroke:var(--green);stroke-width:1.5px}.bd-mapwrap[data-side=R] .bd-n.open rect{stroke:#d9a441}.bd-n.ripple rect{stroke:#d9a441;stroke-dasharray:3 2}.bd-n.rejected rect{stroke:#e0705c;stroke-dasharray:3 2}.bd-n.broken rect{stroke:#e0705c;fill:#e0705c24}.bd-n.broken .bd-nl{fill:#e0705c}.bd-n.new rect{stroke:var(--green)}.bd-n.vendor rect{fill:none;stroke:var(--muted);stroke-dasharray:2 2}.bd-n.vendor .bd-nl{fill:var(--muted)}.bd-n.empty rect{fill:none;stroke:var(--muted);stroke-dasharray:3 2}.bd-n.empty .bd-nl{fill:var(--muted)}.bd-n[class]{cursor:pointer}.bd-n.vendor,.bd-n.empty{cursor:default}.bd-rl{font:600 8.5px/1 var(--sans);fill:var(--muted)}.bd-e path{stroke-width:1.2px}.bd-e polygon{stroke:none}.bd-e.ok path{stroke:#a9c66bd9}.bd-e.ok polygon{fill:#a9c66bf2}.bd-e.bad path{stroke:#e0705c}.bd-e.bad polygon{fill:#e0705c}@media (max-width:760px){.bd-map{max-width:340px}}.figure.is-open .bd-maps{display:none}@keyframes bd-pulse{0%{transform:scale(.97)}55%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes bd-shake{0%,to{transform:none}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@keyframes bd-break{0%{transform:none}25%{transform:translate(-3px)rotate(-1.5deg)}50%{transform:translate(3px)rotate(1.5deg)}75%{transform:translate(-2px)}to{transform:none}}@keyframes bd-pop{0%{opacity:.3;transform:scale(.7)}60%{transform:scale(1.18)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.bd-m.edit,.bd-m.broken,.bd-stat b,.bd-ticket.bd-in,.bd-file.bd-new,.bd-file.added,.is-play .bd-drop,.bd-m.nope,.bd-file.bd-wrong{animation:none}.bd-m.grab:hover{transform:none}.figure.is-started:not(.is-play) .bd-file[data-file]{transition:none}}@media (min-width:761px){.iso-plate .scene.board{width:auto;min-width:0;margin:0}.bd-side{gap:8px}.bd-group{gap:6px;padding:6px 6px 7px}.figure.is-open .board{padding:0}.figure.is-open .bd-title{min-height:0}.figure.is-open .bd-file{gap:6px;padding:8px 10px}.figure.is-open .bd-m{padding:6px 10px}.figure.is-open .bd-flow .bd-m{padding:7px 11px}.figure.is-open .bd-ticket{z-index:3;background:linear-gradient(#a9c66b14,#a9c66b14),var(--anatomy-card);margin-bottom:12px;padding:7px 10px;position:sticky;top:6px}.figure.is-open .bd-drop{padding:8px 10px}.figure.is-open .bd-file[data-file]:has(>.bd-methods>.bd-m):not(:has(>.bd-methods>.bd-m:not([hidden])~.bd-m:not([hidden]))):not(:has(>.bd-imports)){grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);grid-template-areas:"head methods""badge badge";align-items:center;gap:4px 10px;display:grid}.figure.is-open .bd-file[data-file]:has(>.bd-methods>.bd-m):not(:has(>.bd-methods>.bd-m:not([hidden])~.bd-m:not([hidden]))):not(:has(>.bd-imports))>.bd-fh{grid-area:head}.figure.is-open .bd-file[data-file]:has(>.bd-methods>.bd-m):not(:has(>.bd-methods>.bd-m:not([hidden])~.bd-m:not([hidden]))):not(:has(>.bd-imports))>.bd-methods{grid-area:methods;min-height:0}.figure.is-open .bd-file[data-file]:has(>.bd-methods>.bd-m):not(:has(>.bd-methods>.bd-m:not([hidden])~.bd-m:not([hidden]))):not(:has(>.bd-imports))>.bd-badge{grid-area:badge}}@media (max-width:760px){.scene.board{width:100%;min-width:0}.board,.bd-term{grid-template-columns:1fr}.tm-pane{min-height:200px;max-height:42svh}}.bd-m .bd-l{font:500 13.5px/1.35 var(--sans);color:inherit}.bd-m.broken .bd-l{-webkit-text-decoration:line-through #e0705ccc;text-decoration:line-through #e0705ccc}.bd-key .bd-ms-l{font:500 11px/1.2 var(--sans)}.bd-side.bd-flow{gap:24px}.bd-flow .bd-title{margin-bottom:-10px}.bd-start{border:1px solid var(--rule);font:600 12.5px/1.3 var(--sans);color:var(--strong);background:#221d17;border-radius:999px;align-self:center;align-items:center;gap:7px;padding:7px 16px;display:inline-flex}.bd-start .bd-g{color:var(--green)}.bd-flow .bd-start~.bd-file[data-file],.bd-flow .bd-file[data-file]~.bd-file[data-file]{position:relative}.bd-flow .bd-start~.bd-file[data-file]:before,.bd-flow .bd-file[data-file]~.bd-file[data-file]:before{content:"↓";font:600 16px/1 var(--sans);color:var(--muted);position:absolute;top:-23px;left:50%;transform:translate(-50%)}.bd-flow .bd-methods{flex-direction:column;align-items:stretch;gap:0}.bd-flow .bd-m{justify-content:space-between;padding:9px 12px;display:flex;position:relative}.bd-flow .bd-m[hidden]{display:none}.bd-flow .bd-m .bd-l{flex:auto}.bd-flow .bd-m+.bd-m{margin-top:22px}.bd-flow .bd-m+.bd-m:before{content:"↓";font:600 15px/1 var(--sans);color:var(--muted);position:absolute;top:-20px;left:50%;transform:translate(-50%)}.bd-flow .bd-drop{margin-top:2px}
.wrap{gap:48px;width:min(1040px,100%);padding-block:0 96px}.lesson-bar .pr .progress{background:var(--rule);border-radius:2px;height:4px;overflow:hidden}.lesson-bar .pr .progress i{background:var(--green);width:0;height:100%;display:block}.intro h1{font-size:clamp(28px,4.4vw,44px)}.stack{flex-direction:column;gap:48px;display:flex}.toc{top:calc(var(--topbar-h) + env(safe-area-inset-top,0px));z-index:9}.figure{scroll-margin-top:calc(var(--topbar-h) + 64px)}.toc a .lk{color:var(--muted);display:inline-flex}.toc a .lk svg{width:12px;height:12px}@media (max-width:760px){.toc{gap:6px;padding:6px 0;position:sticky}.toc a{gap:6px;min-height:36px;padding:0 12px}.toc a .th{display:none}.figure{scroll-margin-top:calc(var(--topbar-h) + 56px)}}
