@layer reset, tokens, base, layout, components, motion, responsive;

@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  html { -webkit-text-size-adjust: 100%; }
  body, h1, h2, h3, p, figure, blockquote, dl, dd { margin: 0; }
  button, input, select, textarea { font: inherit; color: inherit; }
  img, video { display: block; max-width: 100%; }
  button, a { -webkit-tap-highlight-color: transparent; }
}

@layer tokens {
  :root {
    color-scheme: light dark;
    --paper: #f3f1ec;
    --ink: #0a0a09;
    --ink-soft: #62605b;
    --line: rgb(10 10 9 / 18%);
    --surface: #e9e6df;
    --inverse: #f4f2ed;
    --accent: #9e3327;
    --focus: #bd4332;
    --header-bg: rgb(243 241 236 / 82%);
    --shadow: 0 24px 80px rgb(8 8 7 / 15%);
    --gutter: clamp(18px, 3.2vw, 56px);
    --section: clamp(96px, 14vw, 220px);
    --ease: cubic-bezier(.22, .72, .18, 1);
    --ease-out: cubic-bezier(.23, 1, .32, 1);
    --ease-in-out: cubic-bezier(.77, 0, .175, 1);
    --cut: 460ms var(--ease);
    --dissolve: 780ms var(--ease);
    --sans: "Helvetica Neue", "Avenir Next", Avenir, "Nimbus Sans L", sans-serif;
    --serif: "Iowan Old Style", Baskerville, "Times New Roman", serif;
  }

  html[data-theme="dark"] {
    color-scheme: dark;
    --paper: #070707;
    --ink: #f3f1ec;
    --ink-soft: #999792;
    --line: rgb(243 241 236 / 19%);
    --surface: #11110f;
    --inverse: #080807;
    --header-bg: rgb(7 7 7 / 78%);
    --shadow: 0 28px 90px rgb(0 0 0 / 45%);
  }

  html[data-world="weddings"] {
    --accent: #7b372f;
    --focus: #963f34;
  }
}

@layer base {
  html { scroll-behavior: smooth; background: var(--paper); }
  body {
    min-width: 280px;
    min-height: 100vh;
    overflow-x: clip;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.5;
    text-rendering: optimizeLegibility;
    transition: background-color 360ms ease, color 360ms ease;
  }
  body.menu-open, body.intro-open { overflow: hidden; }
  a { color: inherit; text-decoration: none; }
  button { border: 0; background: none; }
  ::selection { background: var(--ink); color: var(--paper); }
  :focus-visible { outline: 2px solid var(--focus); outline-offset: 5px; }
  [hidden] { display: none !important; }
  .skip-link {
    position: fixed; z-index: 1000; top: 10px; left: 10px; transform: translateY(-160%);
    padding: 12px 16px; background: var(--ink); color: var(--paper);
  }
  .skip-link:focus { transform: translateY(0); }
  .eyebrow, .micro, .meta, .button, .nav-link, .prototype-asset, .filter-button,
  .field-label, .step-label, .legal-note, .world-kicker, .index-no {
    font-size: .68rem; font-weight: 500; line-height: 1.2; letter-spacing: .14em; text-transform: uppercase;
  }
  .display {
    max-width: 12ch; font-size: clamp(3.4rem, 9.3vw, 10.8rem); font-weight: 400;
    line-height: .84; letter-spacing: -.075em;
  }
  .display-serif {
    font-family: var(--serif); font-size: clamp(3.25rem, 8.7vw, 9.4rem); font-weight: 400;
    line-height: .88; letter-spacing: -.065em;
  }
  .section-title {
    min-width: 0; font-size: clamp(2.8rem, 7vw, 7.8rem); font-weight: 400; line-height: .9; letter-spacing: -.065em;
    hyphens: auto; overflow-wrap: anywhere;
  }
  .lede { max-width: 36ch; font-size: clamp(1.3rem, 2.25vw, 2.35rem); line-height: 1.26; letter-spacing: -.035em; }
  .body-copy { max-width: 62ch; color: var(--ink-soft); font-size: clamp(1rem, 1.3vw, 1.18rem); }
  .muted { color: var(--ink-soft); }
  .serif { font-family: var(--serif); font-style: italic; }
  .no-wrap { white-space: nowrap; }
  .arrow { display: inline-block; width: 42px; height: 12px; margin-left: 12px; vertical-align: middle; }
  .arrow path, .arrow line { vector-effect: non-scaling-stroke; }
}

@layer layout {
  .site-main { position: relative; }
  .global-cut-track { position: fixed; z-index: 48; top: 86px; right: 10px; bottom: 12px; width: 1px; background: var(--line); pointer-events: none; }
  .global-cut-fill { display: block; width: 100%; height: 100%; transform: scaleY(0); transform-origin: top; background: var(--accent); }
  .shell { width: min(100% - (2 * var(--gutter)), 1720px); margin-inline: auto; }
  .section { padding-block: var(--section); }
  .section-rule { border-top: 1px solid var(--line); }
  .section-head {
    display: grid; grid-template-columns: minmax(100px, .42fr) 1.58fr; gap: var(--gutter);
    align-items: start; margin-bottom: clamp(42px, 7vw, 110px);
  }
  .section-no { color: var(--ink-soft); font-size: clamp(2rem, 4.5vw, 5.5rem); font-weight: 300; line-height: .9; letter-spacing: -.06em; }
  .full-bleed { width: 100%; }
  .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gutter); }
  .asym-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(10px, 1.6vw, 26px); }
}

