/* Shared site; portrait framing is selected by aspect ratio, not device name. */
:root{--header-bottom:110px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:calc(var(--header-bottom) + 16px);overflow-x:visible}
body,main{overflow-x:visible}
.site-header{top:calc(12px + var(--safe-top))}
.story-stage{overflow:clip}
.story-height-probe{position:absolute;height:100svh;width:1px;visibility:hidden;pointer-events:none}
.story-poster{object-fit:cover}
.story-shade{bottom:auto;height:100svh}
/* Separate from the stage's stacking context, above floating cards but below
   the navigation. The transparent layer never intercepts scrolling or taps. */
.story-control-layer{position:absolute;inset:0;z-index:25;pointer-events:none}
.story-control-anchor{position:sticky;top:0;height:100svh;pointer-events:none}
.story:not(.motion-ready) .story-control-anchor{position:relative;height:var(--static-hero-height,100svh)}
.story .motion-toggle{top:auto;bottom:calc(12px + var(--safe-bottom));right:clamp(14px,4vw,64px);z-index:auto;min-height:44px;padding:0 6px;border:0;border-radius:4px;background:transparent;color:#c0cbd3;font-size:12px;font-weight:500;pointer-events:auto;touch-action:manipulation;transition:color 120ms,background-color 120ms}
.story .motion-toggle:is(:hover,:focus-visible){color:var(--white);background:#0b101560}
.story .hero-bottom{left:clamp(14px,4vw,64px);right:calc(clamp(14px,4vw,64px) + 150px);bottom:calc(12px + var(--safe-bottom));min-height:44px;gap:20px;pointer-events:none}
.story .hero-bottom a{pointer-events:auto}
.hero-copy .scroll-cue{margin-top:20px;color:var(--muted);font-size:12px}
.story:not(.motion-ready) .scroll-cue{display:none}
.hero-bottom a{display:inline-flex;align-items:center;min-height:44px;font-size:12px;letter-spacing:0}
.reveal-community{padding-top:36px;max-width:520px}
.reveal-community p{font-size:16px;color:var(--muted)}
.cartridge-slot{min-width:0}
.cartridge-caption p{font-size:12px}
.home-games{scroll-margin-top:0}
.home-games:focus{outline:none}
.home-games:focus-visible{outline:2px solid var(--dawn);outline-offset:8px}
.nav-dismiss{display:none}
.site-header #main-nav a{min-height:44px}
.contact-form input,.contact-form textarea,.contact-form select{font-size:16px}
.contact-form label{font-size:14px}
.game-description,.principles p,.contact-layout aside>p{font-size:16px}
.sequence-status{font-size:12px}
.header-brand{min-height:44px;justify-content:center}
@media(max-width:900px){
 .site-header{top:calc(10px + var(--safe-top));padding-top:0}
 .site-header .menu-toggle{min-width:82px}
 .site-header #main-nav{max-height:calc(100dvh - var(--header-bottom) - 24px - var(--safe-bottom));overscroll-behavior:contain}
 .nav-dismiss{display:flex;align-items:center;justify-content:flex-end;min-height:44px;width:100%;border:0;background:none;color:var(--muted);font-size:14px}
 .site-header #main-nav .nav-community{display:flex;margin:8px 0 4px;min-height:48px;background:var(--dawn);color:var(--ink);font-size:14px}
 .nav-community:before,.nav-community:after{display:none!important}
}
@media(min-width:901px){.site-header #main-nav .nav-community{display:none}}
@media(max-aspect-ratio:1/1){
 .home-games{padding-top:calc(var(--header-bottom) + 24px)}
 .story .hero-copy,.story .ascent-copy,.story .horizon-copy{padding-left:7%;padding-right:7%;max-width:none;width:auto}
 .story.motion-ready .hero-copy,.story.motion-ready .ascent-copy,.story.motion-ready .horizon-copy{justify-content:flex-start;padding-top:calc(var(--header-bottom) + 70px);padding-bottom:0}
 .story .hero-copy h1{font-size:clamp(40px,12.4vw,82px);max-width:700px}
 .story.motion-ready .hero-copy .eyebrow,.story.motion-ready .hero-copy .lede,.story.motion-ready .hero-copy .link-pending,.story.motion-ready .hero-copy .text-link{display:none}
 .story.motion-ready .hero-copy .actions{margin-top:24px}
 .story.motion-ready .ascent-copy h2,.story.motion-ready .horizon-copy h2{font-size:clamp(36px,10vw,68px)}
 .story.motion-ready .ascent-copy .lede{font-size:16px;max-width:440px;line-height:1.65;margin:20px 0}
 .story.motion-ready .horizon-copy .lede{font-size:16px}
 .story.motion-ready .horizon-copy .showcase-heading{flex-direction:column;align-items:flex-start;gap:10px}
 .story.motion-ready .hero-bottom{bottom:calc(12px + var(--safe-bottom))}
 .story.motion-ready #beat-label{display:none}
 .story .button{font-size:14px;min-height:48px;padding:12px 18px}
 .story.motion-ready .hero-copy .button{font-size:14px;min-height:48px;padding:12px 18px}
 .story:not(.motion-ready) .hero-copy{margin-inline:7%;padding-inline:0;padding-top:calc(var(--header-bottom) + 68px);min-height:min(100svh,900px)}
 .story:not(.motion-ready) .hero-copy h1{font-size:clamp(40px,12.4vw,82px)}
 .story:not(.motion-ready) .hero-copy .lede{font-size:16px;line-height:1.75}
 .story:not(.motion-ready) .hero-copy .eyebrow{display:none}
 .story:not(.motion-ready) .ascent-copy,.story:not(.motion-ready) .horizon-copy{padding:56px 7%;background:var(--ink)}
 .story:not(.motion-ready) .ascent-copy h2{font-size:clamp(36px,10vw,64px)}
 .story:not(.motion-ready) .horizon-copy{display:none}
 .cartridge-grid{grid-template-columns:1fr;gap:32px;max-width:600px;margin-inline:auto}
 .cartridge-slot{aspect-ratio:1.2}
 .cartridge-caption h3{font-size:clamp(25px,6vw,36px)}
 .cartridge-caption{padding:16px}
 .cartridge-caption p{font-size:12px}
 .studio-intro,.about-detail,.contact-layout{grid-template-columns:1fr;gap:32px}
 .reveal-community{margin-inline:auto;max-width:600px}
 .showcase-heading{flex-wrap:wrap;gap:16px}
 .home-games .showcase-heading h2{font-size:clamp(44px,10vw,64px)}
 .single .game-card{grid-template-columns:1fr}
}
@media(max-height:739px){
 .story:not(.motion-ready) .hero-copy{min-height:0;padding-top:calc(var(--header-bottom) + 68px);padding-bottom:60px}
 .story:not(.motion-ready) .hero-copy .actions{row-gap:8px}
 .story:not(.motion-ready) .hero-copy .lede{font-size:16px}
 .story:not(.motion-ready) .hero-copy h1{font-size:clamp(40px,8vw,70px)}
 .story:not(.motion-ready) .hero-copy .link-pending{font-size:12px}
}
@media(max-width:400px){.story:not(.motion-ready) .hero-copy h1{font-size:clamp(38px,12.4vw,50px)}.hero-copy .actions{gap:8px 18px}.footer-invitation h2{font-size:clamp(42px,12vw,54px)}}
@media(max-width:600px){
 .story .hero-bottom{justify-content:flex-start;gap:0}
 .story-track{display:none}
 .story .hero-bottom a{font-size:11px;white-space:nowrap}
}
@media(max-aspect-ratio:1/1) and (max-height:739px){
 .story.motion-ready .hero-copy,.story.motion-ready .ascent-copy,.story.motion-ready .horizon-copy{padding-top:calc(var(--header-bottom) + 24px)}
 .story.motion-ready .hero-copy h1{font-size:clamp(34px,11vw,54px)}
 .story.motion-ready .hero-copy .scroll-cue{display:none}
 .story.motion-ready .horizon-copy .lede{margin-top:0;font-size:14px;max-width:270px}
}
@media(min-aspect-ratio:1/1) and (max-height:600px){
 .story.motion-ready .hero-copy{padding-top:calc(var(--header-bottom) + 20px);padding-bottom:70px;justify-content:flex-start;max-width:57%}
 .story.motion-ready .hero-copy h1{font-size:clamp(30px,5vw,54px)}
 .story.motion-ready .hero-copy :is(.eyebrow,.lede,.link-pending,.text-link,.scroll-cue){display:none}
 .story.motion-ready .hero-copy .actions{margin-top:18px}
 .story.motion-ready .horizon-copy{padding-top:calc(var(--header-bottom) + 20px)}
 .story.motion-ready .horizon-copy h2{font-size:36px}
 .story.motion-ready .horizon-copy .lede{font-size:14px;max-width:50%}
 .story.motion-ready .horizon-copy .showcase-heading{margin-bottom:14px}
 .story.motion-ready #beat-label{display:none}
}
/* The primary action follows the announced game before anonymous teasers. */
.reveal-community{grid-column:1/-1;grid-row:2;margin:0;padding:0}
.story:not(.motion-ready) .hero-copy h1{max-width:100%;width:auto}
body:not(.cards-motion) .cartridge-slot{aspect-ratio:auto;min-height:260px}
body:not(.cards-motion) .cartridge-float,body:not(.cards-motion) .cartridge{height:auto;min-height:inherit}
body:not(.cards-motion) .cartridge-front{position:relative;min-height:inherit;transform:none}
body:not(.cards-motion) .locked-face{min-height:260px}
body:not(.cards-motion) .cartridge-back,body:not(.cards-motion) .cartridge-edge{display:none}
@media(max-aspect-ratio:1/1){
 .reveal-community{grid-row:auto;order:2}
 .cartridge-slot[data-card="0"]{order:1}
 .cartridge-slot[data-card="1"]{order:3}
 .cartridge-slot[data-card="2"]{order:4}
}

.cartridge-grid:not(:has(.cartridge-slot[data-card="1"])){grid-template-columns:minmax(0,600px)}

/* Partner work keeps its own attribution beside the supplied artwork. */
.partner-projects{padding-top:64px;padding-bottom:80px}
.partner-feature{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);overflow:hidden;border:1px solid #35434d;border-radius:16px;background:#10181f}
.partner-art{align-self:center;background:#0b1015}
.partner-art img{display:block;width:100%;height:auto}
.partner-copy{padding:clamp(24px,4vw,56px);align-self:center}
.partner-copy .eyebrow{color:#8dd9ed;margin:0 0 20px;font-size:12px}
.partner-copy h2{font-size:clamp(36px,4vw,62px);line-height:1.05;margin:0 0 24px}
.partner-description{font-size:18px;line-height:1.6;color:var(--white);margin:0}
.partner-relationship{font-size:16px;line-height:1.6;color:#b8c7d2;margin:24px 0 0;padding-top:20px;border-top:1px solid #35434d}
@media(max-width:760px){
 .partner-projects{padding-top:40px;padding-bottom:48px}
 .partner-feature{grid-template-columns:1fr}
 .partner-copy{padding:26px 24px 30px}
 .partner-copy .eyebrow{margin-bottom:14px}
 .partner-copy h2{margin-bottom:18px}
}
