/* User preference: body copy 18px; all supporting text at least 16px. */
.inspiration-copy .founder-contact {
    align-items: center;
    color: #5418C9;
    display: inline-flex;
    font-size: 18px;
    gap: 18px;
    line-height: 1.5;
    margin: 18px 0 24px;
    min-height: 48px;
    text-decoration: none
}

.inspiration-copy .founder-contact:focus-visible {
    outline-color: #6827F5
}

.hero-description p {
    max-width: 520px
}

.contact-invitation p {
    max-width: 560px
}

body {
    font-size: var(--text-body);
    line-height: 1.65
}

.eyebrow {
    font-size: var(--text-small);
    letter-spacing: .065em;
    line-height: 1.6;
}

.site-header nav {
    font-size: var(--text-small);
    gap: 26px
}

.site-header nav a {
    align-items: center;
    display: inline-flex;
    gap: 5px;
    min-height: 44px;
}

.site-header nav sup {
    color: #C6B7D3;
    font-size: var(--text-small);
    margin: 0;
    position: static;
    vertical-align: baseline;
}

.text-link, .hero-actions, .solid-link, .menu-toggle, .motion-toggle {
    font-size: var(--text-small)
}

.solid-link {
    min-height: 52px;
    min-width: 160px;
    padding: 14px 20px
}

.text-link {
    gap: 20px;
    line-height: 1.5;
    min-height: 48px;
}

.hero-description p, .work-empty p, .section-heading > p:last-child, .about-heading > p:last-child, .studio-intro p:not(.lead), .services article p, .process p, .inspiration-copy #inspiration-story p, .location-copy p:not(#location-country), .contact-bottom > p, .project-feature p {
    font-size: var(--text-body);
    line-height: 1.75
}

.section-heading, .about-heading {
    gap: 32px;
    grid-template-columns:1fr 1.8fr 1.3fr;
}

.section-heading > .eyebrow, .about-heading > .eyebrow {
    max-width: 240px
}

.work .section-heading > p:last-child {
    max-width: 330px
}

.work-empty .empty-note {
    color: #B2A1BF;
    line-height: 1.7;
    text-align: left;
    writing-mode: horizontal-tb;
}

.work-empty {
    gap: 4vw;
    grid-template-columns:1.25fr 1.4fr .55fr;
}

.services article {
    gap: 20px;
    grid-template-columns:35px 1.2fr 1fr 24px;
}

.services article > span, .process li > span {
    font-size: var(--text-small)
}

.services article p, .process p {
    line-height: 1.7
}

.process ol {
    gap: 28px
}

.process p br {
    display: none
}

.composition-copy > .eyebrow, .studio-print figcaption, .inspiration-copy > .eyebrow, .personal-signature small, .object-note, .inspiration-influences, .location-header .eyebrow, .location-copy > .eyebrow, .map-footer, .location-pin b {
    font-size: var(--text-small);
    line-height: 1.6
}

.composition-copy > .eyebrow, .inspiration-copy > .eyebrow, .location-copy > .eyebrow {
    letter-spacing: .05em
}

.personal-signature {
    font-size: 18px;
    gap: 18px;
    line-height: 1.6;
}

.personal-signature small {
    color: #655170;
    display: block;
    max-width: 250px
}

.object-note {
    bottom: -25px;
    color: #80638F;
    left: 18%;
    max-width: 250px;
    text-align: center;
    white-space: normal;
}

.inspiration-copy {
    padding-bottom: 35px
}

.inspiration-influences {
    gap: 14px 22px
}

.location-header {
    flex-wrap: wrap;
    gap: 18px 30px
}

.location-pin b {
    left: 65px;
    letter-spacing: .03em;
    top: 110px;
}

.map-footer {
    color: #B9A3C9
}

.location-copy > .eyebrow {
    color: #C1A1DA
}

.email-group button, #copy-status {
    font-size: var(--text-small);
    line-height: 1.6;
    min-height: 44px
}

.email-group {
    column-gap: 28px;
    row-gap: 12px
}

.email-group #copy-status {
    flex-basis: 100%;
    margin: 0;
    min-height: 0;
    position: static;
}

