:root{--paper:#f2f0ea;--ink:#0b0b0b;--muted:#5d5d57;--accent:#ff3d00;--x:#e5322d;--y:#1a9e48;--z:#2457e6;--line:2px solid var(--ink);--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sans:"Helvetica Neue", Helvetica, Arial, system-ui, sans-serif}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);-webkit-text-size-adjust:100%}body{font:17px/1.6 var(--sans);background:var(--paper);margin:0}a{color:var(--ink);text-underline-offset:3px;text-decoration-thickness:2px}a:hover{background:var(--ink);color:var(--paper);text-decoration:none}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.wrap{max-width:1240px;margin:0 auto;padding:0 16px}.narrow{max-width:760px}.top{border-bottom:var(--line);justify-content:space-between;align-items:center;max-width:none;padding:14px 16px;display:flex}.brand{font:900 22px/1 var(--sans);letter-spacing:-.02em;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand b{color:var(--accent);font-weight:900}.brand:hover{color:var(--ink);background:0 0}.brand-mark{background:var(--ink);width:18px;height:18px;display:inline-block;position:relative}.brand-mark:after{content:"";border-bottom:3px solid #fff;border-left:3px solid #fff;position:absolute;inset:3px}.top nav{font:700 13px var(--mono);text-transform:uppercase;letter-spacing:.04em;gap:20px;display:flex}.top nav a{text-decoration:none}.hero{padding-top:40px;padding-bottom:24px}h1,h2,h3{font-family:var(--sans);letter-spacing:-.03em;margin:0 0 .5em;line-height:1.02}h1{text-transform:uppercase;font-size:clamp(38px,7vw,84px);font-weight:900}h1 em{background:var(--accent);color:#fff;padding:0 .12em;font-style:normal}h2{text-transform:uppercase;margin-top:1.6em;font-size:clamp(26px,3.4vw,40px);font-weight:900}h3{letter-spacing:-.01em;margin-top:1.4em;font-size:20px;font-weight:800}.lede{max-width:46ch;margin:0 0 20px;font-size:clamp(18px,2vw,22px)}.kicker{font:700 12px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.badges{flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:0;list-style:none;display:flex}.badges li{border:var(--line);font:700 12px var(--mono);text-transform:uppercase;background:#fff;padding:3px 9px}.btn{border:var(--line);color:var(--ink);font:700 13px var(--mono);text-transform:uppercase;letter-spacing:.03em;cursor:pointer;box-shadow:4px 4px 0 var(--ink);background:#fff;padding:10px 14px;text-decoration:none;transition:transform 60ms,box-shadow 60ms;display:inline-block}.btn:hover{background:var(--ink);color:#fff}.btn:active{box-shadow:1px 1px 0 var(--ink);transform:translate(3px,3px)}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{background:var(--ink)}.btn.small{box-shadow:2px 2px 0 var(--ink);padding:5px 8px;font-size:12px}.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.btn.on{background:var(--ink);color:#fff}.btn.ax-x{border-left:10px solid var(--x)}.btn.ax-y{border-left:10px solid var(--y)}.btn.ax-z{border-left:10px solid var(--z)}.btn.ax-x.on,.btn[data-axis=x].on{background:var(--x)}.axlegend{font:700 11px var(--mono);flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.axlegend span{border:2px solid var(--ink);background:#fff;padding:1px 6px}.axlegend i{vertical-align:-1px;width:10px;height:10px;margin-right:5px;display:inline-block}.btn.ax-y.on{background:var(--y)}.btn.ax-z.on{background:var(--z)}.drop{border:3px dashed var(--ink);text-align:center;cursor:pointer;background:#fff;padding:56px 20px;transition:background .1s;display:block}.drop:hover,.drop.over{background:var(--accent);color:#fff;border-style:solid}.drop strong{font:900 clamp(24px, 4vw, 40px)/1.05 var(--sans);text-transform:uppercase;letter-spacing:-.02em;display:block}.drop span{font:700 13px var(--mono);text-transform:uppercase;margin-top:10px;display:block}.drop input{opacity:0;width:1px;height:1px;position:absolute}.linkbtn{font:inherit;color:var(--ink);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline;text-decoration-thickness:2px}.linkbtn:hover{background:var(--ink);color:var(--paper)}.drop:focus-within{outline:3px solid var(--accent);outline-offset:3px}.hint{font:13px var(--mono);color:var(--muted);margin:10px 0 0}body.has-file .drop,body.has-file #intro-hint,body.has-file .badges,body.has-file .hero .lede,body.has-file .hero .kicker{display:none}body.has-file .hero{padding-top:16px;padding-bottom:0}body.has-file .hero h1{margin-bottom:8px;font-size:clamp(26px,3.4vw,40px)}.opening{border:var(--line);font:700 14px var(--mono);text-transform:uppercase;background:#fff;padding:28px}.work{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:16px;margin:8px 0 24px;display:grid}.stage{border:var(--line);box-shadow:6px 6px 0 var(--ink);background:#fff;position:relative}.viewport{background:#ebe9e2;height:min(72vh,760px);min-height:360px;position:relative}.viewport canvas{touch-action:none;width:100%;height:100%;display:block}.viewport.pick canvas{cursor:crosshair}.stagebar{border-top:var(--line);font:12px var(--mono);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.stagebar .grow{flex:1}.overlay{font:700 14px var(--mono);text-transform:uppercase;text-align:center;z-index:3;background:#f2f0ead9;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.overlay .bar{border:var(--line);background:#fff;width:220px;height:10px;margin:10px auto 0;overflow:hidden}.overlay .bar i{background:var(--accent);width:40%;height:100%;animation:1s linear infinite slide;display:block}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}.legend{font:700 11px var(--mono);z-index:2;gap:6px;display:flex;position:absolute;bottom:8px;left:8px}.legend span{border:2px solid var(--ink);background:#fff;padding:1px 6px}.legend i{vertical-align:-1px;width:9px;height:9px;margin-right:4px;display:inline-block}.side{flex-direction:column;gap:16px;display:flex}.panel{border:var(--line);background:#fff}.panel>h3{background:var(--ink);color:#fff;font:700 12px var(--mono);text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;margin:0;padding:6px 10px;display:flex}.panel .body{font:13px/1.5 var(--mono);padding:10px}.panel .body p{margin:0 0 8px}.row{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.kv{grid-template-columns:auto 1fr;gap:2px 12px;margin:6px 0;display:grid}.kv dt{color:var(--muted);text-transform:uppercase;font-size:11px}.kv dd{text-align:right;margin:0;font-weight:700}.tabs{border-bottom:var(--line);display:flex}.tabs button{font:700 12px var(--mono);text-transform:uppercase;border:0;border-right:var(--line);cursor:pointer;background:#fff;flex:1;padding:8px}.tabs button:last-child{border-right:0}.tabs button[aria-selected=true]{background:var(--ink);color:#fff}.feat{border-bottom:1px dotted #999;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;padding:5px 0;display:grid}.feat:last-child{border-bottom:0}.dot{border:2px solid var(--ink);width:14px;height:14px}.dot.X{background:var(--x)}.dot.Y{background:var(--y)}.dot.Z{background:var(--z)}.tag{border:2px solid var(--ink);text-transform:uppercase;padding:1px 6px;font-size:11px;font-weight:700;display:inline-block}.tag.high{background:#7bd88f}.tag.medium{background:#ffd24d}.tag.low,.tag.none{background:#ff8a65}.note{border-left:4px solid var(--accent);background:#fff4ee;margin:8px 0;padding:4px 8px}.err{border:var(--line);font:700 13px var(--mono);background:#ffd9cf;margin:12px 0;padding:10px}label.opt{cursor:pointer;align-items:center;gap:8px;padding:2px 0;display:flex}.hist{max-height:120px;margin:6px 0 0;padding:0;list-style:none;overflow:auto}.hist li{border-bottom:1px dotted #aaa;padding:2px 0}.hist li:last-child{font-weight:700}details.rep{box-shadow:none;border-width:1px;margin:10px 0 0}details.rep summary{font:700 12px var(--mono);text-transform:uppercase;padding:6px 8px}details.rep>div{padding:0 8px 8px}details.rep pre{max-height:160px;font:11px/1.4 var(--mono);white-space:pre-wrap;word-break:break-all;background:#f2f0ea;border:1px solid #bdb9ab;padding:6px;overflow:auto}.next{border:var(--line);box-shadow:6px 6px 0 var(--accent);background:#fff;margin:0 0 24px}.next>h2{background:var(--accent);color:#fff;margin:0;padding:10px 14px;font-size:26px}.next-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.offer{border-right:var(--line);border-top:var(--line);flex-direction:column;gap:6px;padding:14px;display:flex}.offer h3{margin:0;font-size:18px}.offer p{flex:1;margin:0;font-size:14px;line-height:1.45}.offer .by{font:700 11px var(--mono);text-transform:uppercase;color:var(--muted)}.offer.first{background:#fff4ee}.next .fine{border-top:var(--line);font:12px/1.5 var(--mono);color:var(--muted);padding:10px 14px}section.block{border-top:var(--line);padding:8px 0 28px}.steps{counter-reset:s;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:0;list-style:none;display:grid}.steps li{border:var(--line);counter-increment:s;background:#fff;padding:14px}.steps li:before{content:counter(s, decimal-leading-zero);font:900 40px/1 var(--sans);color:var(--accent);margin-bottom:6px;display:block}.steps b{font:800 18px var(--sans)}details{border:var(--line);background:#fff;margin:10px 0;padding:0}summary{cursor:pointer;font:800 17px var(--sans);padding:12px 14px;list-style:none}summary::-webkit-details-marker{display:none}summary:after{content:"+";float:right;font-family:var(--mono)}details[open] summary:after{content:"–"}details>div{padding:0 14px 12px}.cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;padding:0;list-style:none;display:grid}.cards a{border:var(--line);height:100%;box-shadow:4px 4px 0 var(--ink);background:#fff;padding:14px;text-decoration:none;display:block}.cards a:hover{background:var(--ink);color:#fff}.cards b{font:800 18px/1.2 var(--sans);margin-bottom:4px;display:block}.cards span{font-size:14px}.prose{padding-bottom:40px}.prose p,.prose li{max-width:68ch}.prose img,.prose figure{max-width:100%}.prose code,.prose kbd{font:14px var(--mono);background:#e4e1d8;border:1px solid #bdb9ab;padding:1px 5px}.prose pre{background:var(--ink);color:#f2f0ea;font:13px/1.5 var(--mono);padding:12px;overflow:auto}.prose ol,.prose ul{padding-left:1.2em}.crumbs{font:12px var(--mono);text-transform:uppercase;margin:20px 0 0}.cta-box{border:var(--line);box-shadow:6px 6px 0 var(--ink);background:#fff;margin:28px 0;padding:16px}.cta-box p{margin:0 0 10px;font-weight:700}.aff{border:var(--line);background:#fff4ee;margin:24px 0;padding:12px 14px;font-size:15px}.aff b{font:700 12px var(--mono);text-transform:uppercase;margin-bottom:4px;display:block}table.t{border-collapse:collapse;width:100%;font:14px var(--mono);background:#fff}table.t th,table.t td{border:var(--line);text-align:left;padding:6px 8px}table.t th{background:var(--ink);color:#fff;text-transform:uppercase;font-size:12px}.foot{border-top:var(--line);background:#fff;margin-top:40px;padding:28px 16px 40px}.foot-grid{grid-template-columns:2fr 2fr 1fr;gap:24px;max-width:1240px;margin:0 auto;font-size:14px;display:grid}.foot ul{margin:6px 0 0;padding:0;list-style:none}.foot li{margin:3px 0}.foot p{margin:6px 0}.disclosure{max-width:1240px;font:12px/1.5 var(--mono);color:var(--muted);margin:22px auto 0!important}@media (max-width:900px){.work,.foot-grid{grid-template-columns:1fr}.viewport{height:56vh}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
