/* Accueil cinématique Luma — isolé du CSS partagé des pages fonctionnelles. */
:root { --ease-cinema: cubic-bezier(.22,.76,.24,1); --night: #0b0e1a; }
html { scroll-padding-top: 74px; }
body.cinematic-home { background: #05070d; overflow-x: clip; }
.cinematic-home .cosmos-canvas, .cinematic-home > .bg-halos { display: none; }
.wide-container { width: min(100% - 48px, 1380px); margin-inline: auto; }
.skip-link { position: fixed; z-index: 999; inset: 12px auto auto 12px; padding: 10px 14px; border-radius: 10px; background: #fff; color: #080a12; transform: translateY(-150%); transition: transform .2s; }
.skip-link:focus { transform: none; }

/* Intro : jouée une fois par session, supprimée du flux après la sortie. */
.signal-intro { position: fixed; inset: 0; z-index: 200; display: grid; place-content: center; justify-items: center; gap: 22px; background: #05070d; transition: opacity .7s ease, visibility .7s; }
.signal-intro::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 50% 50%, rgba(99,102,241,.12), transparent 34%); }
.signal-intro img { position: relative; width: min(55vw, 520px); height: auto; opacity: 0; filter: blur(15px); transform: scale(.9); animation: introLogo 1.15s .5s var(--ease-cinema) forwards; }
.signal-intro p { position: relative; color: #a9aec3; font-size: 13px; letter-spacing: .22em; text-transform: uppercase; opacity: 0; animation: introText .7s 1.05s ease forwards; }
.intro-signal { position: absolute; width: 7px; height: 7px; border-radius: 50%; background: #fff; box-shadow: 0 0 18px #22d3ee, 0 0 65px #6366f1; animation: signalExpand 1.5s .12s var(--ease-cinema) both; }
.intro-signal span { position: absolute; inset: -22px; border: 1px solid rgba(34,211,238,.4); border-radius: 50%; animation: signalRing 1.2s .15s ease-out both; }
.intro-skip { position: absolute; z-index: 2; top: max(22px, env(safe-area-inset-top)); right: 24px; border: 0; background: transparent; color: #9da3ba; font: inherit; font-size: 13px; cursor: pointer; padding: 10px; }
.signal-intro.is-leaving { opacity: 0; visibility: hidden; pointer-events: none; }
.signal-intro.is-hidden { display: none; }
@keyframes signalExpand { 0% { transform: scale(.15); opacity: 0 } 38% { opacity: 1 } 100% { transform: scale(26); opacity: 0 } }
@keyframes signalRing { from { transform: scale(.1); opacity: 1 } to { transform: scale(7); opacity: 0 } }
@keyframes introLogo { to { opacity: 1; filter: blur(0); transform: scale(1) } }
@keyframes introText { to { opacity: 1 } }

.cinematic-header { position: fixed; width: 100%; background: linear-gradient(180deg, rgba(5,7,13,.82), rgba(5,7,13,.46)); border: 0; transition: background .3s, border-color .3s; }
.cinematic-header.is-scrolled { background: rgba(5,7,13,.82); border-bottom: 1px solid rgba(255,255,255,.07); }
.cinematic-header .header-inner { padding-block: 14px; }
.cinematic-header .header-cta { color: #f8f8fc; font-size: 13px; font-weight: 700; padding: 9px 16px; border: 1px solid rgba(255,255,255,.15); border-radius: 999px; transition: background .2s, border-color .2s; }
.cinematic-header .header-cta:hover { background: rgba(255,255,255,.08); border-color: rgba(34,211,238,.42); }

.cinematic-hero { position: relative; min-height: 100svh; display: grid; grid-template-columns: minmax(320px, .82fr) minmax(520px, 1.18fr); align-items: center; gap: clamp(28px, 4vw, 78px); padding: 120px max(5vw, 32px) 70px; isolation: isolate; overflow: hidden; }
.hero-cosmos, .devices-cosmos, .final-nebula { position: absolute; inset: 0; z-index: -2; background-image: linear-gradient(90deg, rgba(5,7,13,.9) 5%, rgba(5,7,13,.38) 52%, rgba(5,7,13,.65)), url('/assets/brand/cosmos-master.webp'); background-size: cover; background-position: center; }
.hero-cosmos::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 62%, #05070d), radial-gradient(circle at 68% 54%, transparent 0 22%, rgba(5,7,13,.45) 58%); }
.hero-copy { position: relative; z-index: 3; width:100%; min-width:0; max-width: 650px; opacity: 0; transform: translateY(26px); animation: heroEnter 1s .3s var(--ease-cinema) forwards; }
@keyframes heroEnter { to { opacity: 1; transform: none } }
.eyebrow { color: #b0b5c9; font-size: 12px; line-height: 1.2; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow > span { display: inline-block; width: 28px; height: 1px; margin-right: 9px; vertical-align: middle; background: linear-gradient(90deg,#6366f1,#22d3ee); box-shadow: 0 0 10px #22d3ee; }
.cinematic-hero h1 { margin-top: 20px; font-size: clamp(54px, 6.7vw, 112px); line-height: .94; letter-spacing: -.055em; font-weight: 760; }
.compact-break { display:none; }
.hero-lead { max-width: 610px; margin-top: 26px; color: #b4b8c9; font-size: clamp(16px,1.45vw,20px); line-height: 1.65; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin-top: 34px; }
.cinematic-home .btn { position: relative; padding: 15px 25px; overflow: hidden; box-shadow: 0 12px 38px rgba(99,102,241,.22); transition: transform .25s, box-shadow .25s; }
.cinematic-home .btn:hover { transform: translateY(-2px); box-shadow: 0 16px 48px rgba(99,102,241,.35); }
.text-link { color: #eef0f8; font-size: 14px; font-weight: 650; }
.text-link span { display: inline-block; margin-left: 8px; color: #22d3ee; transition: transform .2s; }
.text-link:hover span { transform: translateY(3px); }
.legal-micro { margin-top: 20px; color: #6f7488; font-size: 11px; }
.hero-device-wrap { position: relative; height: min(74vh, 760px); display: grid; place-items: center; perspective: 1600px; }
.tv-device { position: relative; width: min(100%, 780px); transform: perspective(1600px) rotateY(-8deg) rotateX(2deg); transform-style: preserve-3d; will-change: transform; }
.tv-bezel { position: relative; aspect-ratio: 2576/1425; padding: 9px; border-radius: 26px; overflow: hidden; background: linear-gradient(145deg,#393c46 0,#0b0c10 12%,#15171d 86%,#3d414c); border: 1px solid rgba(255,255,255,.18); box-shadow: 0 75px 140px rgba(0,0,0,.65), 0 0 90px rgba(99,102,241,.16); }
.tv-bezel img { width: 100%; height: 100%; display: block; object-fit: contain; object-position: center; border-radius: 18px; filter: saturate(.92) contrast(1.03); }
.tv-bezel::after { content:''; position:absolute; inset:9px; border-radius:18px; background:linear-gradient(125deg,rgba(255,255,255,.11),transparent 24% 70%,rgba(34,211,238,.05)); pointer-events:none; }
.tv-stand { width: 35%; height: 36px; margin: -2px auto 0; background: linear-gradient(180deg,#17191f,#08090c); clip-path: polygon(40% 0,60% 0,68% 76%,94% 88%,94% 100%,6% 100%,6% 88%,32% 76%); }
.demo-label { position:absolute; right:22px; bottom:20px; z-index:2; padding:6px 10px; border-radius:999px; font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:#bfc4d6; background:rgba(6,8,15,.74); border:1px solid rgba(255,255,255,.12); }
.ambient-orbit { position:absolute; border:1px solid rgba(99,102,241,.25); border-radius:50%; transform:rotate(-18deg); pointer-events:none; }
.orbit-a { width:78%; aspect-ratio:1; box-shadow:0 0 70px rgba(99,102,241,.08); }
.orbit-b { width:105%; aspect-ratio:1; border-color:rgba(34,211,238,.12); }
.scroll-cue { position:absolute; left:50%; bottom:24px; transform:translateX(-50%); color:#73798d; font-size:10px; text-transform:uppercase; letter-spacing:.18em; display:flex; align-items:center; gap:10px; }
.scroll-cue span { width:1px; height:32px; background:linear-gradient(#22d3ee,transparent); }

.portal-sequence { position: relative; height: 330vh; background: #05070d; }
.portal-sticky { position: sticky; top: 0; min-height: 100svh; display: grid; grid-template-columns: .78fr 1.22fr; align-items: center; gap: 4vw; max-width: 1460px; margin: auto; padding: 90px 5vw 40px; overflow: hidden; }
.portal-copy { position:relative; z-index:3; max-width:490px; }
.portal-copy h2, .section-heading h2, .final-content h2 { margin-top:15px; font-size:clamp(42px,5vw,76px); line-height:1; letter-spacing:-.045em; }
.scene-copy { position:absolute; width:100%; margin-top:42px; opacity:0; transform:translateY(24px); pointer-events:none; transition:opacity .35s ease,transform .45s var(--ease-cinema); }
.scene-copy.is-active { opacity:1; transform:none; }
.scene-copy strong { font-size:clamp(19px,2vw,27px); }
.scene-copy p { margin-top:11px; color:#9ca2b7; font-size:16px; line-height:1.65; max-width:420px; }
.scene-meter { display:flex; gap:8px; margin-top:200px; }
.scene-meter i { width:36px; height:2px; background:#303442; transition:background .3s,box-shadow .3s; }
.scene-meter i.is-active { background:#22d3ee; box-shadow:0 0 12px rgba(34,211,238,.7); }
.portal-visual { position:relative; height:min(82vh,840px); display:grid; place-items:center; perspective:1400px; }
.portal-glow { position:absolute; width:75%; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(99,102,241,.22),rgba(139,92,246,.08) 40%,transparent 70%); filter:blur(20px); }
.app-viewport { position:relative; width:min(42vw,430px); aspect-ratio:1080/2280; border-radius:clamp(24px,3vw,46px); overflow:hidden; background:#0b0e1a; border:1px solid rgba(255,255,255,.16); box-shadow:0 60px 120px rgba(0,0,0,.7),0 0 80px rgba(99,102,241,.2); transform:rotateY(-5deg); will-change:transform; }
.scene-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transform:scale(1.07); filter:blur(8px); transition:opacity .55s ease,transform .85s var(--ease-cinema),filter .55s ease; }
.scene-image.is-active { opacity:1; transform:scale(1); filter:blur(0); }
.screen-reflection { position:absolute; inset:0; z-index:4; pointer-events:none; background:linear-gradient(115deg,rgba(255,255,255,.1),transparent 18% 74%,rgba(34,211,238,.04)); }
.frequency-label { position:absolute; right:7%; bottom:5%; font-size:10px; letter-spacing:.18em; color:#858ba1; }

.demo-film { position:relative; padding:150px 0 170px; overflow:hidden; background:radial-gradient(circle at 65% 45%,rgba(99,102,241,.13),transparent 38%),#05070d; border-block:1px solid rgba(255,255,255,.06); }
.demo-film::before { content:''; position:absolute; width:760px; aspect-ratio:1; right:-260px; top:-300px; border:1px solid rgba(34,211,238,.1); border-radius:50%; box-shadow:0 0 100px rgba(99,102,241,.08); pointer-events:none; }
.demo-film-inner { display:grid; grid-template-columns:minmax(270px,.55fr) minmax(560px,1.45fr); align-items:center; gap:clamp(45px,7vw,110px); }
.demo-film-copy { max-width:430px; }
.demo-film-copy h2 { margin-top:16px; font-size:clamp(42px,5vw,72px); line-height:.98; letter-spacing:-.045em; }
.demo-film-copy h2 span { color:#7f859a; }
.demo-film-copy>p:last-child { margin-top:24px; color:#9ca2b7; font-size:16px; line-height:1.7; }
.demo-film-frame { position:relative; margin:0; padding:8px; border-radius:22px; background:linear-gradient(145deg,#343742,#0a0c12 14% 86%,#30343e); border:1px solid rgba(255,255,255,.15); box-shadow:0 55px 120px rgba(0,0,0,.68),0 0 80px rgba(99,102,241,.13); }
.demo-film-frame video { display:block; width:100%; aspect-ratio:16/9; border-radius:15px; background:#05070d; object-fit:contain; }
.demo-film-frame figcaption { display:flex; justify-content:space-between; gap:20px; padding:12px 7px 5px; color:#7f859a; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.demo-film-frame figcaption span { color:#22d3ee; }

.feature-story { position:relative; padding:150px 0 180px; background:linear-gradient(180deg,#05070d,#080a12 45%,#05070d); }
.section-heading { max-width:920px; }
.section-heading h2 span { color:#7f859a; }
.feature-chapters { margin-top:80px; display:grid; gap:1px; border-block:1px solid rgba(255,255,255,.08); }
.feature-chapter { min-height:430px; display:grid; grid-template-columns:110px 1fr; align-items:center; padding:70px clamp(24px,6vw,100px); border-bottom:1px solid rgba(255,255,255,.08); position:relative; overflow:hidden; isolation:isolate; }
.feature-chapter:last-child { border-bottom:0; }
.feature-chapter::before { content:''; position:absolute; inset:0; z-index:-1; opacity:.24; transition:opacity .5s,transform 1s var(--ease-cinema); transform:scale(1.05); background-size:cover; background-position:center; mask-image:linear-gradient(90deg,transparent 5%,#000 48%,#000); }
.feature-chapter:hover::before { opacity:.4; transform:scale(1); }
.signal-card::before,.cinema-card::before,.private-card::before { background-image:radial-gradient(circle at 78% 44%,rgba(99,102,241,.24),transparent 28%),linear-gradient(110deg,#070912 25%,rgba(13,17,31,.88)); }
.chapter-index { align-self:start; padding-top:5px; color:#555b70; font-size:12px; letter-spacing:.15em; }
.feature-chapter > div:last-child { max-width:590px; }
.chapter-kicker { color:#22d3ee; text-transform:uppercase; letter-spacing:.16em; font-size:11px; font-weight:700; }
.feature-chapter h3 { margin-top:12px; font-size:clamp(30px,4vw,52px); letter-spacing:-.035em; }
.feature-chapter p:not(.chapter-kicker) { margin-top:18px; color:#a8adbf; font-size:16px; line-height:1.7; }
.feature-chapter ul { display:flex; flex-wrap:wrap; gap:9px; list-style:none; margin-top:25px; }
.feature-chapter li { padding:8px 12px; border:1px solid rgba(255,255,255,.1); border-radius:999px; color:#c9cdd9; font-size:12px; background:rgba(7,9,16,.55); }

.product-proof { padding:150px 0; background:radial-gradient(circle at 50% 10%,rgba(99,102,241,.12),transparent 38%),#05070d; }
.product-proof .section-heading>p:last-child { max-width:720px; margin:22px auto 0; color:#9ca2b7; line-height:1.7; }
.proof-grid { display:grid; grid-template-columns:1.35fr .65fr; gap:24px; margin-top:76px; }
.proof-grid figure { position:relative; margin:0; overflow:hidden; border:1px solid rgba(255,255,255,.13); background:#090b13; box-shadow:0 40px 90px rgba(0,0,0,.52); }
.proof-grid img { width:100%; height:100%; object-fit:contain; display:block; }
.proof-wide { grid-column:1/-1; aspect-ratio:2576/1425; border-radius:28px; }
.proof-wide img { object-position:center top; }
.proof-phone { display:grid; grid-template-columns:minmax(190px,.68fr) 1fr; align-items:center; min-height:600px; padding:35px; border-radius:28px; }
.proof-phone>div { height:540px; aspect-ratio:1080/2400; margin:auto; padding:6px; border-radius:32px; overflow:hidden; background:#171923; box-shadow:0 28px 60px rgba(0,0,0,.65); }
.proof-phone>div img { border-radius:26px; object-position:center top; }
.proof-tv { min-height:0; aspect-ratio:16/9; border-radius:28px; }
.proof-tv img { object-position:center; }
.proof-grid figcaption { position:absolute; left:22px; right:22px; bottom:20px; display:flex; flex-direction:column; gap:5px; padding:16px 18px; border:1px solid rgba(255,255,255,.1); border-radius:16px; color:#fff; background:rgba(5,7,13,.78); backdrop-filter:blur(18px); }
.proof-phone figcaption { position:static; margin-left:24px; background:none; border:0; padding:0; }
.proof-grid figcaption strong { font-size:18px; }.proof-grid figcaption span { color:#aab0c2; font-size:13px; line-height:1.55; }
.proof-cta { display:flex; align-items:center; justify-content:space-between; gap:30px; margin-top:34px; padding:28px 32px; border:1px solid rgba(255,255,255,.1); border-radius:22px; background:linear-gradient(110deg,rgba(99,102,241,.14),rgba(34,211,238,.06)); }
.proof-cta p { color:#c5c9d8; font-size:16px; }

.devices-section { position:relative; min-height:1200px; padding:150px 0; isolation:isolate; overflow:hidden; }
.devices-cosmos { background-image:linear-gradient(180deg,#05070d 0,rgba(5,7,13,.65) 25%,rgba(5,7,13,.58) 75%,#05070d),url('/assets/brand/cosmos-master.webp'); opacity:.65; }
.centered { margin-inline:auto; text-align:center; }
.centered > p:last-child { color:#9ca2b7; max-width:680px; margin:20px auto 0; line-height:1.65; }
.device-constellation { position:relative; height:690px; margin-top:80px; perspective:1700px; }
.device-scene { position:absolute; margin:0; text-align:center; }
.device-scene img { width:100%; height:100%; object-fit:contain; display:block; }
.device-scene figcaption { margin-top:18px; font-weight:700; }
.device-scene figcaption small { display:block; margin-top:5px; color:#858ba0; font-weight:500; }
.device-tv { width:min(58vw,790px); left:50%; top:0; transform:translateX(-50%); z-index:1; }
.landscape-screen { position:relative; aspect-ratio:16/9; padding:9px; overflow:hidden; border-radius:22px; background:#12141a; border:1px solid rgba(255,255,255,.18); box-shadow:0 50px 100px rgba(0,0,0,.65); }
.landscape-screen img { border-radius:14px; }
.screen-wordmark { position:absolute; inset:0; display:grid; place-items:center; font-size:clamp(30px,4vw,64px); font-weight:800; background:linear-gradient(90deg,#818cf8,#a78bfa,#22d3ee); background-clip:text; color:transparent; }
.device-desktop { width:min(42vw,540px); left:2%; top:300px; z-index:3; transform:rotateY(8deg); }
.desktop-frame { aspect-ratio:2576/1425; height:auto; padding:9px; border-radius:19px 19px 8px 8px; overflow:hidden; background:linear-gradient(145deg,#333640,#0b0d12); box-shadow:0 40px 90px rgba(0,0,0,.7); }
.desktop-frame img { object-position:center 35%; border-radius:12px; }
.device-phone { width:min(19vw,230px); right:8%; top:250px; z-index:4; transform:rotateY(-9deg) rotateZ(2deg); }
.phone-frame { aspect-ratio:1080/2400; padding:7px; border-radius:34px; overflow:hidden; background:#101218; border:1px solid rgba(255,255,255,.2); box-shadow:0 45px 90px rgba(0,0,0,.7); }
.phone-frame img { border-radius:27px; }
.signal-line { position:absolute; left:50%; top:40%; width:38%; height:1px; background:linear-gradient(90deg,transparent,#22d3ee,transparent); opacity:.35; transform-origin:left; }
.line-one { transform:rotate(150deg); }.line-two { transform:rotate(26deg); }
.platform-note { margin-top:20px; color:#747a8e; text-align:center; font-size:12px; }

.capabilities { padding:150px 0; background:#05070d; }
.capability-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:70px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.08); }
.capability { min-height:300px; padding:34px; background:#080a11; transition:background .3s; }
.capability:hover { background:#0c0f19; }
.capability svg { width:28px; fill:none; stroke:#8b91a7; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.capability h3 { margin-top:70px; font-size:19px; }
.capability p { margin-top:12px; color:#858b9f; font-size:14px; line-height:1.65; }

.home-premium { position:relative; padding:80px 0 150px; background:#05070d; isolation:isolate; overflow:hidden; }
.home-premium-glow { position:absolute; z-index:-1; width:900px; height:520px; left:50%; bottom:20px; transform:translateX(-50%); background:radial-gradient(ellipse,rgba(99,102,241,.2),rgba(34,211,238,.07) 42%,transparent 70%); filter:blur(20px); }
.home-premium-inner { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:42px 70px; align-items:center; padding:58px; border:1px solid rgba(129,140,248,.28); border-radius:28px; background:linear-gradient(125deg,rgba(22,24,48,.9),rgba(10,15,29,.86)); box-shadow:0 35px 100px rgba(0,0,0,.36),inset 0 1px rgba(255,255,255,.05); }
.home-premium-copy h2 { margin-top:15px; font-size:clamp(40px,5.2vw,72px); line-height:1.02; letter-spacing:-.05em; }
.home-premium-copy h2 span { color:#8b8fff; }
.home-premium-copy > p:last-child { max-width:650px; margin-top:24px; color:#9ca2b6; font-size:16px; line-height:1.7; }
.home-premium-offer { padding-left:44px; border-left:1px solid rgba(255,255,255,.12); }
.home-premium-from { color:#8c92a8; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.home-premium-price { display:flex; align-items:baseline; gap:9px; margin-top:8px; }
.home-premium-price strong { font-size:clamp(38px,4vw,58px); letter-spacing:-.055em; }
.home-premium-price span,.home-premium-offer > p:nth-child(3) { color:#8f95aa; font-size:13px; }
.home-premium-offer .btn { margin-top:25px; text-align:center; }
.home-premium-points { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:12px 28px; padding-top:30px; border-top:1px solid rgba(255,255,255,.1); list-style:none; }
.home-premium-points li { color:#c3c8d8; font-size:13px; }
.home-premium-points li::before { content:'✓'; margin-right:9px; color:#22d3ee; font-weight:900; }

.final-scene { position:relative; min-height:850px; display:grid; place-items:center; padding:120px 24px; text-align:center; isolation:isolate; overflow:hidden; }
.final-nebula { background-image:linear-gradient(180deg,#05070d,rgba(5,7,13,.42) 45%,#05070d),url('/assets/brand/cosmos-master.webp'); opacity:.8; }
.final-mark { position:absolute; width:min(60vw,620px); opacity:.11; filter:blur(1px); }
.final-content { position:relative; max-width:780px; }
.final-content > p:not(.eyebrow) { max-width:610px; margin:24px auto 0; color:#a4a9bc; font-size:17px; line-height:1.7; }
.final-content .hero-actions { justify-content:center; }
.cinematic-footer { margin-top:0!important; padding-block:36px!important; gap:22px!important; }
.cinematic-footer > p { color:#73798d; font-size:12px; }

.reveal-cinematic { opacity:0; transform:translateY(38px); transition:opacity .8s ease,transform .9s var(--ease-cinema); }
.reveal-cinematic.is-visible { opacity:1; transform:none; }
.image-failed { opacity:0!important; }
.has-image-error { background:radial-gradient(circle at 50% 42%,rgba(99,102,241,.22),transparent 52%),#0b0e1a!important; }
:focus-visible { outline:2px solid #22d3ee; outline-offset:4px; }

@media (max-width: 1050px) {
  .cinematic-hero { grid-template-columns:1fr 1fr; }
  .cinematic-hero h1 { font-size:clamp(50px,7vw,74px); }
  .capability-grid { grid-template-columns:1fr 1fr; }
  .device-phone { right:3%; }
}
@media (max-width: 800px) {
  .wide-container { width:min(100% - 32px,1380px); }
  .cinematic-header .header-cta { display:none; }
  .cinematic-header .lang-btn span { display:none; }
  .cinematic-hero { min-height:auto; grid-template-columns:minmax(0,1fr); padding:130px 20px 90px; text-align:center; }
  .cinematic-hero > * { min-width:0; }
  .hero-copy { margin:auto; }
  .hero-lead { font-size:16px; margin-inline:auto; }
  .hero-actions { justify-content:center; }
  .hero-device-wrap { height:auto; margin-top:34px; }
  .tv-device { width:min(94vw,620px); transform:none; }
  .scroll-cue { display:none; }
  .demo-film { padding:95px 0 110px; }
  .demo-film-inner { grid-template-columns:1fr; gap:42px; text-align:center; }
  .demo-film-copy { margin:auto; }
  .demo-film-copy h2 { font-size:clamp(38px,10vw,58px); }
  .demo-film-frame { width:100%; border-radius:16px; padding:5px; }
  .demo-film-frame video { border-radius:11px; }
  .portal-sequence { height:245vh; }
  .portal-sticky { grid-template-columns:1fr; align-content:center; gap:22px; padding:85px 20px 30px; }
  .portal-copy { text-align:center; margin:auto; }
  .portal-copy h2 { font-size:clamp(36px,10vw,58px); }
  .scene-copy { margin-top:22px; }
  .scene-copy p { margin-inline:auto; }
  .scene-meter { justify-content:center; margin-top:145px; }
  .portal-visual { height:min(58vh,600px); }
  .app-viewport { width:min(54vw,300px); }
  .feature-story,.capabilities { padding-block:100px; }
  .product-proof { padding-block:100px; }
  .proof-grid { grid-template-columns:1fr; gap:18px; margin-top:48px; }
  .proof-wide { grid-column:auto; aspect-ratio:16/10; }
  .proof-phone { grid-template-columns:1fr 1fr; min-height:520px; padding:24px; }
  .proof-phone>div { height:450px; }
  .proof-tv { min-height:420px; }
  .proof-cta { flex-direction:column; text-align:center; }
  .feature-chapter { min-height:390px; grid-template-columns:52px 1fr; padding:48px 24px; }
  .feature-chapter::before { opacity:.16; mask-image:linear-gradient(90deg,transparent,#000); }
  .devices-section { min-height:1050px; padding-block:100px; }
  .device-constellation { height:660px; }
  .device-tv { width:90vw; }
  .device-desktop { width:62vw; left:-5%; top:290px; }
  .desktop-frame { height:auto; }
  .device-phone { width:30vw; right:2%; top:320px; }
}
@media (max-width: 540px) {
  .cinematic-hero { padding-inline:16px; }
  .hero-copy { width:min(100%,340px); max-width:340px; }
  .cinematic-hero h1 { width:100%; max-width:100%; font-size:clamp(32px,9.3vw,42px); line-height:.98; letter-spacing:-.04em; }
  .compact-break { display:block; }
  .eyebrow { font-size:10px; }
  .hero-actions { flex-direction:column; gap:18px; }
  .hero-lead,.legal-micro { width:100%; max-width:100%; overflow-wrap:anywhere; }
  .hero-device-wrap { margin-top:45px; }
  .tv-bezel { border-radius:18px; padding:6px; }
  .tv-bezel img,.tv-bezel::after { border-radius:12px; }
  .demo-label { right:13px; bottom:12px; font-size:7px; }
  .demo-film-frame figcaption { align-items:flex-start; font-size:8px; text-align:right; }
  .portal-sequence { height:220vh; }
  .portal-sticky { align-content:start; padding-top:95px; }
  .portal-visual { height:52vh; }
  .app-viewport { width:min(58vw,260px); border-radius:24px; transform:none; }
  .product-proof { overflow:hidden; }
  .proof-grid { margin-inline:0; }
  .proof-wide { aspect-ratio:2576/1425; }
  .proof-wide img { object-position:52% top; }
  .proof-phone { grid-template-columns:1fr; min-height:0; padding:22px; gap:24px; }
  .proof-phone>div { width:min(68vw,250px); height:auto; aspect-ratio:1080/2400; }
  .proof-phone figcaption { margin:0; text-align:center; }
  .proof-tv { min-height:0; aspect-ratio:16/9; }
  .proof-cta { padding:24px 20px; }
  .feature-chapter { grid-template-columns:1fr; }
  .chapter-index { margin-bottom:30px; }
  .feature-chapter ul { display:none; }
  .section-heading h2 { font-size:clamp(38px,11vw,54px); }
  .devices-section { min-height:900px; }
  .device-constellation { height:520px; margin-top:60px; }
  .device-desktop { top:220px; width:66vw; }
  .desktop-frame { height:auto; padding:6px; }
  .device-phone { top:235px; width:32vw; }
  .capability-grid { grid-template-columns:1fr; }
  .capability { min-height:230px; }
  .capability h3 { margin-top:42px; }
  .home-premium { padding:50px 0 100px; }
  .home-premium-inner { grid-template-columns:1fr; gap:34px; padding:38px 28px; text-align:center; }
  .home-premium-copy > p:last-child { margin-inline:auto; }
  .home-premium-offer { padding:30px 0 0; border-left:0; border-top:1px solid rgba(255,255,255,.12); }
  .home-premium-price { justify-content:center; }
  .home-premium-points { justify-content:center; }
  .final-scene { min-height:700px; }
  .cinematic-footer { justify-content:center!important; text-align:center; }
  .cinematic-footer .foot-links { justify-content:center; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .signal-intro { display:none; }
  .hero-copy { opacity:1; transform:none; animation:none; }
  .tv-device,.app-viewport { transform:none!important; }
  .reveal-cinematic { opacity:1; transform:none; transition:none; }
  .scene-image { transition:none; }
  .portal-sequence { height:auto; padding:100px 0; }
  .portal-sticky { position:relative; min-height:auto; }
  .scene-copy { position:relative; display:none; }
  .scene-copy.is-active { display:block; }
}
