/* The same box geometry powers markers, the detail card and the reveal. */
.game .discovery-panel{background:#171f35;color:#f1f2ff;border-color:#343e58}.game .panel-copy,.game .walk-meter p,.game .preview-note{color:#a7b1cd}.game .tag{color:#a99aff}.game .panel-collection{border-color:#35405a}.game .panel-collection span{color:#a7b1cd}.game .progress-track{background:#35405a}.game .progress-track>div{background:#a392ff}.game .box-preview-action{background:#303052;color:#e0d8ff;border-color:#514979}.game #map{background:#242741}.game #explore:after{background:linear-gradient(0deg,#151e4033,transparent 55%);box-shadow:inset 0 0 80px #10172b44}.drift-map-popup .maplibregl-popup-content{padding:0;background:#111b33;border:1px solid #7779b5;border-radius:20px;box-shadow:0 15px 55px #02061399;overflow:hidden}.drift-map-popup .maplibregl-popup-tip{border-top-color:#7779b5!important}.drift-map-popup .maplibregl-popup-close-button{color:white;z-index:10;font-size:22px;padding:5px 11px}.map-reward{width:260px;max-width:none;border-radius:18px;background:radial-gradient(ellipse at 50% 30%,#31417a,#111b33 75%)}.map-reward .reward-art{height:250px;min-height:250px}.map-reward .opening-box{bottom:20px;scale:.8}.map-reward .prize-emerge{width:120px;height:120px;top:3px;margin-left:-60px}.map-reward .prize-emerge svg{width:75px;height:75px}.map-reward .box-beam{height:185px;bottom:75px}.map-prize-result{text-align:center;padding:0 18px 17px;opacity:0;transition:opacity .4s}.map-reward[data-phase=revealed] .map-prize-result{opacity:1}.map-prize-result>span{font-size:8px;letter-spacing:1.5px;color:#c1b6ff}.map-prize-result h3{font-size:23px;margin:8px 0;color:#e4ff63}.map-prize-result p{font-size:9px;color:#c0c8db;margin-bottom:13px}.map-prize-result .button{min-height:36px;padding:9px 20px;font-size:11px}.opening-on-map .discovery-panel{opacity:.5;pointer-events:none}@media(max-width:700px){.opening-on-map .discovery-panel{visibility:hidden}.game .map-bottom{color:#e2e5f5}.map-reward .reward-art{height:250px;min-height:250px}}
.map-wonders{position:absolute;inset:0 350px 0 0;pointer-events:none;overflow:hidden;z-index:2}.map-wonders span{position:absolute;color:#fffbe8;text-shadow:0 0 12px #ad83ed;font-size:13px;animation:wonder-float 6s ease-in-out infinite;opacity:.6}@keyframes wonder-float{0%,100%{translate:0 5px;opacity:.2;scale:.65}50%{translate:3px -9px;opacity:.9;scale:1}}@media(max-width:700px){.map-wonders{right:0}}@media(prefers-reduced-motion:reduce){.map-wonders span{animation:none;opacity:.4}}
.box-preview-action{margin-top:10px;background:#e9e4ff;color:#4935b1;border:1px solid #cabdf4;font-size:11px!important;min-height:42px!important}.replay-box{color:#e4ff63;width:100%;margin-top:8px}.map-top .map-label{background:#fcfaffed;color:#51497a;border:1px solid #d5c9f0}#map{background:#b9c9ea}#explore:after{content:'';position:absolute;inset:0 350px 0 0;pointer-events:none;z-index:1;background:radial-gradient(ellipse at 10% 5%,#fff8e755,transparent 40%),linear-gradient(0deg,#b9a6ef20,transparent 35%);box-shadow:inset 0 0 100px #9b8fd326}.map-top,.map-controls,.map-bottom{z-index:3}.maplibregl-marker{z-index:2}.maplibregl-control-container{position:relative;z-index:3}.discovery-panel .capsule-scene{background:radial-gradient(ellipse at 50% 15%,#879dfb,#5347b7 70%,#2b347d)}@media(max-width:700px){#explore:after{right:0}.box-preview-action{margin-top:7px;min-height:38px!important;font-size:10px!important}.map-bottom{color:#343459}}
.drift-box{display:block;position:relative;width:132px;height:132px;filter:drop-shadow(0 14px 16px #050a4c66);perspective:650px;--lid-lift:0px}
.box-base{position:absolute;left:8px;right:8px;top:47px;height:76px;background:linear-gradient(120deg,#507aff 0%,#254dff 46%,#0c269b 100%);border:1px solid #8ca7ff;border-radius:7px 7px 16px 16px;box-shadow:inset 6px 0 12px #b4cbff20,inset -8px -8px 12px #060d632f;transform:skewY(-4deg);overflow:hidden}
.box-base:after{content:'';position:absolute;right:10px;top:13px;width:4px;height:39px;border:1px solid #99baff44;border-radius:3px}
.box-band{position:absolute;top:0;bottom:0;left:24px;width:22px;background:linear-gradient(90deg,#bcdb33,#e4ff63 55%,#bedb3b)}
.box-badge{position:absolute;top:25px;right:25px;font-size:33px;line-height:1;color:#e4ff63;text-shadow:0 2px 3px #14256d}
.box-lid{position:absolute;left:2px;right:2px;top:29px;height:30px;border-radius:7px 8px 4px 4px;background:linear-gradient(100deg,#7093ff,#305bf6 60%,#1835bd);border:1px solid #a8beff;transform:skewY(-4deg);z-index:3;box-shadow:0 5px 5px #03083388;transform-origin:50% 0}
.box-lid:before{content:'';position:absolute;left:0;right:0;top:-15px;height:20px;background:linear-gradient(140deg,#8cadff,#436efc 65%);border:1px solid #b3c7ff;transform:skewX(-24deg);transform-origin:bottom;border-radius:6px 7px 0 0}
.box-lid>span{position:absolute;left:29px;width:22px;top:0;bottom:0;background:#e4ff63}
.box-lid>span:before{content:'';position:absolute;left:3px;top:-15px;width:22px;height:15px;background:#edff9e;transform:skewX(-24deg)}
.box-lock{position:absolute;top:50px;left:33px;z-index:4;height:25px;width:25px;background:#f0ffa3;color:#162c95;border:2px solid #b8dc30;border-radius:6px;display:grid;place-items:center;font-size:17px;box-shadow:0 2px 5px #0b165c77}
.box-shadow{position:absolute;bottom:-5px;left:0;width:140px;height:19px;background:#02082577;filter:blur(8px);border-radius:50%}
.panel-box-button{background:none;border:0;padding:5px 30px;cursor:pointer;animation:box-hover 3.5s ease-in-out infinite}.panel-box-button:hover{filter:brightness(1.12)}
.box-pin{position:relative;border:0;background:transparent;padding:0;width:72px;height:85px;cursor:pointer;filter:drop-shadow(0 6px 9px #030b2899);display:grid;place-items:center}.box-pin .drift-box{scale:.5;position:absolute;top:-22px;left:-30px;transform-origin:center;pointer-events:none;animation:box-hover 3s ease-in-out infinite}.box-pin:after{content:'';position:absolute;bottom:1px;left:9px;width:48px;height:12px;border:2px solid #b6c7ff;border-radius:50%;background:#254dff44;box-shadow:0 0 15px #5275ff66}.box-pin.ready:after{border-color:#e4ff63;box-shadow:0 0 18px #e4ff6399}.box-pin .pin-caption{position:absolute;top:-12px;background:#fafaf6;color:#101728;border-radius:20px;padding:4px 8px;font-size:8px;white-space:nowrap;letter-spacing:.6px;font-weight:600}.box-pin.ready .pin-caption{background:#e4ff63}.box-pin:focus-visible{outline:3px solid #e4ff63;border-radius:16px}.box-pin .box-lock{background:#e4ff63}
.discovery-panel.box-ready .capsule-scene{box-shadow:inset 0 0 0 2px #e4ff63,0 0 18px #e4ff6322}.discovery-panel.box-ready .progress-track>div{background:#94be13}.discovery-panel.box-ready #main-action{box-shadow:0 0 0 4px #e4ff632d}.box-demo{font-size:11px;color:var(--blue);background:none;border:0;padding:13px 0;text-decoration:underline;text-underline-offset:4px}.collection-heading .box-demo{display:block;margin-top:12px}.small-capsule{border-radius:8px;rotate:-6deg}
.reward-dialog{isolation:isolate}.reward-dialog[open]{width:min(850px,calc(100% - 32px));min-height:510px;grid-template-columns:1.1fr 1fr;background:radial-gradient(ellipse at 20% 40%,#183b7b,#0b1429 60%)}
.reward-art{position:relative;min-height:510px;background:none!important;overflow:hidden}.opening-box{position:absolute;bottom:72px;left:50%;margin-left:-66px;z-index:4;scale:1.35}.opening-box .drift-box{animation:none}.reward-dialog[data-phase=charging] .opening-box{animation:box-charge .18s linear 4}.reward-dialog[data-phase=lifting] .box-lid,.reward-dialog[data-phase=revealed] .box-lid{transform:translate(-12px,-83px) rotate(-18deg) skewY(-4deg);transition:transform .65s cubic-bezier(.2,.7,.2,1)}.reward-dialog[data-phase=lifting] .box-lock,.reward-dialog[data-phase=revealed] .box-lock{opacity:0;transform:translateY(-30px);transition:.25s}
.box-beam{position:absolute;left:50%;bottom:130px;width:210px;height:320px;transform:translateX(-50%) scaleY(0);transform-origin:bottom;background:linear-gradient(0deg,#e4ff63aa,#90b8ff33 50%,transparent);clip-path:polygon(38% 100%,62% 100%,100% 0,0 0);filter:blur(8px);opacity:0;transition:.7s;z-index:1}.reward-dialog[data-phase=lifting] .box-beam,.reward-dialog[data-phase=revealed] .box-beam{transform:translateX(-50%) scaleY(1);opacity:.8}
.reward-rays{position:absolute;left:50%;top:35%;width:340px;height:340px;margin:-170px;border-radius:50%;background:repeating-conic-gradient(from 0deg,transparent 0deg 22deg,#96b5ff1a 22deg 30deg);opacity:0;animation:rays-spin 25s linear infinite}.reward-dialog[data-phase=revealed] .reward-rays{opacity:1;transition:opacity 1s}
.prize-emerge{position:absolute;width:180px;height:180px;left:50%;top:85px;margin-left:-90px;z-index:2;display:grid;place-items:center;color:var(--prize-color);opacity:0;transform:translateY(200px) scale(.2);filter:drop-shadow(0 0 25px var(--prize-color));transition:transform 1.1s cubic-bezier(.18,.75,.2,1.1),opacity .4s}.prize-emerge svg{height:115px;width:115px;fill:color-mix(in srgb,var(--prize-color) 20%,transparent);stroke-width:1.5;animation:none}.prize-emerge img{width:100%;height:100%;object-fit:cover;border-radius:50%;mask-image:radial-gradient(circle,#000 45%,transparent 72%)}.reward-dialog[data-phase=lifting] .prize-emerge,.reward-dialog[data-phase=revealed] .prize-emerge{opacity:1;transform:translateY(0) scale(1)}.reward-dialog[data-phase=revealed] .prize-emerge{animation:prize-hover 4s ease-in-out infinite}
.box-particles{position:absolute;left:50%;top:38%;width:0;height:0;z-index:3}.box-particles i{position:absolute;width:6px;height:10px;background:var(--prize-color);opacity:0;rotate:var(--angle)}.reward-dialog[data-phase=lifting] .box-particles i{animation:box-burst 1.5s ease-out both;animation-delay:calc(var(--i)*.02s)}
#opening-status{position:absolute;bottom:23px;left:15px;right:15px;text-align:center;font-size:10px;letter-spacing:1px;color:#c6d2ef;z-index:5}.skip-opening{position:absolute;right:17px;top:16px;z-index:10;border:1px solid #ffffff30;background:#0b142977;color:#d9e5ff;border-radius:30px;font-size:10px;padding:9px 13px}.reward-content{align-self:center;padding:50px 30px 40px;opacity:0;transform:translateY(15px);transition:.45s}.reward-dialog[data-phase=revealed] .reward-content{opacity:1;transform:translateY(0)}.reward-dialog .reward-content h2{font-size:40px}.reward-content:before{content:'✦';display:block;color:var(--prize-color);font-size:30px;margin-bottom:16px}.reward-dialog[data-sample=true] .reward-content .eyebrow{color:#e4ff63}
@keyframes box-hover{50%{translate:0 -6px}}@keyframes box-charge{25%{rotate:-4deg}75%{rotate:4deg}}@keyframes prize-hover{50%{translate:0 -9px}}@keyframes rays-spin{to{rotate:360deg}}@keyframes box-burst{0%{opacity:0;transform:translateY(0) scale(.2)}20%{opacity:1}100%{opacity:0;transform:translateY(-160px) rotate(110deg) scale(.7)}}
@media(max-width:700px){.reward-dialog[open]{display:block;min-height:0;max-width:390px;max-height:92dvh;overflow:auto}.reward-art{min-height:320px;height:320px}.opening-box{bottom:47px;scale:1}.prize-emerge{top:13px;width:150px;height:150px;margin-left:-75px}.prize-emerge svg{height:90px;width:90px}.box-beam{bottom:100px;height:230px}.reward-rays{top:35%;width:260px;height:260px;margin:-130px}.reward-content{padding:0 25px 24px}.reward-content:before{display:none}.reward-dialog .reward-content h2{font-size:31px;margin:9px 0 12px}#opening-status{bottom:13px;font-size:9px}.reward-content .reward-set{margin:12px 0 17px}.box-pin{width:64px;height:80px}.discovery-panel .capsule-scene{display:flex;height:92px;float:left;width:88px;margin:6px 13px 8px 0;border-radius:12px}.panel-box-button{padding:0;scale:.55}.capsule-scene .scene-tag,.capsule-scene .orbit,.capsule-scene .spark{display:none}.discovery-title{display:block;padding-top:7px}.discovery-title h2{font-size:19px;margin-bottom:4px}.panel-copy{font-size:10px;min-height:45px;margin-bottom:10px}.walk-meter{clear:both}.reward-dialog[data-phase=charging] .reward-content,.reward-dialog[data-phase=lifting] .reward-content{max-height:0;padding-block:0;overflow:hidden}.reward-dialog[data-phase=revealed] .reward-content{max-height:500px}.collection-heading .box-demo{margin-top:5px}}
.reward-dialog[data-phase=lifting] .box-lid,.reward-dialog[data-phase=revealed] .box-lid{transform:translate(-88px,-62px) rotate(-32deg) scale(.78) skewY(-4deg)}
@media(prefers-reduced-motion:reduce){.drift-box,.panel-box-button,.opening-box,.prize-emerge,.reward-rays,.box-particles i{animation:none!important}.box-lid,.box-lock,.prize-emerge,.box-beam,.reward-content{transition:none!important}}
