:root{--vi:#b36bff;--vi2:#7c3aed;--vi3:#3b0f7a;--gold:#f5c542;--gold2:#ffdf8a;--ink:#09030f;--glow:0 0 10px #b36bff,0 0 26px #8b3dff99,0 0 48px #7c3aed66;--L:0;--bass:0;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;overflow:hidden;background:var(--ink);color:#f3eaff;font:400 16px/1.45 'DM Sans',system-ui,sans-serif;overscroll-behavior:none}
a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}img,video{display:block;-webkit-user-drag:none;user-select:none}
#game{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;overflow:hidden;touch-action:none;background:#05010a;--L:0;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#game.dragging{cursor:grabbing}
#stage{position:absolute;inset:0;will-change:transform}
.room{position:absolute;top:0;height:100%;overflow:hidden;background:#05010a;visibility:hidden}
.room.vis{visibility:visible}
.world{position:absolute;left:0;top:0;width:1600px;height:1460px;transform-origin:0 0;will-change:transform}
.ceil{position:absolute;left:0;top:0;width:1600px;height:560px;overflow:hidden;filter:brightness(calc(.2 + .8*var(--L))) saturate(1.1)}
.ceil>picture,.ceil>picture img{position:absolute;left:0;bottom:0;width:1600px;height:900px;max-width:none;object-fit:cover}
.ceil::after{content:"";position:absolute;left:0;right:0;bottom:0;height:150px;background:linear-gradient(#05010a00,#05010a99 80%,#05010acc);pointer-events:none}
.plate{position:absolute;left:0;top:560px;width:1600px;height:900px}
.plate>picture,.plate>picture img.bg{position:absolute;inset:0;width:100%;height:100%;max-width:none;display:block}
.plate img.bg{filter:brightness(calc(.16 + .84*var(--L))) saturate(calc(.7 + .3*var(--L)))}
.layer{position:absolute;inset:0;pointer-events:none;transform:translate3d(calc(var(--par,0)*var(--k,0)*1px),0,0)}
.layer>*{pointer-events:auto}
.layer .nopt{pointer-events:none}
.hs{position:absolute;cursor:pointer;border:0;background:none;padding:0;transition:filter .2s,transform .2s;outline:none}
.hs:hover,.hs:focus-visible{filter:drop-shadow(0 0 14px var(--gold)) brightness(1.18)}
.hs[data-zoom]:hover::after,.hs.hint::after{content:attr(data-label);position:absolute;left:50%;bottom:100%;transform:translate(-50%,-6px);white-space:nowrap;padding:5px 10px;border-radius:999px;background:#12051fcc;border:1px solid #f5c54299;color:#ffe9a8;font:700 12px/1 'Space Grotesk',sans-serif;letter-spacing:.06em;pointer-events:none;z-index:9}
.hs img{width:100%;height:auto;pointer-events:none}
.vig{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 85% 80% at 50% 55%,#0000 55%,#05010acc 100%)}
.haze{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mix-blend-mode:screen;opacity:calc(.04 + .16*var(--L));pointer-events:none}
.dark{position:absolute;inset:0;background:#05010a;opacity:calc(1 - var(--L));pointer-events:none}
.sh{position:absolute;pointer-events:none;border-radius:50%;background:radial-gradient(ellipse at 50% 50%,#000d 0%,#0008 45%,#0000 72%);filter:blur(2px)}
.refl{position:absolute;pointer-events:none;transform:scaleY(-1);opacity:.32;-webkit-mask-image:linear-gradient(#0000 55%,#000 100%);mask-image:linear-gradient(#0000 55%,#000 100%);filter:blur(1.5px) saturate(1.2)}
.spill{position:absolute;pointer-events:none;mix-blend-mode:screen;border-radius:50%}
.rim{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen}
/* tv */
.tvwrap{position:absolute;left:830px;top:300px;width:340px;height:340px;transform:translateX(-50%);z-index:3}
.tv{left:50%;bottom:0;width:100%;transform:translateX(-50%);filter:drop-shadow(0 10px 14px #000c) brightness(calc(.35 + .65*var(--L)))}
.tv .ant{filter:brightness(calc(.4 + .6*var(--L)))}
.tvlink{position:absolute;z-index:4;left:6%;top:28%;width:69.3%;height:62.3%;cursor:pointer;border-radius:3%/4%}
.tvlink:hover{box-shadow:0 0 0 2px #f5c54299,0 0 26px #b36bff88}
#ytBox{position:absolute;inset:0;background:#000;overflow:hidden}
#ytBox iframe,#ytBox #yt{position:absolute;top:50%;left:50%;width:140%;height:104%;transform:translate(-50%,-50%);border:0;pointer-events:none}
#tvSnow{object-fit:cover}
.tvglow{position:absolute;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(ellipse 50% 50% at 50% 50%,#d9b8ff55 0%,#8b3dff30 38%,#0000 72%);animation:tvflick 2.3s steps(9) infinite;opacity:calc(.25 + .6*var(--L))}
.tv.off~.x,#game.tvoff .tvglow{opacity:.12}
@keyframes tvflick{0%{filter:brightness(1)}22%{filter:brightness(.82)}37%{filter:brightness(1.14)}55%{filter:brightness(.9)}71%{filter:brightness(1.2)}86%{filter:brightness(.86)}100%{filter:brightness(1)}}
.tv-pwr{z-index:5}
.tv-pwr .dial{background:radial-gradient(circle,#1a0f24 62%,#07020c 100%)!important;box-shadow:0 0 0 .3cqw #c59c3a,0 .5cqw 1cqw #000c,inset 0 0 .6cqw #000!important}
.tv-pwr::after{content:"POWER";position:absolute;left:50%;top:100%;transform:translateX(-50%);font:700 2cqw/1 'Space Grotesk';letter-spacing:.14em;color:var(--gold);opacity:.8;margin-top:.6cqw;white-space:nowrap}
.tv-pwr i{filter:drop-shadow(0 0 1cqw #b36bffcc)}
.tv-pwr.off i{filter:drop-shadow(0 0 1cqw #f5c54299)}
/* neon */
.neon{position:absolute;cursor:pointer;border:0;background:none;padding:0}
.neon img{position:absolute;left:0;top:0;width:100%;height:auto}
.neon .on{opacity:0;mix-blend-mode:screen;filter:drop-shadow(0 0 8px #b36bff) drop-shadow(0 0 22px #8b3dffaa) drop-shadow(0 0 6px #f5c54266);transition:opacity .08s}
.neon .off{opacity:1}
.neon.lit .on{opacity:1}
.neon.lit .off{opacity:.12}
.neon.flick .on{animation:nflick 3.2s steps(1) 1}
@keyframes nflick{0%{opacity:0}6%{opacity:.9}9%{opacity:.1}14%{opacity:1}20%{opacity:.2}30%{opacity:1}38%{opacity:.35}44%{opacity:1}100%{opacity:1}}
.neon.buzz.lit .on{animation:nbuzz 7s infinite}
@keyframes nbuzz{0%,92%,100%{opacity:1}93%{opacity:.82}94%{opacity:1}96%{opacity:.7}97%{opacity:1}}
.neonglow{position:absolute;pointer-events:none;mix-blend-mode:screen;border-radius:50%;background:radial-gradient(ellipse,#a14bff55,#7c3aed22 45%,#0000 72%);opacity:0;transition:opacity .3s}
.neonglow.lit{opacity:.9}
/* name tag */
.tagname{position:absolute;display:block;z-index:4;transform:rotate(var(--r,-3deg));animation:bob 4.6s ease-in-out infinite;filter:drop-shadow(0 8px 12px #000b) brightness(calc(.5 + .5*var(--L)))}
.tagname img{width:100%;height:auto}
.tagname:hover{filter:drop-shadow(0 0 18px #b36bff) brightness(1.2)}
@keyframes bob{0%,100%{transform:rotate(var(--r,-3deg)) translateY(0)}50%{transform:rotate(var(--r,-3deg)) translateY(-5px)}}
/* antenna etc come from tv.css */
.tv .ant{pointer-events:auto}
/* speaker + bobble */
.spk{position:absolute;filter:brightness(calc(.35 + .65*var(--L))) drop-shadow(0 0 calc(10px + var(--bass)*26px) #b36bffaa);transform:scale(calc(1 + var(--bass)*.012));transform-origin:50% 100%}
.spk img{width:100%;height:auto}
.spkled{position:absolute;inset:0;mix-blend-mode:screen;background:radial-gradient(circle at 50% 28%,#b36bff55,#0000 38%),radial-gradient(circle at 50% 70%,#f5c54244,#0000 38%);opacity:calc(.35 + var(--bass)*.65);pointer-events:none}
.bob{position:absolute;z-index:5;background:none;border:0;padding:0;cursor:grab;touch-action:none;filter:drop-shadow(0 6px 8px #000a) brightness(calc(.45 + .55*var(--L)))}
.bob img{position:absolute;left:0;width:100%;height:auto;pointer-events:none}
.bob .bd{bottom:0}.bob .hd{top:0;transform-origin:52% 100%}
.bob:active{cursor:grabbing}
.plinth{position:absolute;z-index:4;pointer-events:none;background:linear-gradient(180deg,#2a1a3c 0%,#120814 70%,#0a060e 100%);border-radius:7px 7px 4px 4px;box-shadow:inset 0 0 0 1px #f5c54266,0 16px 22px #000a;filter:brightness(calc(.5 + .5*var(--L)))}
.plinth:before{content:"";position:absolute;left:-10%;right:-10%;top:-12px;height:18px;background:radial-gradient(ellipse at 50% 50%,#3a2454,#160a22 70%);border-radius:50%;box-shadow:0 0 18px #b36bff66,0 0 0 1px #f5c54288,inset 0 1px 0 #ffe9a966}

/* table */
.tbl{position:absolute}
.tbl .led{position:absolute;inset:-6% -4% -10% -4%;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(ellipse 52% 30% at 50% 82%,#b36bff66,#0000 70%),radial-gradient(ellipse 36% 18% at 52% 95%,#f5c54255,#0000 70%);animation:ledcyc 6s ease-in-out infinite}
@keyframes ledcyc{0%,100%{filter:hue-rotate(0)}50%{filter:hue-rotate(-18deg) brightness(1.25)}}
/* shop */
.item{position:absolute;display:block;border-radius:6px;overflow:hidden;background:#fff;box-shadow:0 0 0 2px #1b0c2d,0 4px 10px #000a,0 0 12px #f5c54233;transition:transform .2s,box-shadow .2s;filter:brightness(calc(.55 + .45*var(--L)))}
.item img{width:100%;height:100%;object-fit:cover}
.item:hover{transform:translateY(-4px) scale(1.12);z-index:6;box-shadow:0 0 0 2px var(--gold),0 8px 18px #000c,0 0 22px #f5c54299}
.item b{position:absolute;left:0;right:0;bottom:0;padding:1px 3px;background:#12051fdd;color:var(--gold2);font:700 9px/1.3 'Space Grotesk';text-align:center}
/* bar */
.menuboard{position:absolute;left:562px;top:152px;width:488px;height:242px;padding:12px 18px;background:#050208ee;border:3px solid #c59c3a;border-radius:4px;box-shadow:0 0 22px #7c3aed88,inset 0 0 30px #000;display:flex;flex-direction:column;gap:2px;filter:brightness(calc(.4 + .6*var(--L)))}
.menuboard h3{margin:0 0 4px;text-align:center;font:400 30px/1 'Permanent Marker',cursive;color:var(--gold);text-shadow:0 0 12px #f5c54288;letter-spacing:.04em}
.menuboard h3 small{display:block;font:700 10px/1.4 'Space Grotesk';letter-spacing:.3em;color:#c9a9ff;text-shadow:none}
.menuboard button{display:flex;justify-content:space-between;align-items:baseline;gap:8px;text-align:left;border:0;background:none;color:#f1e3ff;font:500 15px/1.35 'Space Grotesk';padding:3px 6px;border-radius:6px;border-bottom:1px dashed #6b4aa855;transition:background .2s}
.menuboard button:hover,.menuboard button.on{background:#7c3aed55;color:#fff}
.menuboard button i{font-style:normal;color:#c9a9ff;font-size:11px;letter-spacing:.06em}
.menuboard .fine{margin-top:auto;text-align:center;font:500 9px/1.2 'Space Grotesk';color:#8b78a8;letter-spacing:.08em}
.pourcam{position:absolute;z-index:6;left:800px;top:410px;width:calc(var(--pourw,300)*1px);aspect-ratio:16/9;transform:translateX(-50%) perspective(900px) rotateX(5deg);border-radius:10px;overflow:hidden;border:2px solid #c59c3a;box-shadow:0 0 0 3px #12051f,0 0 28px #8b3dffaa,0 10px 24px #000c;background:#000;filter:brightness(calc(.55 + .45*var(--L)))}
.pourcam video{width:100%;height:100%;object-fit:cover;background:#000}
.pourcam::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,#fff2 0%,#fff0 22%),radial-gradient(ellipse,#0000 55%,#000a 100%);mix-blend-mode:screen}
.pourcam .chip{position:absolute;z-index:3;left:8px;bottom:8px;padding:3px 9px;border-radius:999px;background:#12051fb8;border:1px solid #f5c54277;color:#ffe9a8;font:700 11px/1.3 'Space Grotesk';letter-spacing:.06em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.pourcam .rep{position:absolute;z-index:3;right:6px;bottom:6px;width:26px;height:26px;border-radius:50%;border:1px solid #f5c54277;background:#12051fb8;color:var(--gold2);font-size:15px;line-height:24px;text-align:center;padding:0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.pourlabel{position:absolute;left:800px;top:380px;transform:translateX(-50%);font:400 22px/1 'Permanent Marker';color:var(--gold);text-shadow:0 0 12px #f5c54299,0 0 24px #b36bff;pointer-events:none;white-space:nowrap}
/* awards */
.case{position:absolute;left:360px;top:96px;width:700px;height:240px;border:3px solid #2a1844;border-radius:6px;background:linear-gradient(#0a0414f0,#150a24f0);box-shadow:0 0 0 2px #6b4aa8,0 0 26px #b36bff77,inset 0 0 40px #000;display:flex;align-items:center;justify-content:space-around;padding:10px 14px;filter:brightness(calc(.45 + .55*var(--L)))}
.case::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--vi),var(--gold),var(--vi));box-shadow:0 0 14px var(--vi)}
.case::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,#fff2 0%,#fff0 18%,#fff0 70%,#fff1 100%)}
.plq{position:relative;border:0;padding:10px 12px;border-radius:5px;background:linear-gradient(135deg,#9a9ca3 0%,#d9dbe0 22%,#8c8e95 48%,#cfd1d6 70%,#7d7f86 100%);box-shadow:inset 0 0 0 2px #51535a,inset 0 0 0 4px #e9ebef88,0 6px 12px #000a;color:#202228;text-align:center;font:700 10px/1.25 'Space Grotesk';letter-spacing:.04em;text-shadow:0 1px 0 #ffffff99;display:flex;flex-direction:column;justify-content:center;gap:3px;transition:transform .2s}
.plq:hover{transform:translateY(-4px)}
.plq b{font:400 14px/1.1 'Anton';letter-spacing:.06em;text-transform:uppercase}.plq small{font:500 8.5px/1.25 'DM Sans';text-shadow:none;color:#33353b}
.plq.key{width:230px;height:200px;padding:6px;background:linear-gradient(135deg,#3b1d12,#5b2c1c 50%,#2c140c);color:#f8e2a0;text-shadow:none;border:2px solid #b8893a;box-shadow:inset 0 0 0 2px #0006,0 6px 14px #000c,0 0 18px #f5c54255}
.plq.key img{width:100%;height:150px;object-fit:cover;border-radius:3px;border:1px solid #b8893a}
.plq.key small{color:#f1d8a0;font-size:9px}
.plq.s{width:150px;height:150px}.plq.m{width:160px;height:180px}
.frame{position:absolute;border:0;padding:0;background:linear-gradient(135deg,#c59c3a,#fff1b8 40%,#a7772a);padding:8px;border-radius:3px;box-shadow:0 0 0 2px #1b0c2d,0 8px 18px #000c,0 0 24px #f5c54244;filter:brightness(calc(.5 + .5*var(--L)))}
.frame .inner{background:#1a0d24;padding:10px;display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center}
.frame img{width:100%;height:auto;border-radius:2px}
.frame .meta{font:700 9px/1.25 'Space Grotesk';letter-spacing:.06em;color:#f5c542;text-transform:uppercase}
.plate-riaa{position:relative;background:linear-gradient(135deg,#e6c25a,#fff0b0 30%,#c79a2d 55%,#f1d77e 80%,#a97a1e);border:6px solid #3b2410;border-radius:3px;box-shadow:inset 0 0 0 2px #0005}
.amh{position:absolute;width:66px;height:84px;border-radius:3px;padding:4px;background:linear-gradient(135deg,#c59c3a,#fff1b8,#a7772a);box-shadow:0 0 0 2px #1b0c2d,0 4px 10px #000a;filter:brightness(calc(.5 + .5*var(--L)))}
.amh img{width:100%;height:100%;object-fit:cover;border-radius:1px}
.amh:hover{transform:scale(1.14);z-index:5}
/* eggs */
.egg{position:absolute;border:0;background:none;padding:0;cursor:pointer;transform-origin:50% 50%;transition:transform .2s,filter .2s}
.egg:hover{transform:scale(1.18);filter:drop-shadow(0 0 10px var(--gold))}
.egg.found{filter:drop-shadow(0 0 8px #f5c542)}
.egg svg{width:100%;height:100%;overflow:visible}
.egg.dim{opacity:.82}
/* ui */
.ui{position:fixed;z-index:30;pointer-events:none;color:#fff}
.ui>*{pointer-events:auto}
#top{left:0;right:0;top:0;padding:calc(6px + var(--sat)) calc(10px + var(--sar)) 6px calc(10px + var(--sal));display:flex;align-items:center;justify-content:space-between;gap:8px;background:linear-gradient(#07010fcc,#07010f00);font:700 11px/1 'Space Grotesk',sans-serif;letter-spacing:.08em}
.viewer{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border-radius:999px;background:#140826cc;border:1px solid #b36bff66;box-shadow:0 0 14px #7c3aed55;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.viewer img{width:30px;height:30px;border-radius:50%;border:2px solid var(--gold);background:#2a1050}
.viewer b{display:block;font:400 14px/1 'Anton';letter-spacing:.06em;text-transform:uppercase}
.viewer span{display:block;font:700 9.5px/1.3 'Space Grotesk';letter-spacing:.1em;color:#d9c2ff}
.viewer .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#ff4d6d;margin-right:4px;box-shadow:0 0 8px #ff4d6d;animation:pulse 1.4s infinite}
@keyframes pulse{50%{opacity:.35}}
.tbtn{height:30px;min-width:30px;padding:0 10px;border-radius:999px;border:1px solid #b36bff66;background:#140826cc;color:#f3eaff;font:700 11px/1 'Space Grotesk';letter-spacing:.08em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.tbtn:hover,.tbtn.on{background:#7c3aedcc;border-color:var(--gold)}
#toprt{display:flex;gap:6px;align-items:center}
#bot{left:0;right:0;bottom:0;padding:6px calc(10px + var(--sar)) calc(6px + var(--sab)) calc(10px + var(--sal));display:flex;justify-content:center;background:linear-gradient(#07010f00,#07010fdd)}
#dots{display:flex;gap:4px;padding:4px;border-radius:999px;background:#140826cc;border:1px solid #b36bff55;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
#dots button{display:flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:0;border-radius:999px;background:none;color:#cbb6ee;font:700 10.5px/1 'Space Grotesk';letter-spacing:.08em;text-transform:uppercase}
#dots button i{width:8px;height:8px;border-radius:50%;background:#ffffff44;flex:none}
#dots button span{display:none}
#dots button.on{background:linear-gradient(135deg,#7c3aed,#b36bff);color:#fff;box-shadow:0 0 14px #b36bff99}
#dots button.on span{display:inline}
#dots button.on i{background:var(--gold);box-shadow:0 0 8px var(--gold)}
@media(min-width:760px){#dots button span{display:inline}}
#eye{left:50%;bottom:calc(56px + var(--sab));transform:translateX(-50%) scale(.9);width:46px;height:46px;border-radius:50%;border:2px solid var(--gold);background:radial-gradient(circle,#7c3aedcc,#2a0f55cc);color:var(--gold2);font-size:22px;line-height:1;opacity:0;pointer-events:none;box-shadow:0 0 18px #b36bffaa,0 0 6px var(--gold);transition:opacity .25s,transform .25s;animation:eyep 1.8s ease-in-out infinite}
#eye.show{opacity:1;pointer-events:auto;transform:translateX(-50%) scale(1)}
#eye small{position:absolute;left:50%;top:100%;transform:translateX(-50%);margin-top:3px;white-space:nowrap;font:700 9px/1 'Space Grotesk';letter-spacing:.14em;color:var(--gold2);text-shadow:0 1px 4px #000}
@keyframes eyep{50%{box-shadow:0 0 28px #b36bff,0 0 10px var(--gold)}}
.door{top:50%;transform:translateY(-50%);width:auto;max-width:44vw;padding:12px 18px;border-radius:999px;border:2px solid var(--gold);background:linear-gradient(135deg,#7c3aedd9,#3b0f7ad9);color:#fff;font:700 13px/1.1 'Space Grotesk';letter-spacing:.1em;text-transform:uppercase;box-shadow:0 0 22px #b36bffcc,0 0 8px var(--gold);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.door.show{opacity:1;pointer-events:auto;animation:doorp 1.6s ease-in-out infinite}
.door.l{left:calc(8px + var(--sal))}.door.r{right:calc(8px + var(--sar))}
@keyframes doorp{50%{box-shadow:0 0 34px #d9b8ff,0 0 14px var(--gold)}}
#toast{left:50%;bottom:calc(112px + var(--sab));transform:translateX(-50%) translateY(10px);max-width:min(88vw,520px);padding:10px 16px;border-radius:14px;background:#12051fee;border:1px solid var(--gold);color:#ffeab5;font:600 14px/1.35 'DM Sans';text-align:center;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none!important;box-shadow:0 0 22px #7c3aed88}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#hint{left:50%;top:calc(52px + var(--sat));transform:translateX(-50%);padding:6px 12px;border-radius:999px;background:#12051fb0;color:#cbb6ee;font:700 10px/1 'Space Grotesk';letter-spacing:.14em;text-transform:uppercase;opacity:0;transition:opacity .6s;pointer-events:none!important;white-space:nowrap}
#hint.show{opacity:1}
/* gate */
#gate{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 42%,#4a1a8c 0%,#1d0a3c 45%,#06010d 100%);transition:opacity .6s,visibility .6s}
#gate.gone{opacity:0;visibility:hidden;pointer-events:none}
#gate .in{display:flex;flex-direction:column;align-items:center;gap:26px;padding:24px;border:0;background:none;color:#fff;width:100%}
#gate img{width:min(70vw,440px);height:auto;filter:drop-shadow(0 0 38px #b36bffaa) drop-shadow(0 0 10px #f5c54266);animation:float 4s ease-in-out infinite}
#gate .in span{padding:13px 26px;border-radius:999px;border:1px solid #f5c54299;font:700 13px/1 'Space Grotesk',sans-serif;letter-spacing:.24em;text-transform:uppercase;color:#f3eaff;box-shadow:0 0 18px #b36bff66}
#gate .sub{font:700 11px/1.4 'Space Grotesk';letter-spacing:.3em;color:#cbb6ee;text-transform:uppercase;margin-top:-10px}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
/* modal */
#modal{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;background:#05010acc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:calc(16px + var(--sat)) 14px calc(16px + var(--sab))}
#modal.open{display:flex}
#modal .card{position:relative;width:min(560px,100%);max-height:100%;overflow:auto;border-radius:18px;background:linear-gradient(160deg,#1c0b33,#0c0418);border:1px solid #b36bff77;box-shadow:0 0 40px #7c3aed88;padding:20px;text-align:center}
#modal .x{position:absolute;right:10px;top:10px;width:34px;height:34px;border-radius:50%;border:1px solid #b36bff66;background:#140826;color:#fff;font-size:20px;line-height:1}
#modal h2{margin:4px 0 6px;font:400 28px/1.05 'Anton';letter-spacing:.04em;text-transform:uppercase;color:var(--gold)}
#modal p{margin:6px 0;color:#e7dcf7}#modal small{color:#a99ac2}
#modal img.cover{width:min(300px,70%);margin:8px auto;border-radius:6px;box-shadow:0 10px 30px #000c,0 0 24px #b36bff55}
#modal .row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}
#modal a.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:999px;background:linear-gradient(135deg,#7c3aed,#b36bff);color:#fff;font:700 13px/1 'Space Grotesk';letter-spacing:.04em;box-shadow:0 0 16px #b36bff77}
#modal a.btn.g{background:linear-gradient(135deg,#c59c3a,#f5c542);color:#2a1244;box-shadow:0 0 16px #f5c54255}
#modal ul{list-style:none;margin:10px 0 0;padding:0;text-align:left}#modal li{padding:9px 4px;border-bottom:1px solid #ffffff14;font-size:14px}
#modal li a{color:var(--gold2);text-decoration:underline}
.holdring{position:fixed;z-index:40;width:70px;height:70px;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);opacity:0}
.sfxbtn{position:absolute;left:8px;top:8px;z-index:3}
@media (prefers-reduced-motion:reduce){.tagname,.tvglow,.neon.buzz.lit .on,.door.show,#eye{animation:none}}
noscript{position:fixed;z-index:100;inset:auto 0 0 0;padding:12px;background:#12051f;color:#fff;text-align:center}
#gate .sub{position:absolute;bottom:12%;left:0;right:0;text-align:center;margin:0}
#gate .in{background:none;cursor:pointer}
.wl{position:absolute;width:3px;height:3px;border-radius:1px;background:#ffd48a}
.wl.tw{animation:wltw 5s ease-in-out infinite}
@keyframes wltw{0%,100%{opacity:.25}50%{opacity:.85}}
.plane{position:absolute;left:10%;top:13%;width:78%;height:18%;overflow:hidden;pointer-events:none}
.plane b{position:absolute;left:-2%;top:60%;width:3px;height:3px;border-radius:50%;background:#fff;box-shadow:0 0 4px #fff;animation:planex 38s linear infinite 4s,planeb 1.3s steps(1) infinite}
@keyframes planex{0%{left:-2%;top:62%}100%{left:104%;top:20%}}@keyframes planeb{0%,60%{opacity:.2}61%,100%{opacity:1}}
.ceil .cimg,.cimg{position:absolute;left:0;bottom:0;width:1600px;height:900px;max-width:none;object-fit:cover}
#modal li a{color:var(--gold2)}
.tvwrap>.tv{left:50%;bottom:0;width:100%;transform:translateX(-50%);filter:drop-shadow(0 10px 14px #000c) brightness(calc(.35 + .65*var(--L)))}
.tvwrap{left:830px;top:270px;width:340px;height:340px}
.pourcam .chip{font-size:clamp(8px,calc(var(--pourw,300)*.036px),11px);max-width:calc(100% - 46px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
