/* The bottom 10% of the source is outside the frame, including its watermark. */
.restoration-preview { margin: 0; background: var(--background); color: var(--text); font-family: var(--font-family); }
.restoration { height: 480vh; position: relative; background: var(--background); opacity: 1; transform: none; transition: none; scroll-margin-top: 0; }
.restoration-stage { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; display: grid; place-items: center; isolation: isolate; }
.restoration-heading { position: absolute; top: 100px; left: 6%; z-index: 2; }
.restoration-eyebrow { color: var(--accent); font-size: 11px; letter-spacing: .2em; }
.restoration-heading h2 { font-size: clamp(1.3rem, 2.7vw, 2.5rem); margin: 12px 0; }
.restoration-frame { width: min(78vw, 78svh, 850px); aspect-ratio: 1 / .9; overflow: hidden; }
.restoration-frame video { display: block; width: 100%; height: auto; }
.restoration-caption { position: absolute; bottom: 115px; left: 6%; right: 6%; z-index: 2; text-shadow: 0 2px 12px #000; }
.restoration-caption span { color: var(--accent); font-size: 12px; font-variant-numeric: tabular-nums; letter-spacing: .15em; }
.restoration-caption h3 { font-size: clamp(1.5rem, 3vw, 2.6rem); margin: 10px 0; }
.restoration-caption p { font-size: 14px; color: var(--text-muted); margin: 0; max-width: 420px; line-height: 1.6; }
.restoration-bottom { position: absolute; bottom: 28px; left: 6%; right: 6%; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 18px; font-size: 12px; color: var(--text-muted); }
.restoration-bottom a, #restorationError a { color: var(--accent); text-decoration: none; }
.restoration-track { width: 100%; height: 2px; background: var(--border); overflow: hidden; }
#restorationProgress { height: 100%; background: var(--accent); transform: scaleX(0); transform-origin: left; }
#restorationError { position: absolute; top: 45%; padding: 20px; background: var(--surface); z-index: 3; }
section { scroll-margin-top: 80px; }
/* Do not transform the ancestor of a sticky scene during section reveals. */
section.restoration { transform: none; }
.why-video { height: 114%; clip-path: inset(0 0 12% 0); }
@media (max-width: 700px) {
 .restoration { height: 360vh; }
 .restoration-heading { top: 90px; }
 .restoration-frame { width: 100%; margin-top: -40px; }
 .restoration-caption { bottom: 120px; }
 .restoration-caption p { max-width: 300px; }
 .nav-links { gap: 1.4rem; }
 .services-grid { grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); }
 .contact-flex { padding: 1rem; }
 .form-group, .contact-info { min-width: 0; flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
 .restoration { height: 100svh; }
 section { opacity: 1; transform: none; transition: none; }
 *, *::before, *::after { animation: none !important; scroll-behavior: auto !important; }
}