.email-link {
    overflow-wrap: anywhere
}

.contact {
    background: var(--bg);
    gap: 0;
    height: auto;
    min-height: 680px;
    padding: 100px var(--gutter) 90px;
}

.contact-top {
    color: #CBB8D9;
    margin-bottom: 65px;
    position: static;
}

.contact h2 {
    text-shadow: none
}

.contact-bottom {
    margin-top: 65px
}

footer {
    flex-wrap: wrap;
    gap: 24px;
    line-height: 1.6
}

footer > span, footer > a:last-child {
    font-size: var(--text-small)
}

footer > a:last-child {
    align-items: center;
    display: inline-flex;
    min-height: 44px
}

@media (max-width: 1100px) {
    .work-empty {
        grid-template-columns:1.1fr 1.2fr
    }

    .work-empty .empty-note {
        display: none
    }

    .section-heading, .about-heading {
        grid-template-columns:1fr 2fr
    }

    .section-heading > p:last-child, .about-heading > p:last-child {
        grid-column: 2
    }

    .services article {
        grid-template-columns:30px 1fr 24px
    }

    .services article p {
        grid-column: 2;
        grid-row: 2
    }

    .services article > span:last-child {
        grid-column: 3;
        grid-row: 1
    }
}

@media (max-width: 900px) {
    .site-header {
        height: 88px
    }

    .site-header .wordmark {
        width: 220px
    }

    .site-header .menu-toggle:not([hidden]) {
        align-items: center;
        display: inline-flex;
        font-size: var(--text-small);
        gap: 18px;
        min-height: 48px
    }

    .site-header nav {
        background: var(--bg);
        border-bottom: 1px solid var(--line);
        display: flex;
        flex-wrap: wrap;
        font-size: var(--text-small);
        gap: 12px 26px;
        left: calc(-1 * var(--gutter));
        padding: 20px var(--gutter);
        position: absolute;
        right: calc(-1 * var(--gutter));
        top: 87px;
    }

    .site-header nav[data-open=false] {
        display: none
    }

    .site-header nav a {
        font-size: var(--text-small);
        padding: 10px 0
    }

    .site-header nav sup {
        font-size: var(--text-small)
    }

    .site-header.is-past-hero > nav {
        background: #EEE8F4;
        border-color: #8B769D;
        color: #18151F;
        mix-blend-mode: normal;
    }

    .site-header.is-past-hero nav sup {
        color: #695476
    }

    .site-header:has(.menu-toggle[hidden]) {
        flex-wrap: wrap;
        gap: 12px;
        height: auto;
        min-height: 88px;
        padding: 18px 0;
    }

    .site-header:has(.menu-toggle[hidden]) nav {
        border: 0;
        gap: 12px 22px;
        padding: 0;
        position: static;
    }

    .process {
        display: block
    }

    .process ol {
        gap: 32px;
        grid-template-columns:1fr 1fr;
        margin-top: 28px;
    }

    .services {
        gap: 25px;
        grid-template-columns:1fr 3fr;
    }

    .personal-signature {
        font-size: var(--text-small)
    }

    .contact-bottom {
        align-items: start
    }
}

@media (max-width: 700px) {
    .section-heading, .about-heading {
        display: block
    }

    .section-heading > .eyebrow, .about-heading > .eyebrow {
        margin-bottom: 28px;
        max-width: none;
    }

    .section-heading > p:last-child, .about-heading > p:last-child {
        margin-top: 25px
    }

    .inspiration-card {
        padding-bottom: 40px
    }

    .inspiration-copy > .eyebrow {
        letter-spacing: .03em
    }

    .personal-signature {
        margin-top: 30px
    }

    .object-note {
        bottom: -20px;
        left: 20%;
        max-width: 240px
    }

    .location-copy {
        padding-top: 40px
    }
}

