@font-face{font-family:RG WideBlack;src:url(../fonts/PPRightGrotesk-WideBlack.otf) format("opentype")}@font-face{font-family:RG CompactBlack;src:url(../fonts/PPRightGrotesk-CompactBlack.otf) format("opentype")}@font-face{font-family:Bangers;src:url(../fonts/Bangers-Regular.ttf) format("truetype")}:root{--frame-color: #f5f0e1;--masthead-bg: #c41e2a;--masthead-text: #fff;--caption-bg: #f7e44c;--caption-border: #1a1a1a;--caption-text: #1a1a1a;--seal-color: #1a8c3f;--ctrl-bg: rgba(40, 25, 10, .5);--ctrl-border: rgba(245, 240, 225, .15);--ctrl-accent: rgba(196, 30, 42, .35);--ctrl-text: rgba(255, 255, 255, .7)}*{margin:0;padding:0;box-sizing:border-box}:focus-visible{outline:2px solid rgba(196,30,42,.8);outline-offset:2px}:focus:not(:focus-visible){outline:none}html,body{width:100%;height:100%;height:100dvh;overflow:hidden;background:#1a1a1a;font-family:Inter,sans-serif}canvas#canvas{display:block;width:100%;height:100%;height:100dvh}.loading #overlay,.loading #flash{opacity:0;pointer-events:none}#loader{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:15;pointer-events:none;background:#1a1a1a;overflow:hidden;transition:opacity .6s ease}#loader.hidden{opacity:0}.loader-burst{position:absolute;width:200vmax;height:200vmax;top:50%;left:50%;background:repeating-conic-gradient(rgba(255,255,255,.035) 0deg 1.5deg,transparent 1.5deg 8deg);animation:burstSpin 60s linear infinite}@keyframes burstSpin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}#loader:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle,rgba(255,255,255,.025) 1px,transparent 1px);background-size:20px 20px}#loader:after{content:"";position:absolute;width:70vw;height:50vh;top:50%;left:50%;transform:translate(-50%,-50%);background:radial-gradient(ellipse,rgba(196,30,42,.12),transparent 70%);animation:glowPulse 2.5s ease-in-out infinite}@keyframes glowPulse{0%,to{opacity:.5}50%{opacity:1}}.loader-title{font-family:Bangers,cursive;font-size:clamp(64px,14vw,140px);color:#fff;letter-spacing:8px;text-shadow:4px 4px 0 #c41e2a,8px 8px 0 rgba(0,0,0,.25);line-height:1;z-index:1;opacity:1;transform:rotate(-2deg);animation:titleIn .8s cubic-bezier(.16,1,.3,1) .1s backwards;transition:transform .8s cubic-bezier(.16,1,.3,1),opacity .6s ease}@keyframes titleIn{0%{opacity:0;transform:rotate(-2deg) translateY(20px)}}.loader-subtitle{font-family:JetBrains Mono,monospace;font-size:clamp(11px,2vw,16px);letter-spacing:12px;text-transform:uppercase;margin-top:16px;z-index:1;opacity:.45;transform:translateY(0);color:#fff;animation:subtitleIn .6s cubic-bezier(.16,1,.3,1) .45s backwards;transition:transform .8s cubic-bezier(.16,1,.3,1) .05s,opacity .5s ease .05s}@keyframes subtitleIn{0%{opacity:0;transform:translateY(10px)}}#loader.hidden .loader-title{transform:translateY(-40px) rotate(-2deg) scale(.95);opacity:0}#loader.hidden .loader-subtitle{transform:translateY(-30px);opacity:0}.no-webgl{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#1a1a1a;color:#fff;font-family:Inter,sans-serif;text-align:center;padding:2rem;z-index:10001}.no-webgl p{font-size:16px;line-height:1.6;max-width:400px;opacity:.8}#overlay{position:fixed;top:0;left:0;width:100%;height:100%;height:100dvh;pointer-events:none;z-index:10;box-shadow:inset 0 0 0 12px var(--frame-color);transition:box-shadow .6s cubic-bezier(.16,1,.3,1)}#masthead{position:absolute;top:12px;left:12px;right:12px;height:52px;background-color:var(--masthead-bg);color:var(--masthead-text);display:flex;align-items:center;justify-content:space-between;padding:0 20px;pointer-events:auto;transition:background-color .6s cubic-bezier(.16,1,.3,1),color .6s cubic-bezier(.16,1,.3,1)}.masthead-left{display:flex;flex-direction:column;gap:1px}.masthead-issue{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;letter-spacing:.5px;transition:opacity .18s ease}.masthead-date{font-family:JetBrains Mono,monospace;font-size:9px;font-weight:400;letter-spacing:.3px;opacity:.7;transition:opacity .18s ease}.masthead-title{font-family:Bangers,cursive;font-size:32px;letter-spacing:2px;text-shadow:2px 2px 0 rgba(0,0,0,.2);transition:opacity .18s ease}.masthead-edition{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;letter-spacing:.5px;transition:opacity .18s ease}#seal{position:absolute;bottom:110px;right:24px;width:72px;height:72px;border:2px solid var(--seal-color);outline:2px solid var(--seal-color);outline-offset:3px;display:flex;align-items:center;justify-content:center;pointer-events:auto;transition:border-color .6s cubic-bezier(.16,1,.3,1),outline-color .6s cubic-bezier(.16,1,.3,1)}.seal-inner{display:flex;flex-direction:column;align-items:center;gap:1px;text-align:center}.seal-top{font-family:JetBrains Mono,monospace;font-size:6px;font-weight:500;letter-spacing:.5px;color:var(--seal-color);text-transform:uppercase;transition:color .6s cubic-bezier(.16,1,.3,1)}.seal-mid{font-family:Bangers,cursive;font-size:16px;letter-spacing:1px;color:var(--seal-color);line-height:1;transition:color .6s cubic-bezier(.16,1,.3,1)}.seal-bot{font-family:JetBrains Mono,monospace;font-size:6px;font-weight:500;letter-spacing:.5px;color:var(--seal-color);text-transform:uppercase;transition:color .6s cubic-bezier(.16,1,.3,1)}#caption{position:absolute;bottom:120px;left:24px;max-width:280px;background-color:var(--caption-bg);border:2px solid var(--caption-border);padding:12px 14px;pointer-events:auto;transition:background-color .6s cubic-bezier(.16,1,.3,1),border-color .6s cubic-bezier(.16,1,.3,1)}#caption p{font-family:Inter,sans-serif;font-size:12px;font-weight:400;line-height:1.5;color:var(--caption-text);transition:opacity .18s ease,color .6s cubic-bezier(.16,1,.3,1)}#presets{position:absolute;bottom:24px;left:50%;transform:translate(-50%);display:flex;gap:2px;justify-content:center;pointer-events:auto;background:#0f0a08a6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:50px;padding:4px;transition:background-color .25s ease,border-color .25s ease}.preset-btn{background:transparent;border:none;color:#ffffff73;padding:10px 16px;border-radius:46px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.5px;cursor:pointer;transition:color .25s ease;text-transform:uppercase;position:relative;z-index:2;white-space:nowrap;-webkit-user-select:none;user-select:none}.preset-btn:hover{color:#ffffffbf}.preset-btn.active{color:#fff}.preset-hover{position:absolute;height:calc(100% - 8px);top:4px;border-radius:42px;background:#ffffff14;transition:left .2s cubic-bezier(.16,1,.3,1),width .2s cubic-bezier(.16,1,.3,1),opacity .15s ease;z-index:1;pointer-events:none;opacity:0}.preset-hover.visible{opacity:1}.preset-indicator{position:absolute;height:calc(100% - 8px);top:4px;border-radius:42px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);transition:left .4s cubic-bezier(.16,1,.3,1),width .4s cubic-bezier(.16,1,.3,1);z-index:0;pointer-events:none}.preset-preview{position:absolute;bottom:calc(100% + 10px);width:200px;border-radius:14px;background:#0f0a08bf;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);overflow:hidden;opacity:0;pointer-events:none;z-index:100;padding:4px;transform:scale(.6) translateY(12px);transform-origin:bottom center;filter:blur(4px);transition:opacity .25s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1),filter .25s cubic-bezier(.16,1,.3,1),left .2s cubic-bezier(.16,1,.3,1)}.preset-preview.visible{opacity:1;transform:scale(1) translateY(0);filter:blur(0px)}.preset-preview img{width:100%;display:block;border-radius:10px}#credits{position:absolute;top:64px;left:12px;display:flex;gap:8px;align-items:center;pointer-events:auto;padding:8px 14px;background-color:var(--caption-border);border-radius:0 0 6px;transition:background-color .6s cubic-bezier(.16,1,.3,1)}#credits a{color:#fff;opacity:.85;text-decoration:none;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;letter-spacing:.5px;transition:opacity .15s ease}#credits a:hover{opacity:1}.credits-sep{color:#ffffff59;font-size:10px}#flash{position:fixed;top:0;left:0;width:100%;height:100%;background:#fff;z-index:100;opacity:0;pointer-events:none;transition:opacity .4s ease-out}#flash.visible{opacity:1}#lens-modes{position:absolute;bottom:24px;right:24px;display:flex;gap:8px;pointer-events:auto}.lens-btn{background:#0f0a08a6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);color:#ffffff80;padding:8px 16px;border-radius:50px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;letter-spacing:.5px;cursor:pointer;transition:background-color .25s ease,border-color .25s ease,color .25s ease;text-transform:uppercase;-webkit-user-select:none;user-select:none}.lens-btn:hover{background:#19140fbf;border-color:#ffffff2e;color:#fffc}.lens-btn.active{background:#ffffff1f;border-color:#ffffff40;color:#fff}#compare{position:absolute;bottom:24px;left:24px;pointer-events:auto;background:#0f0a08a6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);color:#ffffff80;padding:8px 16px;border-radius:50px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;letter-spacing:.5px;cursor:pointer;transition:background-color .25s ease,border-color .25s ease,color .25s ease;text-transform:uppercase;-webkit-user-select:none;user-select:none}#compare:hover{background:#19140fbf;border-color:#ffffff2e;color:#fffc}#compare.active{background:#ffffff1f;border-color:#ffffff40;color:#fff}.key-hint{display:inline-block;background:var(--ctrl-accent);opacity:.6;padding:2px 6px;border-radius:3px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:400;margin-left:8px;vertical-align:middle;letter-spacing:.5px;border:1px solid var(--ctrl-border);transition:background-color .6s cubic-bezier(.16,1,.3,1),border-color .6s cubic-bezier(.16,1,.3,1),opacity .25s ease}#compare.active .key-hint{opacity:0}#gui-toggle{position:absolute;top:68px;right:24px;background:#0f0a08a6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);color:#ffffff80;padding:7px 14px;border-radius:50px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.5px;cursor:pointer;transition:background-color .25s ease,border-color .25s ease,color .25s ease;text-transform:uppercase;-webkit-user-select:none;user-select:none;pointer-events:auto;z-index:21}#gui-toggle:hover{background:#19140fbf;border-color:#ffffff2e;color:#fffc}#gui-toggle.active{background:#ffffff1f;border-color:#ffffff40;color:#fff}.lil-gui.root{position:fixed!important;top:102px!important;right:24px!important;width:240px!important;max-height:min(60vh,calc(100vh - 200px))!important;overflow-y:auto!important;z-index:20!important;transition:opacity .2s ease,transform .2s ease!important}.lil-gui.root.gui-hidden{opacity:0!important;transform:translateY(-8px)!important;pointer-events:none!important}@media(max-width:768px){#overlay{box-shadow:inset 0 0 0 8px var(--frame-color)}#masthead{top:8px;left:8px;right:8px;height:44px;padding:0 14px}.masthead-title{font-size:24px;letter-spacing:1.5px}.masthead-issue{font-size:10px}.masthead-date{font-size:8px}.masthead-edition{font-size:10px}#gui-toggle{top:56px;right:16px;font-size:9px;padding:6px 10px}.lil-gui.root{top:86px!important;right:8px!important;width:220px!important;max-height:min(55vh,calc(100vh - 180px))!important}#caption{bottom:calc(110px + env(safe-area-inset-bottom,0px));left:16px;max-width:220px;padding:10px 12px}#caption p{font-size:11px}#seal{bottom:calc(100px + env(safe-area-inset-bottom,0px));right:16px;width:60px;height:60px}.seal-mid{font-size:13px}.seal-top,.seal-bot{font-size:5px}#presets{bottom:calc(54px + env(safe-area-inset-bottom,0px));padding:3px;max-width:calc(100vw - 32px);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;justify-content:flex-start}#presets::-webkit-scrollbar{display:none}.preset-btn{padding:8px 12px;font-size:9px}.preset-preview{display:none}#compare{bottom:calc(16px + env(safe-area-inset-bottom,0px));left:16px;padding:6px 12px;font-size:10px}#lens-modes{bottom:calc(16px + env(safe-area-inset-bottom,0px));right:16px;gap:6px}.lens-btn{padding:6px 12px;font-size:10px}#credits{top:52px;left:8px;padding:6px 10px;gap:6px}#credits a,.credits-sep{font-size:9px}}@media(max-width:480px){#overlay{box-shadow:inset 0 0 0 5px var(--frame-color)}#masthead{top:5px;left:5px;right:5px;height:38px;padding:0 10px}.masthead-title{font-size:18px;letter-spacing:1px}.masthead-issue{font-size:9px}.masthead-date{font-size:7px}.masthead-edition{font-size:9px}#gui-toggle{top:47px;right:10px;font-size:8px;padding:5px 8px}.lil-gui.root{top:72px!important;right:5px!important;left:5px!important;width:auto!important;max-height:min(50vh,calc(100vh - 160px))!important}#caption{bottom:calc(100px + env(safe-area-inset-bottom,0px));left:10px;max-width:180px;padding:8px 10px}#caption p{font-size:10px;line-height:1.4}#seal{bottom:calc(100px + env(safe-area-inset-bottom,0px));right:10px;width:50px;height:50px}.seal-mid{font-size:11px}.seal-top,.seal-bot{font-size:4.5px}#presets{bottom:calc(48px + env(safe-area-inset-bottom,0px));left:10px;right:10px;transform:none;max-width:none;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-radius:30px;padding:3px;justify-content:flex-start}#presets::-webkit-scrollbar{display:none}.preset-btn{padding:7px 10px;font-size:8px;letter-spacing:.3px}.preset-preview{display:none}#compare{bottom:calc(10px + env(safe-area-inset-bottom,0px));left:10px;padding:5px 10px;font-size:9px}.key-hint{display:none}#lens-modes{bottom:calc(10px + env(safe-area-inset-bottom,0px));right:10px;gap:4px}.lens-btn{padding:5px 10px;font-size:9px}#credits{top:43px;left:5px;padding:5px 8px;gap:5px;border-radius:0 0 4px}#credits a,.credits-sep{font-size:8px}}@media(prefers-reduced-motion:reduce){#overlay,#masthead,#seal,.seal-top,.seal-mid,.seal-bot,#caption,#caption p,.masthead-issue,.masthead-date,.masthead-title,.masthead-edition,#flash{transition:none}#loader,.loader-burst,.loader-title,.loader-subtitle{transition:none;animation:none}#loader:after{animation:none}.preset-btn{transition:none;animation:none!important}.preset-indicator,.preset-hover,.preset-preview,#presets,#compare,.lens-btn,.key-hint{transition:none}}
