/* =====================================================================
   SELF-HOSTED FONTS (latin subset, variable)
   Served from our own origin so the display face is available before
   first paint. This removes the layout shift the giant Cormorant
   headline used to cause, drops two third-party connections, and means
   visitors' IP addresses are no longer sent to Google for fonts.
   ===================================================================== */
@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url('assets/fonts/cinzel.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url('assets/fonts/cormorant-garamond.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url('assets/fonts/inter.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* =====================================================================
   REGAL FORTE — v2 (lighter · editorial · gallery)
   Foundation + Masthead + Hero
   Direction: warm ivory grounds, restrained antique gold, editorial serif,
   generous air, cinematic imagery as framed punctuation.

   Progressive enhancement: reveal/hidden states apply ONLY under `.enhanced`
   (added pre-paint by an inline script that runs only when JS is available).
   `.enhance-failed` is a failsafe that re-exposes everything if the engine
   never initializes. Without JS, none of these classes exist → full content.
   ===================================================================== */

:root {
  /* --- Grounds (warm ivory / parchment) --- */
  --paper:    #f3efe4;   /* primary ground */
  --paper-hi: #faf7ef;   /* lifted panels / cards */
  --paper-lo: #eae2d2;   /* recessed panels */
  --ink:      #16150f;   /* near-black warm — display type / inverted grounds */

  /* --- Text (all meaningful text ≥ AA on --paper) --- */
  --text:  #22201a;      /* body            ~9.2:1  */
  --muted: #656050;      /* secondary — AA on paper AND recessed paper-lo */
  --faint: #656050;      /* captions/labels */
  --on-ink:      #f1ede2;
  --on-ink-soft: rgba(241, 237, 226, .66);

  /* --- Antique gold --- */
  --gold:      #a9812f;  /* accents / hairlines with presence */
  --gold-hi:   #c9a24e;  /* highlights on dark */
  --gold-deep: #7c5d1b;  /* gold carrying text on light  ~5.3:1 */

  /* --- Lines --- */
  --line:      rgba(22, 21, 15, .14);
  --line-soft: rgba(22, 21, 15, .08);
  --line-ink:  rgba(241, 237, 226, .16);

  /* --- System --- */
  --max: 1240px;
  --gutter: clamp(20px, 5vw, 68px);
  --nav-h: 78px;
  --ease:    cubic-bezier(.19, 1, .22, 1);     /* expo-out — luxurious settle */

  /* --- Type families --- */
  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:  Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --caps:  Cinzel, Georgia, serif;
}

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

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--nav-h) + 24px);
}

body {
  margin: 0;
  color: var(--text);
  background: var(--paper);
  font-family: var(--sans);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.nav-open { overflow: hidden; }

a { color: inherit; }
img, svg { display: block; max-width: 100%; }
::selection { background: rgba(169, 129, 47, .22); }

.site-progress {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1000;
  width: 100%;
  height: 2px;
  border: 0;
  appearance: none;
  pointer-events: none;
}
.site-progress::-webkit-progress-bar { background: transparent; }
.site-progress::-webkit-progress-value { background: var(--gold); }
.site-progress::-moz-progress-bar { background: var(--gold); }


/* Reveal stagger delays as classes rather than inline style attributes,
   so the Content-Security-Policy can forbid inline styles entirely. */
.d04 { --d: .04s; }
.d05 { --d: .05s; }
.d06 { --d: .06s; }
.d1 { --d: .1s; }
.d12 { --d: .12s; }
.d16 { --d: .16s; }
.d18 { --d: .18s; }
.d2 { --d: .2s; }
.d22 { --d: .22s; }
.d24 { --d: .24s; }
.d3 { --d: .3s; }
.d38 { --d: .38s; }

/* --- Container --- */
.wrap {
  width: min(var(--max), calc(100% - (2 * var(--gutter))));
  margin-inline: auto;
}

/* --- Type primitives --- */
h1, h2, h3, h4 {
  margin: 0;
  font-family: var(--serif);
  font-weight: 500;
  letter-spacing: -.02em;
  /* Any dark-ground section sets --heading-color once and every heading
     inside it follows. Custom properties inherit, so this cannot silently
     fail the way a selector-based override can. */
  color: var(--heading-color, var(--ink));
}
p { margin: 0; }

.eyebrow {
  margin: 0;
  font-family: var(--caps);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .28em;
  line-height: 1.6;
  text-transform: uppercase;
  color: var(--gold-deep);
}

/* --- Buttons --- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 54px;
  padding: 0 28px;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background .45s var(--ease), color .45s var(--ease),
              border-color .45s var(--ease);
}
.btn-ink   { color: var(--paper-hi); background: var(--ink); }
.btn-ink:hover { background: var(--gold-deep); }

/* --- Animated underline link --- */
.link-underline {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding-bottom: 4px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .04em;
  text-decoration: none;
}
.link-underline .arrow { color: var(--gold-deep); transition: transform .45s var(--ease); }
.link-underline::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: var(--gold-deep);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .5s var(--ease);
}
.link-underline:hover::after { transform: scaleX(1); }
.link-underline:hover .arrow { transform: translate(3px, -3px); }

/* =====================================================================
   MASTHEAD / NAV  (sticky, solid ivory, hairline + faint lift on scroll)
   ===================================================================== */
.masthead {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--paper);
  transition: box-shadow .5s var(--ease);
}
.masthead::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: var(--line);
  opacity: 0;
  transition: opacity .5s var(--ease);
}
.masthead.is-scrolled { box-shadow: 0 12px 30px -26px rgba(22, 21, 15, .55); }
.masthead.is-scrolled::after { opacity: 1; }

.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--nav-h);
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 13px;
  text-decoration: none;
  color: var(--ink);
}
/* House insignia. The crest artwork carries its own pure-black ground, so on the
   ivory pages it is set as a dark tile with a gold hairline — the same treatment
   the commerce header already uses — rather than floated on paper. Tile fill is
   #000 to match the artwork exactly; any lighter value shows as a seam. */
