@property --bg-color{syntax: "<color>"; inherits: true; initial-value: #0d0208;}@property --fg-color{syntax: "<color>"; inherits: true; initial-value: #00ff41;}@property --accent-color{syntax: "<color>"; inherits: true; initial-value: #008f11;}:root{color-scheme:dark light;--bg-color: #0d0208;--fg-color: #00ff41;--accent-color: #008f11;--font-primary: "VT323", monospace;transition:--bg-color 1.2s ease,--fg-color 1.2s ease,--accent-color 1.2s ease}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-primary);font-size:clamp(17px,1.4vw,22px);line-height:1.5;background:var(--bg-color);color:var(--fg-color);transition:background-color 1.2s ease,color 1.2s ease;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.55) 0,rgba(0,0,0,.55) 1px,transparent 1px,transparent 3px);opacity:.07}canvas{display:block;touch-action:none}a{color:var(--accent-color)}.crt-wipe{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;pointer-events:none;background:var(--bg-color);box-shadow:0 0 24px 4px color-mix(in srgb,var(--fg-color) 80%,transparent),0 0 80px 8px color-mix(in srgb,var(--accent-color) 40%,transparent)}.crt-wipe.out{animation:crt-out .23s ease-in forwards}.crt-wipe.in{animation:crt-in .28s ease-out forwards}@keyframes crt-out{0%{transform:scaleY(.004)}to{transform:scaleY(1)}}@keyframes crt-in{0%{transform:scaleY(1);opacity:1}70%{transform:scaleY(.004);opacity:1}to{transform:scaleY(.004);opacity:0}}.blink{animation:blink 1.1s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}.hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}.hud .title{position:absolute;top:calc(env(safe-area-inset-top,0px) + 14px);left:18px;font-size:26px;color:var(--fg-color);text-shadow:0 0 10px color-mix(in srgb,var(--accent-color) 55%,transparent)}.hud .hint{position:absolute;top:calc(env(safe-area-inset-top,0px) + 46px);left:18px;font-size:17px;color:var(--fg-color);opacity:.6}.hud .toast{position:absolute;top:18%;left:50%;transform:translate(-50%);background:color-mix(in srgb,var(--bg-color) 85%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--fg-color);border:2px solid var(--fg-color);box-shadow:0 0 12px color-mix(in srgb,var(--accent-color) 45%,transparent);padding:8px 16px;font-size:19px;white-space:nowrap;animation:pop .25s ease-out}.hud .toast:before{content:"> ";color:var(--accent-color)}@keyframes pop{0%{transform:translate(-50%) scale(.92);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}.walklayer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6;touch-action:none}.walkmark{position:absolute;left:-17px;top:-17px;width:34px;height:34px;border:2px dashed var(--fg-color);opacity:0;transition:opacity .15s ease;pointer-events:none;display:grid;place-items:center}.walkmark:after{content:"+";color:var(--accent-color);font-family:var(--font-primary);font-size:20px;line-height:1}.walkmark.on{opacity:.8}.gallery{height:100%;overflow-y:auto;padding:calc(env(safe-area-inset-top,0px) + 56px) 20px 56px;background:var(--bg-color);transition:background-color 1.2s ease}.gallery header{max-width:900px;margin:0 auto 36px}.gallery h1{font-size:clamp(44px,7vw,64px);font-weight:400;color:var(--fg-color);text-shadow:0 0 14px color-mix(in srgb,var(--accent-color) 45%,transparent)}.gallery header p{margin-top:4px;font-size:20px;color:var(--accent-color)}.gallery .cards{max-width:900px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}.gallery .card{display:block;padding:18px 18px 16px;background:#0003;border:2px dashed var(--fg-color);text-decoration:none;color:var(--fg-color);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.gallery .card:hover{border-style:solid;transform:translateY(-4px);box-shadow:5px 5px 0 var(--fg-color)}.gallery .card .cardtop{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.gallery .card .glyph{display:block;font-size:28px;line-height:1;color:var(--accent-color)}.gallery .card .swatches{display:flex;gap:4px}.gallery .card .swatch{width:11px;height:11px;border:1px solid var(--fg-color)}.gallery .card h2{font-size:24px;font-weight:400;margin-bottom:4px}.gallery .card p{font-size:17px;line-height:1.4;opacity:.75;margin-bottom:14px}.gallery .card .enter{font-size:17px;color:var(--accent-color)}.gallery .card .enter:before{content:"[ "}.gallery .card .enter:after{content:" ]"}.gallery .card:hover .enter{background:var(--accent-color);color:var(--bg-color)}.gallery footer{max-width:900px;margin:48px auto 0;font-size:17px;color:var(--fg-color);opacity:.75;display:flex;flex-wrap:wrap;align-items:center;gap:14px}.gallery footer a{color:var(--accent-color)}.chipbtn{font-family:var(--font-primary);font-size:16px;background:transparent;color:var(--fg-color);border:2px dashed var(--fg-color);padding:2px 10px;cursor:pointer}.chipbtn:before{content:"[ ";opacity:.6}.chipbtn:after{content:" ]";opacity:.6}.chipbtn:hover{border-style:solid;background:var(--accent-color);color:var(--bg-color)}.backchip{position:absolute;top:calc(env(safe-area-inset-top,0px) + 14px);right:18px;pointer-events:auto;background:color-mix(in srgb,var(--bg-color) 75%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--fg-color);font-size:17px;padding:4px 10px;border:2px dashed var(--fg-color);text-decoration:none}.backchip:before{content:"[ ";opacity:.6}.backchip:after{content:" ]";opacity:.6}.backchip:hover{border-style:solid;background:var(--accent-color);color:var(--bg-color)}.counter{position:absolute;top:calc(env(safe-area-inset-top,0px) + 62px);right:18px;background:color-mix(in srgb,var(--bg-color) 80%,transparent);color:var(--fg-color);font-size:18px;padding:4px 12px;border:2px solid var(--fg-color)}.bubble{background:var(--bg-color);color:var(--fg-color);font-family:var(--font-primary);font-size:17px;line-height:1.3;padding:8px 12px;border:2px solid var(--fg-color);box-shadow:4px 4px 0 var(--fg-color);white-space:nowrap;max-width:260px}.infochip{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 22px);transform:translate(-50%);background:color-mix(in srgb,var(--bg-color) 80%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--fg-color);font-size:16px;padding:6px 14px;border:2px dashed var(--fg-color);white-space:nowrap;z-index:10}.scene-loading{height:100%;display:grid;place-items:center;font-size:20px;color:var(--fg-color);opacity:.7}.dropzone{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 22px);transform:translate(-50%);background:color-mix(in srgb,var(--bg-color) 80%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--fg-color);font-size:17px;padding:10px 18px;border:2px dashed var(--fg-color);z-index:10;white-space:nowrap}.dropzone.hover{border-color:var(--accent-color);box-shadow:0 0 12px color-mix(in srgb,var(--accent-color) 45%,transparent)}.dropzone .error{color:var(--accent-color)}.dropzone .error:before{content:"! "}.dropzone .filebtn{color:var(--accent-color);text-decoration:underline;cursor:pointer;pointer-events:auto}@media (max-width: 600px){.hud .title{font-size:22px}.hud .hint{top:calc(env(safe-area-inset-top,0px) + 42px);font-size:15px}}.bare-title{position:absolute;top:calc(env(safe-area-inset-top,0px) + 14px);left:18px;font-size:18px;color:var(--fg-color);opacity:.4;font-weight:400}.bare-back{position:absolute;top:calc(env(safe-area-inset-top,0px) + 14px);right:18px;width:28px;height:28px;pointer-events:auto;opacity:.3;transition:opacity .15s ease;cursor:pointer;display:flex;align-items:center;justify-content:center;border:1px dashed var(--fg-color);background:transparent}.bare-back:hover,.bare-back:focus{opacity:.7;outline:none}.bare-back:before{content:"";width:10px;height:10px;border-left:2px solid var(--fg-color);border-top:2px solid var(--fg-color);transform:rotate(-45deg);margin-right:2px}@media (prefers-reduced-motion: reduce){.blink{animation:none}.gallery .card,.hud .toast{animation:none;transition:none}}