@layer components {
  .site-header {
    position: fixed; z-index: 50; top: 0; left: 0; width: 100%; height: 86px;
    --header-ink: #f3f1ec;
    display: flex; align-items: center; color: var(--header-ink);
    mix-blend-mode: var(--header-blend, normal); transition: background-color 240ms ease, color 240ms ease;
  }
  .site-header.is-solid { --header-ink: var(--ink); --header-blend: normal; background: var(--header-bg); backdrop-filter: blur(18px); }
  .site-header.is-solid .button--inverse { color: var(--ink); border-color: var(--ink); }
  .site-header.is-solid .button--inverse:hover,
  .site-header.is-solid .button--inverse:focus-visible { background: var(--ink); color: var(--paper); }
  .header-inner { width: 100%; padding-inline: var(--gutter); display: grid; grid-template-columns: 150px 1fr auto; align-items: center; gap: 24px; }
  .brand { display: inline-flex; align-items: center; width: max-content; font-size: 1.45rem; font-weight: 650; line-height: 1; letter-spacing: .18em; }
  .brand--logo {
    width: 56px;
    height: 56px;
    padding: 4px;
    justify-content: center;
    border: 1px solid rgb(239 230 213 / 18%);
    border-radius: 50%;
    background: rgb(7 7 7 / 88%);
    box-shadow: 0 8px 28px rgb(0 0 0 / 18%);
  }
  .brand-logo { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 2px 10px rgb(0 0 0 / 28%)); }
  .desktop-nav { display: flex; justify-content: center; align-items: center; gap: clamp(18px, 2.4vw, 42px); }
  .nav-link { position: relative; padding: 10px 0; letter-spacing: .08em; }
  .nav-link::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 5px; height: 1px; background: currentColor; transition: right 240ms ease; }
  .nav-link:hover::after, .nav-link[aria-current="page"]::after, .nav-link:focus-visible::after { right: 0; }
  .header-actions { display: flex; align-items: center; gap: 10px; }
  .language-switch { display: inline-flex; align-items: center; gap: 2px; }
  .language-switch a {
    display: inline-grid; min-width: 44px; min-height: 44px; place-items: center;
    border: 1px solid transparent; font-size: .64rem; font-weight: 600; letter-spacing: .12em;
  }
  .language-switch a:hover, .language-switch a:focus-visible { border-color: currentColor; }
  .language-switch a[aria-current="page"] { background: var(--ink); border-color: var(--ink); color: var(--paper); }
  .site-header:not(.is-solid) .language-switch a[aria-current="page"] { background: #f3f1ec; border-color: #f3f1ec; color: #080807; }
  .menu-language { margin-top: 24px; }
  .menu-language a { min-width: 72px; border-color: var(--line); }
  .theme-toggle, .menu-button, .dialog-close {
    display: inline-grid; place-items: center; width: 46px; height: 46px; border: 1px solid currentColor; border-radius: 999px; cursor: pointer;
  }
  .theme-toggle svg, .menu-button svg, .dialog-close svg { width: 18px; height: 18px; }
  .button {
    position: relative; display: inline-flex; min-height: 50px; align-items: center; justify-content: center;
    gap: 8px; border: 1px solid currentColor; padding: 0 20px; letter-spacing: .1em; overflow: hidden;
    transition: color 220ms ease, background-color 220ms ease, border-color 220ms ease;
  }
  .button:hover, .button:focus-visible { background: var(--ink); border-color: var(--ink); color: var(--paper); }
  .button--inverse { color: #f3f1ec; border-color: rgb(243 241 236 / 65%); }
  .button--inverse:hover, .button--inverse:focus-visible { background: #f3f1ec; border-color: #f3f1ec; color: #080807; }
  .menu-button { display: none; }
  .menu-dialog {
    width: 100%; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0;
    background: var(--paper); color: var(--ink);
  }
  .menu-dialog::backdrop { background: rgb(0 0 0 / 55%); }
  .menu-panel { min-height: 100%; display: grid; grid-template-rows: auto 1fr auto; padding: 20px var(--gutter) max(24px, env(safe-area-inset-bottom)); }
  .menu-top { display: flex; align-items: center; justify-content: space-between; }
  .menu-links { display: grid; align-content: center; gap: 4px; }
  .menu-links a { width: max-content; font-size: clamp(2.5rem, 10vw, 6rem); line-height: .98; letter-spacing: -.06em; }
  .menu-links a:hover, .menu-links a:focus-visible { font-family: var(--serif); font-style: italic; }
  .menu-foot { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 20px; border-top: 1px solid var(--line); padding-top: 20px; }

  .logo-intro {
    display: none; position: fixed; z-index: 120; inset: 0; place-items: center; overflow: hidden;
    background: #070707; color: #f3f1ec; opacity: 1; transition: opacity 240ms var(--ease-out);
  }
  html.js:not(.intro-seen) .logo-intro { display: grid; }
  .logo-intro[data-leaving="true"] { opacity: 0; pointer-events: none; }
  .logo-intro[data-skip="true"] { transition-duration: 180ms; }
  .intro-lockup { position: relative; width: min(78vw, 610px); aspect-ratio: 902 / 890; isolation: isolate; }
  .intro-layer { position: absolute; inset: 0; overflow: hidden; }
  .intro-layer img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: contain; }
  .intro-mark { opacity: 0; transform: scale(.94); transform-origin: 50% 39%; }
  .intro-word-letter {
    position: absolute; top: 78.55%; height: 9.67%; overflow: hidden;
    opacity: 0; transform: translateY(35%);
  }
  .intro-word-letter img { position: absolute; top: -812.8%; width: calc(100% / var(--letter-width)); height: auto; max-width: none; }
  .intro-word-letter--1 { --letter-width: .097; left: 3.1%; width: 9.7%; }
  .intro-word-letter--1 img { left: calc(-3.1% / var(--letter-width)); }
  .intro-word-letter--2 { --letter-width: .082; left: 16.5%; width: 8.2%; }
  .intro-word-letter--2 img { left: calc(-16.5% / var(--letter-width)); }
  .intro-word-letter--3 { --letter-width: .09; left: 28.3%; width: 9%; }
  .intro-word-letter--3 img { left: calc(-28.3% / var(--letter-width)); }
  .intro-word-letter--4 { --letter-width: .097; left: 46.3%; width: 9.7%; }
  .intro-word-letter--4 img { left: calc(-46.3% / var(--letter-width)); }
  .intro-word-letter--5 { --letter-width: .066; left: 60.5%; width: 6.6%; }
  .intro-word-letter--5 img { left: calc(-60.5% / var(--letter-width)); }
  .intro-word-letter--6 { --letter-width: .081; left: 71.4%; width: 8.1%; }
  .intro-word-letter--6 img { left: calc(-71.4% / var(--letter-width)); }
  .intro-word-letter--7 { --letter-width: .02; left: 83.2%; width: 2%; }
  .intro-word-letter--7 img { left: calc(-83.2% / var(--letter-width)); }
  .intro-word-letter--8 { --letter-width: .09; left: 88.9%; width: 9%; }
  .intro-word-letter--8 img { left: calc(-88.9% / var(--letter-width)); }
  .intro-tagline { opacity: 0; transform: translateY(18%); }
  .intro-skip {
    position: absolute; right: var(--gutter); bottom: max(24px, env(safe-area-inset-bottom)); min-width: 44px;
    min-height: 44px; padding-inline: 4px; color: #f3f1ec; cursor: pointer;
  }

  .hero-split { position: relative; min-height: 100svh; display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; background: #070707; color: #f4f2ed; }
  .world-panel { position: relative; min-width: 0; overflow: hidden; isolation: isolate; }
  .world-panel::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgb(0 0 0 / 20%), rgb(0 0 0 / 5%) 45%, rgb(0 0 0 / 64%)); }
  .world-media { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.82) contrast(1.04); transition: transform 900ms var(--ease), filter 500ms ease; }
  .world-panel:hover .world-media, .world-panel:focus-visible .world-media { transform: scale(1.025); filter: saturate(1) contrast(1.03); }
  .world-link { position: absolute; inset: 0; z-index: 2; display: flex; align-items: end; padding: 0 var(--gutter) clamp(58px, 8vh, 104px); }
  .world-link:focus-visible { outline-offset: -8px; }
  .world-title { font-size: clamp(2.5rem, 6vw, 8.5rem); font-weight: 300; line-height: .86; letter-spacing: -.075em; text-transform: uppercase; }
  .world-meta { position: absolute; top: 110px; left: var(--gutter); color: rgb(244 242 237 / 78%); }
  .split-statement { position: absolute; z-index: 3; left: 50%; top: 50%; translate: -50% -50%; width: min-content; pointer-events: none; text-align: center; text-shadow: 0 2px 26px rgb(0 0 0 / 45%); }
  .split-statement span { display: block; font-family: var(--serif); font-size: clamp(1.2rem, 2.3vw, 2.6rem); line-height: 1.05; letter-spacing: .02em; white-space: nowrap; }
  .split-line { position: absolute; z-index: 4; left: 50%; top: 0; width: 1px; height: 100%; background: rgb(244 242 237 / 30%); pointer-events: none; }
  .scroll-cue { position: absolute; z-index: 5; left: 50%; bottom: 26px; display: grid; justify-items: center; gap: 8px; translate: -50% 0; color: rgb(244 242 237 / 85%); }
  .scroll-cue::after { content: ""; width: 1px; height: 38px; background: currentColor; }
  .prototype-asset { position: absolute; z-index: 4; right: 14px; bottom: 12px; max-width: 240px; padding: 7px 9px; background: rgb(7 7 7 / 72%); color: rgb(244 242 237 / 76%); letter-spacing: .09em; backdrop-filter: blur(7px); }
  .hero-split .prototype-asset { right: auto; left: var(--gutter); bottom: 18px; }

  .manifesto { min-height: 88svh; display: grid; align-items: center; }
  .manifesto-grid { display: grid; grid-template-columns: 1.6fr .4fr; gap: var(--gutter); align-items: end; }
  .manifesto .display { max-width: 10ch; }
  .manifesto-copy { padding-bottom: 1.1vw; }

  .project-stream { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(100px, 16vw, 260px); }
  .project { min-width: 0; position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(10px, 1.5vw, 24px); align-items: start; }
  .project-media { position: relative; overflow: hidden; background: var(--surface); }
  .project-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 720ms var(--ease); }
  .project-media:hover img, .project-media:focus-within img { transform: scale(1.022); }
  .project-media::after { content: attr(data-cursor); position: absolute; top: 50%; left: 50%; translate: -50% -50%; opacity: 0; padding: 14px 18px; background: rgb(7 7 7 / 78%); color: #f3f1ec; font-size: .68rem; letter-spacing: .14em; transition: opacity 220ms ease; pointer-events: none; }
  .project-media:hover::after, .project-media:focus-within::after { opacity: 1; }
  .project-media a { position: absolute; z-index: 3; inset: 0; }
  .project-media a:focus-visible { outline-offset: -8px; }
  .project-copy { display: grid; gap: 12px; }
  .project-title { min-width: 0; font-size: clamp(2rem, 4.8vw, 6rem); font-weight: 400; line-height: .92; letter-spacing: -.06em; hyphens: auto; overflow-wrap: anywhere; }
  .project-title a:hover, .project-title a:focus-visible { font-family: var(--serif); font-style: italic; }
  .project--wide .project-media { grid-column: 1 / 10; aspect-ratio: 16 / 9; }
  .project--wide .project-copy { grid-column: 10 / 13; padding-top: 4px; }
  .project--portrait .project-copy { grid-column: 1 / 5; align-self: end; padding-bottom: 8%; }
  .project--portrait .project-media { grid-column: 6 / 12; aspect-ratio: 4 / 5; }
  .project--offset .project-media { grid-column: 4 / 13; aspect-ratio: 3 / 2; }
  .project--offset .project-copy { grid-column: 1 / 4; grid-row: 1; padding-top: 14%; }
  .project--cinema .project-media { grid-column: 1 / 13; aspect-ratio: 2.25 / 1; }
  .project--cinema .project-copy { grid-column: 2 / 9; margin-top: 4px; }
  .project--landscape .project-media { grid-column: 2 / 10; aspect-ratio: 3 / 2; }
  .project--landscape .project-copy { grid-column: 10 / 13; align-self: end; padding-bottom: 4%; }

  .showreel { position: relative; min-height: 94svh; overflow: hidden; background: #080808; color: #f3f1ec; }
  .showreel[data-scroll-expand] { clip-path: inset(8%); }
  .showreel-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.6) saturate(.72); }
  .showreel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(0 0 0 / 62%), transparent 55%, rgb(0 0 0 / 18%)); }
  .showreel-content { position: relative; z-index: 2; min-height: 94svh; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 24px; padding: var(--gutter); }
  .showreel-title { max-width: 7ch; font-size: clamp(4rem, 10vw, 11rem); font-weight: 300; line-height: .82; letter-spacing: -.075em; }
  .play-button { display: grid; place-items: center; width: clamp(100px, 13vw, 190px); aspect-ratio: 1; border: 1px solid rgb(243 241 236 / 75%); border-radius: 50%; color: #f3f1ec; cursor: pointer; transition: background 240ms ease, color 240ms ease, transform 280ms var(--ease); }
  .play-button:hover, .play-button:focus-visible { background: #f3f1ec; color: #080807; transform: scale(1.035); }
  .play-button svg { width: 28%; margin-left: 5%; }
  .video-dialog { width: min(92vw, 1420px); padding: 0; border: 0; background: #050505; color: #f3f1ec; box-shadow: var(--shadow); }
  .video-dialog::backdrop { background: rgb(0 0 0 / 90%); }
  .video-dialog video { width: 100%; max-height: 82svh; background: #000; }
  .video-dialog .dialog-close { position: absolute; z-index: 2; top: 16px; right: 16px; background: rgb(0 0 0 / 60%); }
  .video-caption { padding: 14px 18px; color: #aaa; }

  .world-diptych { min-height: 100svh; display: grid; grid-template-columns: 1fr 1fr; background: #080808; color: #f3f1ec; }
  .diptych-panel { position: relative; min-height: 100svh; overflow: hidden; display: grid; align-items: end; padding: var(--gutter); isolation: isolate; }
  .diptych-panel::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg, rgb(0 0 0 / 76%), transparent 65%); }
  .diptych-panel img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.8); transition: transform 850ms var(--ease); }
  .diptych-panel:hover img { transform: scale(1.025); }
  .diptych-title { margin-block: 10px 26px; font-size: clamp(3rem, 6vw, 8rem); font-weight: 300; line-height: .86; letter-spacing: -.07em; }

  .service-index { border-top: 1px solid var(--line); }
  .service-row { display: grid; grid-template-columns: 80px minmax(0, 1fr) minmax(240px, .7fr); gap: 24px; align-items: center; min-height: 112px; border-bottom: 1px solid var(--line); transition: background 220ms ease; }
  .service-row:hover { background: color-mix(in srgb, var(--ink) 4%, transparent); }
  .service-name { min-width: 0; font-size: clamp(1.8rem, 4.2vw, 5rem); font-weight: 400; line-height: .95; letter-spacing: -.055em; hyphens: auto; overflow-wrap: anywhere; }
  .service-copy { color: var(--ink-soft); }
  .process { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); }
  .process-step { min-height: 280px; padding: 18px 18px 28px 0; border-right: 1px solid var(--line); display: flex; flex-direction: column; justify-content: space-between; }
  .process-step:last-child { border-right: 0; padding-right: 0; }
  .process-step h3 { max-width: 7ch; font-size: clamp(1.2rem, 2.3vw, 2.4rem); font-weight: 400; line-height: 1; letter-spacing: -.04em; }

  .contact-sheet { display: grid; grid-template-columns: 1.1fr .55fr .75fr; grid-template-rows: 56vh 34vh; gap: 12px; }
  .contact-frame { position: relative; overflow: hidden; background: var(--surface); }
  .contact-frame:nth-child(1) { grid-row: 1 / 3; }
  .contact-frame:nth-child(2) { grid-column: 2 / 4; }
  .contact-frame img { width: 100%; height: 100%; object-fit: cover; transition: transform 720ms var(--ease); }
  .contact-frame:hover img { transform: scale(1.022); }

  .social-rail { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }
  .social-link { min-height: 280px; display: flex; flex-direction: column; justify-content: space-between; padding: 28px var(--gutter) 34px 0; border-right: 1px solid var(--line); }
  .social-link:last-child { padding-left: var(--gutter); border-right: 0; }
  .social-link strong { font-size: clamp(2.1rem, 5vw, 5.8rem); font-weight: 400; line-height: .9; letter-spacing: -.065em; }
  .social-link:hover strong, .social-link:focus-visible strong { font-family: var(--serif); font-style: italic; }

  .closing-cta { min-height: 88svh; display: grid; align-items: center; }
  .closing-actions { margin-top: clamp(42px, 6vw, 82px); display: flex; flex-wrap: wrap; gap: 12px; }
  .closing-cta .section-title { max-width: 11ch; font-size: clamp(4rem, 10vw, 11rem); }

  .site-footer { padding: 42px var(--gutter) 28px; border-top: 1px solid var(--line); }
  .footer-grid { display: grid; grid-template-columns: 1.2fr repeat(3, .6fr); gap: var(--gutter); }
  .footer-brand { font-size: clamp(2.2rem, 5vw, 6rem); font-weight: 450; line-height: .86; letter-spacing: -.065em; }
  .footer-list { display: grid; align-content: start; gap: 9px; }
  .footer-list a:hover, .footer-list a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
  .footer-bottom { margin-top: 68px; padding-top: 18px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; color: var(--ink-soft); }

  .page-hero { position: relative; min-height: 92svh; display: grid; align-items: end; overflow: hidden; background: #080808; color: #f3f1ec; isolation: isolate; }
  .page-hero::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgb(0 0 0 / 16%), rgb(0 0 0 / 76%)); }
  .page-hero img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .page-hero-content { padding: 160px var(--gutter) clamp(54px, 8vw, 112px); }
  .page-hero h1 { max-width: 12ch; }
  .page-hero .lede { margin-top: 28px; color: rgb(243 241 236 / 78%); }
  .page-hero--wedding h1 { font-family: var(--serif); max-width: 9ch; }

  .filter-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: clamp(56px, 9vw, 120px); }
  .filter-button { min-height: 46px; border: 1px solid var(--line); padding: 0 15px; cursor: pointer; }
  .filter-button[aria-pressed="true"], .filter-button:hover, .filter-button:focus-visible { background: var(--ink); color: var(--paper); border-color: var(--ink); }
  .results-status { min-height: 1.3em; margin-bottom: 18px; color: var(--ink-soft); }

  .story-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(12px, 2vw, 30px); row-gap: clamp(80px, 12vw, 180px); }
  .story { grid-column: span 6; }
  .story:nth-child(2) { grid-column: 8 / 13; margin-top: 16vw; }
  .story:nth-child(3) { grid-column: 2 / 9; }
  .story-media { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--surface); }
  .story:nth-child(3) .story-media { aspect-ratio: 3 / 2; }
  .story-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease); }
  .story:hover img { transform: scale(1.02); }
  .story-info { margin-top: 18px; display: flex; align-items: start; justify-content: space-between; gap: 16px; }
  .story-title { font-family: var(--serif); font-size: clamp(2rem, 4vw, 5rem); font-weight: 400; line-height: .92; letter-spacing: -.055em; }

  .detail-hero { padding: 180px var(--gutter) 72px; }
  .detail-head { display: grid; grid-template-columns: 1fr 2fr; gap: var(--gutter); align-items: end; }
  .detail-head h1 { font-size: clamp(4rem, 11vw, 12rem); font-weight: 350; line-height: .8; letter-spacing: -.08em; }
  .detail-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; border-top: 1px solid var(--line); padding-top: 16px; }
  .detail-media { position: relative; width: 100%; min-height: 62vw; max-height: 94svh; background: var(--surface); overflow: hidden; }
  .detail-media img { width: 100%; height: 100%; object-fit: cover; }
  .detail-copy { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gutter); }
  .gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .gallery figure { position: relative; min-height: 52vw; background: var(--surface); overflow: hidden; }
  .gallery figure:nth-child(3n) { grid-column: 1 / 3; min-height: 55vw; }
  .gallery img { width: 100%; height: 100%; object-fit: cover; }

  .inquiry-layout { min-height: 100svh; display: grid; grid-template-columns: minmax(280px, .72fr) 1.28fr; }
  .inquiry-aside { position: sticky; top: 0; height: 100svh; padding: 150px var(--gutter) 42px; display: flex; flex-direction: column; justify-content: space-between; background: #0a0909; color: #f3f1ec; }
  .inquiry-aside :is(h1, h2) { font-family: var(--serif); max-width: 8ch; font-size: clamp(3.4rem, 6vw, 7.7rem); font-weight: 400; line-height: .88; letter-spacing: -.065em; }
  .inquiry-main { padding: 150px max(var(--gutter), 7vw) 70px; }
  .wizard-progress { display: grid; grid-template-columns: auto 1fr; gap: 20px; align-items: center; margin-bottom: clamp(48px, 8vw, 100px); }
  .progress-track { height: 1px; background: var(--line); }
  .progress-fill { display: block; width: 25%; height: 1px; background: var(--ink); transition: width 420ms var(--ease); }
  .inquiry-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
  .inquiry-form legend { margin-bottom: 44px; font-family: var(--serif); font-size: clamp(2.8rem, 6vw, 6.5rem); line-height: .92; letter-spacing: -.055em; }
  .choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .choice { position: relative; }
  .choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
  .choice label { min-height: 118px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border: 1px solid var(--line); padding: 22px; cursor: pointer; font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; }
  .choice label::after { content: ""; width: 10px; height: 10px; border-top: 1px solid; border-right: 1px solid; rotate: 45deg; }
  .choice input:checked + label { background: var(--ink); color: var(--paper); border-color: var(--ink); }
  .choice input:focus-visible + label { outline: 2px solid var(--focus); outline-offset: 4px; }
  .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 18px; }
  .field { display: grid; gap: 10px; }
  .field--full { grid-column: 1 / -1; }
  .field input, .field select, .field textarea { width: 100%; min-height: 52px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 10px 0; background: transparent; outline: 0; }
  .field textarea { min-height: 150px; resize: vertical; }
  .field input:focus, .field select:focus, .field textarea:focus { border-bottom-color: var(--focus); box-shadow: 0 1px 0 var(--focus); }
  .field [aria-invalid="true"] { border-bottom-color: #c43d30; }
  .field-error { min-height: 1.2em; color: #c43d30; font-size: .82rem; }
  .wizard-actions { margin-top: 48px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .wizard-ready [data-step][hidden] { display: none; }
  .error-summary { margin-bottom: 28px; border: 1px solid #c43d30; padding: 16px; color: #c43d30; }
  .demo-success { border-top: 1px solid var(--line); padding-top: 34px; }
  .demo-success h2 { margin-bottom: 20px; font-family: var(--serif); font-size: clamp(2.8rem, 5vw, 5rem); font-weight: 400; line-height: .95; }
  .summary-output { margin-block: 24px; padding: 20px; background: var(--surface); white-space: pre-wrap; font-family: var(--sans); color: var(--ink-soft); }
  .form-consent { grid-column: 1 / -1; display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; margin-top: 8px; }
  .form-consent input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--ink); }
  .form-consent a { text-decoration: underline; text-underline-offset: 3px; }
  .privacy-check { display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; }
  .privacy-check input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--ink); }
  .privacy-check a { text-decoration: underline; text-underline-offset: 3px; }
  .honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
  [data-submit-status] { min-height: 1.5em; margin-top: 20px; color: var(--accent); }
  .js-only { display: none; }
  html.js .js-only { display: inline-flex; }

  .legal-hero { padding: 190px var(--gutter) 70px; }
  .legal-hero h1 { font-size: clamp(4rem, 10vw, 10rem); font-weight: 350; line-height: .82; letter-spacing: -.075em; }
  .legal-content { width: min(900px, 100% - 2 * var(--gutter)); margin-inline: auto; padding-bottom: var(--section); }
  .legal-note { margin-bottom: 54px; border: 1px solid var(--accent); padding: 18px; color: var(--accent); line-height: 1.5; }
  .legal-content h2 { margin: 52px 0 14px; font-size: clamp(1.8rem, 3vw, 3rem); font-weight: 400; letter-spacing: -.04em; }
  .legal-content p, .legal-content li { color: var(--ink-soft); line-height: 1.75; }
  .legal-content a { text-decoration: underline; text-underline-offset: 4px; }

  .concept-switcher { position: fixed; z-index: 20; right: var(--gutter); bottom: 24px; display: flex; gap: 8px; padding: 8px; background: rgb(7 7 7 / 75%); color: #f3f1ec; backdrop-filter: blur(16px); }
  .concept-switcher a { padding: 9px 12px; border: 1px solid rgb(243 241 236 / 34%); }

  .pointer-orb { position: fixed; z-index: 200; left: 0; top: 0; width: 64px; height: 64px; display: grid; place-items: center; border: 1px solid rgb(243 241 236 / 65%); border-radius: 50%; background: rgb(7 7 7 / 50%); color: #f3f1ec; opacity: 0; pointer-events: none; translate: -50% -50%; transition: opacity 160ms ease, width 220ms ease, height 220ms ease; backdrop-filter: blur(8px); }
  .pointer-orb.is-active { opacity: 1; }
  .pointer-orb span { font-size: .58rem; letter-spacing: .14em; }
}

@layer motion {
  html.reveal-ready [data-reveal] { opacity: 0; transform: translateY(26px); }
  html.reveal-ready [data-reveal].is-visible { opacity: 1; transform: none; transition: opacity 680ms var(--ease), transform 680ms var(--ease); }
  html[data-world="weddings"].reveal-ready [data-reveal].is-visible { transition-duration: 880ms; }
  .logo-intro[data-active="true"] .intro-mark { animation: intro-mark 700ms var(--ease-out) both; }
  .logo-intro[data-active="true"] .intro-word-letter { animation: intro-letter 420ms var(--ease-out) both; }
  .logo-intro[data-active="true"] .intro-word-letter--1 { animation-delay: 420ms; }
  .logo-intro[data-active="true"] .intro-word-letter--2 { animation-delay: 470ms; }
  .logo-intro[data-active="true"] .intro-word-letter--3 { animation-delay: 520ms; }
  .logo-intro[data-active="true"] .intro-word-letter--4 { animation-delay: 570ms; }
  .logo-intro[data-active="true"] .intro-word-letter--5 { animation-delay: 620ms; }
  .logo-intro[data-active="true"] .intro-word-letter--6 { animation-delay: 670ms; }
  .logo-intro[data-active="true"] .intro-word-letter--7 { animation-delay: 720ms; }
  .logo-intro[data-active="true"] .intro-word-letter--8 { animation-delay: 770ms; }
  .logo-intro[data-active="true"] .intro-tagline { animation: intro-tagline 400ms 1020ms var(--ease-out) both; }
  @keyframes intro-mark { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: scale(1); } }
  @keyframes intro-letter { from { opacity: 0; transform: translateY(35%); } to { opacity: 1; transform: translateY(0); } }
  @keyframes intro-tagline { from { opacity: 0; transform: translateY(18%); } to { opacity: 1; transform: translateY(0); } }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
    html.reveal-ready [data-reveal] { opacity: 1; transform: none; }
    .pointer-orb { display: none; }
  }
}