.brand-mark {
  width: 30px; height: 48px; object-fit: contain;
  background: #000; border: 1px solid rgba(169, 129, 47, .42);
}
.brand-lockup { display: grid; gap: 2px; }
.brand-name {
  font-family: var(--caps);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .18em;
  line-height: 1;
  text-transform: uppercase;
}
.brand-sub {
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--faint);
}

.nav-links { display: flex; align-items: center; gap: 34px; }
.nav-links a {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--muted);
  transition: color .3s var(--ease);
}
.nav-links a:not(.nav-cta):hover { color: var(--ink); }
.nav-links a.is-active { color: var(--ink); }
.nav-links .nav-cta {
  padding: 12px 20px;
  color: var(--ink);
  border: 1px solid var(--line);
  transition: background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}
.nav-links .nav-cta:hover { color: var(--paper-hi); background: var(--ink); border-color: var(--ink); }

.menu-toggle {
  display: none;
  width: 46px; height: 46px;
  padding: 0;
  background: transparent;
  border: 1px solid var(--line);
  cursor: pointer;
}
.menu-toggle span {
  display: block;
  width: 20px; height: 1px;
  margin: 5px auto;
  background: var(--ink);
  transition: transform .3s var(--ease), opacity .3s var(--ease);
}
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child  { transform: translateY(-3px) rotate(-45deg); }

/* =====================================================================
   HERO  (editorial manifesto + cinematic house brief)
   ===================================================================== */
.hero {
  padding-top: clamp(30px, 4vh, 54px);
  padding-bottom: clamp(42px, 5vh, 66px);
}
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(520px, 1.1fr);
  align-items: center;
  gap: clamp(38px, 5vw, 76px);
}
.hero-lede { max-width: 600px; }

.hero .eyebrow { margin-bottom: 20px; }
.hero-title {
  font-size: clamp(56px, 6.6vw, 84px);
  line-height: .86;
  letter-spacing: -.035em;
  color: var(--ink);
}
.hero-title .line { display: block; overflow: hidden; padding-bottom: .04em; }
.hero-title .line > span { display: block; }

.hero-intro {
  max-width: 44ch;
  margin-top: 17px;
  color: var(--muted);
  font-size: clamp(15px, 1.15vw, 17px);
  line-height: 1.58;
}
.hero-actions {
  display: flex;
  align-items: center;
  gap: 30px;
  flex-wrap: wrap;
  margin-top: 20px;
}

/* Framed figure — image and operating brief read as one instrument */
.hero-figure { margin: 0; position: relative; }
/* Hero variant of the shared .frame primitive */
.hero-frame { aspect-ratio: 1 / .9; box-shadow: 0 30px 70px -42px rgba(22, 21, 15, .58); }
.hero-frame img { object-position: 60% 40%; }   /* keep both foreground figures */
.hero-frame::after { border-color: rgba(241, 237, 226, .18); }
.hero-brief {
  position: absolute;
  right: 18px;
  bottom: 18px;
  z-index: 4;
  width: min(310px, calc(100% - 36px));
  padding: 18px 20px 16px;
  color: var(--on-ink);
  background: rgba(11, 11, 8, .88);
  border: 1px solid rgba(201, 162, 78, .5);
  backdrop-filter: blur(14px);
}
.hero-brief > p {
  padding-bottom: 11px;
  font-family: var(--caps);
  font-size: 9px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold-hi);
  border-bottom: 1px solid var(--line-ink);
}
.hero-brief dl { margin: 0; }
.hero-brief dl div {
  display: grid;
  grid-template-columns: 82px 1fr;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px solid var(--line-ink);
}
.hero-brief dl div:last-child { padding-bottom: 0; border-bottom: 0; }
.hero-brief dt {
  color: var(--on-ink-soft);
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.hero-brief dd {
  margin: 0;
  font-family: var(--serif);
  font-size: 16px;
  line-height: 1.05;
}
.hero-figure figcaption {
  margin-top: 14px;
  padding-left: 16px;
  border-left: 1px solid var(--gold);
  color: var(--muted);
  font-size: 12px;
  letter-spacing: .01em;
  line-height: 1.5;
}

/* Facts rail (semantic <dl>) */
.hero-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: clamp(34px, 4vw, 50px) 0 0;
  border-top: 1px solid var(--line);
}
.hero-facts div { padding: 22px 26px 0 0; }
.hero-facts div + div { padding-left: 26px; border-left: 1px solid var(--line); }
.hero-facts dt {
  margin-bottom: 8px;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--faint);
}
.hero-facts dd {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(22px, 2.2vw, 30px);
  font-weight: 500;
  letter-spacing: -.01em;
  color: var(--ink);
}

/* =====================================================================
   HOUSE INDEX  (one glance, one operating system)
   ===================================================================== */
.house-index {
  padding: clamp(72px, 9vw, 124px) 0;
  border-top: 1px solid var(--line);
  background:
    linear-gradient(90deg, transparent 0 49.94%, var(--line-soft) 50%, transparent 50.06%),
    var(--paper-hi);
}
.house-index-head {
  display: grid;
  grid-template-columns: .55fr 1.15fr .85fr;
  gap: clamp(28px, 5vw, 72px);
  align-items: end;
  margin-bottom: clamp(46px, 6vw, 78px);
}
.house-index-head h2 {
  max-width: 12ch;
  font-size: clamp(42px, 5.3vw, 72px);
  line-height: .9;
}
.house-index-head > p:last-child {
  color: var(--muted);
  font-size: 15px;
  line-height: 1.7;
}
.house-index-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.house-index-grid a {
  position: relative;
  min-height: 320px;
  padding: clamp(22px, 2.5vw, 32px);
  overflow: hidden;
  text-decoration: none;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  transition: color .55s var(--ease), background .55s var(--ease);
}
.house-index-grid a::before {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 4px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .6s var(--ease);
}
.house-index-grid a:hover,
.house-index-grid a:focus-visible {
  color: var(--on-ink);
  background: var(--ink);
}
.house-index-grid a:hover::before,
.house-index-grid a:focus-visible::before { transform: scaleX(1); }
.house-index-grid span,
.house-index-grid small {
  display: block;
  color: var(--muted);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  transition: color .55s var(--ease);
}
.house-index-grid strong {
  display: block;
  margin-top: 82px;
  font-family: var(--serif);
  font-size: clamp(27px, 2.5vw, 38px);
  font-weight: 500;
  line-height: .94;
}
.house-index-grid small { margin-top: 24px; letter-spacing: .06em; text-transform: none; }
.house-index-grid a:hover span,
.house-index-grid a:hover small,
.house-index-grid a:focus-visible span,
.house-index-grid a:focus-visible small { color: var(--on-ink-soft); }

