:root {
            --c-bg:        #faf6ee;
            --c-bg-soft:   #fdfaf3;
            --c-bg-mid:    #f1ead9;
            --c-dark:      #2e2823;
            --c-dark-2:    #4a3f37;
            --c-pink:      #a8826f;
            --c-pink-soft: #c4a392;
            --c-text:      #2a2724;
            --c-text-soft: #6a615a;
            --c-text-mute: #948a82;
            --c-light:     #faf6ee;
            --c-light-soft: rgba(250,246,238,0.65);
            --c-light-mute: rgba(250,246,238,0.42);
            --c-rule:      #d4c5b3;
            --c-rule-dark: rgba(250,246,238,0.18);

            --c-panel:     #e3d0b3;
            --c-panel-2:   #d6c0a0;

            --font-serif: 'Noto Serif Display', 'Cormorant Garamond', Garamond, 'Times New Roman', serif;
            --font-sans:  'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

            --w-content: 1400px;
            --pad-x: clamp(1.25rem, 2vw + 0.5rem, 3rem);
            --pad-y: clamp(4rem, 7vw, 7rem);

            --ease: cubic-bezier(0.16, 1, 0.3, 1);
            --d-fast: 220ms;
            --d-slow: 740ms;
        }

        .editorials, .workshops, .mobile-menu {
            --c-dark:       var(--c-panel);
            --c-dark-2:     var(--c-panel-2);
            --c-light:      var(--c-text);
            --c-light-soft: var(--c-text-soft);
            --c-light-mute: var(--c-text-mute);
            --c-rule-dark:  var(--c-rule);
        }

        *, *::before, *::after { box-sizing: border-box; }
        html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
        body {
            margin: 0;
            background: var(--c-bg);
            color: var(--c-text);
            font-family: var(--font-sans);
            font-size: 14.5px;
            line-height: 1.6;
        }
        img, video { display: block; max-width: 100%; height: auto; }
        a { color: inherit; text-decoration: none; transition: opacity var(--d-fast) var(--ease); }
        a:hover { opacity: 0.7; }
        button { font: inherit; cursor: pointer; border: 0; background: transparent; color: inherit; }

        h1, h2, h3, h4, h5, h6 { margin: 0; font-family: var(--font-serif); font-weight: 400; line-height: 1.04; letter-spacing: -0.005em; }
        em { font-style: italic; color: var(--c-pink); }
        p { margin: 0; }

        .container {
            width: 100%;
            max-width: var(--w-content);
            margin: 0 auto;
            padding-inline: var(--pad-x);
        }

        /* ── Common eyebrows / labels ── */
        .label {
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-text-soft);
        }
        .label--light { color: var(--c-light-soft); }
        .label--pink { color: var(--c-pink); }

        .section-meta {
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-text-soft);
            margin-bottom: 32px;
        }
        .section-meta--light { color: var(--c-light-soft); }

        /* ── Brand logo (SVG mask) ── */
        .brand-logo {
            display: block;
            width: 140px;
            aspect-ratio: 841.89 / 595.28;
            background-color: currentColor;
            -webkit-mask: url(/assets/logo.svg) center / contain no-repeat;
                    mask: url(/assets/logo.svg) center / contain no-repeat;
        }

        /* ── Header ── */
        .site-header {
            position: fixed;
            top: 0; left: 0; right: 0;
            z-index: 60;
            display: grid;
            grid-template-columns: 1fr auto 1fr;
            align-items: center;
            padding: 18px var(--pad-x);
            color: var(--c-light);
            transition: background var(--d-fast) var(--ease), color var(--d-fast) var(--ease), border var(--d-fast) var(--ease);
            border-bottom: 1px solid transparent;
        }
        .site-header.is-scrolled {
            background: rgba(250,246,238,0.96);
            color: var(--c-text);
            border-bottom: 1px solid var(--c-rule);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
        }
        .site-nav {
            display: flex;
            gap: 30px;
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.3em;
            text-transform: uppercase;
        }
        .site-nav--right { justify-content: flex-end; }
        .site-header__brand {
            justify-self: center;
        }
        .site-header__brand .brand-logo {
            width: 150px;
            transition: width var(--d-fast) var(--ease);
        }
        .site-header.is-scrolled .site-header__brand .brand-logo { width: 80px; }

        .menu-toggle {
            display: none;
            justify-self: end;
            padding: 8px;
        }
        .menu-toggle svg { width: 22px; height: 22px; display: block; }

        @media (max-width: 900px) {
            .site-header { grid-template-columns: auto 1fr auto; padding: 14px var(--pad-x); }
            .site-nav { display: none; }
            .menu-toggle { display: inline-flex; }
            .site-header__brand .brand-logo { width: 120px; }
            .site-header.is-scrolled .site-header__brand .brand-logo { width: 70px; }
        }

        /* Mobile drawer */
        .mobile-menu {
            position: fixed;
            inset: 0;
            background: var(--c-dark);
            color: var(--c-light);
            z-index: 100;
            transform: translateX(100%);
            transition: transform 380ms var(--ease);
            display: flex;
            flex-direction: column;
            padding: 80px var(--pad-x) 40px;
        }
        .mobile-menu.is-open { transform: translateX(0); }
        .mobile-menu__close {
            position: absolute;
            top: 18px;
            right: var(--pad-x);
            padding: 8px;
        }
        .mobile-menu__close svg { width: 22px; height: 22px; }
        .mobile-menu nav {
            display: flex;
            flex-direction: column;
            gap: 22px;
            margin-top: 24px;
        }
        .mobile-menu nav a {
            font-family: var(--font-serif);
            font-style: italic;
            font-size: 30px;
            color: var(--c-light);
        }
        .mobile-menu .btn-outline { margin-top: auto; align-self: flex-start; }

        /* ── Hero ── */
        .hero {
            position: relative;
            min-height: 100vh;
            min-height: 100svh;
            color: var(--c-light);
            overflow: hidden;
            isolation: isolate;
            display: flex;
            flex-direction: column;
        }
        .hero__bg {
            position: absolute;
            inset: 0;
            z-index: -1;
        }
        .hero__bg video {
            width: 100%; height: 100%; object-fit: cover;
        }
        .hero__bg::after {
            content: '';
            position: absolute; inset: 0;
            background:
                linear-gradient(180deg, rgba(42,39,36,0.55) 0%, rgba(42,39,36,0.35) 35%, rgba(42,39,36,0.7) 100%),
                radial-gradient(circle at 70% 50%, rgba(74,63,55,0.3) 0%, transparent 60%);
        }
        .hero__bg::before {
            content: '';
            position: absolute; inset: 0;
            background-image:
                repeating-linear-gradient(90deg, transparent 0 2px, rgba(255,255,255,0.012) 2px 4px);
            mix-blend-mode: overlay;
            pointer-events: none;
        }
        .hero__top {
            display: grid;
            grid-template-columns: 1fr;
            gap: 30px;
            padding: clamp(80px, 12vh, 130px) var(--pad-x) clamp(20px, 4vh, 40px);
            align-items: start;
        }
        .hero__masthead-l {
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-light-soft);
            line-height: 1.6;
        }
        .hero__masthead-r {
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-light-soft);
            text-align: right;
            line-height: 1.6;
        }
        .hero__masthead-r .now-playing {
            color: var(--c-light);
            margin-bottom: 8px;
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }
        .hero__masthead-r .now-playing::before {
            content: '';
            width: 7px; height: 7px;
            background: var(--c-pink);
            border-radius: 50%;
            display: inline-block;
            animation: pulse 2.4s var(--ease) infinite;
        }
        @keyframes pulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.35; }
        }
        .hero__main {
            flex: 1;
            display: grid;
            grid-template-columns: minmax(260px, 1fr) minmax(300px, 1fr);
            gap: 60px;
            align-items: end;
            padding: clamp(40px, 8vh, 80px) var(--pad-x) clamp(40px, 8vh, 70px);
        }
        .hero__feature {
            max-width: 460px;
        }
        .hero__feature .label {
            color: var(--c-pink-soft);
            margin-bottom: 22px;
            display: block;
        }
        .hero__feat-title {
            font-family: var(--font-serif);
            font-weight: 400;
            font-size: clamp(2rem, 5vw, 3.75rem);
            line-height: 1.04;
            color: var(--c-light);
            margin-bottom: 22px;
            letter-spacing: -0.01em;
        }
        .hero__feat-title em { color: var(--c-pink); font-style: italic; }
        .hero__feat-body {
            font-size: 13.5px;
            line-height: 1.7;
            color: var(--c-light-soft);
            max-width: 360px;
            margin-bottom: 28px;
        }
        .btn-outline {
            display: inline-flex;
            align-items: center;
            gap: 12px;
            padding: 13px 22px;
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.3em;
            text-transform: uppercase;
            border: 1px solid currentColor;
            color: var(--c-light);
            transition: background var(--d-fast) var(--ease), color var(--d-fast) var(--ease);
        }
        .btn-outline:hover { opacity: 1; background: var(--c-light); color: var(--c-dark); }
        .btn-outline--dark { color: var(--c-text); }
        .btn-outline--dark:hover { background: var(--c-text); color: var(--c-bg); }
        .btn-outline::after { content: '→'; font-size: 12px; }

        .hero__filmcard {
            justify-self: end;
            background: rgba(42,39,36,0.5);
            backdrop-filter: blur(8px);
            -webkit-backdrop-filter: blur(8px);
            border: 1px solid var(--c-rule-dark);
            padding: 22px 24px;
            max-width: 360px;
            color: var(--c-light);
        }
        .hero__filmcard-meta {
            display: flex;
            justify-content: space-between;
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.3em;
            text-transform: uppercase;
            color: var(--c-light-soft);
            margin-bottom: 18px;
            padding-bottom: 12px;
            border-bottom: 1px solid var(--c-rule-dark);
        }
        .hero__filmcard h3 {
            font-family: var(--font-serif);
            font-style: italic;
            font-size: 22px;
            color: var(--c-pink-soft);
            margin-bottom: 10px;
            font-weight: 400;
        }
        .hero__filmcard p {
            font-size: 12.5px;
            line-height: 1.65;
            color: var(--c-light-soft);
        }

        .hero__strip {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 30px;
            padding: 18px var(--pad-x);
            border-top: 1px solid var(--c-rule-dark);
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-light-soft);
        }
        .hero__strip > :nth-child(2) { text-align: right; color: var(--c-pink-soft); }

        @media (max-width: 900px) {
            .hero__top { grid-template-columns: 1fr; gap: 24px; padding-top: 90px; }
            .hero__masthead-l { text-align: left; }
            .hero__main { grid-template-columns: 1fr; gap: 40px; }
            .hero__filmcard { justify-self: start; max-width: 100%; }
            .hero__strip { grid-template-columns: 1fr; gap: 8px; }
            .hero__strip > :nth-child(2) { text-align: left; }
        }

        /* ── Manifesto ── */
        .manifesto {
            background: var(--c-bg);
            padding: var(--pad-y) 0;
        }
        .manifesto__title {
            text-align: center;
            font-family: var(--font-serif);
            font-weight: 400;
            font-size: clamp(2rem, 5.4vw, 4.25rem);
            line-height: 1.08;
            max-width: 920px;
            margin: 56px auto;
            letter-spacing: -0.01em;
        }
        .manifesto hr {
            border: 0;
            border-top: 1px solid var(--c-rule);
            margin: 24px 0 56px;
        }
        .manifesto__pillars {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 64px;
        }
        .pillar__head {
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-pink);
            margin-bottom: 16px;
        }
        .pillar__head::before { content: '— '; }
        .pillar__body {
            font-size: 14px;
            line-height: 1.75;
            color: var(--c-text);
            max-width: 280px;
        }
        @media (max-width: 800px) {
            .manifesto__pillars { grid-template-columns: 1fr; gap: 36px; }
        }

        /* ── Services (table) ── */
        .services {
            background: var(--c-bg);
            padding-bottom: var(--pad-y);
        }
        .services__intro {
            display: grid;
            grid-template-columns: 80px 1fr;
            gap: 32px;
            align-items: end;
            margin-bottom: 24px;
        }
        .services__title {
            font-family: var(--font-serif);
            font-weight: 400;
            font-size: clamp(2rem, 5.4vw, 4.25rem);
            line-height: 1.04;
            text-align: center;
            margin: 56px auto 0;
            letter-spacing: -0.01em;
        }
        .services__rows hr {
            border: 0;
            border-top: 1px solid var(--c-rule);
            margin: 0;
        }
        .service-row {
            display: grid;
            grid-template-columns: 80px minmax(180px, 1.4fr) minmax(200px, 2fr) auto;
            gap: 32px;
            padding: 32px 0;
            align-items: center;
            border-bottom: 1px solid var(--c-rule);
            transition: background var(--d-fast) var(--ease);
        }
        .service-row:hover { background: var(--c-bg-mid); }
        .service-row__num {
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-text-soft);
        }
        .service-row__title {
            font-family: var(--font-serif);
            font-weight: 400;
            font-size: clamp(1.5rem, 2.6vw, 2.1rem);
            line-height: 1.1;
        }
        .service-row__title em { font-style: italic; color: var(--c-pink); }
        .service-row__body {
            font-size: 13.5px;
            line-height: 1.65;
            color: var(--c-text-soft);
        }
        .service-row__link {
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.3em;
            text-transform: uppercase;
            color: var(--c-text-soft);
            display: inline-flex;
            gap: 8px;
            justify-self: end;
            white-space: nowrap;
        }
        .service-row__link::after { content: '→'; }
        .service-row:hover .service-row__link { color: var(--c-pink); }

        @media (max-width: 900px) {
            .service-row {
                grid-template-columns: 60px 1fr;
                grid-template-rows: auto auto auto;
                gap: 12px 20px;
            }
            .service-row__num { grid-column: 1; grid-row: 1; }
            .service-row__title { grid-column: 2; grid-row: 1; }
            .service-row__body { grid-column: 2; grid-row: 2; }
            .service-row__link { grid-column: 2; grid-row: 3; justify-self: start; }
        }

        /* ── Editorials (dark section) ── */
        .editorials {
            background: var(--c-dark);
            color: var(--c-light);
            padding-top: var(--pad-y);
            position: relative;
        }
        .editorials::before {
            content: '';
            position: absolute;
            inset: 0;
            background-image:
                radial-gradient(ellipse at 80% 20%, rgba(168,130,111,0.10) 0%, transparent 50%),
                radial-gradient(ellipse at 10% 90%, rgba(74,63,55,0.10) 0%, transparent 60%);
            pointer-events: none;
        }
        .editorials__inner { position: relative; z-index: 1; }
        .editorials__title {
            text-align: center;
            font-family: var(--font-serif);
            font-weight: 400;
            font-size: clamp(2rem, 5.4vw, 4.25rem);
            line-height: 1.04;
            color: var(--c-light);
            margin: 0 auto 24px;
            max-width: 900px;
            letter-spacing: -0.01em;
        }
        .editorials__title em { font-style: italic; color: var(--c-pink); }
        .editorials__meta {
            display: flex;
            justify-content: space-between;
            align-items: baseline;
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-light-soft);
            border-bottom: 1px solid var(--c-rule-dark);
            padding-bottom: 22px;
            margin-bottom: 64px;
        }
        .editorial {
            display: grid;
            grid-template-columns: 1fr 1fr;
            min-height: clamp(420px, 60vh, 640px);
        }
        .editorial--reverse { direction: rtl; }
        .editorial--reverse > * { direction: ltr; }
        .editorial__photo {
            position: relative;
            overflow: hidden;
        }
        .editorial__photo img {
            width: 100%; height: 100%; object-fit: cover;
            transition: transform 1100ms var(--ease);
        }
        .editorial:hover .editorial__photo img { transform: scale(1.04); }
        .editorial__photo-meta {
            position: absolute;
            bottom: 22px;
            left: 22px;
            right: 22px;
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.3em;
            text-transform: uppercase;
            color: var(--c-light);
            text-shadow: 0 1px 4px rgba(0,0,0,0.5);
        }
        .editorial__content {
            padding: clamp(36px, 5vw, 64px) clamp(28px, 5vw, 80px);
            display: flex;
            flex-direction: column;
            justify-content: center;
            color: var(--c-light);
        }
        .editorial__top {
            display: flex;
            justify-content: space-between;
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-light-soft);
            margin-bottom: 32px;
        }
        .editorial__kicker {
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.3em;
            text-transform: uppercase;
            color: var(--c-pink-soft);
            margin-bottom: 18px;
        }
        .editorial__title {
            font-family: var(--font-serif);
            font-weight: 400;
            font-size: clamp(2rem, 4.4vw, 3.25rem);
            line-height: 1.05;
            color: var(--c-light);
            margin-bottom: 22px;
        }
        .editorial__title em { font-style: italic; color: var(--c-pink); }
        .editorial__quote {
            font-family: var(--font-serif);
            font-style: italic;
            font-size: 15px;
            line-height: 1.55;
            color: var(--c-light-soft);
            border-left: 1px solid var(--c-pink);
            padding-left: 16px;
            margin-bottom: 30px;
            max-width: 360px;
        }
        .editorial__data {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 22px 32px;
            margin-bottom: 30px;
            max-width: 360px;
        }
        .editorial__data dt {
            font-family: var(--font-sans);
            font-size: 9.5px;
            font-weight: 500;
            letter-spacing: 0.3em;
            text-transform: uppercase;
            color: var(--c-light-mute);
            margin-bottom: 6px;
        }
        .editorial__data dd {
            margin: 0;
            font-family: var(--font-sans);
            font-size: 11.5px;
            font-weight: 500;
            letter-spacing: 0.18em;
            text-transform: uppercase;
            color: var(--c-light);
        }
        .editorial__cta {
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.3em;
            text-transform: uppercase;
            color: var(--c-pink-soft);
            border-bottom: 1px solid var(--c-pink-soft);
            padding-bottom: 6px;
            display: inline-flex;
            gap: 10px;
            align-self: flex-start;
        }
        .editorial__cta::after { content: '→'; }

        @media (max-width: 900px) {
            .editorial { grid-template-columns: 1fr; min-height: 0; }
            .editorial--reverse { direction: ltr; }
            .editorial__photo { aspect-ratio: 4 / 3; }
            .editorial__content { padding: 40px var(--pad-x); }
        }

        /* Editorial index */
        .editorials__index {
            border-top: 1px solid var(--c-rule-dark);
            border-bottom: 1px solid var(--c-rule-dark);
            margin-top: 0;
            padding: 28px 0;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 14px 60px;
            font-family: var(--font-sans);
            font-size: 10.5px;
            font-weight: 500;
            letter-spacing: 0.28em;
            text-transform: uppercase;
            color: var(--c-light-soft);
        }
        .editorials__index span {
            display: inline-flex;
            justify-content: space-between;
            border-bottom: 1px dotted var(--c-rule-dark);
            padding-bottom: 4px;
        }
        .editorials__index span strong {
            font-weight: 500;
            color: var(--c-light);
        }
        .editorials__index span em {
            font-style: normal;
            color: var(--c-pink-soft);
        }
        .editorials__bottom {
            padding-top: 60px;
            padding-bottom: var(--pad-y);
        }
        @media (max-width: 800px) {
            .editorials__index { grid-template-columns: 1fr 1fr; gap: 12px 24px; }
        }
        @media (max-width: 500px) {
            .editorials__index { grid-template-columns: 1fr; }
        }

        /* ── Method ── */
        .method {
            background: var(--c-bg);
            padding: var(--pad-y) 0;
        }
        .method__title {
            text-align: center;
            font-family: var(--font-serif);
            font-weight: 400;
            font-size: clamp(2rem, 5.4vw, 4.25rem);
            line-height: 1.05;
            margin: 0 auto 24px;
            max-width: 880px;
            letter-spacing: -0.01em;
        }
        .method__title em { font-style: italic; color: var(--c-pink); }
        .method__grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 0;
            margin-top: 60px;
            border: 1px solid var(--c-rule);
        }
        .method__box {
            padding: clamp(28px, 4vw, 56px);
            border-right: 1px solid var(--c-rule);
            border-bottom: 1px solid var(--c-rule);
        }
        .method__box:nth-child(2n) { border-right: 0; }
        .method__box:nth-child(n+3) { border-bottom: 0; }
        .method__num {
            font-family: var(--font-serif);
            font-style: italic;
            font-weight: 400;
            font-size: clamp(2.5rem, 4.5vw, 3.75rem);
            color: var(--c-pink);
            line-height: 1;
            margin-bottom: 28px;
        }
        .method__chapter {
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-text-soft);
            margin-bottom: 12px;
        }
        .method__name {
            font-family: var(--font-serif);
            font-weight: 400;
            font-size: clamp(1.4rem, 2.3vw, 1.75rem);
            line-height: 1.15;
            margin-bottom: 16px;
        }
        .method__name em { font-style: italic; color: var(--c-pink); }
        .method__body {
            font-size: 13.5px;
            line-height: 1.65;
            color: var(--c-text-soft);
            margin-bottom: 32px;
            max-width: 360px;
        }
        .method__meta {
            display: flex;
            justify-content: space-between;
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.3em;
            text-transform: uppercase;
            color: var(--c-text-mute);
            padding-top: 16px;
            border-top: 1px solid var(--c-rule);
        }
        @media (max-width: 800px) {
            .method__grid { grid-template-columns: 1fr; }
            .method__box { border-right: 0; border-bottom: 1px solid var(--c-rule); }
            .method__box:last-child { border-bottom: 0; }
        }

        /* ── In Conversation ── */
        .convo {
            background: var(--c-bg-soft);
            padding: var(--pad-y) 0 0;
        }
        .convo__grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            min-height: clamp(440px, 70vh, 720px);
            gap: 0;
        }
        .convo__photo {
            background: var(--c-bg-mid);
            overflow: hidden;
        }
        .convo__photo img {
            width: 100%; height: 100%; object-fit: cover;
            transition: transform 1100ms var(--ease);
        }
        .convo__photo:hover img { transform: scale(1.04); }
        .convo__content {
            padding: clamp(40px, 6vw, 80px) clamp(24px, 5vw, 80px);
            display: flex;
            flex-direction: column;
            justify-content: center;
        }
        .convo__top {
            display: flex;
            align-items: center;
            gap: 14px;
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-pink);
            margin-bottom: 32px;
        }
        .convo__top::after {
            content: '';
            flex: 1;
            border-top: 1px solid var(--c-pink);
            opacity: 0.5;
        }
        .convo__quote {
            position: relative;
            font-family: var(--font-serif);
            font-weight: 400;
            font-size: clamp(1.6rem, 2.8vw, 2.4rem);
            line-height: 1.18;
            color: var(--c-text);
            margin-bottom: 36px;
            padding-left: 44px;
        }
        .convo__quote::before {
            content: '“';
            position: absolute;
            left: 0; top: -20px;
            font-family: var(--font-serif);
            font-size: 70px;
            color: var(--c-pink);
            line-height: 1;
        }
        .convo__sub {
            border-top: 1px solid var(--c-rule);
            padding-top: 22px;
            margin-bottom: 22px;
        }
        .convo__sub h4 {
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-pink);
            margin-bottom: 10px;
        }
        .convo__sub h4::before { content: '— '; }
        .convo__sub p {
            font-size: 13.5px;
            line-height: 1.65;
            color: var(--c-text-soft);
            max-width: 480px;
        }
        .convo__signature {
            font-family: var(--font-serif);
            font-style: italic;
            font-size: 18px;
            color: var(--c-pink);
            margin: 24px 0 12px;
        }
        .convo__role {
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-text-mute);
        }
        .convo__role span { margin: 0 8px; }
        @media (max-width: 900px) {
            .convo__grid { grid-template-columns: 1fr; min-height: 0; }
            .convo__photo { aspect-ratio: 4 / 5; }
        }

        /* ── Press testimonials ── */
        .press {
            background: var(--c-bg-soft);
            padding: var(--pad-y) 0;
        }
        .press__title {
            text-align: center;
            font-family: var(--font-serif);
            font-weight: 400;
            font-size: clamp(2rem, 5.4vw, 4.25rem);
            line-height: 1.05;
            margin: 0 auto 24px;
            max-width: 720px;
            letter-spacing: -0.01em;
        }
        .press__title em { font-style: italic; color: var(--c-pink); }
        .press__grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 60px;
            margin-top: 64px;
            border-top: 1px solid var(--c-rule);
        }
        .press-item {
            padding: 36px 0 0;
            position: relative;
        }
        .press-item::before {
            content: '“';
            font-family: var(--font-serif);
            font-size: 38px;
            color: var(--c-pink);
            line-height: 1;
            display: block;
            margin-bottom: 18px;
        }
        .press-item p {
            font-family: var(--font-serif);
            font-style: italic;
            font-size: 16px;
            line-height: 1.55;
            color: var(--c-text);
            margin-bottom: 24px;
            max-width: 480px;
        }
        .press-item__author {
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            margin-bottom: 6px;
            color: var(--c-text);
        }
        .press-item__meta {
            font-family: var(--font-serif);
            font-style: italic;
            font-size: 13px;
            color: var(--c-text-soft);
        }
        @media (max-width: 800px) {
            .press__grid { grid-template-columns: 1fr; gap: 40px; }
        }

        /* ── Workshops ── */
        .workshops {
            background: var(--c-dark-2);
            color: var(--c-light);
        }
        .workshops__grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            min-height: clamp(420px, 60vh, 600px);
        }
        .workshops__content {
            padding: clamp(40px, 6vw, 80px) clamp(28px, 5vw, 80px);
            display: flex;
            flex-direction: column;
            justify-content: center;
        }
        .workshops__content .label { color: var(--c-pink-soft); margin-bottom: 22px; }
        .workshops__title {
            font-family: var(--font-serif);
            font-weight: 400;
            font-size: clamp(2rem, 4.5vw, 3.5rem);
            line-height: 1.05;
            color: var(--c-light);
            margin-bottom: 24px;
            letter-spacing: -0.01em;
        }
        .workshops__title em { font-style: italic; color: var(--c-pink-soft); }
        .workshops__body {
            font-size: 14px;
            line-height: 1.7;
            color: var(--c-light-soft);
            margin-bottom: 32px;
            max-width: 460px;
        }
        .workshops__photo {
            overflow: hidden;
            background: var(--c-dark);
        }
        .workshops__photo img {
            width: 100%; height: 100%; object-fit: cover;
        }
        @media (max-width: 800px) {
            .workshops__grid { grid-template-columns: 1fr; }
            .workshops__photo { aspect-ratio: 4 / 3; order: -1; }
        }

        /* ── Feed ── */
        .feed {
            background: var(--c-bg);
            padding: var(--pad-y) 0;
        }
        .feed__title {
            text-align: center;
            font-family: var(--font-serif);
            font-weight: 400;
            font-size: clamp(2rem, 5.4vw, 4.25rem);
            line-height: 1.04;
            margin: 0 auto 32px;
            letter-spacing: -0.01em;
        }
        .feed__title em { font-style: italic; color: var(--c-pink); }
        .feed__meta {
            display: flex;
            justify-content: space-between;
            align-items: baseline;
            border-bottom: 1px solid var(--c-rule);
            padding-bottom: 22px;
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-text-soft);
        }
        .feed__handle { color: var(--c-pink); }
        .feed__grid {
            display: grid;
            grid-template-columns: repeat(6, 1fr);
            gap: 0;
            margin-top: 0;
        }
        .feed__cell {
            aspect-ratio: 1 / 1;
            overflow: hidden;
            background: var(--c-bg-mid);
        }
        .feed__cell img {
            width: 100%; height: 100%; object-fit: cover;
            transition: transform 900ms var(--ease);
        }
        .feed__cell:hover img { transform: scale(1.06); }
        @media (max-width: 800px) {
            .feed__grid { grid-template-columns: repeat(3, 1fr); }
        }
        @media (max-width: 500px) {
            .feed__grid { grid-template-columns: repeat(2, 1fr); }
        }

        /* ── Final CTA ── */
        .final-cta {
            position: relative;
            min-height: 80vh;
            min-height: 80svh;
            display: grid;
            place-items: center;
            color: var(--c-light);
            overflow: hidden;
            text-align: center;
            padding: 80px var(--pad-x);
        }
        .final-cta__bg {
            position: absolute;
            inset: 0;
            z-index: 0;
        }
        .final-cta__bg img {
            width: 100%; height: 100%; object-fit: cover;
        }
        .final-cta__bg::after {
            content: '';
            position: absolute; inset: 0;
            background: linear-gradient(180deg, rgba(42,39,36,0.55) 0%, rgba(42,39,36,0.4) 50%, rgba(42,39,36,0.6) 100%);
        }
        .final-cta__inner { position: relative; z-index: 1; max-width: 920px; }
        .final-cta__eyebrow {
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.4em;
            text-transform: uppercase;
            color: var(--c-light-soft);
            margin-bottom: 32px;
            display: flex;
            justify-content: center;
            gap: 18px;
            align-items: center;
        }
        .final-cta__eyebrow::before, .final-cta__eyebrow::after {
            content: '—';
        }
        .final-cta__title {
            font-family: var(--font-serif);
            font-weight: 400;
            font-size: clamp(2.5rem, 6.5vw, 5.25rem);
            line-height: 1.05;
            color: var(--c-light);
            margin-bottom: 44px;
            letter-spacing: -0.01em;
        }
        .final-cta__title em { font-style: italic; color: var(--c-pink-soft); }
        .final-cta__buttons {
            display: inline-flex;
            gap: 14px;
            flex-wrap: wrap;
            justify-content: center;
        }
        .btn-solid {
            display: inline-flex;
            align-items: center;
            gap: 12px;
            padding: 14px 26px;
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.3em;
            text-transform: uppercase;
            background: var(--c-light);
            color: var(--c-dark);
            border: 1px solid var(--c-light);
            transition: background var(--d-fast) var(--ease), color var(--d-fast) var(--ease);
        }
        .btn-solid:hover { opacity: 1; background: var(--c-pink); color: var(--c-light); border-color: var(--c-pink); }
        .btn-solid::after { content: '→'; }

        /* ── Footer / Colophon ── */
        .colophon {
            background: var(--c-bg);
            padding: clamp(60px, 10vw, 110px) 0 28px;
            text-align: center;
        }
        .colophon__brand {
            color: var(--c-text);
            margin: 0 auto;
        }
        .colophon__brand .brand-logo {
            width: clamp(220px, 38vw, 360px);
            margin: 0 auto;
        }
        .colophon__top {
            display: grid;
            grid-template-columns: 1fr auto 1fr;
            align-items: center;
            margin-top: 32px;
            padding: 24px 0;
            border-top: 1px solid var(--c-rule);
            border-bottom: 1px solid var(--c-rule);
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-text-soft);
            gap: 24px;
        }
        .colophon__top span:first-child { text-align: left; }
        .colophon__top span:last-child { text-align: right; }
        .colophon__top .stamp {
            font-family: var(--font-serif);
            font-style: italic;
            text-transform: none;
            letter-spacing: 0;
            font-size: 14px;
            color: var(--c-pink);
        }
        .colophon__cols {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 40px;
            text-align: left;
            margin-top: 56px;
        }
        .colophon__col h6 {
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            color: var(--c-pink);
            margin-bottom: 22px;
        }
        .colophon__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
        .colophon__col a, .colophon__col p { font-size: 13.5px; color: var(--c-text); }
        .colophon__col p { margin: 0 0 10px; line-height: 1.6; }
        .colophon__col p.muted { color: var(--c-text-soft); margin-bottom: 20px; }
        .colophon__newsletter input {
            width: 100%;
            background: transparent;
            border: 0;
            border-bottom: 1px solid var(--c-rule);
            padding: 10px 0;
            color: var(--c-text);
            font-family: inherit;
            font-size: 13px;
            margin-bottom: 18px;
        }
        .colophon__newsletter input::placeholder { color: var(--c-text-mute); }
        .colophon__newsletter input:focus { outline: 0; border-bottom-color: var(--c-pink); }
        .colophon__newsletter button {
            display: inline-block;
            padding: 12px 24px;
            background: var(--c-dark);
            color: var(--c-light);
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.32em;
            text-transform: uppercase;
            border: 0;
            transition: background var(--d-fast) var(--ease);
        }
        .colophon__newsletter button:hover { background: var(--c-pink); }
        .colophon__bottom {
            margin-top: 56px;
            padding-top: 24px;
            border-top: 1px solid var(--c-rule);
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 20px;
            flex-wrap: wrap;
            font-family: var(--font-sans);
            font-size: 10px;
            font-weight: 500;
            letter-spacing: 0.3em;
            text-transform: uppercase;
            color: var(--c-text-mute);
        }
        .colophon__bottom-right { display: flex; gap: 28px; }
        @media (max-width: 900px) {
            .colophon__top { grid-template-columns: 1fr; gap: 8px; text-align: center; }
            .colophon__top span:first-child, .colophon__top span:last-child { text-align: center; }
            .colophon__cols { grid-template-columns: 1fr 1fr; gap: 36px; }
        }
        @media (max-width: 600px) {
            .colophon__cols { grid-template-columns: 1fr; }
        }

        /* ── Reveal ── */
        [data-reveal] {
            opacity: 0;
            transform: translateY(28px);
            transition: opacity 900ms var(--ease), transform 900ms var(--ease);
        }
        [data-reveal].is-revealed { opacity: 1; transform: none; }
        @media (prefers-reduced-motion: reduce) {
            [data-reveal] { opacity: 1; transform: none; }
        }