@media (max-width: 600px) {
    .site-header {
        height: 80px
    }

    .site-header nav {
        top: 79px
    }

    .site-header .wordmark {
        width: 205px
    }

    .hero {
        min-height: 780px
    }

    .hero-top {
        font-size: var(--text-small)
    }

    .hero h1 {
        margin-top: 85px
    }

    .hero-bottom {
        align-items: start;
        bottom: 90px;
        flex-direction: column;
        gap: 20px;
    }

    .hero-description p {
        font-size: var(--text-body);
        line-height: 1.65
    }

    .hero-actions {
        flex-wrap: wrap;
        gap: 16px 22px;
        margin-top: 24px
    }

    .hero-actions .text-link {
        gap: 14px
    }

    .hero-actions .solid-link {
        min-width: 150px
    }

    .scroll-note {
        bottom: 22px;
        font-size: var(--text-small);
        gap: 24px;
    }

    .work-empty {
        gap: 30px;
        grid-template-columns:1fr;
    }

    .services {
        display: block
    }

    .services > h3 {
        margin-bottom: 25px
    }

    .services article {
        gap: 12px 16px
    }

    .services article h3 {
        line-height: 1.4
    }

    .process h3 {
        line-height: 1.3
    }

    .process p {
        line-height: 1.65
    }

    .location-header .eyebrow {
        font-size: var(--text-small);
        letter-spacing: .03em
    }

    .location-header {
        gap: 16px
    }

    .location-pin b {
        left: 5px;
        top: 95px;
    }

    .location-graphic {
        min-height: 315px
    }

    .object-note {
        font-size: var(--text-small);
        left: 15%;
        max-width: 250px
    }

    .contact {
        min-height: 620px;
        padding-bottom: 75px;
        padding-top: 65px;
    }

    .contact-top {
        margin-bottom: 45px
    }

    .contact-bottom {
        gap: 30px;
        margin-top: 45px;
    }

    .contact h2 {
        font-size: clamp(48px, 12vw, 72px)
    }

    .contact-arrow {
        right: 0
    }

    .contact-bottom > p {
        font-size: var(--text-body)
    }

    .email-link {
        font-size: 19px
    }

    .email-group {
        gap: 12px 22px
    }

    footer {
        gap: 18px 25px
    }

    footer > span, footer > a:last-child {
        font-size: var(--text-small)
    }

    footer > span {
        flex-basis: 65%
    }
}

/* Handheld hero: text stays in document flow over a controlled dark artwork layer. */
@media (max-width: 900px) {
    .hero {
        gap: 0;
        height: auto;
        justify-content: flex-start;
        max-height: none;
        min-height: max(860px, 100svh);
        padding: 128px var(--gutter) 88px;
    }

    .hero .hero-top {
        color: #F4F2F7;
        left: auto;
        max-width: 30ch;
        position: relative;
        right: auto;
        top: auto;
    }

    .hero .hero-top .eyebrow {
        color: #F4F2F7
    }

    .hero h1 {
        color: #FFF;
        font-size: clamp(52px, 10.5vw, 94px);
        line-height: 1.08;
        margin: 36px 0 clamp(90px, 16svh, 150px);
        mix-blend-mode: normal;
        position: relative;
        text-shadow: none
    }

    .hero h1 .character {
        margin-left: 0
    }

    .hero h1 .violet {
        color: #C8A7FF
    }

    .hero .hero-bottom {
        display: block;
        inset: auto;
        margin: 0;
        position: relative;
    }

    .hero .hero-description {
        max-width: 520px
    }

    .hero .hero-description p {
        color: #F4F2F7;
        font-size: 18px;
        line-height: 1.75
    }

    .hero .hero-actions {
        flex-wrap: wrap;
        gap: 16px 24px;
        margin-top: 24px;
    }

    .hero .hero-actions .text-link {
        border-color: #C8A7FF;
        color: #F4F2F7;
    }

    .hero .scroll-note {
        bottom: 24px;
        color: #E4D8EF;
    }
}

@media (max-width: 600px) {
    .hero {
        min-height: max(860px, 100svh);
        padding-top: 116px;
    }

    .hero h1 {
        font-size: clamp(48px, 12.8vw, 76px);
        margin-bottom: 110px
    }

    .hero .hero-actions {
        align-items: stretch
    }

    .hero .hero-actions .project-cta {
        max-width: 360px;
        min-width: 0;
        width: 100%;
    }

    .hero .hero-actions .text-link {
        align-self: flex-start
    }
}
