﻿:root {
    --bg: #101111;
    --panel: #151616;
    --panel-2: #191a1a;
    --ink: #ecebe7;
    --muted: #9b9b96;
    --dim: #666864;
    --line: rgba(255,255,255,.055);
    --line-strong: rgba(255,255,255,.145);
    --attention: #9f1821;
    --ivory: #f3f0e8;
    --warm: #b8b1a3;
    --nav-h: 72px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    background: var(--bg);
}

body {
    margin: 0;
}

a {
    color: inherit;
}

button, input, textarea, select {
    font: inherit;
}

.home-body {
    min-height: 100vh;
    overflow-x: hidden;
    background: var(--bg);
    color: var(--ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

    .home-body::selection {
        background: #f1f1ef;
        color: #111;
    }

.site-nav {
    position: fixed;
    inset: 0 0 auto;
    z-index: 100;
    height: var(--nav-h);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    padding: 0 clamp(24px, 5vw, 84px);
    border-bottom: 1px solid transparent;
    transition: background .28s ease, border-color .28s ease, height .28s ease;
}

    .site-nav.scrolled {
        background: rgba(16,17,17,.965);
        border-bottom-color: var(--line);
    }

.brand {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--ink);
    text-decoration: none;
}

.brand-mark {
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.015);
    font: 700 16px/1 Georgia, 'Times New Roman', serif;
    letter-spacing: .02em;
}

.brand-copy {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

    .brand-copy strong, .footer-brand strong {
        font-size: 10px;
        letter-spacing: .22em;
    }

    .brand-copy small, .footer-brand small {
        color: #6c6e6a;
        font: 500 7px/1.1 ui-monospace, SFMono-Regular, Menlo, monospace;
        letter-spacing: .18em;
    }

.nav-links {
    display: flex;
    align-items: center;
    gap: clamp(20px, 3vw, 48px);
}

    .nav-links a, .sign-in, .footer-links a {
        text-decoration: none;
        font: 600 9px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
        letter-spacing: .2em;
    }

    .nav-links a {
        color: #a1a3a0;
        transition: color .16s ease;
    }

        .nav-links a:hover {
            color: #fff;
        }

.sign-in {
    justify-self: end;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border: 1px solid var(--line-strong);
    background: rgba(255,255,255,.018);
    transition: border-color .16s ease, background .16s ease;
}

    .sign-in:hover {
        border-color: rgba(255,255,255,.4);
        background: rgba(255,255,255,.055);
    }

    .sign-in span {
        color: #fff;
    }

.hero {
    min-height: 100svh;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: grid;
    align-items: center;
    padding: calc(var(--nav-h) + 70px) clamp(28px, 8.8vw, 150px) 120px;
    background: radial-gradient(circle at 72% 45%, rgba(255,255,255,.055), transparent 24%), radial-gradient(circle at 65% 50%, rgba(255,255,255,.018), transparent 52%), linear-gradient(180deg,#141515 0%,#111212 62%,#101111 100%);
}

/* Static atmosphere only: no SVG turbulence, filters, or blend modes. */
.hero-noise {
    position: absolute;
    inset: 0;
    z-index: 8;
    pointer-events: none;
    opacity: .10;
    background-image: radial-gradient(rgba(255,255,255,.12) .6px, transparent .7px);
    background-size: 7px 7px;
    -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,.55), transparent 75%);
    mask-image: linear-gradient(to bottom, rgba(0,0,0,.55), transparent 75%);
}

.hero-vignette {
    position: absolute;
    inset: 0;
    z-index: 7;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(0,0,0,.38), transparent 48%, rgba(0,0,0,.06));
}

.parallax-stage {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
}

.parallax-layer {
    position: absolute;
    backface-visibility: hidden;
}

    .parallax-layer[data-depth] {
        will-change: transform;
    }

.layer-grid {
    inset: -3%;
    background-image: linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px);
    background-size: 72px 72px;
    -webkit-mask-image: radial-gradient(circle at 68% 50%, #000 0%, rgba(0,0,0,.74) 31%, transparent 69%);
    mask-image: radial-gradient(circle at 68% 50%, #000 0%, rgba(0,0,0,.74) 31%, transparent 69%);
    opacity: .46;
}

.layer-halo {
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.075);
}

.halo-a {
    width: min(58vw, 870px);
    aspect-ratio: 1;
    right: -1vw;
    top: 50%;
    margin-top: min(-29vw, -435px);
}

.halo-b {
    width: min(40vw, 610px);
    aspect-ratio: 1;
    right: 8vw;
    top: 50%;
    margin-top: min(-20vw, -305px);
    border-color: rgba(255,255,255,.085);
}

.orbit {
    width: 8px;
    height: 8px;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 50%;
}

    .orbit::before, .orbit::after {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
        border: 1px solid rgba(255,255,255,.075);
        border-radius: 50%;
    }

    .orbit::before {
        width: 170px;
        height: 170px;
    }

    .orbit::after {
        width: 340px;
        height: 340px;
    }

.orbit-a {
    right: 28%;
    top: 28%;
}

.orbit-b {
    right: 13%;
    bottom: 24%;
    opacity: .45;
}

.blueprint-card {
    width: 172px;
    min-height: 74px;
    padding: 14px 15px;
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 10px;
    border: 1px solid rgba(255,255,255,.09);
    background: rgba(18,19,19,.84);
}

    .blueprint-card::after {
        content: "";
        position: absolute;
        inset: 4px;
        border: 1px solid rgba(255,255,255,.035);
    }

.card-a {
    right: 39%;
    top: 24%;
}

.card-b {
    right: 7%;
    top: 40%;
}

.card-c {
    right: 31%;
    bottom: 18%;
}

.card-index {
    color: #f0f0ee;
    font: 700 9px/1 ui-monospace, monospace;
}

.card-name {
    color: #d6d5d0;
    font: 700 8px/1 ui-monospace, monospace;
    letter-spacing: .2em;
}

.card-meta {
    grid-column: 2;
    align-self: end;
    color: #737673;
    font: 600 7px/1.2 ui-monospace, monospace;
    letter-spacing: .12em;
}

.assembly-wrap {
    width: min(58vw,900px);
    height: min(30vw,430px);
    right: 3.5vw;
    top: 50%;
    margin-top: min(-15vw,-215px);
}

.assembly-shadow {
    position: absolute;
    left: 17%;
    right: 4%;
    bottom: 8%;
    height: 10%;
    border-radius: 50%;
    background: rgba(0,0,0,.36);
}