/* =====================================================================
   CURRENT OFFER  (the concrete work available today)
   ===================================================================== */
.current-offer {
  padding: clamp(72px, 8vw, 112px) 0;
  color: var(--on-ink);
  --heading-color: var(--on-ink);   /* dark ground — headings must invert */
  background: var(--ink);
}
.current-offer .eyebrow { color: var(--gold-hi); }
.current-offer-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, .7fr);
  gap: clamp(42px, 8vw, 120px);
  align-items: end;
}
.current-offer-intro h2 {
  max-width: 15ch;
  margin-top: 18px;
  font-size: clamp(36px, 4.8vw, 66px);
  line-height: .98;
  letter-spacing: -.025em;
}
.current-offer-summary > p {
  max-width: 46ch;
  color: var(--on-ink-soft);
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 1.7;
}
.current-offer .link-underline {
  margin-top: 28px;
  color: var(--on-ink);
}
.current-offer .link-underline .arrow { color: var(--gold-hi); }
.current-offer .link-underline::after { background: var(--gold-hi); }
.current-offer-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: clamp(52px, 7vw, 86px);
  border-top: 1px solid var(--line-ink);
  border-left: 1px solid var(--line-ink);
}
.current-offer-grid article {
  min-height: 270px;
  padding: clamp(24px, 3vw, 36px);
  border-right: 1px solid var(--line-ink);
  border-bottom: 1px solid var(--line-ink);
  transition: background .5s var(--ease), transform .5s var(--ease);
}
.current-offer-grid article:hover { background: rgba(255, 255, 255, .04); transform: translateY(-4px); }
.current-offer-grid span {
  color: var(--gold-hi);
  font-family: var(--caps);
  font-size: 11px;
  letter-spacing: .15em;
}
.current-offer-grid h3 {
  max-width: 13ch;
  margin-top: 54px;
  font-size: clamp(24px, 2.3vw, 32px);
  line-height: 1;
}
.current-offer-grid p {
  max-width: 38ch;
  margin-top: 16px;
  color: var(--on-ink-soft);
  font-size: 14px;
  line-height: 1.65;
}
.current-offer-note {
  max-width: 78ch;
  margin-top: 22px;
  color: var(--on-ink-soft);
  font-size: 12px;
  line-height: 1.65;
}

/* =====================================================================
   MANDATE  (editorial index of the four-word tenets)
   ===================================================================== */
.mandate { padding: clamp(84px, 11vw, 150px) 0; }
.mandate-grid {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: clamp(40px, 7vw, 100px);
  align-items: start;
}
.mandate-head { align-self: start; }
.mandate-head .eyebrow { margin-bottom: 22px; }
.mandate-head h2 {
  font-size: clamp(34px, 4.4vw, 62px);
  line-height: .98;
  max-width: 12ch;
}
.mandate-note { margin-top: 26px; max-width: 34ch; color: var(--muted); font-size: 15px; }

