.dance-hero{min-height:900px;overflow:hidden}
.dance-hero .hero-art img{transform:none!important}
.dance-hero .hero-copy{width:57%;padding-top:185px;pointer-events:none;z-index:3}
.dance-hero .hero-copy a,.dance-hero .hero-copy button{pointer-events:auto}
.dance-hero h1{font-size:clamp(80px,8vw,128px)}
.dance-hero .hero-intro{font-size:29px;max-width:430px}
.dance-hero .hero-note{font-size:20px;max-width:320px}.dance-hero .route-note{display:none}
.dance-stage{position:absolute;right:0;bottom:3%;width:67%;height:70%;z-index:2;isolation:isolate;pointer-events:none;--root:75px}
.dance-layer{--size:340px;--x:50%;position:absolute;left:var(--x);bottom:calc(var(--root) - var(--size)*.125);width:var(--size);height:var(--size);transform:translateX(-50%);border:0;padding:0;background:none;pointer-events:auto;isolation:isolate;overflow:visible;cursor:pointer}
.dance-layer img,.dance-layer video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.dance-layer video{opacity:0}.dance-layer.video-ready:not(.reduced-still) video{opacity:1}.dance-layer.video-ready:not(.reduced-still) img{opacity:0}
.dance-layer.video-failed img{opacity:1}.dance-layer.video-failed video{opacity:0}
.dance-layer:focus-visible{outline:3px dashed #fff1ad;outline-offset:-35px}.dance-layer:active:not(:disabled){transform:translateX(-50%)}
.dancer-jensen{--size:580px;--x:48%;z-index:3}.dancer-pikachu{--size:300px;--x:20%;z-index:4}
.dancer-psyduck{--size:235px;--x:71%;z-index:4}.dancer-snorlax{--size:225px;--x:89.5%;--root:85px;z-index:2}
.dancer-name{position:absolute;left:50%;bottom:7%;transform:translateX(-50%);font-family:var(--dialog);font-size:20px;color:#fff4d1;background:#2c4f4ba8;padding:3px 9px;white-space:nowrap;opacity:0;transition:opacity .15s;pointer-events:none}
.dance-layer:hover .dancer-name,.dance-layer:focus-visible .dancer-name{opacity:1}
.party-caption{position:absolute;bottom:15px;left:35%;right:0;text-align:center;font-family:var(--pixel);font-size:7px;line-height:1.8;color:#fff4cf;text-shadow:1px 2px #25483f;pointer-events:none}
.dance-layer:before{content:'';position:absolute;left:35%;bottom:11%;width:30%;height:3%;border-radius:50%;background:#35454635;pointer-events:none;z-index:-1}
@media(min-width:1600px){.dance-stage{width:64%;height:73%;--root:100px}.dancer-jensen{--size:670px}.dancer-pikachu{--size:350px}.dancer-psyduck{--size:260px}.dancer-snorlax{--size:250px;--x:90.5%;--root:110px}}
@media(max-width:1100px){
 .dance-stage{width:75%;height:58%;bottom:0;--root:55px}.dancer-jensen{--size:470px;--x:45%}.dancer-pikachu{--size:250px;--x:16%}
 .dancer-psyduck{--size:235px;--x:68%}.dancer-snorlax{--size:240px;--x:85%;--root:250px}
 .dance-hero .hero-copy{width:68%;padding-top:160px}.dance-hero h1{font-size:96px}
}
@media(max-width:800px){
 .dance-hero{min-height:1050px}.dance-hero .hero-copy{width:100%;padding-bottom:470px}.dance-hero h1{font-size:105px}.dance-hero .hero-intro{font-size:28px}.dance-hero .hero-note{display:none}
 .dance-stage{width:100%;height:48%;bottom:20px;--root:55px}.dancer-jensen{--size:490px;--x:48%}.dancer-pikachu{--size:240px;--x:16%}
 .dancer-psyduck{--size:230px;--x:70%}.dancer-snorlax{--size:230px;--x:84%;--root:270px}.party-caption{left:0;right:auto;bottom:0;font-size:6px}
}
@media(max-width:560px){
 .dance-hero{height:100svh;min-height:880px;max-height:1100px}.dance-hero .hero-copy{padding:125px 20px 400px;width:100%}
 .dance-hero h1{font-size:clamp(50px,14.5vw,78px);margin-bottom:22px}.dance-hero .hero .eyebrow{font-size:5px}
 .dance-hero .hero-intro{font-size:25px;max-width:300px;margin-top:22px;color:#284c58;text-shadow:0 1px #fff0cd;background:#fff1d4b8;width:max-content;padding:3px 6px;border-radius:3px}
 .dance-hero .hero-actions{gap:17px;margin-top:22px}.dance-hero .hero-actions .button{font-size:8px;min-height:52px;padding:14px 17px}
 .dance-hero .hero-actions .text-link{font-size:22px;color:#fff7de;text-shadow:1px 2px #173348}
 .dance-stage{width:100%;height:380px;bottom:45px;--root:40px}.dancer-jensen{--size:355px;--x:47%;z-index:3}
 .dancer-pikachu{--size:170px;--x:17%;z-index:4}.dancer-psyduck{--size:175px;--x:70%;z-index:4}.dancer-snorlax{--size:170px;--x:80%;--root:210px;z-index:2}
 .party-caption{bottom:0;font-size:5px;left:20px;max-width:145px;text-align:left}.dancer-name{font-size:18px}.dance-layer:focus-visible{outline-offset:-20px}.dance-hero .hero-art img{object-position:55% center}
}
@media(max-width:360px){.dance-hero .hero-intro{font-size:23px}.dance-stage{height:350px;bottom:50px}.dancer-jensen{--size:320px}.dancer-pikachu,.dancer-psyduck{--size:170px}.dancer-snorlax{--size:145px;--x:79%;--root:190px}.party-caption{max-width:100px;font-size:4px}}
@media(prefers-reduced-motion:reduce){.dance-layer video{display:none}.dance-layer img{opacity:1!important}.dancer-name{transition:none}}
/* Painted plaza compositor: source-sized occluders share the wallpaper crop. */
.dance-hero{isolation:isolate}
.plaza-atmosphere{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.plaza-world{position:absolute;pointer-events:none}.plaza-atmosphere img{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.plaza-clouds{animation:plaza-cloud-drift 20s ease-in-out infinite alternate;animation-delay:-8s}
.plaza-palms{transform-origin:18.3% 90.7%;animation:plaza-palm-breeze 6.7s ease-in-out infinite alternate;animation-delay:-3.2s}
.plaza-resting .plaza-atmosphere img{animation-play-state:paused}
@keyframes plaza-cloud-drift{from{transform:translateX(-18px) translateY(2px)}to{transform:translateX(22px) translateY(-4px)}}
@keyframes plaza-palm-breeze{from{transform:rotate(-.65deg) skewX(-.2deg)}to{transform:rotate(.75deg) skewX(.35deg)}}
@media(max-width:560px){.plaza-atmosphere img{object-position:55% center}}
@media(prefers-reduced-motion:reduce){.plaza-atmosphere img{animation:none!important}}
.plaza-scenery{position:absolute;inset:0;z-index:2;pointer-events:none}
.plaza-scenery img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}
.plaza-scenery .plaza-water{z-index:-1;animation:plaza-tide 7s ease-in-out infinite alternate;mix-blend-mode:screen}
.plaza-glow{animation:plaza-lanterns 5.7s ease-in-out infinite alternate;mix-blend-mode:screen}
.plaza-resting .plaza-scenery img{animation-play-state:paused}
.dance-layer img,.dance-layer video{filter:saturate(.81) contrast(.91) sepia(.12) blur(.45px)}
.dance-layer.dancer-jensen img,.dance-layer.dancer-jensen video{filter:saturate(.9) contrast(.98) sepia(.06)}
.dance-layer.dancer-pikachu img,.dance-layer.dancer-pikachu video,.dance-layer.dancer-snorlax img,.dance-layer.dancer-snorlax video{transform:scale(1.333333);transform-origin:50% 87.5%}
.dance-layer:before{left:30%;width:40%;height:4%;bottom:10.5%;background:radial-gradient(ellipse,#34384455,transparent 70%);transform:skewX(-16deg)}
.dance-hero:after{content:'';position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(0deg,#14252e 0%,#14252e99 4%,transparent 20%),linear-gradient(90deg,#bd705112,transparent 65%,#f4b97518)}
.party-caption{display:none}
@keyframes plaza-tide{from{opacity:.12;transform:translateY(0)}to{opacity:.75;transform:translateY(2px)}}
@keyframes plaza-lanterns{from{opacity:.35}to{opacity:.85}}
/* A quiet route through one continuous world, without stretched plaque art. */
.journey-strip{position:relative;isolation:isolate;background:#14252e;border:0;margin:0;padding:22px max(20px,7vw) 28px;gap:0;box-shadow:none;z-index:1}
.journey-strip a{background:none!important;color:#f3dfb8;max-width:400px;min-height:56px;padding:12px 24px;font-family:var(--dialog);font-size:25px;border:0;border-radius:0;box-shadow:none;text-decoration:none;transition:color .16s,background .16s}
.journey-strip a+a{border-left:1px solid #e8d5b52b}
.journey-strip a small{display:none}.journey-strip a>span{display:inline;color:#deae68;font-size:22px}
.journey-strip a:hover,.journey-strip a:focus-visible{color:#fff6dc;background:#ffffff0a!important;outline-offset:-4px}
.encounters,.story-section,.trainers-section,.starters-section,.region-section,.final-cta{position:relative;isolation:isolate;border-top:0;border-bottom:0}
.encounters:after,.story-section:after,.trainers-section:after,.starters-section:after,.region-section:after,.final-cta:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(#14252e 0%,#14252e70 35px,transparent 100px,transparent calc(100% - 100px),#14252e70 calc(100% - 35px),#14252e 100%)}
@media(max-width:560px){.plaza-scenery img{object-position:55% center}.journey-strip{padding:14px 16px 20px;display:flex;flex-wrap:wrap;gap:0}.journey-strip a{flex:1 1 100%;max-width:none;min-height:48px;padding:8px 12px;font-size:23px}.journey-strip a+a{border-left:0;border-top:1px solid #e8d5b51c}.dance-layer img,.dance-layer video{filter:saturate(.81) contrast(.91) sepia(.12) blur(.3px)}}
@media(prefers-reduced-motion:reduce){.plaza-scenery img{animation:none}.journey-strip a{transition:none}}
.dance-hero{border-bottom:0}
@media(max-width:560px){.dancer-psyduck{--x:85%}}
@media(min-width:561px) and (max-width:800px){.dancer-psyduck{--x:82%}}
/* Fully framed journal. Transparent margins belong to the artwork. */
.trainers-section .dex{background:transparent url('assets/robots/journal-alpha.webp') center/100% 100% no-repeat;padding:9% 12% 15%;box-shadow:none;filter:drop-shadow(0 18px 20px #152b3240);overflow:visible}
.trainers-section .dex-body{grid-template-columns:44% 1fr;gap:clamp(20px,3vw,45px)}
.trainers-section .trainer-image{height:clamp(270px,27vw,390px);width:100%;max-width:320px}
.trainers-section .trainer-info{padding:0;align-self:center}.trainer-info h3{font-size:clamp(30px,3.2vw,48px);margin:10px 0 15px}
.trainer-info .trainer-role{font-size:22px;margin-top:12px}.trainer-info blockquote{font-size:26px}.trainer-info dl{margin:12px 0;gap:7px}.trainer-info dt{color:#49625c}.trainer-info dd{font-size:20px}
.trainers-section .trainer-list{gap:8px;margin-top:0}.trainer-tab img{height:65px}.trainer-tab{min-height:88px}.trainer-tab span{font-size:20px}
.wordmark b{font-size:28px}.wordmark em{letter-spacing:7px}
@media(max-width:800px){.trainers-section .dex{padding:10% 12% 17%}.trainers-section .dex-body{grid-template-columns:40% 1fr;gap:20px}.trainers-section .trainer-image{height:270px}.trainer-info h3{font-size:32px}.trainer-info blockquote{font-size:22px}.trainer-info .trainer-role{font-size:20px}.trainer-info dl{gap:5px}.trainer-info dd{font-size:18px}.trainer-info dt{font-size:4px;min-width:70px}.trainers-section .trainer-tab img{height:45px}.trainers-section .trainer-tab{min-height:68px}.trainers-section .trainer-tab span{font-size:17px}}
@media(max-width:560px){.trainers-section .dex{padding:12% 12% 17%;background-size:100% 100%}.trainers-section .dex-body{display:grid;grid-template-columns:1fr;gap:20px}.trainers-section .trainer-list{grid-column:1;grid-row:1;grid-template-columns:repeat(4,1fr);gap:6px}.trainers-section .trainer-image{grid-column:1;grid-row:2;height:260px;max-width:210px;transform:rotate(-2deg)}.trainers-section .trainer-info{grid-column:1;grid-row:3;padding:5px}.trainers-section .trainer-info h3{font-size:33px}.trainers-section .trainer-info blockquote{font-size:24px}.trainers-section .trainer-info dd{font-size:20px}.trainers-section .trainer-tab img{height:44px}.trainers-section .trainer-tab{min-height:66px}.trainer-info .button{width:100%;min-height:48px}.trainer-info .trainer-role{margin-top:10px}.trainer-info .trainer-lore{font-size:21px}.wordmark b{font-size:22px}.wordmark em{letter-spacing:5px}}
@media(max-width:560px){
 .trainers-section .dex{padding:0;background:none;filter:none}
 .trainers-section .dex:before{content:'';display:block;aspect-ratio:1.495;background:url('assets/robots/journal-alpha.webp') center/contain no-repeat}
 .trainers-section .dex-body{display:flex;flex-direction:column;gap:16px}
 .trainers-section .trainer-image{position:absolute;top:22px;left:12%;width:32%;height:clamp(110px,35vw,155px);margin:0;border-width:3px}
 .trainers-section .trainer-image .index-tag{display:none}
 .trainers-section .trainer-info{position:static;align-self:stretch;background:#f5e8cb;padding:24px;border:1px solid #a48c65;border-radius:3px;box-shadow:0 5px 15px #12282d30;order:1}
 .trainers-section .trainer-info h3{position:absolute;top:45px;right:12%;width:35%;font-size:clamp(22px,6.5vw,30px);margin:0;line-height:1}
 .trainers-section .trainer-info .trainer-role{position:absolute;top:110px;right:12%;width:35%;font-size:17px;line-height:1;margin:0}
 .trainers-section .trainer-info .info-meta{display:none}
 .trainers-section .trainer-list{order:2;display:grid;grid-template-columns:repeat(4,1fr);margin:0;gap:8px}
 .trainers-section .trainer-tab img{height:60px}.trainers-section .trainer-tab span{font-size:20px}
 .trainers-section .trainer-info .button{margin-bottom:0}
}
.trainer-info .trainer-role{color:#465b50}.trainer-info dt{font-size:6px;line-height:1.6;min-width:95px;color:#40584e}
@media(max-width:560px){.trainer-info dt{font-size:5px;min-width:85px}.trainers-section .trainer-info .trainer-role{color:#405346}}
