
.idp-neon-room{font-family:Arial,Helvetica,sans-serif;max-width:1200px;margin:0 auto;color:#fff}.idp-neon-room__frame{position:relative;width:100%;aspect-ratio:1672/941;overflow:hidden;border-radius:18px;background:#0d0520;box-shadow:0 18px 40px rgba(0,0,0,.35)}.idp-neon-room__base{display:block;width:100%;height:100%;object-fit:cover;user-select:none}.idp-neon-room__frame:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 68% 22%,rgba(100,210,255,.08),transparent 26%),radial-gradient(circle at 28% 76%,rgba(255,75,205,.08),transparent 28%)}.idp-neon-room__controls{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}.idp-control{border:1px solid rgba(255,255,255,.14);background:linear-gradient(180deg,#1f153e,#120c29);color:#fff;border-radius:999px;padding:10px 16px;font-size:14px;cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.24),inset 0 0 0 1px rgba(255,255,255,.04)}.idp-control:hover{box-shadow:0 8px 22px rgba(116,61,255,.28),inset 0 0 0 1px rgba(255,255,255,.06)}
.idp-hotspot{position:absolute;z-index:50;border:0;background:transparent;cursor:pointer;transform:translate(-50%,-50%);padding:0;width:64px;height:64px;display:flex;align-items:center;justify-content:center;pointer-events:auto}.idp-hotspot__dot{display:block;width:28px;height:28px;border-radius:50%;background:rgba(17,8,42,.8);border:2px solid rgba(255,255,255,.9);box-shadow:0 0 0 6px rgba(195,101,255,.14),0 0 20px rgba(213,93,255,.75),0 0 34px rgba(84,204,255,.52);position:relative;animation:idpPulse 2.5s infinite ease-in-out}.idp-hotspot__dot:before,.idp-hotspot__dot:after{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;border-radius:2px}.idp-hotspot__dot:before{width:12px;height:2px}.idp-hotspot__dot:after{width:2px;height:12px}.idp-hotspot__label{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:rgba(10,6,26,.84);color:#fff;padding:8px 11px;line-height:1;border-radius:999px;border:1px solid rgba(255,255,255,.12);font-size:13px;font-weight:700;white-space:nowrap;box-shadow:0 8px 24px rgba(0,0,0,.28)}.hs-lava .idp-hotspot__label,.hs-mug .idp-hotspot__label,.hs-window .idp-hotspot__label,.hs-handheld .idp-hotspot__label{left:auto;right:calc(100% + 10px)}
.hs-gameon{left:67.0%;top:17.4%;width:140px;height:105px}.hs-arcade{left:78.0%;top:29.2%;width:135px;height:105px}.hs-lava{left:33.2%;top:56.0%;width:112px;height:286px}.hs-headphones{left:13.8%;top:79.4%;width:270px;height:205px}.hs-controller{left:28.0%;top:88.0%;width:280px;height:125px}.hs-planet{left:8.6%;top:11.2%;width:170px;height:130px}.hs-keyboard{left:47.6%;top:41.5%;width:225px;height:205px}.hs-window{left:52.8%;top:17.0%;width:260px;height:230px}.hs-mug{left:91.0%;top:77.0%;width:96px;height:88px;z-index:60}.hs-guitar{left:86.7%;top:54.3%;width:150px;height:270px;z-index:49}.hs-handheld{left:68.20%;top:85.35%;width:98px;height:72px;z-index:52}
.idp-effect{position:absolute;z-index:20;opacity:0;pointer-events:none;transition:opacity .2s ease}.idp-effect.active{opacity:1}.idp-neon-room[data-show-hotspots="0"] .idp-hotspot{display:flex;opacity:1;visibility:visible;pointer-events:auto;background:transparent}.idp-neon-room[data-show-hotspots="0"] .idp-hotspot__dot,.idp-neon-room[data-show-hotspots="0"] .idp-hotspot__label{opacity:0;visibility:hidden;pointer-events:none}.idp-neon-room[data-show-labels="0"] .idp-hotspot__label{display:none}.idp-neon-room[data-show-controls="0"] .idp-neon-room__controls{display:none}
/* repaired GAME ON - v1.4.8: lights the original background text instead of placing mismatched text */.idp-effect--gameon{left:63.88%;top:12.96%;width:7.54%;height:11.48%;border-radius:10px;background:linear-gradient(180deg,rgba(255,42,198,.20),rgba(55,214,255,.14));mix-blend-mode:screen;filter:drop-shadow(0 0 10px rgba(255,55,210,.82)) drop-shadow(0 0 14px rgba(64,205,255,.64));transform-origin:center;transform:skewX(-7deg) skewY(.6deg) rotate(-5deg)}.idp-gameon-neon{display:none}.idp-effect--gameon::before,.idp-effect--gameon::after{content:'';position:absolute;left:8%;width:84%;height:38%;border-radius:8px;mix-blend-mode:screen;opacity:.78}.idp-effect--gameon::before{top:8%;background:radial-gradient(ellipse at center,rgba(255,73,211,.7),rgba(255,73,211,.18) 45%,transparent 72%)}.idp-effect--gameon::after{bottom:8%;background:radial-gradient(ellipse at center,rgba(45,212,255,.7),rgba(45,212,255,.18) 45%,transparent 72%)}.idp-effect--gameon.active{animation:gameSignFlicker 1.4s linear 1}.spark{position:absolute;width:8%;height:8%;background:#fff;border-radius:50%;box-shadow:0 0 10px #fff,0 0 18px #ffed6a}.sp1{left:11%;top:16%}.sp2{right:10%;top:22%;background:#5ff}.sp3{left:17%;bottom:13%;background:#ff65d6}.sp4{right:19%;bottom:16%;background:#ffe45f}.active .spark{animation:sparkPop .8s ease-out 2}
/* upgraded arcade */.idp-effect--arcade{left:74.78%;top:23.05%;width:7.55%;height:10.7%;overflow:visible;border-radius:5px;filter:drop-shadow(0 0 10px rgba(83,214,255,.22));transform-origin:center;transform:skewX(-6deg) skewY(.9deg) rotate(-.8deg)}.idp-arcade-marquee{position:absolute;left:-1.5%;top:-35%;width:105%;height:24%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:clamp(5px,.70vw,10px);color:#ffd75f;background:linear-gradient(90deg,rgba(255,80,60,.08),rgba(255,220,75,.28),rgba(255,80,60,.08));border:1px solid rgba(255,200,80,.28);text-shadow:0 0 5px #ffef75,0 0 10px #ff5a28;box-shadow:0 0 10px rgba(255,210,70,.18);transform:skewX(3deg)}.idp-arcade-screen{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle at 50% 70%,rgba(255,80,80,.22),transparent 12%),linear-gradient(180deg,#07184b,#030712 70%,#01030a);box-shadow:inset 0 0 12px rgba(101,220,255,.22),0 0 12px rgba(57,196,255,.18);transform:skewX(1.5deg)}.idp-score{position:absolute;left:8%;top:5%;font-family:monospace;font-size:clamp(4px,.60vw,8px);font-weight:900;color:#ffe75f;text-shadow:0 0 5px #ffe75f;z-index:3}.idp-invaders{position:absolute;left:16%;top:31%;width:68%;height:33%;display:grid;grid-template-columns:repeat(6,1fr);gap:6%}.idp-invaders b{display:block;background:#56ff80;box-shadow:0 0 6px #56ff80;clip-path:polygon(20% 0,80% 0,80% 20%,100% 20%,100% 65%,82% 65%,82% 100%,62% 100%,62% 78%,38% 78%,38% 100%,18% 100%,18% 65%,0 65%,0 20%,20% 20%)}.idp-invaders b:nth-child(3n){background:#ff4edb;box-shadow:0 0 6px #ff4edb}.idp-invaders b:nth-child(4n){background:#67eaff;box-shadow:0 0 6px #67eaff}.idp-ship{position:absolute;left:47%;bottom:7%;width:9%;height:10%;background:#fff;box-shadow:0 0 8px #fff,0 0 12px #4ff;clip-path:polygon(50% 0,72% 58%,100% 70%,100% 100%,0 100%,0 70%,28% 58%)}.idp-laser{position:absolute;left:51%;bottom:18%;width:2%;height:34%;background:#ff315a;box-shadow:0 0 8px #ff315a}.idp-explosion{position:absolute;left:47%;top:54%;width:10%;height:10%;background:#fff16a;border-radius:50%;box-shadow:0 0 14px #fff16a,0 0 24px #ff4935}.idp-crt{position:absolute;inset:0;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.08),rgba(255,255,255,.08) 1px,transparent 2px,transparent 5px);mix-blend-mode:screen;opacity:.4}.idp-effect--arcade.active .idp-arcade-screen{animation:arcadeGlow 1.2s infinite ease-in-out}.idp-effect--arcade.active .idp-invaders{animation:invaderMarch .55s steps(2) infinite}.idp-effect--arcade.active .idp-laser{animation:laserFire .5s linear infinite}.idp-effect--arcade.active .idp-explosion{animation:explode .8s ease-out infinite}.idp-effect--arcade.active .idp-arcade-marquee{animation:marqueeFlash .35s steps(2) infinite}
/* window - v1.4.8: subtle moon glow, simple boxed building lights */.idp-effect--window{left:45.7%;top:7.1%;width:14.1%;height:25.7%;overflow:hidden;border-radius:8px;mix-blend-mode:screen;transform-origin:center;transform:skewX(-1.2deg)}.moon-glow{position:absolute;left:68.6%;top:26.5%;width:8.8%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(220,244,255,.26) 0 26%,rgba(124,203,255,.10) 50%,transparent 74%);box-shadow:0 0 7px rgba(210,245,255,.20);opacity:.28}.city-lights{position:absolute;left:7%;right:7%;bottom:8%;height:60%}.city-lights i{position:absolute;width:2.3%;height:3.2%;background:#ffbd69;box-shadow:none;border-radius:0;opacity:.72}.city-lights i:nth-child(1){left:7%;top:73%}.city-lights i:nth-child(2){left:11%;top:61%}.city-lights i:nth-child(3){left:15%;top:80%}.city-lights i:nth-child(4){left:21%;top:66%}.city-lights i:nth-child(5){left:25%;top:75%}.city-lights i:nth-child(6){left:31%;top:46%}.city-lights i:nth-child(7){left:35%;top:57%}.city-lights i:nth-child(8){left:39%;top:71%}.city-lights i:nth-child(9){left:44%;top:52%}.city-lights i:nth-child(10){left:47%;top:77%}.city-lights i:nth-child(11){left:53%;top:59%}.city-lights i:nth-child(12){left:57%;top:46%}.city-lights i:nth-child(13){left:61%;top:72%}.city-lights i:nth-child(14){left:66%;top:55%}.city-lights i:nth-child(15){left:70%;top:37%}.city-lights i:nth-child(16){left:74%;top:70%}.city-lights i:nth-child(17){left:78%;top:51%}.city-lights i:nth-child(18){left:82%;top:75%}.city-lights i:nth-child(19){left:86%;top:61%}.city-lights i:nth-child(20){left:90%;top:45%}.city-lights i:nth-child(n+21){display:none}.shooting-star{position:absolute;left:38%;top:16%;width:18%;height:1px;background:linear-gradient(90deg,transparent,#fff,transparent);transform:rotate(-25deg);opacity:0}.idp-effect--window.active .moon-glow{animation:moonPulse 2.3s ease-in-out infinite}.idp-effect--window.active .city-lights i{animation:buildingFlicker 1.4s steps(2) infinite}.idp-effect--window.active .city-lights i:nth-child(2n){animation-delay:.22s}.idp-effect--window.active .city-lights i:nth-child(3n){animation-delay:.47s}.idp-effect--window.active .shooting-star{animation:shootStar 1.9s ease-out infinite}
/* other restored effects */.idp-effect--lava{left:31.28%;top:48.88%;width:5.50%;height:20.40%;border-radius:30px;overflow:hidden;background:transparent;clip-path:polygon(19% 0,81% 0,98% 100%,2% 100%);transform-origin:center;transform:none}.idp-effect--lava.active{background:radial-gradient(circle at 50% 86%,rgba(255,226,208,.12),rgba(255,176,228,.06) 34%,transparent 62%)}.idp-lava-blob{position:absolute;background:radial-gradient(circle at 40% 30%,rgba(255,245,251,.98),#ffd0ef 36%,#ff9bdd 68%,rgba(255,92,182,.82));box-shadow:0 0 6px rgba(255,170,225,.24);opacity:0}.b1{width:92%;height:23%;left:4%;bottom:4%;border-radius:58% 42% 52% 48% / 62% 60% 40% 38%}.b2{width:54%;height:17%;left:24%;bottom:30%;border-radius:55% 45% 48% 52% / 58% 62% 38% 42%}.b3{width:34%;height:12%;left:35%;bottom:53%;border-radius:60% 40% 46% 54% / 60% 64% 36% 40%}.b4{display:block;width:22%;height:9%;left:41%;bottom:72%;border-radius:63% 37% 42% 58% / 58% 62% 38% 42%;opacity:0}.active .b1{opacity:.92;animation:lavaPoolPulse 3.2s ease-in-out infinite}.active .b2{opacity:.88;animation:lavaRiseMid 3.0s ease-in-out infinite .12s}.active .b3{opacity:.82;animation:lavaRiseTop 3.1s ease-in-out infinite .26s}.active .b4{opacity:.74;animation:lavaRiseTiny 3.0s ease-in-out infinite .4s}.idp-effect--headphones{left:8.67%;top:55.69%;width:15.85%;height:32.41%;border-radius:0;box-shadow:none}.idp-effect--headphones i{position:absolute;opacity:0}.idp-effect--headphones i:nth-child(1),.idp-effect--headphones i:nth-child(2){background:rgba(255,80,80,.22);box-shadow:0 0 10px rgba(255,96,150,.46),0 0 15px rgba(255,86,86,.22);clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:6px}.idp-effect--headphones i:nth-child(1){left:.4%;top:13.2%;width:27.2%;height:20.1%;transform:rotate(-7deg) skewX(2deg)}.idp-effect--headphones i:nth-child(2){left:77.0%;top:.3%;width:22.8%;height:18.2%;transform:rotate(7deg) skewX(-2deg)}.idp-effect--headphones i:nth-child(3){left:12.8%;top:67.2%;width:32.1%;height:32.8%;border-radius:50%;background:radial-gradient(circle,rgba(255,92,130,.68),rgba(255,66,102,.22) 58%,transparent 74%)}.active.idp-effect--headphones i{opacity:1;animation:buttonBlink .8s steps(2) infinite}
.idp-effect--controller{left:13.2%;top:76.2%;width:29.8%;height:20.2%;border-radius:50%;background:radial-gradient(circle,rgba(255,118,46,.22),transparent 70%);transform-origin:center;transform:rotate(7deg) skewX(-10deg)}.idp-effect--controller i{position:absolute;width:16%;height:16%;border-radius:50%;background:#5cf;box-shadow:0 0 10px #5cf}.idp-effect--controller i:nth-child(1){left:35%;top:38%}.idp-effect--controller i:nth-child(2){left:54%;top:34%;background:#ff4ed3;box-shadow:0 0 10px #ff4ed3}.idp-effect--controller i:nth-child(3){left:48%;top:57%;background:#80ff5c;box-shadow:0 0 10px #80ff5c}.active.idp-effect--controller i{animation:buttonBlink .45s steps(2) infinite}.idp-effect--planet{left:2.2%;top:4.25%;width:11.6%;height:11.6%;border-radius:50%;filter:drop-shadow(0 0 14px rgba(213,75,255,.58));transform-origin:center;transform:rotate(-1.5deg) skewX(2deg)}.idp-effect--planet i:first-child{position:absolute;inset:24%;border-radius:50%;background:radial-gradient(circle,rgba(248,95,255,.72),rgba(123,49,255,.44) 55%,transparent 70%)}.idp-effect--planet i:last-child{position:absolute;left:3%;top:41%;width:94%;height:22%;border:3px solid rgba(103,234,255,.84);border-radius:50%;transform:rotate(-12deg);box-shadow:0 0 12px rgba(103,234,255,.75)}.active.idp-effect--planet{animation:planetPulse 1.6s ease-in-out infinite}.idp-effect--keyboard{left:42.94%;top:34.96%;width:10.71%;height:20.40%;border-radius:50%;background:radial-gradient(circle,rgba(255,78,78,.32) 0 66%,rgba(255,78,78,.18) 74%,transparent 78%);mix-blend-mode:screen;box-shadow:none;transform-origin:center;transform:none}.idp-effect--keyboard::before{content:'';position:absolute;inset:2%;border-radius:50%;border:2px solid rgba(255,128,128,.36);box-shadow:0 0 8px rgba(255,84,84,.20), inset 0 0 8px rgba(255,84,84,.12);opacity:.72}.idp-effect--keyboard::after{content:'';position:absolute;inset:12%;border-radius:50%;background:radial-gradient(circle,rgba(255,90,90,.20),transparent 72%);opacity:.68}.active.idp-effect--keyboard{animation:tabletPulse 1.2s ease-in-out infinite}.active.idp-effect--keyboard::before{animation:ringFlash 1.2s ease-in-out infinite}.active.idp-effect--keyboard::after{animation:innerGlow 1.2s ease-in-out infinite}.idp-effect--mug{left:86.70%;top:66.15%;width:8.20%;height:11.20%;overflow:visible;transform-origin:center;transform:rotate(-4deg) skewX(-1deg)}.idp-mug-surface{position:absolute;left:2.0%;top:11.0%;width:77.0%;height:15.2%;border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(128,72,38,.92),rgba(70,34,14,.96) 64%,rgba(30,10,4,.60));box-shadow:0 0 8px rgba(255,165,92,.14);opacity:0;transform:rotate(5deg)}.idp-mug-bubble{position:absolute;bottom:76%;border-radius:50%;background:rgba(255,227,184,.76);box-shadow:0 0 5px rgba(255,220,180,.22);opacity:0}.mb1{left:35%;width:2.8%;height:2.8%}.mb2{left:48%;width:2.3%;height:2.3%}.idp-steam{position:absolute;bottom:76%;width:8%;height:44%;border-radius:999px;border:1px solid rgba(255,255,255,.28);border-color:rgba(255,255,255,.20) transparent transparent transparent;filter:blur(1px);opacity:0}.s1{left:18%;transform:rotate(-16deg)}.s2{left:34%;transform:rotate(8deg)}.s3{left:50%;transform:rotate(-8deg)}.active .idp-mug-surface{opacity:.88;animation:coffeeSurface 1.7s ease-in-out infinite}.active .s1{animation:steamRiseSoft 2.7s ease-in-out infinite}.active .s2{animation:steamRiseSoft 2.7s ease-in-out infinite .45s}.active .s3{animation:steamRiseSoft 2.7s ease-in-out infinite .9s}.active .mb1{animation:coffeeBubble 1.5s ease-in-out infinite .15s}.active .mb2{animation:coffeeBubble 1.5s ease-in-out infinite .65s}.idp-effect--guitar{left:85.05%;top:26.14%;width:4.55%;height:30.50%;overflow:visible;transform-origin:center;transform:none;filter:none}.idp-effect--guitar::before,.idp-effect--guitar::after{content:"";position:absolute;opacity:0;pointer-events:none;width:2.2%;height:90%;top:2%;border-radius:999px;filter:blur(.14px);transform-origin:top center}.idp-effect--guitar::before{left:56.5%;background:rgba(255,84,120,.70);transform:rotate(6.5deg)}.idp-effect--guitar::after{left:73.5%;background:rgba(255,84,120,.70);transform:rotate(6.5deg)}.idp-effect--guitar i{position:absolute;border-radius:50%;background:rgba(255,92,130,.0);box-shadow:none;opacity:0}.idp-effect--guitar i:nth-child(1){left:51%;top:85.5%;width:14%;height:4%;background:rgba(255,84,120,.92);box-shadow:0 0 6px rgba(255,84,120,.82),0 0 10px rgba(255,84,120,.42)}.idp-effect--guitar i:nth-child(2){left:74%;top:91.2%;width:10%;height:2.6%;background:rgba(255,84,120,.92);box-shadow:0 0 6px rgba(255,84,120,.82),0 0 10px rgba(255,84,120,.42)}.idp-effect--guitar i:nth-child(3){left:90%;top:97%;width:10%;height:2.6%;background:rgba(255,84,120,.92);box-shadow:0 0 6px rgba(255,84,120,.82),0 0 10px rgba(255,84,120,.42)}.active.idp-effect--guitar::before,.active.idp-effect--guitar::after{opacity:1;animation:guitarTwoStringGlow .55s ease-in-out 4}.active.idp-effect--guitar i{opacity:1;animation:guitarBlink .42s steps(2) 4}.idp-effect--handheld{left:65.67%;top:81.93%;width:5.56%;height:6.70%;overflow:hidden;border-radius:10px;clip-path:polygon(6% 0,100% 13%,94% 100%,0 86%);transform-origin:center;transform:rotate(8deg) skewX(-3deg);background:linear-gradient(180deg,rgba(20,18,66,.08),rgba(12,12,38,.02))}.idp-handheld-screen{position:absolute;inset:0;border-radius:10px;overflow:hidden;background:linear-gradient(180deg,#351062,#1a0f41 54%,#090e24);box-shadow:inset 0 0 8px rgba(255,255,255,.08),0 0 8px rgba(255,89,120,.12)}.idp-handheld-screen::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.06),rgba(255,255,255,.06) 1px,transparent 2px,transparent 5px);opacity:.28}.idp-handheld-character{position:absolute;left:36%;top:31%;width:28%;height:42%;opacity:0;transform:translateY(12%) scale(.7);transform-origin:50% 100%;will-change:transform,opacity}.hc-head,.hc-body,.hc-eye{position:absolute;display:block}.hc-head{left:24%;top:0;width:52%;height:32%;background:#ff5cce;box-shadow:0 0 8px rgba(255,92,206,.55);border-radius:6px 6px 5px 5px}.hc-body{left:14%;top:36%;width:72%;height:46%;background:#6cf6ff;box-shadow:0 0 8px rgba(108,246,255,.45);border-radius:7px}.hc-eye{top:9%;width:9%;height:9%;background:#fff;border-radius:50%;box-shadow:0 0 4px rgba(255,255,255,.8)}.hc-eye--l{left:35%}.hc-eye--r{right:35%}.idp-handheld-star{position:absolute;width:6%;height:6%;background:#fff;border-radius:50%;box-shadow:0 0 6px rgba(255,255,255,.75);opacity:0}.idp-handheld-star::before,.idp-handheld-star::after{content:"";position:absolute;left:50%;top:50%;background:currentColor;transform:translate(-50%,-50%)}.idp-handheld-star::before{width:180%;height:26%;border-radius:999px}.idp-handheld-star::after{width:26%;height:180%;border-radius:999px}.hs1{left:18%;top:20%;color:#ffe56b}.hs2{left:72%;top:24%;color:#6cf6ff}.hs3{left:70%;top:60%;color:#ff7ad9}.active .idp-handheld-character{opacity:1;animation:handheldPop .45s ease-out 1,handheldRun 1.1s ease-in-out .45s infinite}.active .idp-handheld-star{animation:handheldStar 1.1s ease-out 2}.active .hc-eye{animation:handheldBlink .9s steps(2,end) infinite}.active .hs1{animation-delay:.05s}.active .hs2{animation-delay:.18s}.active .hs3{animation-delay:.32s}@keyframes guitarBlink{50%{filter:brightness(2.1);transform:scale(1.16)}}@keyframes guitarTwoStringGlow{0%,100%{opacity:.16;filter:brightness(1)}50%{opacity:.92;filter:brightness(1.8)}}@keyframes idpPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes gameSignFlicker{0%,7%,13%,23%,31%,44%{opacity:.28;filter:brightness(.7)}4%,10%,18%,26%,37%,55%,100%{opacity:1;filter:brightness(1.5)}}@keyframes sparkPop{0%{transform:scale(.2);opacity:0}35%{opacity:1}100%{transform:scale(1.5);opacity:0}}@keyframes marqueeFlash{50%{filter:brightness(1.8)}}@keyframes arcadeGlow{50%{filter:brightness(1.4) saturate(1.4)}}@keyframes invaderMarch{0%{transform:translateX(-4%)}100%{transform:translateX(4%)}}@keyframes laserFire{0%{transform:translateY(35%);opacity:0}25%,70%{opacity:1}100%{transform:translateY(-60%);opacity:0}}@keyframes explode{0%,65%{transform:scale(.2);opacity:0}75%{opacity:1}100%{transform:scale(1.6);opacity:0}}@keyframes moonPulse{50%{opacity:.36;transform:scale(1.015);filter:brightness(1.04)}}@keyframes buildingFlicker{0%,100%{opacity:.52}50%{opacity:.88}}@keyframes shootStar{0%{opacity:0;transform:translateX(70%) translateY(-40%) rotate(-25deg)}12%,42%{opacity:1}100%{opacity:0;transform:translateX(-120%) translateY(120%) rotate(-25deg)}}@keyframes lavaPoolPulse{0%,100%{transform:scaleX(1) scaleY(1)}50%{transform:scaleX(1.03) scaleY(.96)}}@keyframes lavaRiseMid{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-10%) scale(.96)}}@keyframes lavaRiseTop{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-10%) scale(1.03)}}@keyframes lavaRiseTiny{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-7%) scale(1.05)}}@keyframes ringPulse{0%{transform:scale(.75);opacity:.9}100%{transform:scale(1.8);opacity:0}}@keyframes buttonBlink{50%{filter:brightness(2)}}@keyframes planetPulse{50%{transform:scale(1.08);filter:drop-shadow(0 0 30px rgba(103,234,255,.85))}}@keyframes keyboardGlow{50%{box-shadow:0 0 18px rgba(102,223,255,.3),0 0 24px rgba(255,71,214,.16)}}@keyframes keyboardSweep{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes tabletPulse{0%,100%{opacity:.74;transform:none}50%{opacity:1;transform:none}}@keyframes ringFlash{0%,100%{box-shadow:0 0 12px rgba(86,224,255,.55), inset 0 0 18px rgba(255,76,226,.12)}50%{box-shadow:0 0 22px rgba(86,224,255,.85),0 0 28px rgba(255,76,226,.18), inset 0 0 22px rgba(255,76,226,.2)}}@keyframes innerGlow{0%,100%{opacity:.65;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}@keyframes steamRise{0%{opacity:0;transform:translateY(12px) scale(.8)}25%{opacity:.55}60%{opacity:.36}100%{opacity:0;transform:translateY(-26px) scale(1.12)}}@keyframes steamRiseSoft{0%{opacity:0;transform:translateY(10px) translateX(0) scale(.82)}20%{opacity:.34}50%{opacity:.46;transform:translateY(-8px) translateX(2px) scale(1)}80%{opacity:.20;transform:translateY(-20px) translateX(-2px) scale(1.08)}100%{opacity:0;transform:translateY(-30px) translateX(1px) scale(1.14)}}@keyframes coffeeBubble{0%,100%{opacity:0;transform:translateY(0) scale(.7)}35%{opacity:.85}100%{opacity:0;transform:translateY(-18px) scale(1)}}@keyframes coffeeSurface{50%{transform:scaleX(1.03) scaleY(.96)}}@keyframes handheldPop{0%{opacity:0;transform:translateY(14%) scale(.55)}55%{opacity:1;transform:translateY(-3%) scale(1.08)}100%{opacity:1;transform:translateY(0) scale(1)}}@keyframes handheldRun{0%,100%{transform:translateX(-7%) translateY(0) scale(1)}25%{transform:translateX(3%) translateY(-5%) scale(1.03)}50%{transform:translateX(9%) translateY(0) scale(1)}75%{transform:translateX(2%) translateY(-4%) scale(1.02)}}@keyframes handheldBlink{0%,88%,100%{opacity:1}92%,96%{opacity:.18}}@keyframes handheldBounce{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-6%) scale(1.03)}}@keyframes handheldStar{0%{opacity:0;transform:scale(.2)}35%{opacity:1}100%{opacity:0;transform:scale(1.55)}}
@media (max-width:900px){.idp-hotspot__dot{width:24px;height:24px}.idp-hotspot__label{font-size:12px;padding:7px 10px}.idp-gameon-neon{font-size:clamp(8px,2.4vw,26px)}}@media (max-width:700px){.idp-control{font-size:13px;padding:8px 12px}.idp-hotspot__label{display:none}.idp-hotspot__dot{width:34px;height:34px}}

/* v1.4.3 production polish */
.idp-hotspot::before{content:'';position:absolute;left:50%;top:50%;width:58px;height:58px;transform:translate(-50%,-50%);border-radius:50%;}
.idp-hotspot:focus-visible .idp-hotspot__dot{outline:3px solid rgba(255,255,255,.95);outline-offset:4px;}
.idp-hotspot.is-active .idp-hotspot__dot{transform:scale(1.18);box-shadow:0 0 0 9px rgba(255,211,103,.18),0 0 26px rgba(255,211,103,.95),0 0 46px rgba(95,219,255,.7);}
.idp-hotspot.is-active .idp-hotspot__label{border-color:rgba(255,211,103,.65);box-shadow:0 10px 30px rgba(255,188,86,.22),0 0 22px rgba(92,213,255,.22);}
.idp-neon-room[data-labels-hover="1"] .idp-hotspot__label{opacity:0;transform:translateY(-50%) translateX(-4px);transition:opacity .18s ease,transform .18s ease;}
.idp-neon-room[data-labels-hover="1"] .idp-hotspot:hover .idp-hotspot__label,
.idp-neon-room[data-labels-hover="1"] .idp-hotspot:focus-visible .idp-hotspot__label,
.idp-neon-room[data-labels-hover="1"] .idp-hotspot.is-active .idp-hotspot__label{opacity:1;transform:translateY(-50%) translateX(0);}
.idp-neon-room.is-muted .idp-control[data-control="sound"]{opacity:.74;}
.idp-neon-room.is-demo-paused .idp-control[data-control="demo"]{opacity:.75;}
.idp-neon-room[data-debug-mode="1"] .idp-effect{opacity:.38!important;outline:2px dashed rgba(255,234,135,.9);background-color:rgba(255,234,135,.08);overflow:visible;}
.idp-neon-room[data-debug-mode="1"] .idp-effect::after{content:attr(data-effect);position:absolute;left:0;top:-22px;background:rgba(5,5,20,.88);color:#ffe98a;border:1px solid rgba(255,234,135,.55);font:700 11px/1 Arial,sans-serif;padding:4px 6px;border-radius:8px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
.idp-neon-room[data-debug-mode="1"] .idp-hotspot__dot{background:rgba(255,234,135,.22);border-color:#ffe98a;}
.idp-neon-room__frame.is-sound-unlocked::before{content:'Sound ready';position:absolute;left:14px;bottom:14px;z-index:50;background:rgba(8,6,24,.68);border:1px solid rgba(255,255,255,.13);border-radius:999px;color:#fff;font:600 12px/1 Arial,sans-serif;padding:8px 10px;opacity:0;animation:idpSoundReady 1.2s ease 1;pointer-events:none;}
@keyframes idpSoundReady{0%{opacity:0;transform:translateY(6px)}18%,72%{opacity:.9;transform:translateY(0)}100%{opacity:0;transform:translateY(4px)}}
@media (prefers-reduced-motion: reduce){
  .idp-neon-room[data-respect-reduced-motion="1"] *,
  .idp-neon-room[data-respect-reduced-motion="1"] *::before,
  .idp-neon-room[data-respect-reduced-motion="1"] *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
}

/* v1.5.0: lava interaction retired from active scene after visual regression. */




/* Compact post-audio player with speech-reactive rainbow waveform visualizer - v1.5.18 */
.idp-room-mp3{
  position:absolute;
  right:2.2%;
  top:83.8%;
  width:21.4%;
  min-width:176px;
  max-width:276px;
  z-index:72;
  box-sizing:border-box;
  padding:8px 9px 7px;
  border-radius:13px;
  border:1px solid rgba(255,255,255,.22);
  background:linear-gradient(180deg,rgba(17,8,42,.58),rgba(7,4,20,.48));
  box-shadow:0 10px 24px rgba(0,0,0,.26),inset 0 0 18px rgba(107,217,255,.10);
  backdrop-filter:blur(5px);
  color:#fff;
  pointer-events:auto;
  opacity:.72;
  transition:opacity .18s ease, transform .18s ease, box-shadow .18s ease;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:
    "title controls"
    "visual controls"
    "bar bar";
  column-gap:8px;
  row-gap:5px;
  align-items:center;
}
.idp-room-mp3:hover,.idp-room-mp3:focus-within{
  opacity:.96;
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(0,0,0,.32),0 0 18px rgba(86,206,255,.18),inset 0 0 20px rgba(255,80,216,.12);
}
.idp-room-mp3__title{
  grid-area:title;
  min-height:14px;
  font-size:10.5px;
  line-height:1.14;
  font-weight:800;
  overflow:hidden;
  display:block;
  white-space:nowrap;
  text-shadow:0 0 10px rgba(120,220,255,.35);
  margin-bottom:0;
  position:relative;
}
.idp-room-mp3__title span{
  display:inline-block;
  max-width:none;
  padding-right:18px;
  will-change:transform;
}
.idp-room-mp3__title.is-title-long span{
  animation:idpMp3TitleMarquee 9.5s linear infinite;
}
.idp-room-mp3:hover .idp-room-mp3__title.is-title-long span,
.idp-room-mp3:focus-within .idp-room-mp3__title.is-title-long span{
  animation-duration:7.5s;
}
.idp-room-mp3__visualizer{
  grid-area:visual;
  width:100%;
  height:29px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:2px;
  padding:2px 4px 3px;
  margin-bottom:0;
  border-radius:8px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));
  box-shadow:inset 0 0 10px rgba(255,255,255,.04);
  overflow:hidden;
}
.idp-room-mp3__visualizer i{
  flex:1 1 0;
  min-width:2px;
  max-width:6px;
  height:4px;
  border-radius:999px 999px 2px 2px;
  background:linear-gradient(180deg,#fff35f 0%,#48f5ff 42%,#ff4edb 100%);
  box-shadow:0 0 7px rgba(89,235,255,.28),0 0 10px rgba(255,79,219,.16);
  transition:height .04s linear, opacity .12s ease, filter .12s ease;
  opacity:.58;
}
.idp-room-mp3__visualizer i:nth-child(6n+1){background:linear-gradient(180deg,#ff445f,#ff9e3d);box-shadow:0 0 8px rgba(255,69,95,.28)}
.idp-room-mp3__visualizer i:nth-child(6n+2){background:linear-gradient(180deg,#ffef5f,#44ff8d);box-shadow:0 0 8px rgba(255,239,95,.28)}
.idp-room-mp3__visualizer i:nth-child(6n+3){background:linear-gradient(180deg,#47ff8d,#43f0ff);box-shadow:0 0 8px rgba(67,240,255,.28)}
.idp-room-mp3__visualizer i:nth-child(6n+4){background:linear-gradient(180deg,#43f0ff,#5b6cff);box-shadow:0 0 8px rgba(67,240,255,.28)}
.idp-room-mp3__visualizer i:nth-child(6n+5){background:linear-gradient(180deg,#7a5cff,#ff4edb);box-shadow:0 0 8px rgba(255,78,219,.28)}
.idp-room-mp3__visualizer i:nth-child(6n){background:linear-gradient(180deg,#ff4edb,#ff445f);box-shadow:0 0 8px rgba(255,78,219,.28)}
.idp-room-mp3.is-visualizing .idp-room-mp3__visualizer i{opacity:.96;filter:saturate(1.18);}
.idp-room-mp3.is-analyzer-blocked .idp-room-mp3__visualizer i{opacity:.38;filter:saturate(.65);}
.idp-room-mp3.is-analyzer-blocked .idp-room-mp3__visualizer::after{
  content:'';
  position:absolute;
  width:0;
  height:0;
  overflow:hidden;
}
.idp-room-mp3__controls{
  grid-area:controls;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
}
.idp-room-mp3__btn{
  width:25px;
  height:22px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:13px;
  line-height:1;
  cursor:pointer;
  padding:0;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),0 0 12px rgba(84,204,255,.12);
}
.idp-room-mp3__btn:hover{
  background:rgba(255,255,255,.16);
  box-shadow:0 0 12px rgba(84,204,255,.28),0 0 18px rgba(255,72,214,.18);
}
.idp-room-mp3__play{
  width:31px;
  height:26px;
  background:linear-gradient(180deg,rgba(69,218,255,.25),rgba(255,70,214,.18));
}
.idp-room-mp3__bar{
  grid-area:bar;
  width:100%;
  height:3px;
  margin-top:1px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(255,255,255,.14);
}
.idp-room-mp3__bar span{
  display:block;
  width:0%;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(255,68,95,.9),rgba(255,239,95,.9),rgba(67,240,255,.9),rgba(255,78,219,.9));
}
.idp-room-mp3.is-empty .idp-room-mp3__controls,
.idp-room-mp3.is-empty .idp-room-mp3__bar,
.idp-room-mp3.is-empty .idp-room-mp3__visualizer{
  opacity:.32;
}
@media (max-width:700px){
  .idp-room-mp3{right:1.8%;top:83.2%;width:25%;min-width:128px;max-width:196px;padding:6px 6px 5px;border-radius:10px;column-gap:5px;row-gap:4px;}
  .idp-room-mp3__title{min-height:11px;font-size:8.5px;}
  .idp-room-mp3__title.is-title-long span{animation-duration:8s;}
  .idp-room-mp3__visualizer{height:19px;gap:1px;padding:1px 2px 2px;}
  .idp-room-mp3__visualizer i{max-width:4px;}
  .idp-room-mp3__controls{gap:3px;}
  .idp-room-mp3__btn{width:20px;height:18px;font-size:11px;}
  .idp-room-mp3__play{width:24px;height:22px;}
  .idp-room-mp3__bar{height:2px;margin-top:0;}
}
@keyframes idpMp3TitleMarquee{
  0%,14%{transform:translateX(0)}
  86%,100%{transform:translateX(calc(-1 * var(--idp-title-shift, 80px)))}
}


/* Legacy audio guide rules retained for compatibility; v1.5.24 overrides below. */
.idp-tablet-audio-start{
  position:absolute;
  left:44.0%;
  top:49.2%;
  width:9.2%;
  height:5.1%;
  z-index:74;
  border:0;
  padding:0;
  margin:0;
  background:transparent;
  cursor:pointer;
  transform:rotate(-1deg) skewX(1deg);
  border-radius:999px;
  pointer-events:auto;
}
.idp-tablet-audio-start span{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}
.idp-tablet-audio-start:hover,
.idp-tablet-audio-start:focus-visible{
  outline:2px solid rgba(84,224,255,.62);
  outline-offset:2px;
  box-shadow:0 0 20px rgba(84,224,255,.40),0 0 30px rgba(255,72,214,.26),inset 0 0 12px rgba(255,255,255,.09);
  background:rgba(84,224,255,.08);
}
.idp-audio-nudge{
  position:absolute;
  z-index:73;
  display:flex;
  align-items:center;
  gap:9px;
  pointer-events:none;
  color:#fff;
  font-size:11px;
  line-height:1;
  font-weight:900;
  letter-spacing:.045em;
  text-transform:uppercase;
  text-shadow:0 0 8px rgba(67,240,255,.95),0 0 16px rgba(255,78,219,.70),0 2px 8px rgba(0,0,0,.62);
  opacity:.94;
  filter:saturate(1.12);
}
.idp-audio-nudge span{
  position:relative;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.25);
  background:linear-gradient(180deg,rgba(23,8,55,.70),rgba(7,4,20,.50));
  box-shadow:0 0 16px rgba(67,240,255,.32),0 0 24px rgba(255,78,219,.18),inset 0 0 12px rgba(255,255,255,.08);
  backdrop-filter:blur(4px);
}
.idp-audio-nudge span::before{
  content:'';
  position:absolute;
  inset:-3px;
  border-radius:inherit;
  background:linear-gradient(90deg,rgba(255,68,95,.0),rgba(67,240,255,.35),rgba(255,78,219,.32),rgba(255,239,95,.0));
  filter:blur(8px);
  opacity:.75;
  z-index:-1;
  animation:idpAudioGuideGlow 1.6s ease-in-out infinite alternate;
}
.idp-audio-nudge i{
  display:block;
  width:48px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(255,78,219,.95),rgba(67,240,255,.98),rgba(255,239,95,.92));
  box-shadow:0 0 12px rgba(67,240,255,.82),0 0 18px rgba(255,78,219,.54),0 0 26px rgba(255,239,95,.18);
  position:relative;
}
.idp-audio-nudge i::before,
.idp-audio-nudge i::after{
  content:'';
  position:absolute;
  top:50%;
  width:10px;
  height:10px;
  border-top:3px solid rgba(255,255,255,.96);
  border-right:3px solid rgba(255,255,255,.96);
  filter:drop-shadow(0 0 8px rgba(67,240,255,.95)) drop-shadow(0 0 12px rgba(255,78,219,.46));
}
.idp-audio-nudge b{
  position:absolute;
  width:8px;
  height:8px;
  border-radius:50%;
  background:rgba(255,255,255,.92);
  box-shadow:0 0 10px rgba(67,240,255,.95),0 0 18px rgba(255,78,219,.65),0 0 26px rgba(255,239,95,.35);
  animation:idpAudioGuideSpark 1.05s ease-in-out infinite alternate;
}
.idp-audio-nudge--start{
  left:33.2%;
  top:49.0%;
  flex-direction:row;
  animation:idpAudioGuideToStart 1.25s ease-in-out infinite alternate;
}
.idp-audio-nudge--start i::before,
.idp-audio-nudge--start i::after{
  right:-3px;
  transform:translateY(-50%) rotate(45deg);
}
.idp-audio-nudge--start i::before{right:4px;opacity:.46;}
.idp-audio-nudge--start b{right:-12px;top:50%;transform:translateY(-50%);}
.idp-audio-nudge--player{
  right:24.1%;
  top:79.9%;
  flex-direction:row;
  animation:idpAudioGuideToPlayer 1.25s ease-in-out infinite alternate;
}
.idp-audio-nudge--player i::before,
.idp-audio-nudge--player i::after{
  right:-3px;
  transform:translateY(-50%) rotate(45deg);
}
.idp-audio-nudge--player i::before{right:4px;opacity:.46;}
.idp-audio-nudge--player b{right:-12px;top:50%;transform:translateY(-50%);}
.idp-neon-room.is-room-audio-started .idp-audio-nudge{
  opacity:0;
  transform:translateY(3px) scale(.96);
  transition:opacity .24s ease, transform .24s ease;
}
.idp-room-mp3.is-external-pulse{
  opacity:1;
  box-shadow:0 12px 30px rgba(0,0,0,.36),0 0 20px rgba(86,206,255,.34),0 0 24px rgba(255,80,216,.24),inset 0 0 22px rgba(255,255,255,.08);
}
@media (max-width:700px){
  .idp-tablet-audio-start{left:43.8%;top:49.0%;width:10.2%;height:5.7%;}
  .idp-audio-nudge{gap:5px;font-size:7.8px;}
  .idp-audio-nudge span{padding:4px 6px;}
  .idp-audio-nudge i{width:24px;height:2px;}
  .idp-audio-nudge i::before,.idp-audio-nudge i::after{width:7px;height:7px;border-width:2px;}
  .idp-audio-nudge--start{left:28.8%;top:48.8%;}
  .idp-audio-nudge--player{right:27.4%;top:80.1%;}
}
@keyframes idpAudioGuideToStart{
  0%{transform:translateX(-2px);filter:saturate(1)}
  100%{transform:translateX(4px);filter:saturate(1.35)}
}
@keyframes idpAudioGuideToPlayer{
  0%{transform:translateX(-2px);filter:saturate(1)}
  100%{transform:translateX(5px);filter:saturate(1.35)}
}
@keyframes idpAudioGuideGlow{
  0%{opacity:.42;transform:scale(.98)}
  100%{opacity:.88;transform:scale(1.04)}
}
@keyframes idpAudioGuideSpark{
  0%{opacity:.58;transform:translateY(-50%) scale(.85)}
  100%{opacity:1;transform:translateY(-50%) scale(1.18)}
}


/* v1.5.24: corrected tablet START hit area and cleaner neon audio guide */
.idp-audio-nudge{display:none!important;}
.idp-tablet-audio-start{
  left:45.35%!important;
  top:59.50%!important;
  width:9.60%!important;
  height:4.70%!important;
  z-index:78!important;
  transform:rotate(-1.5deg) skewX(-1deg)!important;
  border-radius:999px!important;
}
.idp-tablet-audio-start:hover,
.idp-tablet-audio-start:focus-visible{
  outline:2px solid rgba(255,72,214,.64);
  outline-offset:2px;
  background:rgba(255,72,214,.08);
  box-shadow:0 0 14px rgba(255,72,214,.45),0 0 26px rgba(67,240,255,.28),inset 0 0 12px rgba(255,255,255,.08);
}
.idp-audio-guide{
  position:absolute;
  inset:0;
  z-index:73;
  pointer-events:none;
  opacity:.96;
  filter:drop-shadow(0 0 8px rgba(67,240,255,.35));
  animation:idpAudioGuideGlow 1.8s ease-in-out infinite alternate;
}
.idp-audio-guide span{
  position:absolute;
  left:57.7%;
  top:67.2%;
  transform:translate(-50%,-50%) rotate(-2deg);
  padding:7px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.26);
  color:#fff;
  font-size:11px;
  line-height:1;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
  background:
    radial-gradient(circle at 15% 20%,rgba(255,255,255,.22),transparent 34%),
    linear-gradient(135deg,rgba(255,72,214,.38),rgba(67,240,255,.24) 52%,rgba(18,8,48,.54));
  box-shadow:
    0 0 14px rgba(255,72,214,.34),
    0 0 24px rgba(67,240,255,.24),
    inset 0 0 12px rgba(255,255,255,.08);
  text-shadow:0 0 8px rgba(67,240,255,.82),0 0 14px rgba(255,72,214,.58),0 2px 8px rgba(0,0,0,.55);
  backdrop-filter:blur(4px);
}
.idp-audio-guide span::before,
.idp-audio-guide span::after{
  content:'';
  position:absolute;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 10px rgba(67,240,255,.92),0 0 14px rgba(255,72,214,.75);
  opacity:.8;
}
.idp-audio-guide span::before{left:8px;top:-6px;animation:idpAudioSpark 1.35s ease-in-out infinite alternate;}
.idp-audio-guide span::after{right:10px;bottom:-6px;animation:idpAudioSpark 1.6s ease-in-out infinite alternate-reverse;}
.idp-audio-guide__arrow{
  position:absolute;
  display:block;
  height:3px;
  border-radius:999px;
  transform-origin:left center;
  background:linear-gradient(90deg,rgba(255,72,214,.08),rgba(255,72,214,.82),rgba(67,240,255,.96),rgba(255,255,255,.95));
  box-shadow:0 0 10px rgba(67,240,255,.72),0 0 18px rgba(255,72,214,.46);
}
.idp-audio-guide__arrow::before{
  content:'';
  position:absolute;
  left:12%;
  right:16%;
  top:50%;
  height:1px;
  transform:translateY(-50%);
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.82) 0 5px,transparent 5px 10px);
  opacity:.55;
}
.idp-audio-guide__arrow::after{
  content:'';
  position:absolute;
  right:-1px;
  top:50%;
  width:11px;
  height:11px;
  border-top:3px solid rgba(255,255,255,.95);
  border-right:3px solid rgba(255,255,255,.95);
  transform:translateY(-50%) rotate(45deg);
  filter:drop-shadow(0 0 8px rgba(67,240,255,.9)) drop-shadow(0 0 10px rgba(255,72,214,.65));
}
.idp-audio-guide__arrow--start{
  left:57.1%;
  top:66.5%;
  width:13.3%;
  transform:rotate(-147deg);
  animation:idpAudioArrowStart 1.05s ease-in-out infinite alternate;
}
.idp-audio-guide__arrow--player{
  left:62.4%;
  top:73.9%;
  width:16.2%;
  transform:rotate(34deg);
  animation:idpAudioArrowPlayer 1.05s ease-in-out infinite alternate;
}
.idp-audio-guide b{
  position:absolute;
  left:45.8%;
  top:59.9%;
  width:8.7%;
  height:3.8%;
  border-radius:999px;
  border:2px solid rgba(255,72,214,.44);
  box-shadow:0 0 16px rgba(255,72,214,.46),0 0 24px rgba(67,240,255,.24),inset 0 0 12px rgba(255,255,255,.06);
  transform:rotate(-1.5deg) skewX(-1deg);
  animation:idpStartRingPulse 1.18s ease-in-out infinite alternate;
}
.idp-neon-room.is-room-audio-started .idp-audio-guide{
  opacity:0;
  transform:translateY(3px);
  transition:opacity .22s ease, transform .22s ease;
}
@media (max-width:700px){
  .idp-tablet-audio-start{left:45.35%!important;top:59.50%!important;width:9.8%!important;height:4.9%!important;}
  .idp-audio-guide span{left:58.2%;top:67.7%;font-size:8px;padding:5px 8px;}
  .idp-audio-guide__arrow{height:2px;}
  .idp-audio-guide__arrow::after{width:8px;height:8px;border-width:2px;}
  .idp-audio-guide__arrow--start{left:57.4%;top:67.0%;width:13.6%;}
  .idp-audio-guide__arrow--player{left:63.0%;top:74.0%;width:15.4%;}
}
@keyframes idpAudioGuideGlow{
  0%{opacity:.78;filter:drop-shadow(0 0 6px rgba(67,240,255,.28))}
  100%{opacity:1;filter:drop-shadow(0 0 13px rgba(255,72,214,.38))}
}
@keyframes idpAudioSpark{
  0%{transform:scale(.75);opacity:.45}
  100%{transform:scale(1.25);opacity:1}
}
@keyframes idpAudioArrowStart{
  0%{filter:saturate(1);opacity:.72}
  100%{filter:saturate(1.35);opacity:1}
}
@keyframes idpAudioArrowPlayer{
  0%{filter:saturate(1.1);opacity:.72}
  100%{filter:saturate(1.45);opacity:1}
}
@keyframes idpStartRingPulse{
  0%{opacity:.48;transform:rotate(-1.5deg) skewX(-1deg) scale(.96)}
  100%{opacity:1;transform:rotate(-1.5deg) skewX(-1deg) scale(1.05)}
}


/* Transparent Play Audio graphic + corrected START area. */
.idp-audio-guide{display:none!important;}
.idp-audio-guide-graphic{
  position:absolute;
  left:49.1%;
  top:61.1%;
  width:37.2%;
  height:auto;
  z-index:73;
  pointer-events:none;
  opacity:.97;
  filter:drop-shadow(0 0 10px rgba(255,70,214,.22)) drop-shadow(0 0 16px rgba(67,240,255,.16));
  transform:translate3d(0,0,0);
  animation:idpGuideGraphicFloat 2.25s ease-in-out infinite alternate;
}
.idp-neon-room.is-room-audio-started .idp-audio-guide-graphic{
  opacity:0;
  transform:translateY(4px) scale(.98);
  transition:opacity .24s ease, transform .24s ease;
}
.idp-tablet-audio-start{
  left:43.55%!important;
  top:56.65%!important;
  width:10.15%!important;
  height:5.95%!important;
  z-index:79!important;
  transform:rotate(-1.5deg) skewX(-1deg)!important;
  border-radius:999px!important;
}
.idp-tablet-audio-start:hover,
.idp-tablet-audio-start:focus-visible{
  outline:2px solid rgba(255,72,214,.50);
  outline-offset:2px;
  background:rgba(255,72,214,.06);
  box-shadow:0 0 10px rgba(255,72,214,.28),0 0 18px rgba(67,240,255,.18),inset 0 0 10px rgba(255,255,255,.06);
}
@media (max-width:700px){
  .idp-audio-guide-graphic{left:49.0%;top:61.2%;width:39.5%;}
  .idp-tablet-audio-start{left:43.5%!important;top:56.55%!important;width:10.35%!important;height:6.15%!important;}
}
@keyframes idpGuideGraphicFloat{
  0%{transform:translateY(0) scale(.992)}
  100%{transform:translateY(-3px) scale(1.008)}
}


/* Hide transparent Play Audio guide immediately after START or play click. */
.idp-neon-room.is-room-audio-started .idp-audio-guide-graphic{
  pointer-events:none;
}


/* True transparent PNG guide asset, cleaner fit over scene. */
.idp-audio-guide-graphic{
  left:47.8%!important;
  top:54.7%!important;
  width:31.5%!important;
  opacity:.96;
}
@media (max-width:700px){
  .idp-audio-guide-graphic{left:47.5%!important;top:54.6%!important;width:34.5%!important;}
}


/* Cache-proof true transparent Play Audio PNG. */
.idp-audio-guide{display:none!important;}
.idp-audio-guide-graphic{
  left:47.8%!important;
  top:54.6%!important;
  width:31.5%!important;
  opacity:.96;
  background:transparent!important;
}
@media (max-width:700px){
  .idp-audio-guide-graphic{left:47.5%!important;top:54.5%!important;width:34.5%!important;}
}


/* Polished transparent guide + lower START hotspot. */
.idp-audio-guide-graphic{
  left:48.4%!important;
  top:58.2%!important;
  width:26.8%!important;
  height:auto;
  opacity:.97!important;
  background:transparent!important;
  filter:drop-shadow(0 0 10px rgba(255,70,214,.18)) drop-shadow(0 0 14px rgba(67,240,255,.14));
}
.idp-tablet-audio-start{
  left:43.55%!important;
  top:58.45%!important;
  width:10.2%!important;
  height:6.15%!important;
}
@media (max-width:700px){
  .idp-audio-guide-graphic{left:48.3%!important;top:58.1%!important;width:28.8%!important;}
  .idp-tablet-audio-start{left:43.5%!important;top:58.35%!important;width:10.35%!important;height:6.25%!important;}
}


/* Coordinate-only correction from red-marked START button area. */
.idp-tablet-audio-start{
  left:45.45%!important;
  top:59.15%!important;
  width:9.65%!important;
  height:5.55%!important;
}
@media (max-width:700px){
  .idp-tablet-audio-start{
    left:45.45%!important;
    top:59.15%!important;
    width:9.75%!important;
    height:5.75%!important;
  }
}


/* User-provided transparent Play Audio guide. */
.idp-audio-guide-graphic{
  left:47.9%!important;
  top:56.9%!important;
  width:34.0%!important;
  height:auto!important;
  opacity:.98!important;
  background:transparent!important;
  filter:drop-shadow(0 0 8px rgba(255,70,214,.12)) drop-shadow(0 0 12px rgba(67,240,255,.10));
}
.idp-neon-room.is-room-audio-started .idp-audio-guide-graphic{
  opacity:0!important;
  transform:translateY(3px) scale(.98)!important;
  transition:opacity .22s ease, transform .22s ease;
}
@media (max-width:700px){
  .idp-audio-guide-graphic{
    left:47.8%!important;
    top:56.8%!important;
    width:36.5%!important;
  }
}


/* Enhanced lava animation, latched active states, and optional tablet center graphic. */
.idp-neon-room .idp-hotspot.is-active .idp-hotspot__dot{
  opacity:1;
  transform:scale(1.08);
  box-shadow:0 0 0 7px rgba(255,65,211,.16),0 0 20px rgba(78,224,255,.55),0 0 30px rgba(255,65,211,.32),inset 0 0 12px rgba(255,255,255,.28);
}
.idp-tablet-center-graphic{
  position:absolute;
  left:45.1%;
  top:35.6%;
  width:12.0%;
  height:17.4%;
  z-index:19;
  object-fit:cover;
  border-radius:50%;
  pointer-events:none;
  mix-blend-mode:screen;
  filter:drop-shadow(0 0 10px rgba(75,231,255,.30)) drop-shadow(0 0 16px rgba(255,70,214,.18));
  opacity:.96;
  transform:rotate(-1.4deg) skewX(-.6deg);
}
.idp-effect--lava.active{
  background:
    radial-gradient(circle at 50% 88%,rgba(255,239,232,.22),rgba(255,163,225,.10) 34%,transparent 64%),
    linear-gradient(180deg,rgba(255,79,218,.05),rgba(119,52,255,.06));
  box-shadow:inset 0 0 12px rgba(255,92,216,.18),0 0 16px rgba(255,76,214,.18);
}
.idp-effect--lava.active::before{
  content:'';
  position:absolute;
  left:9%;
  top:4%;
  width:82%;
  height:92%;
  border-radius:44% 44% 28% 28% / 10% 10% 88% 88%;
  background:linear-gradient(180deg,rgba(255,255,255,.10),transparent 22%,rgba(255,79,214,.10) 68%,rgba(255,255,255,.08));
  opacity:.8;
  animation:idpLavaGlassShimmer 4.8s ease-in-out infinite;
}
.idp-effect--lava.active::after{
  content:'';
  position:absolute;
  left:20%;
  top:16%;
  width:62%;
  height:72%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,130,222,.14),transparent 66%);
  filter:blur(2px);
  animation:idpLavaInnerGlow 3.7s ease-in-out infinite alternate;
}
.idp-effect--lava.active .idp-lava-blob{
  opacity:.92;
  box-shadow:0 0 10px rgba(255,170,225,.36),0 0 18px rgba(255,78,214,.22);
  filter:saturate(1.18);
}
.idp-effect--lava.active .b1{animation:idpLavaPoolAlive 4.4s ease-in-out infinite;}
.idp-effect--lava.active .b2{animation:idpLavaBlobRiseA 5.6s ease-in-out infinite .08s;}
.idp-effect--lava.active .b3{animation:idpLavaBlobRiseB 4.9s ease-in-out infinite .34s;}
.idp-effect--lava.active .b4{display:block;animation:idpLavaBlobRiseC 5.25s ease-in-out infinite .72s;}
@media (max-width:700px){
  .idp-tablet-center-graphic{left:45.0%;top:35.5%;width:12.2%;height:17.6%;}
}
@keyframes idpLavaGlassShimmer{
  0%,100%{opacity:.56;transform:translateX(-3%) scaleX(.98)}
  50%{opacity:.88;transform:translateX(4%) scaleX(1.02)}
}
@keyframes idpLavaInnerGlow{
  0%{opacity:.52;transform:translateY(2%) scale(.92)}
  100%{opacity:.88;transform:translateY(-3%) scale(1.05)}
}
@keyframes idpLavaPoolAlive{
  0%,100%{transform:translate(0,0) scaleX(1.04) scaleY(.96);border-radius:62% 38% 48% 52% / 58% 65% 35% 42%;}
  33%{transform:translate(3%,-2%) scaleX(.94) scaleY(1.05);border-radius:46% 54% 62% 38% / 68% 46% 54% 32%;}
  66%{transform:translate(-3%,1%) scaleX(1.08) scaleY(.92);border-radius:56% 44% 42% 58% / 46% 62% 38% 54%;}
}
@keyframes idpLavaBlobRiseA{
  0%{transform:translate(-2%,12%) scale(.82,.92);opacity:.18;}
  18%{opacity:.92;}
  48%{transform:translate(7%,-58%) scale(1.05,.88);opacity:.96;}
  76%{transform:translate(-5%,-108%) scale(.72,1.12);opacity:.62;}
  100%{transform:translate(2%,-138%) scale(.48,.78);opacity:0;}
}
@keyframes idpLavaBlobRiseB{
  0%{transform:translate(6%,18%) scale(.65,.78);opacity:.08;}
  22%{opacity:.86;}
  54%{transform:translate(-8%,-46%) scale(1.08,.94);opacity:.95;}
  82%{transform:translate(6%,-92%) scale(.74,1.12);opacity:.48;}
  100%{transform:translate(-2%,-124%) scale(.46,.68);opacity:0;}
}
@keyframes idpLavaBlobRiseC{
  0%{transform:translate(-8%,18%) scale(.52,.68);opacity:.05;}
  24%{opacity:.78;}
  52%{transform:translate(8%,-36%) scale(.86,1.02);opacity:.88;}
  80%{transform:translate(-5%,-78%) scale(.58,.94);opacity:.42;}
  100%{transform:translate(4%,-112%) scale(.34,.55);opacity:0;}
}


/* Stronger low-level visualizer, rainbow lava, and steamier stable coffee. */
.idp-room-mp3__visualizer i{min-height:4px;opacity:.82;}
.idp-room-mp3.is-visualizing .idp-room-mp3__visualizer i{opacity:1;filter:saturate(1.28) brightness(1.06);}

.idp-effect--lava.active .idp-lava-blob{
  opacity:.95;
  background:radial-gradient(circle at 38% 28%,rgba(255,255,255,.98),rgba(255,230,181,.94) 22%,rgba(255,86,222,.90) 44%,rgba(105,84,255,.90) 66%,rgba(66,235,255,.82));
  box-shadow:0 0 12px rgba(255,170,225,.42),0 0 22px rgba(78,224,255,.24);
  filter:saturate(1.35);
}
.idp-effect--lava.active .b1{animation:idpLavaPoolAlive 4.4s ease-in-out infinite, idpLavaRainbow 8.5s linear infinite;}
.idp-effect--lava.active .b2{animation:idpLavaBlobRiseA 5.6s ease-in-out infinite .08s, idpLavaRainbow 7.2s linear infinite .2s;}
.idp-effect--lava.active .b3{animation:idpLavaBlobRiseB 4.9s ease-in-out infinite .34s, idpLavaRainbow 6.4s linear infinite .55s;}
.idp-effect--lava.active .b4{display:block;animation:idpLavaBlobRiseC 5.25s ease-in-out infinite .72s, idpLavaRainbow 5.8s linear infinite .95s;}

.idp-effect--mug{transform:none!important;}
.idp-mug-surface{left:1.8%;top:10.8%;width:77.4%;height:15.6%;transform:none!important;box-shadow:0 0 10px rgba(255,165,92,.18);}
.idp-steam{bottom:74%;width:9%;height:50%;border-width:1.2px;filter:blur(1.2px);opacity:0;}
.s1{left:13%;transform:rotate(-14deg)}
.s2{left:28%;transform:rotate(3deg)}
.s3{left:44%;transform:rotate(-6deg)}
.idp-effect--mug::before,.idp-effect--mug::after{
  content:'';
  position:absolute;
  bottom:74%;
  width:10%;
  height:54%;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.28);
  border-color:rgba(255,255,255,.24) transparent transparent transparent;
  filter:blur(1.2px);
  opacity:0;
  pointer-events:none;
}
.idp-effect--mug::before{left:59%;transform:rotate(10deg)}
.idp-effect--mug::after{left:72%;transform:rotate(-10deg)}
.active .idp-mug-surface{opacity:.9;animation:coffeeSurfaceStill 2.2s ease-in-out infinite;}
.active .s1{animation:steamRiseTall 2.6s ease-in-out infinite;}
.active .s2{animation:steamRiseTall 2.8s ease-in-out infinite .35s;}
.active .s3{animation:steamRiseTall 2.75s ease-in-out infinite .75s;}
.active.idp-effect--mug::before{animation:steamRiseTall 2.95s ease-in-out infinite .22s;}
.active.idp-effect--mug::after{animation:steamRiseTall 2.7s ease-in-out infinite .95s;}
.active .mb1,.active .mb2{animation:none!important;opacity:0;}

@keyframes idpLavaRainbow{
  0%{filter:hue-rotate(0deg) saturate(1.2) brightness(1);}
  20%{filter:hue-rotate(55deg) saturate(1.32) brightness(1.04);}
  40%{filter:hue-rotate(120deg) saturate(1.4) brightness(1.08);}
  60%{filter:hue-rotate(185deg) saturate(1.36) brightness(1.02);}
  80%{filter:hue-rotate(255deg) saturate(1.34) brightness(1.06);}
  100%{filter:hue-rotate(360deg) saturate(1.2) brightness(1);}
}
@keyframes coffeeSurfaceStill{
  0%,100%{transform:scaleX(1) scaleY(1);filter:brightness(1);}
  50%{transform:scaleX(1.02) scaleY(.98);filter:brightness(1.04);}
}
@keyframes steamRiseTall{
  0%{opacity:0;transform:translateY(10px) translateX(0) scale(.78);} 
  18%{opacity:.42;}
  42%{opacity:.58;transform:translateY(-8px) translateX(2px) scale(.96);} 
  72%{opacity:.24;transform:translateY(-26px) translateX(-3px) scale(1.1);} 
  100%{opacity:0;transform:translateY(-40px) translateX(1px) scale(1.18);} 
}


/* Coffee steam visibility fix only. */
.idp-effect--mug .idp-mug-surface{
  transform:none!important;
}
.idp-effect--mug .idp-steam{
  bottom:75%;
  width:12%;
  height:62%;
  border:0!important;
  border-radius:999px;
  background:
    radial-gradient(ellipse at 50% 12%, rgba(255,255,255,.62), rgba(255,255,255,.22) 32%, transparent 66%),
    linear-gradient(180deg, rgba(255,255,255,.52), rgba(215,244,255,.24) 45%, transparent 100%);
  box-shadow:0 0 8px rgba(255,255,255,.32),0 0 14px rgba(115,225,255,.20);
  filter:blur(.7px);
  opacity:0;
  transform-origin:50% 100%;
}
.idp-effect--mug .s1{left:15%;--idp-steam-rot:-16deg;--idp-steam-drift:-4px;}
.idp-effect--mug .s2{left:31%;--idp-steam-rot:4deg;--idp-steam-drift:2px;}
.idp-effect--mug .s3{left:47%;--idp-steam-rot:-7deg;--idp-steam-drift:-2px;}
.idp-effect--mug::before,
.idp-effect--mug::after{
  border:0!important;
  border-radius:999px;
  background:
    radial-gradient(ellipse at 50% 12%, rgba(255,255,255,.58), rgba(255,255,255,.20) 34%, transparent 68%),
    linear-gradient(180deg, rgba(255,255,255,.48), rgba(215,244,255,.22) 45%, transparent 100%);
  box-shadow:0 0 8px rgba(255,255,255,.28),0 0 14px rgba(115,225,255,.18);
  filter:blur(.8px);
  width:11%;
  height:58%;
  bottom:75%;
  opacity:0;
  transform-origin:50% 100%;
}
.idp-effect--mug::before{left:61%;--idp-steam-rot:13deg;--idp-steam-drift:3px;}
.idp-effect--mug::after{left:73%;--idp-steam-rot:-11deg;--idp-steam-drift:-3px;}

.active .idp-steam.s1{animation:idpCoffeeSteamVisible 2.35s ease-in-out infinite;}
.active .idp-steam.s2{animation:idpCoffeeSteamVisible 2.55s ease-in-out infinite .30s;}
.active .idp-steam.s3{animation:idpCoffeeSteamVisible 2.45s ease-in-out infinite .68s;}
.active.idp-effect--mug::before{animation:idpCoffeeSteamVisible 2.7s ease-in-out infinite .15s;}
.active.idp-effect--mug::after{animation:idpCoffeeSteamVisible 2.5s ease-in-out infinite .82s;}

@keyframes idpCoffeeSteamVisible{
  0%{
    opacity:0;
    transform:translateY(10px) translateX(0) rotate(var(--idp-steam-rot,0deg)) scale(.72);
  }
  18%{
    opacity:.70;
  }
  45%{
    opacity:.58;
    transform:translateY(-10px) translateX(var(--idp-steam-drift,0)) rotate(var(--idp-steam-rot,0deg)) scale(1);
  }
  74%{
    opacity:.28;
    transform:translateY(-30px) translateX(calc(var(--idp-steam-drift,0) * -1)) rotate(var(--idp-steam-rot,0deg)) scale(1.12);
  }
  100%{
    opacity:0;
    transform:translateY(-46px) translateX(0) rotate(var(--idp-steam-rot,0deg)) scale(1.2);
  }
}


/* Disable visible headphones overlay but keep hotspot/sound behavior. */
.idp-effect--headphones,
.idp-effect--headphones.active{
  opacity:0 !important;
  visibility:hidden !important;
  box-shadow:none !important;
  background:none !important;
  border:0 !important;
}
.idp-effect--headphones::before,
.idp-effect--headphones::after,
.idp-effect--headphones i{
  display:none !important;
  content:none !important;
}


/* Stronger coffee steam visibility only. */
.idp-effect--mug,
.idp-effect--mug.active{
  z-index:66;
}
.idp-effect--mug .idp-mug-surface{
  transform:none !important;
  opacity:0;
}
.idp-effect--mug .idp-steam,
.idp-effect--mug::before,
.idp-effect--mug::after{
  z-index:4;
}
.idp-effect--mug .idp-steam{
  bottom:74.5% !important;
  width:14% !important;
  height:74% !important;
  border:0 !important;
  border-radius:999px;
  background:
    radial-gradient(ellipse at 50% 16%, rgba(255,255,255,.92), rgba(255,255,255,.58) 24%, rgba(215,244,255,.26) 52%, transparent 78%),
    linear-gradient(180deg, rgba(255,255,255,.72), rgba(225,247,255,.28) 42%, transparent 100%);
  box-shadow:0 0 12px rgba(255,255,255,.42), 0 0 22px rgba(131,231,255,.24);
  filter:blur(.45px);
  mix-blend-mode:screen;
  opacity:0;
  transform-origin:50% 100%;
}
.idp-effect--mug .s1{left:10% !important; --idp-steam-rot:-18deg; --idp-steam-drift:-5px;}
.idp-effect--mug .s2{left:28% !important; --idp-steam-rot:3deg; --idp-steam-drift:3px;}
.idp-effect--mug .s3{left:46% !important; --idp-steam-rot:-8deg; --idp-steam-drift:-2px;}
.idp-effect--mug::before,
.idp-effect--mug::after{
  content:'';
  position:absolute;
  bottom:74.5% !important;
  width:14% !important;
  height:70% !important;
  border:0 !important;
  border-radius:999px;
  background:
    radial-gradient(ellipse at 50% 16%, rgba(255,255,255,.86), rgba(255,255,255,.50) 24%, rgba(215,244,255,.22) 52%, transparent 78%),
    linear-gradient(180deg, rgba(255,255,255,.66), rgba(225,247,255,.22) 42%, transparent 100%);
  box-shadow:0 0 10px rgba(255,255,255,.34), 0 0 18px rgba(131,231,255,.18);
  filter:blur(.5px);
  mix-blend-mode:screen;
  opacity:0;
  transform-origin:50% 100%;
  pointer-events:none;
}
.idp-effect--mug::before{left:63% !important; --idp-steam-rot:12deg; --idp-steam-drift:4px;}
.idp-effect--mug::after{left:79% !important; --idp-steam-rot:-12deg; --idp-steam-drift:-4px;}
.active .idp-mug-surface{
  opacity:.92 !important;
  animation:coffeeSurfaceStill 2.2s ease-in-out infinite !important;
}
.active .idp-steam.s1{animation:idpCoffeeSteamBold 2.15s ease-in-out infinite !important;}
.active .idp-steam.s2{animation:idpCoffeeSteamBold 2.35s ease-in-out infinite .28s !important;}
.active .idp-steam.s3{animation:idpCoffeeSteamBold 2.25s ease-in-out infinite .62s !important;}
.active.idp-effect--mug::before{animation:idpCoffeeSteamBold 2.4s ease-in-out infinite .18s !important;}
.active.idp-effect--mug::after{animation:idpCoffeeSteamBold 2.3s ease-in-out infinite .86s !important;}

@keyframes idpCoffeeSteamBold{
  0%{
    opacity:0;
    transform:translateY(12px) translateX(0) rotate(var(--idp-steam-rot,0deg)) scale(.74,.84);
  }
  16%{
    opacity:.92;
  }
  42%{
    opacity:.82;
    transform:translateY(-10px) translateX(var(--idp-steam-drift,0)) rotate(var(--idp-steam-rot,0deg)) scale(1.02,1.06);
  }
  74%{
    opacity:.34;
    transform:translateY(-34px) translateX(calc(var(--idp-steam-drift,0) * -1)) rotate(var(--idp-steam-rot,0deg)) scale(1.14,1.22);
  }
  100%{
    opacity:0;
    transform:translateY(-52px) translateX(0) rotate(var(--idp-steam-rot,0deg)) scale(1.24,1.34);
  }
}


/* Edge-safe visible fallback meter when Web Audio analysis is blocked. */
.idp-room-mp3.is-analyzer-blocked .idp-room-mp3__visualizer{
  opacity:.95;
}
.idp-room-mp3.is-analyzer-blocked .idp-room-mp3__visualizer i{
  opacity:.92;
  min-height:7px;
  filter:saturate(1.18) brightness(1.05);
}
.idp-room-mp3.is-playing-no-analyzer .idp-room-mp3__visualizer i{
  opacity:.96;
  animation:idpMp3EdgeFallbackMeter .72s ease-in-out infinite alternate !important;
}
.idp-room-mp3.is-playing-no-analyzer .idp-room-mp3__visualizer i:nth-child(2n){animation-delay:.06s!important;}
.idp-room-mp3.is-playing-no-analyzer .idp-room-mp3__visualizer i:nth-child(3n){animation-delay:.13s!important;}
.idp-room-mp3.is-playing-no-analyzer .idp-room-mp3__visualizer i:nth-child(4n){animation-delay:.20s!important;}
.idp-room-mp3.is-playing-no-analyzer .idp-room-mp3__visualizer i:nth-child(5n){animation-delay:.28s!important;}

@keyframes idpMp3EdgeFallbackMeter{
  0%{height:7px;transform:scaleY(.92);}
  40%{height:16px;}
  100%{height:28px;transform:scaleY(1.04);}
}


/* Headphone style restore, softer steam plumes, and corrected controller light markers. */
/* Restore headphone style without the old misaligned ear overlay. */
.idp-effect--headphones,
.idp-effect--headphones.active{
  opacity:1 !important;
  visibility:visible !important;
  left:8.67%;
  top:55.69%;
  width:15.85%;
  height:32.41%;
  background:none !important;
  box-shadow:none !important;
  border:0 !important;
  overflow:visible;
}
.idp-effect--headphones::before,
.idp-effect--headphones::after,
.idp-effect--headphones i{
  display:block !important;
}
.idp-effect--headphones::before{
  content:'';
  position:absolute;
  left:17%;
  top:4%;
  width:56%;
  height:36%;
  border:5px solid rgba(115,228,255,.72);
  border-bottom:0;
  border-radius:120px 120px 0 0;
  box-shadow:0 0 14px rgba(115,228,255,.24), 0 0 28px rgba(255,78,214,.14);
  opacity:0;
}
.idp-effect--headphones::after{
  content:'';
  position:absolute;
  left:22%;
  top:17%;
  width:44%;
  height:14%;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(100,233,255,.12), rgba(255,79,213,.35), rgba(100,233,255,.12));
  filter:blur(3px);
  opacity:0;
}
.idp-effect--headphones i{
  position:absolute;
  opacity:0;
}
.idp-effect--headphones i:nth-child(1){
  left:7%;
  top:40%;
  width:26%;
  height:36%;
  border-radius:46% 54% 50% 50%;
  background:radial-gradient(circle at 50% 45%, rgba(115,228,255,.72), rgba(73,138,255,.24) 46%, transparent 70%);
  box-shadow:0 0 12px rgba(115,228,255,.46), inset 0 0 10px rgba(255,255,255,.16);
}
.idp-effect--headphones i:nth-child(2){
  left:49%;
  top:28%;
  width:26%;
  height:36%;
  border-radius:50% 50% 54% 46%;
  background:radial-gradient(circle at 50% 45%, rgba(255,79,213,.70), rgba(128,76,255,.22) 46%, transparent 70%);
  box-shadow:0 0 12px rgba(255,79,213,.42), inset 0 0 10px rgba(255,255,255,.12);
}
.idp-effect--headphones i:nth-child(3){
  left:27%;
  top:54%;
  width:30%;
  height:16%;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(115,228,255,.15), rgba(255,255,255,.85), rgba(255,79,213,.15));
  filter:blur(1px);
  box-shadow:0 0 12px rgba(255,255,255,.12);
}
.active.idp-effect--headphones::before,
.active.idp-effect--headphones::after,
.active.idp-effect--headphones i{opacity:1 !important;}
.active.idp-effect--headphones::before{animation:idpHeadphonesPulse 1.9s ease-in-out infinite;}
.active.idp-effect--headphones::after{animation:idpHeadphonesShimmer 2.1s ease-in-out infinite;}
.active.idp-effect--headphones i:nth-child(1){animation:idpHeadphonesBeatLeft 1.25s ease-in-out infinite;}
.active.idp-effect--headphones i:nth-child(2){animation:idpHeadphonesBeatRight 1.25s ease-in-out infinite .18s;}
.active.idp-effect--headphones i:nth-child(3){animation:idpHeadphonesCenterGlow 1.4s ease-in-out infinite;}

/* Correct controller light positions to the user-marked spots, kept small/subtle. */
.idp-effect--controller,
.idp-effect--controller.active{
  background:none !important;
  transform:rotate(7deg) skewX(-10deg);
  box-shadow:none !important;
}
.idp-effect--controller::before,
.idp-effect--controller::after,
.idp-effect--controller i{
  position:absolute;
  display:block;
  border-radius:50%;
  opacity:0;
}
.idp-effect--controller::before{
  content:'';
  left:34.9%;
  top:40.1%;
  width:4.2%;
  height:7.1%;
  background:radial-gradient(circle, rgba(85,243,255,.98), rgba(85,243,255,.28) 52%, transparent 74%);
  box-shadow:0 0 7px rgba(85,243,255,.80), 0 0 14px rgba(85,243,255,.26);
}
.idp-effect--controller::after{
  content:'';
  left:66.9%;
  top:40.0%;
  width:4.2%;
  height:7.1%;
  background:radial-gradient(circle, rgba(255,83,214,.98), rgba(255,83,214,.28) 52%, transparent 74%);
  box-shadow:0 0 7px rgba(255,83,214,.76), 0 0 14px rgba(255,83,214,.24);
}
.idp-effect--controller i{width:3.6%; height:6.2%;}
.idp-effect--controller i:nth-child(1){left:69.8%;top:22.0%;background:radial-gradient(circle, rgba(255,212,77,.98), rgba(255,212,77,.30) 52%, transparent 74%);box-shadow:0 0 6px rgba(255,212,77,.76), 0 0 12px rgba(255,212,77,.22);}
.idp-effect--controller i:nth-child(2){left:67.0%;top:28.8%;background:radial-gradient(circle, rgba(100,243,255,.98), rgba(100,243,255,.28) 52%, transparent 74%);box-shadow:0 0 6px rgba(100,243,255,.76), 0 0 12px rgba(100,243,255,.22);}
.idp-effect--controller i:nth-child(3){left:72.4%;top:31.2%;background:radial-gradient(circle, rgba(146,255,104,.98), rgba(146,255,104,.28) 52%, transparent 74%);box-shadow:0 0 6px rgba(146,255,104,.74), 0 0 12px rgba(146,255,104,.22);}
.active.idp-effect--controller::before,
.active.idp-effect--controller::after,
.active.idp-effect--controller i{opacity:1;}
.active.idp-effect--controller::before{animation:idpControllerGlow 1.18s ease-in-out infinite;}
.active.idp-effect--controller::after{animation:idpControllerGlow 1.18s ease-in-out infinite .16s;}
.active.idp-effect--controller i:nth-child(1){animation:idpControllerGlow 1.18s ease-in-out infinite .08s;}
.active.idp-effect--controller i:nth-child(2){animation:idpControllerGlow 1.18s ease-in-out infinite .26s;}
.active.idp-effect--controller i:nth-child(3){animation:idpControllerGlow 1.18s ease-in-out infinite .34s;}

/* Replace shooting-star steam with softer vertical steam/smoke wisps. */
.idp-effect--mug,
.idp-effect--mug.active{
  transform:none !important;
  z-index:66;
}
.idp-effect--mug .idp-mug-surface{
  transform:none !important;
  opacity:0;
}
.idp-effect--mug .idp-steam,
.idp-effect--mug::before,
.idp-effect--mug::after{
  z-index:4;
  border:0 !important;
  mix-blend-mode:screen;
  transform-origin:50% 100%;
}
.idp-effect--mug .idp-steam{
  bottom:74.5% !important;
  width:11.5% !important;
  height:66% !important;
  border-radius:999px;
  background:
    radial-gradient(ellipse at 50% 18%, rgba(255,255,255,.72), rgba(255,255,255,.38) 26%, rgba(200,236,255,.14) 48%, transparent 76%),
    linear-gradient(180deg, rgba(255,255,255,.54), rgba(220,245,255,.16) 46%, transparent 100%);
  box-shadow:0 0 8px rgba(255,255,255,.20), 0 0 18px rgba(120,227,255,.08);
  filter:blur(1.25px);
  opacity:0;
}
.idp-effect--mug .s1{left:15% !important; --steam-x:-2px;}
.idp-effect--mug .s2{left:32% !important; --steam-x:1px;}
.idp-effect--mug .s3{left:49% !important; --steam-x:-1px;}
.idp-effect--mug::before,
.idp-effect--mug::after{
  content:'';
  position:absolute;
  bottom:74.5% !important;
  width:11.5% !important;
  height:63% !important;
  border-radius:999px;
  background:
    radial-gradient(ellipse at 50% 18%, rgba(255,255,255,.60), rgba(255,255,255,.28) 26%, rgba(200,236,255,.10) 48%, transparent 76%),
    linear-gradient(180deg, rgba(255,255,255,.44), rgba(220,245,255,.12) 46%, transparent 100%);
  box-shadow:0 0 8px rgba(255,255,255,.14), 0 0 16px rgba(120,227,255,.06);
  filter:blur(1.35px);
  opacity:0;
}
.idp-effect--mug::before{left:64% !important; --steam-x:2px;}
.idp-effect--mug::after{left:78% !important; --steam-x:-2px;}
.active .idp-mug-surface{
  opacity:.92 !important;
  animation:coffeeSurfaceStill 2.2s ease-in-out infinite !important;
}
.active .idp-steam.s1{animation:idpSteamPlume 2.6s ease-in-out infinite !important;}
.active .idp-steam.s2{animation:idpSteamPlume 2.75s ease-in-out infinite .26s !important;}
.active .idp-steam.s3{animation:idpSteamPlume 2.65s ease-in-out infinite .58s !important;}
.active.idp-effect--mug::before{animation:idpSteamPlume 2.8s ease-in-out infinite .14s !important;}
.active.idp-effect--mug::after{animation:idpSteamPlume 2.7s ease-in-out infinite .82s !important;}

@keyframes idpHeadphonesPulse{
  0%,100%{filter:brightness(1); transform:translateY(0) scale(1);}
  50%{filter:brightness(1.2); transform:translateY(-1px) scale(1.02);}
}
@keyframes idpHeadphonesShimmer{
  0%,100%{opacity:.28; transform:translateX(-2px) scaleX(.96);}
  50%{opacity:.8; transform:translateX(2px) scaleX(1.03);}
}
@keyframes idpHeadphonesBeatLeft{
  0%,100%{transform:scale(1); filter:brightness(1);}
  50%{transform:scale(1.08); filter:brightness(1.28);}
}
@keyframes idpHeadphonesBeatRight{
  0%,100%{transform:scale(1); filter:brightness(1);}
  50%{transform:scale(1.08); filter:brightness(1.28);}
}
@keyframes idpHeadphonesCenterGlow{
  0%,100%{opacity:.36; transform:scaleX(.96);}
  50%{opacity:.88; transform:scaleX(1.04);}
}
@keyframes idpControllerGlow{
  0%,100%{filter:brightness(.95); transform:scale(1);}
  50%{filter:brightness(1.4); transform:scale(1.14);}
}
@keyframes idpSteamPlume{
  0%{opacity:0; transform:translateY(10px) translateX(0) scale(.82,.9);}
  18%{opacity:.62;}
  45%{opacity:.48; transform:translateY(-8px) translateX(var(--steam-x,0)) scale(1,1.08);}
  72%{opacity:.22; transform:translateY(-24px) translateX(calc(var(--steam-x,0) * -1)) scale(1.08,1.18);}
  100%{opacity:0; transform:translateY(-36px) translateX(0) scale(1.16,1.28);}
}


/* Keep arcade animation fully inside the user-marked screen bounds. */
.idp-effect--arcade,
.idp-effect--arcade.active{
  left:75.12% !important;
  top:25.19% !important;
  width:7.00% !important;
  height:8.61% !important;
  overflow:hidden !important;
  border-radius:6px !important;
  filter:drop-shadow(0 0 8px rgba(83,214,255,.18)) !important;
  transform:none !important;
  z-index:24;
}
.idp-effect--arcade .idp-arcade-marquee{display:none !important;}
.idp-effect--arcade .idp-arcade-screen{
  inset:0 !important;
  overflow:hidden !important;
  border-radius:6px !important;
  transform:none !important;
  background:radial-gradient(circle at 50% 72%, rgba(255,88,88,.14), transparent 16%), linear-gradient(180deg,#0a1d58,#030814 72%,#01030a) !important;
  box-shadow:inset 0 0 10px rgba(101,220,255,.18), 0 0 8px rgba(57,196,255,.12) !important;
}
.idp-effect--arcade .idp-score{
  left:9% !important;
  top:6% !important;
  font-size:clamp(4px,.48vw,7px) !important;
}
.idp-effect--arcade .idp-invaders{
  left:14% !important;
  top:24% !important;
  width:72% !important;
  height:28% !important;
  gap:5% !important;
}
.idp-effect--arcade .idp-invaders b{box-shadow:0 0 5px currentColor;}
.idp-effect--arcade .idp-ship{
  left:45% !important;
  bottom:9% !important;
  width:12% !important;
  height:10% !important;
}
.idp-effect--arcade .idp-laser{
  left:50.3% !important;
  bottom:19% !important;
  width:2.6% !important;
  height:26% !important;
  box-shadow:0 0 6px #ff315a !important;
}
.idp-effect--arcade .idp-explosion{
  left:46.2% !important;
  top:44% !important;
  width:10.5% !important;
  height:10.5% !important;
}
.idp-effect--arcade .idp-crt{
  inset:0 !important;
  opacity:.32 !important;
}


/* Precise guitar/controller/headphone cleanup only. */
/* Move guitar strings left by about 2px. */
.idp-effect--guitar::before{left:53.2% !important;}
.idp-effect--guitar::after{left:70.2% !important;}

/* Headphones: only keep the single circle marker. */
.idp-effect--headphones,
.idp-effect--headphones.active{
  background:none !important;
  box-shadow:none !important;
}
.idp-effect--headphones::before,
.idp-effect--headphones::after,
.idp-effect--headphones i:nth-child(1),
.idp-effect--headphones i:nth-child(2){
  display:none !important;
  opacity:0 !important;
  content:none !important;
}
.idp-effect--headphones i:nth-child(3){
  display:block !important;
  left:12.8% !important;
  top:67.2% !important;
  width:32.1% !important;
  height:32.8% !important;
  border-radius:50% !important;
  background:radial-gradient(circle, rgba(114,234,255,.80), rgba(110,118,255,.26) 52%, transparent 73%) !important;
  box-shadow:0 0 10px rgba(114,234,255,.55), 0 0 16px rgba(136,88,255,.28) !important;
}
.active.idp-effect--headphones i:nth-child(3){
  opacity:1 !important;
  animation:idpHeadphoneCirclePulse 1.1s ease-in-out infinite !important;
}

/* Controller: exact small marked spots only - 1 stick center + 4 face buttons. */
.idp-effect--controller,
.idp-effect--controller.active{
  background:none !important;
  box-shadow:none !important;
  transform:rotate(7deg) skewX(-10deg) !important;
}
.idp-effect--controller::before,
.idp-effect--controller::after,
.idp-effect--controller i{
  position:absolute;
  display:block !important;
  opacity:0;
  border-radius:50%;
}
/* right stick center */
.idp-effect--controller::before{
  content:'';
  left:37.5% !important;
  top:42.5% !important;
  width:5.0% !important;
  height:7.8% !important;
  background:radial-gradient(circle, rgba(255,89,221,.96), rgba(255,89,221,.34) 55%, transparent 74%) !important;
  box-shadow:0 0 6px rgba(255,89,221,.78), 0 0 12px rgba(255,89,221,.22) !important;
}
/* top-right face button */
.idp-effect--controller::after{
  content:'';
  left:57.4% !important;
  top:29.8% !important;
  width:4.3% !important;
  height:6.8% !important;
  background:radial-gradient(circle, rgba(255,96,126,.98), rgba(255,96,126,.34) 55%, transparent 74%) !important;
  box-shadow:0 0 6px rgba(255,96,126,.76), 0 0 10px rgba(255,96,126,.20) !important;
}
/* remaining 3 face buttons */
.idp-effect--controller i{width:4.3% !important;height:6.8% !important;}
.idp-effect--controller i:nth-child(1){left:51.1% !important;top:27.6% !important;background:radial-gradient(circle, rgba(255,96,126,.98), rgba(255,96,126,.34) 55%, transparent 74%) !important;box-shadow:0 0 6px rgba(255,96,126,.76), 0 0 10px rgba(255,96,126,.20) !important;}
.idp-effect--controller i:nth-child(2){left:61.8% !important;top:34.5% !important;background:radial-gradient(circle, rgba(255,96,126,.98), rgba(255,96,126,.34) 55%, transparent 74%) !important;box-shadow:0 0 6px rgba(255,96,126,.76), 0 0 10px rgba(255,96,126,.20) !important;}
.idp-effect--controller i:nth-child(3){left:55.3% !important;top:38.2% !important;background:radial-gradient(circle, rgba(255,96,126,.98), rgba(255,96,126,.34) 55%, transparent 74%) !important;box-shadow:0 0 6px rgba(255,96,126,.76), 0 0 10px rgba(255,96,126,.20) !important;}
.active.idp-effect--controller::before,
.active.idp-effect--controller::after,
.active.idp-effect--controller i{opacity:1 !important;}
.active.idp-effect--controller::before{animation:idpControllerExactGlow 1.2s ease-in-out infinite !important;}
.active.idp-effect--controller::after{animation:idpControllerExactGlow 1.2s ease-in-out infinite .08s !important;}
.active.idp-effect--controller i:nth-child(1){animation:idpControllerExactGlow 1.2s ease-in-out infinite .16s !important;}
.active.idp-effect--controller i:nth-child(2){animation:idpControllerExactGlow 1.2s ease-in-out infinite .24s !important;}
.active.idp-effect--controller i:nth-child(3){animation:idpControllerExactGlow 1.2s ease-in-out infinite .32s !important;}

@keyframes idpHeadphoneCirclePulse{
  0%,100%{transform:scale(1); filter:brightness(1);}
  50%{transform:scale(1.07); filter:brightness(1.22);}
}
@keyframes idpControllerExactGlow{
  0%,100%{transform:scale(1); filter:brightness(1);}
  50%{transform:scale(1.08); filter:brightness(1.24);}
}


/* v1.5.42: remove window shooting star and tighten controller markers to exact red spots. */
/* Window: no shooting star. */
.idp-effect--window .shooting-star,
.idp-effect--window.active .shooting-star{
  display:none !important;
  opacity:0 !important;
  animation:none !important;
}

/* Controller: exact marked spots only, corrected again. */
.idp-effect--controller,
.idp-effect--controller.active{
  background:none !important;
  box-shadow:none !important;
  transform:rotate(7deg) skewX(-10deg) !important;
}
.idp-effect--controller::before,
.idp-effect--controller::after,
.idp-effect--controller i{
  opacity:0;
  display:block !important;
  border-radius:50%;
}
/* right stick center */
.idp-effect--controller::before{
  content:'';
  left:54.3% !important;
  top:30.2% !important;
  width:4.6% !important;
  height:7.0% !important;
  background:radial-gradient(circle, rgba(255,96,126,.96), rgba(255,96,126,.34) 56%, transparent 74%) !important;
  box-shadow:0 0 6px rgba(255,96,126,.72), 0 0 10px rgba(255,96,126,.20) !important;
}
/* face buttons */
.idp-effect--controller::after{
  content:'';
  left:72.5% !important;
  top:5.0% !important;
  width:4.1% !important;
  height:6.3% !important;
  background:radial-gradient(circle, rgba(255,96,126,.96), rgba(255,96,126,.34) 56%, transparent 74%) !important;
  box-shadow:0 0 6px rgba(255,96,126,.72), 0 0 10px rgba(255,96,126,.20) !important;
}
.idp-effect--controller i{width:4.1% !important;height:6.3% !important;background:radial-gradient(circle, rgba(255,96,126,.96), rgba(255,96,126,.34) 56%, transparent 74%) !important;box-shadow:0 0 6px rgba(255,96,126,.72), 0 0 10px rgba(255,96,126,.20) !important;}
.idp-effect--controller i:nth-child(1){left:69.8% !important;top:10.6% !important;}
.idp-effect--controller i:nth-child(2){left:76.0% !important;top:13.7% !important;}
.idp-effect--controller i:nth-child(3){left:71.8% !important;top:17.1% !important;}
.active.idp-effect--controller::before,
.active.idp-effect--controller::after,
.active.idp-effect--controller i{opacity:1 !important;}
.active.idp-effect--controller::before{animation:idpControllerExactGlow 1.15s ease-in-out infinite !important;}
.active.idp-effect--controller::after{animation:idpControllerExactGlow 1.15s ease-in-out infinite .08s !important;}
.active.idp-effect--controller i:nth-child(1){animation:idpControllerExactGlow 1.15s ease-in-out infinite .16s !important;}
.active.idp-effect--controller i:nth-child(2){animation:idpControllerExactGlow 1.15s ease-in-out infinite .24s !important;}
.active.idp-effect--controller i:nth-child(3){animation:idpControllerExactGlow 1.15s ease-in-out infinite .32s !important;}


/* v1.5.43: new transparent tablet background + default tablet graphic fallback.
   The tablet image sits behind the transparent hole so the base scene masks it cleanly. */
.idp-neon-room__base{
  position:relative!important;
  z-index:10!important;
}
.idp-neon-room__frame:after{
  z-index:18!important;
}
.idp-tablet-center-graphic{
  position:absolute!important;
  left:43.42%!important;
  top:35.17%!important;
  width:9.81%!important;
  height:19.66%!important;
  z-index:3!important;
  object-fit:cover!important;
  object-position:center center!important;
  border-radius:50%!important;
  clip-path:ellipse(50% 50% at 50% 50%)!important;
  pointer-events:none!important;
  mix-blend-mode:normal!important;
  filter:none!important;
  opacity:1!important;
  transform:none!important;
}
@media (max-width:700px){
  .idp-tablet-center-graphic{
    left:43.42%!important;
    top:35.17%!important;
    width:9.81%!important;
    height:19.66%!important;
  }
}

/* v1.5.49: controller marker correction. No perspective skew. Mark both joysticks plus the face buttons. */
.idp-effect--controller,
.idp-effect--controller.active{
  left:13.2% !important;
  top:76.2% !important;
  width:29.8% !important;
  height:20.2% !important;
  background:none !important;
  box-shadow:none !important;
  transform:none !important;
  transform-origin:center !important;
  pointer-events:none !important;
}
.idp-effect--controller::before,
.idp-effect--controller::after,
.idp-effect--controller i{
  position:absolute !important;
  display:block !important;
  opacity:0 !important;
  border-radius:50% !important;
  transform:none !important;
  filter:none !important;
}
/* left joystick */
.idp-effect--controller::before{
  content:'' !important;
  left:31.2% !important;
  top:33.8% !important;
  width:10.2% !important;
  height:20.8% !important;
  background:radial-gradient(circle, rgba(95,218,255,.90), rgba(95,218,255,.30) 46%, transparent 72%) !important;
  box-shadow:0 0 7px rgba(95,218,255,.70), 0 0 14px rgba(95,218,255,.24) !important;
}
/* right joystick */
.idp-effect--controller::after{
  content:'' !important;
  left:64.3% !important;
  top:42.8% !important;
  width:10.0% !important;
  height:20.6% !important;
  background:radial-gradient(circle, rgba(255,83,220,.90), rgba(255,83,220,.30) 46%, transparent 72%) !important;
  box-shadow:0 0 7px rgba(255,83,220,.70), 0 0 14px rgba(255,83,220,.24) !important;
}
/* face buttons: top, left, right, bottom */
.idp-effect--controller i:nth-child(1),
.idp-effect--controller i:nth-child(2),
.idp-effect--controller i:nth-child(3),
.idp-effect--controller i:nth-child(4){
  width:3.2% !important;
  height:8.2% !important;
  background:radial-gradient(circle, rgba(255,105,136,.98), rgba(255,105,136,.38) 54%, transparent 76%) !important;
  box-shadow:0 0 5px rgba(255,105,136,.78), 0 0 9px rgba(255,105,136,.22) !important;
}
.idp-effect--controller i:nth-child(1){left:73.8% !important;top:20.4% !important;}
.idp-effect--controller i:nth-child(2){left:70.6% !important;top:28.7% !important;}
.idp-effect--controller i:nth-child(3){left:77.9% !important;top:28.6% !important;}
.idp-effect--controller i:nth-child(4){left:74.6% !important;top:36.6% !important;}
/* D-pad / small center control indicators, kept subtle so the controller does not look messy. */
.idp-effect--controller i:nth-child(5){
  left:44.4% !important;
  top:51.4% !important;
  width:9.0% !important;
  height:12.8% !important;
  border-radius:22% !important;
  background:radial-gradient(ellipse, rgba(117,255,177,.58), rgba(117,255,177,.18) 50%, transparent 75%) !important;
  box-shadow:0 0 5px rgba(117,255,177,.44), 0 0 9px rgba(117,255,177,.14) !important;
}
.idp-effect--controller i:nth-child(6){
  left:51.4% !important;
  top:23.2% !important;
  width:4.6% !important;
  height:5.4% !important;
  border-radius:999px !important;
  background:radial-gradient(circle, rgba(255,213,91,.78), rgba(255,213,91,.22) 54%, transparent 76%) !important;
  box-shadow:0 0 4px rgba(255,213,91,.52), 0 0 8px rgba(255,213,91,.16) !important;
}
.active.idp-effect--controller::before,
.active.idp-effect--controller::after,
.active.idp-effect--controller i{
  opacity:1 !important;
}
.active.idp-effect--controller::before{animation:idpControllerExactGlow 1.15s ease-in-out infinite !important;}
.active.idp-effect--controller::after{animation:idpControllerExactGlow 1.15s ease-in-out infinite .09s !important;}
.active.idp-effect--controller i:nth-child(1){animation:idpControllerExactGlow 1.15s ease-in-out infinite .16s !important;}
.active.idp-effect--controller i:nth-child(2){animation:idpControllerExactGlow 1.15s ease-in-out infinite .23s !important;}
.active.idp-effect--controller i:nth-child(3){animation:idpControllerExactGlow 1.15s ease-in-out infinite .30s !important;}
.active.idp-effect--controller i:nth-child(4){animation:idpControllerExactGlow 1.15s ease-in-out infinite .37s !important;}
.active.idp-effect--controller i:nth-child(5){animation:idpControllerExactGlow 1.25s ease-in-out infinite .44s !important;}
.active.idp-effect--controller i:nth-child(6){animation:idpControllerExactGlow 1.25s ease-in-out infinite .51s !important;}

/* v1.5.50: controller lights locked to uploaded reference. Only joysticks + face buttons, no extra center/D-pad clutter. */
.idp-effect--controller,
.idp-effect--controller.active{
  left:0 !important;
  top:0 !important;
  width:100% !important;
  height:100% !important;
  background:none !important;
  box-shadow:none !important;
  pointer-events:none !important;
  transform:none !important;
  transform-origin:center !important;
  z-index:8 !important;
}
.idp-effect--controller::before,
.idp-effect--controller::after,
.idp-effect--controller i{
  position:absolute !important;
  display:block !important;
  opacity:0 !important;
  border-radius:999px !important;
  pointer-events:none !important;
  transform:translate(-50%, -50%) !important;
  mix-blend-mode:screen !important;
  filter:none !important;
}
/* left joystick: uploaded reference center x400/y797 */
.idp-effect--controller::before{
  content:'' !important;
  left:23.96% !important;
  top:84.64% !important;
  width:2.65% !important;
  height:3.15% !important;
  background:radial-gradient(ellipse at center, rgba(255,57,72,.96), rgba(255,40,58,.48) 48%, rgba(255,40,58,.14) 68%, transparent 82%) !important;
  box-shadow:0 0 7px rgba(255,52,70,.75), 0 0 14px rgba(255,52,70,.26) !important;
}
/* right joystick: uploaded reference center x559/y798 */
.idp-effect--controller::after{
  content:'' !important;
  left:33.40% !important;
  top:84.81% !important;
  width:2.65% !important;
  height:3.15% !important;
  background:radial-gradient(ellipse at center, rgba(255,57,72,.96), rgba(255,40,58,.48) 48%, rgba(255,40,58,.14) 68%, transparent 82%) !important;
  box-shadow:0 0 7px rgba(255,52,70,.75), 0 0 14px rgba(255,52,70,.26) !important;
}
/* four face buttons: uploaded reference centers */
.idp-effect--controller i:nth-child(1),
.idp-effect--controller i:nth-child(2),
.idp-effect--controller i:nth-child(3),
.idp-effect--controller i:nth-child(4){
  width:1.45% !important;
  height:2.05% !important;
  background:radial-gradient(ellipse at center, rgba(255,65,82,.98), rgba(255,47,67,.50) 52%, rgba(255,47,67,.16) 72%, transparent 84%) !important;
  box-shadow:0 0 5px rgba(255,56,76,.75), 0 0 10px rgba(255,56,76,.22) !important;
}
.idp-effect--controller i:nth-child(1){left:33.25% !important;top:81.19% !important;}
.idp-effect--controller i:nth-child(2){left:32.78% !important;top:82.89% !important;}
.idp-effect--controller i:nth-child(3){left:34.93% !important;top:82.68% !important;}
.idp-effect--controller i:nth-child(4){left:34.69% !important;top:84.06% !important;}
.idp-effect--controller i:nth-child(5),
.idp-effect--controller i:nth-child(6){display:none !important;}
.active.idp-effect--controller::before,
.active.idp-effect--controller::after,
.active.idp-effect--controller i:nth-child(1),
.active.idp-effect--controller i:nth-child(2),
.active.idp-effect--controller i:nth-child(3),
.active.idp-effect--controller i:nth-child(4){
  opacity:1 !important;
}
.active.idp-effect--controller::before{animation:idpControllerExactGlow 1.15s ease-in-out infinite !important;}
.active.idp-effect--controller::after{animation:idpControllerExactGlow 1.15s ease-in-out infinite .08s !important;}
.active.idp-effect--controller i:nth-child(1){animation:idpControllerExactGlow 1.15s ease-in-out infinite .16s !important;}
.active.idp-effect--controller i:nth-child(2){animation:idpControllerExactGlow 1.15s ease-in-out infinite .24s !important;}
.active.idp-effect--controller i:nth-child(3){animation:idpControllerExactGlow 1.15s ease-in-out infinite .32s !important;}
.active.idp-effect--controller i:nth-child(4){animation:idpControllerExactGlow 1.15s ease-in-out infinite .40s !important;}

/* v1.5.53: Theme-proof layout modes */
.idp-neon-room--full,
.idp-neon-room--screen{
  width:100vw !important;
  max-width:none !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  box-sizing:border-box;
}
.idp-neon-room--full .idp-neon-room__frame{
  width:100vw !important;
  max-width:none !important;
  border-radius:0;
}
.idp-neon-room--full .idp-neon-room__controls{
  max-width:100vw;
  padding-left:16px;
  padding-right:16px;
  box-sizing:border-box;
}
.idp-neon-room--screen{
  position:relative;
  height:100vh;
  height:100svh;
  min-height:520px;
  overflow:hidden;
  background:#0d0520;
  z-index:1;
}
.idp-neon-room--screen .idp-neon-room__frame{
  position:absolute;
  left:50%;
  top:50%;
  width:max(100vw, calc(100svh * 1672 / 941));
  height:max(100svh, calc(100vw * 941 / 1672));
  max-width:none !important;
  aspect-ratio:1672/941;
  transform:translate(-50%,-50%);
  border-radius:0;
  box-shadow:none;
}
.idp-neon-room--screen .idp-neon-room__controls{
  position:absolute;
  left:50%;
  bottom:16px;
  z-index:120;
  transform:translateX(-50%);
  width:min(100vw - 24px, 760px);
  margin:0;
  padding:8px 10px;
  border-radius:999px;
  background:rgba(5,3,18,.52);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 12px 32px rgba(0,0,0,.32), inset 0 0 20px rgba(97,217,255,.06);
  backdrop-filter:blur(7px);
}
.idp-neon-room--screen[data-show-controls="0"] .idp-neon-room__controls{
  display:none;
}
.idp-neon-room--screen .idp-control{
  padding:8px 13px;
  font-size:13px;
}
.idp-neon-room--screen .idp-room-mp3{
  z-index:110;
}
@supports not (width:max(1px,2px)){
  .idp-neon-room--screen .idp-neon-room__frame{
    width:100vw;
    height:auto;
  }
}
@media (max-width:700px){
  .idp-neon-room--screen{
    min-height:420px;
  }
  .idp-neon-room--screen .idp-neon-room__controls{
    bottom:10px;
    border-radius:18px;
    gap:6px;
    width:calc(100vw - 16px);
  }
  .idp-neon-room--screen .idp-control{
    padding:7px 9px;
    font-size:12px;
  }
}


/* v1.5.55: keep labels close and consistent. These values place label edges about 20px from the visible marker dot edge, not from the wider click target. */
.idp-hotspot__label{
  left:calc(100% + 2px) !important;
}
.hs-lava .idp-hotspot__label,
.hs-mug .idp-hotspot__label,
.hs-window .idp-hotspot__label,
.hs-handheld .idp-hotspot__label{
  left:auto !important;
  right:calc(100% + 2px) !important;
}

/* v1.5.56: Full screen takeover mode. Covers sticky headers, menu overlays, theme chrome, and the WP admin bar. */
html.idp-neon-room-takeover-active,
body.idp-neon-room-takeover-active{
  width:100vw !important;
  height:100vh !important;
  height:100svh !important;
  margin:0 !important;
  overflow:hidden !important;
  overscroll-behavior:none !important;
}
body.idp-neon-room-takeover-active #wpadminbar,
body.idp-neon-room-takeover-active header.site-header,
body.idp-neon-room-takeover-active .site-header,
body.idp-neon-room-takeover-active #masthead,
body.idp-neon-room-takeover-active .elementor-location-header,
body.idp-neon-room-takeover-active .wp-site-blocks > header,
body.idp-neon-room-takeover-active .main-navigation,
body.idp-neon-room-takeover-active .primary-navigation,
body.idp-neon-room-takeover-active .sticky-header,
body.idp-neon-room-takeover-active .is-position-sticky{
  display:none !important;
}
.idp-neon-room--takeover{
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  height:100vh !important;
  height:100svh !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  background:#0d0520 !important;
  overflow:hidden !important;
  z-index:2147483000 !important;
  box-sizing:border-box !important;
  isolation:isolate !important;
}
.idp-neon-room--takeover .idp-neon-room__frame{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  width:max(100vw, calc(100svh * 1672 / 941)) !important;
  height:max(100svh, calc(100vw * 941 / 1672)) !important;
  max-width:none !important;
  aspect-ratio:1672/941 !important;
  transform:translate(-50%,-50%) !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
.idp-neon-room--takeover .idp-neon-room__controls{
  position:absolute !important;
  left:50% !important;
  bottom:16px !important;
  z-index:2147483001 !important;
  transform:translateX(-50%) !important;
  width:min(calc(100vw - 24px), 760px) !important;
  margin:0 !important;
  padding:8px 10px !important;
  border-radius:999px !important;
  background:rgba(5,3,18,.52) !important;
  border:1px solid rgba(255,255,255,.14) !important;
  box-shadow:0 12px 32px rgba(0,0,0,.32), inset 0 0 20px rgba(97,217,255,.06) !important;
  backdrop-filter:blur(7px) !important;
}
.idp-neon-room--takeover[data-show-controls="0"] .idp-neon-room__controls{
  display:none !important;
}
.idp-neon-room--takeover .idp-control{
  padding:8px 13px !important;
  font-size:13px !important;
}
.idp-neon-room--takeover .idp-room-mp3{
  z-index:2147483001 !important;
}
@supports not (width:max(1px,2px)){
  .idp-neon-room--takeover .idp-neon-room__frame{
    width:100vw !important;
    height:auto !important;
  }
}
@media (max-width:700px){
  .idp-neon-room--takeover .idp-neon-room__controls{
    bottom:10px !important;
    border-radius:18px !important;
    gap:6px !important;
    width:calc(100vw - 16px) !important;
  }
  .idp-neon-room--takeover .idp-control{
    padding:7px 9px !important;
    font-size:12px !important;
  }
}


/* v1.5.57: Mini Game handheld overlay locked to the actual screen glass.
   The overlay now uses a tight polygon instead of rotating the whole effect box, so it stays inside the red-marked screen area. */
.idp-effect--handheld,
.idp-effect--handheld.active{
  left:65.61% !important;
  top:82.15% !important;
  width:5.62% !important;
  height:6.06% !important;
  overflow:hidden !important;
  border-radius:0 !important;
  clip-path:polygon(16% 0%, 98% 17%, 88% 100%, 0% 76%) !important;
  transform:none !important;
  transform-origin:center !important;
  background:transparent !important;
  box-shadow:none !important;
  filter:drop-shadow(0 0 6px rgba(108,246,255,.16)) !important;
  z-index:26 !important;
}
.idp-effect--handheld .idp-handheld-screen{
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  border-radius:0 !important;
  clip-path:inherit !important;
  overflow:hidden !important;
  background:linear-gradient(180deg, rgba(53,16,98,.92), rgba(26,15,65,.92) 54%, rgba(9,14,36,.94)) !important;
  box-shadow:inset 0 0 7px rgba(255,255,255,.08) !important;
}
.idp-effect--handheld .idp-handheld-screen::before{
  inset:0 !important;
  opacity:.22 !important;
}
.idp-effect--handheld .idp-handheld-character{
  left:36% !important;
  top:30% !important;
  width:25% !important;
  height:38% !important;
}
.idp-effect--handheld .idp-handheld-star{
  width:5% !important;
  height:5% !important;
}
.idp-effect--handheld .hs1{left:22% !important;top:23% !important;}
.idp-effect--handheld .hs2{left:73% !important;top:29% !important;}
.idp-effect--handheld .hs3{left:66% !important;top:61% !important;}

/* v1.5.60: unpaid/free branding CTA beside the bottom scene controls. */
.idp-neon-room__brand-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px solid rgba(255,255,255,.18);
  background:linear-gradient(180deg,rgba(255,78,219,.28),rgba(90,38,180,.74));
  color:#fff;
  border-radius:999px;
  padding:10px 16px;
  font-size:14px;
  font-weight:800;
  line-height:1;
  letter-spacing:.015em;
  text-decoration:none !important;
  cursor:pointer;
  white-space:nowrap;
  box-shadow:0 8px 22px rgba(255,78,219,.20), inset 0 0 0 1px rgba(255,255,255,.06);
}
.idp-neon-room__brand-cta::before{
  content:'↗';
  display:inline-block;
  font-size:.92em;
  line-height:1;
  opacity:.9;
}
.idp-neon-room__brand-cta:hover,
.idp-neon-room__brand-cta:focus-visible{
  color:#fff;
  text-decoration:none !important;
  box-shadow:0 8px 24px rgba(116,232,255,.24),0 0 20px rgba(255,78,219,.18), inset 0 0 0 1px rgba(255,255,255,.10);
  outline:none;
}
.idp-neon-room--screen .idp-neon-room__controls{
  width:min(100vw - 24px, 900px);
}
.idp-neon-room--screen .idp-neon-room__brand-cta{
  padding:8px 13px;
  font-size:13px;
}
.idp-neon-room--takeover .idp-neon-room__controls{
  width:min(calc(100vw - 24px), 900px) !important;
}
.idp-neon-room--takeover .idp-neon-room__brand-cta{
  padding:8px 13px !important;
  font-size:13px !important;
}
@media (max-width:700px){
  .idp-neon-room__brand-cta{
    padding:8px 12px;
    font-size:13px;
  }
  .idp-neon-room--screen .idp-neon-room__brand-cta,
  .idp-neon-room--takeover .idp-neon-room__brand-cta{
    padding:7px 9px !important;
    font-size:12px !important;
  }
}

/* v1.5.61: visitor-facing background picker. Preset-only so user selections stay alignment-safe. */
.idp-neon-room{
  position:relative;
}
.idp-control--room.is-active{
  box-shadow:0 8px 24px rgba(116,232,255,.24),0 0 18px rgba(255,78,219,.16),inset 0 0 0 1px rgba(255,255,255,.10);
}
.idp-neon-room__bg-picker{
  position:absolute;
  right:16px;
  bottom:64px;
  z-index:140;
  width:min(360px, calc(100vw - 28px));
  color:#fff;
}
.idp-neon-room__bg-picker[hidden]{
  display:none !important;
}
.idp-bg-picker__panel{
  border:1px solid rgba(255,255,255,.16);
  border-radius:18px;
  background:rgba(8,5,28,.88);
  box-shadow:0 18px 44px rgba(0,0,0,.42), inset 0 0 28px rgba(107,223,255,.07);
  backdrop-filter:blur(10px);
  padding:12px;
}
.idp-bg-picker__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
  font-size:14px;
  line-height:1.2;
}
.idp-bg-picker__close{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:#fff;
  font-size:20px;
  line-height:1;
  cursor:pointer;
}
.idp-bg-picker__grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}
.idp-bg-swatch{
  display:block;
  width:100%;
  border:1px solid rgba(255,255,255,.14);
  border-radius:13px;
  background:rgba(255,255,255,.055);
  color:#fff;
  padding:6px;
  text-align:left;
  cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.idp-bg-swatch img{
  display:block;
  width:100%;
  aspect-ratio:1672/941;
  object-fit:cover;
  border-radius:9px;
  background:#10051f;
  pointer-events:none;
}
.idp-bg-swatch span{
  display:block;
  padding:6px 3px 2px;
  font-size:12px;
  line-height:1.15;
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.idp-bg-swatch:hover,
.idp-bg-swatch:focus-visible,
.idp-bg-swatch.is-active{
  border-color:rgba(123,226,255,.72);
  box-shadow:0 0 0 2px rgba(123,226,255,.14),0 8px 18px rgba(0,0,0,.24);
  outline:none;
}
.idp-bg-swatch.is-active span::before{
  content:'✓ ';
}
.idp-bg-picker__reset{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  margin-top:10px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:linear-gradient(180deg,#1f153e,#120c29);
  color:#fff;
  padding:9px 12px;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}
.idp-bg-picker__note{
  margin:8px 2px 0;
  color:rgba(255,255,255,.72);
  font-size:11px;
  line-height:1.35;
}
.idp-neon-room--screen .idp-neon-room__bg-picker{
  position:absolute;
  right:18px;
  bottom:78px;
  z-index:130;
}
.idp-neon-room--takeover .idp-neon-room__bg-picker{
  position:absolute !important;
  right:18px !important;
  bottom:78px !important;
  z-index:2147483002 !important;
}
@media (max-width:700px){
  .idp-neon-room__bg-picker,
  .idp-neon-room--screen .idp-neon-room__bg-picker,
  .idp-neon-room--takeover .idp-neon-room__bg-picker{
    left:8px !important;
    right:8px !important;
    bottom:74px !important;
    width:auto !important;
  }
  .idp-bg-picker__panel{
    border-radius:16px;
    padding:10px;
  }
  .idp-bg-picker__grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:7px;
  }
  .idp-bg-swatch span{
    font-size:11px;
  }
}

/* v1.5.62: persistent homepage escape link for full screen and takeover mode. */
.idp-neon-room__home-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px solid rgba(255,255,255,.18);
  background:linear-gradient(180deg,#1f153e,#120c29);
  color:#fff;
  border-radius:999px;
  padding:10px 16px;
  font-size:14px;
  font-weight:800;
  line-height:1;
  letter-spacing:.015em;
  text-decoration:none !important;
  cursor:pointer;
  white-space:nowrap;
  box-shadow:0 8px 20px rgba(0,0,0,.24), inset 0 0 0 1px rgba(255,255,255,.04);
}
.idp-neon-room__home-link::before{
  content:'⌂';
  display:inline-block;
  font-size:.95em;
  line-height:1;
  opacity:.92;
}
.idp-neon-room__home-link:hover,
.idp-neon-room__home-link:focus-visible{
  color:#fff;
  text-decoration:none !important;
  box-shadow:0 8px 24px rgba(116,232,255,.24),0 0 16px rgba(123,226,255,.16),inset 0 0 0 1px rgba(255,255,255,.10);
  outline:none;
}
.idp-neon-room--screen .idp-neon-room__home-link{
  padding:8px 13px;
  font-size:13px;
}
.idp-neon-room--takeover .idp-neon-room__home-link{
  padding:8px 13px !important;
  font-size:13px !important;
}
@media (max-width:700px){
  .idp-neon-room__home-link{
    padding:8px 12px;
    font-size:13px;
  }
  .idp-neon-room--screen .idp-neon-room__home-link,
  .idp-neon-room--takeover .idp-neon-room__home-link{
    padding:7px 9px !important;
    font-size:12px !important;
  }
}
