.landing-page { width: 100%; height: 100dvh; overflow: hidden; background: white; }
.landing { position: relative; width: 100%; height: 100dvh; overflow: hidden; }
.cascade { position: absolute; inset: 0; overflow: hidden; touch-action: pinch-zoom; }
.cascade-lane { position: absolute; top: 0; height: 100%; will-change: transform; }
.cascade-photo { position: absolute; top: 0; border: 0; padding: 0; background: transparent; cursor: pointer; overflow: visible; contain: layout paint; isolation: isolate; filter: grayscale(1); transition: filter .18s ease; }
.cascade-photo img,.cascade-photo video { display: block; width: 100%; height: 100%; object-fit: contain; pointer-events: none; user-select: none; -webkit-user-drag: none; }
.cascade-photo img { opacity: .64; transition: opacity .18s ease; }
.cascade-photo video { position: absolute; inset: 0; }
/* Keep the hardware video surface stable while its containing column moves. */
.cascade-photo.is-motion { transform: translateZ(0); backface-visibility: hidden; }
.cascade-photo video { visibility: hidden; opacity: 1; transform: translateZ(0); backface-visibility: hidden; }
.cascade-photo.is-playing video { visibility: inherit; }
.cascade-photo.is-playing img { visibility: hidden; }
.cascade-photo:hover,.cascade-photo:focus-visible { filter: grayscale(0); }
.cascade-photo:hover img,.cascade-photo:focus-visible img { opacity: 1; }
.landing-page .grain { mix-blend-mode: normal; opacity: .014; }
.cascade-seed { position: absolute; inset: -230px 8px -350px; display: grid; grid-template-columns: repeat(8,1fr); gap: 22px; overflow: hidden; pointer-events: none; }
.cascade-seed > div:nth-child(even) { transform: translateY(90px); }
.cascade-seed img { width: 100%; height: auto; max-height: 30vh; object-fit: contain; margin-bottom: 30px; opacity: .6; filter: grayscale(1); }
@media(max-width:1100px){.cascade-seed{grid-template-columns:repeat(6,1fr);}.cascade-seed>div:nth-child(n+7){display:none;}}
@media(max-width:720px){.cascade-seed{grid-template-columns:repeat(4,1fr);gap:18px;}.cascade-seed>div:nth-child(n+5){display:none;}}
@media(max-width:500px){.cascade-seed{grid-template-columns:repeat(3,1fr);}.cascade-seed>div:nth-child(n+4){display:none;}}
.landing-sig { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: clamp(280px,38vw,540px); height: clamp(150px,20vw,280px); z-index: 5; }
.landing-sig-glow { position: absolute; inset: -22%; background: radial-gradient(ellipse,rgba(255,255,255,.99) 25%,rgba(255,255,255,.87) 40%,transparent 72%); pointer-events: none; }
.landing-sig canvas { position: relative; width: 100%; height: 100%; display: block; opacity: 0; transition: opacity .5s; }
.landing-sig.is-mark-ready canvas { opacity: 1; }
.signature-fallback { position: absolute; width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; pointer-events: none; transition: opacity .35s; }
.landing-sig.is-mark-ready .signature-fallback { opacity: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.focus-reveal:focus-visible { position: fixed; z-index: 20; top: 18px; left: 18px; width: auto; height: auto; clip: auto; margin: 0; padding: 9px; background: white; color: #555; font-size: 12px; }
@media(prefers-reduced-motion:reduce){.cascade-photo,.cascade-photo img,.landing-sig canvas,.signature-fallback{transition:none;}}