.tenets { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.tenet {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 16px 30px;
  padding: 30px 0;
  border-bottom: 1px solid var(--line);
}
.tenet-index {
  font-family: var(--caps);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .15em;
  color: var(--gold-deep);
  transition: color .4s var(--ease);
}
.tenet h3 {
  font-size: clamp(30px, 4.2vw, 56px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.02em;
  transition: color .4s var(--ease);
}
.tenet p {
  justify-self: end;
  max-width: 30ch;
  text-align: right;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}
.tenet:hover h3 { color: var(--gold-deep); }
.tenet:hover .tenet-index { color: var(--ink); }

@media (max-width: 820px) {
  .current-offer-intro { grid-template-columns: 1fr; align-items: start; }
  .current-offer-grid { grid-template-columns: 1fr; }
  .current-offer-grid article { min-height: 220px; }
  .current-offer-grid h3 { margin-top: 36px; }
  .mandate-grid { grid-template-columns: 1fr; gap: 40px; }
  .mandate-head { position: static; }
  .mandate-head h2 { max-width: 16ch; }
  .tenet { grid-template-columns: 40px 1fr; gap: 4px 18px; padding: 22px 0; }
  .tenet p { grid-column: 2; justify-self: start; text-align: left; margin-top: 10px; max-width: none; }
}

/* =====================================================================
   WORK  (a visible, editorial gallery)
   ===================================================================== */
.work { padding: clamp(20px, 3vw, 48px) 0 clamp(90px, 11vw, 150px); }

.section-head { max-width: 780px; margin-bottom: clamp(44px, 5vw, 76px); }
.section-head .eyebrow { margin-bottom: 20px; }
.section-head h2 { font-size: clamp(32px, 4.2vw, 60px); line-height: 1; letter-spacing: -.025em; max-width: 18ch; }
.section-lead { margin-top: 22px; max-width: 56ch; color: var(--muted); font-size: clamp(16px, 1.3vw, 18px); line-height: 1.65; }

.gallery { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 64px); align-items: start; }
.gallery-item { margin: 0; }
.gallery-item.offset { margin-top: clamp(40px, 8vw, 120px); }   /* editorial vertical offset */
.gallery-item .frame {
  aspect-ratio: 4 / 5;
  background: var(--paper-lo);
  box-shadow: 0 22px 44px -30px rgba(22, 21, 15, .4);
}
.gallery-item .frame::after {
  content: ""; position: absolute; inset: 0; z-index: 2;
  border: 1px solid rgba(22, 21, 15, .10); pointer-events: none;
}
.gallery-item .frame img { width: 100%; height: 100%; object-fit: cover; }
.gallery-item figcaption { padding-top: 22px; }
.gallery-item .cat {
  display: block; margin-bottom: 12px;
  font-family: var(--caps); font-size: 10px; font-weight: 500;
  letter-spacing: .18em; text-transform: uppercase; color: var(--gold-deep);
}
.gallery-item h3 { font-size: clamp(24px, 2.4vw, 34px); line-height: 1.04; letter-spacing: -.02em; max-width: 22ch; }
.gallery-item figcaption p { margin-top: 12px; max-width: 44ch; color: var(--muted); font-size: 14px; line-height: 1.6; }

.disclosure {
  margin-top: clamp(44px, 5vw, 68px);
  padding-top: 16px;
  border-top: 1px solid var(--line);
  color: var(--faint);
  font-size: 12px;
  line-height: 1.6;
}

@media (max-width: 820px) {
  .gallery { grid-template-columns: 1fr; gap: 44px; }
  .gallery-item.offset { margin-top: 0; }
  .gallery-item .frame { aspect-ratio: 4 / 3; }
}

/* =====================================================================
   HOME & WORKPLACE CARE  (a new service thesis, clearly staged)
   ===================================================================== */
.care-concept {
  --heading-color: var(--on-ink);
  position: relative;
  padding: clamp(92px, 11vw, 160px) 0;
  color: var(--on-ink);
  background:
    radial-gradient(90% 120% at 100% 0%, rgba(86, 104, 78, .36), transparent 55%),
    linear-gradient(135deg, #0d130f, #151711 60%, #0b0d0a);
  overflow: hidden;
}
.care-concept::before {
  content: "RF";
  position: absolute;
  right: -2vw;
  bottom: -18vw;
  color: rgba(241, 237, 226, .025);
  font-family: var(--serif);
  font-size: min(58vw, 760px);
  line-height: 1;
  pointer-events: none;
}
.care-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(470px, 1.15fr);
  gap: clamp(54px, 8vw, 124px);
  align-items: start;
}
.care-concept .eyebrow { color: var(--gold-hi); }
.care-heading h2 {
  max-width: 12ch;
  margin-top: 22px;
  font-size: clamp(44px, 5.7vw, 78px);
  line-height: .91;
}
.care-lead {
  max-width: 50ch;
  margin-top: 30px;
  color: var(--on-ink-soft);
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 1.75;
}
.care-concept .link-underline { margin-top: 34px; color: var(--on-ink); }
.care-concept .link-underline .arrow { color: var(--gold-hi); }
.care-concept .link-underline::after { background: var(--gold-hi); }
.care-standard {
  padding: clamp(28px, 4vw, 48px);
  border: 1px solid rgba(201, 162, 78, .42);
  background: rgba(7, 9, 7, .36);
  backdrop-filter: blur(12px);
}
.care-monogram {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--line-ink);
}
.care-monogram span {
  font-family: var(--serif);
  font-size: clamp(58px, 7vw, 96px);
  line-height: .7;
  color: var(--gold-hi);
}
.care-monogram small {
  font-family: var(--caps);
  font-size: 10px;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--on-ink-soft);
}
.care-standard ol { margin: 0; padding: 0; list-style: none; }
.care-standard li {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 18px;
  padding: 21px 0;
  border-bottom: 1px solid var(--line-ink);
}
.care-standard li > span {
  padding-top: 3px;
  color: var(--gold-hi);
  font-family: var(--caps);
  font-size: 9px;
  letter-spacing: .14em;
}
.care-standard strong { font-family: var(--serif); font-size: 24px; font-weight: 500; }
.care-standard li p {
  max-width: 45ch;
  margin-top: 5px;
  color: var(--on-ink-soft);
  font-size: 13px;
  line-height: 1.55;
}
.care-note {
  margin-top: 22px;
  color: rgba(241, 237, 226, .52);
  font-size: 10px;
  line-height: 1.6;
}

/* =====================================================================
   PLATFORM  (status-staged operating cards, on a lifted ground)
   ===================================================================== */
