/* Bootstrap supplies the grid; NS tokens and custom components own the appearance. */
:root{--bg-primary:var(--bg);--bg-secondary:var(--surface-soft);--text-primary:var(--text);--text-secondary:var(--muted);--premium-ease:cubic-bezier(.22,1,.36,1)}
.catalog-grid.row{display:flex;gap:0;--bs-gutter-x:24px;--bs-gutter-y:24px}.catalog-grid>.col-12{min-width:0}.catalog-grid .catalog-card,.catalog-grid .future-note{height:100%}.catalog-art{padding:0;background:var(--surface);overflow:hidden}.block-cover{display:block;width:100%;height:auto;object-fit:contain;aspect-ratio:1794/876}.block-icon{display:block;width:80px;height:auto;aspect-ratio:1;object-fit:contain;border-radius:20px}.catalog-copy>.block-icon{margin:0 0 24px}.catalog-copy h3{font-weight:800}.catalog-copy .pills{flex-wrap:wrap}.catalog-copy{padding:32px}.catalog-card{box-shadow:var(--shadow)}
.game-detail .game-showcase{display:block;overflow:hidden;background:var(--surface);border-radius:32px}.game-detail .game-showcase:hover{transform:none}.showcase-info.row{padding:24px 30px 38px;margin:0;--bs-gutter-y:24px;--bs-gutter-x:32px}.showcase-icon{display:flex;justify-content:center;align-items:center}.showcase-icon .block-icon{width:min(100%,230px);border-radius:28px}.game-showcase .game-copy{padding:0 16px}.game-showcase .game-copy>p{max-width:620px}.game-showcase .game-wordmark{margin:24px 0 16px}.showcase-cover{overflow:hidden}.story-icon{width:min(100%,240px);height:auto;aspect-ratio:1;object-fit:contain;display:block;margin:28px auto 0;border-radius:28px;transform:scale(var(--story-scale,1));transition:transform .6s var(--premium-ease)}.story-visual{transition:background-color .6s,border-color .6s}.story-visual[data-step="2"]{border-color:var(--accent-text)}.story-visual[data-step="3"]{background:var(--surface-soft)}.gallery-note{color:var(--muted);font-size:14px;line-height:1.7;margin:0 0 24px}.game-detail .screenshot-placeholder{aspect-ratio:9/16}
header{transition:background-color .35s,box-shadow .35s,transform .5s var(--premium-ease)}header.scrolled{transform:translateY(-5px)}.hero-copy>h1,.hero-copy>p,.hero-copy>.actions{animation:ns-enter .75s var(--premium-ease) both}.hero-copy>h1{animation-delay:.08s}.hero-copy>p{animation-delay:.16s}.hero-copy>.actions{animation-delay:.24s}.hero-copy>.actions{flex-wrap:wrap}.hero-art{animation:ns-logo-enter .8s var(--premium-ease) both}.motion-pending{opacity:0;transform:translateY(24px) scale(.985)}.motion-pending,.motion-shown{transition-duration:.65s;transition-timing-function:var(--premium-ease)}.catalog-card.motion-shown{transition-delay:0ms}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent-text);outline-offset:5px}.story-visual h2{overflow-wrap:anywhere}.game-copy,.catalog-copy,.future-note{min-width:0}.store-links{gap:10px}.store-status{line-height:1.5}.button{min-height:44px}.legal{overflow-wrap:break-word}
@keyframes ns-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes ns-logo-enter{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
@media(max-width:991px){.catalog-grid .future-note{min-height:290px}.showcase-icon{justify-content:flex-start}.showcase-icon .block-icon{width:100px}.game-showcase .game-copy{padding:0 12px}.showcase-info.row{padding:8px 12px 28px}}
@media(max-width:960px){header nav.open{animation:ns-enter .3s var(--premium-ease)}header nav{max-height:calc(100svh - 140px);overflow-y:auto}}
@media(max-width:760px){.catalog-copy{padding:24px}.catalog-grid.row{--bs-gutter-x:0}.catalog-grid>.col-12{padding:0}.game-detail .game-showcase{border-radius:24px}.story-icon{width:160px;transform:none}.story-visual{position:static}.game-detail .screenshot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.screenshot-placeholder{min-width:0}.hero-copy>.actions>.button{white-space:normal}.hero-copy h1{font-size:clamp(52px,13vw,90px)}header.scrolled{transform:none}}
@media(prefers-reduced-motion:reduce){.hero-copy>h1,.hero-copy>p,.hero-copy>.actions,.hero-art,header nav.open{animation:none;opacity:1;transform:none}.motion-pending,.motion-shown{opacity:1;transform:none;transition:none}.story-icon{transform:none}.story-visual{position:static}header.scrolled{transform:none}}
