/* Shadow-boxing reveals a small, non-modal photographic invitation. */
.promo-card{position:fixed;z-index:24;right:24px;bottom:24px;width:350px;max-width:calc(100vw - 36px);max-height:calc(100svh - 48px);overflow-y:auto;border:1px solid #67e6efa6;border-radius:20px;background:linear-gradient(140deg,#102c3f,#121b2d);color:var(--white);box-shadow:0 15px 55px #0009,0 0 28px #56ddea17;isolation:isolate}
.promo-photo{height:138px;position:relative;overflow:hidden;background:#071724}.promo-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#02111a11,#06152505 35%,#102435f0);pointer-events:none}.promo-photo>img{display:block;width:100%;height:100%;object-fit:cover;mask-image:linear-gradient(#000 80%,transparent)}.promo-photo>span{position:absolute;left:20px;bottom:10px;z-index:1;font-size:8px;font-weight:700;letter-spacing:2px;color:#bff8ff}.promo-close{position:absolute;right:10px;top:10px;z-index:2;padding:7px 12px;min-height:36px;border:1px solid #9dd7e88a;border-radius:20px;background:#04121ee8;color:white;box-shadow:none;font:11px 'Segoe UI',sans-serif;letter-spacing:0}.promo-close:hover{transform:none!important;background:#12374b!important;box-shadow:none!important}
.promo-copy{padding:14px 22px 22px}.promo-copy .eyebrow{font-size:8px;letter-spacing:1.7px;margin:0 0 8px}.promo-copy h2{font-size:30px;margin:0 0 10px;line-height:1.15}.promo-copy>p:not(.eyebrow){font-size:12px;line-height:1.65;color:#c4dce8;margin:0 0 16px}.promo-copy .button{font-size:14px;min-height:44px;padding:10px 17px;width:100%}.promo-shop{border-color:#d68aff9c}.promo-shop .promo-photo{background:radial-gradient(ellipse at center,#60417d,#11192d)}.promo-shop .promo-photo>img{object-fit:contain;padding:12px 35px 0 45px;transform:rotate(-12deg)}.promo-shop .promo-photo>span{color:#f0d2ff}.promo-shop .promo-copy .eyebrow{color:#e6aeff}
.promo-reveal{animation:promo-unmask .65s cubic-bezier(.16,1,.3,1) both}
@keyframes promo-unmask{0%{opacity:0;transform:translateX(26px) translateY(12px);clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%)}65%{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,12% 100%)}100%{opacity:1;transform:none;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}}
.shadow-passage{position:fixed;z-index:25;bottom:65px;left:0;width:100%;height:280px;pointer-events:none;overflow:hidden;contain:layout paint}
.shadow-traveller{position:absolute;left:0;bottom:0;width:210px;height:280px;transform:translateX(-230px);filter:drop-shadow(0 0 1px #8df4f5) drop-shadow(-9px 4px 10px #0207109c)}.shadow-boxer{display:block;width:100%;height:100%;overflow:visible}
.is-crossing .shadow-traveller{animation:shadow-crossing 3.3s cubic-bezier(.2,.55,.75,.9) both}
.is-crossing .shadow-upper-body{transform-origin:123px 185px;animation:shadow-bob .42s ease-in-out infinite}
.is-crossing .shadow-arm-lead{transform-origin:131px 104px;animation:shadow-jab .85s ease-in-out infinite}
.is-crossing .shadow-forearm-lead{transform-origin:160px 136px;animation:shadow-extension .85s ease-in-out infinite}
.is-crossing .shadow-arm-rear{transform-origin:104px 101px;animation:shadow-guard .85s ease-in-out infinite}
.is-crossing .shadow-leg-back{transform-origin:116px 208px;animation:shadow-step .42s ease-in-out infinite alternate}
.is-crossing .shadow-leg-front{transform-origin:125px 209px;animation:shadow-step .42s ease-in-out infinite alternate-reverse}
.is-crossing .shadow-speed{animation:shadow-breath .42s ease-in-out infinite alternate}
@keyframes shadow-crossing{0%{transform:translateX(-230px);opacity:0}8%{opacity:.9}48%{transform:translateX(calc(45vw - 80px))}90%{opacity:.9}100%{transform:translateX(calc(100vw + 240px));opacity:0}}
@keyframes shadow-bob{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(5px) rotate(2deg)}}
@keyframes shadow-jab{0%,12%,55%,100%{transform:rotate(0)}28%,34%{transform:rotate(-45deg)}70%,76%{transform:rotate(-35deg)}}
@keyframes shadow-extension{0%,12%,55%,100%{transform:rotate(0)}28%,34%{transform:rotate(110deg)}70%,76%{transform:rotate(95deg)}}
@keyframes shadow-guard{0%,40%,100%{transform:rotate(0)}25%{transform:rotate(9deg)}65%,80%{transform:rotate(-14deg)}}
@keyframes shadow-step{from{transform:rotate(-4deg) translateY(1px)}to{transform:rotate(4deg) translateY(-1px)}}
@keyframes shadow-breath{from{opacity:.15;transform:translateX(0)}to{opacity:.5;transform:translateX(-8px)}}
.animation-preview{max-width:1000px;min-height:45vh}.animation-controls{display:flex;flex-wrap:wrap;gap:15px;max-width:920px;margin:0 auto 60px;padding:0 40px}.animation-preview h1{font-size:clamp(35px,4.5vw,64px);max-width:800px}
@media(max-width:580px){.promo-card{right:14px;bottom:14px;width:310px;max-width:calc(100vw - 28px);max-height:65svh;border-radius:17px}.promo-photo{height:110px}.promo-copy{padding:12px 18px 18px}.promo-copy h2{font-size:27px}.promo-copy>p:not(.eyebrow){font-size:11px}.promo-close{min-height:44px;top:7px;right:7px;padding:8px 12px}.shadow-passage{height:220px;bottom:90px}.shadow-traveller{height:220px;width:165px}.animation-controls{padding:0 24px;flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){.shadow-passage{display:none!important}.promo-reveal{animation:none!important;clip-path:none!important;transform:none!important}.promo-photo>img{transition:none!important}}

/* Slower arrival: the nak muay brings the invitation, then leaves it in place. */
[data-home-promotions]{--promo-width:350px;--promo-bottom:24px}
.shadow-passage{bottom:var(--promo-bottom);height:320px;overflow:visible;contain:none;z-index:25}
.shadow-traveller{width:200px;height:300px;bottom:4px;filter:drop-shadow(0 2px 3px #0008)}
.nak-muay-sprite{width:100%;height:100%;background-image:url('/static/site-brand/nak-muay-shadow-sprite.webp');background-size:400% 200%;background-position:0 0;background-repeat:no-repeat}
.is-crossing .shadow-traveller{animation:nak-arrival 7.6s cubic-bezier(.23,.65,.32,1) both}
.is-crossing .nak-muay-sprite{animation:nak-poses 1.6s steps(1,end) infinite}
@keyframes nak-arrival{0%{transform:translateX(-230px);opacity:0}7%{opacity:1}58%{transform:translateX(max(12px,calc(100vw - var(--promo-width) - 210px)));opacity:1}79%{transform:translateX(max(12px,calc(100vw - var(--promo-width) - 210px)));opacity:1}89%{opacity:.8}100%{transform:translateX(calc(100vw + 220px));opacity:0}}
@keyframes nak-poses{0%{background-position:0 0}12.5%{background-position:33.333333% 0}25%{background-position:66.666667% 0}37.5%{background-position:100% 0}50%{background-position:0 100%}62.5%{background-position:33.333333% 100%}75%{background-position:66.666667% 100%}87.5%{background-position:100% 100%}100%{background-position:0 0}}
.scene-skip{position:absolute;right:24px;top:-20px;min-height:44px;padding:10px 15px;border-radius:24px;background:#071a2beF;border:1px solid #9bd8e8;color:#ddf8ff;box-shadow:none;font:11px 'Segoe UI',sans-serif;pointer-events:auto;z-index:3}
.shop-passage{position:fixed;inset:0;z-index:25;pointer-events:none;--store-top:calc(var(--promo-bottom) + var(--promo-height,350px) - 142px)}
.shop-traveller{position:absolute;left:0;bottom:var(--store-top);width:210px;height:192px;transform:translateX(-250px)}
.walking-store{display:block;width:100%;height:100%;pointer-events:auto;filter:drop-shadow(0 5px 15px #02091488);border-radius:12px}.walking-store svg{display:block;width:100%;height:100%;overflow:visible}.walking-store:focus-visible{outline-offset:0}
.shop-passage .scene-skip{top:auto;bottom:calc(var(--store-top) + 195px)}
.store-awning{transform-origin:115px 57px;transform:scaleY(.1)}.store-shutter{transform-origin:88px 70px}.store-door{transform-origin:187px 110px}
.is-walking .shop-traveller{animation:store-arrival 5.4s cubic-bezier(.25,.55,.3,1) forwards}
.is-walking .store-leg-left{transform-origin:77px 137px;animation:store-steps .45s ease-in-out 9 alternate}
.is-walking .store-leg-right{transform-origin:153px 137px;animation:store-steps .45s ease-in-out 9 alternate-reverse}
.is-walking .store-building{animation:store-bob .45s ease-in-out 9}
.is-walking .store-awning{animation:store-awning-open 1s 4.1s ease-out forwards}
.is-walking .store-shutter{animation:store-shutter-open .8s 4.4s ease-in-out forwards}
.is-walking .store-door{animation:store-door-open 1s 4.5s ease-out forwards}
.is-walking .scene-skip{animation:store-skip-hide .3s 5.4s forwards}
@keyframes store-arrival{0%{transform:translateX(-250px) rotate(-5deg);opacity:0}6%{opacity:1}45%{transform:translateX(calc(50vw - 100px)) rotate(3deg)}76%{transform:translateX(calc(100vw - var(--promo-width) + 14px)) rotate(-3deg)}86%{transform:translateX(calc(100vw - var(--promo-width) + 14px)) rotate(2deg)}100%{transform:translateX(calc(100vw - var(--promo-width) + 14px));opacity:1}}
@keyframes store-steps{0%{transform:rotate(-17deg)}100%{transform:rotate(17deg)}}
@keyframes store-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes store-awning-open{from{transform:scaleY(.1)}to{transform:scaleY(1)}}
@keyframes store-shutter-open{to{transform:scaleY(0)}}
@keyframes store-door-open{to{transform:perspective(200px) rotateY(-65deg)}}
@keyframes store-skip-hide{to{opacity:0;visibility:hidden}}
.promo-shop .promo-photo>img{width:48%;margin-left:auto;padding:8px;transform:rotate(-8deg)}
.animation-controls{margin:32px 0 0;padding:0}
@media(max-width:580px){[data-home-promotions]{--promo-width:310px;--promo-bottom:14px}.shadow-passage{bottom:14px;height:260px}.shadow-traveller{width:165px;height:247px}.shop-traveller{width:180px;height:164px}.shop-passage{--store-top:calc(var(--promo-bottom) + var(--promo-height,320px) - 118px)}.shop-passage .scene-skip{bottom:calc(var(--store-top) + 167px)}.scene-skip{right:14px;top:-12px;font-size:10px}.promo-card{max-height:65svh}}
@media(prefers-reduced-motion:reduce){.shadow-passage,.shop-passage{display:none!important}.nak-muay-sprite,.shop-traveller,.store-building,.store-leg,.store-awning,.store-door,.store-shutter{animation:none!important}}
/* Gala: profile arrival, two seconds of front-facing shadow, then a border statue. */
#sponsor-card{border-color:#d29af5;background:linear-gradient(145deg,#21112f,#101d30)}
#sponsor-card .promo-photo{height:145px}
#sponsor-card .promo-photo>img{object-position:66% 55%}
#sponsor-title span{display:block;font-size:22px;letter-spacing:.7px}
#sponsor-title strong{display:block;font-size:43px;line-height:1.05;color:#e7c1ff;margin:4px 0}
#sponsor-card .promo-copy>p:not(.eyebrow){font-size:12px}
.shadow-traveller{width:200px;height:200px;bottom:0;filter:drop-shadow(0 0 2px #71edff99)}
.nak-muay-sprite{background-image:url('/static/site-brand/nak-statue-1.webp');background-size:300% 200%}
.is-crossing .shadow-traveller{animation:nak-statue-arrival 6s cubic-bezier(.23,.65,.32,1) both}
.is-crossing .nak-muay-sprite{animation:nak-statue-poses 6s steps(1,end) both}
.is-crossing .scene-skip{animation:store-skip-hide .2s 6s forwards}
@keyframes nak-statue-arrival{0%{transform:translateX(-220px);opacity:0}7%{opacity:1}53%,88%{transform:translateX(max(-25px,calc(100vw - var(--promo-width) - 170px)));opacity:1;filter:drop-shadow(0 0 2px #71edff99)}100%{transform:translateX(max(-25px,calc(100vw - var(--promo-width) - 160px)));opacity:1;filter:grayscale(.8) brightness(.72) drop-shadow(1px 0 2px #8beef7)}}
@keyframes nak-statue-poses{0%,16%,32%{background-position:0 0}8%,24%,40%{background-position:50% 0}53%{background-position:100% 0}62%,75%,88%,100%{background-position:0 100%}68%,81%{background-position:50% 100%}94%{background-position:100% 100%}}
@media(max-width:580px){.shadow-traveller{width:150px;height:150px}#sponsor-card .promo-photo{height:120px}#sponsor-title span{font-size:20px}#sponsor-title strong{font-size:35px}.is-crossing .shadow-traveller{animation-name:nak-statue-mobile}@keyframes nak-statue-mobile{0%{transform:translateX(-160px);opacity:0}7%{opacity:1}53%,88%{transform:translateX(max(-30px,calc(100vw - var(--promo-width) - 128px)));opacity:1}100%{transform:translateX(max(-30px,calc(100vw - var(--promo-width) - 118px)));opacity:1;filter:grayscale(.8) brightness(.72) drop-shadow(1px 0 2px #8beef7)}}}
.nak-muay-sprite{background-image:url('/static/site-brand/nak-statue-1.webp');background-size:100% 100%;background-position:center}
@keyframes nak-statue-poses{0%,16%,32%{background-image:url('/static/site-brand/nak-statue-1.webp')}8%,24%,40%{background-image:url('/static/site-brand/nak-statue-2.webp')}53%{background-image:url('/static/site-brand/nak-statue-3.webp')}62%,75%,88%,100%{background-image:url('/static/site-brand/nak-statue-4.webp')}68%,81%{background-image:url('/static/site-brand/nak-statue-5.webp')}94%{background-image:url('/static/site-brand/nak-statue-6.webp')}}

/* Thirty-two isolated poses, timed independently from the travel path. */
.nak-muay-sprite,.is-crossing .nak-muay-sprite{position:relative;background:none!important;animation:none!important}
.nak-muay-sprite img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.is-crossing .shadow-traveller{animation:nak-premium-arrival var(--nak-duration,6780ms) linear both}
.is-crossing .scene-skip{animation:store-skip-hide .2s var(--nak-duration,6780ms) forwards}
@keyframes nak-premium-arrival{0%{transform:translateX(-220px);opacity:0}5%{opacity:1}30%,94%{transform:translateX(max(-25px,calc(100vw - var(--promo-width) - 170px)));opacity:1;filter:drop-shadow(0 0 2px #71edff99)}100%{transform:translateX(max(-25px,calc(100vw - var(--promo-width) - 160px)));opacity:1;filter:grayscale(.8) brightness(.72) drop-shadow(1px 0 2px #8beef7)}}
@media(max-width:580px){.is-crossing .shadow-traveller{animation-name:nak-premium-mobile}@keyframes nak-premium-mobile{0%{transform:translateX(-160px);opacity:0}5%{opacity:1}30%,94%{transform:translateX(max(-30px,calc(100vw - var(--promo-width) - 128px)));opacity:1}100%{transform:translateX(max(-30px,calc(100vw - var(--promo-width) - 118px)));opacity:1;filter:grayscale(.8) brightness(.72) drop-shadow(1px 0 2px #8beef7)}}}
/* Small companions stay quiet until activated. */
.shop-pictograms{height:100%;display:flex;align-items:center;justify-content:center;gap:4px;padding:28px 20px 12px;background:radial-gradient(ellipse at center,#69378d77,transparent)}
.shop-pictograms img{width:28%;height:86px;object-fit:contain;filter:drop-shadow(0 0 9px #cf7cff38)}
.shadow-traveller,.shadow-traveller:hover,.shadow-traveller:disabled{display:block;padding:0;border:0;background:transparent!important;box-shadow:none!important;border-radius:16px;min-height:44px;pointer-events:auto;transition:none;gap:0}
.shadow-traveller:disabled{pointer-events:none}
.nak-muay-sprite{display:block}
.companion-caption{position:absolute;bottom:-4px;left:0;width:100%;font:10px 'Segoe UI',sans-serif;color:#d9f6ff;text-align:center;letter-spacing:1px;text-shadow:0 1px 5px #000;display:none}
.is-idle .companion-caption{display:block}
.is-idle .scene-skip,.is-departing .scene-skip,.is-returning .scene-skip,.is-at-card .scene-skip{display:none}
.shadow-passage.is-idle .shadow-traveller{width:105px;height:140px;left:0;bottom:7px;transform:translateX(4px)!important;animation:none;filter:drop-shadow(0 0 2px #73dbe950)}
.shop-passage.is-idle .shop-traveller{width:104px;height:95px;left:0;bottom:12px;transform:translateX(110px)!important;animation:none}
.shop-passage.is-idle .store-legs{transform:scaleY(0);transform-origin:115px 137px}
.is-idle .walking-store:hover{filter:drop-shadow(0 0 10px #ce80ff)}
.companion-toggle{position:fixed;left:14px;bottom:167px;z-index:25;min-height:32px;padding:5px 9px;border:1px solid #7db4c94a;border-radius:20px;background:#071522df;font:10px 'Segoe UI',sans-serif;letter-spacing:0;box-shadow:none;color:#bdd4df}
.store-legs{transform-origin:115px 137px}
.is-walking .store-legs{animation:store-legs-stow .65s 5.4s ease-in-out forwards}
@keyframes store-legs-stow{from{transform:scaleY(1);opacity:1}to{transform:translateY(-5px) scaleY(0);opacity:0}}
.shadow-passage.is-departing .shadow-traveller{width:105px;height:140px;animation:companion-depart .6s ease-in both}
.shop-passage.is-departing .shop-traveller{width:104px;height:95px;bottom:12px;animation:shop-depart .6s ease-in both}
@keyframes companion-depart{from{transform:translateX(4px);opacity:1}to{transform:translateX(-220px);opacity:0}}
@keyframes shop-depart{from{transform:translateX(110px);opacity:1}to{transform:translateX(-220px);opacity:0}}
@keyframes nak-premium-arrival{0%{transform:translateX(calc(100vw + 220px));opacity:0}5%{opacity:1}30%,94%{transform:translateX(max(-25px,calc(100vw - var(--promo-width) - 170px)));opacity:1;filter:drop-shadow(0 0 2px #71edff99)}100%{transform:translateX(max(-25px,calc(100vw - var(--promo-width) - 160px)));opacity:1;filter:grayscale(.8) brightness(.72) drop-shadow(1px 0 2px #8beef7)}}
.is-crossing .nak-muay-sprite{animation:nak-entry-direction var(--nak-duration) steps(1,end) both!important}
@keyframes nak-entry-direction{0%{transform:scaleX(-1)}64%,100%{transform:scaleX(1)}}
@keyframes store-arrival{0%{transform:translateX(calc(100vw + 250px)) rotate(5deg);opacity:0}6%{opacity:1}76%{transform:translateX(calc(100vw - var(--promo-width) + 14px)) rotate(-3deg)}86%{transform:translateX(calc(100vw - var(--promo-width) + 14px)) rotate(2deg)}100%{transform:translateX(calc(100vw - var(--promo-width) + 14px));opacity:1}}
.is-returning .shadow-traveller{animation:nak-return-home 1.1s ease-in-out both}
.is-returning .nak-muay-sprite{transform:scaleX(-1)}
@keyframes nak-return-home{from{transform:translateX(max(-25px,calc(100vw - var(--promo-width) - 160px)));width:200px;height:200px}to{transform:translateX(4px);width:105px;height:140px}}
.is-returning .shop-traveller{animation:shop-return-home 1.1s ease-in-out both}
@keyframes shop-return-home{from{transform:translateX(calc(100vw - var(--promo-width) + 14px));bottom:var(--store-top);width:210px;height:192px}to{transform:translateX(110px);bottom:12px;width:104px;height:95px}}
.is-returning .store-legs{animation:store-legs-return 1.1s both}
@keyframes store-legs-return{0%{transform:scaleY(0)}20%,80%{transform:scaleY(1)}100%{transform:scaleY(0)}}
.is-returning .store-leg{animation:store-steps .23s ease-in-out 4 alternate}
.is-returning .store-awning{animation:store-awning-open .35s reverse both}
.is-returning .store-shutter{animation:store-shutter-open .35s reverse both}
.is-returning .store-door{animation:store-door-open .35s reverse both}
.is-at-card .shadow-traveller{animation:none;transform:translateX(max(-25px,calc(100vw - var(--promo-width) - 160px)))}
.is-settled .shop-traveller{animation:none;transform:translateX(calc(100vw - var(--promo-width) + 14px))}
.is-settled .store-legs{animation:none;transform:scaleY(0)}
.is-settled .store-awning{animation:none;transform:scaleY(1)}.is-settled .store-shutter{animation:none;transform:scaleY(0)}
@media(max-width:580px){@keyframes nak-premium-mobile{0%{transform:translateX(calc(100vw + 160px));opacity:0}5%{opacity:1}30%,94%{transform:translateX(max(-30px,calc(100vw - var(--promo-width) - 128px)));opacity:1}100%{transform:translateX(max(-30px,calc(100vw - var(--promo-width) - 118px)));opacity:1;filter:grayscale(.8) brightness(.72) drop-shadow(1px 0 2px #8beef7)}}.is-at-card .shadow-traveller{transform:translateX(max(-30px,calc(100vw - var(--promo-width) - 118px)))}.is-returning .shadow-traveller{animation-name:nak-return-mobile}@keyframes nak-return-mobile{from{transform:translateX(max(-30px,calc(100vw - var(--promo-width) - 118px)));width:150px;height:150px}to{transform:translateX(4px);width:105px;height:140px}}}
@media(prefers-reduced-motion:reduce){.is-departing,.is-returning{display:none!important}}
/* Header characters live in the document; only promotional scenes use a fixed layer. */
body{--promo-width:350px;--promo-bottom:24px}
.site-header{position:relative;display:flex;align-items:center;gap:20px;z-index:5}
.header-companions{display:flex;align-items:center;justify-content:center;gap:8px;margin-left:auto;flex-shrink:0}
.companion-slot{position:relative;width:76px;height:82px;display:flex;align-items:center;justify-content:center}
.header-menu{margin-left:0;flex-shrink:0;align-self:flex-start;padding-top:16px}
.header-menu .mobile-menu{display:block}
.header-menu .menu-panel{width:280px;max-width:calc(100vw - 28px);max-height:75dvh}
.menu-social{border-top:1px solid #6ac4d23d;margin:10px 4px 0;padding:16px 4px 4px}
.menu-social>p{font-size:9px;letter-spacing:2px;color:#9fc3d4;margin:0 0 12px}
.menu-social .social-links{display:flex;flex-direction:row;gap:9px;flex-wrap:wrap;justify-content:flex-start}
.menu-social .social-links a,.menu-social .social-pending{display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;padding:10px;border:1px solid #39708a;border-radius:12px}
.social-pending{opacity:.5;color:#d8eaf4;cursor:default}
.menu-animation-toggle{font:11px 'Segoe UI',sans-serif;background:none;box-shadow:none;border:0;margin:12px 0 0;padding:6px;min-height:36px;color:#b8cdd9}
.companion-slot .shadow-passage.is-idle,.companion-slot .shop-passage.is-idle{position:relative!important;inset:auto!important;bottom:auto!important;left:auto!important;width:100%;height:100%;z-index:auto;overflow:visible}
.companion-slot .is-idle .shadow-traveller,.companion-slot .is-idle .shop-traveller{position:relative!important;inset:auto!important;bottom:auto!important;left:auto!important;width:100%;height:100%;transform:none!important;animation:none!important}
.companion-slot .is-idle .companion-caption{display:none}
.shop-products{display:flex;align-items:center;justify-content:center;height:100%;padding:18px 16px 10px;gap:0;background:radial-gradient(ellipse at center,#31597755,transparent)}
.shop-products img{object-fit:contain;position:relative;width:32%;height:108px;filter:drop-shadow(0 8px 10px #02071188)}
.shop-products img:first-child{transform:rotate(-12deg);z-index:2}
.shop-products img:nth-child(2){width:41%;transform:rotate(3deg);margin:0 -10px;z-index:1}
.shop-products img:last-child{transform:rotate(10deg)}
.promo-shop .promo-photo{height:180px;background:linear-gradient(135deg,#26374b,#1c1533)}
.promo-shop .shop-traveller{pointer-events:auto}
body>.shadow-passage,body>.shop-passage{position:fixed;z-index:25}
.is-departing .shadow-traveller,.is-departing .shop-traveller{position:fixed!important;left:0!important;top:0!important;bottom:auto!important;width:var(--home-width)!important;height:var(--home-height)!important;animation:header-companion-exit .6s ease-in both!important}
@keyframes header-companion-exit{from{transform:translate(var(--home-x),var(--home-y));opacity:1}to{transform:translate(calc(100vw + 150px),var(--home-y));opacity:0}}
.is-returning .shadow-traveller,.is-returning .shop-traveller{position:fixed!important;left:0!important;top:0!important;bottom:auto!important;animation:header-boxer-return 1.1s ease-in-out both!important}
.is-returning .shop-traveller{animation-name:header-shop-return!important}
@keyframes header-boxer-return{from{transform:translate(max(-25px,calc(100vw - var(--promo-width) - 160px)),calc(100svh - var(--promo-bottom) - 200px));width:200px;height:200px}to{transform:translate(var(--home-x),var(--home-y));width:var(--home-width);height:var(--home-height)}}
@keyframes header-shop-return{from{transform:translate(calc(100vw - var(--promo-width) + 14px),calc(100svh - var(--store-top) - 192px));width:210px;height:192px}to{transform:translate(var(--home-x),var(--home-y));width:var(--home-width);height:var(--home-height)}}
@media(max-width:580px){body{--promo-width:310px;--promo-bottom:14px}.site-header{padding:10px 12px;gap:8px;align-items:center}.site-header .brand{gap:8px;min-width:0}.site-header .brand-emblem{width:42px;height:42px}.site-header .brand-wordmark{max-width:120px}.site-header .brand-wordmark strong{font-size:12px;letter-spacing:.7px}.site-header .brand-wordmark em{font-size:7px}.header-companions{gap:0}.companion-slot{width:54px;height:64px}.header-menu{padding-top:10px;margin-left:auto}.menu-label{display:none}.mobile-menu summary{width:44px;padding:8px;justify-content:center}.promo-shop .promo-photo{height:155px}.shop-products img{height:94px}}
@media(prefers-reduced-motion:reduce){.companion-slot .shadow-passage.is-idle,.companion-slot .shop-passage.is-idle{display:block!important}}

/* Portal integration: retain site scene sizes, hide inaccessible frames, and
   avoid inheriting photographic form-button styling on animation controls. */
@font-face{font-family:MMTSiteOswald;src:url('/static/site-fonts/oswald-variable.ttf') format('truetype');font-weight:200 700;font-style:normal;font-display:swap}
.promo-card{--white:#f0faff;--cyan:#74edf5;--display:MMTSiteOswald,'Arial Narrow',sans-serif;font-family:'Segoe UI',sans-serif;color:var(--white)}
.promo-card h2{font-family:var(--display);font-weight:500;letter-spacing:-.4px}
.promo-card[hidden],.shadow-passage[hidden],.nak-muay-sprite img[hidden]{display:none!important}
.promo-card .button{display:flex;align-items:center;justify-content:center;box-sizing:border-box;text-decoration:none;color:#fff;background:linear-gradient(115deg,#9044d7,#6939ba);border:1px solid #c8b2ff;border-radius:12px;font:500 14px var(--display);letter-spacing:.35px;box-shadow:0 0 24px #b34cff35,inset 0 1px 0 #ffffff30}
.future-top .header-companions{margin-left:auto;flex:0 0 76px}
.future-top .contact{margin-left:10px}
.shadow-passage .scene-skip{background:#071a2bef!important;background-image:none!important;font-size:11px;min-height:44px}
.shadow-passage .shadow-traveller{background-image:none!important;min-height:44px}
.promo-card .promo-close{min-width:44px;min-height:44px;display:grid;place-items:center;padding:8px;background:#04121ee8!important;background-image:none!important}
.promo-card .promo-close svg{display:block}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.shadow-passage.is-idle .shadow-traveller:focus-visible,.promo-close:focus-visible{outline:2px solid #9ffaff;outline-offset:3px}
@media(max-width:580px){.future-top .header-companions{flex-basis:54px}.future-top .contact{margin-left:0;font-size:10px;padding:10px}.future-top .identity{min-width:0;font-size:11px}}
@media(prefers-reduced-motion:reduce){.companion-slot .shadow-passage.is-idle{display:block!important}}
