:root {
    color-scheme: dark;
    --brand-primary: #8f2343;
    --brand-secondary: #e9b949;
    --void: #09090b;
    --monolith-gray: #151517;
}

html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body { overflow-x: clip; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body.menu-open { overflow: hidden; }
a, button { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
.site-header { height: 6rem; }
.site-header.nav-scrolled { height: 5rem; }
.mobile-nav-link.contact-link { color: var(--brand-secondary); }
.mobile-nav-link.contact-link:hover { color: white; }
.mobile-menu-btn { display: flex; min-width: 44px; min-height: 44px; justify-content: center; align-items: center; }
.mobile-menu-overlay { z-index: 90; }
.mobile-menu-overlay.is-open { z-index: 99; }
.mobile-menu-btn { position: relative; z-index: 101; }
.hero-section { min-height: 100svh; isolation: isolate; padding-top: 8rem; }
.hero-backdrop { position: absolute; inset: 0; z-index: 0; overflow: hidden; background: radial-gradient(ellipse at 70% 42%, rgba(143,35,67,.31), transparent 48%), linear-gradient(115deg, #09090b 15%, #161316 62%, #09090b); }
.hero-backdrop::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9,9,11,.92), rgba(9,9,11,.55) 58%, rgba(9,9,11,.76)), linear-gradient(0deg, #09090b 0%, transparent 35%, rgba(9,9,11,.26)); }
.hero-backdrop video { width: 100%; height: 100%; object-fit: cover; opacity: .5; filter: grayscale(1) brightness(.72); }
.hero-contour { position: absolute; right: -8vw; bottom: 0; width: min(75vw, 1050px); height: 67%; opacity: .25; background: linear-gradient(150deg, transparent 43%, rgba(242,184,0,.14) 43.1%, transparent 43.4%), linear-gradient(145deg, transparent 51%, rgba(255,255,255,.1) 51.1%, transparent 51.35%), linear-gradient(138deg, transparent 60%, rgba(127,23,52,.24) 60.1%, transparent 60.4%); clip-path: polygon(0 100%, 17% 68%, 27% 76%, 44% 30%, 53% 43%, 68% 0, 78% 26%, 100% 6%, 100% 100%); }
.hero-section { padding-inline: clamp(1.5rem, 2.7vw, 2.5rem) !important; }
.hero-section > .max-w-7xl { max-width: none; }
.hero-title { color: rgba(255,255,255,.28); font-size: clamp(4.5rem, 14vw, 20rem); font-weight: 800; line-height: .82; letter-spacing: -.05em; animation: hero-rise 1.2s cubic-bezier(.16,1,.3,1) both; }
.section-heading { font-family: var(--font-heading); font-size: clamp(2.8rem, 8vw, 10rem); font-weight: 800; line-height: .9; text-transform: uppercase; }
.hero-tagline { color: var(--brand-secondary); }
.hero-quote { max-width: 34rem; color: rgba(255,255,255,.68); font-size: clamp(1rem, 1.6vw, 1.5rem); font-style: italic; font-weight: 300; line-height: 1.6; }
.hero-description { max-width: 34rem; color: rgba(255,255,255,.55); font-size: 1rem; line-height: 1.75; }
.hero-section > .max-w-7xl > .eyebrow { animation: hero-rise .8s .08s cubic-bezier(.16,1,.3,1) both; }
.hero-section .hero-contour { animation: summit-drift 18s ease-in-out infinite alternate; transform-origin: 70% 100%; }
@keyframes hero-rise { from { opacity: 0; transform: translateY(2rem); filter: blur(8px); } to { opacity: 1; transform: translateY(0); filter: blur(0); } }
@keyframes summit-drift { from { transform: translate3d(0, 0, 0) scale(1); } to { transform: translate3d(-1.5%, -1%, 0) scale(1.035); } }
.eyebrow { color: var(--brand-secondary); letter-spacing: .55em; text-transform: uppercase; font-size: .68rem; font-weight: 700; }
.section-space { padding-block: clamp(5rem, 11vw, 10rem); }
.client-marquee { overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.client-track { display: flex; width: max-content; animation: client-scroll 48s linear infinite; }
.client-marquee:hover .client-track, .client-marquee:focus-within .client-track { animation-play-state: paused; }
.client-group { display: flex; align-items: center; gap: clamp(2rem, 4vw, 4rem); padding-inline: clamp(1.25rem, 3vw, 3rem); }
.client-item { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; min-width: 8rem; color: rgba(255,255,255,.65); font: 700 1rem/1.2 var(--font-heading, sans-serif); letter-spacing: .08em; text-transform: uppercase; }
.client-item { min-width: 0; width: clamp(8rem, 13vw, 12rem); height: 5.5rem; }
.client-item img { display: block; width: 100%; max-width: 12rem; height: 100%; max-height: 5.5rem; object-fit: contain; opacity: 1; }
@keyframes client-scroll { to { transform: translateX(-50%); } }
.site-footer-logo { display: block; width: 12rem; max-width: 100%; height: auto; }
.site-footer-contact, .site-footer-link { display: block; width: fit-content; color: rgba(255,255,255,.6); font-size: .875rem; line-height: 1.5; transition: color .25s ease; }
.site-footer-contact + .site-footer-contact { margin-top: .65rem; }
.site-footer-contact:hover, .site-footer-link:hover { color: var(--brand-secondary); }
.site-footer-socials a { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.62); font-size: 1rem; transition: color .25s ease, border-color .25s ease, background .25s ease, transform .25s ease; }
.site-footer-socials a:hover { color: white; border-color: var(--brand-primary); background: var(--brand-primary); transform: translateY(-2px); }
.project-card { position: relative; overflow: hidden; background: #141416; border: 1px solid rgba(255,255,255,.08); text-align: left; color: inherit; }
.project-media-button { display: block; width: 100%; padding: 0; border: 0; color: inherit; background: transparent; cursor: pointer; text-align: left; }
.project-media-button { position: relative; overflow: hidden; }
.project-play-mark { position: absolute; inset: 50% auto auto 50%; display: grid; width: 3.5rem; height: 3.5rem; place-items: center; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; color: white; background: rgba(9,9,11,.52); opacity: .88; transform: translate(-50%,-50%); transition: opacity .3s ease, background .3s ease, color .3s ease; pointer-events: none; }
.project-media-button:hover .project-play-mark, .project-media-button:focus-visible .project-play-mark { color: var(--void); background: var(--brand-secondary); opacity: 1; }
.project-card picture { display: block; }
.project-card img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; filter: grayscale(1) contrast(1.08) brightness(.82); transition: transform .85s cubic-bezier(.16,1,.3,1), filter .85s ease; }
.project-card:hover img, .project-media-button:focus-visible img { transform: scale(1.045); filter: grayscale(0) contrast(1.05) brightness(1); }
.project-card { transition: transform .65s cubic-bezier(.16,1,.3,1), border-color .65s ease; }
.project-card:hover { transform: translateY(-4px); border-color: rgba(233,185,73,.3); }
.project-card:focus-visible, button:focus-visible, a:focus-visible { outline: 2px solid var(--brand-secondary); outline-offset: 4px; }
.project-caption { padding: 1.25rem 1.5rem 1.5rem; }
.project-meta { color: rgba(255,255,255,.55); font-size: .65rem; letter-spacing: .22em; text-transform: uppercase; }
.project-placeholder { aspect-ratio: 16 / 10; display: grid; place-items: center; background: radial-gradient(ellipse at center, rgba(143,35,67,.35), transparent 65%), #111113; color: rgba(255,255,255,.35); font-size: .7rem; letter-spacing: .3em; text-transform: uppercase; }
.gallery-item { position: relative; display: block; width: 100%; padding: 0; border: 0; color: inherit; background: #111113; cursor: pointer; text-align: left; }
.gallery-item picture { display: block; width: 100%; }
.gallery-item img { display: block; width: 100%; height: auto; }
.gallery-item-overlay { position: absolute; inset: auto 0 0; display: flex; flex-direction: column; padding: 1.5rem; background: linear-gradient(transparent, rgba(0,0,0,.86)); }
.portfolio-card-v2 .project-media-button { width: 100%; height: 100%; }
.portfolio-card-v2 picture { display: block; }
.portfolio-card-v2 .project-media-button img { width: 100%; height: 100%; min-height: 18rem; object-fit: cover; }
.portfolio-card-v2 .card-overlay { pointer-events: none; }
.gallery-item.filtered-out, .portfolio-card-v2.filtered-out { display: none; }
.gallery-item:focus-visible, .portfolio-card-v2:focus-visible { outline: 2px solid var(--brand-secondary); outline-offset: 3px; }
.gallery-item { -webkit-appearance: none; appearance: none; }
.gallery-item .gallery-item-overlay { pointer-events: none; }
.team-photo { width: 100%; aspect-ratio: 1; object-fit: cover; }
.aspect-square picture { display: block; width: 100%; height: 100%; }
.mobile-menu-overlay .mobile-nav-link[type="button"] { appearance: none; -webkit-appearance: none; border: 0; background: transparent; cursor: pointer; }
.v2-reveal { opacity: 0; transform: translateY(1.5rem); transition: opacity .7s ease, transform .7s ease; }
.v2-reveal.active { opacity: 1; transform: translateY(0); }
.site-dialog { width: min(92vw, 58rem); max-width: none; max-height: min(90vh, 55rem); padding: 0; border: 1px solid rgba(255,255,255,.15); color: white; background: #101012; box-shadow: 0 2rem 8rem #000b; }
.site-dialog::backdrop { background: rgba(0,0,0,.82); backdrop-filter: blur(8px); }
.dialog-header { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.25rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.dialog-close { min-width: 44px; min-height: 44px; color: white; border: 1px solid rgba(255,255,255,.25); background: transparent; cursor: pointer; }
.video-frame { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }
.form-status { min-height: 1.5rem; font-size: .9rem; }
.form-status.is-error { color: #ff9898; }
.form-status.is-success { color: #a7e1b0; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.cta-button { min-height: 56px; }
.empty-state { border: 1px solid rgba(255,255,255,.08); padding: 2rem; color: rgba(255,255,255,.65); }
.custom-cursor { transform: translate(-50%, -50%); opacity: 0; transition: opacity .2s ease; }
.custom-cursor-follower { transform: translate(-50%, -50%); opacity: 0; transition: width .28s cubic-bezier(.16,1,.3,1), height .28s cubic-bezier(.16,1,.3,1), opacity .2s ease, border-color .28s ease; }
.custom-cursor-follower.is-interactive { width: 48px; height: 48px; border-color: rgba(233,185,73,.65); }
.v2-progress { background: linear-gradient(90deg, var(--brand-primary), var(--brand-secondary)); box-shadow: 0 0 12px rgba(233,185,73,.35); }
@media (prefers-reduced-motion: reduce) {
    .hero-title, .hero-section > .max-w-7xl > .eyebrow { animation: none; }
    .hero-contour { animation: none !important; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .v2-reveal { opacity: 1; transform: none; }
    .client-track { animation: none; }
}
@media (max-width: 767px) {
    .site-header { height: 5rem; padding-inline: 1rem !important; }
    .nav-logo { height: 2rem; }
    .hero-section { padding-inline: 1.25rem !important; }
    .hero-title { color: rgba(255,255,255,.34); font-size: clamp(1.9rem, 10vw, 5rem); line-height: .9; }
    .page-root h2.section-heading { font-size: clamp(1.3rem, 7vw, 4rem); letter-spacing: -.04em; }
    .page-root > section:first-child:not(.hero-section) { padding-inline: 0 !important; }
    .client-item { width: 7rem; height: 4rem; font-size: .8rem; }
    .client-item img { max-height: 4rem; }
    .site-dialog { width: 100vw; max-height: 92vh; }
}
