/* Smooth backgrounds throughout; no dotted texture. */
body{background-image:none}.mini-scene:after{background-image:linear-gradient(#172e2722,transparent 45%,#291c2122)}
#intro{background:#24251b;background-image:radial-gradient(ellipse at 50% 37%,#62503566,transparent 62%);transition:opacity .65s,visibility .65s;isolation:isolate}
#intro:before,#intro:after{content:'';position:absolute;width:46vw;height:70vh;max-width:650px;border:1px solid #ad8a4430;border-radius:50%;top:10%;left:-34vw;transform:rotate(-25deg);pointer-events:none}#intro:after{left:auto;right:-34vw;transform:rotate(25deg)}
#skip-intro{z-index:5;background:#3c3828;border:2px solid #8e7446;border-radius:8px;color:#f2ddb5;box-shadow:3px 4px 0 #15170e;padding:11px 17px;font-size:11px;font-weight:800;top:25px;right:28px}#skip-intro:hover{background:#d69b43;color:#352719}
.exp-stage{position:relative;width:min(700px,94vw);padding:45px 15px 25px;text-align:center}.exp-kicker{display:inline-flex;align-items:center;gap:18px;font:8px 'Space Mono';letter-spacing:1.5px;color:#d2b581;margin-bottom:25px;animation:exp-in .6s both}.exp-kicker>span{color:#e9ac45;font-size:18px}
.exp-scene{position:relative;width:500px;height:265px;max-width:86%;margin:0 auto 38px;border:5px solid #aa7b3b;border-radius:55px 55px 14px 14px;box-shadow:0 0 0 3px #1a1b11,9px 12px 0 #15180c,0 0 70px #dfac3917;perspective:800px;background:#302b1b;animation:scene-arrive .7s cubic-bezier(.17,.84,.32,1.12) both}
.exp-landscape{width:100%;height:100%;object-fit:cover;object-position:center 43%;border-radius:48px 48px 8px 8px;animation:scene-reveal 5.4s both}.door-frame{position:absolute;inset:0;border-radius:48px 48px 8px 8px;border:5px solid #6e4d2b88;pointer-events:none;z-index:3}.temple-door{position:absolute;top:0;bottom:0;width:50%;z-index:2;background:linear-gradient(90deg,#5e593e,#797050 50%,#635c40);border:3px solid #38351f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;box-shadow:inset 0 0 0 7px #a0936755,inset 0 0 0 10px #38351f88;backface-visibility:hidden}.door-left{left:0;border-radius:48px 0 0 8px;transform-origin:left center;animation:door-left-open 1.25s 2.5s cubic-bezier(.3,.05,.15,1) both}.door-right{right:0;border-radius:0 48px 8px 0;transform-origin:right center;animation:door-right-open 1.25s 2.5s cubic-bezier(.3,.05,.15,1) both}.temple-door>span{font-size:68px;line-height:1;color:#c1a76a;text-shadow:3px 4px 0 #38351f}.temple-door i{width:46px;height:16px;background:#343321;clip-path:polygon(0 0,44% 38%,50% 100%,56% 38%,100% 0,89% 80%,60% 100%,40% 100%,11% 80%)}.temple-door b{font-size:34px;color:#c09b4b;text-shadow:2px 2px 0 #3d381e;animation:rune-glow 1s 1.7s 2}.exp-light{position:absolute;inset:0;border-radius:inherit;background:#ffd978;z-index:1;animation:treasure-light .85s 2.7s both;pointer-events:none}
.exp-map{position:absolute;left:-65px;bottom:-14px;width:190px;height:140px;z-index:4;border:4px solid #d9b675;border-radius:3px;background:#d9bd83;outline:2px solid #4a3420;box-shadow:5px 7px 0 #15180c88;transform:rotate(-13deg);animation:map-unroll 1.1s .35s cubic-bezier(.2,.8,.25,1.15) both}.exp-map>img{width:100%;height:100%;object-fit:cover}.exp-map>span{position:absolute;left:0;right:0;bottom:0;background:#efd9a5d9;color:#755329;font:6px 'Space Mono';letter-spacing:.5px;padding:4px}.exp-trail{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.exp-trail path:first-child{stroke:#9a3e24;stroke-width:4;stroke-dasharray:1;stroke-dashoffset:1;animation:draw-route 1.6s 1.3s both}.exp-trail .trail-x{stroke:#ae4427;stroke-width:7;stroke-linecap:round;animation:mark-x .35s 2.6s both;transform-origin:184px 31px}
.exp-compass{position:absolute;width:85px;height:85px;bottom:-42px;left:94px;border:4px solid #47321b;border-radius:50%;background:#bd8037;box-shadow:4px 5px 0 #14190d99;z-index:5;animation:compass-arrive .65s .8s both}.exp-compass>span{position:absolute;top:4px;left:0;right:0;font:8px 'Bangers';color:#694526;z-index:2}.exp-compass>svg{width:100%;height:100%}.compass-needle{transform-origin:40px 40px;animation:find-north 2.5s 1s cubic-bezier(.14,.8,.4,1) both}
.exp-idol{position:absolute;right:-38px;bottom:-22px;width:103px;height:125px;z-index:5;animation:idol-found .65s 3.3s cubic-bezier(.17,.8,.3,1.3) both;filter:drop-shadow(5px 6px 0 #12170f66)}.exp-idol>svg{width:100%;height:100%}.exp-idol i,.exp-idol b{position:absolute;right:-13px;top:13px;color:#ffe096;font-style:normal;font-size:34px;animation:shine 1.5s 3.8s infinite}.exp-idol b{left:-19px;right:auto;top:47px;font-size:24px;animation-delay:4.1s}.exp-sticker{position:absolute;top:24px;right:-48px;z-index:4;padding:11px 13px;border:3px solid #3b2815;border-radius:8px;background:#f7d688;color:#775126;font:19px/1 'Bangers';letter-spacing:.6px;box-shadow:4px 5px 0 #15170e88;transform:rotate(8deg);animation:sticker-pop .55s 3.7s both}.exp-sticker em{font:12px Nunito;font-weight:900;color:#9a5d2e}
.exp-copy h2{font:67px/.96 'Bangers';letter-spacing:2px;color:#f7e3b9;text-shadow:4px 5px 0 #13190d;margin:0 0 25px;animation:exp-title .65s 1s both}.exp-copy h2 em{color:#eeb149;text-shadow:3px 4px 0 #7b371c,5px 6px 0 #13190d}.exp-chapters{display:flex;justify-content:center;gap:11px;margin:0 auto 17px}.exp-chapters span{font:7px 'Space Mono';letter-spacing:.3px;padding:7px 9px;border:1px solid #716342;border-radius:4px;background:#363526;color:#a69a79;transition:.3s}.exp-chapters span.active{background:#d7a653;color:#48331c;border-color:#f1ca78;box-shadow:2px 3px 0 #15190e;transform:rotate(-2deg)}.exp-chapters span.complete{color:#dbcd9a;border-color:#9a8d5e;background:#484b30}.exp-progress{width:250px;height:9px;max-width:80%;margin:0 auto;border:2px solid #13190d;border-radius:7px;background:#171f11;overflow:hidden;box-shadow:2px 3px 0 #14190e}.exp-progress>span{height:100%;display:block;background:repeating-linear-gradient(-45deg,#e9b04d 0 9px,#c99235 9px 18px);transform-origin:left;animation:exp-load 5.7s linear both}#exp-status{font:700 10px/1.5 Nunito;color:#c6b992;min-height:16px;margin:14px 0 12px}.exp-signature{font:6px 'Space Mono';letter-spacing:1px;color:#867f60}
@keyframes exp-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}@keyframes scene-arrive{from{opacity:0;transform:translateY(25px) scale(.85)}to{opacity:1;transform:none}}@keyframes scene-reveal{0%,45%{filter:brightness(.3);transform:scale(1)}75%,100%{filter:brightness(1);transform:scale(1)}}@keyframes door-left-open{0%{transform:rotateY(0);opacity:1}90%{opacity:1}100%{transform:rotateY(-115deg);opacity:0}}@keyframes door-right-open{0%{transform:rotateY(0);opacity:1}90%{opacity:1}100%{transform:rotateY(115deg);opacity:0}}@keyframes rune-glow{50%{color:#ffdc76;text-shadow:0 0 17px #ffcc62}}@keyframes treasure-light{0%,100%{opacity:0}35%{opacity:.85}}@keyframes map-unroll{from{opacity:0;transform:rotate(-22deg) scaleX(.07) translateY(35px)}to{opacity:1;transform:rotate(-13deg) scaleX(1)}}@keyframes draw-route{to{stroke-dashoffset:0}}@keyframes mark-x{from{opacity:0;transform:scale(2.5)}to{opacity:1;transform:scale(1)}}@keyframes compass-arrive{from{opacity:0;transform:translateY(25px) rotate(-35deg)}to{opacity:1;transform:none}}@keyframes find-north{0%{transform:rotate(-340deg)}60%{transform:rotate(30deg)}80%{transform:rotate(-18deg)}100%{transform:rotate(0)}}@keyframes idol-found{from{opacity:0;transform:translateY(30px) scale(.3) rotate(-20deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(5deg)}}@keyframes shine{50%{transform:scale(.7) rotate(20deg);opacity:.6}}@keyframes sticker-pop{from{opacity:0;transform:rotate(-10deg) scale(.1)}to{opacity:1;transform:rotate(8deg) scale(1)}}@keyframes exp-title{from{opacity:0;transform:translateY(15px) scale(.95)}to{opacity:1;transform:none}}@keyframes exp-load{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:760px){.exp-stage{width:100%;padding:60px 20px 27px}.exp-kicker{font-size:6px;letter-spacing:1px;gap:12px;margin-bottom:26px}.exp-scene{width:310px;max-width:87%;height:205px;margin-bottom:48px;border-width:4px;border-radius:35px 35px 10px 10px}.exp-landscape{border-radius:29px 29px 6px 6px;object-position:60% center}.door-frame{border-radius:29px 29px 6px 6px}.door-left{border-radius:29px 0 0 6px}.door-right{border-radius:0 29px 6px 0}.temple-door>span{font-size:52px}.temple-door b{font-size:28px}.exp-map{width:125px;height:93px;left:-23px;bottom:-21px;border-width:3px}.exp-map>span{font-size:4px;padding:3px}.exp-compass{width:61px;height:61px;left:73px;bottom:-39px;border-width:3px}.exp-compass>span{font-size:6px;top:3px}.exp-idol{width:73px;height:93px;right:-23px;bottom:-30px}.exp-idol i{font-size:26px;right:-5px}.exp-idol b{font-size:21px;left:-10px}.exp-sticker{right:-20px;top:32px;font-size:14px;padding:8px 9px;border-width:2px}.exp-sticker em{font-size:8px}.exp-copy h2{font-size:clamp(45px,13vw,60px);letter-spacing:1.5px;margin-bottom:23px}.exp-chapters{gap:5px;margin-bottom:17px}.exp-chapters span{font-size:5px;padding:6px 7px;letter-spacing:0}#exp-status{font-size:9px;margin-top:13px}.exp-signature{font-size:5px;letter-spacing:.5px}#skip-intro{right:18px;top:17px;font-size:10px;padding:9px 13px}}
@media(max-height:700px) and (min-width:761px){.exp-stage{padding-top:40px}.exp-kicker{margin-bottom:15px}.exp-scene{height:200px;width:410px;margin-bottom:34px}.exp-copy h2{font-size:52px;margin-bottom:18px}.exp-map{width:150px;height:110px;left:-40px}.exp-idol{width:85px;height:103px}.exp-compass{width:68px;height:68px;left:77px;bottom:-29px}.exp-sticker{font-size:16px;right:-32px}.exp-chapters{margin-bottom:12px}#exp-status{margin:10px 0}}
@media(max-height:650px) and (max-width:760px){.exp-stage{padding-top:55px;padding-bottom:20px}.exp-kicker{margin-bottom:15px}.exp-scene{height:155px;width:260px;margin-bottom:40px}.exp-map{width:105px;height:78px}.exp-compass{width:50px;height:50px;left:60px}.exp-idol{width:60px;height:76px}.exp-copy h2{font-size:42px;margin-bottom:17px}.exp-chapters{margin-bottom:12px}.exp-sticker{font-size:12px}.exp-sticker em{font-size:7px}#exp-status{margin:10px 0 8px}}
@media(prefers-reduced-motion:reduce){#intro *{animation:none!important}.temple-door,.exp-light{display:none}.exp-landscape{filter:none}.exp-trail path:first-child{stroke-dashoffset:0}.exp-progress>span{transform:scaleX(1)}}
