:root{--desk:#a9a4dc;--face:#e6e1f2;--cream:#fff7e6;--ink:#2a2547;--n1:#2e2a78;--n2:#8a82e0;--pink:#f3a6c0;--gold:#e8b94a;--hi:#fff;--lo:#7a74a8;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}body.night{--desk:#1b1740;--face:#3a3566;--cream:#2a2650;--ink:#f3eefc;--lo:#14112e;--hi:#6b64a8}*,*:before,*:after{box-sizing:inherit}html{scroll-behavior:smooth;scroll-padding-top:70px}body{margin:0;font:16px/1.55 Nunito,Verdana,sans-serif;color:var(--ink);background:var(--desk) radial-gradient(#ffffff55 1.2px,transparent 1.5px) 0 0/22px 22px;transition:background-color .4s}h1,h2,h3,.px{font-family:Pixelify Sans,Courier New,monospace;margin:0;font-weight:700}.wrap{max-width:960px;margin:0 auto;padding:16px}.win{background:var(--face);border:2px solid;border-color:var(--hi) var(--lo) var(--lo) var(--hi);box-shadow:3px 3px #0003;margin-bottom:24px}.tb{display:flex;align-items:center;gap:8px;padding:4px 8px;background:linear-gradient(90deg,var(--n1),var(--n2));color:#fff;font:700 15px Pixelify Sans,monospace;min-height:30px}.tb span:first-child{flex:1}.tb i{font-style:normal;width:18px;height:18px;display:grid;place-items:center;background:var(--face);color:#000;border:2px solid;border-color:var(--hi) var(--lo) var(--lo) var(--hi);font-size:11px}.body{padding:20px;display:grid;gap:20px}.inset{background:var(--cream);border:2px solid;border-color:var(--lo) var(--hi) var(--hi) var(--lo);padding:16px}.btn{font:700 15px Pixelify Sans,monospace;color:#000;background:var(--face);border:2px solid;border-color:var(--hi) var(--lo) var(--lo) var(--hi);padding:8px 14px;cursor:pointer;min-height:40px}.btn:active,.btn[aria-pressed=true]{border-color:var(--lo) var(--hi) var(--hi) var(--lo);background:#d3cde9}:focus-visible{outline:3px dashed var(--n1);outline-offset:2px}body.night :focus-visible{outline-color:#fff}.bar{position:sticky;top:0;z-index:20;background:var(--face);border-bottom:2px solid var(--lo);box-shadow:0 2px 0 var(--hi)}.bar .wrap{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 16px}.bar b{font:700 18px Pixelify Sans,monospace;margin-right:auto}.bar a{color:var(--ink);text-decoration:none;font:700 15px Pixelify Sans,monospace;padding:6px 10px;border:2px solid transparent}.bar a:hover{border-color:var(--hi) var(--lo) var(--lo) var(--hi)}.mq{background:var(--n1);color:#ffe9a8;font:15px Pixelify Sans,monospace;overflow:hidden;white-space:nowrap;padding:5px 0}.mq span{display:inline-block;padding-left:100%;animation:mq 28s linear infinite}@keyframes mq{to{transform:translate(-100%)}}.hero{grid-template-columns:1fr 1fr;align-items:center}.hero h1{font-size:clamp(30px,6vw,52px);line-height:1.05;margin-bottom:12px}.hero p{margin:0 0 16px;max-width:46ch}.pipbtn{background:none;border:0;padding:0;cursor:pointer;display:block;margin:auto;max-width:360px;width:100%}.pipbtn img{width:100%;height:auto;display:block;transition:transform .15s;filter:drop-shadow(0 8px 10px #0003)}body.night .pipbtn img{filter:brightness(.85) drop-shadow(0 0 22px #ffd97a99)}.tbl{width:100%;border-collapse:collapse}.tbl th,.tbl td{text-align:left;vertical-align:top;padding:8px 10px;border-bottom:1px dashed var(--lo)}.tbl th{width:30%;font-family:Pixelify Sans,monospace}.g2{grid-template-columns:1fr 1fr}.proj{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.proj img{width:100%;max-width:300px;align-self:center;height:auto;transition:transform .3s,filter .4s}.proj h3{font-size:22px}.proj p{margin:0}.lamp img{filter:brightness(.6) saturate(.7)}.lamp.on img{filter:none;transform:scale(1.04) rotate(-2deg);filter:drop-shadow(0 0 24px #ffd97a)}.wob img{animation:wob .8s ease-in-out infinite alternate}@keyframes wob{to{transform:rotate(3deg) translateY(-4px)}}.chart{background:repeating-linear-gradient(90deg,transparent 0 59px,var(--lo) 59px 60px)}.row{display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:center;margin:10px 0;font:700 14px Pixelify Sans,monospace}.fill{height:20px;background:linear-gradient(90deg,var(--pink),var(--gold));border:2px solid var(--ink);width:0;transition:width 1.2s}.show .fill{width:var(--w)}.step{display:grid;grid-template-columns:200px 1fr;gap:20px;align-items:center}.step img{width:100%;height:auto;opacity:.25;filter:grayscale(1);transform:scale(.92);transition:.6s}.step.on img{opacity:1;filter:none;transform:none}.step h3{margin-bottom:4px}.step p{margin:0;max-width:52ch}.prog{height:14px;border:2px solid;border-color:var(--lo) var(--hi) var(--hi) var(--lo);background:var(--cream)}.prog div{height:100%;width:0;background:repeating-linear-gradient(90deg,var(--n2) 0 10px,var(--face) 10px 12px)}form{display:flex;gap:8px;flex-wrap:wrap}input{flex:1 1 200px;font:16px Nunito,sans-serif;padding:8px;border:2px solid;border-color:var(--lo) var(--hi) var(--hi) var(--lo);background:#fff;color:#000;min-height:40px}#gb{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px}#gb li{padding:6px 10px;border-left:4px solid var(--pink);background:var(--face)}.odo{display:inline-flex;gap:2px}.odo b{background:#111;color:#7dff9a;font:700 20px Courier New,monospace;padding:2px 6px;border:2px inset #888}.status{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;font-size:14px;padding:6px 10px;border-top:2px solid var(--hi)}.cred{font-size:14px}.cred li{margin:3px 0}#zz{position:fixed;top:0;right:0;bottom:0;left:0;display:none;place-items:center;background:#0b0830e0;color:#ffe9a8;font:700 clamp(22px,5vw,40px) "Pixelify Sans",monospace;text-align:center;z-index:50;padding:20px;cursor:pointer}#zz.on{display:grid}.sp{position:fixed;pointer-events:none;z-index:40;font-size:16px;animation:sp .9s forwards}@keyframes sp{to{transform:translateY(24px) scale(.2);opacity:0}}@media (max-width:720px){.hero,.g2,.step{grid-template-columns:1fr}.step img{max-width:220px;margin:auto}.row{grid-template-columns:90px 1fr}.body{padding:14px}.hero .pipbtn{order:-1}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.map svg{width:100%;height:auto;background:var(--cream);border:2px solid var(--lo)}.map path{fill:none;stroke:var(--n2);stroke-width:3;stroke-dasharray:6 6}.book{perspective:1200px;display:grid;justify-items:center;gap:12px}.pg{width:min(340px,100%);height:380px;position:relative;transform-style:preserve-3d}.leaf{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:left;transition:transform .8s;background:var(--cream);border:2px solid var(--ink);padding:14px;display:grid;gap:6px;text-align:center;backface-visibility:hidden;align-content:center;justify-items:center}.leaf img{max-height:190px;width:auto;max-width:100%}.leaf.f{transform:rotateY(-180deg)}.game{position:relative;height:280px;overflow:hidden;background:linear-gradient(#1b1740,#3a3566);border:2px solid var(--lo);touch-action:manipulation}.dr{position:absolute;top:-30px;font-size:30px;background:none;border:0;cursor:pointer;animation:fall linear forwards}@keyframes fall{to{top:290px}}.cel{position:relative;height:240px;background:#0b0830;color:#ffe9a8;display:grid;place-items:center;text-align:center;overflow:hidden;border:2px solid var(--lo);--x:50%;--y:50%;touch-action:none}.cel div{-webkit-mask:radial-gradient(circle 90px at var(--x) var(--y),#000 30%,transparent 100%);mask:radial-gradient(circle 90px at var(--x) var(--y),#000 30%,transparent 100%);position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;font:700 22px Pixelify Sans,monospace;background:#ffe9a8;color:#2e2a78}#c3{width:100%;height:300px;display:block;background:var(--cream);border:2px solid var(--lo);touch-action:pan-y;cursor:grab}#log{max-height:140px;overflow:auto;display:grid;gap:4px;margin:8px 0}#log p{margin:0;padding:4px 8px;background:var(--face)}body.chaos .win:nth-child(odd){transform:rotate(calc(var(--c)*1deg))}body.chaos .win:nth-child(2n){transform:rotate(calc(var(--c)*-1deg))}body.chaos{filter:hue-rotate(calc(var(--c)*20deg))}body.chaos .tb{font-style:italic}#nv{display:contents}.mb{display:none}@media (max-width:720px){.mb{display:inline-block}#nv{display:none;width:100%;flex-direction:column;order:9}#nv.open{display:flex}.bar b{font-size:16px}}body{padding-bottom:64px}h2{font-size:24px;line-height:1.2}.body>h2{margin:0}.wbody{display:block}.win.min .wbody{display:none}.tb button{width:20px;height:20px;display:grid;place-items:center;background:var(--face);color:#000;border:2px solid;border-color:var(--hi) var(--lo) var(--lo) var(--hi);font:700 11px Pixelify Sans,monospace;cursor:pointer;padding:0}.tb button:active{border-color:var(--lo) var(--hi) var(--hi) var(--lo)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:0;list-style:none}.chips li{font:700 13px Pixelify Sans,monospace;padding:3px 8px;background:var(--cream);border:2px solid;border-color:var(--lo) var(--hi) var(--hi) var(--lo)}.uc{display:inline-block;font:700 13px Pixelify Sans,monospace;background:repeating-linear-gradient(45deg,#ffd54a 0,#ffd54a 10px,#2a2547 10px,#2a2547 20px);padding:2px;border:2px solid #000}.uc b{background:#ffd54a;color:#000;padding:1px 8px;display:block}.blink{animation:bl 1s steps(2) infinite}@keyframes bl{50%{visibility:hidden}}.meter{height:16px;border:2px solid;border-color:var(--lo) var(--hi) var(--hi) var(--lo);background:var(--cream);margin:4px 0 12px}.meter i{display:block;height:100%;background:repeating-linear-gradient(90deg,var(--pink) 0 8px,transparent 8px 10px)}.taskbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;gap:8px;align-items:center;padding:6px 10px calc(6px + env(safe-area-inset-bottom,0px));background:var(--face);border-top:2px solid var(--hi);box-shadow:0 -2px 0 var(--lo)}.taskbar .sp2{flex:1}.tray{display:flex;gap:10px;align-items:center;padding:4px 10px;border:2px solid;border-color:var(--lo) var(--hi) var(--hi) var(--lo);font:700 14px Pixelify Sans,monospace}.smenu{position:fixed;left:10px;bottom:calc(58px + env(safe-area-inset-bottom,0px));z-index:31;background:var(--face);border:2px solid;border-color:var(--hi) var(--lo) var(--lo) var(--hi);box-shadow:3px 3px #0004;display:grid;min-width:210px}.smenu a{padding:9px 14px;color:var(--ink);text-decoration:none;font:700 15px Pixelify Sans,monospace}.smenu a:hover,.smenu a:focus-visible{background:var(--n1);color:#fff}.toast{position:fixed;left:50%;bottom:calc(72px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:60;background:#ffc;color:#000;border:2px solid #000;padding:8px 14px;font:700 14px Pixelify Sans,monospace;max-width:92vw;box-shadow:3px 3px #0005}.swatches{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sw{width:34px;height:34px;border:2px solid;border-color:var(--hi) var(--lo) var(--lo) var(--hi);cursor:pointer;padding:0}.sw[aria-pressed=true]{outline:3px solid var(--n1);outline-offset:1px}.viz{display:flex;gap:3px;align-items:flex-end;height:30px}.viz i{width:8px;height:6px;background:var(--n2)}.wob .viz i{animation:vz .5s ease-in-out infinite alternate}.viz i:nth-child(2n){animation-delay:.15s!important}.viz i:nth-child(3n){animation-delay:.3s!important}@keyframes vz{to{height:28px}}.spec{margin:0;padding-left:18px;font-size:14px}.range{display:flex;gap:8px;align-items:center;font:700 14px Pixelify Sans,monospace;width:100%}.range input{flex:1;min-height:0;padding:0}.ruler{display:flex;justify-content:space-between;font:12px Pixelify Sans,monospace;margin-left:120px;opacity:.8}.fill small{display:none}.cm{font:700 13px Pixelify Sans,monospace;text-align:right}.row{grid-template-columns:110px 1fr 54px}.blocks{display:flex;flex-direction:column-reverse;align-items:center;min-height:150px;justify-content:flex-start;border-bottom:4px solid var(--lo);padding-bottom:2px}.blk{height:22px;border:2px solid #2a2547;margin-top:-2px;transition:transform .2s}.tools{display:flex;gap:8px;flex-wrap:wrap}.hs{position:absolute;background:none;border:0;font-size:28px;cursor:pointer;padding:6px}.dots{display:flex;gap:6px}.dots i{width:10px;height:10px;border:2px solid var(--ink);background:var(--cream)}.dots i.a{background:var(--pink)}.chipbtn{font:700 13px Pixelify Sans,monospace;padding:4px 10px;background:var(--cream);border:2px solid;border-color:var(--hi) var(--lo) var(--lo) var(--hi);cursor:pointer;color:var(--ink)}.badges{display:flex;flex-wrap:wrap;gap:8px}.badges span{font:700 12px Pixelify Sans,monospace;padding:4px 8px;background:#000;color:#7dff9a;border:2px outset #888}.ch{font:700 12px Pixelify Sans,monospace;display:inline-block;background:var(--n1);color:#fff;padding:1px 8px;margin-bottom:4px}.d3{position:relative}.d3 .tools{margin-top:10px}#c3{border:2px solid;border-color:var(--lo) var(--hi) var(--hi) var(--lo);touch-action:pan-y}.pg{height:410px}.leaf p{margin:0;font-size:14px}.step img{border:2px solid var(--ink);background:var(--cream);padding:6px}.msg{display:grid;gap:8px}@media (max-width:720px){.taskbar .tray span:nth-child(2){display:none}.row{grid-template-columns:90px 1fr 46px}.ruler{margin-left:90px}}
