/* Product photography: original framing, no image filters or generative edits. */
.deck-skip { position:fixed; top:8px; left:8px; transform:translateY(-160%); z-index:200; background:#ff007f; color:#000; padding:12px; }
.deck-skip:focus { transform:none; }
.deck-page { color:#fff; }
.deck-page .header { position:relative; }
.deck-breadcrumb { display:flex; gap:14px; font-size:.65rem; letter-spacing:.1em; color:#aaa; margin:32px auto; max-width:1440px; padding:0 40px; }
.deck-breadcrumb a { color:inherit; text-decoration:none; }
.deck-product { max-width:1440px; margin:0 auto; padding:0 40px 100px; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:clamp(32px,6vw,100px); align-items:start; }
.deck-gallery { min-width:0; }
.deck-gallery__main { display:block; position:relative; background:#171717; color:#fff; }
.deck-gallery__main img { width:100%; height:auto; display:block; }
.deck-gallery__zoom { position:absolute; bottom:18px; right:18px; font-size:.65rem; padding:8px 10px; background:#000b; letter-spacing:.08em; }
.deck-gallery__caption { display:flex; justify-content:space-between; gap:12px; font-size:.65rem; color:#b3b3b3; padding:17px 0; text-transform:uppercase; letter-spacing:.05em; }
.deck-thumbs { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:8px; }
.deck-thumb { border:1px solid transparent; display:block; padding:2px; }
.deck-thumb[aria-current="true"] { border-color:#ff007f; }
.deck-thumb img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; background:#161616; }
.deck-status { color:#bbb; font-size:.7rem; margin-top:12px; }
.deck-info { position:sticky; top:40px; padding-top:40px; }
.deck-eyebrow { font-size:.68rem; letter-spacing:.15em; color:#b3b3b3; margin-bottom:24px; }
.deck-info h1 { font-size:clamp(3.2rem,6.4vw,6.5rem); line-height:.91; letter-spacing:-.045em; max-width:7ch; }
.deck-info__intro { font-size:.83rem; color:#b3b3b3; line-height:1.8; margin-top:28px; }
.deck-price { font-size:2.4rem; margin-top:32px; line-height:1; }
.deck-shipping { font-size:.65rem; color:#b3b3b3; margin:12px 0 24px; }
.deck-buy { width:100%; max-width:440px; }
.deck-checkout-note { font-size:.62rem; color:#999; margin:12px 0 32px; }
.deck-facts { border-top:1px solid #303030; font-size:.7rem; line-height:1.7; }
.deck-facts>div { display:grid; grid-template-columns:1fr 1.4fr; gap:12px; padding:16px 0; border-bottom:1px solid #303030; }
.deck-facts dt { color:#999; font-size:.62rem; letter-spacing:.08em; }
.deck-text-link { display:inline-block; color:#fff; font-size:.7rem; text-decoration:none; border-bottom:1px solid #777; padding:0 0 7px; margin-top:28px; letter-spacing:.06em; }
.deck-editorial { border-top:1px solid #2a2a2a; max-width:1440px; margin:0 auto; padding:80px 40px; display:grid; grid-template-columns:1.25fr 1fr; gap:clamp(32px,6vw,100px); align-items:center; }
.deck-editorial>img { width:100%; height:auto; display:block; }
.deck-editorial h2 { font-size:clamp(2.5rem,4vw,4.5rem); line-height:.95; letter-spacing:-.03em; }
.deck-games { list-style:none; margin-top:28px; }
.deck-games li { display:flex; gap:20px; padding:20px 0; border-bottom:1px solid #303030; }
.deck-games li>span { color:#ff007f; font-size:.7rem; }
.deck-games h3 { font-size:.85rem; font-weight:400; }
.deck-games p { font-size:.7rem; color:#aaa; margin-top:8px; }
.deck-viewer { width:100vw; height:100dvh; max-width:none; max-height:none; border:0; padding:20px 28px; background:#090909; color:#fff; }
.deck-viewer[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:16px; }
.deck-viewer::backdrop { background:#090909; }
.deck-viewer__bar,.deck-viewer__nav { display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:.7rem; }
.deck-viewer button { color:#fff; padding:12px 4px; border:0; background:none; cursor:pointer; font:inherit; }
.deck-viewer img { width:100%; height:100%; object-fit:contain; min-height:0; }
.deck-page :focus-visible,.deck-viewer :focus-visible { outline:2px solid #ff007f; outline-offset:4px; }
body:has(.deck-viewer[open]) { overflow:hidden; }
/* Three photographic moments on the existing homepage. */
.preorder-hero__image .home-deck-photo { display:block; width:100%; height:auto; max-height:680px; object-fit:contain; }
.home-deck-link { display:inline-block; margin-top:22px; color:#fff; font-size:.72rem; text-underline-offset:7px; }
.home-deck-layout { max-width:1100px; margin:0 auto; padding:48px 24px 80px; }
.home-deck-layout img { width:100%; height:auto; display:block; }
.home-deck-layout figcaption { display:flex; justify-content:space-between; gap:20px; font-size:.7rem; color:#aaa; margin-top:18px; }
.home-deck-layout a { color:#fff; text-underline-offset:6px; }
.home-deck-close { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; max-width:1100px; padding:80px 24px; margin:auto; border-top:1px solid #2a2a2a; }
.home-deck-close img { width:100%; height:auto; display:block; }
.home-deck-close h2 { font-size:clamp(2.5rem,5vw,5rem); line-height:.95; letter-spacing:-.03em; }
.home-deck-close p { color:#aaa; font-size:.8rem; margin:24px 0; line-height:1.7; }
.home-deck-close .btn-primary { margin-top:28px; width:100%; }
@media(max-width:899px) {
 .deck-breadcrumb { padding:0 24px; margin:24px auto; }
 .deck-product { grid-template-columns:1fr; gap:36px; padding:0 24px 64px; }
 .deck-gallery__main img { max-height:70vh; object-fit:contain; }
 .deck-info { position:static; padding-top:0; }
 .deck-info h1 { font-size:clamp(3.8rem,12vw,6rem); max-width:12ch; }
 .deck-editorial { grid-template-columns:1fr; padding:48px 24px; gap:36px; }
 .deck-editorial h2 br { display:none; }
 .deck-viewer { padding:12px; }
 .home-deck-close { gap:32px; }
}
@media(max-width:540px) {
 .deck-page .header { padding:20px 16px; gap:12px; }
 .deck-page .header__wordmark { font-size:1.4rem; }
 .deck-page .header__nav { gap:12px; }
 .deck-page .header__nav-link { font-size:.55rem; }
 .deck-page .header>a:last-child { display:none; }
 .deck-breadcrumb,.deck-product { padding-left:16px; padding-right:16px; }
 .deck-thumbs { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .deck-viewer__bar,.deck-viewer__nav { font-size:.6rem; }
 .home-deck-close { grid-template-columns:1fr; padding:48px 24px; }
 .home-deck-layout figcaption { flex-direction:column; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
.deck-page .header__nav-link,.deck-home .header__nav-link { color:#aaa; }
.deck-page .header__nav-link[aria-current="page"],.deck-page .header__nav-link:hover,.deck-home .header__nav-link:hover { color:#fff; }
@media(max-width:540px) {
 .deck-home .header { display:grid; grid-template-columns:1fr auto; gap:12px; padding:16px 24px; }
 .deck-home .header__nav { grid-column:1 / -1; grid-row:2; justify-content:space-between; }
 .deck-home .header>a:last-child { grid-column:2; grid-row:1; }
}
.deck-faq { max-width:850px; margin:0 auto; padding:80px 24px; }
.deck-faq h2 { font-size:clamp(2rem,5vw,4rem); line-height:1; margin-bottom:40px; }
.deck-faq details { border-bottom:1px solid #303030; font-family:'Space Mono',monospace; }
.deck-faq summary { display:flex; align-items:center; justify-content:space-between; gap:20px; list-style:none; cursor:pointer; padding:22px 0; font-size:.85rem; color:#fff; }
.deck-faq summary::-webkit-details-marker { display:none; }
.deck-faq summary::after { content:'+'; color:#ff007f; font-size:1.2rem; flex-shrink:0; }
.deck-faq details[open] summary::after { content:'−'; }
.deck-faq p { padding:0 24px 24px 0; font-size:.78rem; line-height:1.8; color:#bbb; }
.deck-faq a { color:#fff; text-underline-offset:4px; }
.deck-faq summary:focus-visible { outline:2px solid #ff007f; outline-offset:4px; }
.deck-checkout-note a { color:#bbb; text-underline-offset:3px; }
.deck-page .legal-hero__body a { color:#fff; }
.deck-page .footer__links,.deck-home .footer__links { flex-wrap:wrap; }
.app-hero,.app-home-feature { max-width:1320px; margin:auto; padding:96px 40px; display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; border-top:1px solid #222; }
.app-hero h1 { font-size:clamp(3.5rem,7vw,7rem); line-height:.92; letter-spacing:-.04em; }
.app-home-feature h2 { font-size:clamp(2.4rem,4.6vw,5rem); line-height:.95; letter-spacing:-.03em; }
.app-intro { color:#bbb; font-size:.83rem; line-height:1.9; margin-top:24px; }
.app-screen-group { display:flex; gap:20px; align-items:center; min-width:0; }
.app-screen-group img { width:calc(50% - 10px); height:auto; display:block; border:1px solid #242424; border-radius:18px; }
.app-store-link { margin:32px 0 0; max-width:340px; width:100%; }
.app-hero .deck-text-link { display:table; }
.app-challenges { max-width:1320px; margin:auto; padding:64px 40px; border-top:1px solid #222; }
.app-challenges__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px; }
.app-challenges h2 { font-size:1.6rem; line-height:1; }
.app-challenges p,.app-small { color:#aaa; font-size:.74rem; line-height:1.9; margin-top:18px; }
@media(max-width:767px){.app-hero,.app-home-feature{grid-template-columns:1fr;gap:40px;padding:56px 24px}.app-challenges{padding:48px 24px}.app-challenges__grid{grid-template-columns:1fr;gap:32px}.app-screen-group{max-width:520px}.app-screen-group img{border-radius:12px}}
@media(max-width:540px){.deck-page .header{display:grid;grid-template-columns:1fr auto;gap:12px;padding:16px 24px}.deck-page .header__nav{grid-column:1 / -1;grid-row:2;justify-content:space-between}.app-hero h1{font-size:clamp(3.1rem,14vw,5rem)}}