@layer responsive {
  @media (max-width: 1100px) {
    .desktop-nav, .header-actions .button, .language-switch--header { display: none; }
    .header-inner { grid-template-columns: 1fr auto; }
    .menu-button { display: inline-grid; }
    .service-row { grid-template-columns: 50px 1fr; padding-block: 20px; }
    .service-copy { grid-column: 2; }
    .process { grid-template-columns: repeat(3, 1fr); }
    .process-step:nth-child(3) { border-right: 0; }
    .process-step:nth-child(n+4) { border-top: 1px solid var(--line); }
    .inquiry-layout { grid-template-columns: .62fr 1.38fr; }
  }

  @media (max-width: 760px) {
    :root { --section: clamp(76px, 24vw, 132px); }
    .site-header { height: 72px; }
    .brand--logo { width: 48px; height: 48px; }
    .global-cut-track { display: none; }
    .theme-toggle, .menu-button, .dialog-close { width: 44px; height: 44px; }
    .header-actions { gap: 6px; }
    .section-head { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .section-no { font-size: 2.2rem; }
    .two-col, .manifesto-grid { grid-template-columns: 1fr; }
    .hero-split { min-height: 100svh; grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; }
    .world-link { align-items: center; padding: 50px var(--gutter) 22px; }
    .world-panel:first-child .world-link { align-items: end; padding-bottom: 22px; }
    .world-panel:last-child .world-link { align-items: start; padding-top: 22px; }
    .world-title { font-size: clamp(2.65rem, 13vw, 5rem); }
    .world-meta { display: none; }
    .split-statement { top: 50%; }
    .split-statement span { font-size: .82rem; letter-spacing: .08em; }
    .split-line { top: 50%; left: 0; width: 100%; height: 1px; }
    .scroll-cue { display: none; }
    .hero-split .prototype-asset { bottom: 8px; left: var(--gutter); max-width: 190px; font-size: .55rem; }
    .intro-lockup { width: min(96vw, 560px); }
    .manifesto { min-height: 78svh; }
    .manifesto-copy { max-width: 80%; margin-left: auto; }
    .project-stream { gap: 110px; }
    .project { display: block; }
    .project-media { aspect-ratio: 4 / 5 !important; }
    .project--cinema .project-media, .project--wide .project-media { aspect-ratio: 16 / 11 !important; }
    .project-copy { margin-top: 16px !important; padding: 0 !important; }
    .project-title { font-size: clamp(1.8rem, 9vw, 4.2rem); }
    .project-media::after { display: none; }
    .showreel, .showreel-content { min-height: 82svh; }
    .showreel[data-scroll-expand] { clip-path: none !important; }
    .showreel-content { grid-template-columns: 1fr; align-content: end; }
    .showreel-title { font-size: clamp(3.8rem, 17vw, 7rem); }
    .play-button { width: 96px; }
    .world-diptych { display: block; }
    .diptych-panel { min-height: 74svh; }
    .service-row { grid-template-columns: 38px 1fr; }
    .service-name { font-size: clamp(1.9rem, 9vw, 3.5rem); }
    .service-copy { font-size: .92rem; }
    .process { grid-template-columns: 1fr; }
    .process-step { min-height: 150px; border-right: 0; border-bottom: 1px solid var(--line); padding: 18px 0; }
    .process-step:nth-child(n) { border-top: 0; }
    .contact-sheet { grid-template-columns: 1fr 1fr; grid-template-rows: 58vh 36vh 42vh; }
    .contact-frame:nth-child(1) { grid-column: 1 / 3; grid-row: auto; }
    .contact-frame:nth-child(2) { grid-column: auto; }
    .contact-frame:nth-child(4) { grid-column: 1 / 3; }
    .social-rail { grid-template-columns: 1fr; }
    .social-link { min-height: 210px; border-right: 0; border-bottom: 1px solid var(--line); padding-inline: 0; }
    .social-link:last-child { padding-left: 0; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .footer-brand { grid-column: 1 / 3; margin-bottom: 28px; }
    .page-hero { min-height: 86svh; }
    .page-hero-content { padding-top: 130px; }
    .story-grid { display: block; }
    .story { margin: 0 0 90px !important; }
    .story-media, .story:nth-child(3) .story-media { aspect-ratio: 4 / 5; }
    .detail-hero { padding-top: 140px; }
    .detail-head, .detail-copy { grid-template-columns: 1fr; }
    .detail-meta { margin-top: 28px; }
    .detail-media { min-height: 78svh; }
    .gallery { grid-template-columns: 1fr; }
    .gallery figure, .gallery figure:nth-child(3n) { grid-column: auto; min-height: 125vw; }
    .inquiry-layout { display: block; }
    .inquiry-aside { position: relative; height: auto; min-height: 58svh; padding-top: 130px; }
    .inquiry-main { padding-top: 80px; }
    .choice-grid, .form-grid { grid-template-columns: 1fr; }
    .field--full { grid-column: auto; }
    .choice label { min-height: 88px; }
    .concept-switcher { left: var(--gutter); right: var(--gutter); justify-content: center; }
  }

  @media (max-width: 390px) {
    .brand { font-size: 1.2rem; }
    .display { font-size: clamp(3rem, 18vw, 4.8rem); }
    .display-serif { font-size: clamp(3rem, 17vw, 4.6rem); }
    .section-title { font-size: clamp(2.55rem, 13vw, 4.4rem); }
    .world-title { font-size: clamp(2.2rem, 12vw, 3.5rem); }
    .manifesto-copy { max-width: 100%; }
    .footer-grid { grid-template-columns: 1fr; }
    .footer-brand { grid-column: auto; }
    .detail-meta { grid-template-columns: 1fr; }
    .filter-bar { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 8px; margin-right: calc(-1 * var(--gutter)); scrollbar-width: thin; }
    .filter-button { flex: 0 0 auto; }
    .wizard-actions { align-items: stretch; flex-direction: column-reverse; }
    .wizard-actions .button { width: 100%; }
  }

  @media (hover: none), (pointer: coarse) { .pointer-orb { display: none; } }
}

/* Client edition: the same two worlds, now grounded in original work. */
@layer client {
  :root { --section: clamp(82px, 10vw, 156px); }
  .client-heading {font-size:clamp(2.5rem,5.7vw,6.4rem);font-weight:400;letter-spacing:-.055em;line-height:1.02;hyphens:auto;overflow-wrap:break-word;}
  .client-heading>span,.client-manifesto-title>span,.client-hero h1>span,.client-text-hero h1>span {display:block;}
  .client-section-head {display:grid;grid-template-columns:minmax(60px,.25fr) minmax(0,1fr);gap:28px;margin-bottom:64px;}
  .client-section-head>.micro {padding-top:12px;}
  .client-section-head .body-copy {margin-top:26px;max-width:55ch;}
  .client-section-end {display:flex;gap:16px;flex-wrap:wrap;margin-top:56px;}
  .client-home-references {scroll-margin-top:86px;padding-top:clamp(48px,6vw,90px);}
  .client-home-references .client-section-head {margin-bottom:28px;}
  .client-reference-navigation {display:flex;flex-wrap:wrap;gap:12px;margin-bottom:38px;}
  .client-reference-preview {display:grid;grid-template-columns:minmax(0,2.05fr) minmax(0,1fr);gap:16px;}
  .client-reference-frame {display:block;position:relative;overflow:hidden;background:var(--surface);aspect-ratio:3/2;}
  .client-reference-frame:first-child {grid-row:span 2;aspect-ratio:auto;}
  .client-reference-frame img {width:100%;height:100%;object-fit:cover;transition:transform 700ms var(--ease);}
  .client-reference-frame:hover img {transform:scale(1.02);}
  .client-reference-frame-number {position:absolute;z-index:1;left:16px;top:16px;background:rgb(0 0 0 / 65%);color:white;padding:7px 10px;}
  .client-reference-caption {display:grid;grid-template-columns:1fr 1fr;gap:6vw;padding-top:30px;}
  .client-reference-caption h3 {font-size:clamp(2rem,4.1vw,4.6rem);font-weight:400;line-height:1.03;letter-spacing:-.045em;margin:16px 0;}
  .client-reference-caption .serif {font-size:clamp(1.5rem,2.5vw,2.7rem);line-height:1.2;}
  .client-reference-caption .button {margin-top:26px;}
  .client-reference-selections {margin-top:80px;padding-top:50px;border-top:1px solid var(--line);}
  .client-split {height:100svh;min-height:700px;}
  .client-split .world-panel>img {position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center 38%;transition:transform 1.3s var(--ease);}
  .client-split .world-panel[data-world-panel="media"]>img {object-position:center 30%;}
  .client-split .world-panel:hover>img {transform:scale(1.025);}
  .client-split .world-panel::after {background:linear-gradient(180deg,rgb(0 0 0 / 42%),transparent 35%,rgb(0 0 0 / 68%));}
  .client-split .world-link {display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding-bottom:42px;gap:16px;}
  .client-split .world-title {font-size:clamp(2.7rem,5.7vw,6.7rem);letter-spacing:-.065em;}
  .client-world-explore {font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;}
  .client-home-title {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;}
  .client-split .world-kicker {position:absolute;z-index:1;left:var(--gutter);top:120px;max-width:90%;line-height:1.6;}
  .client-manifesto {display:grid;grid-template-columns:1fr 1fr;gap:44px;}
  .client-manifesto>.micro,.client-manifesto-title {grid-column:1/-1;}
  .client-manifesto-title {font-size:clamp(3.5rem,8.6vw,9.7rem);font-weight:400;letter-spacing:-.07em;line-height:.98;}
  .client-manifesto>.lede {grid-column:2;max-width:34ch;}
  .client-world-descriptions {grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8vw;margin-top:52px;}
  .client-world-descriptions article {padding-top:30px;border-top:1px solid var(--line);}
  .client-world-descriptions h3 {font-size:clamp(1.7rem,2.9vw,3rem);line-height:1.12;font-weight:400;letter-spacing:-.04em;margin:22px 0;}
  .client-world-descriptions .button {margin-top:30px;}
  .client-project-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:70px 32px;align-items:start;}
  .client-project-grid>.client-project:first-child {grid-column:1/-1;}
  .client-project-image {display:block;overflow:hidden;aspect-ratio:4/3;background:var(--surface);}
  .client-project-image img {width:100%;height:100%;object-fit:cover;transition:transform 900ms var(--ease);}
  .client-project-image:hover img {transform:scale(1.025);}
  .client-project:first-child .client-project-image {aspect-ratio:1.95;}
  .client-project-grid>.client-project:nth-child(3) {margin-top:130px;}
  .client-project-caption {display:flex;justify-content:space-between;gap:20px;padding-top:22px;}
  .client-project-caption h3 {font-weight:400;font-size:clamp(1.8rem,3.2vw,3.2rem);letter-spacing:-.045em;line-height:1.1;margin:12px 0 10px;}
  .client-project-caption>span {font-size:2rem;}
  .client-project-grid--archive>.client-project:first-child {grid-column:auto;}
  .client-project-grid--archive>.client-project:first-child .client-project-image {aspect-ratio:4/3;}
  .client-project-grid--archive>.client-project:nth-child(3) {margin-top:0;}
  .client-project-grid--archive>.client-project:nth-child(even) {margin-top:110px;}
  .client-service-link {display:grid;grid-template-columns:50px minmax(0,1.2fr) minmax(0,.7fr) 24px;gap:24px;align-items:center;min-height:142px;padding:28px 0;border-top:1px solid var(--line);transition:padding 250ms var(--ease);}
  .client-service-link:last-child,.client-service:last-child {border-bottom:1px solid var(--line);}
  .client-service-link:hover {padding-inline:12px;}
  .client-service-link h3 {font-size:clamp(1.8rem,3.3vw,3.8rem);line-height:1.05;letter-spacing:-.045em;font-weight:400;hyphens:auto;}
  .client-service {scroll-margin-top:110px;border-top:1px solid var(--line);}
  .client-service summary,.client-process summary,.client-faq summary {display:flex;align-items:center;gap:26px;cursor:pointer;list-style:none;min-height:110px;padding:22px 0;}
  summary::-webkit-details-marker {display:none;}
  .client-service summary h3 {flex:1;font-size:clamp(1.7rem,3.4vw,4rem);line-height:1.08;font-weight:400;letter-spacing:-.04em;hyphens:auto;}
  .client-service summary>.micro {min-width:30px;}
  .client-plus {width:26px;height:26px;flex:0 0 26px;position:relative;}
  .client-plus::before,.client-plus::after {content:'';position:absolute;top:12px;left:3px;width:20px;height:1px;background:currentColor;}
  .client-plus::after {transform:rotate(90deg);transition:transform .25s ease;}
  details[open]>summary .client-plus::after {transform:rotate(0deg);}
  .client-service-body {display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:28px 0 56px 56px;}
  .client-service-body ul,.client-wedding-services ul {padding-left:18px;margin:28px 0 32px;}
  .client-service-body li,.client-wedding-services li {padding:6px 0 6px 5px;}
  .client-note {padding-top:25px;border-top:1px solid var(--line);margin-top:28px;font-size:.95rem;}
  .client-logo-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);}
  .client-logo-item {min-width:0;padding:clamp(16px,2.4vw,32px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background-color 220ms ease;}
  .client-brand-link {display:block;}
  .client-brand-link:focus-visible {outline:2px solid var(--ink);outline-offset:8px;}
  .client-logo-item:has(.client-brand-link:hover),.client-logo-item:focus-within {background:var(--surface);}
  .client-logo-art {display:flex;align-items:center;justify-content:center;width:100%;min-width:0;height:clamp(124px,14vw,180px);background:#fff;padding:clamp(16px,2.2vw,28px);margin-bottom:22px;overflow:hidden;}
  .client-logo-art--dark {background:#121212;}
  .client-logo-art--black {background:#000;}
  .client-logo-art img {display:block;min-width:0;min-height:0;width:100%;height:100%;max-width:300px;max-height:124px;object-fit:contain;}
  .client-logo-item h3 {font-size:clamp(.9rem,1.2vw,1.15rem);line-height:1.4;font-weight:500;overflow-wrap:anywhere;}
  .client-brand-destination {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;color:var(--ink-soft);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;}
  .client-brand-destination>span {font-size:1.25rem;line-height:1;transition:transform 220ms ease;}
  .client-brand-link:hover .client-brand-destination>span {transform:translate(2px,-2px);}
  .client-logo-item .client-text-link {font-size:.65rem;margin-top:16px;}
  .client-logo-grid--partners {grid-template-columns:repeat(2,minmax(0,1fr));}
  .client-client-strip .client-logo-grid {grid-template-columns:repeat(3,minmax(0,1fr));}
  .client-text-link {display:inline-flex;gap:8px;align-items:center;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;padding-block:10px;min-height:44px;}
  .client-wedding-invitation {min-height:90svh;position:relative;isolation:isolate;color:#fff;background:#181815;overflow:hidden;display:flex;align-items:flex-end;padding:8vw var(--gutter);}
  .client-wedding-invitation>img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;}
  .client-wedding-invitation::before {content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgb(0 0 0 / 65%),transparent 80%);}
  .client-wedding-invitation .client-heading {margin:20px 0 36px;max-width:16ch;}
  .client-wedding-invitation--quiet {min-height:100svh;}
  .client-team-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;}
  .client-person figure {aspect-ratio:4/5;background:#24282c;overflow:hidden;margin-bottom:24px;}
  .client-person figure img {width:100%;height:100%;object-fit:cover;object-position:center 20%;}
  .client-person h3 {font-size:clamp(1.8rem,3.2vw,3.4rem);font-weight:400;letter-spacing:-.055em;line-height:1.08;margin:14px 0 22px;}
  .client-person>.micro {min-height:2.6em;line-height:1.5;}
  .client-hero {min-height:100svh;position:relative;isolation:isolate;color:#f8f6f0;display:flex;align-items:flex-end;padding:180px var(--gutter) 70px;background:#151716;}
  .client-hero>img {position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;}
  .client-hero>picture {position:absolute;inset:0;z-index:-2;width:100%;height:100%;}
  .client-hero>picture img {width:100%;height:100%;object-fit:cover;object-position:64% center;}
  .client-hero::after {content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgb(0 0 0 / 58%),rgb(0 0 0 / 12%)),linear-gradient(0deg,rgb(0 0 0 / 42%),transparent 75%);}
  .client-hero-copy {width:100%;}
  .client-hero h1 {font-weight:400;font-size:clamp(3rem,7.7vw,8.8rem);line-height:.99;letter-spacing:-.065em;margin:30px 0;max-width:18ch;}
  .client-hero .lede {font-size:clamp(1.12rem,1.8vw,1.6rem);max-width:37ch;margin:0 0 30px;}
  .client-hero--wedding {min-height:105svh;}
  .client-hero--wedding h1 {font-family:var(--serif);font-size:clamp(3rem,6.2vw,7.4rem);letter-spacing:-.05em;line-height:1.01;max-width:22ch;}
  .client-hero--wedding>img {object-position:64% center;}
  .client-hero--wedding::after {background:linear-gradient(90deg,rgb(0 0 0 / 58%),rgb(0 0 0 / 5%) 85%),linear-gradient(0deg,rgb(0 0 0 / 40%),transparent);}
  .client-editorial {display:grid;grid-template-columns:1fr 1fr;gap:70px;}
  .client-editorial .client-section-head {display:block;margin:0;}
  .client-editorial .client-section-head>.micro {display:block;margin-bottom:36px;}
  /* Keep the wedding statement intact: wrap between words, never within them. */
  .client-editorial--wedding .client-heading,.client-wedding-invitation .client-heading {-webkit-hyphens:none;hyphens:none;overflow-wrap:normal;word-break:normal;}
  .client-copy-column {padding-top:56px;}
  .client-copy-column>.body-copy {margin-top:30px;}
  .client-film-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:50px;max-width:960px;margin-inline:auto;}
  .client-film video {aspect-ratio:9/16;width:100%;object-fit:contain;max-height:76svh;background:#080808;}
  .client-film figcaption {padding-top:20px;}
  .client-film h3 {font-size:clamp(1.4rem,2.3vw,2.4rem);font-weight:400;letter-spacing:-.03em;}
  .client-film .body-copy {margin-top:10px;}
  .client-film-grid--single {display:block;max-width:430px;}
  .client-talent {display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:8vw;align-items:center;}
  .client-talent figure {aspect-ratio:4/5;}
  .client-talent figure img {width:100%;height:100%;object-fit:cover;}
  .client-talent h2 {margin:26px 0 36px;}
  .client-talent .button {margin-top:32px;}
  .client-wedding-services {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px;}
  .client-wedding-services article {border-top:1px solid var(--line);padding-top:24px;}
  .client-wedding-services h3 {font-size:clamp(1.8rem,3vw,3.1rem);font-weight:400;letter-spacing:-.045em;line-height:1.05;margin:28px 0 24px;}
  .client-wedding-services .serif {font-size:1.4rem;line-height:1.3;min-height:3em;}
  .client-wedding-services li {font-size:.96rem;color:var(--ink-soft);}
  .client-individual {display:grid;grid-template-columns:1fr 1fr;gap:40px;border-top:1px solid var(--line);padding-top:50px;margin-top:50px;}
  .client-individual h3 {font-weight:400;font-size:clamp(2rem,4vw,4rem);letter-spacing:-.04em;line-height:1.04;}
  /* Matching image heights, with extra width for the landscape photograph.
     height:auto overrides the original HTML height so the CSS ratio can apply. */
  .client-story-grid {display:grid;grid-template-columns:minmax(0,3fr) minmax(0,4fr) minmax(0,3fr);gap:clamp(16px,2vw,30px);align-items:start;}
  .client-story-grid [data-wedding-story="02"] {padding-top:clamp(24px,3.2vw,48px);}
  .client-story-grid img {aspect-ratio:3/4;width:100%;height:auto;object-fit:cover;object-position:50% 32%;}
  .client-story-grid [data-wedding-story="02"] img {aspect-ratio:1;object-position:60% 50%;}
  .client-story-grid [data-wedding-story="03"] img {object-position:50% 78%;}
  .client-story-grid article a>div {padding-top:26px;}
  .client-story-grid h3 {font-weight:400;font-size:clamp(1.9rem,3vw,3.5rem);line-height:1.05;letter-spacing:-.04em;margin:14px 0;}
  .client-film-story {display:grid;grid-template-columns:1fr 1fr;gap:9vw;}
  .client-film-story .client-section-head {display:block;}
  .client-film-story .client-section-head>.micro {display:block;margin-bottom:28px;}
  .client-production-team {margin-top:32px;}
  .client-production-team summary h3 {font-size:clamp(1.4rem,2vw,2rem);}
  .client-production-team>.body-copy {margin-bottom:24px;}
  .client-process-layout,.client-faq {display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:start;}
  .client-process-heading {position:sticky;top:130px;}
  .client-process-layout .client-section-head,.client-faq .client-section-head {display:block;}
  .client-process-layout .client-section-head>.micro,.client-faq .client-section-head>.micro {display:block;margin-bottom:28px;}
  .client-process details,.client-faq details {border-top:1px solid var(--line);}
  .client-process details:last-child,.client-faq details:last-child {border-bottom:1px solid var(--line);}
  .client-process summary,.client-faq summary {min-height:96px;}
  .client-process h3,.client-faq h3 {flex:1;font-weight:400;font-size:1.45rem;line-height:1.18;letter-spacing:-.025em;}
  .client-process details>.body-copy,.client-faq details>.body-copy {padding:0 40px 30px 0;}
  .client-closing {border-top:1px solid var(--line);}
  .client-closing .client-heading {margin:30px 0;max-width:21ch;}
  .client-closing .button {margin-top:34px;}
  .client-text-hero {padding-top:180px;padding-bottom:80px;}
  .client-text-hero>.micro {display:block;margin:26px 0;}
  .client-text-hero h1 {font-size:clamp(3rem,7.7vw,8.6rem);font-weight:400;line-height:1.01;letter-spacing:-.06em;hyphens:auto;overflow-wrap:break-word;}
  .client-text-hero .lede {margin-top:38px;max-width:42ch;}
  .client-detail-cover {height:80svh;min-height:380px;background:var(--surface);}
  .client-detail-cover img {width:100%;height:100%;object-fit:cover;}
  .client-detail-cover--portrait {height:95svh;}
  .client-detail-cover--portrait img {object-fit:contain;}
  .client-detail-intro {display:grid;grid-template-columns:1fr 1fr;gap:30px;}
  .client-gallery {display:grid;grid-template-columns:1fr 1fr;gap:28px;}
  .client-gallery figure {min-width:0;background:var(--surface);}
  .client-gallery img {width:100%;height:100%;max-height:95svh;object-fit:contain;}
  .client-gallery figure:last-child:nth-child(odd) {grid-column:1/-1;}
  .client-case {display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center;padding-block:60px;border-top:1px solid var(--line);}
  .client-case>a {aspect-ratio:4/3;}
  .client-case img {width:100%;height:100%;object-fit:cover;}
  .client-case h2 {font-size:clamp(2rem,4vw,4.6rem);font-weight:400;letter-spacing:-.04em;line-height:1.05;margin:25px 0;}
  .client-case .body-copy,.client-case .button {margin-top:26px;}
  .client-case:nth-child(even)>a {order:2;}
  .footer-brand--original {max-width:230px;align-self:start;}
  .footer-brand--original img {width:100%;height:auto;}
  /* Original transparent logo layers; only their presentation follows the theme. */
  .brand--logo {background:#171613;border-color:#8e7954;box-shadow:0 2px 14px rgb(0 0 0 / 16%);}
  .brand-logo {filter:none;}
  html[data-theme="light"] .brand--logo {background:#f3f1ec;border-color:#b8ac95;box-shadow:0 2px 12px rgb(54 42 18 / 8%);}
  html[data-theme="light"] .brand-logo {filter:brightness(.36) saturate(.72);}
  html[data-theme="light"] .site-header:not(.is-solid) .brand--logo {background:#171613;border-color:#b8a276;}
  html[data-theme="light"] .site-header:not(.is-solid) .brand-logo {filter:none;}
  .footer-brand--original {width:230px;padding:20px;border:1px solid #625942;background:#121210;}
  .brand-lockup {position:relative;display:block;width:100%;aspect-ratio:902/890;}
  .footer-brand--original .brand-lockup img {position:absolute;inset:0;width:100%;height:100%;object-fit:contain;}
  html[data-theme="light"] .footer-brand--original {background:#ede9df;border-color:#c9bfae;}
  html[data-theme="light"] .brand-lockup img {filter:brightness(.36) saturate(.72);}
  html[data-theme="light"] .logo-intro {background:var(--paper);color:var(--ink);}
  html[data-theme="light"] .intro-lockup img {filter:brightness(.36) saturate(.72);}
  .intro-skip {color:inherit;}
  .client-form-hint {margin-bottom:32px;}
  .legal-hero h1 {hyphens:none;overflow-wrap:normal;font-size:clamp(1.75rem,5vw,4.5rem);line-height:1.1;letter-spacing:-.045em;}
  .legal-content {max-width:760px;}
  .legal-content h2 {font-size:clamp(1.3rem,2.5vw,2rem);line-height:1.3;hyphens:none;overflow-wrap:normal;}
  .legal-content p + p {margin-top:1.1em;}
  .legal-content [data-legal-document] > p:last-child {margin-top:2.5rem;}
  .legal-translation-note {padding:24px;border:1px solid var(--line);margin-bottom:42px;}
  .legal-translation-note p {margin-top:12px;}
  body.gallery-open {overflow:hidden;}
  .client-gallery-region .client-gallery {grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
  .client-gallery-region .client-gallery figure {aspect-ratio:4/5;}
  .client-gallery-region .client-gallery figure:last-child {grid-column:auto;}
  .client-gallery-region .client-gallery a {display:block;position:relative;width:100%;height:100%;overflow:hidden;}
  .client-gallery-region .client-gallery img {object-fit:cover;transition:transform .7s var(--ease);}
  .client-gallery-region .client-gallery a:hover img {transform:scale(1.02);}
  .client-gallery-zoom {position:absolute;right:10px;bottom:10px;width:34px;height:34px;display:grid;place-items:center;background:rgb(0 0 0 / 65%);color:white;border-radius:50%;}
  .client-gallery-more {display:flex;gap:20px;align-items:center;justify-content:space-between;margin-top:30px;}
  .client-gallery-dialog {padding:18px 24px;border:0;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;background:#0a0a09;color:#f3f1ec;}
  .client-gallery-dialog[open] {display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:18px;}
  .client-gallery-dialog::backdrop {background:#080808;}
  .client-gallery-toolbar,.client-gallery-controls {display:flex;align-items:center;justify-content:space-between;gap:22px;}
  .client-gallery-dialog>img {width:100%;height:100%;min-height:0;object-fit:contain;}
  .client-gallery-controls>p {font-size:.85rem;text-align:center;}
  .client-gallery-controls .button {min-width:50px;}
  .client-result-actions {display:flex;flex-wrap:wrap;gap:14px;}
  .inquiry-aside h1,.inquiry-aside h2 {text-transform:none;}
  .inquiry-aside {justify-content:space-between;}
  .inquiry-aside>.client-text-link {overflow-wrap:anywhere;}
  .inquiry-layout--embedded {scroll-margin-top:80px;}
  .inquiry-main legend {line-height:1.12;}
  .inquiry-delivery-note {font-size:.9rem;line-height:1.6;color:var(--ink-soft);border-left:2px solid var(--line);padding-left:16px;margin:0 0 32px;overflow-wrap:anywhere;}
  .inquiry-main .wizard-progress {margin-bottom:28px;}
  .inquiry-main [data-submit-status] {margin-top:20px;overflow-wrap:anywhere;}
  .inquiry-main button:disabled {cursor:wait;opacity:.6;}
  .client-result-actions .button {white-space:normal;text-align:center;}
  html:has(.client-text-hero) .site-header:not(.is-solid) {--header-ink:var(--ink);background:var(--header-bg);}
  html:has(.client-text-hero) .site-header:not(.is-solid) .button--inverse {color:var(--ink);border-color:var(--ink);}
  html:has(.client-text-hero) .site-header:not(.is-solid) .language-switch a[aria-current] {background:var(--ink);color:var(--paper);}
  @media(min-width:1250px) {.header-inner {grid-template-columns:70px minmax(0,1fr) auto;gap:14px;}.desktop-nav {gap:20px;}.nav-link {font-size:.61rem;}.header-actions>.button {display:none;}}
  @media(max-width:1100px) {.client-logo-grid {grid-template-columns:repeat(3,minmax(0,1fr));}.client-logo-grid--partners {grid-template-columns:repeat(2,minmax(0,1fr));}.client-wedding-services {gap:24px;}.client-service-link {grid-template-columns:35px minmax(0,1fr) 22px;}.client-service-link>.body-copy {display:none;}}
  @media(max-width:760px) {
    .client-split {min-height:880px;height:auto;grid-template-columns:1fr;row-gap:0;}
    .client-split .world-panel {min-height:440px;}
    .client-split .world-kicker {top:94px;max-width:85%;font-size:.6rem;}
    .client-split .world-panel+ .world-panel .world-kicker {top:32px;}
    .client-split .world-title {font-size:clamp(2.7rem,11vw,4.4rem);}
    .client-split .world-link {padding-bottom:30px;gap:12px;}
    .client-split .split-line {display:none;}
    .client-split .world-panel>img {object-position:center 42%;}
  }
  @media(max-width:700px) {
    .client-section-head {grid-template-columns:30px minmax(0,1fr);gap:16px;margin-bottom:38px;}
    .client-client-strip .client-section-head,.client-partner-strip .client-section-head {grid-template-columns:minmax(0,1fr);gap:16px;}
    .client-client-strip .client-section-head>.micro,.client-partner-strip .client-section-head>.micro {padding-top:0;}
    .client-heading {font-size:clamp(2.35rem,9.5vw,4rem);line-height:1.05;}
    .client-manifesto {display:block;}
    .client-manifesto-title {font-size:clamp(3rem,12vw,5rem);margin:40px 0;}
    .client-manifesto>.lede {margin-left:10%;}
    .client-world-descriptions {grid-template-columns:1fr;gap:40px;}
    .client-project-grid {gap:48px;grid-template-columns:1fr;}
    .client-project-grid>.client-project:first-child {grid-column:auto;}
    .client-project-grid>.client-project:nth-child(3),.client-project-grid--archive>.client-project:nth-child(even) {margin-top:0;}
    .client-project:first-child .client-project-image,.client-project-image {aspect-ratio:4/3;}
    .client-reference-preview {grid-template-columns:1fr 1fr;gap:10px;}
    .client-reference-frame:first-child {grid-row:auto;grid-column:1/-1;aspect-ratio:3/2;}
    .client-reference-frame-number {top:10px;left:10px;padding:5px 8px;}
    .client-reference-caption {grid-template-columns:1fr;gap:24px;padding-top:24px;}
    .client-reference-selections {margin-top:48px;padding-top:36px;}
    .client-reference-navigation {gap:10px;margin-bottom:26px;}
    .client-reference-navigation .button,.client-reference-caption .button {font-size:.6rem;padding-inline:14px;gap:12px;}
    .client-service-link {gap:14px;min-height:110px;}
    .client-service-link h3 {font-size:1.8rem;}
    .client-service summary {gap:14px;min-height:98px;}
    .client-service summary h3 {font-size:1.8rem;}
    .client-service-body {grid-template-columns:1fr;gap:25px;padding:12px 0 38px;}
    .client-logo-grid,.client-logo-grid--partners,.client-client-strip .client-logo-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
    .client-logo-item {padding:14px;}
    .client-logo-art {padding:12px;height:112px;margin-bottom:16px;}
    .client-logo-art img {height:100%;}
    .client-logo-item h3 {font-size:.85rem;}
    .client-brand-destination {font-size:.55rem;letter-spacing:.08em;}
    .client-logo-item .arrow {width:24px;margin-left:0;}
    .client-wedding-invitation,.client-wedding-invitation--quiet {min-height:75svh;padding-block:60px;}
    .client-wedding-invitation>img {object-position:center;}
    .client-team-grid {grid-template-columns:1fr;gap:56px;}
    .client-person figure {aspect-ratio:4/4.5;}
    .client-person>.micro {min-height:0;}
    .client-hero {padding:140px var(--gutter) 44px;min-height:820px;}
    .client-hero h1 {font-size:clamp(2.8rem,12vw,4.6rem);letter-spacing:-.055em;}
    .client-hero--wedding h1 {font-size:clamp(2.5rem,10.8vw,4.3rem);line-height:1.03;}
    .client-hero--wedding>img {object-position:62% center;}
    .client-hero--wedding>picture img {object-position:center 38%;}
    .client-hero .micro {font-size:.62rem;line-height:1.6;}
    .client-hero .button {font-size:.61rem;padding-inline:14px;}
    .client-hero .button .arrow {width:25px;}
    .client-editorial,.client-talent,.client-individual,.client-film-story,.client-process-layout,.client-faq {grid-template-columns:1fr;gap:38px;}
    .client-copy-column {padding-top:0;}
    .client-film-grid {grid-template-columns:1fr;gap:48px;max-width:430px;}
    .client-film video {max-height:75svh;}
    .client-talent>figure {order:2;}
    .client-talent .client-heading {margin-top:22px;}
    .client-wedding-services {grid-template-columns:1fr;gap:30px;}
    .client-wedding-services .serif {min-height:0;}
    .client-wedding-services h3 {font-size:2.2rem;}
    .client-story-grid {grid-template-columns:1fr;gap:58px;}
    .client-story-grid [data-wedding-story="02"] {padding-top:0;}
    .client-story-grid [data-wedding-story="02"] img {aspect-ratio:4/3;}
    .client-story-grid h3 {font-size:2.4rem;}
    .client-process-heading {position:static;}
    .client-process-layout .client-section-head,.client-faq .client-section-head {margin-bottom:0;}
    .client-text-hero {padding-top:130px;padding-bottom:60px;}
    .client-text-hero h1 {font-size:clamp(2.75rem,11vw,4.4rem);}
    .client-text-hero .lede {font-size:1.3rem;}
    .client-detail-cover {height:60svh;min-height:300px;}
    .client-detail-cover--portrait {height:78svh;}
    .client-gallery {grid-template-columns:1fr;gap:16px;}
    .client-gallery-region .client-gallery {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
    .client-gallery-dialog {padding:14px;gap:10px;}
    .client-gallery-controls {gap:12px;}
    .client-gallery-more {align-items:flex-start;flex-direction:column;}
    .client-detail-intro {grid-template-columns:1fr;}
    .client-case {grid-template-columns:1fr;gap:30px;padding-block:40px;}
    .client-case:nth-child(even)>a {order:0;}
    .client-section-end {margin-top:36px;}
    .footer-brand--original {max-width:180px;}
  }
  @media(prefers-reduced-motion:reduce) {
    .client-split .world-panel>img,.client-project-image img,.client-service-link,.client-plus::after,.client-reference-frame img,.client-logo-item,.client-brand-destination>span {transition:none;}
    .client-split .world-panel:hover>img,.client-project-image:hover img,.client-reference-frame:hover img,.client-brand-link:hover .client-brand-destination>span {transform:none;}
  }
}

@layer client {
  .oha-instagram [hidden] {display:none!important;}
  .oha-instagram-heading {display:grid;grid-template-columns:1fr 3fr;gap:36px;align-items:start;margin-bottom:64px;}
  .oha-instagram-heading>.micro {padding-top:12px;}
  .oha-instagram-heading .client-heading>span {display:block;}
  .oha-instagram-accounts {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;}
  .oha-instagram-account {min-width:0;border-top:1px solid var(--line);padding-top:30px;}
  .oha-instagram-copy h3 {font-size:clamp(2rem,3.2vw,3.5rem);line-height:1.15;margin:18px 0;letter-spacing:-.025em;}
  .oha-instagram-copy .body-copy {max-width:48ch;}
  .oha-instagram-profile {display:inline-flex;align-items:center;gap:20px;min-height:44px;margin:20px 0 26px;}
  .oha-instagram-pictures {display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .oha-instagram-pictures img {width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;}
  [data-instagram-account="weddings"] .oha-instagram-pictures img:last-child {object-position:50% 72%;}
  .oha-instagram-preview figcaption {font-size:.59rem;line-height:1.8;margin-top:15px;}
  .oha-instagram-gate {margin-top:24px;padding-top:24px;border-top:1px solid var(--line);}
  .oha-instagram-gate .body-copy,.oha-instagram-session .body-copy,.oha-instagram-error {font-size:.8rem;line-height:1.65;}
  .oha-instagram-gate p a {text-decoration:underline;text-underline-offset:4px;}
  .oha-instagram-gate .button {margin-top:18px;min-height:48px;}
  .oha-instagram-embed {background:var(--surface);width:100%;overflow:hidden;}
  .oha-instagram-rail {display:flex;gap:16px;list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 0 12px;margin:0;scrollbar-width:thin;scrollbar-color:var(--muted) transparent;}
  .oha-instagram-post {flex:0 0 calc(50% - 8px);min-width:0;scroll-snap-align:start;}
  .oha-instagram-media {aspect-ratio:3/4;display:grid;place-items:center;background:#111;overflow:hidden;}
  .oha-instagram-media img,.oha-instagram-media video {width:100%;height:100%;min-height:0;object-fit:contain;display:block;}
  .oha-instagram-media p {padding:20px;color:#fff;text-align:center;}
  .oha-instagram-post-meta {display:flex;flex-direction:column;align-items:flex-start;padding-top:16px;gap:8px;}
  .oha-instagram-post-meta time {font-size:.65rem;}
  .oha-instagram-post-meta a {font-size:.8rem;min-height:44px;display:inline-flex;align-items:center;}
  .oha-instagram-navigation {display:flex;align-items:center;gap:10px;padding:12px 0;}
  .oha-instagram-navigation>span {flex:1;font-size:.65rem;}
  .oha-instagram-navigation button {width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font-size:1.25rem;cursor:pointer;}
  .oha-instagram-navigation button:disabled {opacity:.35;cursor:default;}
  .oha-instagram-empty {padding:30px;}
  .oha-instagram-embed[aria-busy="true"] {min-height:100px;}
  @media(prefers-reduced-motion:no-preference) {
    .oha-instagram-rail {animation:oha-instagram-arrive .45s ease-out both;}
    @keyframes oha-instagram-arrive {from {opacity:0;transform:translateY(12px);} to {opacity:1;transform:none;}}
  }
  .oha-instagram-session {margin-top:18px;}
  .oha-instagram-session button {display:inline-flex;min-height:44px;align-items:center;padding:8px 0;background:none;border:0;color:var(--ink);cursor:pointer;text-decoration:underline;text-underline-offset:4px;}
  .oha-instagram-error {margin-top:16px;}
  .oha-instagram-accounts--single {display:block;}
  .oha-instagram-accounts--single .oha-instagram-account {display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(30px,6vw,100px);}
  .oha-instagram-accounts--single .oha-instagram-pictures img {aspect-ratio:4/5;}
  @media(max-width:900px) {
    .oha-instagram-heading {grid-template-columns:1fr;gap:20px;margin-bottom:40px;}
    .oha-instagram-accounts {gap:30px;}
    .oha-instagram-copy h3 {font-size:2.4rem;}
  }
  @media(max-width:700px) {
    .oha-instagram-accounts,.oha-instagram-accounts--single .oha-instagram-account {display:grid;grid-template-columns:1fr;gap:40px;}
    .oha-instagram-accounts--single .oha-instagram-account {gap:0;}
    .oha-instagram-copy h3 {font-size:clamp(2rem,8vw,3rem);}
    .oha-instagram-heading .client-heading {font-size:clamp(2.8rem,11vw,4rem);}
  }
  @media(max-width:450px) {.oha-instagram-post {flex-basis:85%;}}
}