.platform { padding: clamp(84px, 10vw, 140px) 0; background: var(--paper-hi); }
.platform-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(18px, 2vw, 26px); margin-top: clamp(40px, 5vw, 64px); }
.pcard { display: flex; flex-direction: column; padding: 32px 30px 34px; background: var(--paper); border: 1px solid var(--line); }
/* Foundation-stage honesty + restraint: the active platform leads; future ones recede. */
.pcard.is-current { border-top: 2px solid var(--gold-deep); box-shadow: 0 26px 54px -36px rgba(22, 21, 15, .32); }
.pcard.is-care { border-top: 2px solid #526557; }
.pcard.is-future { background: transparent; border-color: var(--line-soft); }
.status-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; }
.status { padding: 6px 11px; font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; border: 1px solid var(--line); }
.status.current { color: var(--paper-hi); background: var(--gold-deep); border-color: var(--gold-deep); }
.status.validating { color: #324437; border-color: #7d9583; background: rgba(125, 149, 131, .12); }
.status.developing { color: var(--gold-deep); border-color: var(--gold); }
.status.horizon { color: var(--muted); }
.stage { font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--faint); }
.pcard h3 { font-size: clamp(23px, 2.1vw, 29px); line-height: 1.05; letter-spacing: -.015em; margin-bottom: 14px; min-height: 2.1em; }
.pcard > p { color: var(--muted); font-size: 14px; line-height: 1.6; }
.pcard ul { margin: 24px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.pcard li { padding: 11px 0; border-bottom: 1px solid var(--line); color: var(--text); font-size: 13px; }
.plink {
  display: inline-flex; align-items: center; gap: 8px; align-self: flex-start;
  margin-top: 24px; padding-bottom: 3px;
  color: var(--gold-deep); font-size: 12px; font-weight: 600; letter-spacing: .04em;
  text-decoration: none; border-bottom: 1px solid rgba(124, 93, 27, .4);
}
.plink .arrow { transition: transform .4s var(--ease); }
.plink:hover .arrow { transform: translate(3px, -3px); }

@media (max-width: 1020px) {
  .care-grid { grid-template-columns: 1fr; }
  .platform-grid { grid-template-columns: 1fr; }
  .pcard h3 { min-height: 0; }
}

/* =====================================================================
   OPERATING STANDARD  (framed craft print + principles)
   ===================================================================== */
.standard { padding: clamp(84px, 10vw, 140px) 0; border-top: 1px solid var(--line); }
.standard-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(40px, 6vw, 90px); align-items: center; }
.standard-media { margin: 0; }
.standard-media .frame { aspect-ratio: 4 / 5; background: var(--paper-lo); box-shadow: 0 30px 60px -34px rgba(22, 21, 15, .5); }
.standard-media .frame::after { content: ""; position: absolute; inset: 0; z-index: 2; border: 1px solid rgba(22, 21, 15, .1); pointer-events: none; }
.standard-media .frame img { width: 100%; height: 100%; object-fit: cover; }
.standard-media figcaption {
  margin-top: 16px; padding-left: 16px; border-left: 1px solid var(--gold);
  color: var(--muted); font-family: var(--serif); font-style: italic; font-size: 18px; line-height: 1.4;
}
.standard-copy .eyebrow { margin-bottom: 20px; }
.standard-copy h2 { font-size: clamp(30px, 3.4vw, 50px); line-height: 1.02; letter-spacing: -.025em; max-width: 16ch; }
.standard-copy .section-lead { margin-top: 22px; max-width: 52ch; }
.principles { margin: clamp(30px, 4vw, 44px) 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.principles li { display: grid; grid-template-columns: 44px 1fr; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.principles li > span { font-family: var(--caps); font-size: 11px; font-weight: 500; letter-spacing: .12em; color: var(--gold-deep); padding-top: 4px; }
.principles h3 { font-size: clamp(19px, 1.7vw, 23px); line-height: 1.1; margin-bottom: 5px; letter-spacing: -.01em; }
.principles p { color: var(--muted); font-size: 13.5px; line-height: 1.5; }

/* =====================================================================
   LONG HORIZON  (editorial roadmap, on a recessed ground)
   ===================================================================== */
.horizon { padding: clamp(84px, 10vw, 140px) 0; background: var(--paper-lo); }
.roadmap { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.phase { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 18px 44px; align-items: baseline; padding: 30px 0; border-bottom: 1px solid var(--line); }
.phase-meta { display: flex; flex-direction: column; gap: 5px; }
.phase-no { font-family: var(--caps); font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-deep); }
.phase-years { font-size: 12px; font-weight: 600; letter-spacing: .08em; color: var(--muted); }
.phase-body h3 { font-size: clamp(26px, 3vw, 40px); line-height: 1; letter-spacing: -.02em; }
.phase-body p { margin-top: 12px; max-width: 62ch; color: var(--muted); font-size: 14px; line-height: 1.6; }

/* =====================================================================
   DECISION FILTER  (light statement, scale is the drama)
   ===================================================================== */
.decision { padding: clamp(90px, 12vw, 168px) 0; border-top: 1px solid var(--line); }
.decision-inner { max-width: 1000px; }
.decision .eyebrow { margin-bottom: 26px; }
.decision-q { font-size: clamp(38px, 6vw, 84px); line-height: 1.08; letter-spacing: -.03em; max-width: 15ch; }
.decision-sub { margin-top: 30px; max-width: 60ch; color: var(--muted); font-size: clamp(16px, 1.4vw, 19px); line-height: 1.6; }
.decision-rule { display: grid; gap: 8px; margin-top: 42px; padding-left: 24px; border-left: 2px solid var(--gold); }
.decision-rule span { font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--faint); }
.decision-rule strong { font-family: var(--serif); font-weight: 500; font-size: clamp(26px, 3vw, 42px); letter-spacing: -.02em; line-height: 1; color: var(--ink); }

/* =====================================================================
   CONTACT  (ceremonial close on light, crest in a dark medallion)
   ===================================================================== */
.contact {
  padding: clamp(90px, 11vw, 160px) 0;
  border-top: 1px solid var(--line);
  background: radial-gradient(130% 90% at 12% 0%, var(--paper-hi), var(--paper) 55%);
}
.contact-grid { display: grid; grid-template-columns: 1fr .92fr; gap: clamp(50px, 7vw, 100px); align-items: start; }
.crest-medallion {
  width: 116px; height: 116px; margin-bottom: 32px;
  display: grid; place-items: center;
  background: #000;
  box-shadow: 0 24px 44px -26px rgba(13, 12, 10, .6);
}
/* The crest fills the medallion edge to edge: its own black ground and the tile
   are the same value, so the artwork reads as inlay rather than a pasted square. */
.crest-medallion img { width: 100%; height: 100%; object-fit: contain; }

/* House motto — the crest and its banner read as one unit, so this sits
   directly under the medallion and above the section eyebrow. Latin states
   the house's belief; the English gloss carries it for everyone else. */
.house-motto {
  display: grid; gap: 7px;
  margin: -6px 0 30px; padding-left: 18px;
  border-left: 1px solid var(--gold);
}
.house-motto-la {
  font-family: var(--caps);
  font-size: clamp(13px, 1.15vw, 15px); font-weight: 600;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--gold-deep);
}
.house-motto-en {
  font-family: var(--serif); font-style: italic;
  font-size: clamp(15px, 1.3vw, 18px); line-height: 1.3;
  color: var(--muted);
}

