/* Approved island scene: scoped progressive enhancement; body stories unchanged. */
 .viking-hero { display:block; width:100%; position:relative; height:auto; min-height:0; padding:0; background:#07141c; isolation:isolate; }
.viking-hero::before,.viking-hero::after { display:none; }
.viking-stage { width:100%; position:relative; overflow:clip; min-height:0; outline-offset:-4px; background:#07141c; }
.viking-scene { display:none; }
.viking-editorial { width:100%; }
.viking-chapters { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; }
.viking-chapter { flex:0 0 100%; min-width:0; min-height:100svh; position:relative; isolation:isolate; scroll-snap-align:start; display:flex; flex-direction:column; justify-content:flex-end; padding:120px var(--gutter,clamp(24px,5vw,80px)) 112px; }
.viking-copy { width:47%; text-align:left; pointer-events:auto; }
.viking-poster { position:absolute; inset:0; z-index:-2; }
.viking-poster img { display:block; width:100%; height:100%; object-fit:cover; }
.viking-poster::after,.viking-scene::after,.viking-scene::before { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(0deg,rgba(10,10,11,.94),transparent 35%),linear-gradient(90deg,rgba(5,12,17,.80),rgba(5,12,17,.32) 38%,transparent 57%); }
.viking-chapter[data-island="1"] .viking-copy,.viking-chapter[data-island="3"] .viking-copy { margin-left:auto; text-align:right; }
.viking-chapter[data-island="1"] .viking-poster::after,.viking-chapter[data-island="3"] .viking-poster::after,.viking-scene::before { background:linear-gradient(0deg,rgba(10,10,11,.94),transparent 35%),linear-gradient(270deg,rgba(5,12,17,.80),rgba(5,12,17,.32) 38%,transparent 57%); }
.viking-scene::after { opacity:calc(1 - var(--right-weight,0)); }
.viking-scene::before { opacity:var(--right-weight,0); }
.viking-chapter h1,.viking-chapter h2 { font-family:var(--display,'Space Grotesk',sans-serif); font-size:clamp(32px,4.7vw,72px); font-weight:500; line-height:1.03; letter-spacing:-.065em; margin:0 0 20px; text-wrap:balance; }
.viking-chapter p:not(.offering-brand) { color:var(--text,#f5f5f4); font-size:clamp(15px,1.3vw,18px); line-height:1.55; max-width:52ch; margin:0; text-wrap:pretty; }
.viking-chapter .offering-brand { display:flex; justify-content:flex-start; align-items:center; flex-wrap:wrap; gap:10px; margin:0 0 18px; }
.viking-chapter .offering-brand .product-credit { font-size:11px; }
.viking-chapter .offering-brand .logo-art img { width:118px; height:auto; }
.viking-chapter .eyebrow { display:block; color:var(--ember); font-size:11px; letter-spacing:.12em; margin:0 0 16px; }
.viking-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:12px 20px; margin-top:24px; }
.viking-actions a { pointer-events:auto; }
.viking-native-nav { position:absolute; bottom:24px; left:0; right:0; display:flex; justify-content:center; align-items:center; gap:24px; margin:28px 0 0; }
.viking-native-nav a { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:4px; }
.viking-native-nav .viking-next-section { display:grid; flex:none; }
.viking-native-nav span { color:var(--muted); }
.viking-controls { padding:20px var(--gutter,clamp(24px,5vw,80px)) 30px; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.viking-controls[hidden],.viking-controls button[hidden] { display:none!important; }
.viking-navigation { display:flex; gap:8px; }
.viking-navigation .hero-chevron { width:44px; height:44px; flex:none; background:#171719; border:1px solid #a49b91; }
.viking-navigation .hero-chevron:hover:not([aria-disabled=true]) { border-color:var(--ember); background:#30241b; }
.viking-position { color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; }
.viking-ready .viking-chapters { display:grid; overflow:visible; }
.viking-ready .viking-chapter { grid-area:1 / 1; }
.viking-ready .viking-chapter[hidden] { display:flex!important; visibility:hidden; pointer-events:none; }
.viking-ready .viking-native-nav { display:none; }
.viking-motion { height:auto; }
.viking-motion .viking-stage { position:relative; }
.viking-motion .viking-scene { display:block; position:absolute; inset:0; }
.viking-scene canvas { width:100%; height:100%; display:block; }
.viking-motion .viking-editorial { position:relative; pointer-events:none; }

.viking-motion .viking-poster { display:none; }
.viking-ready .viking-controls { position:absolute; left:0; right:0; bottom:0; padding:24px var(--gutter,clamp(24px,5vw,80px)) 32px; }
.viking-chapter[data-island="1"] p:not(.offering-brand),.viking-chapter[data-island="3"] p:not(.offering-brand) { margin-left:auto; }
.viking-chapter[data-island="1"] .offering-brand,.viking-chapter[data-island="3"] .offering-brand,.viking-chapter[data-island="1"] .viking-actions,.viking-chapter[data-island="3"] .viking-actions { justify-content:flex-end; }
@media(max-width:760px), (max-width:1024px) and (orientation:portrait) {
 .viking-chapter { padding:54svh 24px 80px; }
 .viking-copy,.viking-chapter[data-island] .viking-copy { width:100%; text-align:left; margin:0; }
 .viking-chapter[data-island] p:not(.offering-brand) { margin:0; }
 .viking-chapter[data-island] .offering-brand,.viking-chapter[data-island] .viking-actions { justify-content:flex-start; }
 .viking-poster { height:100%; }

 .viking-chapter h1,.viking-chapter h2 { font-size:clamp(30px,8vw,46px); margin-bottom:14px; }
 .viking-chapter p:not(.offering-brand) { font-size:14px; line-height:1.5; }
 .viking-chapter .offering-brand { margin-bottom:12px; }
 .viking-chapter .eyebrow { font-size:10px; margin-bottom:12px; }
 .viking-actions { margin-top:16px; gap:10px 16px; }
 .viking-actions .pill { padding:10px 17px; min-height:44px; font-size:13px; }
 .viking-actions .ai-secondary { font-size:13px; }
 .viking-ready .viking-controls { padding:20px 24px 24px; }
 .viking-poster::after,.viking-chapter[data-island] .viking-poster::after,.viking-scene::before,.viking-scene::after { background:linear-gradient(0deg,var(--ink),rgba(10,10,11,.94) 23%,rgba(10,10,11,.76) 43%,transparent 61%); }

}
@media(max-width:360px) {
 .viking-chapter { padding-inline:20px; }
 .viking-chapter p:not(.offering-brand) { font-size:13px; }

}
@media(forced-colors:active) { .viking-chapter .gradient-text { color:CanvasText; background:none; } .viking-poster { forced-color-adjust:none; } }

.viking-chapter h1 > .intent { display:block; }
.viking-hero .product-brand-mark { width:32px; height:32px; object-fit:contain; }
@media(min-width:1025px), (min-width:761px) and (orientation:landscape) {
 .viking-chapter .product-identity { align-items:flex-start; }
 .viking-chapter[data-island="1"] .product-identity,.viking-chapter[data-island="3"] .product-identity { align-items:flex-end; }
}

/* Short/zoomed layouts retain readable overlays and grow in normal flow. */
.viking-progress { position:absolute; z-index:3; bottom:0; left:0; right:0; display:flex; gap:8px; pointer-events:none; }
.viking-progress span { flex:1; height:3px; overflow:hidden; background:rgba(255,255,255,.2); }
.viking-progress i { display:block; height:100%; background:var(--ember,#f1af63); transform:scaleX(0); transform-origin:left; }
.viking-progress .is-current { background:rgba(255,255,255,.38); }
@media(max-width:760px), (max-width:1024px) and (orientation:portrait) {
 .viking-chapter .product-identity { align-items:flex-start; }
 .viking-poster img { object-fit:contain; object-position:center top; }
 .viking-ready .viking-chapter { padding-bottom:96px; }
}
/* Replayful’s authentic mark starts at SVG x=24.5/64; align its painted edge at 30px. */
@media(max-width:760px) {
 .viking-chapter .brand-replayful .product-brand-mark { margin-left:-11.484375px; }
}
@media(min-width:761px) and (max-height:839px) {
 .viking-chapter { padding-top:160px; }
}
@media(max-height:649px) and (orientation:landscape) {
 .viking-chapter { padding-top:150px; }
 .viking-chapter[data-island] .viking-copy { width:48%; }
 .viking-chapter[data-island="1"] .viking-copy,.viking-chapter[data-island="3"] .viking-copy { margin-left:auto; text-align:right; }
 .viking-chapter[data-island="1"] .offering-brand,.viking-chapter[data-island="3"] .offering-brand,.viking-chapter[data-island="1"] .viking-actions,.viking-chapter[data-island="3"] .viking-actions { justify-content:flex-end; }
 .viking-chapter h1,.viking-chapter h2 { font-size:clamp(28px,4.7vw,48px); }
 .viking-poster img { object-fit:contain; object-position:center top; }
}
@media(forced-colors:active) {
 .viking-progress { display:none; }
 .viking-copy { background:Canvas; color:CanvasText; padding:12px; }
}
/* Portrait tablets fill the frame while keeping the island above the copy. */
@media(min-width:761px) and (max-width:1024px) and (orientation:portrait) {
 .viking-poster img { object-fit:cover; object-position:center 30%; }
 .viking-chapter[data-island="4"] .viking-poster::before { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,12,17,.65),transparent 22%); pointer-events:none; }
}
