@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=Permanent+Marker&family=Space+Mono:wght@400;700&display=swap');
:root{--cream:#f3e3bb;--red:#ef4735;--ink:#151c25;--green:#6afaab}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--cream);font-family:'Barlow Condensed',Impact,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--green);outline-offset:4px}button{color:inherit}header{min-height:114px;padding:20px 4%;display:flex;align-items:center;gap:30px;border-bottom:1px solid #ffffff25}.brand{font-size:31px;font-weight:900;line-height:.85;letter-spacing:-1px;color:var(--red);text-decoration:none;transform:rotate(-2deg);min-width:220px}.brand span{display:block;color:var(--cream);font-size:35px}.brand small{display:block;font-family:'Space Mono',monospace;font-size:8px;letter-spacing:1px;margin-top:10px;color:#c1b89f}nav{display:flex;gap:25px;margin-left:auto}nav button,header>button{background:none;border:0;font-weight:700;letter-spacing:1.5px;font-size:15px}nav button:hover{color:var(--red)}#sound{font-family:'Space Mono',monospace;font-size:9px;border:1px solid #ffffff35;padding:12px}.scene-title{height:43px;display:flex;align-items:center;gap:10px;padding:0 4%;font-size:12px;letter-spacing:2px;font-weight:700}.live-dot{width:6px;height:6px;background:var(--green);border-radius:50%;box-shadow:0 0 10px #6afaab77}.time{margin-left:auto;font-family:'Space Mono',monospace;font-size:9px;letter-spacing:1px;color:#a6a797}.viewport{width:100%;overflow:hidden;position:relative;background:#0a1018;isolation:isolate}.world{width:100%;aspect-ratio:1672/941;position:relative;transform:scale(1.015);transition:filter .4s}.room{position:absolute;inset:0;overflow:hidden}.hidden{display:none}.backdrop,.counter-front{width:100%;height:100%;position:absolute;inset:0;object-fit:fill;pointer-events:none}.counter-front{z-index:3;clip-path:inset(75.3% 0 0)}.sprite{position:absolute;padding:0;background:none;border:0;transform:translate(calc(var(--mx,0px)*var(--depth,1)),calc(var(--my,0px)*var(--depth,1)));transition:filter .2s;z-index:2}.sprite img{display:block;width:100%;height:100%;object-fit:fill}.sprite:hover{filter:brightness(1.08)}.lenny{left:24.7%;top:10.5%;width:30.6%;height:68%;--depth:.45}.dale{left:52.5%;top:18%;width:32.2%;height:58.6%;--depth:.35}.dale img{filter:url(#clean-alpha)}.roller{left:-.8%;top:60.4%;width:28%;height:29%;z-index:4;--depth:.75}.register{left:67.8%;top:43%;width:39.5%;height:46%;z-index:5;--depth:.8}.screen{position:absolute;left:45%;top:37%;width:32%;height:25%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#69ffad;text-shadow:0 0 6px #69ffad80;font-family:monospace;font-size:clamp(10px,1.7vw,27px);transform:rotate(-1.5deg)}.screen small{font-size:.4em;margin-top:8px;letter-spacing:1px}.hotspot{position:absolute;background:transparent;border:0;z-index:6;border-radius:8px}.hotspot:hover{box-shadow:inset 0 0 0 2px #f3e3bb88;background:#f3e3bb08}.hint{position:absolute;left:50%;bottom:100%;transform:translateX(-50%);background:var(--cream);color:var(--ink);padding:8px 11px;font-size:13px;letter-spacing:1px;font-weight:800;white-space:nowrap;opacity:0;pointer-events:none;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--red)}.hotspot:hover .hint,.hotspot:focus-visible .hint,.show-hints .hint{opacity:1}.show-hints .hotspot{box-shadow:inset 0 0 0 2px #f3e3bb88}.slush{left:20%;top:28%;width:14%;height:34%}.photo{left:23%;top:13%;width:11%;height:13%}.phone{left:79.4%;top:29%;width:3.6%;height:16%}.stockdoor{left:84%;top:20%;width:12%;height:28%}.outside{left:1%;top:16%;width:13%;height:42%}.pour{position:absolute;left:25.7%;top:57%;height:9%;width:.5%;background:#20bcff;z-index:2;opacity:0;transform-origin:top;box-shadow:0 0 8px #20bcff}.pour.on{opacity:1;animation:pour .2s infinite alternate}.spill{position:absolute;left:20%;top:79%;width:13%;height:3%;border-radius:50%;background:#1998cc;opacity:0;z-index:4;box-shadow:inset 0 3px 0 #6fdbff;transform:scale(0);transition:transform 1s,opacity 1s}.spill.on{opacity:.85;transform:scale(1)}.steam{position:absolute;bottom:80%;width:4%;height:35%;border-left:3px solid #ffffff55;border-radius:50%;filter:blur(2px);pointer-events:none;animation:steam 3s infinite}.s1{left:20%}.s2{left:50%;animation-delay:1s}.s3{left:70%;animation-delay:2s}.roller.wiggle{animation:wiggle .16s 6}.flat .backdrop{transform:translate(calc(var(--mx,0px)*.25),calc(var(--my,0px)*.25)) scale(1.01)}.car{left:18%;top:49%;width:49%;height:36%}.research{left:71%;top:39%;width:21%;height:45%}.return{left:1%;top:12%;width:10%;height:77%}.board{left:39%;top:8%;width:33%;height:45%}.computer{left:86%;top:34%;width:12%;height:22%}.box{left:82%;top:66%;width:18%;height:32%}.pizza{left:32%;top:44%;width:14%;height:16%}#bubble{position:absolute;left:34%;top:9%;max-width:390px;background:var(--cream);color:var(--ink);border:3px solid var(--ink);box-shadow:5px 6px 0 #0007;padding:18px 23px;z-index:12;font-size:22px;font-weight:700;transform:rotate(-2deg);opacity:0;pointer-events:none;transition:opacity .15s}#bubble:after{content:'';position:absolute;bottom:-17px;left:30px;border:9px solid transparent;border-top-color:var(--cream)}#bubble.on{opacity:1}#bubble strong{display:block;font-family:'Space Mono',monospace;font-size:10px;color:#a12b24;letter-spacing:1px;margin-bottom:8px}footer{padding:19px 4%;display:flex;align-items:center;gap:25px;border-top:1px solid #ffffff25}.rooms{display:flex;gap:8px}.rooms button{background:none;border:1px solid #ffffff30;padding:10px 15px;font-size:13px;letter-spacing:1px;font-weight:700}.rooms .active{background:var(--cream);color:var(--ink);border-color:var(--cream)}footer p{font-family:'Space Mono',monospace;font-size:9px;color:#a6a797;margin-left:auto}#hints{background:none;border:0;font-size:11px;letter-spacing:1px}.mobile-pan{display:none}.warp{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none;z-index:20;overflow:hidden}.warp.active{opacity:1;pointer-events:auto;animation:travel 1.8s both}.door-frame{position:absolute;inset:0;background-image:url('assets/door-sequence.webp');background-size:100% 300%;background-position:50% 0;animation:none}.warp.active .door-frame{animation:door 1.3s steps(1) forwards}.warp>span{position:absolute;bottom:7%;left:0;right:0;text-align:center;font-size:18px;letter-spacing:3px;background:#0009;padding:10px}dialog{border:3px solid var(--ink);background:var(--cream);color:var(--ink);width:min(650px,92vw);max-height:85dvh;padding:40px;box-shadow:10px 10px 0 var(--red);transform:rotate(-.5deg)}dialog::backdrop{background:#080d14c9;backdrop-filter:blur(5px)}.close{position:absolute;right:14px;top:8px;background:none;border:0;color:var(--ink);font-size:32px}dialog h1{font-size:47px;line-height:1;margin:10px 0 20px;font-weight:900}dialog .eyebrow{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:2px;color:#ab3228}dialog p,dialog li{font-family:system-ui,sans-serif;font-size:15px;line-height:1.65}dialog li{padding:6px 0}dialog h2{font-size:23px;margin-bottom:3px}dialog .note{padding:12px;background:#d9c89f;font-size:12px}dialog .meme{border:2px solid var(--ink);padding:15px;margin:12px 0;background:#fff5d9}dialog .meme p{font-family:'Barlow Condensed',Impact,sans-serif;font-size:24px;font-weight:700;margin:4px 0}dialog button.action{border:2px solid var(--ink);background:var(--red);color:var(--cream);padding:10px 18px;font-weight:800}dialog input{width:100%;padding:12px;border:2px solid var(--ink);background:#fff8e5;font:16px system-ui}canvas{display:block;max-width:100%;margin:15px 0;border:2px solid var(--ink)}@keyframes steam{0%{opacity:0;transform:translateY(8px) scale(.7)}40%{opacity:.65}100%{opacity:0;transform:translateY(-35px) scale(1.3)}}@keyframes wiggle{50%{translate:3px -2px}}@keyframes pour{to{scale:.6 1}}@keyframes door{0%{background-position:50% 0}32%{background-position:50% 50%}62%,100%{background-position:50% 100%}}@keyframes travel{0%{opacity:0;transform:scale(.8)}15%{opacity:1;transform:scale(1)}72%{opacity:1;transform:scale(1.15)}95%,100%{opacity:0;transform:scale(1.7)}}
@media(min-width:1800px){main{max-width:1800px;margin:auto}}@media(max-width:800px){header{padding:16px 20px;gap:10px;flex-wrap:wrap}.brand{min-width:150px;font-size:25px}.brand span{font-size:27px}.brand small{font-size:6px}nav{order:3;width:100%;justify-content:space-between;gap:5px;padding-top:15px}nav button{font-size:13px}#sound{margin-left:auto}.scene-title{padding:0 16px}.time{font-size:7px}.viewport{height:59dvh;min-height:330px;overflow-x:auto;scrollbar-width:none;touch-action:pan-x}.world{height:100%;width:auto;min-width:100%;aspect-ratio:1672/941;transform:none}.screen{font-size:21px}footer{padding:15px;flex-wrap:wrap;gap:15px}.rooms{width:100%;justify-content:space-between}.rooms button{flex:1;padding:10px 6px;font-size:12px}footer p{margin:0;font-size:8px}#hints{margin-left:auto}.mobile-pan{display:flex;align-items:center;justify-content:center;gap:25px;padding:5px 15px 15px;font:8px 'Space Mono',monospace;color:#a6a797}.mobile-pan button{background:none;border:1px solid #ffffff30;padding:6px 15px}#bubble{position:fixed;left:8%;right:8%;top:26%;max-width:none;font-size:20px}.hint{font-size:11px}dialog{padding:30px 22px}dialog h1{font-size:37px}.warp{position:fixed}.door-frame{background-size:auto 300%;background-repeat:no-repeat}.warp>span{font-size:12px}.show-hints .hint{white-space:normal;width:115px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.sprite,.flat .backdrop{transform:none}.warp.active{opacity:0;pointer-events:none}}
@media(max-width:800px){.world{width:max(100%,calc(max(59dvh,330px)*1.777));height:100%}}
/* Animation pass: independent source-art planes, ambient loops, and reactions. */
#motion{background:none;border:1px solid #ffffff35;padding:7px 10px;font-size:10px;letter-spacing:1px;white-space:nowrap}.art-layer{position:absolute;inset:0;pointer-events:none;z-index:2;will-change:transform}.art-layer img{width:100%;height:100%;display:block;object-fit:fill;pointer-events:none}.lot-car{transform-origin:43% 83%;animation:car-idle 5s ease-in-out infinite}.lot-dale{transform-origin:75% 84%;animation:lot-dale-idle 6s ease-in-out infinite}.lot-pump,.lot-door{z-index:4;transform:translate(calc(var(--mx,0px)*.35),calc(var(--my,0px)*.2))}.stock-lenny{transform-origin:32% 80%;animation:stock-lenny-idle 6s ease-in-out infinite}.stock-dale{transform-origin:78% 81%;animation:stock-dale-idle 7s ease-in-out infinite}.lenny>img{transform-origin:50% 96%;animation:lenny-idle 5.5s ease-in-out infinite}.dale>img{transform-origin:55% 96%;animation:dale-idle 7s ease-in-out infinite}.lenny.reacting>img{animation:counter-react .3s ease-in-out 5}.dale.reacting>img{animation:counter-react .5s ease-in-out 3}.stock-dale.reacting{animation:point-react .4s ease-in-out 4}.stock-lenny.reacting{animation:pizza-react .4s ease-in-out 4}.lot-dale.reacting{animation:point-react .4s ease-in-out 4}.lot-car.reacting{animation:car-idle 1s ease-in-out infinite}.bass-on .lot-car{animation:bass-bounce .42s ease-in-out infinite}.honking .lot-car{animation:horn-jolt .13s ease-in-out 7}.neon-halo,.motel-halo,.counter-neon,.phone-glow,.fluorescent-pulse,.pavement-light,.bulb-light,.crt-glow,.board-pulse,.phone-rings,.car-lamps,.exhaust,.dumpster-eyes,.receipt-strip{position:absolute;pointer-events:none}.neon-halo{left:13.8%;top:38.2%;width:7.4%;height:7.1%;background:#2f6bff18;box-shadow:0 0 19px #1d62ff88,inset 0 0 9px #f1384990;mix-blend-mode:screen;animation:neon-fault 13s infinite}.motel-halo{left:87.7%;top:40%;width:5.2%;height:2.6%;box-shadow:0 0 14px #ff743b;opacity:.5;animation:motel-flicker 7s infinite}.pavement-light{left:25%;top:83%;width:43%;height:10%;background:radial-gradient(ellipse,#ff673718,transparent 70%);mix-blend-mode:screen;animation:wet-glimmer 8s infinite}.car-lamps{inset:0;z-index:3;opacity:0}.car-lamps i{position:absolute;left:18.7%;top:70%;width:3.8%;height:4%;background:#fff5c5aa;box-shadow:0 0 25px #ffdb81;mix-blend-mode:screen}.car-lamps i+i{left:35.8%;top:73.6%;width:3.4%}.honking .car-lamps{animation:lamp-flash .25s 3}.stereo-control{left:48%;top:51%;width:11%;height:10%;z-index:9}.horn-control{left:32%;top:67%;width:10%;height:14%;z-index:9}.dumpster-control{left:82%;top:61%;width:9%;height:15%;z-index:9}.dumpster-eyes{left:85%;top:56%;z-index:3;display:flex;gap:8px;opacity:0;transform:translateY(10px)}.dumpster-eyes i{width:5px;height:4px;border-radius:50%;background:#e2f974;box-shadow:0 0 8px #e2f974}.dumpster-alert .dumpster-eyes{animation:eyes-peek 3.2s both}.exhaust{left:66.6%;top:76%;width:7%;height:12%;z-index:1}.exhaust i{position:absolute;bottom:30%;left:0;width:30%;height:20%;border-radius:50%;background:#c6d3d926;filter:blur(5px);animation:exhaust-drift 3s infinite}.exhaust i:nth-child(2){animation-delay:1s}.exhaust i:nth-child(3){animation-delay:2s}.moth{position:absolute;pointer-events:none;z-index:3;width:3px;height:2px;background:#fbe2a7;box-shadow:0 0 4px #fbe2a7;border-radius:50%;animation:moth-flight calc(3s + var(--i)*.3s) ease-in-out infinite;animation-delay:calc(var(--i)*-.6s)}.counter-neon{left:2%;top:27%;width:7.5%;height:14%;box-shadow:0 0 20px #f8395518,inset 0 0 10px #2258e33a;mix-blend-mode:screen;animation:neon-fault 11s infinite;z-index:1}.fluorescent-pulse{left:33%;top:5%;width:38%;height:8%;background:radial-gradient(ellipse,#fff8b633,transparent 70%);mix-blend-mode:screen;animation:fluorescent-hum 9s infinite;z-index:1}.phone-glow{left:45%;top:44%;width:2%;height:4%;background:#64e7f322;box-shadow:0 0 18px #64e7f366;mix-blend-mode:screen;z-index:3;animation:phone-notification 12s infinite}.phone-rings{left:79.5%;top:30%;width:3.2%;height:10%;border:2px solid #f8deb099;opacity:0;z-index:3;border-radius:50%}.phone-calling .phone-rings{animation:ring-wave .3s 4}.bell-control{left:53%;top:77%;width:5.2%;height:9%;z-index:8}.bell-control svg{width:100%;height:100%;filter:drop-shadow(2px 3px 1px #0005)}.bell-rung .bell-control svg{animation:bell-shake .09s 6;transform-origin:50% 90%}.receipt-strip{left:86.5%;top:52%;width:7%;height:0;background:#fff3ce;color:#222;font:clamp(3px,.45vw,8px) monospace;line-height:1.4;overflow:hidden;z-index:7;padding:0 4px;transform:rotate(-1deg);box-shadow:2px 2px 2px #0004}.printing .receipt-strip{animation:print-receipt 2.2s both}.grill-alert .steam{animation-duration:.6s}.bulb-light{left:33%;top:2%;width:17%;height:46%;background:radial-gradient(ellipse at 50% 0%,#ffe49e2b,transparent 72%);mix-blend-mode:screen;z-index:3;transform-origin:50% 0%;animation:bulb-sway 8s ease-in-out infinite}.fan-motion{position:absolute;left:85.4%;top:1.1%;width:10.8%;height:23%;pointer-events:none;z-index:3;opacity:.66;transform:rotate(-7deg) skewY(-7deg)}.fan-motion svg{width:100%;height:100%;overflow:visible}.fan-blades{transform-origin:50px 50px;animation:fan-spin .8s linear infinite}.fan-control{left:84.2%;top:0%;width:12%;height:26%;z-index:9}.lamp-control{left:36%;top:0%;width:10%;height:16%;z-index:9}[data-fan="0"] .fan-blades{animation-play-state:paused}[data-fan="2"] .fan-blades{animation-duration:.16s}.crt-glow{left:89.8%;top:36.2%;width:6.2%;height:9.8%;z-index:3;mix-blend-mode:screen;background:repeating-linear-gradient(0deg,#6fff8511 0 1px,transparent 1px 4px);box-shadow:0 0 15px #52ff661a;animation:crt-roll 5s linear infinite}.board-pulse{left:42%;top:11%;width:30%;height:43%;border:2px solid #ffb846;box-shadow:0 0 15px #ffa83e;opacity:0;z-index:1}.connecting-dots .board-pulse{animation:connection-glow 1.8s both}.dust{position:absolute;width:2px;height:2px;background:#ffe6af;opacity:0;pointer-events:none;z-index:3;animation:dust-float calc(8s + var(--i)*.5s) linear infinite;animation-delay:calc(var(--i)*-.9s)}.flying-notes{position:absolute;inset:0;pointer-events:none;z-index:4;overflow:hidden}.flying-notes i{position:absolute;left:63%;top:38%;font:clamp(5px,.8vw,13px) monospace;background:#e1cf9f;border:1px solid #4d4a3f;color:#343b39;padding:1.1%;box-shadow:2px 2px 5px #0003;opacity:0}.flying-notes i:nth-child(2){left:59%;top:48%}.flying-notes i:nth-child(3){left:54%;top:30%}.papers-away .flying-notes i{animation:paper-flight 4s ease-in-out both}.papers-away .flying-notes i:nth-child(2){animation-delay:.35s}.papers-away .flying-notes i:nth-child(3){animation-delay:.7s}.light-fault .bulb-light{animation:light-fault .2s 8}.light-fault>.backdrop{animation:room-fault .25s 6}.pizza-theft .stock-lenny{animation:pizza-react .18s 6}.warp[data-destination="stockroom"] .door-frame{background-image:url('assets/stockroom.webp');background-size:cover;background-position:center;animation-name:stock-travel}.warp[data-destination="counter"] .door-frame{background-image:url('assets/counter.webp');background-size:cover;background-position:center;animation-name:store-travel}.warp[data-destination="stockroom"]:before{content:'';position:absolute;inset:0;background:#16324a;z-index:1;transform-origin:left;animation:door-wipe 1.4s both}.warp>span{z-index:3}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@keyframes lenny-idle{0%,100%{transform:rotate(-.18deg) scaleY(.998)}50%{transform:rotate(.18deg) scaleY(1.003)}}@keyframes dale-idle{0%,100%{transform:translateY(0) rotate(.1deg)}50%{transform:translateY(1.5px) rotate(-.15deg)}}@keyframes counter-react{50%{transform:translateY(-2px) rotate(.3deg)}}@keyframes stock-lenny-idle{0%,100%{transform:rotate(-.08deg)}50%{transform:rotate(.09deg)}}@keyframes stock-dale-idle{0%,100%{transform:rotate(.08deg)}50%{transform:rotate(-.08deg)}}@keyframes lot-dale-idle{50%{transform:translateY(-1px)}}@keyframes car-idle{50%{transform:translateY(-.6px)}}@keyframes point-react{50%{transform:rotate(-.25deg)}}@keyframes pizza-react{50%{transform:rotate(.22deg) translateY(-1px)}}@keyframes bass-bounce{0%,100%{transform:translateY(0) rotate(-.1deg)}35%{transform:translateY(-4px) rotate(.12deg)}70%{transform:translateY(1px)}}@keyframes horn-jolt{50%{transform:translateX(1px)}}@keyframes neon-fault{0%,44%,45%,46%,93%,100%{opacity:1}44.3%,45.3%,93.5%{opacity:.05}94%{opacity:.6}}@keyframes motel-flicker{0%,80%,82%,85%,100%{opacity:.5}81%,83%{opacity:.1}}@keyframes wet-glimmer{50%{opacity:.2;transform:scaleX(.95)}}@keyframes lamp-flash{0%,70%{opacity:1}100%{opacity:0}}@keyframes eyes-peek{0%,100%{opacity:0;transform:translateY(10px)}20%,80%{opacity:1;transform:translateY(0)}}@keyframes exhaust-drift{0%{opacity:0;transform:translate(0,0) scale(.7)}30%{opacity:.6}100%{opacity:0;transform:translate(50px,-20px) scale(2.4)}}@keyframes moth-flight{0%,100%{transform:translate(0,0)}25%{transform:translate(14px,-12px)}50%{transform:translate(-8px,8px)}75%{transform:translate(10px,17px)}}@keyframes fluorescent-hum{0%,94%,96%,100%{opacity:1}95%{opacity:.25}}@keyframes phone-notification{0%,78%,100%{opacity:0}80%,84%{opacity:1}82%,86%{opacity:.15}}@keyframes ring-wave{0%{opacity:.7;transform:scale(.8)}100%{opacity:0;transform:scale(1.8)}}@keyframes bell-shake{25%{transform:rotate(-7deg)}75%{transform:rotate(7deg)}}@keyframes print-receipt{0%{height:0}60%,85%{height:12%}100%{height:0}}@keyframes bulb-sway{50%{transform:rotate(2deg);opacity:.7}}@keyframes fan-spin{to{transform:rotate(360deg)}}@keyframes crt-roll{to{background-position:0 35px}}@keyframes connection-glow{0%,100%{opacity:0}30%,70%{opacity:.5}}@keyframes dust-float{0%{opacity:0;transform:translateY(0)}20%,70%{opacity:.3}100%{opacity:0;transform:translate(20px,-45px)}}@keyframes paper-flight{0%{opacity:0;transform:translate(0,0) rotate(0)}10%{opacity:1}55%{opacity:1;transform:translate(-220px,55px) rotate(90deg)}100%{opacity:0;transform:translate(-430px,350px) rotate(250deg)}}@keyframes light-fault{50%{opacity:0}}@keyframes room-fault{50%{filter:brightness(.8)}}@keyframes door-wipe{0%{transform:perspective(600px) rotateY(0)}80%,100%{transform:perspective(600px) rotateY(-115deg)}}@keyframes stock-travel{0%{transform:scale(.75);filter:blur(4px)}80%,100%{transform:scale(1.1);filter:blur(0)}}@keyframes store-travel{0%{transform:scale(1.5);filter:blur(4px)}80%,100%{transform:scale(1);filter:blur(0)}}
.hidden *{animation-play-state:paused!important}.motion-paused .room *,.motion-paused .art-layer,.tab-inactive .room *{animation-play-state:paused!important}.motion-paused .art-layer{transform:none!important}.motion-paused .sprite>img{transform:none!important}.motion-paused .moth,.motion-paused .dust,.motion-paused .exhaust{display:none}.motion-paused .warp{display:none}.motion-paused .warp *{animation:none!important}.motion-paused .world{--mx:0px!important;--my:0px!important}@media(max-width:800px){#motion{margin-left:auto}#hints{margin-left:0}.phone-glow{display:none}.bell-control .hint{left:10%}}@media(prefers-reduced-motion:reduce){.moth,.dust,.exhaust{display:none}.art-layer{will-change:auto}}

/* Face integrity fix: retain complete original characters in the room masters. */
#parking>.backdrop,#stockroom>.backdrop{transform:none;animation:none;object-fit:fill}
#parking.bass-on>.backdrop{animation:scene-bass .42s ease-in-out infinite;transform-origin:50% 65%}
#parking.honking>.backdrop{animation:scene-horn .12s ease-in-out 7}
#stockroom.light-fault>.backdrop{animation:room-fault .25s 6}
@keyframes scene-bass{0%,100%{transform:scale(1.006) translateY(0)}35%{transform:scale(1.006) translateY(-1.5px)}70%{transform:scale(1.006) translateY(.5px)}}
@keyframes scene-horn{50%{transform:scale(1.003) translateX(.7px)}}
@media(prefers-reduced-motion:reduce){#parking>.backdrop,#stockroom>.backdrop{animation:none!important;transform:none!important}}
/* Performance polish: preserve exact drawing; ease posture and isolate eye swaps. */
.lenny .actor-rig{position:relative;width:100%;height:100%;transform-origin:51% 97%;animation:actor-breathe 6.8s ease-in-out infinite;transition:rotate 1.1s cubic-bezier(.22,1,.36,1),translate 1.1s cubic-bezier(.22,1,.36,1)}
.lenny .actor-base,.lenny .blink-patch{width:100%;height:100%;object-fit:fill;display:block}
.lenny .blink-patch{position:absolute;inset:0;opacity:0;pointer-events:none;mask-image:radial-gradient(ellipse 7% 3.6% at 58.2% 35.2%,#000 75%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 7% 3.6% at 58.2% 35.2%,#000 75%,transparent 100%);transition:opacity 35ms linear}
.lenny .blinking .blink-patch{opacity:1}.lenny.phone-check .actor-rig{rotate:.55deg;translate:0 -1px}.lenny.reacting .actor-rig{animation:actor-breathe 6.8s ease-in-out infinite}.dale>img{animation:dale-settle 7.8s ease-in-out infinite}.dale.reacting>img{animation:dale-response 1.5s cubic-bezier(.22,1,.36,1) both}
#bubble{transition:opacity .22s ease,translate .28s cubic-bezier(.22,1,.36,1);translate:0 6px}#bubble.on{translate:0 0}
.phone-beat .phone-glow{animation:notification-beat 1s ease-in-out both}.sprite{transition:filter .25s ease}.hotspot{transition:box-shadow .2s ease,background .2s ease}.hint{transition:opacity .16s ease,translate .2s ease;translate:0 3px}.hotspot:hover .hint,.hotspot:focus-visible .hint,.show-hints .hint{translate:0 0}
#parking.bass-on>.backdrop{animation:soft-bass .84s cubic-bezier(.45,0,.55,1) infinite}#parking.honking>.backdrop{animation:soft-horn .5s ease-out both}.roller.wiggle{animation:grill-settle .7s ease-out both}.phone-rings{animation-timing-function:ease-out}.flying-notes i{backface-visibility:hidden}.fan-blades{will-change:transform}
@keyframes actor-breathe{0%,100%{transform:scale(1,1)}50%{transform:scale(1.0005,1.002)}}@keyframes dale-settle{0%,100%{transform:translateY(0)}50%{transform:translateY(.7px)}}@keyframes dale-response{0%,100%{transform:rotate(0)}40%{transform:rotate(-.28deg)}70%{transform:rotate(.05deg)}}@keyframes notification-beat{0%,100%{opacity:0}30%,70%{opacity:.75}}@keyframes soft-bass{0%,100%{transform:scale(1.005) translateY(0)}20%{transform:scale(1.005) translateY(-1px)}45%{transform:scale(1.005) translateY(.25px)}65%{transform:scale(1.005) translateY(-.7px)}}@keyframes soft-horn{0%,100%{transform:scale(1.003) translateX(0)}20%{transform:scale(1.003) translateX(.6px)}50%{transform:scale(1.003) translateX(-.3px)}}@keyframes grill-settle{0%,100%{translate:0 0}25%{translate:0 -1px}60%{translate:0 .3px}}
.motion-paused .actor-rig{animation:none!important;rotate:0!important;translate:0 0!important}.motion-paused .blink-patch{opacity:0!important}.tab-inactive .actor-rig{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){.actor-rig{animation:none!important;rotate:0!important;translate:0 0!important}.blink-patch{opacity:0!important}}

#watch-gag{border:1px solid #ef473577;background:#ef473512;color:var(--cream);font-size:11px;font-weight:800;letter-spacing:.7px;padding:9px 12px;white-space:nowrap}#watch-gag:hover{background:var(--red)}#watch-gag:disabled{opacity:.45;cursor:wait}.actor-rig.is-sipping .blink-patch{opacity:0!important}.lenny.performance-active .actor-rig{animation:none!important;rotate:0;translate:0 0}.actor-base{transition:none!important}@media(max-width:800px){#watch-gag{width:100%;padding:11px;font-size:12px}}

.dale.dale-performing>img{animation:none!important;transform:none!important}.dale>img{transition:none}.dale:after{content:'DALE HAS THOUGHTS';position:absolute;left:37%;top:12%;font-size:11px;font-weight:800;letter-spacing:1px;padding:8px;background:var(--cream);color:var(--ink);border:2px solid var(--ink);box-shadow:3px 3px var(--red);opacity:0;pointer-events:none;transition:opacity .18s}.dale:hover:after,.dale:focus-visible:after{opacity:1}

#lenny-talk{background:none;border:1px solid #f3e3bb55;padding:9px 12px;font-size:11px;letter-spacing:.7px;font-weight:800}#lenny-talk:hover{color:var(--green);border-color:var(--green)}.roller.roller-ready,.roller.roller-ready.wiggle{animation:none!important;translate:0 0!important}.hotdog-cylinder{position:absolute;pointer-events:none;transform:rotate(-3.8deg);transform-origin:50% 50%;filter:drop-shadow(0 2px 1px #0008)}.roller.roller-ready>img{animation:none!important}.roller.roller-ready .steam{z-index:4}@media(max-width:800px){#lenny-talk{flex:1}}

/* Banner-free layout: full-screen scene with a small floating dock */
main{height:100dvh;display:flex;align-items:center;justify-content:center;background:#0a1018}
.viewport{width:min(100vw,calc(100dvh*1672/941));height:auto}
footer{position:fixed;left:50%;bottom:12px;transform:translateX(-50%);z-index:30;width:max-content;max-width:calc(100vw - 16px);padding:6px;gap:6px;flex-wrap:wrap;justify-content:center;border:1px solid #ffffff30;border-radius:10px;background:#0a1018d9;backdrop-filter:blur(6px)}
footer p,#help{display:none}
#sound{font-family:'Space Mono',monospace;font-size:10px;border:1px solid #ffffff35;background:none;padding:9px 10px;letter-spacing:1px}
.rooms button{padding:8px 11px}
#watch-gag,#lenny-talk,#motion,#hints{padding:8px 10px}
@media(max-width:800px){
main{display:block;height:auto;min-height:100dvh}
.viewport{width:100%;height:calc(100dvh - 92px);min-height:330px}
.world{width:max(100%,calc(max(100dvh - 92px,330px)*1.777))}
footer{left:8px;right:8px;bottom:8px;transform:none;width:auto;max-width:none}
.rooms{width:100%}#sound,#motion,#hints,#lenny-talk,#watch-gag{flex:1;font-size:10px;width:auto}
.mobile-pan{position:fixed;left:0;right:0;bottom:104px;z-index:25;padding:0 15px;pointer-events:none}.mobile-pan button{pointer-events:auto;background:#0a1018cc}
}

#dock-toggle{display:none;background:none;border:1px solid #ffffff35;padding:8px 10px;font:700 10px 'Space Mono',monospace;letter-spacing:1px}
@media(max-width:800px){
#dock-toggle{display:block;order:2;flex:0 0 auto}.rooms{order:1;flex:1;width:auto}
#dock:not(.open) #sound,#dock:not(.open) #lenny-talk,#dock:not(.open) #watch-gag,#dock:not(.open) #motion,#dock:not(.open) #hints{display:none}
#dock.open #sound,#dock.open #lenny-talk,#dock.open #watch-gag,#dock.open #motion,#dock.open #hints{order:3}
.viewport{height:calc(100dvh - 64px)}.world{width:max(100%,calc(max(100dvh - 64px,330px)*1.777))}.mobile-pan{bottom:76px}
}

/* Register monitor token ticker */
.regmon .screen{line-height:1.15;text-align:center;overflow:hidden;white-space:nowrap}
.regmon .screen .tk-main{font-weight:700;font-size:.9em;letter-spacing:1px}
.regmon .screen small{font-size:.5em;margin-top:6px}
.regmon .screen.tk-up small{color:#8dffb4}.regmon .screen.tk-down small{color:#ff7a6b;text-shadow:0 0 6px #ff7a6b80}
.regmon .screen.tk-flash{animation:tk-flash .45s steps(2,end)}
@keyframes tk-flash{0%{opacity:0;filter:brightness(2.2)}35%{opacity:1;filter:brightness(1.8)}60%{opacity:.55}100%{opacity:1;filter:none}}
@media(max-width:800px){.regmon .screen{font-size:18px}}
.regmon .screen.tk-buy{color:#6afaab;background:#0f4a2a66;box-shadow:inset 0 0 14px #6afaab88}
.regmon .screen.tk-sell{color:#ff7a6b;text-shadow:0 0 6px #ff7a6b90;background:#5a140e66;box-shadow:inset 0 0 14px #ff6b5a88}
.regmon .screen.tk-buy small,.regmon .screen.tk-sell small{color:inherit;opacity:.85}
.regmon .screen.tk-chart{justify-content:space-between;padding:6% 7% 3%;white-space:normal}
.regmon .screen .tk-canvas{width:100%;flex:1;min-height:0;display:block;border:0;margin:0}
.regmon .screen.tk-chart small{margin-top:3px;font-size:.42em}
.regmon .screen .tk-main{font-size:.74em;letter-spacing:0;max-width:100%}
.regmon .screen{padding:0 4%}
.regmon .screen.tk-chart{justify-content:center;gap:4px;padding:4% 6%}
.regmon .screen .tk-canvas{flex:none;width:100%;height:62%}
.regmon .screen.tk-chart small{white-space:nowrap;margin-top:0}
/* Register: nudged left and enlarged (~11%), base kept on the counter */
.register{left:62.2%;top:38.5%;width:44%;height:50.5%}
/* In-site coin page (register click) */
dialog.wide{width:min(920px,96vw)}
.tk-head{display:flex;align-items:center;gap:16px;margin-bottom:6px}.tk-logo{width:68px;height:68px;border-radius:12px;border:2px solid var(--ink);object-fit:cover;flex:none}
dialog .tk-title{font-size:40px;margin:2px 0 0}
.tk-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:14px 0}
.tk-stat{border:2px solid var(--ink);background:#fff5d9;padding:9px 11px}.tk-stat b{display:block;font:700 10px 'Space Mono',monospace;letter-spacing:1px;color:#6b6250}.tk-stat span{font-size:25px;font-weight:800}
.tk-g{color:#0d7a43}.tk-r{color:#b3261e}
canvas.tk-big{width:100%;height:300px;margin:6px 0 4px}
.tk-trades{border:2px solid var(--ink);background:#fff5d9;max-height:280px;overflow:auto}
.tk-trade{display:grid;grid-template-columns:54px 80px 1fr 40px;gap:8px;padding:6px 11px;font:700 13px 'Space Mono',monospace;border-bottom:1px solid #15202a20}.tk-age{text-align:right;color:#6b6250}
.tk-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0 4px}
.tk-actions a.action{display:inline-block;text-decoration:none;border:2px solid var(--ink);background:var(--red);color:var(--cream);padding:10px 18px;font-weight:800}
.tk-actions button.action{background:var(--ink);color:var(--cream)}.tk-link{font:700 12px 'Space Mono',monospace;color:var(--ink)}
@media(max-width:800px){dialog .tk-title{font-size:28px}.tk-stat span{font-size:20px}canvas.tk-big{height:220px}.tk-trade{grid-template-columns:44px 64px 1fr 34px;font-size:11px}}

/* Register monitor = small interactive page, magnifies on hover / focus / tap */
.regmon{position:absolute;left:82%;top:57.2%;width:14.1%;height:12.6%;z-index:7;display:flex;flex-direction:column;container-type:size;background:transparent;--mt:translate(calc(var(--mx,0px)*.8),calc(var(--my,0px)*.8));transform:var(--mt) rotate(-1.5deg);transform-origin:100% 70%;transition:transform .22s ease,background .22s,box-shadow .22s;outline:none}
.regmon:hover,.regmon:focus-within{transform:var(--mt) scale(2.35);z-index:30;background:#04150e;box-shadow:0 0 0 1px #6afaab66,0 10px 40px #000c}
.regmon .screen{position:relative;left:auto;top:auto;width:100%;height:auto;flex:1;min-height:0;transform:none;font-size:clamp(9px,1.45vw,22px)}
.mon-tabs{display:flex;gap:1px;flex:none;height:13%;min-height:7px}
.mon-tabs button{flex:1;padding:0;border:0;background:#0b2a1b;color:#69ffad;opacity:.55;font:700 clamp(4.5px,4.4cqw,9px)/1 'Space Mono',monospace;letter-spacing:0;cursor:pointer}
.mon-tabs button[aria-selected=true]{opacity:1;background:#14583a}.mon-tabs button:hover{opacity:1}
.regmon .screen.tk-bigchart .tk-canvas{height:74%}
.regmon .screen.tk-list{justify-content:flex-start;align-items:stretch;padding:2% 4%;gap:0;overflow:hidden;text-align:left}
.tk-row{display:grid;grid-template-columns:22% 28% 30% 20%;font:700 .46em/1.55 'Space Mono',monospace;white-space:nowrap}.tk-row i{font-style:normal;text-align:right;opacity:.6}.tk-row.b{color:#6afaab}.tk-row.s{color:#ff7a6b}
.regmon .screen.tk-buyview{gap:3%;padding:3% 6%}
.mon-btn{display:block;width:100%;font:700 .5em/1.9 'Space Mono',monospace;color:#04150e;background:#69ffad;border:0;text-align:center;text-decoration:none;cursor:pointer;padding:0;white-space:nowrap}.mon-btn.alt{background:transparent;color:#69ffad;box-shadow:inset 0 0 0 1px #69ffad88}
.mon-btn:hover{filter:brightness(1.2)}
@media(hover:none){.regmon{transition:none}}
.regmon:hover,.regmon:focus-within{height:19%;top:55.5%}
.regmon{transition:transform .22s ease,height .22s ease,top .22s ease,background .22s,box-shadow .22s}
/* Monitor stays inside the register frame: no magnify, content clipped to the screen */
.regmon,.regmon:hover,.regmon:focus-within{transform:var(--mt) rotate(-1.5deg);height:12.6%;top:57.2%;z-index:7;background:transparent;box-shadow:none;overflow:hidden}
.regmon:focus-within{box-shadow:0 0 0 1px #6afaab55}
.mon-tabs button{opacity:.7}
.regmon .screen.tk-list{padding:1% 3%}
.tk-row{font-size:.5em;line-height:1.35}
.regmon .screen.tk-buyview{gap:2%;padding:2% 5%}.mon-btn{line-height:1.6}
/* Hover/tap magnify, kept inside the register's own footprint (grows up and left from the monitor's bottom-right) */
.regmon{transform-origin:100% 100%}
.regmon:hover,.regmon:focus-within{transform:var(--mt) scale(1.9);z-index:30;background:#04150e;box-shadow:0 0 0 1px #6afaab66,0 6px 18px #000a}

/* Slushie spill puddle (Lenny's coin-check scene) + its dock button */
.lenny-puddle{position:absolute;left:41%;top:77.6%;width:15%;height:3.6%;border-radius:50%;background:radial-gradient(ellipse at 40% 35%,#6fdbff 0,#20bcff 45%,#1998cc 100%);box-shadow:inset 0 3px 0 #b6efff,0 0 10px #20bcff66;opacity:0;transform:scale(.05,.2);transform-origin:20% 40%;z-index:4;pointer-events:none;transition:transform .9s cubic-bezier(.2,.8,.3,1),opacity 1.4s}
.lenny-puddle.on{opacity:.88;transform:scale(1)}
#coin-gag{background:none;border:1px solid #6afaab66;padding:8px 10px;font-size:11px;font-weight:800;letter-spacing:.7px;color:var(--cream);white-space:nowrap}#coin-gag:hover{color:var(--green);border-color:var(--green)}
@media(max-width:800px){#coin-gag{flex:1}#dock:not(.open) #coin-gag{display:none}}
/* OPEN sign flicker overlay (sits over the sign baked into the counter art) */
.open-flicker{position:absolute;border-radius:14px;pointer-events:none;z-index:1;--dim:0;backdrop-filter:brightness(calc(1 - var(--dim)*.8)) saturate(calc(1 - var(--dim)*.55));background:rgba(4,8,16,calc(var(--dim)*.2))}
.open-flicker:after{content:'';position:absolute;inset:-4px;border-radius:inherit;box-shadow:0 0 22px 4px #ff2d5a55,0 0 40px 8px #2a63ff33;opacity:calc(1 - var(--dim));mix-blend-mode:screen}
@media(prefers-reduced-motion:reduce){.open-flicker{display:none}}

.open-flicker.store-open{left:.9%;top:25%;width:9.3%;height:14.8%}
.open-flicker.lot-open{left:13.7%;top:37.7%;width:6.1%;height:8.9%;border-radius:8px}
.open-flicker.motel{left:87.5%;top:39.5%;width:4.8%;height:3.8%;border-radius:4px}
.open-flicker.motel:after{box-shadow:0 0 16px 3px #ff743b66}
.open-flicker.lot-open:after{inset:-3px;box-shadow:0 0 16px 3px #ff2d5a55,0 0 28px 6px #2a63ff33}

/* Parking lot ambient life */
.lot-star{position:absolute;width:var(--s,3px);height:var(--s,3px);border-radius:50%;background:#fff;box-shadow:0 0 6px 1px #cfe0ffaa;opacity:.25;z-index:1;pointer-events:none;animation:lot-twinkle var(--d,4s) ease-in-out infinite;animation-delay:var(--dl,0s)}
@keyframes lot-twinkle{0%,100%{opacity:.12;transform:scale(.7)}45%{opacity:1;transform:scale(1.2)}70%{opacity:.35;transform:scale(.9)}}
.motion-paused .lot-star{animation-play-state:paused}
.open-flicker.lot-lamp-a{left:71.8%;top:28.4%;width:1.9%;height:3.6%;border-radius:50%}
.open-flicker.lot-lamp-a:after{inset:-14px;box-shadow:0 0 30px 12px #ffc45a55}
.open-flicker.lot-lamp-b{left:59.2%;top:38.3%;width:1.9%;height:3%;border-radius:50%}
.open-flicker.lot-lamp-b:after{inset:-12px;box-shadow:0 0 26px 10px #ffc45a44}
.open-flicker.lot-canopy{left:86.6%;top:4.6%;width:9.4%;height:3.4%;border-radius:6px}
.open-flicker.lot-canopy:after{inset:-4px;box-shadow:0 0 20px 6px #fff3c444}
.lot-win{position:absolute;background:#0a1226;opacity:0;transition:opacity .18s;pointer-events:none;z-index:1;border-radius:2px}.lot-win.off{opacity:.93}
.lot-pulse{position:absolute;left:14%;top:80%;width:64%;height:17%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(var(--c,106,250,171),.75) 0,rgba(var(--c,106,250,171),.28) 45%,transparent 72%);mix-blend-mode:screen;opacity:0;pointer-events:none;z-index:1}
.lot-pulse.go{animation:lot-pulse .75s ease-out}
@keyframes lot-pulse{0%{opacity:0;transform:scale(.7)}18%{opacity:var(--a,.6)}100%{opacity:0;transform:scale(1.08)}}
@media(prefers-reduced-motion:reduce){.lot-star{animation:none;opacity:.5}.lot-pulse{display:none}}
/* Streetlamps: dim the whole bloom with a feathered mask instead of a hard disc */
.open-flicker.lot-lamp-a,.open-flicker.lot-lamp-b{border-radius:50%;-webkit-mask-image:radial-gradient(ellipse at center,#000 18%,rgba(0,0,0,.55) 45%,transparent 72%);mask-image:radial-gradient(ellipse at center,#000 18%,rgba(0,0,0,.55) 45%,transparent 72%)}
.open-flicker.lot-lamp-a{left:70.4%;top:26.6%;width:4.6%;height:9%}
.open-flicker.lot-lamp-b{left:58%;top:36.2%;width:4%;height:7.2%}
.open-flicker.lot-lamp-a:after,.open-flicker.lot-lamp-b:after{inset:25%;box-shadow:0 0 22px 10px #ffc45a44}
/* Parking lot actors as separate layers */
.lot-layer{position:absolute;height:auto;pointer-events:none;user-select:none;-webkit-user-drag:none}
.lot-lenny{transform-origin:40% 85%;animation:lot-lenny-idle 5.6s ease-in-out infinite}
@keyframes lot-lenny-idle{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-.8px) rotate(.12deg)}}
#parking.bass-on .lot-lenny{animation:bass-bounce .42s ease-in-out infinite}
#parking.honking .lot-lenny{animation:horn-jolt .13s ease-in-out 7}
@media(prefers-reduced-motion:reduce){.lot-lenny,.lot-car,.lot-dale{animation:none!important}}
/* Headlight flash re-aimed at the new car art */
.car-lamps i{left:24.6%;top:69.8%;width:3.6%;height:3.4%}
.car-lamps i+i{left:39.8%;top:71%;width:3.6%}
/* Dale's cigarette smoke (positions/size are % of his layer, so it scales with the scene) */
.lot-dale{display:block}.lot-dale-img{display:block;width:100%;height:auto;pointer-events:none;user-select:none;-webkit-user-drag:none}
.lot-smoke{position:absolute;inset:0;pointer-events:none;overflow:visible}
.lot-puff{position:absolute;aspect-ratio:1;margin:-1.5% 0 0 -1.5%;border-radius:50%;background:radial-gradient(circle,rgba(226,232,238,.8),rgba(226,232,238,0) 68%);filter:blur(1.5px);opacity:0;animation:lot-puff 3s ease-out forwards}
@keyframes lot-puff{0%{opacity:0;transform:translate(0,0) scale(.5)}14%{opacity:var(--o,.5)}100%{opacity:0;transform:translate(var(--dx,0),var(--dy,-600%)) scale(var(--s,3))}}
@media(prefers-reduced-motion:reduce){.lot-puff{display:none}}

/* Lenny's joint: wrapper layer + his image (smoke styles are shared with Dale's) */
.lot-actor-img{display:block;width:100%;height:auto;pointer-events:none;user-select:none;-webkit-user-drag:none}
.lot-lenny{display:block}
/* Smoke canvas (lot-smoke.js) draws over the actors, below the hotspots */
.lot-smoke-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5}
.lot-smoke,.lot-puff{display:none}

/* Headlights: glows sit exactly on the lenses of the car art and move with the car */
.lot-car{display:block}.lot-car .lot-actor-img{display:block;width:100%;height:auto}
.car-lamps{display:none}
.lot-car-lamps{position:absolute;inset:0;pointer-events:none;opacity:0}
.lot-car-lamps i{position:absolute;display:block;border-radius:5px}
.lot-car-lamps i.lens{background:radial-gradient(ellipse at 50% 55%,#fffbe2 0,#ffe9a4 45%,rgba(255,214,120,.55) 100%);box-shadow:0 0 18px 6px #ffe2879a,0 0 42px 14px #ffd36655;mix-blend-mode:screen}
.lot-car-lamps i.amber{background:radial-gradient(ellipse,#ffd08a,#ff9a2e 70%);box-shadow:0 0 12px 3px #ff9a2e88;mix-blend-mode:screen}
.honking .lot-car-lamps{animation:lot-lamp-flash .22s steps(2,end) 4}
@keyframes lot-lamp-flash{0%,55%{opacity:1}56%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.lot-car-lamps{display:none}}
/* Stockroom Lenny layer */
.stock-lenny-layer{position:absolute;display:block;z-index:3;pointer-events:none;transform-origin:50% 95%}
.stock-lenny-layer img{display:block;width:100%;height:auto;pointer-events:none;user-select:none;-webkit-user-drag:none}
.stock-shadow{position:absolute;border-radius:50%;z-index:2;pointer-events:none;background:radial-gradient(ellipse at center,rgba(8,6,4,.62) 0,rgba(8,6,4,.34) 52%,rgba(8,6,4,0) 78%);filter:blur(2px)}
.stock-lenny-layer.stock-hype{animation:stock-hype .34s ease-in-out infinite alternate}
.stock-lenny-layer.stock-rage{animation:stock-rage .09s linear infinite alternate}
@keyframes stock-hype{from{transform:translateY(0)}to{transform:translateY(-.9%)}}
@keyframes stock-rage{from{transform:translateX(-.18%)}to{transform:translateX(.18%)}}
@media(prefers-reduced-motion:reduce){.stock-lenny-layer{animation:none!important}}

/* Stockroom Dale layer + shadows */
.stock-dale-layer{position:absolute;display:block;z-index:3;pointer-events:none;transform-origin:50% 95%}
.stock-dale-layer img{display:block;width:100%;height:auto;pointer-events:none;user-select:none;-webkit-user-drag:none}
.stock-shadow-lenny{left:24.2%;top:81.6%;width:21.4%;height:3.6%}
.stock-shadow-dale{left:70.87%;top:81.38%;width:11.6%;height:3.4%}
.stock-dale-layer.stock-shock{animation:stock-rage .11s linear infinite alternate}
.stock-dale-layer.stock-smug{animation:stock-hype 1.1s ease-in-out infinite alternate}
/* Counter Dale: nudged down to close the gap under his elbow */
.dale{top:19.7%}

/* Stockroom bulb flicker: room dims a little, the bulb itself dims a lot */
.open-flicker.stock-room{inset:0;width:auto;height:auto;border-radius:0;z-index:4;backdrop-filter:none;background:rgba(6,4,2,calc(var(--dim)*.4))}
.open-flicker.stock-room:after{display:none}
.stock-bulb-dim{position:absolute;left:38.6%;top:4.2%;width:6.2%;height:9.6%;display:block;
 backdrop-filter:brightness(calc(1 - var(--dim)*.78)) saturate(calc(1 - var(--dim)*.5));
 -webkit-mask-image:radial-gradient(ellipse at 50% 55%,#000 22%,rgba(0,0,0,.6) 50%,transparent 78%);mask-image:radial-gradient(ellipse at 50% 55%,#000 22%,rgba(0,0,0,.6) 50%,transparent 78%)}
/* Full-viewport scene: the world "covers" the screen (no letterbox bars); the dock floats over it */
main{display:block;height:100dvh;min-height:0;background:#0a1018;overflow:hidden}
.viewport{width:100vw;height:100dvh;min-height:0;overflow:hidden;position:relative}
.world{position:absolute;left:50%;top:50%;width:max(100vw,calc(100dvh*1672/941));height:auto;aspect-ratio:1672/941;transform:translate(-50%,-50%) scale(1.015)}
@media(max-width:800px){
 main{display:block;height:100dvh}
 .viewport{width:100%;height:100dvh;min-height:0;overflow-x:auto;overflow-y:hidden}
 .world{position:relative;left:auto;top:auto;transform:none;height:100%;width:max(100%,calc(100dvh*1672/941))}
 .mobile-pan{bottom:84px}
}
body>svg{position:absolute;width:0;height:0;overflow:hidden}
body{overflow:hidden}

/* ===================== Art-style popups: thick black outlines, hard shadows, paper + pins + tape ===================== */
:root{--paper:#f2e4bd;--paper2:#e9d7a8;--black:#0b0d10;--marker:'Permanent Marker','Barlow Condensed',Impact,cursive;
 --grime:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' seed='4'/><feColorMatrix values='0 0 0 0 .25  0 0 0 0 .18  0 0 0 0 .08  0 0 0 .22 0'/></filter><rect width='220' height='220' filter='url(%23n)'/></svg>")}

/* ---- speech bubble ---- */
#bubble{position:absolute;right:auto;max-width:min(400px,calc(100% - 24px));width:max-content;min-width:150px;
 padding:26px 24px 16px;background:var(--paper);background-image:var(--grime);color:var(--black);
 border:4px solid var(--black);border-radius:20px 24px 18px 26px/24px 18px 26px 20px;
 box-shadow:6px 7px 0 var(--black);font-family:'Barlow Condensed',Impact,sans-serif;font-size:26px;line-height:1.08;font-weight:800;letter-spacing:.2px;
 transform:rotate(var(--tilt,-1.2deg));transform-origin:var(--tail-x,50%) 100%;--tail-x:50%;--tail-h:20px;z-index:12;pointer-events:none}
#bubble strong{position:absolute;top:-15px;left:18px;display:block;margin:0;padding:3px 10px 2px;background:var(--red);color:var(--paper);
 border:3px solid var(--black);border-radius:4px;font-family:var(--marker);font-size:14px;letter-spacing:1.5px;font-weight:400;transform:rotate(-2.5deg);box-shadow:2px 2px 0 var(--black)}
/* tail: black triangle behind a paper triangle, so it carries the same outline as the bubble */
#bubble:before,#bubble:after{content:'';position:absolute;top:100%;border:0;background:var(--black);width:44px;height:var(--tail-h);
 left:calc(var(--tail-x) - 22px);margin-top:-3px;clip-path:polygon(0 0,100% 0,50% 100%);bottom:auto}
#bubble:after{background:var(--paper);width:34px;left:calc(var(--tail-x) - 17px);height:calc(var(--tail-h) - 7px);margin-top:-6px}
#bubble.no-tail:before,#bubble.no-tail:after{display:none}
@media(max-width:800px){#bubble{position:absolute;left:auto;right:auto;top:auto;font-size:22px;padding:24px 18px 14px}}

/* ---- hotspot hints ---- */
.hint{padding:7px 11px 5px;border:3px solid var(--black);border-radius:3px;background:var(--paper);color:var(--black);
 font-family:'Barlow Condensed',Impact,sans-serif;font-size:15px;font-weight:900;letter-spacing:1px;box-shadow:3px 3px 0 var(--black)}

/* ---- panels (dialog) ---- */
dialog{position:fixed;width:min(660px,92vw);max-height:86dvh;padding:58px 38px 34px;color:var(--black);overflow:auto;
 background:var(--paper);background-image:var(--grime),radial-gradient(ellipse at 20% 0,#fff6d6 0,transparent 55%),radial-gradient(ellipse at 100% 100%,#d9c48d55 0,transparent 60%);
 border:5px solid var(--black);border-radius:6px 10px 5px 12px/10px 6px 12px 5px;box-shadow:10px 11px 0 var(--black);transform:rotate(-.6deg)}
dialog::backdrop{background:radial-gradient(ellipse at center,#0a101ab0 0,#03060bea 85%);backdrop-filter:blur(3px) saturate(.85)}
dialog:before{content:'';position:absolute;top:8px;left:50%;width:140px;height:28px;margin-left:-70px;transform:rotate(-2deg);
 background:#e3cf8f;background-image:var(--grime);opacity:.92;border-left:3px dashed #0b0d1030;border-right:3px dashed #0b0d1030;z-index:2}
dialog:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;
 background:radial-gradient(circle at 20px 22px,#ef4735 0 6px,#0b0d10 6.5px 9.5px,transparent 10px),radial-gradient(circle at calc(100% - 20px) 22px,#ef4735 0 6px,#0b0d10 6.5px 9.5px,transparent 10px)}
dialog .close{position:absolute;right:16px;top:44px;z-index:3;width:42px;height:42px;padding:0;border:4px solid var(--black);border-radius:50%;background:var(--red);color:var(--paper);
 font:400 24px/1 var(--marker);box-shadow:3px 3px 0 var(--black);cursor:pointer}
dialog .close:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--black)}
dialog .eyebrow{display:inline-block;margin:0 0 4px;padding:3px 10px 2px;background:var(--black);color:var(--paper);border-radius:2px;
 font-family:'Space Mono',monospace;font-size:10px;font-weight:700;letter-spacing:2px;transform:rotate(-1deg)}
dialog h1{margin:14px 0 18px;font-family:var(--marker);font-weight:400;font-size:clamp(34px,6vw,50px);line-height:1.04;color:var(--red);
 text-shadow:2px 2px 0 #0b0d1033;text-decoration:underline;text-decoration-thickness:5px;text-underline-offset:8px;text-decoration-color:#0b0d10}
dialog h2{display:inline-block;margin:18px 0 6px;padding:2px 10px 0;background:var(--black);color:var(--paper);font-family:'Barlow Condensed',Impact,sans-serif;
 font-size:22px;font-weight:900;letter-spacing:1.5px;text-transform:uppercase;transform:rotate(-.8deg)}
dialog p,dialog li{font-family:'Barlow Condensed',Impact,sans-serif;font-size:20px;font-weight:600;line-height:1.28;color:#171717}
dialog p b,dialog li b{font-weight:900}
dialog ol{counter-reset:s;list-style:none;padding:0;margin:14px 0}
dialog ol li{counter-increment:s;position:relative;padding:8px 0 8px 52px}
dialog ol li:before{content:counter(s);position:absolute;left:0;top:6px;width:36px;height:36px;border:3px solid var(--black);border-radius:50%;background:var(--red);color:var(--paper);
 font:400 18px/30px var(--marker);text-align:center;box-shadow:2px 2px 0 var(--black)}
dialog .note{margin:14px 0;padding:14px 16px;background:#f7d64a;background-image:var(--grime);border:3px solid var(--black);border-radius:2px;box-shadow:4px 5px 0 var(--black);
 font-family:'Barlow Condensed',Impact,sans-serif;font-size:18px;font-weight:700;line-height:1.25;transform:rotate(.8deg)}
dialog .meme{margin:16px 0;padding:16px 18px;background:#fff7dc;border:4px solid var(--black);border-radius:3px;box-shadow:5px 6px 0 var(--black);position:relative}
dialog .meme p{font-family:var(--marker);font-weight:400;font-size:26px;line-height:1.1;margin:4px 0;color:var(--black)}
dialog button.action,dialog a.action{display:inline-block;padding:10px 20px 8px;border:4px solid var(--black);border-radius:4px;background:var(--red);color:var(--paper);text-decoration:none;
 font-family:'Barlow Condensed',Impact,sans-serif;font-size:20px;font-weight:900;letter-spacing:1px;text-transform:uppercase;box-shadow:4px 5px 0 var(--black);cursor:pointer;transition:transform .08s,box-shadow .08s}
dialog button.action:hover,dialog a.action:hover{transform:translate(2px,2px);box-shadow:2px 3px 0 var(--black)}
dialog button.action:active,dialog a.action:active{transform:translate(4px,5px);box-shadow:0 0 0 var(--black)}
dialog input{width:100%;padding:11px 12px 9px;border:4px solid var(--black);border-radius:3px;background:#fff8e2;font:700 22px 'Barlow Condensed',Impact,sans-serif;color:var(--black)}
dialog canvas{border:4px solid var(--black);box-shadow:4px 5px 0 var(--black)}
dialog .tk-stat{border:3px solid var(--black);border-radius:3px;box-shadow:3px 3px 0 var(--black);background:#fff7dc}
dialog .tk-stat b{color:#4a4231}
dialog .tk-trades{border:3px solid var(--black);box-shadow:3px 3px 0 var(--black)}
dialog a.tk-link{font-family:'Barlow Condensed',Impact,sans-serif;font-size:16px;font-weight:900;letter-spacing:1px;color:var(--black)}
dialog .tk-logo{border:4px solid var(--black);box-shadow:3px 3px 0 var(--black)}
@media(max-width:800px){dialog{padding:56px 20px 28px}dialog h1{font-size:34px}dialog p,dialog li{font-size:19px}}
/* panel contrast + scrollbar */
dialog::backdrop{background:radial-gradient(ellipse at center,rgba(38,50,72,.72) 0,rgba(14,20,32,.9) 90%);backdrop-filter:blur(4px) saturate(.9)}
dialog{box-shadow:10px 11px 0 var(--black),0 0 0 3px #f2e4bd44;scrollbar-width:thin;scrollbar-color:var(--black) var(--paper2)}
dialog::-webkit-scrollbar{width:12px}
dialog::-webkit-scrollbar-track{background:var(--paper2);border-left:3px solid var(--black)}
dialog::-webkit-scrollbar-thumb{background:var(--black);border:2px solid var(--paper2);border-radius:6px}

#bubble{position:fixed!important}
/* Ultra-wide: fill the width, scroll vertically to look around (the mirror image of the phone's horizontal swipe) */
.wide-pan{display:none}
@media(min-aspect-ratio:19/9) and (min-width:801px){
 .viewport{overflow-x:hidden;overflow-y:auto;scrollbar-width:none;overscroll-behavior:contain}
 .viewport::-webkit-scrollbar{display:none}
 .world{position:relative;left:auto;top:auto;transform:none;width:100vw;height:auto;aspect-ratio:1672/941}
 .warp{position:fixed}
 .wide-pan.on{display:flex;position:fixed;right:14px;top:50%;transform:translateY(-50%);flex-direction:column;gap:10px;z-index:25}
 .wide-pan button{width:44px;height:44px;border:3px solid var(--black,#0b0d10);border-radius:50%;background:var(--paper,#f2e4bd);color:var(--black,#0b0d10);
  font:900 16px/1 'Barlow Condensed',sans-serif;box-shadow:3px 4px 0 var(--black,#0b0d10);cursor:pointer;padding:0}
 .wide-pan button:hover:not(:disabled){transform:translate(1px,1px);box-shadow:2px 3px 0 var(--black,#0b0d10)}
 .wide-pan button:disabled{opacity:.35;cursor:default}
}
/* ===== Dock: paper strip with chunky black-outlined buttons (matches the popups) ===== */
#dock{padding:8px 10px;gap:8px;background:var(--paper);background-image:var(--grime);border:4px solid var(--black);border-radius:8px 12px 7px 13px/12px 7px 13px 8px;
 box-shadow:5px 6px 0 var(--black),0 0 0 2px #f2e4bd33;backdrop-filter:none;transform:translateX(-50%) rotate(-.3deg)}
#dock button{font-family:'Barlow Condensed',Impact,sans-serif;font-size:15px;font-weight:900;letter-spacing:1px;text-transform:uppercase;line-height:1;color:var(--black);
 background:var(--paper2);border:3px solid var(--black);border-radius:4px;padding:8px 12px 6px;box-shadow:2px 3px 0 var(--black);cursor:pointer;white-space:nowrap;
 transition:transform .08s,box-shadow .08s,background .12s}
#dock button:hover:not(:disabled){transform:translate(1px,1px);box-shadow:1px 2px 0 var(--black);background:#f7ecc9;color:var(--black)}
#dock button:active:not(:disabled){transform:translate(2px,3px);box-shadow:0 0 0 var(--black)}
#dock button:disabled{opacity:.5;cursor:wait}
#dock .rooms{gap:7px}
#dock .rooms button.active{background:var(--red);color:var(--paper)}
#dock #sound,#dock #motion,#dock #hints,#dock #dock-toggle{font-family:'Space Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.5px;padding:8px 10px 7px}
#dock button[aria-pressed=true]{background:var(--black);color:var(--paper)}
#dock #coin-gag{background:#f7d64a}
#dock #watch-gag{background:#f4a79d}
#dock #lenny-talk{background:#fff7dc}
#dock #lenny-talk:hover:not(:disabled),#dock #coin-gag:hover:not(:disabled),#dock #watch-gag:hover:not(:disabled){color:var(--black)}
#dock p{color:#5a513c}
#dock button:focus-visible{outline:3px solid var(--red);outline-offset:2px}
@media(max-width:800px){#dock{padding:7px 8px;transform:rotate(-.2deg)}#dock button{font-size:14px;padding:8px 6px 6px}}
#dock{padding:6px 8px;gap:6px}
#dock button{font-size:14px;padding:7px 9px 5px;letter-spacing:.8px}
#dock .rooms{gap:5px}
#dock #sound,#dock #motion,#dock #hints,#dock #dock-toggle{font-size:9.5px;padding:7px 8px 6px;letter-spacing:.3px}

/* per-scene dock actions */
#dock [hidden]{display:none!important}
#dock .dock-act[data-scenes]:not([hidden]){display:inline-block}
#dock #dock-honk{background:#f4a79d}
#dock #dock-stereo{background:#bfe3ff}
#dock #dock-fan{background:#cfe8c0}
#dock #dock-slice{background:#f7d64a}
#dock #dock-dale{background:#fff7dc}
#dock:not(.open) .dock-act:not(#coin-gag){}
@media(max-width:800px){#dock:not(.open) #dock-honk,#dock:not(.open) #dock-stereo,#dock:not(.open) #dock-dale,#dock:not(.open) #dock-fan,#dock:not(.open) #dock-slice{display:none!important}
 #dock.open #dock-honk,#dock.open #dock-stereo,#dock.open #dock-dale,#dock.open #dock-fan,#dock.open #dock-slice{order:3;flex:1}}