.contact-copy .eyebrow { margin-bottom: 18px; }
.contact-copy h2 { font-size: clamp(34px, 4.2vw, 60px); line-height: 1; letter-spacing: -.025em; max-width: 14ch; }
.contact-copy .section-lead { margin-top: 22px; max-width: 46ch; }
.email-link {
  display: inline-block; margin-top: 28px;
  color: var(--gold-deep); font-family: var(--serif); font-size: clamp(22px, 2vw, 27px);
  text-decoration: none; border-bottom: 1px solid rgba(124, 93, 27, .4); padding-bottom: 3px;
  transition: color .3s var(--ease), border-color .3s var(--ease);
}
.email-link:hover { color: var(--ink); border-color: var(--ink); }
.contact-form { display: grid; gap: 16px; padding: clamp(26px, 3vw, 36px); background: var(--paper-hi); border: 1px solid var(--line); }
.contact-form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field { display: grid; gap: 8px; }
.field label { font-size: 9px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--muted); }
.contact-form input, .contact-form select, .contact-form textarea {
  width: 100%; padding: 13px 14px;
  font-family: var(--sans); font-size: 15px; text-transform: none; color: var(--text);
  background: var(--paper); border: 1px solid rgba(22, 21, 15, .32); border-radius: 0;
  transition: border-color .3s var(--ease);
}
.contact-form textarea { resize: vertical; min-height: 108px; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--gold-deep); }
.contact-form input:focus-visible, .contact-form select:focus-visible, .contact-form textarea:focus-visible { outline: 2px solid var(--gold-deep); outline-offset: 2px; }
.contact-form .btn { width: 100%; margin-top: 6px; }
.form-required { color: var(--gold-deep); }
.hp-field { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.form-note { margin-top: 2px; color: var(--faint); font-size: 11px; line-height: 1.5; }
.form-note a { color: var(--gold-deep); text-decoration: underline; text-underline-offset: 2px; }

@media (max-width: 900px) {
  .standard-grid { grid-template-columns: 1fr; gap: 40px; }
  .standard-media .frame { aspect-ratio: 4 / 3; }
  .phase { grid-template-columns: 160px 1fr; gap: 12px 28px; }
  .contact-grid { grid-template-columns: 1fr; gap: 44px; }
}
@media (max-width: 560px) {
  .phase { grid-template-columns: 1fr; gap: 8px; }
  .contact-form .row { grid-template-columns: 1fr; }
}

/* =====================================================================
   FOOTER (minimal, paper)
   ===================================================================== */
.footer {
  margin-top: 0;
  padding: 42px 0;
  border-top: 1px solid var(--line);
}
.footer-inner {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 30px 60px;
}
.footer-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink); }
.footer-brand img {
  width: 27px; height: 43px; object-fit: contain;
  background: #000; border: 1px solid rgba(169, 129, 47, .42);
}
.footer-brand span { display: grid; }
.footer-brand strong { font-family: var(--caps); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
.footer-brand small { color: var(--muted); font-size: 11px; }
.footer nav { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 22px; }
.footer nav a {
  font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  text-decoration: none; color: var(--muted);
  transition: color .3s var(--ease);
}
.footer nav a:hover { color: var(--ink); }
.footer .legal-note {
  grid-column: 1 / -1;
  padding-top: 20px;
  border-top: 1px solid var(--line-soft);
  color: var(--faint);
  font-size: 12px;
  line-height: 1.7;
}

/* =====================================================================
   MESSAGE PAGE (thank-you) + LEGAL PAGES — v2 language
   ===================================================================== */
.nav-links-simple a { font-size: 11px; }

.message-page { padding: clamp(80px, 12vw, 170px) 0 clamp(70px, 9vw, 120px); }
.message-inner { max-width: 720px; }
.message-inner .eyebrow { margin-bottom: 20px; }
.message-inner h1 { font-size: clamp(34px, 5vw, 66px); line-height: 1; letter-spacing: -.03em; max-width: 16ch; }
.message-inner .section-lead { margin-top: 24px; }
.message-inner .section-lead a { color: var(--gold-deep); text-decoration: underline; text-underline-offset: 3px; }
.message-actions { margin-top: 38px; }

.legal-page { padding: clamp(64px, 8vw, 110px) 0 clamp(70px, 9vw, 120px); }
.legal-body { width: min(760px, 100%); }
.legal-body .eyebrow { margin-bottom: 18px; }
.legal-body h1 { font-size: clamp(34px, 5vw, 62px); line-height: 1; letter-spacing: -.03em; margin-bottom: 16px; }
.legal-body h2 { margin: 46px 0 12px; font-size: clamp(21px, 2.2vw, 27px); line-height: 1.15; letter-spacing: -.015em; }
.legal-body p, .legal-body li { color: var(--muted); font-size: 16px; line-height: 1.75; }
.legal-body p + p { margin-top: 14px; }
.legal-body ul { margin: 14px 0 0; padding-left: 22px; }
.legal-body li + li { margin-top: 8px; }
.legal-body li::marker { color: var(--gold-deep); }
.legal-body code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .92em; background: var(--paper-hi); padding: 1px 5px; border: 1px solid var(--line-soft); }
.legal-body a { color: var(--gold-deep); text-decoration: underline; text-underline-offset: 3px; }
.legal-body .updated { margin-bottom: 40px; padding-bottom: 22px; border-bottom: 1px solid var(--line); font-size: 13px; }

/* --- Skip link --- */
.skip-link {
  position: fixed;
  top: -80px; left: 18px;
  z-index: 1000;
  padding: 12px 16px;
  background: var(--ink);
  color: var(--paper-hi);
  font-size: 12px;
  text-decoration: none;
  transition: top .3s var(--ease);
}
.skip-link:focus { top: 16px; }

:focus-visible { outline: 2px solid var(--gold-deep); outline-offset: 4px; }
[tabindex="-1"]:focus { outline: none; }

/* =====================================================================
   MOTION  (gated on .enhanced; failsafe via .enhance-failed)
   ===================================================================== */
.enhanced [data-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .9s var(--ease) var(--d, 0s), transform .9s var(--ease) var(--d, 0s);
}
.enhanced [data-reveal].is-in { opacity: 1; transform: none; }

.enhanced [data-reveal-line] > span {
  transform: translateY(112%);
  transition: transform 1.05s var(--ease) var(--d, 0s);
}
.enhanced [data-reveal-line].is-in > span { transform: none; }

/* Media reveal: a paper curtain lifts to unveil the print. The image stays
   painted throughout (LCP-friendly) and merely settles from a subtle scale. */
