.hero {
    position: relative;
    height: 100svh;
    min-height: 100svh;
    display: flex;
    align-items: stretch;
    overflow: hidden;
    padding: 0;
}

.hero__media,
.hero__video,
.hero__fallback,
.hero__overlay,
#hero-canvas {
    position: absolute;
    inset: 0;
}

.hero__video {
    display: none;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.04);
}

.hero__fallback {
    background: url('/assets/img/about-preview.avif') center/cover no-repeat;
    animation: hero-zoom 14s ease-in-out infinite alternate;
}

@keyframes hero-zoom {
    from { transform: scale(1); }
    to { transform: scale(1.08); }
}

.hero__overlay {
    background:
        linear-gradient(100deg, rgba(8, 6, 4, 0.92) 5%, rgba(8, 6, 4, 0.45) 52%, rgba(8, 6, 4, 0.82) 100%),
        linear-gradient(to top, rgba(8, 6, 4, 0.96) 0%, transparent 58%);
}

#hero-canvas {
    opacity: 0.42;
    pointer-events: none;
}

.hero__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 100svh;
    padding-top: calc(var(--header-height) + 64px);
    padding-bottom: 72px;
}

.hero__eyebrow,
.hero__sub {
    max-width: 720px;
    margin: 0;
}

.hero__eyebrow {
    color: var(--color-gold);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.hero__title {
    display: grid;
    gap: 8px;
    margin: 24px 0;
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(3.6rem, 8vw, 7rem);
    font-weight: 400;
    line-height: 1.04;
}

.hero__title em {
    color: var(--color-gold-strong);
    font-style: italic;
}

.hero__sub {
    font-size: 1rem;
    line-height: 1.8;
    color: var(--color-text-soft);
}

.hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 32px;
}

.hero__scroll {
    position: absolute;
    right: 28px;
    bottom: 28px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.68rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.hero__scroll::after {
    content: '';
    width: 1px;
    height: 56px;
    background: linear-gradient(to bottom, var(--color-gold), transparent);
}

.sweep-wrap {
    display: block;
    overflow: hidden;
    position: relative;
}

.sweep-wrap__inner {
    display: block;
    transform: translateY(100%);
    opacity: 0;
    transition: transform 0.8s cubic-bezier(.77, 0, .18, 1), opacity 0.01s;
}

.sweep-wrap.is-revealed .sweep-wrap__inner {
    transform: translateY(0);
    opacity: 1;
}

.sweep-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--color-gold);
    transform: scaleX(0);
    transform-origin: left center;
}

.sweep-wrap.is-sweeping::after {
    animation: sweep 0.95s cubic-bezier(.77, 0, .18, 1) forwards;
}

@keyframes sweep {
    0% { transform: scaleX(0); transform-origin: left center; }
    45% { transform: scaleX(1); transform-origin: left center; }
    55% { transform: scaleX(1); transform-origin: right center; }
    100% { transform: scaleX(0); transform-origin: right center; }
}
