:root{
  color-scheme:dark;
  --acid:#e4cd3f;
  --paper:#f8f7f2;
  --ink:#171713;
  --red:#8f281d;
  --mono:'Courier New',monospace;
  --display:'Arial Narrow',Impact,sans-serif;
  --hand:'Marker Felt','Bradley Hand','Comic Sans MS',cursive
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#090a09}
body{font-family:var(--mono);overscroll-behavior:none;user-select:none;-webkit-user-select:none}
button{font:inherit;-webkit-tap-highlight-color:transparent}
.world{position:fixed;inset:0;overflow:hidden;background:#090a09;touch-action:none;isolation:isolate}
#panorama,.fallback-image{position:absolute;inset:0;width:100%;height:100%;display:block}
#fallback-panorama{position:absolute;z-index:1;inset:0;width:100%;height:100%;display:none;pointer-events:none}
#panorama{z-index:1;touch-action:none;cursor:grab;background:transparent}
#panorama.dragging{cursor:grabbing}
.fallback-image{z-index:0;background-repeat:repeat-x;background-position:center;background-size:100% 100%;pointer-events:none}
.world.ready .fallback-image{display:none}
.world.fallback #panorama{display:none}
.world.fallback .fallback-image{display:block}
.world.fallback.fallback-renderer-ready #fallback-panorama{display:block}
.world.fallback.fallback-renderer-ready .fallback-image{display:none}
.world.fallback.fallback-css-ready #fallback-panorama{display:none}
.world.fallback.fallback-css-ready .fallback-image{display:block}
.world.dragging{cursor:grabbing}
.hotspots{position:absolute;z-index:2;inset:0;pointer-events:none;overflow:hidden}
.explore-hint{position:absolute;z-index:4;top:22px;left:50%;max-width:78vw;margin:0;padding:8px 12px;border:1px solid rgba(255,246,204,.28);background:rgba(10,11,10,.48);color:rgba(255,249,227,.9);font:9px/1.25 var(--mono);letter-spacing:.12em;text-align:center;text-transform:uppercase;pointer-events:none;opacity:0;transform:translate(-50%,5px);backdrop-filter:blur(5px);animation:explore-hint-appear 7s 1s ease both}
.explore-hint.dismissed{animation:none;opacity:0;transition:opacity .22s ease}
@keyframes explore-hint-appear{0%,100%{opacity:0;transform:translate(-50%,5px)}12%,78%{opacity:1;transform:translate(-50%,0)}}
.hotspot{position:absolute;display:none;pointer-events:auto;transform:translate(-50%,-50%);padding:0;border:0;background:transparent;cursor:pointer;touch-action:manipulation;outline:none}
.hotspot:not(.sticker):not(.exit):after{content:"";position:absolute;inset:-10%;border:1px solid rgba(232,210,77,.85);border-radius:50%;opacity:0;transform:scale(.72);transition:opacity .2s,transform .2s;box-shadow:0 0 18px rgba(227,203,65,.3),inset 0 0 18px rgba(227,203,65,.16);pointer-events:none}
.hotspot:not(.sticker):not(.exit):hover:after,.hotspot:not(.sticker):not(.exit):focus-visible:after{opacity:1;transform:scale(1)}
.object-dot{position:absolute;left:50%;top:50%;width:14px;height:14px;transform:translate(-50%,-50%);border:1px solid rgba(247,225,100,.98);border-radius:50%;background:rgba(18,18,15,.48);box-shadow:0 0 18px rgba(238,211,75,.92),0 0 0 3px rgba(238,211,75,.18);transition:transform .2s,background .2s}
.hotspot:not(.sticker):not(.exit):hover .object-dot,.hotspot:not(.sticker):not(.exit):focus-visible .object-dot{transform:translate(-50%,-50%) scale(1.75);background:var(--acid)}
.hotspot.sticker{z-index:3;filter:drop-shadow(1px 7px 8px rgba(0,0,0,.62));transition:filter .2s}
.hotspot.sticker:hover,.hotspot.sticker:focus-visible{filter:drop-shadow(0 0 8px rgba(239,216,88,.8)) drop-shadow(2px 9px 10px rgba(0,0,0,.72))}
.hotspot.sticker img{display:block;width:100%;height:auto;pointer-events:none}
.hotspot.exit{display:grid;place-items:center;border:1px solid rgba(255,243,185,.83);border-radius:50%;color:#fff9dc;background:rgba(18,18,14,.24);box-shadow:0 0 0 5px rgba(246,223,121,.08),0 0 22px rgba(15,13,8,.36);backdrop-filter:blur(2px);transition:transform .2s,background .2s,box-shadow .2s}
.hotspot.exit:before{content:"";position:absolute;inset:-8px;border:1px solid rgba(255,239,164,.52);border-radius:50%;animation:waypoint 2.4s ease-out infinite}
.hotspot.exit:hover,.hotspot.exit:focus-visible{transform:translate(-50%,-50%) scale(1.12);background:rgba(131,37,26,.8);box-shadow:0 0 0 7px rgba(246,223,121,.12),0 0 28px rgba(15,13,8,.5)}
.hotspot.exit svg{width:52%;height:52%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@keyframes waypoint{0%{transform:scale(.88);opacity:.8}85%,100%{transform:scale(1.48);opacity:0}}
.found-inventory{position:absolute;z-index:4;left:17px;bottom:17px;max-width:min(270px,44vw);padding:8px 10px 9px;background:rgba(20,19,16,.56);border:1px solid rgba(246,237,209,.33);color:#f7f0d9;backdrop-filter:blur(6px);pointer-events:auto}
.inventory-title{display:block;margin-bottom:5px;font:8px/1.2 var(--mono);letter-spacing:.1em;text-transform:lowercase;opacity:.83}
.found-objects{display:flex;flex-wrap:wrap;gap:5px;max-width:248px}
.found-object{display:grid;place-items:center;width:34px;height:34px;padding:2px;border:1px solid rgba(247,239,218,.47);background:rgba(236,230,210,.86);cursor:pointer;transition:transform .16s,border-color .16s}
.found-object:hover,.found-object:focus-visible{transform:translateY(-2px) rotate(-2deg);border-color:var(--acid);outline:none}
.found-object img{display:block;width:100%;height:100%;object-fit:contain}
.found-object img[src$="realv-sticker.png"]{object-fit:contain}
.fullscreen{position:absolute;z-index:4;top:20px;right:21px;width:35px;height:35px;border:1px solid rgba(255,255,255,.47);border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(12,13,12,.22);opacity:.62;cursor:pointer;transition:opacity .2s,background .2s}
.fullscreen:hover,.fullscreen:focus-visible{opacity:1;background:rgba(12,13,12,.66)}
.fullscreen svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.walk-controls{position:absolute;z-index:4;left:auto;right:20px;bottom:20px;transform:none;display:flex;gap:11px;pointer-events:none}
.walk-button{width:46px;height:46px;border:1px solid rgba(255,255,255,.64);border-radius:50%;color:white;background:rgba(10,11,10,.42);display:grid;place-items:center;opacity:.78;cursor:pointer;transition:opacity .2s,background .2s,transform .2s;pointer-events:auto}
.walk-button:hover,.walk-button:focus-visible{opacity:1;background:rgba(10,11,10,.68);transform:scale(1.08)}
.walk-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.walk-button:disabled{display:none}
.transition{position:absolute;z-index:3;inset:0;width:100%;height:100%;display:block;opacity:0;pointer-events:none}
.transition.captured{opacity:1;transition:none}
.transition.captured.active{opacity:0;transition:opacity .9s cubic-bezier(.22,.61,.36,1)}

.discovery{position:fixed;inset:0;margin:auto;border:0;padding:0;width:min(520px,calc(100% - 32px));max-width:520px;max-height:min(84vh,780px);overflow:visible;background:transparent;color:var(--ink);filter:drop-shadow(0 24px 42px rgba(0,0,0,.52));user-select:text;-webkit-user-select:text}
.discovery[open]{display:block}
.discovery::backdrop{background:rgba(8,9,8,.42);backdrop-filter:blur(3px)}
.close-discovery{position:absolute;z-index:3;top:9px;right:17px;width:35px;height:35px;border:0;background:transparent;color:#342d25;font:29px/1 var(--hand);cursor:pointer}
.discovery-content{position:relative;max-height:min(84vh,780px);overflow:auto;padding:43px 48px 40px;background-color:#faf9f5;background-image:linear-gradient(116deg,transparent 17%,rgba(88,79,61,.055) 17.2%,transparent 18%),linear-gradient(67deg,transparent 42%,rgba(255,255,255,.8) 42.4%,transparent 43%),linear-gradient(151deg,transparent 70%,rgba(90,82,68,.045) 70.2%,transparent 70.8%),radial-gradient(ellipse at 22% 18%,rgba(255,255,255,.96),transparent 44%),radial-gradient(ellipse at 82% 76%,rgba(135,126,105,.08),transparent 52%);clip-path:polygon(1% 3%,8% 2%,15% 3%,23% 1%,31% 3%,39% 2%,47% 3%,55% 1%,63% 3%,71% 2%,79% 3%,87% 1%,94% 3%,99% 4%,98% 13%,100% 21%,98% 30%,99% 39%,97% 48%,100% 57%,98% 66%,99% 75%,97% 84%,99% 93%,92% 97%,83% 96%,74% 99%,65% 97%,56% 99%,47% 97%,38% 99%,29% 97%,20% 99%,11% 96%,2% 98%,3% 89%,1% 80%,3% 71%,1% 62%,2% 53%,0 44%,2% 35%,1% 26%,3% 17%);}
.discovery-content:before{content:"";position:absolute;z-index:0;top:0;left:51px;width:74px;height:18px;background:rgba(215,205,181,.55);transform:rotate(-4deg);pointer-events:none}
.discovery-content>*{position:relative;z-index:1}
.clue-index{font:16px/1.1 var(--hand);color:#73675c;display:flex;align-items:center;gap:8px;transform:rotate(-1deg)}
.clue-index:before{content:"";width:18px;height:1px;background:var(--red)}
.clue-title{font:700 clamp(32px,7vw,54px)/.98 var(--hand);letter-spacing:-.025em;margin:18px 0 14px;color:#181813;transform:rotate(-1deg)}
.clue-title em{font-style:normal;color:var(--red);text-decoration:underline;text-decoration-style:wavy;text-decoration-thickness:1px;text-underline-offset:4px}
.clue-copy{font:18px/1.35 var(--hand);color:#514e45;margin:0 0 13px;max-width:390px;transform:rotate(-.4deg)}
.clue-countdown{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding:10px 0;border-top:1px dashed #aaa38e;color:#6e695d;font:15px var(--hand)}
.clue-countdown strong{color:var(--red);font-weight:600;text-align:right}
.media-empty{position:relative;margin:10px 0 5px;color:#625b4c;font:16px/1.25 var(--hand)}
.media-player{display:block;width:100%;max-height:320px;margin:16px 0 4px;background:#171713}
.clue-action{display:inline-flex;align-items:center;gap:10px;margin-top:13px;padding:10px 14px;border:1px solid #34312b;background:#272520;color:#f7f5ef;font:16px/1 var(--hand);cursor:pointer;transform:rotate(-.7deg)}
.clue-action:hover{background:#443b31}
.clue-form{margin-top:16px}
.clue-form label{display:block;font:16px var(--hand);color:#5e5a50;margin-bottom:7px}
.clue-form textarea{display:block;width:100%;min-height:84px;resize:vertical;padding:11px 13px;background:rgba(255,255,255,.58);border:1px solid #cbc5b8;color:#171813;font:18px/1.35 var(--hand);outline-color:#897c25}
.clue-footnote{margin:9px 0 0!important;font:14px/1.15 var(--hand)!important;color:#827d70!important}
.form-confirmation{margin:10px 0 0;color:var(--red);font:italic 17px var(--hand)}
.record-button{margin-top:6px;background:var(--red);border-color:#5e1f19}
.record-button:hover{background:#621d17}
.record-button span{color:#ffbba7}
.share-recording{display:flex;background:transparent;color:#322f28}
.share-recording:hover{background:#e7e3da}
.download-audio{display:inline-block;margin-top:10px;color:var(--red);font:15px var(--hand);text-decoration:underline;cursor:pointer}
.voice-board{margin-top:17px;padding-top:9px;border-top:1px dashed #b2ac9e}
.voice-board h3{margin:0 0 5px;color:#3c3830;font:19px var(--hand);font-weight:600}
.voice-empty{margin:0;color:#756e62;font:15px/1.3 var(--hand)}
.voice-list{display:grid;gap:9px;margin-top:6px}
.voice-entry{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;color:#655e53;font:14px var(--hand)}
.voice-entry audio{width:100%;height:32px}
.sticker-reveal{width:min(450px,calc(100% - 32px));max-width:450px}
.sticker-reveal .discovery-content{min-height:220px;display:grid;place-items:center;padding:52px 48px 44px;background-color:#faf9f5;transform:rotate(-1deg)}
.sticker-reveal .discovery-content:before{top:0;left:50%;width:74px;height:18px;background:rgba(215,205,181,.55)}
.sticker-message{max-width:340px;margin:0;text-align:center;font:700 clamp(37px,8vw,58px)/.95 var(--hand);letter-spacing:-.025em;color:#a6241c;transform:rotate(-2deg)}
@media(max-width:650px){
  .explore-hint{top:61px;max-width:82vw;padding:8px 10px;font-size:8px}
  .fullscreen{top:12px;right:12px;width:40px;height:40px}
  .walk-controls{right:12px;bottom:12px;gap:8px}
  .walk-button{width:46px;height:46px}
  .found-inventory{left:10px;bottom:10px;max-width:min(190px,46vw);padding:6px 7px 7px}
  .inventory-title{font-size:7px;margin-bottom:4px}
  .found-objects{gap:4px;max-width:174px}
  .found-object{width:34px;height:34px}
  .discovery-content{padding:36px 28px 29px}
  .clue-title{font-size:42px}
  .sticker-reveal .discovery-content{min-height:205px;padding:45px 30px 39px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Estados de carga y señales de descubrimiento, sin convertir el recorrido en una landing. */
.world.is-loading .hotspots{pointer-events:none}
.scene-loading{position:absolute;z-index:6;left:50%;top:50%;display:flex;flex-direction:column;align-items:center;gap:12px;min-width:185px;padding:17px 22px;color:#fff7d8;background:rgba(14,15,14,.77);border:1px solid rgba(255,246,204,.28);font:11px/1.35 var(--mono);letter-spacing:.08em;text-align:center;transform:translate(-50%,-50%);backdrop-filter:blur(8px)}
.scene-loading[hidden]{display:none}
.loading-ring{width:25px;height:25px;border:1px solid rgba(246,232,156,.3);border-top-color:var(--acid);border-radius:50%;animation:loading-spin .8s linear infinite}
.scene-loading.has-error .loading-ring{animation:none;border-color:var(--red)}
.scene-loading button{padding:7px 12px;border:1px solid rgba(255,246,204,.45);color:#fff7d8;background:transparent;font:11px var(--mono);cursor:pointer}
@keyframes loading-spin{to{transform:rotate(360deg)}}
.discover-toast{position:absolute;z-index:5;left:50%;top:24px;padding:9px 15px;color:#221d14;background:#f5edda;border:1px solid rgba(44,38,25,.55);font:15px var(--hand);opacity:0;pointer-events:none;transform:translate(-50%,-8px) rotate(-1deg);transition:opacity .2s,transform .2s;box-shadow:2px 4px 12px rgba(0,0,0,.28)}
.discover-toast.visible{opacity:1;transform:translate(-50%,0) rotate(-1deg)}
.ambient-toggle{position:absolute;z-index:4;top:20px;right:66px;width:35px;height:35px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.42);border-radius:50%;color:#fff;background:rgba(12,13,12,.22);opacity:.7;cursor:pointer}
.ambient-toggle[hidden]{display:none}
.ambient-toggle:hover,.ambient-toggle[aria-pressed=true]{opacity:1;background:rgba(12,13,12,.7)}
.ambient-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.privacy-toggle{position:absolute;z-index:4;top:20px;right:110px;width:35px;height:35px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.42);border-radius:50%;color:#fff;background:rgba(12,13,12,.22);font:italic 16px Georgia,serif;opacity:.7;cursor:pointer}
.privacy-toggle:hover,.privacy-toggle[aria-expanded=true]{opacity:1;background:rgba(12,13,12,.7)}
.analytics-consent{position:absolute;z-index:7;top:20px;left:20px;width:min(320px,calc(100% - 40px));padding:13px 14px;background:#f8f4e8;color:#29261f;border:1px solid rgba(42,36,26,.42);box-shadow:0 8px 25px rgba(0,0,0,.28);transform:rotate(-.4deg)}
.analytics-consent[hidden]{display:none}
.analytics-consent p{margin:0 0 9px;font:15px/1.2 var(--hand)}
.analytics-consent div{display:flex;gap:8px}
.analytics-consent button{padding:6px 10px;border:1px solid #777064;color:#24221c;background:transparent;font:11px var(--mono);cursor:pointer}
.analytics-consent button:first-child{color:#fff;background:#39352c}
.hotspot.locked .object-dot{border-color:rgba(210,204,181,.9);box-shadow:0 0 14px rgba(230,226,212,.5),0 0 0 3px rgba(230,226,212,.12)}
.hotspot.phone{display:grid;place-items:center;filter:drop-shadow(1px 5px 6px rgba(0,0,0,.65));transition:transform .2s,filter .2s}
.hotspot.phone:hover,.hotspot.phone:focus-visible{transform:translate(-50%,-50%) rotate(-7deg) scale(1.12);filter:drop-shadow(0 0 10px rgba(230,213,132,.85)) drop-shadow(2px 6px 7px rgba(0,0,0,.7))}
.hotspot.street-screen{display:grid;place-items:center;filter:drop-shadow(0 6px 7px rgba(0,0,0,.72));transition:transform .2s,filter .2s}
.hotspot.street-screen:hover,.hotspot.street-screen:focus-visible{transform:translate(-50%,-50%) scale(1.12);filter:drop-shadow(0 0 10px rgba(230,213,132,.8)) drop-shadow(0 7px 8px rgba(0,0,0,.7))}
.street-screen-art{display:block;width:100%;height:100%;overflow:visible}
.screen-post,.screen-roof{fill:#292b28;stroke:#171816;stroke-width:2;stroke-linejoin:round}
.screen-frame{fill:#a7a395;stroke:#302f29;stroke-width:2}
.screen-glass{fill:#18292c;stroke:#d3c7a4;stroke-width:1.5}
.screen-scanline{fill:none;stroke:#d9d0b5;stroke-width:1;stroke-opacity:.46}
.screen-led{fill:#b52c24;filter:drop-shadow(0 0 2px #ed6250)}
.phone-art{display:block;width:100%;height:100%;overflow:visible}
.phone-art .phone-top,.phone-art .phone-bottom{fill:#b9bbb6;stroke:#282a28;stroke-width:2.2;stroke-linejoin:round}
.phone-art .phone-display{fill:#213b43;stroke:#333;stroke-width:1.3}
.phone-art .phone-hinge{fill:none;stroke:#272824;stroke-width:2.4;stroke-linecap:round}
.phone-art .phone-button{fill:#57574e;stroke:#ddd5bc;stroke-width:1}

.asset-reservation{position:relative;display:grid;place-items:center;gap:7px;overflow:hidden;margin:15px 0 8px;padding:18px;color:#eee8d5;background:#171a18;border:7px solid #c7c0af;box-shadow:inset 0 0 0 2px #716b60,4px 6px 0 rgba(36,32,27,.18);text-align:center}
.reservation-screen{min-height:200px;background:radial-gradient(ellipse at 50% 50%,rgba(173,37,39,.23),transparent 48%),repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0 1px,transparent 1px 4px),#111512}
.reservation-audio{min-height:112px;background:linear-gradient(135deg,#ded9ca,#a8a28f 55%,#ddd8cb);border-color:#bdb7a8;color:#36332c}
.reservation-mark{font:34px/1 var(--display);color:#d0b73d;text-shadow:0 0 16px rgba(223,198,79,.4)}
.reservation-audio .reservation-mark{color:#9b281d}
.reservation-label{font:10px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.reservation-index{position:absolute;right:8px;bottom:6px;color:rgba(240,232,213,.55);font:8px var(--mono);letter-spacing:.12em}
.media-empty{margin:8px 0;color:#625b4c;font:16px/1.3 var(--hand)}
.media-audio,.media-video{display:block;width:100%;margin:15px 0 8px}
.media-video{max-height:min(55vh,440px);background:#111;border:7px solid #c9c2b2;border-radius:12px;box-shadow:inset 0 0 0 2px #716b60,4px 6px 0 rgba(36,32,27,.18)}
.media-error{margin:8px 0;color:#8f281d;font:15px/1.3 var(--hand)}
.discovery[open] .discovery-content{animation:clue-arrives .38s cubic-bezier(.18,.7,.2,1) both}
@keyframes clue-arrives{from{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
.voice-consent{display:flex;align-items:flex-start;gap:9px;margin:13px 0;color:#514e45;font:14px/1.3 var(--hand)}
.voice-consent input{flex:0 0 auto;width:17px;height:17px;margin:1px 0 0;accent-color:#8f281d}
.record-meter{display:flex;align-items:center;gap:12px;margin:14px 0 5px;color:#514e45;font:13px var(--mono)}
.record-meter-track{position:relative;flex:1;height:8px;background:#d8d1c1;border:1px solid #aaa18e;overflow:hidden}
.record-meter-track i{display:block;width:0;height:100%;background:#99281f;transition:width .1s linear}
.record-button:disabled,.share-recording:disabled{opacity:.45;cursor:not-allowed}
.record-again,.discard-recording{background:transparent;color:#332f27}
.discard-recording{margin-left:5px}
.voice-empty,.voice-entry{font:14px/1.35 var(--hand)}

.sticker-flip{width:min(380px,100%);height:250px;margin:auto;perspective:1200px}
.sticker-flip-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform 1.05s cubic-bezier(.2,.7,.15,1)}
.sticker-flip.is-flipped .sticker-flip-inner{transform:rotateY(180deg)}
.sticker-side{position:absolute;inset:0;display:grid;place-items:center;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.sticker-front img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(2px 6px 7px rgba(0,0,0,.2))}
.sticker-back{display:flex;flex-direction:column;justify-content:center;gap:11px;padding:22px;background-color:#e5d13f;background-image:radial-gradient(circle at 12% 18%,rgba(255,255,255,.5) 0 1px,transparent 2px),linear-gradient(165deg,transparent 38%,rgba(134,35,23,.1) 38.4%,transparent 39%),linear-gradient(14deg,transparent 65%,rgba(30,27,23,.12) 65.3%,transparent 66%);border:5px dashed #9c271f;border-radius:46% 53% 49% 51%/51% 47% 53% 49%;box-shadow:inset 0 0 0 3px #e7e0c5;color:#8f201b;text-align:center;transform:rotateY(180deg)}
.sticker-back span{max-width:100%;font:900 clamp(25px,5vw,42px)/.88 var(--display);letter-spacing:-.07em;text-shadow:2px 2px 0 rgba(248,241,210,.6);transform:rotate(-5deg)}
.sticker-back small{font:8px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.sticker-reveal .discovery-content{display:grid;place-items:center;min-height:300px;padding:42px 38px;background-color:#f4f1e7}
.sticker-reveal .discovery-content:before{left:50%;}

.portal-mode{width:min(780px,calc(100% - 28px));max-width:780px;max-height:86vh}
.portal-mode::backdrop{background:rgba(2,3,10,.88);backdrop-filter:blur(6px)}
.portal-mode .close-discovery{color:#e7e3d5}
.portal-mode .discovery-content{display:grid;place-items:center;min-height:min(620px,78vh);padding:28px;background:#080b15;border:1px solid rgba(121,180,226,.3);border-radius:4px;clip-path:none;color:#e9e5d9;box-shadow:inset 0 0 55px rgba(49,94,147,.18)}
.portal-mode .discovery-content:before{display:none}
.portal-scene{position:relative;display:flex;min-height:50vh;width:100%;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse at center,rgba(46,77,142,.22),transparent 55%),radial-gradient(ellipse at 72% 30%,rgba(171,57,97,.12),transparent 38%),#080b15}
.portal-stars{position:absolute;inset:-20%;background-image:radial-gradient(1px 1px at 18% 25%,#fff 60%,transparent),radial-gradient(1px 1px at 72% 33%,#dceaff 60%,transparent),radial-gradient(2px 2px at 42% 70%,#f9d982 60%,transparent),radial-gradient(1px 1px at 82% 78%,#dceaff 60%,transparent),radial-gradient(1px 1px at 28% 86%,#fff 60%,transparent);background-size:180px 160px,240px 210px,220px 200px,270px 230px,200px 180px;animation:stars-drift 22s linear infinite;opacity:.68}
.portal-orbit{position:absolute;width:min(440px,74vw);aspect-ratio:1;border:1px solid rgba(104,163,212,.28);border-radius:50%;box-shadow:0 0 54px rgba(72,117,177,.2),inset 0 0 45px rgba(126,81,163,.1);animation:orbit-pulse 8s ease-in-out infinite}
.portal-orbit:before,.portal-orbit:after{content:"";position:absolute;inset:10%;border:1px solid rgba(190,119,161,.21);border-radius:50%;transform:rotateX(68deg) rotateZ(30deg)}
.portal-orbit:after{inset:23%;border-color:rgba(105,171,204,.22);transform:rotateX(72deg) rotateZ(-28deg)}
.portal-kicker,.portal-coordinate{position:relative;z-index:1;color:#aebad0;font:9px var(--mono);letter-spacing:.22em}
.portal-title{position:relative;z-index:1;margin:18px 0;color:#e5d7a5;font:900 clamp(62px,14vw,130px)/.82 var(--display);letter-spacing:-.08em;text-shadow:0 0 12px rgba(199,170,100,.3),0 0 55px rgba(78,128,184,.32);transform:skewY(-4deg)}
.portal-coordinate{color:#7f93ac}
.portal-backline{margin:12px 0 0;color:#abb3c1;text-align:center;font:14px var(--hand)}
.final-blackout{display:flex;min-height:150px;flex-direction:column;align-items:center;justify-content:center;gap:9px;margin:15px 0;padding:20px;color:#eee6cf;background:#050605;border:1px solid #42443e;text-align:center;animation:crt-off .8s steps(2,end) both}
.final-blackout[hidden]{display:none}
.final-blackout strong{color:#f5f0de;font:600 clamp(17px,3vw,27px)/1.2 var(--mono);letter-spacing:.12em;text-align:center;text-transform:uppercase}
@keyframes crt-off{0%{filter:brightness(2);transform:scaleY(.03)}45%{filter:brightness(1.3);transform:scaleY(1)}100%{filter:brightness(1);transform:scaleY(1)}}
@keyframes stars-drift{to{transform:translate3d(-2%,2%,0)}}
@keyframes orbit-pulse{50%{transform:scale(1.045) rotate(4deg);opacity:.82}}

@media(max-width:650px){
  .ambient-toggle{top:13px;right:60px;width:38px;height:38px}
  .privacy-toggle{top:13px;right:106px;width:38px;height:38px}
  .analytics-consent{top:12px;left:12px;width:min(300px,calc(100% - 90px));padding:10px}
  .analytics-consent p{font-size:13px}
  .scene-loading{min-width:165px;padding:14px 17px}
  .discover-toast{top:auto;bottom:82px;max-width:80vw;text-align:center}
  .asset-reservation{padding:13px}
  .reservation-screen{min-height:165px}
  .sticker-flip{height:210px}
  .portal-mode .discovery-content{padding:18px;min-height:75vh}
}
@media(prefers-reduced-motion:reduce){.explore-hint{animation:none;opacity:1}}

.media-only-mode{width:min(900px,calc(100% - 36px));max-width:900px;max-height:90vh;filter:none}
.media-only-mode::backdrop{background:rgba(3,4,4,.86);backdrop-filter:blur(5px)}
.media-only-mode .close-discovery{top:-42px;right:0;color:#fff;font:32px/1 var(--mono);text-shadow:0 1px 8px rgba(0,0,0,.8)}
.media-only-mode .discovery-content{display:grid;place-items:center;max-height:none;overflow:visible;padding:0;background:transparent;clip-path:none;box-shadow:none}
.media-only-mode .discovery-content:before{display:none}
.media-only-player,.media-pending{position:relative;display:grid;place-items:center;width:min(82vw,860px);aspect-ratio:16/9;overflow:hidden;background:#080909;border:1px solid rgba(235,225,190,.24);box-shadow:0 16px 54px rgba(0,0,0,.58),0 0 0 7px rgba(201,190,157,.08)}
.media-only-player[hidden]{display:none}
.media-only-player video{display:block;width:100%;height:100%;object-fit:contain;background:#050606;cursor:pointer}
.media-only-player audio{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.media-toggle{position:absolute;z-index:2;left:50%;top:50%;display:grid;place-items:center;width:64px;height:64px;padding:0;border:1px solid rgba(255,255,255,.76);border-radius:50%;background:rgba(7,8,8,.52);color:#fff;cursor:pointer;transform:translate(-50%,-50%);backdrop-filter:blur(5px);transition:background .18s,transform .18s,opacity .18s}
.media-toggle svg{width:26px;height:26px;fill:currentColor}
.media-toggle:disabled{cursor:default;opacity:.48}
.media-toggle:not(:disabled):hover,.media-toggle:focus-visible{background:rgba(143,40,29,.88);transform:translate(-50%,-50%) scale(1.08);outline:2px solid rgba(255,255,255,.7);outline-offset:4px}
.media-only-player.is-playing.video .media-toggle{opacity:0}
.media-only-player.is-playing.video:hover .media-toggle,.media-only-player.is-playing.video:focus-within .media-toggle{opacity:1}
.media-only-player.audio,.media-pending.audio{width:min(54vw,360px);aspect-ratio:1;border:0;border-radius:50%;background:transparent;box-shadow:none}
.media-only-player.audio:before,.media-pending.audio:before{content:"";position:absolute;inset:0;border:1px solid rgba(232,222,196,.5);border-radius:50%;background:repeating-radial-gradient(circle at center,rgba(255,255,255,.13) 0 1px,transparent 2px 7px),radial-gradient(circle at 36% 27%,rgba(255,255,255,.32),transparent 28%),#171716;box-shadow:0 12px 32px rgba(0,0,0,.52),inset 0 0 0 12px #292825,inset 0 0 0 13px rgba(255,255,255,.12)}
.media-only-player.demo:before,.media-pending.demo:before{background:repeating-radial-gradient(circle at center,rgba(255,255,255,.15) 0 1px,transparent 2px 7px),radial-gradient(circle at center,#a12d25 0 10%,#ded1a3 10.5% 22%,#20201e 22.5% 100%)}
.media-only-player.intro:before,.media-pending.intro:before{background:radial-gradient(circle at 50% 50%,#141413 0 3%,#e2d8b9 3.5% 10%,transparent 10.5%),conic-gradient(from 15deg,#c9c4b6,#696e72,#e7e1cf,#8f969b,#ded5be,#697076,#c9c4b6);box-shadow:0 12px 32px rgba(0,0,0,.52),inset 0 0 0 1px rgba(255,255,255,.55)}
.media-only-player.audio.is-playing:before{animation:record-spin 3s linear infinite}
.media-only-player.audio .media-toggle{width:58px;height:58px;border-color:rgba(255,255,255,.86);background:rgba(14,14,13,.72)}
.media-pending.video{background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 2px 5px),radial-gradient(ellipse at center,rgba(196,190,153,.09),transparent 40%),#070808}
.media-pending.audio{opacity:.84}
.media-only-player.has-error video{filter:brightness(.35)}
.media-only-player.has-error:after{content:"";position:absolute;inset:0;border:1px solid rgba(161,40,31,.65);pointer-events:none}
@keyframes record-spin{to{transform:rotate(360deg)}}
