:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#e3e5e8;--surface:#f7f8f9;--surface-2:#d3d7dd;--board:#eef0f2;--hole:#b9bec6;--text:#17181c;--muted:#474a53;--line:#c4c8cf;--line-strong:#6b707b;--brand:#17181c;--on-brand:#f7f8f9;--focus:#17181c;--danger:#a8231b;--scrim:#17181c73;--beam-1:#c8102e;--beam-2:#0f7a3a;--beam-3:#8a6400;--beam-4:#1d5fd1;--beam-5:#9c1fb8;--beam-6:#0a6f86;--beam-7:#2b2e35}@media (prefers-color-scheme:dark){:root:not([data-theme]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#16171b;--surface:#1f2026;--surface-2:#2a2b33;--board:#0f1013;--hole:#2b2d34;--text:#f2f1ec;--muted:#a9aab3;--line:#30323a;--line-strong:#71747f;--brand:#f2f1ec;--on-brand:#16171b;--focus:#f2f1ec;--danger:#ff8a80;--scrim:#060709bd;--beam-1:#ff5d6c;--beam-2:#3ddc84;--beam-3:#ffe14d;--beam-4:#5aa0ff;--beam-5:#e45cff;--beam-6:#4de8ff;--beam-7:#fff}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#16171b;--surface:#1f2026;--surface-2:#2a2b33;--board:#0f1013;--hole:#2b2d34;--text:#f2f1ec;--muted:#a9aab3;--line:#30323a;--line-strong:#71747f;--brand:#f2f1ec;--on-brand:#16171b;--focus:#f2f1ec;--danger:#ff8a80;--scrim:#060709bd;--beam-1:#ff5d6c;--beam-2:#3ddc84;--beam-3:#ffe14d;--beam-4:#5aa0ff;--beam-5:#e45cff;--beam-6:#4de8ff;--beam-7:#fff}:root{--font-display:"Bricolage", "Bricolage Fallback", Arial, sans-serif;--font-body:"Instrument", "Instrument Fallback", system-ui, sans-serif;--fs-1:.8125rem;--fs-2:.9375rem;--fs-3:1rem;--fs-4:1.125rem;--fs-5:1.375rem;--fs-6:1.75rem;--fs-7:2.5rem;--fs-h1:clamp(2.25rem, 1.2rem + 4.5vw, 4.25rem);--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--r-cell:6px;--r-ctl:10px;--r-card:16px;--dur:.18s;--ease:cubic-bezier(.2, .8, .2, 1)}@font-face{font-family:Bricolage;src:url(/fonts/bricolage-grotesque-latin-wght-normal.woff2)format("woff2");font-weight:200 800;font-display:swap}@font-face{font-family:Instrument;src:url(/fonts/instrument-sans-latin-wght-normal.woff2)format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:Bricolage Fallback;src:local(Arial);size-adjust:104%;ascent-override:92%;descent-override:24%;line-gap-override:0%}@font-face{font-family:Instrument Fallback;src:local(Arial);size-adjust:100%;ascent-override:96%;descent-override:25%;line-gap-override:0%}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font:1rem/1.5rem var(--font-body);font-variant-numeric:tabular-nums;margin:0}body{flex-direction:column;min-height:100vh;display:flex}header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding:.6rem 1rem;display:flex}.brand{font:700 var(--fs-5)/1.2 var(--font-display);align-items:center;gap:var(--sp-2);margin:0;display:flex}h2{font:700 var(--fs-5)/1.75rem var(--font-display);margin:0 0 .25rem}h3,#menu h2{font:600 var(--fs-4)/1.5rem var(--font-display);margin:1rem 0 .4rem}nav{flex-wrap:wrap;gap:.4rem;display:flex}main{outline:none;flex:1;width:100%;max-width:68rem;margin:0 auto;padding:1rem}button{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);cursor:pointer;justify-content:center;align-items:center;gap:var(--sp-2);min-height:44px;transition:background-color var(--dur) var(--ease), transform .11s var(--ease);padding:.5rem .8rem;display:inline-flex}button.primary{background:var(--brand);color:var(--on-brand);border-color:var(--brand);font-weight:600}button:disabled{opacity:.55;cursor:not-allowed}:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.muted{color:var(--muted);margin:0 0 .5rem}.sr,.skip:not(:focus){clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip:focus{z-index:9;position:fixed;top:.5rem;left:.5rem}[hidden]{display:none!important}.hud{justify-content:space-between;align-items:flex-start;gap:1rem;min-height:4.2rem;display:flex}.score{white-space:nowrap;margin:0;font-weight:600}.stage{aspect-ratio:1;background:var(--board);border:1px solid var(--line);border-radius:12px;width:100%;max-width:480px;margin:.5rem auto;padding:6px;position:relative}.board{z-index:1;touch-action:manipulation;gap:2px;width:100%;height:100%;display:grid;position:relative}.row{display:contents}.cell{background:var(--surface-2);border:1px solid #0000;border-radius:6px;place-items:center;min-height:0;padding:0;display:grid;position:relative}.cell.wall{background:var(--line-strong);cursor:default}.cell.cursor{border-color:var(--brand)}.beams{z-index:2;pointer-events:none;width:calc(100% - 12px);height:calc(100% - 12px);position:absolute;inset:6px}.beams path{fill:none;stroke-linecap:round}.beams .glow{stroke-width:.3px;opacity:.22}.beams .core{stroke-width:.09px}.c1{stroke:var(--beam-1)}.c2{stroke:var(--beam-2)}.c3{stroke:var(--beam-3)}.c4{stroke:var(--beam-4)}.c5{stroke:var(--beam-5)}.c6{stroke:var(--beam-6)}.c7{stroke:var(--beam-7)}.glyph{z-index:3;width:70%;height:70%;position:relative}.glyph line{stroke:var(--text);stroke-width:1.4px;stroke-linecap:round}.glyph circle{fill:var(--text)}.lock{color:var(--muted);z-index:3;font-size:.7rem;position:absolute;bottom:1px;right:3px}.pips{z-index:3;gap:4px;display:flex;position:relative}.pip{border:2px solid var(--line);background:0 0;border-radius:50%;width:14px;height:14px}.pip.want.r{background:var(--beam-1)}.pip.want.g{background:var(--beam-2)}.pip.want.b{background:var(--beam-4)}.pip.got{border-color:var(--text)}.pip.r.got{border-color:var(--beam-1)}.pip.g.got{border-color:var(--beam-2)}.pip.b.got{border-color:var(--beam-4)}.cell.recv{border:2px solid var(--line)}.cell.recv.ok{border-color:var(--brand)}.cell.recv.excess{border-color:var(--danger);border-style:dashed}.emit{z-index:3;font-size:1.6rem;font-weight:700;line-height:1;position:relative}.emit.e1{color:var(--beam-1)}.emit.e2{color:var(--beam-2)}.emit.e3{color:var(--beam-3)}.emit.e4{color:var(--beam-4)}.emit.e5{color:var(--beam-5)}.emit.e6{color:var(--beam-6)}.emit.e7{color:var(--beam-7)}.tray{flex-wrap:wrap;justify-content:center;gap:.5rem;min-height:52px;display:flex}.tray button[aria-pressed=true]{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand)}.btns{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:.5rem 0;display:flex}.status{text-align:center;min-height:1.4em;margin:.25rem 0}.keys{text-align:center;font-size:.85rem}.chapter ul{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.chapter li button{text-align:left;width:100%;display:grid}dialog{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:12px;max-width:min(92vw,460px)}footer{text-align:center;color:var(--muted);padding:.8rem 1rem;font-size:.9rem}footer a,dialog a{color:var(--brand)}@media (prefers-reduced-motion:no-preference){.beams path{transition:opacity .12s}}@media (width<=420px){header{padding:.4rem .6rem}main{padding:.6rem}}.tray button{touch-action:none;-webkit-user-select:none;user-select:none}@media (prefers-reduced-motion:no-preference){.beams .core{transition:stroke-width .25s}.beams .glow{transition:opacity .25s}}.beams.solved .glow{opacity:.5}.beams.solved .core{stroke-width:.13px}.glyph .prism{fill:none;stroke:var(--text);stroke-width:1.2px;stroke-linejoin:round}.glyph .filt{stroke:var(--text);stroke-width:.8px;opacity:.95}.glyph .filterR{fill:var(--beam-1)}.glyph .filterG{fill:var(--beam-2)}.glyph .filterB{fill:var(--beam-4)}.daily-box{border:1px solid var(--line);background:var(--surface);border-radius:10px;margin:.8rem 0;padding:.6rem .9rem}.sharetext{background:var(--surface-2);border:1px solid var(--line);white-space:pre-wrap;font:inherit;border-radius:8px;padding:.5rem}.cell.hint{outline:3px dashed var(--brand);outline-offset:-3px}[data-lowglow] .beams .glow{opacity:.06}[data-lowglow] .beams.solved .glow{opacity:.12}button{border-color:var(--line-strong)}button:hover:not(:disabled){background:var(--surface-2)}button:active:not(:disabled){transform:scale(.97)}button.primary:hover:not(:disabled){background:var(--brand);filter:brightness(.92)}header nav button{background:0 0;border-color:#0000}header nav button:hover{border-color:var(--line-strong)}header nav button[aria-pressed=true]{background:var(--surface-2);border-color:var(--line-strong)}.ic{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.25rem;height:1.25rem}.mark{width:1.75rem;height:1.75rem}.mark .m-prism{fill:none;stroke:var(--text);stroke-width:2px;stroke-linejoin:round}.mark .m-r{stroke:var(--beam-1)}.mark .m-g{stroke:var(--beam-2)}.mark .m-b{stroke:var(--beam-4)}.mark line{stroke-width:2px;stroke-linecap:round}.stage{background:var(--board);border:1px solid var(--line-strong);border-radius:var(--r-card);background-image:radial-gradient(var(--hole) 1.5px, transparent 1.6px);background-size:14px 14px}.cell{background:var(--surface-2);border-color:var(--line)}.cell.cursor{border-color:var(--focus);border-width:2px}.cell.wall{background:var(--line-strong)}.tray{padding:var(--sp-2);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-card)}.tray button[aria-pressed=true]{background:var(--brand);color:var(--on-brand);border-color:var(--brand);box-shadow:none}.chip{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-cell);padding:2px var(--sp-3);white-space:nowrap;font-weight:700}.score{gap:var(--sp-2);display:flex}.display{font:700 var(--fs-h1)/1 var(--font-display);letter-spacing:-.02em;margin-bottom:var(--sp-3)}.lede{color:var(--muted);font-size:var(--fs-4);max-width:44ch;margin:0 0 var(--sp-4)}#menu{max-width:68rem}.chapter{border-top:1px solid var(--line-strong);padding-top:var(--sp-3);margin-top:var(--sp-5)}.chapter ul{gap:var(--sp-2);padding-bottom:var(--sp-2);scroll-snap-type:x proximity;display:flex;position:relative;overflow-x:auto}.chapter li{scroll-snap-align:start;flex:0 0 9.5rem}.chapter li button{background:var(--surface);align-content:start;height:100%}.chapter li button:disabled{opacity:1;color:var(--muted)}.chapter li button strong{font:600 var(--fs-3)/1.25 var(--font-display)}.lens{vertical-align:middle;gap:2px;display:inline-flex}.lens .ic{width:.95rem;height:.95rem;stroke:var(--line-strong)}.lens .on{fill:var(--brand);stroke:var(--brand)}.daily-box{border-color:var(--line-strong);border-radius:var(--r-card);background:var(--surface)}.daily-box .muted+button{margin-top:var(--sp-2)}.built{border-top:1px solid var(--line-strong);margin-top:var(--sp-6);padding-top:var(--sp-4)}.built dl{margin:0}.built dl div{gap:var(--sp-4);padding:var(--sp-3) 0;border-bottom:1px solid var(--line);grid-template-columns:minmax(8rem,12rem) 1fr;display:grid}.built dt{font:600 var(--fs-3)/1.3 var(--font-display)}.built dd{color:var(--muted);margin:0}dialog{background:var(--surface);border-color:var(--line-strong);border-radius:var(--r-card);padding:var(--sp-5)}dialog .btns{justify-content:flex-end}dialog .btns .primary{order:9}#result-h{font:700 var(--fs-6)/2rem var(--font-display)}#result-text{font-size:var(--fs-4);font-weight:600}footer{gap:var(--sp-4);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:center;display:flex}a{color:var(--text);text-underline-offset:3px}:focus-visible{outline-color:var(--focus)}@media (width<=600px){.lbl{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}header nav button{min-width:44px;padding:0}.built dl div{gap:var(--sp-1);grid-template-columns:1fr}dialog .btns{flex-direction:column-reverse}dialog .btns button{width:100%}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.emit{clip-path:polygon(50% 8%,92% 88%,8% 88%);width:1.4rem;height:1.4rem;transform:rotate(var(--rot,0deg));background:currentColor;font-size:0;display:block}.cell .lock .ic{width:.8rem;height:.8rem}.cell .lock{bottom:2px;right:3px}.hero{gap:var(--sp-6);margin-bottom:var(--sp-5);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;display:grid}.plot{aspect-ratio:1;border:1px solid var(--line-strong);border-radius:var(--r-card);background-color:var(--board);background-image:radial-gradient(var(--hole) 1.5px, transparent 1.6px);background-size:14px 14px;max-height:26rem;margin:0;overflow:hidden}.plot svg{width:100%;height:100%;display:block}.h-beam{fill:none;stroke-width:.12px;stroke-linecap:round;stroke-dasharray:20;animation:beam 1.2s var(--ease) both;animation-delay:calc(var(--i) * .12s)}@keyframes beam{0%{stroke-dashoffset:20px}to{stroke-dashoffset:0}}@media (width<=900px){.hero{gap:var(--sp-4);grid-template-columns:1fr}.plot{aspect-ratio:16/9;max-height:34vh}}main:focus,main:focus-visible{outline:none}body{scroll-padding-top:0}dialog{width:min(92vw,30rem);box-shadow:none;opacity:1;transition:opacity .18s var(--ease), transform .18s var(--ease), overlay .18s allow-discrete, display .18s allow-discrete;transform:none}@starting-style{dialog[open]{opacity:0;transform:translateY(8px)}}dialog::backdrop{background:var(--scrim)}dialog h2{font:700 var(--fs-5,1.5rem)/1.15 var(--font-display);margin:0 0 var(--sp-3)}dialog .btns{margin-top:var(--sp-4)}@media (width<=480px){dialog .btns{flex-direction:column-reverse}dialog .btns button{width:100%}}.exposure{align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-3);display:flex}.exposure .count{font:700 5rem/1 var(--font-display);font-variant-numeric:tabular-nums}.exposure .par-note{color:var(--muted);font-size:var(--fs-3);margin-bottom:var(--sp-1);display:block}.exposure .lens .ic{width:1.75rem;height:1.75rem}.primer{gap:var(--sp-2);margin:var(--sp-3) 0;grid-template-columns:repeat(3,1fr);display:grid}.primer figure{background:var(--board);border:1px solid var(--line-strong);border-radius:var(--r-cell);padding:var(--sp-1);margin:0}.primer svg{width:100%;display:block}.primer figcaption{color:var(--muted);text-align:center;font-size:.8rem}.d-b{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.d-p{fill:var(--surface-2);stroke:var(--text);stroke-width:1.5px}.d-b.r{stroke:var(--beam-1)}.d-b.g{stroke:var(--beam-2)}.d-b.b{stroke:var(--beam-3)}.d-b.m{stroke:var(--beam-4)}.d-b.w{stroke:var(--text)}dialog fieldset{border:1px solid var(--line);border-radius:var(--r-ctl);margin:0 0 var(--sp-3);padding:var(--sp-2) var(--sp-3)}dialog legend{padding:0 var(--sp-1);font-weight:600}.setrow{justify-content:space-between;align-items:center;gap:var(--sp-3);margin:var(--sp-2) 0;display:flex}select{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--r-ctl);min-height:44px;padding:0 var(--sp-3);cursor:pointer}.toggle{appearance:none;border:1px solid var(--line-strong);background:var(--surface-2);cursor:pointer;border-radius:999px;flex:none;width:3rem;height:1.75rem;margin:0;position:relative}.toggle:after{content:"";background:var(--text);width:1.15rem;height:1.15rem;transition:transform .18s var(--ease);border-radius:50%;position:absolute;top:3px;left:3px}.toggle:checked{background:var(--brand)}.toggle:checked:after{background:var(--on-brand);transform:translate(1.25rem)}.danger{border:1px solid var(--danger);border-radius:var(--r-ctl);padding:var(--sp-3)}.danger p{margin:0}.danger[hidden]{display:none}.danger-btn{border-color:var(--danger);color:var(--danger)}#notfound,.empty{text-align:center;max-width:30rem;margin:var(--sp-6) auto}.ic.big{width:3rem;height:3rem}button:hover:not(:disabled),select:hover,.toggle:hover{border-color:var(--text)}button:focus-visible,select:focus-visible,.toggle:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}button:active:not(:disabled){transition-duration:.11s}select:disabled,.toggle:disabled{opacity:.55;cursor:not-allowed}#menu,#game,#notfound{transition:opacity .26s var(--ease)}@media (hover:none),(pointer:coarse){.keys{display:none}}@media (width<=375px){.exposure .count{font-size:4rem}}@media (prefers-reduced-motion:reduce){dialog,dialog[open]{transition:none!important}}