.assembly {
    position: absolute;
    inset: 16% 2% 12% 5%;
    transform: rotate(-5deg) skewX(-3deg);
}

    .assembly > div:not(.assembly-node) {
        position: absolute;
        border: 1px solid rgba(255,255,255,.13);
        background: linear-gradient(145deg, rgba(255,255,255,.075), transparent 32%), linear-gradient(180deg,#2c2e2d,#171818 60%,#1d1f1e);
        box-shadow: inset 0 1px rgba(255,255,255,.09), inset 0 -12px 18px rgba(0,0,0,.16);
    }

.assembly-rail {
    width: 58%;
    height: 12%;
    top: 17%;
    left: 12%;
    clip-path: polygon(2% 20%,100% 0,97% 100%,0 80%);
}

.assembly-body {
    width: 56%;
    height: 37%;
    top: 28%;
    left: 21%;
    clip-path: polygon(0 8%,88% 0,100% 28%,92% 100%,10% 92%);
}

.assembly-core {
    width: 31%;
    height: 17%;
    top: 37%;
    left: 31%;
    background: linear-gradient(145deg,#3b3d3c,#1b1c1b) !important;
    border-color: rgba(255,255,255,.25) !important;
}

.assembly-grip {
    width: 16%;
    height: 40%;
    top: 54%;
    left: 50%;
    clip-path: polygon(12% 0,100% 7%,76% 100%,5% 90%);
}

.assembly-front {
    width: 25%;
    height: 20%;
    top: 29%;
    right: 0;
    clip-path: polygon(0 12%,96% 0,100% 78%,9% 100%);
}

.hero-content {
    position: relative;
    z-index: 10;
    width: min(720px,54vw);
    animation: heroEnter .7s cubic-bezier(.16,1,.3,1) both;
}

.eyebrow, .section-kicker {
    color: #8d8f8b;
    font: 600 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
    letter-spacing: .28em;
}

.eyebrow {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 26px;
}

    .eyebrow span {
        width: 24px;
        height: 1px;
        background: #fff;
    }

.hero h1, .info-copy h2, .providers-head h2, .cta-inner h2 {
    margin: 0;
    font-family: "Arial Narrow","Roboto Condensed",Arial,sans-serif;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -.035em;
}

.hero h1 {
    font-size: clamp(70px,8.2vw,144px);
    line-height: .82;
}

    .hero h1 span {
        display: block;
    }

    .hero h1 .outline {
        color: transparent;
        -webkit-text-stroke: 1px rgba(243,240,232,.48);
        margin-top: .11em;
    }

.hero-copy {
    width: min(520px,88%);
    margin: 34px 0 34px;
    color: #9fa19d;
    font-size: clamp(13px,1.1vw,16px);
    line-height: 1.85;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.btn {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 26px;
    padding: 0 22px;
    border: 1px solid var(--line-strong);
    text-decoration: none;
    font: 700 8px/1 ui-monospace,monospace;
    letter-spacing: .16em;
    transition: background .16s ease,border-color .16s ease,color .16s ease;
}

.btn-primary {
    background: var(--ivory);
    border-color: #f0f0ee;
    color: #101111;
}

    .btn-primary:hover {
        background: #fff;
        border-color: #fff;
    }

    .btn-primary span {
        font-size: 15px;
    }

.btn-ghost {
    color: #a8aaa7;
    background: rgba(255,255,255,.02);
}

    .btn-ghost:hover {
        color: #fff;
        border-color: rgba(255,255,255,.34);
    }

.btn-large {
    min-height: 60px;
    padding: 0 28px;
}

.scroll-cue {
    position: absolute;
    z-index: 10;
    right: clamp(20px,4vw,64px);
    bottom: 64px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    color: #767975;
    text-decoration: none;
    font: 700 7px/1 ui-monospace,monospace;
    letter-spacing: .2em;
    writing-mode: vertical-rl;
}

    .scroll-cue i {
        width: 1px;
        height: 48px;
        background: linear-gradient(#777,transparent);
    }

.info-section, .providers-section, .cta-section {
    position: relative;
    padding: 148px clamp(28px,8.8vw,150px);
    border-top: 1px solid var(--line);
    content-visibility: auto;
    contain-intrinsic-size: 900px;
}

.info-section {
    background: #151616;
}

.section-kicker {
    display: block;
    margin-bottom: 68px;
}

.info-grid {
    display: grid;
    grid-template-columns: minmax(0,.82fr) minmax(440px,1.18fr);
    gap: clamp(110px,12vw,210px);
    align-items: start;
}

.info-copy h2, .providers-head h2, .cta-inner h2 {
    font-size: clamp(52px,5.7vw,92px);
    line-height: .9;
}

.info-copy p, .providers-head p {
    color: #929591;
    line-height: 1.8;
    font-size: 13px;
}

.info-copy p {
    max-width: 510px;
    margin: 34px 0 36px;
}

.text-link {
    display: inline-flex;
    gap: 10px;
    padding-bottom: 7px;
    border-bottom: 1px solid rgba(255,255,255,.35);
    text-decoration: none;
    color: #d9d8d3;
    font: 600 8px/1 ui-monospace,monospace;
    letter-spacing: .16em;
}

    .text-link span {
        color: #fff;
    }

.feature-stack {
    border-top: 1px solid var(--line);
    margin-top: 12px;
    padding-left: clamp(10px,1.5vw,24px);
}

.feature-card {
    display: grid;
    grid-template-columns: 48px minmax(0,1fr);
    gap: 38px;
    padding: 38px 4px 38px 0;
    border-bottom: 1px solid var(--line);
    transition: padding-left .24s ease,background .24s ease;
}

    .feature-card:hover {
        padding-left: 10px;
        background: linear-gradient(90deg,rgba(255,255,255,.025),transparent 50%);
    }

.feature-num {
    color: #d8d9d7;
    font: 700 9px/1 ui-monospace,monospace;
}

.feature-card h3 {
    margin: 0 0 10px;
    font-size: 12px;
    letter-spacing: .12em;
    line-height: 1.25;
}

.feature-card p {
    margin: 0;
    color: #81837f;
    font-size: 12px;
    line-height: 1.7;
}

.providers-section {
    background: #111212;
    overflow: hidden;
}

.providers-head {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 80px;
    align-items: end;
}

    .providers-head p {
        max-width: 560px;
        margin: 0 0 7px;
    }

.provider-marquee {
    margin: 100px calc(clamp(28px,8.8vw,150px) * -1) -30px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    overflow: hidden;
}

.provider-track {
    width: max-content;
    display: flex;
    align-items: center;
    padding: 25px 0;
    animation: marquee 38s linear infinite;
    color: #8b8d89;
    font: 700 10px/1 ui-monospace,monospace;
    letter-spacing: .22em;
    will-change: transform;
}

.provider-group {
    flex: none;
    display: flex;
    align-items: center;
    gap: 34px;
    padding-right: 34px;
}

.provider-track i {
    flex: none;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #d8d9d7;
    opacity: .5;
}

.cta-section {
    min-height: 72vh;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: linear-gradient(180deg,#171818,#141515);
}

.cta-grid {
    position: absolute;
    inset: -10%;
    background-image: linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);
    background-size: 64px 64px;
    -webkit-mask-image: radial-gradient(circle,#000,transparent 70%);
    mask-image: radial-gradient(circle,#000,transparent 70%);
    transform: perspective(650px) rotateX(63deg) scale(1.35) translateY(14%);
    transform-origin: center bottom;
}

.cta-section::after {
    content: "W";
    position: absolute;
    right: -1vw;
    bottom: -16vw;
    color: transparent;
    -webkit-text-stroke: 1px rgba(255,255,255,.035);
    font: 900 58vw/1 Arial,sans-serif;
    pointer-events: none;
}

.cta-inner {
    position: relative;
    z-index: 1;
    text-align: center;
}

    .cta-inner .section-kicker {
        margin-bottom: 28px;
    }

    .cta-inner h2 {
        margin-bottom: 34px;
    }

.site-footer {
    min-height: 178px;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 40px;
    padding: 42px clamp(20px,4vw,64px);
    border-top: 1px solid var(--line);
    background: #0d0e0e;
}

.footer-brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

    .footer-brand > div {
        display: flex;
        flex-direction: column;
        gap: 5px;
    }

.footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 26px;
    justify-content: center;
}

    .footer-links a {
        color: #797c78;
        transition: color .16s ease;
    }

        .footer-links a:hover {
            color: #fff;
        }

.footer-meta {
    justify-self: end;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 7px;
    color: #636662;
    font: 600 8px/1 ui-monospace,monospace;
    letter-spacing: .12em;
}


.hero-monogram {
    position: absolute;
    right: clamp(30px,7vw,110px);
    top: calc(var(--nav-h) + 34px);
    z-index: 9;
    color: rgba(243,240,232,.34);
    font: 500 9px/1 Georgia, 'Times New Roman', serif;
    letter-spacing: .38em;
    text-transform: uppercase;
}

.premium-note {
    margin-top: 18px;
    color: #696c68;
    font: 500 7px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;
    letter-spacing: .2em;
}

.providers-head strong {
    display: block;
    margin-top: 20px;
    color: #d8d6cf;
    font: 500 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
    letter-spacing: .22em;
}

@keyframes heroEnter {
    from {
        opacity: 0;
        transform: translateY(18px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes marquee {
    from {
        transform: translate3d(0,0,0);
    }

    to {
        transform: translate3d(-50%,0,0);
    }
}

@media (max-width:980px) {
    .site-nav {
        grid-template-columns: 1fr auto;
    }

    .nav-links {
        display: none;
    }

    .hero {
        padding-left: 32px;
        padding-right: 32px;
    }

    .hero-content {
        width: min(720px,86vw);
    }

    .assembly-wrap {
        width: 78vw;
        height: 41vw;
        right: -24vw;
        opacity: .48;
    }

    .card-a {
        right: 12%;
        top: 18%;
    }

    .card-b {
        right: -4%;
        top: 47%;
    }

    .card-c {
        right: 15%;
        bottom: 12%;
    }

    .info-grid, .providers-head {
        grid-template-columns: 1fr;
    }

    .info-grid {
        gap: 70px;
    }

    .providers-head {
        gap: 28px;
    }

    .site-footer {
        grid-template-columns: 1fr 1fr;
    }

    .footer-links {
        justify-content: flex-end;
    }

    .footer-meta {
        grid-column: 1/-1;
        justify-self: stretch;
        flex-direction: row;
        justify-content: space-between;
    }
}

@media (max-width:640px) {
    :root {
        --nav-h: 64px;
    }

    .site-nav {
        padding: 0 18px;
    }

    .brand-copy small {
        display: none;
    }

    .sign-in {
        padding: 10px;
    }

        .sign-in span {
            display: none;
        }

    .hero {
        min-height: 780px;
        align-items: center;
        padding: 100px 20px 96px;
    }

    .hero-content {
        width: 100%;
    }

    .hero h1 {
        font-size: clamp(62px,21vw,96px);
    }

    .hero-copy {
        width: 92%;
        font-size: 13px;
    }

    .hero-actions {
        flex-direction: column;
        align-items: flex-start;
    }

    .btn {
        width: 100%;
    }

    .assembly-wrap {
        width: 116vw;
        height: 61vw;
        right: -56vw;
        top: 55%;
        opacity: .25;
    }

    .layer-halo {
        opacity: .35;
    }

    .blueprint-card {
        opacity: .42;
    }

    .card-a {
        right: -9%;
        top: 16%;
    }

    .card-b {
        right: -13%;
        top: 59%;
    }

    .card-c, .orbit-b {
        display: none;
    }

    .hero-monogram {
        display: none;
    }

    .hide-mobile, .scroll-cue {
        display: none;
    }

    .info-section, .providers-section, .cta-section {
        padding: 86px 20px;
    }

    .section-kicker {
        margin-bottom: 36px;
    }

    .info-copy h2, .providers-head h2, .cta-inner h2 {
        font-size: clamp(48px,15vw,74px);
    }

    .info-grid {
        grid-template-columns: 1fr;
        gap: 62px;
    }

    .feature-stack {
        padding-left: 0;
        margin-top: 0;
    }

    .feature-card {
        grid-template-columns: 42px 1fr;
        gap: 18px;
        padding: 26px 0;
    }

    .provider-marquee {
        margin-left: -20px;
        margin-right: -20px;
    }

    .cta-section {
        min-height: 620px;
    }

    .site-footer {
        grid-template-columns: 1fr;
        gap: 34px;
        padding: 42px 20px;
    }

    .footer-links {
        justify-content: flex-start;
        gap: 18px 22px;
    }

    .footer-meta {
        grid-column: auto;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
}

@media (prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto;
    }

    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }

    .parallax-layer {
        transform: none !important;
    }
}

/* 2026 landing refinement: product-first, quieter, cleaner. */
.hero-noise {
    display: none;
}

.hero-monogram {
    opacity: .55;
}

/* Provider copy + roster */
.providers-layout {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(520px, 1.1fr);
    gap: clamp(72px, 9vw, 150px);
    align-items: end;
}

.providers-copy h2 {
    margin: 0;
    font-family: "Arial Narrow", "Roboto Condensed", Arial, sans-serif;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -.035em;
    font-size: clamp(52px, 5.7vw, 92px);
    line-height: .9;
}

.providers-copy p {
    max-width: 620px;
    margin: 32px 0 0;
    color: #929591;
    line-height: 1.8;
    font-size: 13px;
}

.providers-copy strong {
    display: block;
    margin-top: 24px;
    color: #d8d6cf;
    font: 500 8px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
    letter-spacing: .22em;
}

.provider-roster {
    border-top: 1px solid var(--line-strong);
    border-bottom: 1px solid var(--line);
}

.provider-roster-head, .provider-row {
    display: grid;
    align-items: center;
}

.provider-roster-head {
    grid-template-columns: 1fr auto;
    min-height: 46px;
    color: #696c68;
    font: 600 7px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
    letter-spacing: .2em;
}

.provider-row {
    grid-template-columns: 46px minmax(0, 1fr) auto;
    gap: 18px;
    min-height: 72px;
    border-top: 1px solid var(--line);
    transition: background .18s ease, padding .18s ease;
}

    .provider-row:hover {
        background: rgba(255,255,255,.018);
        padding: 0 10px;
    }

.provider-index {
    color: #686b68;
    font: 600 8px/1 ui-monospace, monospace;
}

.provider-name {
    color: var(--ivory);
    font-size: 15px;
    font-weight: 650;
    letter-spacing: -.01em;
}

.provider-type {
    color: #767975;
    font: 600 7px/1 ui-monospace, monospace;
    letter-spacing: .16em;
}

/* Seamless marquee: each half is intentionally wider than a large desktop viewport. */
.provider-marquee {
    overflow: hidden;
    width: calc(100% + (clamp(28px,8.8vw,150px) * 2));
    margin: 100px calc(clamp(28px,8.8vw,150px) * -1) -30px;
}

.provider-track {
    display: flex;
    width: max-content;
    transform: translate3d(0,0,0);
    animation: providerLoop 54s linear infinite;
}

.provider-group {
    flex: 0 0 auto;
    white-space: nowrap;
    padding-right: 34px;
}

@keyframes providerLoop {
    from {
        transform: translate3d(0,0,0);
    }

    to {
        transform: translate3d(-50%,0,0);
    }
}

@media (max-width: 1100px) {
    .providers-layout {
        grid-template-columns: 1fr;
        gap: 56px;
    }
}

@media (max-width: 640px) {
    .provider-roster-head {
        min-height: 42px;
    }

    .provider-row {
        grid-template-columns: 34px 1fr;
        min-height: 66px;
    }

    .provider-type {
        grid-column: 2;
        margin-top: -17px;
        margin-bottom: 12px;
    }

    .provider-marquee {
        width: calc(100% + 40px);
        margin-left: -20px;
        margin-right: -20px;
    }
}

/* Center the featured provider roster on the page. */
.provider-roster {
    width: min(760px, 100%);
    margin-inline: auto;
}


/* Provider vertical alignment refinement */
@media (min-width: 1101px) {
    .providers-layout {
        align-items: center;
    }

    .provider-roster {
        align-self: center;
        transform: translateY(18px);
    }
}


/* ==========================================================
   THREE-IMAGE PRODUCT PARALLAX � FULL HOMEPAGE INTEGRATION
   Expected image files:
   ./images/home/complete-build.webp
   ./images/home/slide-bolt.webp
   ./images/home/grip-lower.webp
   ========================================================== */

.product-parallax {
    perspective: 1200px;
    transform-style: preserve-3d;
    overflow: visible;
}

    .product-parallax .parallax-layer[data-depth] {
        transform: translate3d(var(--px, 0px), var(--py, 0px), 0) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
        transform-style: preserve-3d;
        will-change: transform;
    }

    /* Retire the old fake blueprint/assembly geometry on this version. */
    .product-parallax .blueprint-card,
    .product-parallax .assembly-wrap {
        display: none !important;
    }

.product-shot {
    position: absolute;
    margin: 0;
    pointer-events: none;
    transform-origin: 50% 50%;
}

    .product-shot .shot-frame {
        position: relative;
        width: 100%;
        height: 100%;
        overflow: hidden;
        border: 1px solid rgba(255,255,255,.13);
        background: rgba(11,12,12,.72);
        box-shadow: 0 28px 80px rgba(0,0,0,.42), inset 0 0 0 1px rgba(255,255,255,.025);
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
    }

        .product-shot .shot-frame::before,
        .product-shot .shot-frame::after {
            content: "";
            position: absolute;
            z-index: 4;
            width: 18px;
            height: 18px;
            pointer-events: none;
        }

        .product-shot .shot-frame::before {
            left: 8px;
            top: 8px;
            border-left: 1px solid rgba(255,255,255,.5);
            border-top: 1px solid rgba(255,255,255,.5);
        }

        .product-shot .shot-frame::after {
            right: 8px;
            bottom: 8px;
            border-right: 1px solid rgba(255,255,255,.32);
            border-bottom: 1px solid rgba(255,255,255,.32);
        }

    .product-shot img {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
        user-select: none;
        -webkit-user-drag: none;
        filter: saturate(.82) contrast(1.07) brightness(.82);
        transition: filter .3s ease;
    }

.shot-main {
    left: 46.5%;
    bottom: 5.5%;
    width: min(43vw, 710px);
    height: min(38vw, 570px);
    z-index: 5;
}

    .shot-main .shot-frame {
        clip-path: polygon(0 0, 96% 0, 100% 6%, 100% 100%, 0 100%);
    }

    .shot-main img {
        object-position: 50% 50%;
    }

.shot-detail {
    width: min(24vw, 390px);
    height: min(16vw, 245px);
    z-index: 8;
}

.shot-slide {
    right: 3.6%;
    top: 14%;
}

.shot-lower {
    right: 10.5%;
    bottom: 12%;
}

.shot-detail .shot-frame {
    clip-path: polygon(0 0, 94% 0, 100% 10%, 100% 100%, 6% 100%, 0 90%);
}

.shot-detail img {
    object-position: center;
}

.shot-sheen {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(120deg, rgba(255,255,255,.09), transparent 23%, transparent 72%, rgba(255,255,255,.025)), linear-gradient(to top, rgba(0,0,0,.58), transparent 52%);
    mix-blend-mode: screen;
    opacity: .45;
}

.shot-label {
    position: absolute;
    z-index: 5;
    min-width: 176px;
    padding: 11px 12px 10px;
    border: 1px solid rgba(255,255,255,.16);
    background: rgba(7,8,8,.82);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: #f2f0ea;
    font-style: normal;
    box-shadow: 0 12px 32px rgba(0,0,0,.26);
}

.label-bottom-left {
    left: 14px;
    bottom: 14px;
}

.label-top-right {
    right: 10px;
    top: 10px;
    text-align: right;
}

.shot-index {
    display: block;
    margin-bottom: 6px;
    color: rgba(255,255,255,.48);
    font: 600 7px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
    letter-spacing: .18em;
}

.shot-label strong {
    display: block;
    font: 760 11px/1.1 Inter, ui-sans-serif, system-ui, sans-serif;
    letter-spacing: .13em;
}

.shot-label small {
    display: block;
    margin-top: 7px;
    color: rgba(255,255,255,.46);
    font: 600 6.5px/1.3 ui-monospace, SFMono-Regular, Menlo, monospace;
    letter-spacing: .1em;
}

.detail-marker {
    position: absolute;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,.48);
    font: 600 7px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
    letter-spacing: .15em;
}

    .detail-marker i {
        width: 5px;
        height: 5px;
        border: 1px solid rgba(255,255,255,.75);
        border-radius: 50%;
        box-shadow: 0 0 0 4px rgba(255,255,255,.04);
    }

    .detail-marker::after {
        content: "";
        width: 42px;
        height: 1px;
        background: rgba(255,255,255,.18);
    }

.marker-a {
    right: 27%;
    top: 11.5%;
}

.marker-b {
    right: 34%;
    bottom: 9%;
}

/* Keep hero copy readable while letting the product composition occupy the right side. */
.hero-content {
    z-index: 20;
}

.product-parallax::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 12;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(10,10,10,.5) 0%, rgba(10,10,10,.18) 36%, transparent 57%);
}

@media (max-width: 1100px) {
    .shot-main {
        left: 48%;
        width: 48vw;
        height: 42vw;
    }

    .shot-detail {
        width: 27vw;
        height: 18vw;
    }

    .shot-slide {
        right: 2%;
    }

    .shot-lower {
        right: 7%;
    }
}

@media (max-width: 820px) {
    .product-parallax {
        opacity: .62;
    }

    .shot-main {
        left: 37%;
        bottom: 6%;
        width: 62vw;
        height: 48vw;
    }

    .shot-detail {
        width: 34vw;
        height: 23vw;
    }

    .shot-slide {
        right: 2%;
        top: 17%;
    }

    .shot-lower {
        right: 5%;
        bottom: 10%;
    }

    .shot-label {
        min-width: 0;
        padding: 8px;
    }

        .shot-label small,
        .detail-marker {
            display: none;
        }
}

@media (prefers-reduced-motion: reduce) {
    .product-parallax .parallax-layer[data-depth] {
        transform: none !important;
    }
}


/* Ensure legacy fake-assembly pieces never reappear anywhere in the new hero. */
.product-parallax .assembly-wrap,
.product-parallax .blueprint-card,
.product-parallax .assembly,
.product-parallax .assembly-shadow,
.product-parallax .assembly-rail,
.product-parallax .assembly-body,
.product-parallax .assembly-core,
.product-parallax .assembly-grip,
.product-parallax .assembly-front {
    display: none !important;
}

/* Prevent old parallax translate rules from fighting the new CSS-variable transform. */
.product-parallax .parallax-layer[data-depth] {
    transition: none;
}

/* Slightly richer depth separation without overpowering the hero copy. */
.shot-main {
    filter: drop-shadow(0 30px 45px rgba(0,0,0,.24));
}

.shot-slide {
    filter: drop-shadow(0 24px 34px rgba(0,0,0,.34));
}

.shot-lower {
    filter: drop-shadow(0 20px 30px rgba(0,0,0,.30));
}

/* Keep detail cards crisp on high-density displays. */
.shot-label,
.detail-marker {
    -webkit-font-smoothing: antialiased;
    text-rendering: geometricPrecision;
}

/* Tablet cleanup */
@media (max-width: 980px) {
    .product-parallax .shot-main {
        left: 43%;
        bottom: 8%;
        width: min(58vw, 620px);
        height: min(46vw, 500px);
        opacity: .82;
    }

    .product-parallax .shot-slide {
        right: 1%;
        top: 17%;
        width: min(31vw, 320px);
        height: min(20vw, 205px);
    }

    .product-parallax .shot-lower {
        right: 4%;
        bottom: 11%;
        width: min(30vw, 310px);
        height: min(20vw, 205px);
    }

    .product-parallax .marker-a,
    .product-parallax .marker-b {
        display: none;
    }
}

/* Phone layout: retain the images as atmosphere without covering the CTA. */
@media (max-width: 640px) {
    .product-parallax {
        opacity: .46;
    }

        .product-parallax .shot-main {
            left: 30%;
            bottom: 13%;
            width: 82vw;
            height: 62vw;
        }

        .product-parallax .shot-slide {
            right: -8%;
            top: 20%;
            width: 47vw;
            height: 30vw;
        }

        .product-parallax .shot-lower {
            right: -4%;
            bottom: 9%;
            width: 46vw;
            height: 30vw;
        }

        .product-parallax .shot-label {
            display: none;
        }

        .product-parallax::after {
            background: linear-gradient(90deg, rgba(10,10,10,.62) 0%, rgba(10,10,10,.34) 48%, rgba(10,10,10,.08) 100%);
        }
}



/* ==========================================================
   LOW-COST FLOATING IMAGE PARALLAX
   Translation only � no 3D rotation, blur, blend-mode,
   clip-path animation, or heavy moving shadows.
   ========================================================== */

.product-parallax {
    perspective: none !important;
    transform-style: flat !important;
    overflow: visible;
}

    /* Translation only. JS writes transform directly. */
    .product-parallax .parallax-layer[data-depth] {
        transform: translate3d(0,0,0);
        transform-style: flat !important;
        transition: none !important;
        backface-visibility: hidden;
    }

    /* Keep background elements subtle so the product cards do the visual work. */
    .product-parallax .layer-grid {
        opacity: .24;
    }

    .product-parallax .layer-halo {
        opacity: .34;
    }

    .product-parallax .orbit {
        opacity: .3;
    }

    /* Product cards */
    .product-parallax .product-shot {
        position: absolute;
        margin: 0;
        pointer-events: none;
        filter: none !important;
        transform-origin: center;
        z-index: 5;
    }

    .product-parallax .shot-frame {
        position: relative;
        width: 100%;
        height: 100%;
        overflow: hidden;
        border: 1px solid rgba(255,255,255,.13);
        background: #121313;
        box-shadow: 0 16px 34px rgba(0,0,0,.22);
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        clip-path: none !important;
    }

        .product-parallax .shot-frame::before,
        .product-parallax .shot-frame::after {
            display: none !important;
        }

    .product-parallax .product-shot img {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
        user-select: none;
        -webkit-user-drag: none;
        filter: brightness(.86) contrast(1.04) saturate(.88);
    }

    .product-parallax .shot-sheen {
        display: none !important;
    }

    /* ----------------------------------------------------------
   IMAGE COMPOSITION
   Separate positions so cards never overlap one another.
   ---------------------------------------------------------- */

    /* Complete build � smaller and lower-left inside the visual cluster */
    .product-parallax .shot-main {
        left: 44%;
        bottom: 7%;
        width: min(32vw, 510px);
        height: min(23vw, 350px);
        z-index: 4;
    }

    /* Custom parts � upper-right */
    .product-parallax .shot-slide {
        right: 4.5%;
        top: 15%;
        width: min(25vw, 390px);
        height: min(16vw, 245px);
        z-index: 7;
    }

    /* Your design � middle/right, clearly separated from both */
    .product-parallax .shot-lower {
        right: 7%;
        top: 52%;
        width: min(23vw, 355px);
        height: min(15vw, 225px);
        z-index: 6;
    }

    /* ----------------------------------------------------------
   FLOATING LUXURY LABELS
   Labels live OUTSIDE the image frame and hover above it.
   ---------------------------------------------------------- */

    .product-parallax .shot-label {
        position: absolute;
        z-index: 20;
        right: 0;
        bottom: calc(100% + 12px);
        min-width: 188px;
        padding: 0;
        border: 0;
        background: transparent;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        box-shadow: none;
        color: var(--ivory);
        text-align: right;
        font-style: normal;
    }

        .product-parallax .shot-label::before {
            content: "";
            display: block;
            width: 34px;
            height: 1px;
            margin: 0 0 10px auto;
            background: rgba(243,240,232,.54);
        }

    .product-parallax .shot-index {
        display: block;
        margin-bottom: 7px;
        color: rgba(243,240,232,.42);
        font: 600 7px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
        letter-spacing: .20em;
    }

    .product-parallax .shot-label strong {
        display: block;
        color: var(--ivory);
        font: 700 12px/1 "Arial Narrow","Roboto Condensed",Arial,sans-serif;
        letter-spacing: .17em;
    }

    .product-parallax .shot-label small {
        display: block;
        margin-top: 7px;
        color: rgba(243,240,232,.43);
        font: 500 7px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;
        letter-spacing: .13em;
    }

    /* Main card label gets left alignment for a more editorial composition. */
    .product-parallax .shot-main .shot-label {
        left: 0;
        right: auto;
        text-align: left;
    }

        .product-parallax .shot-main .shot-label::before {
            margin-left: 0;
            margin-right: auto;
        }

    /* Remove prior overlay that was flattening the image stack. */
    .product-parallax::after {
        background: linear-gradient( 90deg, rgba(10,10,10,.42) 0%, rgba(10,10,10,.12) 39%, transparent 58% ) !important;
    }

    /* Old technical markers are retired. */
    .product-parallax .detail-marker {
        display: none !important;
    }

/* Medium desktop / tablet */
@media (max-width: 1100px) {
    .product-parallax .shot-main {
        left: 42%;
        bottom: 9%;
        width: min(39vw, 470px);
        height: min(28vw, 330px);
    }

    .product-parallax .shot-slide {
        right: 2%;
        top: 17%;
        width: min(29vw, 350px);
        height: min(18vw, 218px);
    }

    .product-parallax .shot-lower {
        right: 4%;
        top: 54%;
        width: min(27vw, 325px);
        height: min(17vw, 205px);
    }

    .product-parallax .shot-label {
        min-width: 160px;
    }
}

/* Tablet: preserve three layers but simplify labels */
@media (max-width: 820px) {
    .product-parallax {
        opacity: .6;
    }

        .product-parallax .shot-main {
            left: 39%;
            bottom: 8%;
            width: 50vw;
            height: 34vw;
        }

        .product-parallax .shot-slide {
            right: 0;
            top: 18%;
            width: 34vw;
            height: 21vw;
        }

        .product-parallax .shot-lower {
            right: 3%;
            top: 52%;
            width: 32vw;
            height: 20vw;
        }

        .product-parallax .shot-label small {
            display: none;
        }
}

/* Mobile: keep movement lightweight and avoid covering hero actions */
@media (max-width: 640px) {
    .product-parallax {
        opacity: .38;
    }

        .product-parallax .shot-main {
            left: 35%;
            bottom: 11%;
            width: 58vw;
            height: 38vw;
        }

        .product-parallax .shot-slide {
            right: -5%;
            top: 21%;
            width: 39vw;
            height: 24vw;
        }

        .product-parallax .shot-lower {
            right: -2%;
            top: 54%;
            width: 37vw;
            height: 23vw;
        }

        .product-parallax .shot-label {
            display: none;
        }

        .product-parallax .layer-halo,
        .product-parallax .orbit {
            display: none;
        }
}

/* No motion preference = completely static image composition. */
@media (prefers-reduced-motion: reduce) {
    .product-parallax .parallax-layer[data-depth] {
        transform: none !important;
    }
}



/* ==========================================================
   RESPONSIVE PRODUCT CLUSTER + LIGHTWEIGHT DEPTH
   Scales as one composition across 1080p, 1440p, 4K and
   ultrawide displays while keeping the cards separated.
   ========================================================== */

.product-parallax {
    overflow: hidden !important;
    contain: layout paint;
}

    /* The whole image composition scales together instead of each
   card independently fighting vw/vh on unusual aspect ratios. */
    .product-parallax .product-cluster {
        position: absolute;
        z-index: 4;
        right: clamp(22px, 3.8vw, 96px);
        top: 50%;
        width: clamp(690px, 51vw, 1240px);
        aspect-ratio: 1.46 / 1;
        transform: translateY(-47%);
        pointer-events: none;
    }

        /* Reset old viewport-based placement. Positions are now relative
   to the cluster, so the layout preserves its proportions. */
        .product-parallax .product-cluster .product-shot {
            margin: 0;
            filter: none !important;
        }

        /* Main / complete build: intentionally smaller and lower-left. */
        .product-parallax .product-cluster .shot-main {
            left: 2%;
            right: auto;
            top: auto;
            bottom: 2%;
            width: 54%;
            height: 43%;
            z-index: 4;
        }

        /* Custom parts: upper-right. */
        .product-parallax .product-cluster .shot-slide {
            left: auto;
            right: 1%;
            top: 3%;
            bottom: auto;
            width: 43%;
            height: 31%;
            z-index: 8;
        }

        /* Your design: center-right with a real visual gap. */
        .product-parallax .product-cluster .shot-lower {
            left: auto;
            right: 5%;
            top: 48%;
            bottom: auto;
            width: 39%;
            height: 29%;
            z-index: 6;
        }

    /* Lightweight "depth": no perspective rotation.
   Nearer cards get slightly stronger shadow/contrast. */
    .product-parallax .shot-main .shot-frame {
        box-shadow: 0 18px 38px rgba(0,0,0,.24), 0 1px 0 rgba(255,255,255,.05) inset;
    }

    .product-parallax .shot-slide .shot-frame {
        box-shadow: 0 30px 58px rgba(0,0,0,.34), 0 0 0 1px rgba(255,255,255,.025) inset;
    }

    .product-parallax .shot-lower .shot-frame {
        box-shadow: 0 24px 48px rgba(0,0,0,.29), 0 0 0 1px rgba(255,255,255,.022) inset;
    }

    .product-parallax .shot-slide img {
        filter: brightness(.91) contrast(1.065) saturate(.9);
    }

    .product-parallax .shot-lower img {
        filter: brightness(.88) contrast(1.05) saturate(.88);
    }

    .product-parallax .shot-main img {
        filter: brightness(.82) contrast(1.035) saturate(.86);
    }

    /* Floating labels remain outside the artwork. */
    .product-parallax .product-cluster .shot-label {
        bottom: calc(100% + clamp(9px, .7vw, 15px));
    }

        .product-parallax .product-cluster .shot-label strong {
            font-size: clamp(10px, .68vw, 13px);
        }

        .product-parallax .product-cluster .shot-label small {
            font-size: clamp(6px, .4vw, 8px);
        }

/* 1440-ish and narrower desktops */
@media (max-width: 1280px) {
    .product-parallax .product-cluster {
        right: clamp(8px, 2vw, 32px);
        width: clamp(650px, 57vw, 820px);
        transform: translateY(-45%);
    }
}

/* Tablet / small laptop */
@media (max-width: 980px) {
    .product-parallax .product-cluster {
        right: -7vw;
        top: 51%;
        width: clamp(610px, 79vw, 790px);
        transform: translateY(-45%);
        opacity: .62;
    }

        .product-parallax .product-cluster .shot-main {
            left: 5%;
            width: 50%;
            height: 40%;
        }

        .product-parallax .product-cluster .shot-slide {
            right: 2%;
            width: 39%;
            height: 29%;
        }

        .product-parallax .product-cluster .shot-lower {
            right: 5%;
            top: 49%;
            width: 36%;
            height: 27%;
        }
}

/* Mobile */
@media (max-width: 640px) {
    .product-parallax .product-cluster {
        right: -32vw;
        top: 52%;
        width: 118vw;
        transform: translateY(-43%);
        opacity: .40;
    }

        .product-parallax .product-cluster .shot-label {
            display: none;
        }

        .product-parallax .product-cluster .shot-main {
            left: 2%;
            bottom: 3%;
            width: 50%;
            height: 39%;
        }

        .product-parallax .product-cluster .shot-slide {
            right: 1%;
            top: 4%;
            width: 39%;
            height: 28%;
        }

        .product-parallax .product-cluster .shot-lower {
            right: 5%;
            top: 49%;
            width: 35%;
            height: 26%;
        }
}

/* Very wide / ultrawide monitors: don't let the visual cluster
   drift too far away from the hero copy or become microscopic. */
@media (min-aspect-ratio: 21/9) and (min-width: 1600px) {
    .product-parallax .product-cluster {
        right: clamp(72px, 6vw, 180px);
        width: clamp(940px, 47vw, 1320px);
    }
}

/* Large 4K-class screens */
@media (min-width: 2200px) and (min-height: 1200px) {
    .product-parallax .product-cluster {
        right: clamp(100px, 5vw, 220px);
        width: clamp(1120px, 48vw, 1480px);
    }

        .product-parallax .product-cluster .shot-label {
            bottom: calc(100% + 18px);
        }

            .product-parallax .product-cluster .shot-label strong {
                font-size: 14px;
            }

            .product-parallax .product-cluster .shot-label small {
                font-size: 8px;
            }
}

/* Keep reduced-motion completely static. */
@media (prefers-reduced-motion: reduce) {
    .product-parallax .parallax-layer[data-depth] {
        transform: none !important;
    }
}



/* ==========================================================
   WICK HOME � LUXURY GOLD REFINEMENT
   Keeps the existing layout/parallax system and adds a restrained
   warm-metal accent language across the entire home page.
   ========================================================== */

:root {
    --gold: #b98b58;
    --gold-soft: #d7b17d;
    --gold-pale: #e5c697;
    --gold-deep: #765638;
    --gold-line: rgba(185,139,88,.38);
    --gold-faint: rgba(185,139,88,.075);
    --lux-black: #0c0e0e;
    --lux-panel: #121414;
}

/* Global polish */
.home-body {
    background: radial-gradient(circle at 72% 8%, rgba(185,139,88,.025), transparent 24%), var(--bg);
}

    .home-body::selection {
        background: var(--gold-soft);
        color: #111;
    }

/* ---------------- Navigation ---------------- */

.site-nav {
    border-bottom-color: rgba(255,255,255,.035);
    background: linear-gradient(180deg, rgba(12,14,14,.83), rgba(12,14,14,.48));
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

    .site-nav.scrolled {
        background: rgba(11,13,13,.965);
        border-bottom-color: rgba(185,139,88,.15);
    }

.brand-mark {
    border-color: rgba(185,139,88,.65);
    color: var(--gold-soft);
    background: linear-gradient(145deg, rgba(185,139,88,.07), rgba(255,255,255,.01));
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.018), 0 0 22px rgba(185,139,88,.025);
}

.brand-copy strong {
    color: #e1ddd6;
}

.brand-copy small {
    color: #89745c;
}

.nav-links a {
    color: #a5a39d;
}

    .nav-links a:hover {
        color: var(--gold-pale);
    }

.nav-end {
    justify-self: end;
    display: inline-flex;
    align-items: center;
    gap: 18px;
}

.nav-motto {
    padding-right: 18px;
    border-right: 1px solid var(--gold-line);
    color: #8f6b47;
    text-align: center;
    font: 700 6.5px/1.35 ui-monospace, SFMono-Regular, Menlo, monospace;
    letter-spacing: .22em;
}

.sign-in {
    justify-self: auto;
    border-color: rgba(185,139,88,.34);
    background: rgba(185,139,88,.018);
}

    .sign-in:hover {
        color: var(--gold-pale);
        border-color: rgba(215,177,125,.62);
        background: rgba(185,139,88,.055);
    }

    .sign-in span {
        color: var(--gold-soft);
    }

/* ---------------- Hero ---------------- */

.hero {
    background: radial-gradient(circle at 73% 42%, rgba(185,139,88,.075), transparent 21%), radial-gradient(circle at 62% 46%, rgba(255,255,255,.018), transparent 48%), linear-gradient(180deg,#141515 0%,#101212 62%,#0e1010 100%);
}

    .hero::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 1;
        pointer-events: none;
        background: linear-gradient(90deg, transparent 0, transparent 67%, rgba(185,139,88,.035) 100%);
    }

.hero-vignette {
    background: linear-gradient(90deg, rgba(0,0,0,.44), transparent 48%, rgba(0,0,0,.13));
}

.layer-grid {
    background-image: linear-gradient(rgba(185,139,88,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(185,139,88,.025) 1px, transparent 1px);
}

.layer-halo {
    border-color: rgba(185,139,88,.105);
}

.halo-b {
    border-color: rgba(215,177,125,.09);
}

.orbit {
    border-color: rgba(215,177,125,.58);
}

    .orbit::before,
    .orbit::after {
        border-color: rgba(185,139,88,.085);
    }

.hero-monogram {
    color: rgba(215,177,125,.44);
}

.hero-signature {
    position: absolute;
    right: clamp(28px, 4vw, 64px);
    bottom: 34px;
    z-index: 9;
    color: rgba(185,139,88,.52);
    font: 600 7px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
    letter-spacing: .34em;
}

.eyebrow {
    color: #9c8b75;
}

    .eyebrow span {
        background: linear-gradient(90deg, var(--gold-soft), rgba(215,177,125,.3));
    }

.hero h1 {
    text-shadow: 0 18px 70px rgba(0,0,0,.25);
}

    .hero h1 > span:first-child {
        color: #ebe7df;
    }

    .hero h1 .outline {
        -webkit-text-stroke-color: rgba(215,177,125,.52);
    }

.hero-copy {
    color: #aaa7a1;
}

.btn {
    border-color: rgba(255,255,255,.14);
}

.btn-primary {
    background: linear-gradient(100deg, #d9b37e 0%, #efd3aa 44%, #b48755 100%);
    border-color: rgba(229,198,151,.9);
    color: #17120e;
    box-shadow: 0 12px 34px rgba(0,0,0,.2), inset 0 1px rgba(255,255,255,.26);
}

    .btn-primary:hover {
        background: linear-gradient(100deg, #e0bd8b 0%, #f6dfbb 44%, #c0915e 100%);
        border-color: var(--gold-pale);
    }

.btn-ghost {
    border-color: rgba(185,139,88,.20);
    color: #b8b2a8;
}

    .btn-ghost:hover {
        color: var(--gold-pale);
        border-color: rgba(215,177,125,.5);
        background: rgba(185,139,88,.035);
    }

.scroll-cue {
    color: #86735c;
}

    .scroll-cue i {
        background: linear-gradient(var(--gold-soft), transparent);
    }

/* Product cards � subtle bronze edges, no heavier render work */
.product-parallax .shot-frame {
    border-color: rgba(185,139,88,.22) !important;
    background: #111313;
}

.product-parallax .shot-main .shot-frame {
    box-shadow: 0 18px 38px rgba(0,0,0,.28), 0 0 0 1px rgba(185,139,88,.045) inset !important;
}

.product-parallax .shot-slide .shot-frame {
    box-shadow: 0 30px 58px rgba(0,0,0,.34), 0 0 0 1px rgba(215,177,125,.06) inset !important;
}

.product-parallax .shot-lower .shot-frame {
    box-shadow: 0 24px 48px rgba(0,0,0,.30), 0 0 0 1px rgba(185,139,88,.05) inset !important;
}

.product-parallax .shot-label::before {
    background: linear-gradient(90deg, var(--gold-soft), rgba(215,177,125,.22));
}

.product-parallax .shot-index {
    color: rgba(215,177,125,.58);
}

.product-parallax .shot-label strong {
    color: #efe9df;
}

.product-parallax .shot-label small {
    color: rgba(196,172,140,.58);
}

/* ---------------- Section styling ---------------- */

.info-section,
.providers-section,
.cta-section {
    border-top-color: rgba(185,139,88,.095);
}

.section-kicker {
    color: #8f765a;
}

.info-section {
    background: radial-gradient(circle at 18% 14%, rgba(185,139,88,.025), transparent 24%), #141616;
}

.info-copy h2,
.providers-copy h2,
.cta-inner h2 {
    color: #e7e3dc;
}

    .info-copy h2::first-line,
    .providers-copy h2::first-line {
        color: #f0ece5;
    }

.info-copy p,
.providers-copy p {
    color: #999892;
}

.text-link {
    border-bottom-color: rgba(185,139,88,.52);
    color: #d3c2aa;
}

    .text-link span {
        color: var(--gold-soft);
    }

.feature-stack {
    border-top-color: rgba(185,139,88,.12);
}

.feature-card {
    border-bottom-color: rgba(185,139,88,.09);
}

    .feature-card:hover {
        background: linear-gradient(90deg, rgba(185,139,88,.05), transparent 58%);
    }

.feature-num {
    color: var(--gold-soft);
}

.feature-card h3 {
    color: #dedad3;
}

.feature-card p {
    color: #858680;
}

/* ---------------- Providers ---------------- */

.providers-section {
    background: radial-gradient(circle at 82% 24%, rgba(185,139,88,.02), transparent 20%), #101212;
}

.providers-copy strong {
    color: #b99a73;
}

.provider-roster {
    border-top-color: rgba(185,139,88,.34);
    border-bottom-color: rgba(185,139,88,.10);
}

.provider-roster-head {
    color: #8b7459;
}

.provider-row {
    border-top-color: rgba(185,139,88,.08);
}

    .provider-row:hover {
        background: linear-gradient(90deg, rgba(185,139,88,.05), transparent 70%);
    }

.provider-index {
    color: #9c794f;
}

.provider-name {
    color: #ece7df;
}

.provider-type {
    color: #7f776d;
}

.provider-marquee {
    border-top-color: rgba(185,139,88,.09);
    border-bottom-color: rgba(185,139,88,.09);
}

.provider-track {
    color: #8f816f;
}

    .provider-track i {
        background: var(--gold-soft);
        opacity: .6;
    }

/* ---------------- CTA ---------------- */

.cta-section {
    background: radial-gradient(circle at 50% 34%, rgba(185,139,88,.04), transparent 30%), linear-gradient(180deg,#171919,#111313);
}

.cta-grid {
    background-image: linear-gradient(rgba(185,139,88,.025) 1px,transparent 1px), linear-gradient(90deg,rgba(185,139,88,.025) 1px,transparent 1px);
}

.cta-section::after {
    -webkit-text-stroke-color: rgba(185,139,88,.05);
}

/* ---------------- Footer ---------------- */

.site-footer {
    border-top-color: rgba(185,139,88,.12);
    background: linear-gradient(180deg, #0c0e0e, #090b0b);
}

.footer-brand .brand-mark {
    border-color: rgba(185,139,88,.52);
}

.footer-brand strong {
    color: #d7d2ca;
}

.footer-brand small {
    color: #826d54;
}

.footer-links a {
    color: #7b7770;
}

    .footer-links a:hover {
        color: var(--gold-soft);
    }

.footer-meta {
    color: #6c6256;
}

/* ---------------- Responsive luxury cleanup ---------------- */

@media (max-width: 980px) {
    .nav-motto {
        display: none;
    }

    .nav-end {
        gap: 0;
    }

    .hero-signature {
        display: none;
    }
}

@media (max-width: 640px) {
    .site-nav {
        background: rgba(10,12,12,.94);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
    }

    .brand-mark {
        width: 34px;
        height: 34px;
    }

    .hero {
        background: radial-gradient(circle at 76% 39%, rgba(185,139,88,.055), transparent 22%), linear-gradient(180deg,#141515 0%,#101212 64%,#0f1010 100%);
    }

        .hero h1 .outline {
            -webkit-text-stroke-color: rgba(215,177,125,.45);
        }
}

/* ==========================================================
   WICK � DARK BRONZE BUTTON ACCENT + SLOW METALLIC SHINE
   Keeps gold restrained: deep bronze base, warm edge light,
   and one slow sheen pass across primary CTAs.
   ========================================================== */

:root {
    --gold-button-deep: #5e4229;
    --gold-button-mid: #795636;
    --gold-button-high: #9c7448;
    --gold-button-edge: rgba(190,145,88,.48);
    --gold-button-text: #f0dfc7;
}

@keyframes wickGoldSheen {
    0%, 18% {
        transform: translateX(-165%) skewX(-18deg);
        opacity: 0;
    }

    24% {
        opacity: .12;
    }

    46% {
        opacity: .34;
    }

    62% {
        opacity: .10;
    }

    72%, 100% {
        transform: translateX(260%) skewX(-18deg);
        opacity: 0;
    }
}

.home-body .btn-primary {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(255,255,255,.045), transparent 46%), linear-gradient(105deg, #4a3422 0%, var(--gold-button-deep) 42%, #68492d 100%) !important;
    border: 1px solid var(--gold-button-edge) !important;
    color: var(--gold-button-text) !important;
    box-shadow: 0 10px 28px rgba(0,0,0,.24), inset 0 1px rgba(231,190,135,.10), inset 0 -1px rgba(0,0,0,.28) !important;
    text-shadow: 0 1px 0 rgba(0,0,0,.25);
}

    .home-body .btn-primary::after {
        content: "";
        position: absolute;
        z-index: 2;
        top: -35%;
        bottom: -35%;
        left: 0;
        width: 28%;
        pointer-events: none;
        background: linear-gradient(90deg, transparent 0%, rgba(255,238,210,.04) 22%, rgba(255,230,190,.48) 50%, rgba(255,242,218,.05) 78%, transparent 100%);
        filter: blur(.35px);
        transform: translateX(-165%) skewX(-18deg);
        animation: wickGoldSheen 7.8s cubic-bezier(.33,.01,.24,1) infinite;
    }

    .home-body .btn-primary:hover {
        background: linear-gradient(180deg, rgba(255,255,255,.055), transparent 44%), linear-gradient(105deg, #523923 0%, #6e4d30 44%, #795535 100%) !important;
        border-color: rgba(213,166,105,.66) !important;
        color: #f5e8d4 !important;
        box-shadow: 0 13px 34px rgba(0,0,0,.29), 0 0 0 1px rgba(185,139,88,.055), inset 0 1px rgba(239,202,151,.12) !important;
    }

.home-body .btn-ghost,
.home-body .sign-in {
    background: rgba(185,139,88,.015) !important;
    border-color: rgba(154,111,67,.30) !important;
}

    .home-body .btn-ghost:hover,
    .home-body .sign-in:hover {
        background: rgba(185,139,88,.04) !important;
        border-color: rgba(185,139,88,.48) !important;
    }

    .home-body .feature-num,
    .home-body .text-link span,
    .home-body .provider-track i,
    .home-body .sign-in span {
        color: #a77a4b;
    }

.home-body .provider-track i {
    background: #9f7448;
}

@media (prefers-reduced-motion: reduce) {
    .home-body .btn-primary::after {
        animation: none !important;
        display: none;
    }
}


/* ==========================================================
   SHARED NAVIGATION STATE + OFFICIAL GALLERY PREVIEW
   ========================================================== */

.nav-links a {
    position: relative;
}

    .nav-links a.active {
        color: var(--gold-pale);
    }

        .nav-links a.active::after {
            content: "";
            position: absolute;
            left: 0;
            right: .2em;
            bottom: -11px;
            height: 1px;
            background: linear-gradient(90deg, var(--gold-soft), rgba(185,139,88,.18));
            box-shadow: 0 0 10px rgba(185,139,88,.13);
        }

.home-gallery-section {
    position: relative;
    padding: 132px clamp(28px,8.8vw,150px) 138px;
    border-top: 1px solid rgba(185,139,88,.095);
    background: radial-gradient(circle at 82% 12%, rgba(185,139,88,.03), transparent 23%), linear-gradient(180deg,#111313,#101212);
    content-visibility: auto;
    contain-intrinsic-size: 900px;
}

    .home-gallery-section .section-kicker {
        margin-bottom: 54px;
    }

.home-gallery-head {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: end;
    gap: 56px;
    margin-bottom: 44px;
}

    .home-gallery-head h2 {
        margin: 0;
        color: #e7e3dc;
        font-family: "Arial Narrow","Roboto Condensed",Arial,sans-serif;
        font-size: clamp(48px,5.2vw,84px);
        font-weight: 800;
        line-height: .9;
        letter-spacing: -.035em;
        text-transform: uppercase;
    }

    .home-gallery-head p {
        max-width: 610px;
        margin: 28px 0 0;
        color: #94958f;
        font-size: 13px;
        line-height: 1.8;
    }

.home-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 1px;
    padding: 1px;
    border: 1px solid rgba(185,139,88,.12);
    background: rgba(185,139,88,.12);
}

.home-build-card {
    min-width: 0;
    display: block;
    text-decoration: none;
    background: #0c0e0e;
    transition: background .2s ease, box-shadow .2s ease;
}

    .home-build-card:hover {
        background: #101212;
        box-shadow: inset 0 0 0 1px rgba(185,139,88,.26);
    }

.home-build-image {
    position: relative;
    aspect-ratio: 1.42 / 1;
    overflow: hidden;
    background: radial-gradient(circle at 60% 45%, rgba(185,139,88,.08), transparent 38%), #080a0a;
    border-bottom: 1px solid rgba(185,139,88,.10);
}

    .home-build-image::after {
        content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        background: linear-gradient(180deg, transparent 58%, rgba(0,0,0,.42));
    }

    .home-build-image img {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
        filter: brightness(.78) contrast(1.07) saturate(.82);
        transition: transform .45s cubic-bezier(.2,.8,.2,1), filter .25s ease;
    }

.home-build-card:hover .home-build-image img {
    transform: scale(1.018);
    filter: brightness(.85) contrast(1.06) saturate(.87);
}

.home-build-index {
    position: absolute;
    z-index: 2;
    left: 18px;
    top: 17px;
    color: rgba(215,177,125,.72);
    font: 600 7px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
    letter-spacing: .19em;
}

.home-build-copy {
    min-height: 92px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 20px;
}

    .home-build-copy > div {
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    .home-build-copy strong {
        color: #e3dfd8;
        font: 700 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
        letter-spacing: .16em;
    }

    .home-build-copy small {
        color: #6f706b;
        font: 600 6.5px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;
        letter-spacing: .11em;
    }

    .home-build-copy > span {
        flex: 0 0 auto;
        color: #9d754c;
        font: 700 7px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
        letter-spacing: .14em;
    }

@media (max-width: 980px) {
    .home-gallery-head {
        grid-template-columns: 1fr;
        gap: 24px;
    }

        .home-gallery-head .text-link {
            width: max-content;
        }

    .home-gallery-grid {
        grid-template-columns: 1fr;
    }

    .home-build-image {
        aspect-ratio: 1.8 / 1;
    }
}

@media (max-width: 640px) {
    .home-gallery-section {
        padding: 86px 20px;
    }

        .home-gallery-section .section-kicker {
            margin-bottom: 36px;
        }

    .home-build-copy {
        min-height: 82px;
        padding: 17px;
    }
}


/* ==========================================================
   SUPPORTERS THANK-YOU STRIP
   Lives directly below the "BUILD SOMETHING WORTH KEEPING" CTA.
   ========================================================== */

.supporters-strip {
    position: relative;
    min-height: 330px;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(300px, .72fr);
    align-items: center;
    gap: clamp(60px, 10vw, 170px);
    padding: 82px clamp(28px,8.8vw,150px);
    overflow: hidden;
    border-top: 1px solid rgba(185,139,88,.16);
    border-bottom: 1px solid rgba(185,139,88,.08);
    background: radial-gradient(circle at 82% 42%, rgba(185,139,88,.045), transparent 24%), linear-gradient(180deg, #0f1111, #0b0d0d);
}

    .supporters-strip::before {
        content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        opacity: .3;
        background-image: linear-gradient(rgba(185,139,88,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(185,139,88,.025) 1px, transparent 1px);
        background-size: 72px 72px;
        -webkit-mask-image: linear-gradient(90deg, transparent 12%, #000 62%, transparent);
        mask-image: linear-gradient(90deg, transparent 12%, #000 62%, transparent);
    }

.supporters-strip-mark {
    position: absolute;
    right: clamp(28px,5vw,78px);
    top: 30px;
    color: rgba(185,139,88,.42);
    font: 600 7px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
    letter-spacing: .28em;
}

.supporters-strip-copy,
.supporters-strip-action {
    position: relative;
    z-index: 1;
}

.supporters-strip .section-kicker {
    margin-bottom: 22px;
}

.supporters-strip h2 {
    margin: 0;
    color: #e7e3dc;
    font-family: "Arial Narrow","Roboto Condensed",Arial,sans-serif;
    font-size: clamp(46px, 5vw, 78px);
    font-weight: 800;
    line-height: .88;
    letter-spacing: -.035em;
    text-transform: uppercase;
}

.supporters-strip-copy p {
    max-width: 650px;
    margin: 26px 0 0;
    color: #92938e;
    font-size: 12.5px;
    line-height: 1.8;
}

.supporters-strip-action {
    min-height: 154px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 28px 0 28px clamp(28px,4vw,56px);
    border-left: 1px solid rgba(185,139,88,.24);
}

    .supporters-strip-action > span {
        margin-bottom: 15px;
        color: #8f765a;
        font: 600 7px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
        letter-spacing: .2em;
    }

    .supporters-strip-action > strong {
        margin-bottom: 24px;
        color: #d7d1c8;
        font-family: "Arial Narrow","Roboto Condensed",Arial,sans-serif;
        font-size: clamp(24px,2.2vw,34px);
        font-weight: 750;
        line-height: .94;
        letter-spacing: -.018em;
    }

    .supporters-strip-action .text-link {
        width: max-content;
    }

@media (max-width: 900px) {
    .supporters-strip {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .supporters-strip-action {
        min-height: 0;
        padding: 28px 0 0;
        border-left: 0;
        border-top: 1px solid rgba(185,139,88,.18);
    }
}

@media (max-width: 640px) {
    .supporters-strip {
        padding: 72px 20px;
    }

    .supporters-strip-mark {
        right: 20px;
        top: 22px;
    }

    .supporters-strip h2 {
        font-size: clamp(46px, 14vw, 66px);
    }
}


/* JSON-driven homepage gallery state */
.home-gallery-loading {
    grid-column: 1 / -1;
    min-height: 180px;
    display: grid;
    place-items: center;
    color: #75624d;
    background: #0c0e0e;
    font: 600 8px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace;
    letter-spacing: .18em;
}


/* =====================================================================
   WICK TYPOGRAPHY NORMALIZATION
   Keeps text proportions stable across desktop resolutions / DPI setups.
   Layout, content, interactions, images and mechanics are unchanged.
   ===================================================================== */
:root {
    --wick-type-micro: clamp(.46875rem, calc(.455rem + .04vw), .53125rem);
    --wick-type-xs: clamp(.53125rem, calc(.515rem + .05vw), .59375rem);
    --wick-type-sm: clamp(.65625rem, calc(.63rem + .07vw), .71875rem);
    --wick-type-body-sm: clamp(.75rem, calc(.72rem + .08vw), .8125rem);
    --wick-type-body: clamp(.8125rem, calc(.78rem + .09vw), .875rem);
    --wick-type-body-lg: clamp(.875rem, calc(.83rem + .12vw), 1rem);
    --wick-type-card: clamp(.875rem, calc(.83rem + .12vw), 1rem);

    /* Deliberately low viewport influence: large monitors hit the cap quickly
       instead of letting vw make headings balloon on 2K / 4K / ultrawide. */
    --wick-type-display: clamp(4rem, calc(3.20rem + 2.15vw), 6.75rem);
    --wick-type-section: clamp(3rem, calc(2.55rem + 1.35vw), 4.75rem);
    --wick-type-subhead: clamp(1.5rem, calc(1.28rem + .65vw), 2.125rem);
}

/* Shared navigation */
.home-body .brand-copy strong,
.home-body .footer-brand strong {
    font-size: var(--wick-type-sm);
}

.home-body .brand-copy small,
.home-body .footer-brand small,
.home-body .nav-motto,
.home-body .scroll-cue,
.home-body .premium-note,
.home-body .provider-roster-head,
.home-body .provider-index,
.home-body .provider-type,
.home-body .supporters-strip-mark,
.home-body .supporters-strip-action > span,
.home-body .home-gallery-loading {
    font-size: var(--wick-type-micro);
}

.home-body .nav-links a,
.home-body .sign-in,
.home-body .footer-links a,
.home-body .eyebrow,
.home-body .section-kicker,
.home-body .text-link,
.home-body .feature-num,
.home-body .providers-copy strong,
.home-body .btn {
    font-size: var(--wick-type-xs);
}

/* Hero / editorial display type */
.home-body .hero h1 {
    font-size: var(--wick-type-display);
}

.home-body .info-copy h2,
.home-body .providers-head h2,
.home-body .providers-copy h2,
.home-body .cta-inner h2,
.home-body .home-gallery-head h2,
.home-body .supporters-strip h2 {
    font-size: var(--wick-type-section);
}

.home-body .supporters-strip-action > strong {
    font-size: var(--wick-type-subhead);
}

/* Reading text */
.home-body .hero-copy {
    font-size: var(--wick-type-body-lg);
}

.home-body .info-copy p,
.home-body .providers-head p,
.home-body .providers-copy p,
.home-body .home-gallery-head p {
    font-size: var(--wick-type-body);
}

.home-body .supporters-strip-copy p,
.home-body .feature-card p {
    font-size: var(--wick-type-body-sm);
}

.home-body .feature-card h3 {
    font-size: var(--wick-type-body-sm);
}

.home-body .provider-name {
    font-size: var(--wick-type-card);
}

.home-body .provider-track {
    font-size: var(--wick-type-sm);
}

/* Product-image annotation type */
.home-body .shot-label .shot-index,
.home-body .shot-label small {
    font-size: var(--wick-type-micro);
}

.home-body .shot-label strong {
    font-size: var(--wick-type-sm);
}

/* Login page shares home.css after style.css. Normalize only text metrics;
   no positioning, forms, auth functions or mechanics are touched. */
body.luxury-auth .auth-brand-kicker,
body.luxury-auth .auth-feature-num,
body.luxury-auth .auth-brand-features strong,
body.luxury-auth .auth-mode-btn,
body.luxury-auth .auth-label,
body.luxury-auth .auth-forgot,
body.luxury-auth .auth-submit,
body.luxury-auth .auth-divider,
body.luxury-auth .auth-terms,
body.luxury-auth .auth-bottom-frame {
    font-size: var(--wick-type-xs) !important;
}

body.luxury-auth .auth-brand-copy-block h1 {
    font-size: clamp(3.25rem, calc(2.8rem + 1.35vw), 5.25rem) !important;
}

body.luxury-auth .auth-brand-copy-block p,
body.luxury-auth .auth-input,
body.luxury-auth .auth-guest-link {
    font-size: var(--wick-type-body-sm) !important;
}

body.luxury-auth .auth-remember {
    font-size: var(--wick-type-sm) !important;
}

body.luxury-auth .auth-brand-features small {
    font-size: var(--wick-type-micro) !important;
}

body.luxury-auth .auth-form-heading h2 {
    font-size: clamp(.9375rem, calc(.88rem + .16vw), 1.125rem) !important;
}

body.luxury-auth .auth-site-nav .brand-copy strong {
    font-size: var(--wick-type-sm) !important;
}

body.luxury-auth .auth-site-nav .brand-copy small,
body.luxury-auth .auth-site-nav .nav-motto {
    font-size: var(--wick-type-micro) !important;
}

body.luxury-auth .auth-site-nav .nav-links a,
body.luxury-auth .auth-site-nav .sign-in {
    font-size: var(--wick-type-xs) !important;
}

/* Mobile keeps the same hierarchy, with a separate bounded range instead of
   the previous very aggressive 15–21vw text growth. */
@media (max-width: 640px) {
    .home-body .hero h1 {
        font-size: clamp(3.6rem, 15vw, 5.5rem);
    }

    .home-body .info-copy h2,
    .home-body .providers-head h2,
    .home-body .providers-copy h2,
    .home-body .cta-inner h2,
    .home-body .home-gallery-head h2,
    .home-body .supporters-strip h2 {
        font-size: clamp(2.8rem, 11.5vw, 4.1rem);
    }

    body.luxury-auth .auth-brand-copy-block h1 {
        font-size: clamp(2.7rem, 11.5vw, 4rem) !important;
    }
}

/* Large desktop / 4K: cap typography at the designed desktop scale. */
@media (min-width: 2200px) {
    :root {
        --wick-type-display: 6.75rem;
        --wick-type-section: 4.75rem;
        --wick-type-subhead: 2.125rem;
    }
}