/* Curtain retired after the animation — it can never linger over the image. */
.enhanced .frame[data-reveal-media].reveal-done::before { display: none; }

/* Shared framed-media primitive: mounted print on paper, with the
   paper-curtain reveal. Variants add only aspect ratio, crop and shadow. */
.frame { position: relative; overflow: hidden; background: var(--paper-lo); }
/* <picture> wraps the <img> for the AVIF source. Size it explicitly rather
   than relying on display:contents, which older Safari does not support and
   which would collapse the height:100% chain. */
.frame picture { display: block; width: 100%; height: 100%; }
.frame::after {                    /* thin mounted edge */
  content: ""; position: absolute; inset: 0; z-index: 2;
  border: 1px solid rgba(22, 21, 15, .10); pointer-events: none;
}
.frame img { width: 100%; height: 100%; object-fit: cover; }
.enhanced .frame[data-reveal-media]::before {
  content: ""; position: absolute; inset: -1px; z-index: 3; background: var(--paper);
  transform: translateY(0); transition: transform 1.1s var(--ease) var(--d, 0s); pointer-events: none;
}
.enhanced .frame[data-reveal-media].is-in::before { transform: translateY(-101%); }
.enhanced .frame[data-reveal-media] img { transform: scale(1.05); transition: transform 1.6s var(--ease) var(--d, 0s); }
.enhanced .frame[data-reveal-media].is-in img { transform: none; }

/* Failsafe — engine never initialized: expose everything, drop the curtains */
.enhance-failed [data-reveal],
.enhance-failed [data-reveal-line] > span,
.enhance-failed .frame[data-reveal-media] img {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}
.enhance-failed .frame[data-reveal-media]::before { display: none !important; }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 1080px) {
  .nav { flex-wrap: wrap; }

  /* Default (no JS): links visible + stacked below the brand, toggle hidden */
  .nav-links { flex-direction: column; align-items: flex-start; gap: 0; width: 100%; padding-bottom: 10px; }
  .nav-links a { width: 100%; padding: 12px 0; font-size: 13px; letter-spacing: .1em; }
  .nav-links .nav-cta { padding: 12px 0; border: 0; }

  /* Enhanced: a full-screen editorial overlay menu (Hermès / LV pattern) */
  .enhanced .nav { flex-wrap: nowrap; }
  .enhanced .menu-toggle { display: block; position: relative; z-index: 120; }
  .enhanced .nav-links {
    position: fixed;
    inset: 0;
    z-index: 90;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 0;
    width: 100%;
    padding: calc(var(--nav-h) + 20px) var(--gutter) 40px;
    background: var(--paper);
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-6px);
    transition: opacity .5s var(--ease), transform .55s var(--ease), visibility .5s;
  }
  .enhanced .nav-links.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
  .enhanced .nav-links a {
    width: 100%;
    padding: 15px 0;
    font-family: var(--serif);
    font-size: clamp(30px, 8.5vw, 46px);
    font-weight: 500;
    letter-spacing: -.02em;
    line-height: 1.05;
    text-transform: none;
    color: var(--ink);
    border-bottom: 1px solid var(--line-soft);
  }
  .enhanced .nav-links a:not(.nav-cta):hover { color: var(--gold-deep); }
  .enhanced .nav-links .nav-cta {
    margin-top: 26px;
    padding: 17px 24px;
    font-family: var(--sans);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: var(--paper-hi);
    background: var(--ink);
    border: 0;
    justify-content: center;
    align-self: stretch;
  }
  .enhanced .nav-links .nav-cta:hover { background: var(--gold-deep); color: var(--paper-hi); }

  /* Failsafe: engine didn't init → keep links visible inline, hide the dead toggle */
  .enhance-failed .menu-toggle { display: none; }
  .enhance-failed .nav-links {
    position: static; opacity: 1; visibility: visible; pointer-events: auto;
    transform: none; padding: 0 0 10px;
  }
  .enhance-failed .nav-links a { font-family: var(--sans); font-size: 13px; text-transform: uppercase; padding: 12px 0; }
  .enhance-failed .nav-links .nav-cta { margin-top: 8px; background: transparent; color: var(--ink); }

  /* Hero: single column, figure stays a framed, offset print (no full-width jump) */
  .hero-grid { grid-template-columns: 1fr; gap: clamp(36px, 8vw, 56px); }
  .hero-lede { max-width: none; }
  .hero-figure { order: 2; width: min(78%, 560px); margin-left: auto; }
  .house-index-head { grid-template-columns: 1fr 1fr; }
  .house-index-head .eyebrow { grid-column: 1 / -1; }
  .house-index-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 620px) {
  body { font-size: 16px; }
  :root { --nav-h: 66px; }
  .hero { padding-top: 28px; }
  .hero-title { font-size: clamp(58px, 19vw, 78px); }
  .hero-actions { flex-direction: column; align-items: flex-start; gap: 22px; }
  .hero-frame { aspect-ratio: 4 / 5; }
  .hero-brief { right: 12px; bottom: 12px; width: calc(100% - 24px); padding: 15px 16px 13px; }
  .hero-brief dl div { grid-template-columns: 74px 1fr; }
  .house-index { background: var(--paper-hi); }
  .house-index-head { grid-template-columns: 1fr; align-items: start; }
  .house-index-head .eyebrow { grid-column: auto; }
  .house-index-grid { grid-template-columns: 1fr; }
  .house-index-grid a { min-height: 220px; }
  .house-index-grid strong { margin-top: 44px; }
  .current-offer { padding: 64px 0; }
  .current-offer-grid article { min-height: 0; }
  .hero-figure { width: 100%; }
  .hero-facts { grid-template-columns: 1fr; }
  .hero-facts div { padding: 18px 0; }
  .hero-facts div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
  .care-standard { padding: 24px 20px; }
  .care-standard li { grid-template-columns: 34px 1fr; gap: 12px; }
  .footer-inner { grid-template-columns: 1fr; }
  .footer nav { justify-content: flex-start; }
}

