@font-face  { 
  font-family: 'DM Serif Display'; font-style: normal; font-weight: 400; font-display: swap;  src: url('../assets/fonts/dm-serif-display-latin-400-normal.woff2') format('woff2');}
@font-face  { 
  font-family: 'Outfit'; font-style: normal; font-weight: 400; font-display: swap;  src: url('../assets/fonts/outfit-latin-400-normal.woff2') format('woff2');}
@font-face  { 
  font-family: 'Outfit'; font-style: normal; font-weight: 600; font-display: swap;  src: url('../assets/fonts/outfit-latin-600-normal.woff2') format('woff2');}
@font-face  { 
  font-family: 'Outfit'; font-style: normal; font-weight: 700; font-display: swap;  src: url('../assets/fonts/outfit-latin-700-normal.woff2') format('woff2');}
@font-face  { 
  font-family: 'Outfit'; font-style: normal; font-weight: 800; font-display: swap;  src: url('../assets/fonts/outfit-latin-800-normal.woff2') format('woff2');}
:root  { 
    --ink: #221833;    --ink-soft: #5d536b;    --paper: #fffaf5;    --paper-warm: #fff3e8;    --cream: #fce4cf;    --coral: #cc3e35;    --coral-dark: #a82b23;    --rose: #f2a1a3;    --violet: #8064c9;    --violet-dark: #2f2145;    --violet-deep: #21152f;    --mint: #69bfa6;    --sun: #f3bd57;    --blue: #6d9dd6;    --white: #ffffff;    --line: rgba(34, 24, 51, 0.14);    --line-light: rgba(255, 255, 255, 0.16);    --shadow-sm: 0 12px 30px rgba(52, 34, 69, 0.08);    --shadow-lg: 0 26px 70px rgba(52, 34, 69, 0.16);    --shadow-dark: 0 24px 60px rgba(8, 4, 16, 0.2);    --font-display: "DM Serif Display", Georgia, serif;    --font-body: "Outfit", Arial, sans-serif;    --container: 1240px;    --section-space: clamp(5.5rem, 10vw, 9rem);    --radius-lg: 34px;    --radius-md: 24px;    --ease: 260ms cubic-bezier(0.22, 1, 0.36, 1);    --ease-slow: 700ms cubic-bezier(0.22, 1, 0.36, 1);}

*,
*::before,
*::after  { 
    box-sizing: border-box;}

html  { 
    scroll-behavior: smooth;}

body,
h1,
h2,
h3,
p,
dl,
dd,
ol,
ul  { 
    margin: 0;}

body  { 
    overflow-x: hidden;}

img,
svg,
video  { 
    display: block;    max-width: 100%;}

img  { 
    height: auto;}

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

button,
a  { 
    -webkit-tap-highlight-color: transparent;}

a  { 
    color: inherit;    text-decoration: none;}

ul,
ol  { 
    padding: 0;    list-style: none;}

button  { 
    border: 0;}

:focus-visible  { 
    outline: 3px solid var(--sun);    outline-offset: 4px;}

[id]  { 
    scroll-margin-top: 4rem;}

body  { 
    background: var(--paper);    color: var(--ink);    font-family: var(--font-body);    font-size: 1rem;    line-height: 1.7;    -webkit-font-smoothing: antialiased;}

h1,
h2,
h3  { 
    color: inherit;    font-family: var(--font-display);    font-weight: 400;    letter-spacing: -0.025em;    line-height: 0.98;}

h1  { 
    font-size: clamp(4.2rem, 8vw, 7.6rem);}

h2  { 
    font-size: clamp(3rem, 5.9vw, 5.5rem);}

h3  { 
    font-size: clamp(1.7rem, 3vw, 2.5rem);}

em  { 
    color: var(--coral);    font-weight: 400;}

.container  { 
    width: min(calc(100% - 3rem), var(--container));    margin-inline: auto;}

.section-shell  { 
    padding-block: var(--section-space);    position: relative;}

.eyebrow  { 
    align-items: center;    color: var(--coral-dark);    display: flex;    font-size: 0.7rem;    font-weight: 800;    gap: 0.65rem;    letter-spacing: 0.18em;    margin-bottom: 1.25rem;    text-transform: uppercase;}

.eyebrow > span  { 
    background: currentColor;    border-radius: 99px;    height: 0.45rem;    width: 0.45rem;}

.eyebrow-light  { 
    color: var(--sun);}

.section-intro p:not(.eyebrow)  { 
    color: var(--ink-soft);    font-size: 1.05rem;    max-width: 37rem;}

.split-intro  { 
    align-items: end;    display: flex;    gap: 3rem;    justify-content: space-between;    margin-bottom: clamp(2.6rem, 5vw, 4.8rem);}

.centered-intro  { 
    align-items: center;    display: flex;    flex-direction: column;    margin-inline: auto;    max-width: 56rem;    text-align: center;}

.centered-intro .eyebrow  { 
    justify-content: center;}

.centered-intro p:not(.eyebrow)  { 
    margin-top: 1.3rem;}

.button  { 
    align-items: center;    border-radius: 999px;    cursor: pointer;    display: inline-flex;    font-size: 0.76rem;    font-weight: 800;    justify-content: center;    letter-spacing: 0.1em;    min-height: 3.5rem;    padding: 0.95rem 1.55rem;    text-transform: uppercase;    transition: transform var(--ease), background-color var(--ease), box-shadow var(--ease);}

.button-primary  { 
    background: var(--coral);    box-shadow: 0 12px 28px rgba(239, 106, 91, 0.28);    color: var(--white);}

.button-primary:hover  { 
    background: var(--coral-dark);    box-shadow: 0 16px 34px rgba(216, 79, 71, 0.34);    transform: translateY(-3px);}

.button-quiet  { 
    color: var(--ink);    gap: 0.8rem;}

.button-quiet span,
.text-link span  { 
    color: var(--coral);    font-size: 1.35rem;}

.text-link  { 
    align-items: center;    display: inline-flex;    font-size: 0.73rem;    font-weight: 800;    gap: 0.8rem;    letter-spacing: 0.12em;    text-transform: uppercase;}

.skip-link  { 
    background: var(--sun);    color: var(--ink);    font-size: 0.8rem;    font-weight: 800;    left: 1rem;    padding: 0.7rem 1rem;    position: fixed;    top: -10rem;    z-index: 9999;}

.skip-link:focus  { 
    top: 1rem;}

.sr-only  { 
    clip: rect(0, 0, 0, 0);    clip-path: inset(50%);    height: 1px;    overflow: hidden;    position: absolute;    white-space: nowrap;    width: 1px;}

.site-header  { 
    left: 0;    padding-block: 1rem;    position: fixed;    right: 0;    top: 0;    transition: background-color var(--ease), box-shadow var(--ease), padding var(--ease);    z-index: 50;}

.site-header.is-scrolled  { 
    background: rgba(255, 250, 245, 0.88);    box-shadow: 0 6px 24px rgba(52, 34, 69, 0.07);    padding-block: 0.7rem;    -webkit-backdrop-filter: blur(18px);    backdrop-filter: blur(18px);}

.nav-shell,
.site-nav  { 
    align-items: center;    display: flex;}

.nav-shell  { 
    justify-content: space-between;}

.brand-mark  { 
    color: var(--ink);    font-family: var(--font-body);    font-size: 1.8rem;    font-weight: 800;    letter-spacing: 0.02em;    position: relative;    z-index: 52;}

.brand-mark b  { 
    color: var(--coral);}

.brand-mark  { 
    display: flex;    align-items: center;}

.brand-initial  { 
    transition: color 0.5s var(--ease);}

.site-header.is-past-hero .brand-initial  { 
    color: var(--coral-dark);}

.brand-hidden  { 
    display: inline-grid;    grid-template-columns: 0fr;    opacity: 0;    vertical-align: bottom;    transition: grid-template-columns 0.5s ease-in-out, opacity 0.3s ease-out;}

.brand-hidden-inner  { 
    overflow: hidden;    white-space: nowrap;    min-width: 0;}

.site-header.is-past-hero .brand-hidden  { 
    grid-template-columns: 1fr;    opacity: 1;    transition: grid-template-columns 0.6s ease-in-out, opacity 0.5s ease-in-out 0.05s;}

.site-nav  { 
    gap: 1.8rem;}

.site-nav a  { 
    font-size: 0.72rem;    font-weight: 800;    letter-spacing: 0.11em;    position: relative;    text-transform: uppercase;}

.site-nav a::after  { 
    background: var(--coral);    bottom: -0.45rem;    content: "";    height: 2px;    left: 0;    position: absolute;    transform: scaleX(0);    transform-origin: right;    transition: transform var(--ease);    width: 100%;}

.site-nav a:hover::after,
.site-nav a.is-active::after  { 
    transform: scaleX(1);    transform-origin: left;}

.site-nav .nav-cta  { 
    background: var(--ink);    border-radius: 999px;    color: var(--white);    padding: 0.78rem 1.2rem;    transition: background-color var(--ease);}

.site-nav .nav-cta:hover  { 
    background: var(--coral);}

.site-nav .nav-cta::after  { 
    display: none;}

.menu-toggle  { 
    background: transparent;    cursor: pointer;    display: none;    padding: 0.5rem;    position: relative;    z-index: 52;}

.menu-toggle span  { 
    background: var(--ink);    display: block;    height: 2px;    margin-block: 5px;    transition: transform var(--ease), opacity var(--ease);    width: 24px;}

.hero  { 
    align-items: stretch;    background:
        radial-gradient(circle at 10% 22%, rgba(243, 189, 87, 0.28), transparent 24rem),
        radial-gradient(circle at 90% 16%, rgba(128, 100, 201, 0.17), transparent 30rem),
        var(--paper);    display: flex;    min-height: 120vh;    overflow: clip;    padding-top: clamp(9rem, 15vh, 12rem);    padding-bottom: 6rem;}

.hero-grid  { 
    align-items: start;    display: grid;    gap: clamp(2rem, 5vw, 5rem);    grid-template-columns: 1.1fr 0.9fr;}

.hero-copy  { 
    position: relative;    z-index: 2;    padding-bottom: 50px;}

.hero-copy h1  { 
    max-width: 55rem;    font-size: clamp(3.4rem, 6.5vw, 5.8rem);}

.hero-lead  { 
    color: var(--ink-soft);    font-size: clamp(1rem, 1.6vw, 1.18rem);    margin-top: 1.45rem;    max-width: 42rem;}

.hero-actions  { 
    display: flex;    flex-wrap: wrap;    gap: 0.7rem;    margin-top: 2rem;}

.hero-metrics  { 
    display: flex;    gap: clamp(1.2rem, 3vw, 2.6rem);    margin-top: 4rem;}

.hero-metrics div  { 
    border-left: 1px solid var(--line);    padding-left: 1rem;}

.hero-metrics dt  { 
    color: var(--ink);    font-family: var(--font-display);    font-size: 2.2rem;    line-height: 1;}

.hero-metrics dd  { 
    color: var(--ink-soft);    font-size: 0.65rem;    font-weight: 800;    letter-spacing: 0.12em;    margin-top: 0.35rem;    text-transform: uppercase;}

.hero-visual  { 
    margin-inline: auto;    max-width: 29rem;    position: sticky;    top: 15vh;    width: 100%;    z-index: 10;}

.hero-frame  { 
    background: var(--cream);    border: 1px solid rgba(34, 24, 51, 0.08);    border-radius: 15rem 15rem 2rem 2rem;    box-shadow: var(--shadow-lg);    overflow: hidden;    padding: 0.85rem;    transform: rotate(2deg);    animation: float-frame 6s ease-in-out infinite;}

.hero-frame img  { 
    aspect-ratio: 0.78;    border-radius: 14rem 14rem 1.45rem 1.45rem;    height: auto;    object-fit: cover;}

.hero-note  { 
    background: rgba(255, 255, 255, 0.86);    border: 1px solid rgba(255, 255, 255, 0.7);    box-shadow: var(--shadow-sm);    -webkit-backdrop-filter: blur(16px);    backdrop-filter: blur(16px);    position: absolute;}

.hero-note-top  { 
    align-items: center;    border-radius: 999px;    display: flex;    gap: 0.65rem;    left: -5rem;    padding: 0.75rem 1rem;    top: 17%;    animation: float-note 7s ease-in-out infinite;}

.hero-note strong,
.hero-note small  { 
    display: block;}

.hero-note strong  { 
    font-size: 0.78rem;}

.hero-note small  { 
    color: var(--ink-soft);    font-size: 0.66rem;}

.note-dot  { 
    background: var(--mint);    border: 4px solid rgba(105, 191, 166, 0.22);    border-radius: 50%;    height: 0.8rem;    width: 0.8rem;}

.hero-note-bottom  { 
    border-radius: 1rem;    bottom: 11%;    padding: 0.9rem 1rem;    right: -3rem;    animation: float-note-reverse 8s ease-in-out infinite;}

.hero-note-bottom span  { 
    color: var(--coral-dark);    display: block;    font-family: var(--font-display);    font-size: 1.25rem;    line-height: 1;}

.hero-stamp  { 
    align-items: center;    background: var(--violet-dark);    border: 4px solid var(--paper);    border-radius: 50%;    bottom: -1.6rem;    color: var(--white);    display: flex;    font-size: 1.2rem;    font-weight: 800;    height: 6.2rem;    justify-content: center;    letter-spacing: -0.12em;    left: -1.3rem;    position: absolute;    transform: rotate(-12deg);    width: 6.2rem;    animation: float-stamp 9s ease-in-out infinite;}

.hero-stamp span  { 
    color: var(--coral);}

.hero-orb  { 
    border-radius: 50%;    filter: blur(4px);    pointer-events: none;    position: absolute;}

.hero-orb-one  { 
    background: rgba(239, 106, 91, 0.14);    height: 13rem;    left: -5rem;    top: 38%;    width: 13rem;}

.hero-orb-two  { 
    background: rgba(105, 191, 166, 0.18);    bottom: 2%;    height: 10rem;    right: 10%;    width: 10rem;}

.signal-strip  { 
    background: var(--coral);    color: var(--white);    overflow: hidden;}

.signal-track  { 
    animation: signal-scroll 32s linear infinite;    display: flex;    gap: 1.4rem;    padding-block: 0.88rem;    white-space: nowrap;    width: max-content;}

.signal-track span  { 
    font-size: 0.68rem;    font-weight: 800;    letter-spacing: 0.16em;    text-transform: uppercase;}

.signal-track i  { 
    background: var(--sun);    border-radius: 50%;    height: 0.45rem;    margin-top: 0.35rem;    width: 0.45rem;}

.reveal  { 
    opacity: 0;    transform: translateY(1.8rem);    transition: opacity var(--ease-slow), transform var(--ease-slow);}

.reveal.is-visible  { 
    opacity: 1;    transform: translateY(0);}

.reveal-delay-1  { 
    transition-delay: 110ms;}

.reveal-delay-2  { 
    transition-delay: 220ms;}

@keyframes signal-scroll  { 
    from  {  transform: translateX(0); }
    to  {  transform: translateX(-45%); }
}

@media (prefers-reduced-motion: reduce)  { 
    *,
    *::before,
    *::after  { 
        animation-duration: 0.01ms !important;        animation-iteration-count: 1 !important;        scroll-behavior: auto !important;        transition-duration: 0.01ms !important;    }

    .reveal  { 
        opacity: 1;        transform: none;    }
}

@keyframes float-frame  { 
    0%, 100%  {  transform: translateY(0) rotate(2deg); }
    50%  {  transform: translateY(-0.8rem) rotate(3deg); }
}

@keyframes float-note  { 
    0%, 100%  {  transform: translateY(0) scale(var(--note-scale, 1)); }
    50%  {  transform: translateY(-0.6rem) scale(var(--note-scale, 1)); }
}

@keyframes float-note-reverse  { 
    0%, 100%  {  transform: translateY(0) scale(var(--note-scale, 1)); }
    50%  {  transform: translateY(0.6rem) scale(var(--note-scale, 1)); }
}

@keyframes float-stamp  { 
    0%, 100%  {  transform: translateY(0) rotate(-12deg) scale(var(--note-scale, 1)); }
    50%  {  transform: translateY(-0.5rem) rotate(-8deg) scale(var(--note-scale, 1)); }
}

@media (max-width: 1080px)  { 
    .services-grid,
    .audience-grid  { 
        grid-template-columns: repeat(2, minmax(0, 1fr));    }

    .collaboration-grid  { 
        grid-template-columns: repeat(3, minmax(0, 1fr));    }

    .story-grid  { 
        grid-template-columns: repeat(2, minmax(0, 1fr));    }

    .story-large  { 
        grid-column: 1 / -1;    }
}

@media (max-width: 820px)  { 
    .container  { 
        width: min(calc(100% - 2rem), var(--container));    }

    .site-nav  { 
        align-items: stretch;        background: rgba(255, 250, 245, 0.78);        -webkit-backdrop-filter: blur(18px);        backdrop-filter: blur(18px);        flex-direction: column;        inset: 0;        justify-content: center;        opacity: 0;        padding: 5rem 2rem 2rem;        pointer-events: none;        position: fixed;        transform: translateY(-1rem);        transition: opacity var(--ease), transform var(--ease);        z-index: 51;    }

    .site-nav.is-open  { 
        opacity: 1;        pointer-events: auto;        transform: translateY(0);    }

    .site-nav a  { 
        border-bottom: 1px solid var(--line);        font-family: var(--font-display);        font-size: 1.6rem;        font-weight: 400;        letter-spacing: -0.03em;        padding-block: 0.55rem;        text-transform: none;    }

    .site-nav .nav-cta  { 
        border-radius: 1rem;        font-family: var(--font-body);        font-size: 0.78rem;        font-weight: 800;        letter-spacing: 0.1em;        margin-top: 1rem;        padding: 1rem;        text-align: center;        text-transform: uppercase;    }

    .menu-toggle  { 
        display: block;    }

    .menu-toggle.is-open span:nth-child(1)  { 
        transform: translateY(7px) rotate(45deg);    }

    .menu-toggle.is-open span:nth-child(2)  { 
        opacity: 0;    }

    .menu-toggle.is-open span:nth-child(3)  { 
        transform: translateY(-7px) rotate(-45deg);    }

    body.menu-open  { 
        overflow: hidden;    }

    body.menu-open .site-header  { 
        background: transparent !important;        backdrop-filter: none !important;        -webkit-backdrop-filter: none !important;        box-shadow: none !important;    }

    .hero  { 
        min-height: auto;        padding-top: 8.5rem;    }

    .hero-grid,
    .trust-grid,
    .contact-grid  { 
        grid-template-columns: 1fr;    }

    .hero-visual  { 
        max-width: 18rem;        order: -1;        position: relative;        top: auto;    }

    .hero-note-top  { 
        left: -1rem;    }

    .hero-note-bottom  { 
        right: -0.6rem;    }

    .hero-metrics  { 
        margin-top: 2.7rem;    }

    .split-intro  { 
        align-items: start;        flex-direction: column;        gap: 1.2rem;    }

    .trust-copy  { 
        max-width: 38rem;    }

    .collaboration-grid  { 
        grid-template-columns: repeat(2, minmax(0, 1fr));    }

    .carousel-heading  { 
        align-items: start;        flex-direction: column;        gap: 1.2rem;    }
}

@media (max-width: 560px)  { 
    h1  { 
        font-size: clamp(3.65rem, 18vw, 5.1rem);    }

    h2  { 
        font-size: clamp(2.8rem, 14vw, 4rem);    }

    .section-shell  { 
        padding-block: clamp(4.4rem, 18vw, 6rem);    }

    .hero  { 
        padding-top: 7.4rem;    }

    .hero-frame  { 
        padding: 0.55rem;    }

    .hero-visual  { 
        max-width: 16rem;    }

    .hero-note-top  { 
        left: -1rem;        top: 10%;        --note-scale: 0.75;        transform-origin: left top;    }

    .hero-note-bottom  { 
        bottom: 8%;        right: -0.6rem;        --note-scale: 0.7;        transform-origin: right bottom;    }

    .hero-stamp  { 
        bottom: 2rem;        left: -0.8rem;        --note-scale: 0.8;        transform-origin: center;    }

    .hero-actions,
    .hero-actions .button  { 
        width: 100%;    }

    .button-quiet  { 
        min-height: 2.5rem;    }

    .hero-metrics  { 
        gap: 0.7rem;        justify-content: space-between;    }

    .hero-metrics div  { 
        padding-left: 0.65rem;    }

    .hero-metrics dt  { 
        font-size: 1.7rem;    }

    .hero-metrics dd  { 
        font-size: 0.54rem;        letter-spacing: 0.08em;    }

    .services-grid,
    .audience-grid,
    .trust-cards,
    .story-grid,
    .contact-form  { 
        grid-template-columns: 1fr;    }

    .service-card  { 
        min-height: 19rem;    }

    .trust-card  { 
        min-height: 12rem;    }

    .proof-counts div  { 
        padding: 1rem 0.4rem;    }

    .proof-counts strong  { 
        font-size: 2.8rem;    }

    .proof-counts span  { 
        font-size: 0.54rem;        letter-spacing: 0.07em;    }

    .collaboration-grid  { 
        gap: 0.55rem;    }

    .collaboration-grid a  { 
        font-size: 0.74rem;        min-height: 5rem;        padding: 0.8rem;    }

    .perspective-card  { 
        flex-basis: 100%;        grid-template-columns: 1fr;        grid-template-rows: auto 1fr;    }

    .perspective-content blockquote  { 
        font-size: 1.15rem;        margin: 0.75rem 0;    }

    .perspective-profile  { 
        align-items: flex-start;        flex-direction: column;        gap: 0.85rem;    }

    .perspective-video  { 
        aspect-ratio: 9 / 10;        min-height: auto;    }

    .perspective-video video  { 
        object-position: var(--mobile-video-offset, center);    }

    .carousel-block  { 
        position: relative;        padding-bottom: 6rem;    }

    .carousel-controls  { 
        display: flex;        position: absolute;        bottom: 1.5rem;        right: 1.2rem;    }

    .footer-grid,
    .footer-base  { 
        align-items: start;        flex-direction: column;        gap: 0.8rem;    }

    .footer-links  { 
        flex-wrap: wrap;    }
}

