/* Shared improvements. Change visual tokens here when redesigning. */
:root { --site-focus: #ffffff; --site-accent: #c1711d; --site-radius: 18px; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 20000; background: #111; color: #fff; padding: 12px 18px; }
.skip-link:focus { top: 12px; }
.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; }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline: 3px solid var(--site-focus); outline-offset: 5px; }
.video-tile { color: inherit; text-decoration: none; display: block; position: relative; overflow: hidden; }
.video-tile .tile-poster { width: 100%; height: 100%; display: block; object-fit: cover; }
.video-tile .tile-preview { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .2s; }
.video-tile.preview-playing .tile-preview { opacity: 1; }
.video-tile .video-overlay { z-index: 3; }
.video-tile .case-badge { z-index: 4; }
.logo, .footer-logo { height: auto; }
.video-tile:focus-visible .video-overlay { opacity: 1; }
.video-tile .tile-kind { position: absolute; top: 16px; right: 16px; border: 1px solid #fff9; border-radius: 30px; padding: 8px 13px; color: #fff; background: #0005; font: 11px/1.1 Arial,sans-serif; letter-spacing: .1em; z-index: 2; }
.gallery-grid { content-visibility: auto; contain-intrinsic-size: auto 900px; }
#lightbox { z-index: 15000; }
#lightbox[aria-hidden="true"] { display: none !important; }
#lightbox[aria-hidden="false"] { display: flex; }
.lightbox-close { position: fixed; right: 20px; top: 20px; z-index: 16000; width: 48px; height: 48px; border: 1px solid #fff; border-radius: 50%; background: #111; color: #fff; font: 30px/1 sans-serif; cursor: pointer; }
#hamburger { border: 0; background: transparent; padding: 0; }
#mobileMenu[hidden] { display: none !important; }
video { max-width: 100%; }
.motion-control { position: absolute; right: 20px; bottom: 20px; z-index: 4; color: white; background: #0008; border: 1px solid #fff9; border-radius: 99px; padding: 9px 14px; font: 12px/1.3 Arial,sans-serif; cursor: pointer; }
.case-hero-video, .hero { position: relative; }
.native-case { max-width: 1100px; margin: auto; padding: 180px 24px 80px; }
.native-case h1 { font-size: clamp(36px,6vw,72px); }
.native-case p { max-width: 70ch; line-height: 1.8; }
.native-case img, .native-case video { width: 100%; border-radius: var(--site-radius); }
.native-case section { margin: 50px 0; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