/* =====================================================================
   REDUCED MOTION — expose everything, disable all decorative transitions
   ===================================================================== */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .enhanced [data-reveal],
  .enhanced [data-reveal-line] > span,
  .enhanced .frame[data-reveal-media] img {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .enhanced .frame[data-reveal-media]::before { display: none !important; }
  *, *::before, *::after {
    transition-duration: .001ms !important;
    animation-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

/* =====================================================================
   LUXURY INTERACTION LAYER (2026-07-29) — landing
   Mirrors the commerce-layer language: quiet zooms, expo-out easing,
   everything motion-safe. The existing reveal choreography is untouched;
   this adds hover depth after the reveal completes.
   ===================================================================== */

/* Gallery + operating-standard frames: deep, slow hover zoom. */
.gallery-item .frame img,
.standard-media .frame img,
.care-standard .frame img {
  transition: transform 1.4s var(--ease);
}
.gallery-item:hover .frame.is-in img,
.standard-media:hover .frame.is-in img,
.gallery-item:hover .frame img,
.standard-media:hover .frame img {
  transform: scale(1.035);
}

/* Hero: a barely-there breathing settle on hover — editorial, not flashy. */
.hero-frame img { transition: transform 2.2s var(--ease); }
.hero-figure:hover .hero-frame.is-in img { transform: scale(1.02); }

@media (prefers-reduced-motion: reduce) {
  .gallery-item:hover .frame img,
  .standard-media:hover .frame img,
  .hero-figure:hover .hero-frame img { transform: none !important; }
}

/* =====================================================================
   ABOUT / FOUNDER PAGE (2026-07-29)
   Ceremonial, type-and-crest driven. No portrait: the house does not
   publish a founder image until real photography exists (guardrail §4).
   ===================================================================== */

.about-hero {
  padding: clamp(90px, 12vw, 170px) 0 clamp(60px, 7vw, 100px);
  background: radial-gradient(120% 85% at 88% 0%, var(--paper-hi), var(--paper) 58%);
}
.about-title {
  margin: 0;
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(44px, 6.2vw, 88px);
  line-height: .98; letter-spacing: -.025em; color: var(--ink);
  max-width: 15ch;
}
.about-lede {
  margin: 34px 0 0;
  max-width: 56ch;
  color: var(--muted);
  font-size: clamp(16px, 1.35vw, 19px); line-height: 1.65;
}

/* The Name & The Crest */
.about-crest { padding: clamp(70px, 8vw, 120px) 0; border-top: 1px solid var(--line); }
.about-crest-grid {
  display: grid; grid-template-columns: minmax(260px, .8fr) 1.2fr;
  gap: clamp(46px, 6vw, 96px); align-items: center;
}
.crest-medallion-ceremonial {
  width: clamp(200px, 24vw, 320px); height: clamp(200px, 24vw, 320px);
  margin-bottom: 26px;
  /* Placement rule: the crest's black ground sits in a true #000 tile with
     the gold hairline — never floated on paper, never filtered. */
  background: #000;
  border: 1px solid rgba(169, 129, 47, .42);
  box-shadow: 0 34px 60px -34px rgba(13, 12, 10, .55);
}
.about-crest-copy h2 {
  margin: 0 0 22px;
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(34px, 4vw, 58px); line-height: 1; letter-spacing: -.02em; color: var(--ink);
}
.about-crest-copy p { max-width: 58ch; color: var(--text); font-size: 15.5px; line-height: 1.7; }
.about-crest-copy p + p { margin-top: 16px; color: var(--muted); }

/* The Founder */
.about-founder {
  padding: clamp(70px, 8vw, 120px) 0;
  border-top: 1px solid var(--line);
  background: var(--ink);
  color: var(--on-ink);
}
.about-founder-grid {
  display: grid; grid-template-columns: minmax(240px, .9fr) 1.1fr;
  gap: clamp(46px, 6vw, 96px); align-items: start;
}
.about-founder-head h2 {
  margin: 0;
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(40px, 5vw, 72px); line-height: .98; letter-spacing: -.02em;
  color: var(--on-ink); /* the generic h2 rule paints --ink: invisible on this dark section */
}
.about-founder-head h2 span {
  font-family: var(--caps); font-size: clamp(12px, 1.1vw, 14px); font-weight: 500;
  letter-spacing: .22em; text-transform: uppercase; color: var(--gold-hi);
}
.about-founder .eyebrow { color: var(--gold-hi); }
.about-founder-copy > p { max-width: 58ch; font-size: 15.5px; line-height: 1.7; color: var(--on-ink); }
.about-founder-copy > p + p { margin-top: 16px; color: var(--on-ink-soft); }
.about-convictions {
  list-style: none; margin: 40px 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0;
  border-top: 1px solid var(--line-ink); border-left: 1px solid var(--line-ink);
}
.about-convictions li {
  padding: 20px 22px 22px;
  border-right: 1px solid var(--line-ink); border-bottom: 1px solid var(--line-ink);
}
.about-convictions li > span {
  font-family: var(--caps); font-size: 10px; font-weight: 500;
  letter-spacing: .14em; color: var(--gold-hi);
}
.about-convictions strong {
  display: block; margin-top: 10px;
  font-family: var(--serif); font-size: 21px; font-weight: 500; color: var(--on-ink);
}
.about-convictions p { margin: 8px 0 0; font-size: 13px; line-height: 1.55; color: var(--on-ink-soft); }

/* Conversation */
.about-conversation { padding: clamp(80px, 10vw, 140px) 0; border-top: 1px solid var(--line); }
.about-conversation h2 {
  margin: 0;
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(34px, 4.2vw, 60px); line-height: 1; letter-spacing: -.025em; color: var(--ink);
}
.about-conversation .section-lead { margin-top: 20px; max-width: 46ch; }
.about-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 28px; margin-top: 34px; }
.about-actions .email-link { margin-top: 0; }

@media (max-width: 900px) {
  .about-crest-grid,
  .about-founder-grid { grid-template-columns: 1fr; }
  .about-convictions { grid-template-columns: 1fr; }
}
