/* Touch layouts and safe areas; the desktop art direction stays in style.css. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.mobile-music-toggle{display:none;background:none;border:1px solid var(--line);place-items:center;min-width:44px;height:44px;padding:10px}
*,*::before,*::after{letter-spacing:0!important}
.section h2{font-size:43px}.hero h1{font-size:100px}.upgrade-heading h2{font-size:62px}
.lightbox{height:94vh;height:94dvh;max-height:94vh;max-height:94dvh}
.lightbox-stage{min-height:0}.lightbox-image{touch-action:pinch-zoom}
.entry-copy{padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom))}
.company-wordmark.company-logo{display:block;flex:0 0 88px;width:88px;padding:0;background:transparent;border:0}
.company-logo img{width:100%;aspect-ratio:512/486;object-fit:contain}
.footer-information{min-width:0}
@media(max-width:1100px){
  .service-feature{grid-template-columns:minmax(0,1fr);gap:28px}
  .service-copy ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
  .service-copy li{display:block}.service-copy li strong{display:block;margin-bottom:5px}
}
@media(min-width:1700px){.hero h1{font-size:110px}}
@media(max-width:1250px){.section h2{font-size:34px}.hero h1{font-size:74px}}
@media(max-width:1000px){.section h2{font-size:29px}.hero h1{font-size:73px}.upgrade-heading h2{font-size:47px}}
@media(hover:none) and (pointer:coarse){
  .gallery-thumbs button{width:54px;height:44px}
  .lightbox-close,.lightbox-prev,.lightbox-next{min-width:44px;min-height:44px}
  .text-link{min-height:44px;align-items:center}
  .utility-rail{right:max(6px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom))}
  .music-controls>button{width:44px;height:44px}
  .volume-popup{height:46px}
}
@media(max-width:760px){
  html{scroll-padding-top:calc(86px + env(safe-area-inset-top))}
  .site-header{height:calc(68px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(14px,env(safe-area-inset-right)) 0 max(18px,env(safe-area-inset-left));gap:10px}
  .site-header nav{top:calc(68px + env(safe-area-inset-top));max-height:calc(100dvh - 86px);overflow-y:auto;overscroll-behavior:contain}
  .wordmark{font-size:21px;gap:11px}.wordmark small{font-size:9px}
  .header-download{display:none}
  .mobile-music-toggle{display:grid;margin-left:auto}
  .utility-rail{display:none}
  .header-download span{margin-left:8px}
  .menu-toggle{flex-shrink:0;width:44px;height:44px;display:grid;align-content:center;justify-content:center;padding:0}
  .menu-toggle span{margin:3px 0}
  .hero{height:calc(100svh - 22px);min-height:680px;max-height:850px}
  .hero-content{padding:calc(94px + env(safe-area-inset-top)) 4px 0}
  .edition{margin-bottom:14px}.edition strong{font-size:44px}.edition>span{font-size:16px}
  .hero-kicker,.hero-description{display:none}
  .hero h1{font-size:58px;line-height:1.25}.title-seal{right:-29px;top:10px}
  .hero-slogan{font-size:21px;margin:9px 0 13px}
  .hero-rules{font-size:11px;gap:9px;margin:12px 0 24px;flex-wrap:wrap}
  .hero-rules span+span:before{margin-right:9px}
  .hero-actions .download-button{min-height:65px}
  .hero-characters{top:calc(405px + env(safe-area-inset-top));bottom:68px;right:1%;width:91%}
  .hero-characters img{max-height:100%}.hero-art-caption{bottom:-15px;font-size:12px}.hero-art-caption small{font-size:9px}
  .hero-bottom{left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right))}
  .container{width:calc(100% - 40px);min-width:0}.container>*{min-width:0}
  .section h2{font-size:30px}.upgrade-heading h2{font-size:33px}
  .section-lead,.class-description,.event-copy>p,.costume-copy>p,.service-main p,.service-secondary p{font-size:14px;line-height:1.95}
  .event-copy li,.event-rewards p,.upgrade-instructions li p,.material-note,.service-main li,.classic-note p{font-size:12px;line-height:1.9}
  .section-heading>p,.upgrade-heading>p{font-size:12px;line-height:1.95}
  .version-principles h3{font-size:12px}.version-principles p{font-size:10px}
  .eyebrow,.section-heading .eyebrow,.intro-copy .eyebrow,.upgrade-heading .eyebrow{font-size:9px;flex-wrap:wrap}
  .class-tabs button{min-height:70px}.class-tabs small{font-size:9px}
  .event-tabs small{font-size:10px}.event-tabs button{min-height:78px}
  .gallery-bar{flex-wrap:wrap;gap:12px}.gallery-bar>p{font-size:11px;flex-basis:100%;max-width:none}
  .gallery-thumbs{margin-right:auto}.gallery-thumbs button{width:62px;height:44px}
  .image-counter{font-size:12px}.event-footnote{font-size:11px}
  .zoom-label{position:static;display:flex;justify-content:flex-end;align-items:center;gap:14px;width:100%;min-height:32px;opacity:1;transform:none;border-width:1px 0 0;font-size:10px}
  .event-poster{aspect-ratio:auto;display:block}.event-poster>img{height:auto;aspect-ratio:1672/941;object-fit:contain}
  .poster-button:before{bottom:33px}
  .upgrade-art:after{inset:-5px}
  .key-combo{flex-wrap:wrap}.costume-copy{column-gap:18px}.costume-detail span{font-size:11px}
  .service-main{gap:16px}.service-main li span{font-size:12px}.service-main h3{font-size:24px}
  .service-feature{padding-block:28px;gap:24px}.service-copy ul{display:block;margin-top:20px}
  .service-heading{gap:16px;margin-bottom:16px}.service-copy h3{font-size:24px}
  .service-copy li{display:grid;grid-template-columns:4em minmax(0,1fr)}.service-copy li strong{margin:0}
  .lightbox{height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));width:calc(100% - 16px);max-width:calc(100% - 16px)}
  .lightbox-toolbar{height:56px;padding-inline:12px}.lightbox-toolbar h2{font-size:17px;overflow-wrap:anywhere}
  .lightbox-stage{height:calc(100% - 142px);padding:8px 4px 54px}
  .lightbox-image{max-height:100%;max-width:100%}
  .lightbox-prev,.lightbox-next{width:48px;height:44px;bottom:4px}
  .lightbox-close{min-width:44px;min-height:44px;flex-shrink:0}
  .lightbox-footer{height:86px;font-size:11px;padding:10px 14px;overflow-y:auto;line-height:1.8}
  .lightbox-counter{font-size:12px;padding-top:3px}
}
@media(max-width:360px){
  .container{width:calc(100% - 32px)}.site-header{gap:5px;padding-inline:12px}
  .wordmark{font-size:18px;gap:9px}.wordmark small{font-size:8px}.wordmark-seal{font-size:12px}
  .header-download{font-size:11px;padding-inline:8px}.header-download span{margin-left:6px}
  .hero h1{font-size:52px}.hero-slogan{font-size:20px}.hero-rules{font-size:10px;gap:7px}
  .hero-rules span+span:before{margin-right:7px}.section h2{font-size:26px}.upgrade-heading h2{font-size:29px}
  .version-principles h3{font-size:10px}.version-principles p{font-size:9px}
  .service-main{display:block}.service-main>kbd{margin-bottom:22px}.service-secondary{padding-left:0;padding-top:92px}
}
@media(max-width:760px) and (max-height:700px) and (orientation:portrait){
  .hero{min-height:540px;height:calc(100svh - 16px)}
  .hero-content{padding-top:86px}.edition strong{font-size:34px}.edition{margin-bottom:9px}
  .hero h1{font-size:50px}.hero-slogan{font-size:19px;margin:5px 0 8px}
  .hero-rules{margin:10px 0 17px}.hero-actions .download-button{min-height:58px;font-size:19px}
  .hero-characters{top:350px;bottom:54px}.hero-art-caption{display:none}
}
@media(max-height:520px){
  .entry-topline,.entry-note{display:none}.entry-brand h2{font-size:64px}.entry-edition{margin-bottom:12px}
  .entry-edition>strong{font-size:32px}.entry-rule{margin:12px 0 20px}.entry-seal{top:12px}
  .entry-copy .download-button{min-height:58px}
  .lightbox-toolbar{height:50px}.lightbox-stage{height:calc(100% - 105px)}.lightbox-footer{height:55px}
}
@media(max-width:1000px) and (orientation:landscape) and (max-height:600px){
  .site-header{height:64px;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
  .site-header nav{display:none;position:absolute;left:0;right:0;top:64px;background:#131b15fc;max-height:calc(100dvh - 64px);overflow:auto;padding:12px 24px}
  .site-header nav.is-open{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 20px}
  .site-header nav a{padding:12px 0;min-height:44px}.site-header nav a:after{display:none}
  .header-download{display:none}
  .mobile-music-toggle{display:grid;margin-left:auto}
  .utility-rail{display:none}
  .menu-toggle{display:grid;align-content:center;justify-content:center;width:44px;height:44px;padding:0}
  .menu-toggle span{width:20px;height:1px;background:var(--gold);margin:3px 0}
  .hero{height:510px;min-height:510px}.hero-content{padding:95px 0 60px;width:65%}
  .hero h1{font-size:58px}.hero-slogan{font-size:22px}.hero-description,.hero-kicker{display:none}
  .hero-characters{top:90px;bottom:60px;width:46%;right:0}.hero-rules{margin-block:15px 23px}
}
@media(max-width:760px) and (orientation:portrait){
  .hero-inner{display:flex;flex-direction:column;align-items:stretch;padding-bottom:68px}
  .hero-content{flex:none}
  .hero-characters{position:relative;inset:auto;flex:1;min-height:0;width:91%;align-self:center;margin-top:16px}
}

/* One company signature and a readable legal block; authorization stays in the floating rail. */
.site-footer{padding:42px 0;background:#0c120e}
.footer-inner{display:grid;grid-template-columns:minmax(220px,.85fr) minmax(0,1.65fr);align-items:center;gap:40px;padding-right:0}
.footer-brand{display:flex;align-items:center;gap:24px;min-width:0}
.footer-brand-name{display:grid;gap:2px}.footer-brand-name strong{font:500 28px/1.4 var(--serif);color:#d4c29d;white-space:nowrap}
.footer-brand-name span{font-size:14px;color:#a4ad9c;line-height:1.8}
.footer-information{width:auto;min-width:0;font-size:13px;line-height:1.8}
.footer-label{font-size:12px;color:#c0aa82;margin-bottom:12px}
.health-notice{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:20px;row-gap:7px;font-size:13px;line-height:1.8;color:#a8b09f;margin:0}
.health-notice li{white-space:nowrap}
.footer-copyright{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:18px;padding-top:14px;border-top:1px solid #bd9d622b;color:#8f9b86;font-size:12px;line-height:1.8}
@media(max-width:1100px){.footer-inner{grid-template-columns:220px minmax(0,1fr);gap:32px}.footer-brand{gap:18px}.health-notice{column-gap:12px}}
@media(max-width:900px){.footer-inner{grid-template-columns:minmax(0,1fr);gap:26px}.footer-brand-name strong{font-size:26px}.footer-information{border-top:1px solid #bd9d622b;padding-top:22px}.footer-copyright{border:0;padding-top:0}}
@media(max-width:600px){
  .site-footer{padding:30px 0 calc(30px + env(safe-area-inset-bottom))}
  .footer-brand{gap:20px}.footer-brand .company-logo{width:72px;flex-basis:72px}
  .footer-brand-name strong{font-size:25px}.footer-brand-name span{font-size:13px}
  .health-notice{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px;font-size:13px}
  .footer-copyright{margin-top:20px}
}
