/*
Theme Name: Ghanbarinia House
Theme URI: https://ghanbarinia.com
Author: Banix Studio / Codex
Description: A restrained luxury WordPress theme for The House of Ghanbarinia, built for limited Persian carpet showcases, editorial heritage content, discreet enquiries, and non-commerce collection curation.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
Text Domain: ghanbarinia
*/

@font-face {
  font-family: "Cormorant House";
  src: url("assets/fonts/cormorant-house.woff2") format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Cormorant House";
  src: url("assets/fonts/cormorant-house-italic.woff2") format("woff2");
  font-weight: 300 700;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Open Sans House";
  src: url("assets/fonts/open-sans-house.woff2") format("woff2");
  font-weight: 300 800;
  font-style: normal;
  font-display: swap;
}

:root {
  --soft-linen: #f8f3ec;
  --woven-parchment: #eee4d7;
  --parchment-deep: #dfd0bd;
  --house-burgundy: #220404;
  --shiraz-garnet: #4b1014;
  --aged-gold: #b58a3c;
  --ink: #1b1110;
  --muted: #806f61;
  --line: rgba(75, 16, 20, .16);
  --line-gold: rgba(181, 138, 60, .42);
  --shadow: 0 24px 80px rgba(34, 4, 4, .12);
  --display: "Cormorant House", "Cormorant Garamond", Georgia, serif;
  --body: "Open Sans House", "Open Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--soft-linen);
  color: var(--ink);
  font-family: var(--body);
  font-size: 15px;
  line-height: 1.68;
}

main {
  isolation: isolate;
}

body.nav-open { overflow: hidden; }

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

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

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

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  min-height: 92px;
  border-bottom: 1px solid rgba(248, 243, 236, .24);
  color: var(--soft-linen);
  transition: background .35s ease, color .35s ease, border-color .35s ease;
}

.site-header.is-scrolled,
.site-header.on-light {
  background: rgba(248, 243, 236, .95);
  color: var(--house-burgundy);
  border-color: var(--line);
  backdrop-filter: blur(18px);
}

.header-inner {
  width: min(1440px, calc(100% - 48px));
  min-height: 92px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 150px 1fr 150px;
  align-items: center;
  gap: 20px;
}

.menu-toggle,
.icon-button {
  width: 44px;
  height: 44px;
  border: 1px solid currentColor;
  background: transparent;
  color: inherit;
  display: inline-grid;
  place-items: center;
  cursor: pointer;
}

.menu-toggle span,
.menu-toggle::before,
.menu-toggle::after {
  content: "";
  width: 18px;
  height: 1px;
  background: currentColor;
  display: block;
  transition: transform .25s ease, opacity .25s ease;
}

.menu-toggle {
  gap: 5px;
  align-content: center;
}

.nav-open .menu-toggle span { opacity: 0; }
.nav-open .menu-toggle::before { transform: translateY(6px) rotate(45deg); }
.nav-open .menu-toggle::after { transform: translateY(-6px) rotate(-45deg); }

.brand-lockup {
  justify-self: center;
  position: relative;
  width: clamp(240px, 24vw, 360px);
  height: 78px;
  display: grid;
  place-items: center;
}

.brand-logo {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: opacity .32s ease, transform .32s ease;
}

.brand-logo-dark { opacity: 0; }
.brand-logo-light { opacity: 1; }

.site-header.is-scrolled .brand-logo-light,
.site-header.on-light .brand-logo-light { opacity: 0; }

.site-header.is-scrolled .brand-logo-dark,
.site-header.on-light .brand-logo-dark { opacity: 1; }

.header-actions {
  justify-self: end;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.header-enquire {
  border: 1px solid currentColor;
  min-height: 44px;
  padding: 0 17px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .68rem;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.site-menu {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(26, 37, 54, .82);
  color: #83858e;
  opacity: 0;
  pointer-events: none;
  transition: opacity .42s ease;
  backdrop-filter: blur(8px);
}

.menu-seal {
  width: 120px;
  height: 64px;
  display: grid;
  place-items: center;
}

.menu-seal img {
  width: 120px;
  height: 64px;
  object-fit: contain;
}

.nav-open .site-menu {
  opacity: 1;
  pointer-events: auto;
}

.menu-panel {
  width: min(34vw, 690px);
  min-height: 100%;
  margin: 0 auto 0 0;
  padding: 42px clamp(42px, 5vw, 96px) 80px;
  background: #fbfbfa;
  color: #898b95;
  transform: translateX(-34px);
  box-shadow: 24px 0 90px rgba(12, 18, 28, .12);
  transition:
    transform .62s cubic-bezier(.19, 1, .22, 1),
    width .62s cubic-bezier(.19, 1, .22, 1),
    box-shadow .62s ease;
}

.menu-level-2 .menu-panel { width: min(68vw, 1360px); }
.menu-level-3 .menu-panel { width: 100vw; }

.nav-open .menu-panel {
  transform: translateX(0);
}

.menu-topbar {
  display: grid;
  grid-template-columns: 80px 1fr 80px;
  align-items: center;
  margin-bottom: clamp(52px, 7vw, 92px);
}

.menu-close {
  position: fixed;
  left: var(--menu-close-left, 42px);
  top: var(--menu-close-top, 42px);
  z-index: 70;
  width: var(--menu-close-size, 44px);
  height: var(--menu-close-size, 44px);
  border: 0;
  background: transparent;
  color: #6f737e;
  cursor: pointer;
  font-size: 0;
  line-height: 0;
  padding: 0;
  opacity: 0;
  transform: rotate(-18deg) scale(.82);
  transition:
    opacity .42s ease .14s,
    transform .62s cubic-bezier(.19, 1, .22, 1) .12s,
    color .24s ease;
}

.nav-open .menu-close {
  opacity: 1;
  transform: rotate(0deg) scale(1);
}

.menu-close::before,
.menu-close::after {
  content: "";
  position: absolute;
  left: 8px;
  top: 21px;
  width: 28px;
  height: 2px;
  background: currentColor;
  transform-origin: center;
}

.menu-close::before { transform: rotate(45deg); }
.menu-close::after { transform: rotate(-45deg); }

.menu-close:hover {
  color: #9c8979;
  transform: rotate(90deg) scale(1.04);
}

.menu-seal {
  grid-column: 2;
  justify-self: center;
  color: #c8b46d;
  font-size: 2.2rem;
  line-height: 1;
}

.menu-language {
  grid-column: 3;
  justify-self: end;
  color: #9c8979;
  border-bottom: 1px solid currentColor;
  font-size: .9rem;
  letter-spacing: .08em;
}

.menu-columns {
  display: grid;
  grid-template-columns: minmax(220px, 1fr);
  gap: clamp(46px, 7vw, 118px);
  align-items: start;
  position: relative;
}

.menu-level-2 .menu-columns {
  grid-template-columns: minmax(220px, .72fr) minmax(270px, .8fr);
}

.menu-level-3 .menu-columns {
  grid-template-columns: minmax(220px, .72fr) minmax(270px, .8fr) minmax(270px, .82fr);
}

.menu-primary {
  list-style: none;
  padding: 0;
  margin: 0;
}

.menu-secondary,
.menu-tertiary {
  display: block;
  position: absolute;
  list-style: none;
  width: 0;
  height: 0;
  overflow: hidden;
  padding: 0;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  filter: blur(10px);
  transform: translateX(34px) translateY(10px);
  transition:
    opacity .46s ease,
    filter .58s ease,
    transform .68s cubic-bezier(.19, 1, .22, 1);
}

.menu-secondary { grid-column: 2; grid-row: 1; }
.menu-tertiary { grid-column: 3; grid-row: 1; }

.menu-secondary.is-active,
.menu-tertiary.is-active {
  position: relative;
  width: auto;
  height: auto;
  overflow: visible;
  padding: 54px 0 0;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  filter: blur(0);
  transform: translateX(0) translateY(0);
}

.menu-secondary:not(.is-active),
.menu-tertiary:not(.is-active) {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.menu-primary a,
.menu-secondary a,
.menu-tertiary a,
.menu-branch {
  width: 100%;
  border: 0;
  background: transparent;
  color: #8a8d97;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0;
  cursor: pointer;
  font-family: var(--body);
  font-size: clamp(1.05rem, 1.32vw, 1.42rem);
  font-weight: 300;
  letter-spacing: .055em;
  line-height: 1.22;
  text-align: left;
  text-transform: uppercase;
}

.menu-primary li,
.menu-secondary li,
.menu-tertiary li { margin: 0 0 24px; }

.nav-open .menu-primary li {
  animation: menuItemIn .72s cubic-bezier(.19, 1, .22, 1) both;
}

.nav-open .menu-primary li:nth-child(1) { animation-delay: .08s; }
.nav-open .menu-primary li:nth-child(2) { animation-delay: .13s; }
.nav-open .menu-primary li:nth-child(3) { animation-delay: .18s; }
.nav-open .menu-primary li:nth-child(4) { animation-delay: .23s; }
.nav-open .menu-primary li:nth-child(5) { animation-delay: .28s; }
.nav-open .menu-primary li:nth-child(6) { animation-delay: .33s; }
.nav-open .menu-primary li:nth-child(7) { animation-delay: .38s; }

.menu-secondary.is-active li,
.menu-tertiary.is-active li {
  animation: submenuItemIn .68s cubic-bezier(.19, 1, .22, 1) both;
}

.menu-secondary.is-active li:nth-child(1),
.menu-tertiary.is-active li:nth-child(1) { animation-delay: .06s; }
.menu-secondary.is-active li:nth-child(2),
.menu-tertiary.is-active li:nth-child(2) { animation-delay: .11s; }
.menu-secondary.is-active li:nth-child(3),
.menu-tertiary.is-active li:nth-child(3) { animation-delay: .16s; }
.menu-secondary.is-active li:nth-child(4),
.menu-tertiary.is-active li:nth-child(4) { animation-delay: .21s; }
.menu-secondary.is-active li:nth-child(5),
.menu-tertiary.is-active li:nth-child(5) { animation-delay: .26s; }
.menu-secondary.is-active li:nth-child(6),
.menu-tertiary.is-active li:nth-child(6) { animation-delay: .31s; }
.menu-secondary.is-active li:nth-child(7),
.menu-tertiary.is-active li:nth-child(7) { animation-delay: .36s; }
.menu-secondary.is-active li:nth-child(8),
.menu-tertiary.is-active li:nth-child(8) { animation-delay: .41s; }
.menu-secondary.is-active li:nth-child(9),
.menu-tertiary.is-active li:nth-child(9) { animation-delay: .46s; }

.menu-primary .italic {
  color: #c7c9cc;
  font-family: var(--display);
  font-style: italic;
  letter-spacing: .02em;
  text-transform: none;
}

.menu-branch span {
  color: #aa9a8c;
  font-size: 1.5rem;
  line-height: 1;
  transition: transform .42s cubic-bezier(.19, 1, .22, 1), color .24s ease;
}

.menu-branch:hover span,
.menu-branch.is-active span {
  color: #9c8979;
  transform: translateX(9px);
}

.menu-primary a:hover,
.menu-secondary a:hover,
.menu-tertiary a:hover,
.menu-branch:hover,
.menu-branch.is-active,
.menu-secondary .menu-branch.is-active {
  color: #9f8d80;
}

.menu-branch.is-active::after,
.menu-secondary .menu-branch.is-active::after {
  content: "";
  position: absolute;
}

.menu-branch.is-active,
.menu-secondary .menu-branch.is-active,
.menu-primary a:not(.muted):hover,
.menu-secondary a:hover {
  text-decoration: underline;
  text-underline-offset: 8px;
  text-decoration-thickness: 1px;
}

.menu-bottom-link {
  margin-top: clamp(54px, 8vh, 96px);
  opacity: 0;
  transform: translateY(18px);
}

.nav-open .menu-bottom-link {
  animation: menuBottomIn .78s cubic-bezier(.19, 1, .22, 1) .46s both;
}

.menu-bottom-link a {
  width: min(100%, 320px);
  border-top: 1px solid rgba(159, 141, 128, .38);
  color: #7e828d;
  display: grid;
  gap: 8px;
  padding-top: 18px;
}

.menu-bottom-link span {
  color: #b89535;
  font-family: var(--body);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
}

.menu-bottom-link strong {
  color: #2d1e1c;
  font-family: var(--display);
  font-size: clamp(1.75rem, 2.3vw, 2.7rem);
  font-weight: 300;
  line-height: 1;
}

.menu-bottom-link a:hover strong {
  color: #9c8979;
}

@keyframes menuItemIn {
  from {
    opacity: 0;
    filter: blur(8px);
    transform: translateX(-18px);
  }
  to {
    opacity: 1;
    filter: blur(0);
    transform: translateX(0);
  }
}

@keyframes menuBottomIn {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes submenuItemIn {
  from {
    opacity: 0;
    filter: blur(8px);
    transform: translateX(28px);
  }
  to {
    opacity: 1;
    filter: blur(0);
    transform: translateX(0);
  }
}

.eyebrow {
  margin: 0 0 16px;
  color: var(--aged-gold);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.hero {
  min-height: 100svh;
  position: relative;
  z-index: 1;
  display: grid;
  align-items: end;
  overflow: hidden;
  background: var(--house-burgundy);
  color: var(--soft-linen);
}

.hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: var(--house-burgundy);
}

.hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.92) contrast(1.04);
}

.hero-media video {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: saturate(.92) contrast(1.04);
}

.hero-media video + img {
  display: none;
}

.hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(34, 4, 4, .35), rgba(34, 4, 4, .08) 36%, rgba(34, 4, 4, .76)),
    linear-gradient(90deg, rgba(34, 4, 4, .54), transparent 52%, rgba(34, 4, 4, .16));
}

.hero-content {
  position: relative;
  z-index: 1;
  width: min(1240px, calc(100% - 48px));
  margin: 0 auto;
  padding: 0 0 clamp(44px, 7vw, 88px);
}

.hero-kicker {
  margin: 0 0 18px;
  color: var(--aged-gold);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .25em;
  text-transform: uppercase;
}

.hero h1,
.page-hero h1 {
  max-width: 760px;
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2.55rem, 6.4vw, 6.8rem);
  font-weight: 300;
  line-height: .9;
  letter-spacing: 0;
}

.hero-copy {
  max-width: 460px;
  margin: 20px 0 0;
  color: rgba(248, 243, 236, .84);
  font-size: clamp(.88rem, 1.05vw, 1.02rem);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 26px;
}

.button,
.wp-block-button__link,
input[type="submit"] {
  min-height: 42px;
  border: 1px solid var(--aged-gold);
  border-radius: 0;
  background: transparent;
  color: inherit;
  padding: 10px 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .17em;
  text-transform: uppercase;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}

.button:hover,
.wp-block-button__link:hover,
input[type="submit"]:hover {
  background: var(--aged-gold);
  color: var(--house-burgundy);
}

.button.dark {
  color: var(--house-burgundy);
  border-color: var(--shiraz-garnet);
}

.button.dark:hover {
  background: var(--shiraz-garnet);
  color: var(--soft-linen);
}

.section {
  padding: clamp(58px, 8vw, 112px) 0;
  border-top: 1px solid var(--line);
}

.section.dark {
  background: var(--house-burgundy);
  color: var(--soft-linen);
  border-top-color: rgba(181, 138, 60, .24);
}

.section.garnet {
  background: var(--shiraz-garnet);
  color: var(--soft-linen);
}

.film-section {
  position: relative;
  z-index: 2;
  --film-lift: 0px;
  margin-top: 0;
  margin-bottom: calc(var(--film-lift) * -1);
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #fff;
  color: var(--ink);
  border-top: 0;
  box-shadow: none;
  transform: translateY(calc(var(--film-lift) * -1)) translateZ(0);
  will-change: transform;
}

.film-section::before {
  content: none;
}

.section-film-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.section-film-media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.92) contrast(1.03);
}

.section-film-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(34, 4, 4, .28), rgba(34, 4, 4, .18) 44%, rgba(34, 4, 4, .58)),
    linear-gradient(90deg, rgba(34, 4, 4, .4), transparent 55%, rgba(34, 4, 4, .32));
}

.film-section .container {
  position: relative;
  z-index: 2;
}

.film-section .statement p {
  color: var(--ink);
  text-shadow: none;
}

.origin-film-section {
  position: relative;
  min-height: clamp(520px, 78vh, 840px);
  display: grid;
  align-items: end;
  overflow: hidden;
  background: var(--house-burgundy);
  color: var(--soft-linen);
}

.origin-film-section .section-film-media::after {
  background:
    linear-gradient(180deg, rgba(34, 4, 4, .22), rgba(34, 4, 4, .08) 40%, rgba(34, 4, 4, .72)),
    linear-gradient(90deg, rgba(34, 4, 4, .66), rgba(34, 4, 4, .16) 55%, rgba(34, 4, 4, .36));
}

.origin-film-copy {
  position: relative;
  z-index: 2;
  padding-bottom: clamp(54px, 8vw, 104px);
}

.origin-film-copy h2 {
  max-width: 700px;
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2rem, 4.4vw, 5rem);
  font-weight: 300;
  line-height: 1.02;
}

.origin-film-copy p:not(.eyebrow) {
  max-width: 430px;
  margin: 18px 0 0;
  color: rgba(248, 243, 236, .76);
}

.container {
  width: min(1240px, calc(100% - 48px));
  margin: 0 auto;
}

h1,
h2,
h3,
.piece-title,
.single-title,
.archive-title {
  text-wrap: balance;
  letter-spacing: .01em;
}

p,
li {
  text-wrap: pretty;
}

.eyebrow,
.hero-kicker,
.piece-origin,
.spec-row dt,
.filter-panel h2 {
  position: relative;
  display: inline-block;
}

.eyebrow::after,
.hero-kicker::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -9px;
  width: 38px;
  height: 1px;
  background: currentColor;
  opacity: .45;
  transform-origin: left;
  transform: scaleX(.42);
  transition: transform .85s cubic-bezier(.2, .7, .1, 1), opacity .85s ease;
}

.reveal-text {
  opacity: 0;
  transform: translateY(24px);
  filter: blur(7px);
  transition:
    opacity .95s cubic-bezier(.2, .7, .1, 1),
    transform .95s cubic-bezier(.2, .7, .1, 1),
    filter .95s ease;
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform, filter;
}

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

.reveal-text.is-visible.eyebrow::after,
.reveal-text.is-visible.hero-kicker::after {
  opacity: .7;
  transform: scaleX(1);
}

.hero h1.reveal-text,
.statement p.reveal-text,
.origin-film-copy h2.reveal-text {
  transform: translateY(34px);
}

.hero h1.reveal-text.is-visible,
.statement p.reveal-text.is-visible,
.origin-film-copy h2.reveal-text.is-visible {
  transform: translateY(0);
}

.piece-card.reveal-text,
.journal-card.reveal-text,
.location-card.reveal-text,
.weave-card.reveal-text {
  transform: translateY(34px);
}

@media (prefers-reduced-motion: reduce) {
  .reveal-text {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }

  .piece-card img {
    animation: none;
  }

  .piece-card figure,
  .collection-showcase .section-head,
  .piece-info {
    transform: none;
  }
}

/* 2026 light editorial direction: white space first, burgundy as an accent. */
body {
  background: #fff;
}

.section {
  padding: clamp(100px, 12vw, 180px) 0;
  border-top-color: rgba(27, 17, 16, .09);
}

.section.dark,
.section.garnet {
  background: #fff;
  color: var(--ink);
  border-top-color: rgba(27, 17, 16, .09);
}

.section.garnet {
  background: #fbfaf8;
}

.section.dark .statement p,
.section.garnet .statement p,
.section.dark .section-head p,
.section.garnet .section-head p,
.section.dark .editorial-copy p,
.section.garnet .editorial-copy p {
  color: var(--ink);
}

.section-head {
  gap: clamp(48px, 9vw, 140px);
  margin-bottom: clamp(64px, 8vw, 112px);
}

.section-head p,
.editorial-copy p,
.piece-specs {
  line-height: 1.9;
}

.pieces-grid {
  gap: clamp(52px, 7vw, 110px);
}

.editorial-split {
  gap: clamp(64px, 10vw, 160px);
}

.editorial-copy p {
  margin-top: 34px;
}

.section.dark .button,
.section.garnet .button {
  color: var(--house-burgundy);
  border-color: rgba(75, 16, 20, .42);
}

.section.dark .button:hover,
.section.garnet .button:hover {
  background: var(--house-burgundy);
  color: #fff;
}

@media (max-width: 640px) {
  .section {
    padding: 84px 0;
  }

  .section-head {
    gap: 28px;
    margin-bottom: 56px;
  }

  .pieces-grid,
  .editorial-split {
    gap: 56px;
  }
}

/* Final typography lock: local font files supplied in the developer handoff. */
:root {
  --display: "Cormorant House";
  --body: "Open Sans House";
  --house-display: "Cormorant House";
  --house-sans: "Open Sans House";
}

html,
body,
button,
input,
textarea,
select,
option {
  font-family: "Open Sans House", sans-serif;
}

body :where(
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  blockquote,
  .hero-title,
  .piece-title,
  .signature,
  .page-index,
  .journal-art,
  .event-art,
  .location-image,
  .region-copy h2,
  .next-chapter a,
  .article-intro
) {
  font-family: "Cormorant House", serif;
}

/* Developer handoff page content */
:root {
  --paper: var(--soft-linen);
  --ivory: var(--woven-parchment);
  --garnet: var(--shiraz-garnet);
  --gold: var(--aged-gold);
  --house-display: var(--display);
  --house-sans: var(--body);
  --header: 92px;
}

.section-heading-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 75px;
}

.section-heading-row h2 {
  margin: 18px 0 0;
  font-family: var(--display);
  font-size: 4.5rem;
  font-weight: 300;
}

.portrait-placeholder {
  min-height: 520px;
  display: grid;
  place-items: center;
  color: rgba(248, 243, 236, .72);
  font-size: .72rem;
  letter-spacing: .2em;
  text-align: center;
}

.press-list {
  display: block;
  margin-bottom: 55px;
}

.press-list a {
  display: grid;
  grid-template-columns: 180px 1fr 120px;
  align-items: center;
  padding: 35px 0;
  border: 0;
  border-top: 1px solid var(--line);
  background: transparent;
}

.press-list a:last-child { border-bottom: 1px solid var(--line); }
.press-list h3 { margin: 0; }

.image-production {
  background-color: var(--house-burgundy);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.weave-wide-image {
  height: min(80vh, 900px);
  background-image: url("assets/images/weave-process.webp");
  background-position: center 45%;
}

.chapter-grid article { padding-bottom: 28px; }
.chapter-art { height: 460px; margin: -28px -28px 26px; }
.chapter-regions .chapter-art { background: linear-gradient(35deg, rgba(34,4,4,.82), transparent), repeating-conic-gradient(from 45deg, #8b6b38 0 4deg, #4b1014 4deg 12deg, #dfc794 12deg 18deg); }
.chapter-materials .chapter-art { background: url("assets/images/weave-process.webp") center / cover; }
.chapter-making .chapter-art { background: repeating-linear-gradient(92deg, #c5a76d 0 5px, #f0dfbc 5px 7px, #4b1014 7px 11px); }

.making-image {
  height: min(80vh, 860px);
  background-image: url("assets/images/weave-process.webp");
}

.making-lead > p {
  margin: 0;
  padding: 16px 0 0;
  color: var(--aged-gold);
  font-size: .68rem;
  letter-spacing: .2em;
}

.world-lead-image { height: 80vh; background-image: url("assets/images/world-exhibition.webp"); }
.event-art { background-image: linear-gradient(20deg, rgba(34,4,4,.72), transparent 65%), url("assets/images/world-exhibition.webp"); background-size: cover; }
.event-1 { background-position: 70% center; filter: sepia(.16); }
.event-2 { background-position: 28% center; filter: saturate(.68) contrast(.95); }
.location-image { background-image: linear-gradient(20deg, rgba(34,4,4,.75), transparent 60%), url("assets/images/world-exhibition.webp"); background-size: cover; }
.location-image.tehran { background-position: 75% center; filter: sepia(.18); }

/* Handoff carpet representations */
.carpet-visual {
  position: relative;
  height: clamp(450px, 62vw, 780px);
  padding: 5.5%;
  overflow: hidden;
  background-color: #7c1b23;
  background-size: 72px 72px;
  box-shadow: inset 0 0 0 6px #af8c56, inset 0 0 0 13px #481015, inset 0 0 70px rgba(0,0,0,.32);
  transition: transform .6s cubic-bezier(.2,.7,.2,1);
}

.carpet-visual::before,
.carpet-visual::after { position: absolute; content: ""; inset: 4%; border: 4px double #d7b572; }
.carpet-visual::after { inset: 8%; border-width: 1px; }
.carpet-inner { position: absolute; inset: 12%; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(218,184,113,.75); background: radial-gradient(ellipse at center, #d1ad68 0 4%, #6a1019 4.5% 10%, #d1ad68 10.5% 12%, #2d2134 12.5% 18%, transparent 18.5%), repeating-conic-gradient(from 45deg at center, rgba(213,178,105,.6) 0 2deg, transparent 2deg 11deg); }
.carpet-inner i { position: absolute; width: 42%; aspect-ratio: 1; transform: rotate(45deg); border: 2px solid #c49d5d; }
.carpet-inner i:nth-child(2) { width: 28%; border-color: #e1c48b; }
.carpet-inner i:nth-child(3) { width: 12%; background: #6a111a; }
.garden { background-color: #423b2e; background-image: radial-gradient(circle, #b28d55 0 2px, transparent 3px), radial-gradient(circle, #7b1b21 0 5px, transparent 6px); background-position: 0 0, 35px 35px; }
.garden .carpet-inner { background: radial-gradient(ellipse, #9d7d43 0 7%, #3f5746 7.5% 16%, #7c1b21 16.5% 21%, transparent 22%), repeating-radial-gradient(circle, transparent 0 12px, rgba(208,170,95,.52) 13px 15px); }
.field { background-color: #d1b78b; background-image: linear-gradient(45deg, rgba(75,16,20,.85) 25%, transparent 25% 75%, rgba(75,16,20,.85) 75%), linear-gradient(-45deg, rgba(54,61,49,.75) 25%, transparent 25% 75%, rgba(54,61,49,.75) 75%); background-size: 48px 48px; }
.field .carpet-inner { background: radial-gradient(circle, #8e6b3b 0 9%, #491016 9.5% 15%, #d7c59c 15.5% 24%, transparent 25%), repeating-conic-gradient(#4b1014 0 4deg, transparent 4deg 18deg); }
.silk { background-color: #c5b38e; background-image: radial-gradient(circle at center, rgba(83,31,34,.75) 0 2px, transparent 3px); background-size: 23px 23px; }
.silk .carpet-inner { background: radial-gradient(circle, #d9c9a5 0 10%, #7b4750 10.5% 13%, #ac9060 13.5% 18%, #d7c9ac 18.5% 28%, transparent 29%), repeating-conic-gradient(rgba(111,71,79,.8) 0 1deg, transparent 1deg 10deg); }
.heriz { background-color: #37433b; background-image: linear-gradient(30deg, rgba(196,147,77,.7) 12%, transparent 12.5% 87%, rgba(196,147,77,.7) 87.5%), linear-gradient(150deg, rgba(120,27,32,.8) 12%, transparent 12.5% 87%, rgba(120,27,32,.8) 87.5%); background-size: 64px 110px; }
.heriz .carpet-inner { background: repeating-conic-gradient(from 22deg, #9a232a 0 8deg, #d0a45d 8deg 12deg, #37433b 12deg 28deg); clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); inset: 21%; }
.kerman { background-color: #263942; background-image: radial-gradient(ellipse, #b98276 0 3px, transparent 4px); background-size: 42px 55px; }
.kerman .carpet-inner { background: radial-gradient(ellipse, #cfb177 0 6%, #70333b 6.5% 14%, #29434a 14.5% 20%, transparent 21%), repeating-radial-gradient(ellipse, rgba(205,172,112,.7) 0 2px, transparent 3px 18px); }

/* Collection and piece pages from the handoff */
.collection-toolbar { position: sticky; z-index: 30; top: var(--header); display: flex; align-items: center; justify-content: space-between; padding: 24px 5vw; background: rgba(248,244,237,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.collection-toolbar p { margin: 0; font-size: .68rem; letter-spacing: .13em; text-transform: uppercase; }
.collection-toolbar p strong { margin-right: 12px; color: var(--aged-gold); font-size: 1.1rem; }
.collection-toolbar button { width: 190px; display: flex; justify-content: space-between; cursor: pointer; border: 0; background: none; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.filter-drawer { position: sticky; z-index: 29; top: calc(var(--header) + 76px); display: grid; max-height: 0; padding: 0 5vw; grid-template-columns: repeat(3, 1fr) 160px; gap: 35px; overflow: hidden; background: var(--shiraz-garnet); color: var(--soft-linen); transition: max-height .5s, padding .5s; }
.filter-drawer.open { max-height: 420px; padding-top: 45px; padding-bottom: 45px; }
.filter-drawer h3 { margin: 0 0 16px; color: #caa976; font: 500 .62rem/1 var(--body); letter-spacing: .18em; text-transform: uppercase; }
.filter-drawer div button { display: block; margin: 8px 0; padding: 0; cursor: pointer; border: 0; background: none; color: rgba(248,244,237,.6); font-size: .78rem; }
.filter-drawer div button.selected { color: white; }
.clear-filter { align-self: end; padding: 12px; cursor: pointer; border: 1px solid rgba(255,255,255,.3); background: none; color: white; font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; }
.collection-page-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 85px 30px; padding-top: 90px; }
.collection-card:nth-child(even) { margin-top: 110px; }
.collection-card[hidden] { display: none; }
.piece-image { position: relative; display: block; overflow: hidden; background: #d4c8b8; }
.piece-image > span { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px; color: white; background: linear-gradient(transparent, rgba(34,4,4,.65)); font-size: .62rem; letter-spacing: .15em; text-transform: uppercase; opacity: 0; transform: translateY(10px); transition: .35s; }
.piece-image:hover > span { opacity: 1; transform: none; }
.piece-image:hover .carpet-visual { transform: scale(1.025); }
.piece-meta { display: grid; grid-template-columns: 55px 1fr auto; align-items: baseline; padding-top: 18px; }
.piece-meta span { color: var(--aged-gold); font-size: .62rem; }
.piece-meta h3 { margin: 0; font-family: var(--display); font-size: 1.9rem; font-weight: 300; }
.piece-meta p { margin: 0; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.empty-state { grid-column: 1/-1; padding: 100px; text-align: center; }
.empty-state h2 { font-size: 3rem; }
.empty-state button { cursor: pointer; border: 0; border-bottom: 1px solid; background: none; }

.piece-hero { position: relative; min-height: 100svh; padding: calc(var(--header) + 50px) 5vw 55px; background: #e3d8c8; }
.piece-breadcrumb { display: flex; gap: 12px; font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }
.piece-display { position: absolute; left: 50%; top: 51%; width: min(36vw, 485px); transform: translate(-50%, -50%); filter: drop-shadow(0 26px 28px rgba(50,20,15,.25)); }
.piece-display .carpet-visual { height: min(70vh, 680px); }
.piece-page .piece-title { position: absolute; left: 7vw; bottom: 11vh; z-index: 2; }
.piece-page .piece-title p { color: var(--aged-gold); font-size: .62rem; letter-spacing: .16em; }
.piece-page .piece-title h1 { margin: 12px 0; font-family: var(--display); font-size: 6.5rem; font-weight: 300; line-height: .9; }
.piece-page .piece-title > span { font-size: .78rem; }
.piece-scroll { position: absolute; right: 5vw; bottom: 55px; font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; }
.piece-details { display: grid; grid-template-columns: 1fr 1fr; gap: 9vw; }
.piece-details h2 { font-family: var(--display); font-size: 4.5rem; font-weight: 300; line-height: .95; }
.detail-copy > p { margin: 0 0 55px; }
.detail-copy dl { margin: 0 0 45px; }
.detail-copy dl div { display: flex; justify-content: space-between; padding: 16px 0; border-top: 1px solid var(--line); }
.detail-copy dl div:last-child { border-bottom: 1px solid var(--line); }
.detail-copy dt { color: var(--muted); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.detail-copy dd { margin: 0; }
.piece-close { display: grid; min-height: 800px; grid-template-columns: 58% 42%; background: var(--shiraz-garnet); color: var(--soft-linen); }
.detail-crop { overflow: hidden; }
.detail-crop .carpet-visual { width: 150%; height: 100%; transform: translateX(-15%) scale(1.15); }
.piece-close > div:last-child { align-self: center; padding: 7vw; }
.piece-close h2 { margin: 25px 0; font-family: var(--display); font-size: 4.5rem; font-weight: 300; line-height: .95; }

/* Journal pages from the handoff */
.journal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 100px 30px; }
.journal-card { display: block; }
.journal-card:nth-child(odd):not(:first-child) { margin-top: 110px; }
.journal-card.lead-story { grid-column: 1/-1; display: grid; grid-template-columns: 1.4fr .8fr; column-gap: 7vw; align-items: start; padding: 0; border: 0; background: transparent; }
.lead-story .journal-art { grid-row: 1/6; height: 700px; }
.journal-art { height: 560px; overflow: hidden; }
.journal-art .carpet-visual { height: 100%; }
.journal-card > span { display: block; margin-top: 25px; color: var(--aged-gold); font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; }
.journal-card h2 { margin: 16px 0; font-family: var(--display); font-size: 3.5rem; font-weight: 300; line-height: 1; }
.journal-card > p { max-width: 480px; }
.journal-card > b { font-size: .62rem; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; }
.article-header { padding: calc(var(--header) + 110px) 7vw 100px; text-align: center; }
.article-header > p:first-child { color: var(--aged-gold); font-size: .62rem; letter-spacing: .17em; }
.article-header h1 { margin: 35px 0; font-family: var(--display); font-size: 7.5rem; font-weight: 300; line-height: .9; }
.article-header > p:last-child { max-width: 550px; margin: 0 auto; }
.article-hero { width: 56%; max-width: 850px; margin: 0 auto 130px; }
.article-hero .carpet-visual { height: 850px; }
.article-body { max-width: 750px; margin: 0 auto; padding: 0 30px 150px; }
.article-body p { margin-bottom: 35px; }
.article-body .article-intro { margin-bottom: 90px; font-family: var(--display); font-size: 2rem; font-weight: 300; line-height: 1.4; }
.article-body h2 { margin: 80px 0 25px; font-family: var(--display); font-size: 3.2rem; font-weight: 300; }
.article-body .quote-band { width: calc(100vw - 20px); margin: 100px 0 100px 50%; padding: 110px 8vw; transform: translateX(-50%); }
.article-body .quote-band p { margin: 0 auto; font-size: 3.5rem; }

.thank-you { min-height: 100svh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 100px 30px; background: var(--shiraz-garnet); color: var(--soft-linen); text-align: center; }
.thank-you[hidden] { display: none; }
.thank-you > p:first-child { color: #d1b17c; font-size: .62rem; letter-spacing: .18em; }
.thank-you h1 { margin: 30px 0; font-family: var(--display); font-size: 9rem; font-weight: 300; }
.thank-you a { margin-top: 45px; border-bottom: 1px solid; font-size: .68rem; letter-spacing: .13em; text-transform: uppercase; }

@media (max-width: 980px) {
  .press-list a,
  .journal-card.lead-story,
  .piece-details,
  .piece-close { grid-template-columns: 1fr; }
  .press-list a { gap: 18px; }
  .collection-page-grid,
  .journal-grid { grid-template-columns: 1fr; }
  .collection-card:nth-child(even),
  .journal-card:nth-child(odd):not(:first-child) { margin-top: 0; }
  .filter-drawer { grid-template-columns: 1fr 1fr; overflow-y: auto; }
  .filter-drawer.open { max-height: 70vh; }
  .piece-display { position: relative; top: auto; left: auto; width: min(82vw, 485px); margin: 70px auto; transform: none; }
  .piece-page .piece-title { position: relative; left: auto; bottom: auto; }
  .piece-close { min-height: auto; }
  .detail-crop { min-height: 620px; }
  .article-hero { width: calc(100% - 56px); }
}

@media (max-width: 640px) {
  :root { --header: 76px; }
  .section-heading-row h2,
  .piece-details h2,
  .piece-close h2,
  .journal-card h2,
  .article-body h2 { font-size: 2.6rem; }
  .piece-page .piece-title h1,
  .article-header h1,
  .thank-you h1 { font-size: 4.2rem; }
  .filter-drawer { grid-template-columns: 1fr; }
  .collection-toolbar button { width: 150px; }
  .piece-meta { grid-template-columns: 38px 1fr; }
  .piece-meta p { grid-column: 2; }
  .lead-story .journal-art,
  .journal-art,
  .article-hero .carpet-visual { height: 520px; }
}

.narrow { max-width: 780px; }

.statement {
  max-width: 780px;
  margin: 0 auto;
  text-align: center;
}

.statement p {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(1.55rem, 3.8vw, 4.15rem);
  line-height: 1.08;
  color: var(--house-burgundy);
}

.section.dark .statement p,
.section.garnet .statement p { color: var(--soft-linen); }

.section-head {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(320px, .55fr);
  gap: clamp(32px, 7vw, 90px);
  align-items: end;
  margin-bottom: 38px;
}

.section-head h2,
.editorial-copy h2,
.single-title,
.archive-title {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(1.8rem, 3.8vw, 4.2rem);
  font-weight: 300;
  line-height: 1.02;
}

.section-head p {
  margin: 0;
  color: var(--muted);
}

.section.dark .section-head p,
.section.garnet .section-head p { color: rgba(248, 243, 236, .72); }

.pieces-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(28px, 5vw, 74px);
  background: transparent;
  border: 0;
  align-items: end;
}

.collection-showcase {
  position: relative;
  overflow: clip;
  --showcase-progress: 0;
  --pointer-x: 0px;
  --pointer-y: 0px;
}

.collection-showcase::before,
.collection-showcase::after {
  content: "";
  position: absolute;
  pointer-events: none;
  opacity: calc(.16 + (var(--showcase-progress) * .18));
}

.collection-showcase::before {
  inset: 7% 4% auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(181, 138, 60, .65), transparent);
  transform: scaleX(calc(.28 + (var(--showcase-progress) * .72)));
  transform-origin: center;
}

.collection-showcase::after {
  width: 46vw;
  height: 46vw;
  left: calc(50% + (var(--pointer-x) * .04));
  top: calc(34% + (var(--pointer-y) * .04));
  border-radius: 50%;
  background: radial-gradient(circle, rgba(181, 138, 60, .2), rgba(181, 138, 60, 0) 64%);
  filter: blur(12px);
  transform: translate(-50%, -50%) scale(calc(.72 + (var(--showcase-progress) * .32)));
}

.collection-showcase .container {
  position: relative;
  z-index: 1;
}

.collection-showcase .section-head {
  transform: translateY(calc((1 - var(--showcase-progress)) * 24px));
}

.piece-card {
  background: transparent;
  min-height: 100%;
  --float-speed: 7.2s;
  --float-distance: 12px;
  --tilt-x: 0deg;
  --tilt-y: 0deg;
  --drift-x: 0px;
  --drift-y: 0px;
  perspective: 900px;
}

.piece-card a { display: block; min-height: 100%; }

.piece-card:nth-child(2) {
  --float-speed: 8.6s;
  --float-distance: 16px;
}

.piece-card:nth-child(3) {
  --float-speed: 7.8s;
  --float-distance: 14px;
}

.piece-card figure {
  margin: 0;
  aspect-ratio: 4 / 5.18;
  background: transparent;
  overflow: visible;
  display: grid;
  place-items: end center;
  position: relative;
  transform:
    translate3d(var(--drift-x), var(--drift-y), 0)
    rotateX(var(--tilt-x))
    rotateY(var(--tilt-y));
  transform-style: preserve-3d;
  transition: transform .65s cubic-bezier(.2, .7, .1, 1);
}

.piece-card img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 0;
  filter: drop-shadow(0 26px 34px rgba(34, 4, 4, .14));
  animation: carpetFloat var(--float-speed) ease-in-out infinite;
  transition: transform .7s cubic-bezier(.2, .7, .1, 1), filter .7s ease, opacity .7s ease;
  will-change: transform, filter;
}

.piece-card:nth-child(2) img { animation-delay: -2.4s; }
.piece-card:nth-child(3) img { animation-delay: -4.1s; }

.piece-card figure::before {
  content: "";
  position: absolute;
  inset: 12% 6% 4%;
  z-index: -1;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(181, 138, 60, .16), rgba(181, 138, 60, 0) 62%);
  filter: blur(18px);
  opacity: calc(.42 + (var(--showcase-progress) * .28));
  transform: translateY(calc(18px + (var(--showcase-progress) * -8px))) scale(.78);
}

.piece-card:hover img {
  transform: translateY(calc(var(--float-distance) * -1.1)) scale(1.045);
  filter: drop-shadow(0 34px 42px rgba(34, 4, 4, .17));
}

.piece-info {
  padding: 28px 0 0;
  transform: translateY(calc((1 - var(--showcase-progress)) * 18px));
  transition: transform .6s cubic-bezier(.2, .7, .1, 1);
}

.piece-card:hover .piece-info { transform: translateY(-2px); }

@keyframes carpetFloat {
  0%, 100% { transform: translateY(0) rotateZ(-.35deg); }
  50% { transform: translateY(calc(var(--float-distance) * -1)) rotateZ(.5deg); }
}

.piece-origin {
  color: var(--aged-gold);
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.piece-title {
  margin: 8px 0 9px;
  font-family: var(--display);
  font-size: clamp(1.24rem, 1.8vw, 1.85rem);
  font-weight: 400;
  line-height: 1.04;
}

.piece-specs {
  margin: 0;
  color: var(--muted);
  font-size: .74rem;
}

.editorial-split {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(340px, .72fr);
  gap: clamp(34px, 7vw, 90px);
  align-items: center;
}

.editorial-image {
  margin: 0;
  min-height: 430px;
  aspect-ratio: 16 / 9;
  background: var(--house-burgundy);
  overflow: hidden;
}

.editorial-image img {
  width: 100%;
  height: 100%;
  min-height: 430px;
  object-fit: cover;
}

.editorial-copy p {
  color: var(--muted);
  margin: 24px 0 0;
}

.section.dark .editorial-copy p,
.section.garnet .editorial-copy p { color: rgba(248, 243, 236, .72); }

.journal-grid,
.location-grid,
.weave-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}

.journal-card,
.location-card,
.weave-card {
  background: var(--soft-linen);
  padding: clamp(22px, 3.2vw, 36px);
}

.journal-card h3,
.location-card h3,
.weave-card h3 {
  margin: 0 0 12px;
  font-family: var(--display);
  font-size: clamp(1.38rem, 2.35vw, 2.6rem);
  font-weight: 300;
  line-height: 1.02;
}

.journal-card p,
.location-card p,
.weave-card p { margin: 0; color: var(--muted); }

.site-footer {
  background: #f7f6f3;
  color: #47413c;
  padding: clamp(72px, 8vw, 116px) 0 42px;
  border-top: 1px solid rgba(75, 16, 20, .12);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.1fr 1.1fr 1.05fr 1.15fr;
  gap: clamp(42px, 6vw, 86px);
  padding-bottom: clamp(70px, 8vw, 116px);
  max-width: 1180px;
  margin: 0 auto;
}

.footer-links a,
.footer-bottom {
  color: #47413c;
}

.footer-links h2 {
  margin: 0 0 18px;
  color: #a89482;
  font-family: var(--body);
  font-size: .82rem;
  font-weight: 400;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.footer-links .footer-subhead { margin-top: 48px; }

.footer-links ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-links li { margin: 12px 0; }

.footer-links a {
  font-family: var(--display);
  font-size: clamp(1.05rem, 1.25vw, 1.34rem);
  line-height: 1.18;
}

.footer-bottom {
  display: grid;
  grid-template-columns: 260px 1fr 160px;
  align-items: end;
  gap: 32px;
  max-width: 1180px;
  margin: 0 auto;
  font-size: .86rem;
}

.footer-signature {
  text-align: center;
}

.footer-logo {
  width: min(250px, 72vw);
  height: auto;
  margin: 0 auto;
}

.footer-legal {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  color: #47413c;
}

.footer-language {
  justify-self: end;
  color: #a89482;
  border-bottom: 1px solid currentColor;
  font-size: .92rem;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.page-hero {
  padding: 145px 0 68px;
  background: var(--house-burgundy);
  color: var(--soft-linen);
}

.page-hero p {
  max-width: 560px;
  margin: 20px 0 0;
  color: rgba(248, 243, 236, .76);
}

.history-hero {
  position: relative;
  min-height: 100vh;
  display: grid;
  align-items: end;
  overflow: hidden;
  background: var(--house-burgundy);
  color: var(--soft-linen);
}

.history-hero-media {
  position: absolute;
  inset: 0;
}

.history-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.9) contrast(1.06);
  transform: scale(1.04);
  animation: historyHeroDrift 16s ease-in-out infinite alternate;
}

.history-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(34, 4, 4, .28), rgba(34, 4, 4, .18) 36%, rgba(34, 4, 4, .84)),
    linear-gradient(90deg, rgba(34, 4, 4, .82), rgba(34, 4, 4, .18) 58%, rgba(34, 4, 4, .48));
}

.history-hero-copy {
  position: relative;
  z-index: 2;
  padding: 160px 0 clamp(76px, 10vw, 128px);
}

.history-hero-copy h1 {
  max-width: 920px;
  margin: 0;
  font-family: var(--display);
  font-size: clamp(3.2rem, 7.8vw, 9rem);
  font-weight: 300;
  line-height: .92;
}

.history-hero-copy p:not(.eyebrow) {
  max-width: 570px;
  margin: 28px 0 0;
  color: rgba(248, 243, 236, .78);
}

.history-year-rail {
  position: absolute;
  right: clamp(24px, 4vw, 72px);
  bottom: clamp(50px, 8vw, 120px);
  z-index: 2;
  display: grid;
  gap: 18px;
  color: rgba(248, 243, 236, .55);
  font-family: var(--display);
  font-size: clamp(1.4rem, 2.4vw, 3rem);
  line-height: 1;
}

.history-year-rail span {
  opacity: .62;
  animation: historyYearPulse 4.8s ease-in-out infinite;
}

.history-year-rail span:nth-child(2) { animation-delay: .7s; }
.history-year-rail span:nth-child(3) { animation-delay: 1.4s; }

.history-intro-grid,
.history-philosophy-grid {
  display: grid;
  grid-template-columns: minmax(0, .78fr) minmax(360px, 1fr);
  gap: clamp(36px, 8vw, 112px);
  align-items: start;
}

.history-intro h2,
.history-philosophy h2,
.history-world h2 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2.2rem, 4.8vw, 5.8rem);
  font-weight: 300;
  line-height: .98;
}

.history-body p,
.history-philosophy p,
.quote-panel p,
.history-world-copy,
.history-future-copy {
  color: var(--muted);
  font-size: clamp(.98rem, 1.1vw, 1.12rem);
}

.history-timeline-section {
  background: linear-gradient(180deg, var(--soft-linen), #f2ebe1);
}

.history-timeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 58px);
  padding-top: 54px;
}

.history-timeline::before {
  content: "";
  position: absolute;
  top: 71px;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(181, 138, 60, .2), rgba(181, 138, 60, .9), rgba(181, 138, 60, .2));
  transform-origin: left;
  transform: scaleX(var(--history-line-progress, .18));
  transition: transform 1.1s cubic-bezier(.19, 1, .22, 1);
}

.history-milestone {
  position: relative;
  padding: 58px 0 0;
  opacity: .34;
  transform: translateY(28px);
  transition: opacity .7s ease, transform .7s cubic-bezier(.19, 1, .22, 1);
}

.history-milestone.is-active,
.history-milestone:hover {
  opacity: 1;
  transform: translateY(0);
}

.history-dot {
  position: absolute;
  top: 10px;
  left: 0;
  width: 18px;
  height: 18px;
  border: 1px solid var(--aged-gold);
  background: var(--soft-linen);
  transform: rotate(45deg);
  box-shadow: 0 0 0 9px rgba(181, 138, 60, .08);
}

.history-milestone.is-active .history-dot {
  background: var(--aged-gold);
  animation: historyDotPulse 1.6s ease-in-out infinite;
}

.history-year {
  margin: 0 0 18px;
  color: var(--aged-gold);
  font-family: var(--display);
  font-size: clamp(2.4rem, 4.2vw, 5.6rem);
  line-height: .9;
}

.history-milestone h3 {
  margin: 0 0 14px;
  font-family: var(--display);
  font-size: clamp(1.45rem, 2.2vw, 2.6rem);
  font-weight: 300;
  line-height: 1;
}

.history-milestone p:not(.history-year) {
  margin: 0;
  color: var(--muted);
}

.history-portrait {
  position: relative;
  margin: 0;
  min-height: 520px;
  overflow: hidden;
  background: var(--house-burgundy);
}

.history-portrait img {
  width: 100%;
  height: 100%;
  min-height: 520px;
  object-fit: cover;
  transition: transform 1s cubic-bezier(.19, 1, .22, 1);
}

.history-portrait:hover img { transform: scale(1.045); }

.history-message {
  background: var(--house-burgundy);
  color: var(--soft-linen);
}

.quote-panel {
  position: relative;
  max-width: 980px;
  margin: 0 auto;
  padding: clamp(34px, 6vw, 76px);
  border: 1px solid rgba(181, 138, 60, .44);
}

.quote-panel::before,
.quote-panel::after {
  content: "";
  position: absolute;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(181, 138, 60, .65);
  transform: rotate(45deg);
}

.quote-panel::before { top: -24px; left: clamp(24px, 4vw, 58px); }
.quote-panel::after { right: clamp(24px, 4vw, 58px); bottom: -24px; }

.quote-panel blockquote {
  margin: 0 0 30px;
  font-family: var(--display);
  font-size: clamp(2.2rem, 4.5vw, 5.2rem);
  font-weight: 300;
  line-height: .98;
}

.quote-panel p {
  color: rgba(248, 243, 236, .74);
}

.history-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 44px 0;
  background: var(--line);
}

.history-stat {
  position: relative;
  padding: clamp(26px, 4vw, 46px);
  background: rgba(255, 255, 255, .24);
  overflow: hidden;
}

.history-stat::after {
  content: "";
  position: absolute;
  inset: auto -20% -30% 30%;
  height: 90px;
  background: radial-gradient(ellipse, rgba(181, 138, 60, .2), transparent 68%);
  transform: translateY(24px);
  transition: transform .6s ease;
}

.history-stat:hover::after { transform: translateY(0); }

.history-stat strong {
  display: block;
  color: var(--house-burgundy);
  font-family: var(--display);
  font-size: clamp(3rem, 6vw, 7rem);
  font-weight: 300;
  line-height: .9;
}

.history-stat span {
  display: block;
  margin-top: 14px;
  color: var(--aged-gold);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.history-world-copy {
  max-width: 840px;
}

.history-future .statement {
  max-width: 980px;
}

.history-future-copy {
  max-width: 640px;
  margin: 30px auto 0 !important;
  color: rgba(248, 243, 236, .72);
  font-family: var(--body) !important;
  font-size: 1rem !important;
  line-height: 1.75 !important;
}

@keyframes historyHeroDrift {
  from { transform: scale(1.04) translate3d(0, 0, 0); }
  to { transform: scale(1.09) translate3d(-1.4%, -1%, 0); }
}

@keyframes historyYearPulse {
  0%, 100% { opacity: .34; transform: translateX(0); }
  50% { opacity: .86; transform: translateX(-12px); }
}

@keyframes historyDotPulse {
  0%, 100% { box-shadow: 0 0 0 9px rgba(181, 138, 60, .08); }
  50% { box-shadow: 0 0 0 18px rgba(181, 138, 60, .02); }
}

.archive-layout {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 38px;
}

.filter-panel {
  position: sticky;
  top: 104px;
  align-self: start;
  border: 1px solid var(--line-gold);
  padding: 24px;
}

.filter-panel h2 {
  margin: 0 0 18px;
  color: var(--aged-gold);
  font-size: .68rem;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.filter-group { margin-top: 24px; }

.filter-group label {
  display: block;
  margin-bottom: 8px;
  color: var(--house-burgundy);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.filter-group select,
.enquiry-form input,
.enquiry-form textarea {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--line);
  border-radius: 0;
  background: rgba(255, 255, 255, .42);
  color: var(--ink);
  padding: 11px 13px;
}

.filter-submit { width: 100%; margin-top: 24px; color: var(--house-burgundy); }

.single-piece {
  padding-top: 118px;
}

.single-piece-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr);
  gap: clamp(34px, 6vw, 82px);
  align-items: start;
}

.single-gallery {
  position: sticky;
  top: 100px;
  background: var(--woven-parchment);
}

.single-gallery img {
  width: 100%;
  min-height: 68vh;
  object-fit: cover;
}

.single-copy {
  padding: 48px 0 90px;
}

.single-title { margin-top: 16px; }

.spec-table {
  margin: 34px 0;
  border-top: 1px solid var(--line);
}

.spec-row {
  display: grid;
  grid-template-columns: 145px minmax(0, 1fr);
  gap: 18px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
}

.spec-row dt {
  color: var(--aged-gold);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.spec-row dd { margin: 0; color: var(--muted); }

.enquiry-block {
  border: 1px solid var(--line-gold);
  padding: 28px;
  margin-top: 36px;
}

.enquiry-block h2 {
  margin: 0 0 14px;
  font-family: var(--display);
  font-size: 1.65rem;
  font-weight: 300;
}

.enquiry-form {
  display: grid;
  gap: 14px;
}

.enquiry-form textarea { min-height: 128px; resize: vertical; }

.enquiry-form .button { color: var(--house-burgundy); }

.pagination,
.nav-links {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 48px;
}

.nav-links a,
.nav-links span {
  min-width: 44px;
  min-height: 44px;
  border: 1px solid var(--line);
  display: inline-grid;
  place-items: center;
  padding: 0 14px;
}

.nav-links .current {
  background: var(--house-burgundy);
  color: var(--soft-linen);
}

.handoff-page .page-hero {
  min-height: 82vh;
  padding: 150px clamp(28px, 7vw, 120px) 84px;
  display: grid;
  grid-template-columns: minmax(70px, .25fr) minmax(0, 1fr);
  align-items: end;
  gap: clamp(36px, 7vw, 120px);
  position: relative;
  overflow: hidden;
}

.handoff-page .page-hero.tone-dark {
  background: var(--house-burgundy);
  color: var(--soft-linen);
}

.handoff-page .page-hero.tone-garnet {
  background: var(--shiraz-garnet);
  color: var(--soft-linen);
}

.handoff-page .page-index {
  align-self: start;
  color: var(--aged-gold);
  font-family: var(--body);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .28em;
}

.handoff-page .page-hero-copy {
  max-width: 900px;
}

.handoff-page .page-hero h1 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(4.2rem, 8vw, 9rem);
  font-weight: 300;
  line-height: .88;
  letter-spacing: 0;
}

.handoff-page .page-hero h1 em {
  font-style: italic;
}

.handoff-page .page-hero .lead {
  max-width: 620px;
  margin-top: 30px;
  color: currentColor;
  opacity: .74;
  font-size: 1rem;
}

.scroll-note {
  position: absolute;
  right: clamp(28px, 6vw, 92px);
  bottom: 44px;
  color: currentColor;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .22em;
  opacity: .5;
  text-transform: uppercase;
}

.scroll-note span {
  width: 42px;
  height: 1px;
  background: currentColor;
}

.section-pad {
  width: min(1180px, calc(100% - 56px));
  margin: 0 auto;
  padding: 110px 0;
}

.section-number {
  color: var(--aged-gold);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
}

.story-opening,
.weave-opening,
.world-statement {
  display: grid;
  grid-template-columns: .72fr 1fr;
  gap: clamp(44px, 7vw, 110px);
}

.story-opening h2,
.weave-opening h2,
.world-statement h2,
.message h2,
.chapter-grid h2,
.event-list h2,
.locations-grid h2,
.visit-note h2,
.making-steps h2,
.making-final h2,
.materials-duo h2,
.dyes-section h2 {
  margin: 0 0 22px;
  font-family: var(--display);
  font-size: clamp(2.45rem, 4.7vw, 5.8rem);
  font-weight: 300;
  line-height: .95;
}

.story-opening p:not(.section-number),
.weave-opening p:not(.section-number),
.world-statement p:not(.section-number),
.message p,
.event-list p,
.locations-grid p,
.visit-note p,
.making-steps p,
.materials-duo p,
.dyes-section p {
  color: var(--muted);
}

.timeline {
  width: min(1220px, calc(100% - 56px));
  margin: 0 auto 72px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--line-gold);
}

.timeline article {
  min-height: 260px;
  padding: 28px 28px 0 0;
  border-right: 1px solid var(--line);
}

.timeline span,
.press-list span,
.event-list article > div:nth-child(2) > p,
.image-caption,
.weave-caption {
  color: var(--aged-gold);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.timeline h3 {
  margin: 34px 0 0;
  font-family: var(--display);
  font-size: clamp(1.55rem, 2.3vw, 2.7rem);
  font-weight: 300;
  line-height: 1.08;
}

.quote-band {
  padding: 110px clamp(28px, 8vw, 140px);
  background: var(--house-burgundy);
  color: var(--soft-linen);
  text-align: center;
}

.quote-band p {
  max-width: 980px;
  margin: 0 auto;
  font-family: var(--display);
  font-size: clamp(2.6rem, 5vw, 6.5rem);
  font-weight: 300;
  line-height: .96;
}

.quote-band span {
  display: block;
  margin-top: 28px;
  color: var(--aged-gold);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
}

.message {
  display: grid;
  grid-template-columns: .9fr 1fr;
  gap: clamp(44px, 7vw, 110px);
  align-items: center;
}

.portrait-placeholder,
.weave-process-wide,
.world-lead,
.making-lead {
  margin: 0;
  overflow: hidden;
  background: var(--house-burgundy);
}

.portrait-placeholder img,
.weave-process-wide img,
.world-lead img,
.making-lead img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 460px;
}

.signature {
  margin-top: 28px;
  color: var(--ink) !important;
  font-family: var(--display);
  font-size: 2rem;
  font-style: italic;
}

.press-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  margin-bottom: 36px;
}

.press-list a,
.chapter-grid article,
.event-list article,
.locations-grid article,
.journal-card.lead-story,
.internal-note-card {
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, .38);
  padding: clamp(28px, 4vw, 52px);
}

.press-list h3 {
  margin: 18px 0 22px;
  font-family: var(--display);
  font-size: clamp(1.7rem, 2.6vw, 3.1rem);
  font-weight: 300;
  line-height: 1.04;
}

.arrow-link {
  color: var(--aged-gold);
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.weave-process-wide,
.world-lead,
.making-lead {
  width: min(1320px, calc(100% - 56px));
  margin: 0 auto;
}

.weave-caption,
.image-caption {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 0 0;
}

.chapter-grid,
.locations-grid,
.materials-duo {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.chapter-grid article span,
.making-steps span {
  color: var(--aged-gold);
  font-weight: 700;
  letter-spacing: .24em;
}

.world-lead img {
  min-height: 620px;
}

.event-list {
  display: grid;
  gap: 26px;
}

.event-list article {
  display: grid;
  grid-template-columns: .62fr 1fr;
  gap: clamp(32px, 5vw, 80px);
  align-items: center;
}

.event-art,
.location-image,
.journal-art {
  min-height: 280px;
  background: linear-gradient(135deg, var(--house-burgundy), #67322b);
  color: var(--soft-linen);
  display: grid;
  place-items: center;
  font-family: var(--display);
  font-size: clamp(2rem, 4vw, 5rem);
  font-weight: 300;
}

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

.locations-grid article {
  display: grid;
  gap: 28px;
}

.visit-note {
  width: min(900px, calc(100% - 56px));
  margin: 0 auto 90px;
  padding: 64px;
  border-top: 1px solid var(--line-gold);
  text-align: center;
}

.making-steps {
  display: grid;
  gap: 1px;
}

.making-steps article {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 32px;
  padding: 36px 0;
  border-top: 1px solid var(--line);
}

.making-final {
  padding: 120px clamp(28px, 8vw, 140px);
  background: var(--house-burgundy);
  color: var(--soft-linen);
  text-align: center;
}

.making-final p {
  color: var(--aged-gold);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
}

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

.material-orb {
  width: 118px;
  height: 118px;
  margin-bottom: 34px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #efe3d1, #8a533d 55%, #260708);
  box-shadow: var(--shadow);
}

.material-orb.silk {
  background: radial-gradient(circle at 30% 30%, #fff9ed, #c7b98c 48%, #814a35);
}

.dyes-section {
  width: min(1180px, calc(100% - 56px));
  margin: 0 auto 90px;
  display: grid;
  grid-template-columns: .7fr 1fr;
  gap: clamp(44px, 7vw, 110px);
  align-items: center;
}

.dye-strands {
  min-height: 320px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
}

.dye-strands i {
  display: block;
  background: var(--house-burgundy);
}

.dye-strands i:nth-child(2) { background: var(--aged-gold); }
.dye-strands i:nth-child(3) { background: #1d3952; }
.dye-strands i:nth-child(4) { background: #7d2b24; }
.dye-strands i:nth-child(5) { background: #d9c6aa; }

.region-editorial {
  display: grid;
  gap: 28px;
}

.region-editorial article {
  display: grid;
  grid-template-columns: .58fr 1fr;
  gap: clamp(30px, 6vw, 92px);
  align-items: center;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--line);
}

.region-copy > span,
.next-chapter span,
.enquiry-intro p:first-child {
  color: var(--aged-gold);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.region-copy h2 {
  margin: 10px 0 16px;
  font-family: var(--display);
  font-size: clamp(3rem, 6vw, 7rem);
  font-weight: 300;
  line-height: .9;
}

.next-chapter {
  width: min(1180px, calc(100% - 56px));
  margin: 0 auto 96px;
  padding-top: 34px;
  border-top: 1px solid var(--line-gold);
  display: flex;
  justify-content: space-between;
  gap: 24px;
}

.next-chapter a {
  color: var(--ink);
  font-family: var(--display);
  font-size: clamp(1.7rem, 3vw, 3.4rem);
}

.enquiry-page {
  min-height: 100vh;
  display: grid;
  grid-template-columns: .82fr 1fr;
  gap: clamp(44px, 7vw, 118px);
  padding: 150px clamp(28px, 7vw, 120px) 96px;
}

.enquiry-intro h1 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(4.2rem, 7vw, 8.7rem);
  font-weight: 300;
  line-height: .88;
}

.enquiry-intro > p:nth-of-type(2) {
  max-width: 570px;
  color: var(--muted);
  margin: 30px 0;
}

.enquiry-intro div {
  display: grid;
  gap: 6px;
  color: var(--aged-gold);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.enquiry-page .enquiry-form {
  display: grid;
  gap: 18px;
  align-self: start;
  padding: clamp(28px, 4vw, 54px);
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, .42);
}

.enquiry-page label {
  color: var(--aged-gold);
  display: grid;
  gap: 8px;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.enquiry-page input,
.enquiry-page textarea,
.enquiry-page select {
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
  padding: 12px 0;
  letter-spacing: 0;
  text-transform: none;
}

.enquiry-page textarea {
  min-height: 150px;
}

.enquiry-page .consent {
  grid-template-columns: 18px 1fr;
  align-items: start;
  color: var(--muted);
  letter-spacing: 0;
  text-transform: none;
}

.enquiry-page .consent input {
  width: auto;
  margin-top: 5px;
}

.enquiry-page button[type="submit"] {
  border: 1px solid var(--line-gold);
  background: var(--house-burgundy);
  color: var(--soft-linen);
  cursor: pointer;
  padding: 16px 22px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.preview-note {
  width: min(1180px, calc(100% - 56px));
  margin: 32px auto 90px;
  color: var(--muted);
  font-family: var(--display);
  font-size: 1.2rem;
  font-style: italic;
}

@media (max-width: 980px) {
  .header-inner { grid-template-columns: 64px 1fr 64px; }
  .header-enquire { display: none; }
  .menu-panel,
  .section-head,
  .editorial-split,
  .archive-layout,
  .single-piece-grid,
  .footer-grid {
    grid-template-columns: 1fr;
  }
  .pieces-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .single-gallery { position: relative; top: auto; }
  .filter-panel { position: relative; top: auto; }
  .footer-bottom {
    grid-template-columns: 1fr;
    justify-items: start;
    gap: 26px;
  }
  .footer-signature { text-align: left; }
  .footer-legal { justify-content: flex-start; gap: 16px 22px; }
  .footer-language { justify-self: start; }
  .history-intro-grid,
  .history-philosophy-grid,
  .history-timeline,
  .history-stats {
    grid-template-columns: 1fr;
  }
  .history-timeline::before {
    top: 54px;
    bottom: 0;
    left: 8px;
    right: auto;
    width: 1px;
    height: auto;
    transform: scaleY(var(--history-line-progress, .18));
    transform-origin: top;
  }
  .history-milestone {
    padding: 26px 0 0 42px;
  }
  .history-dot {
    left: 0;
  }
  .history-year-rail {
    display: none;
  }
  .handoff-page .page-hero,
  .story-opening,
  .weave-opening,
  .world-statement,
  .message,
  .event-list article,
  .region-editorial article,
  .dyes-section,
  .enquiry-page {
    grid-template-columns: 1fr;
  }
  .timeline,
  .chapter-grid,
  .materials-duo,
  .locations-grid {
    grid-template-columns: 1fr;
  }
  .timeline article {
    min-height: auto;
    border-right: 0;
    border-bottom: 1px solid var(--line);
    padding-bottom: 28px;
  }
}

@media (max-width: 640px) {
  .header-inner,
  .container,
  .hero-content,
  .menu-panel { width: min(100% - 28px, 1240px); }
  .brand-lockup {
    width: 178px;
    height: 58px;
  }
  .hero h1,
  .page-hero h1 { font-size: clamp(2.35rem, 13vw, 4.1rem); }
  .hero-media video { object-fit: cover; }
  .film-section {
    --film-lift: 0px !important;
    margin-bottom: 0;
    transform: translateZ(0);
  }
  .pieces-grid,
  .journal-grid,
  .location-grid,
  .weave-grid { grid-template-columns: 1fr; }
  .section { padding: 54px 0; }
  .history-hero-copy {
    padding-bottom: 66px;
  }
  .history-hero-copy h1 {
    font-size: clamp(3rem, 17vw, 5.4rem);
  }
  .editorial-image,
  .editorial-image img { min-height: 360px; }
  .spec-row { grid-template-columns: 1fr; gap: 4px; }
}

@media (prefers-reduced-motion: reduce) {
  .collection-showcase,
  .piece-card,
  .piece-card figure,
  .piece-card img,
  .piece-info,
  .collection-showcase .section-head,
  .menu-panel,
  .menu-bottom-link,
  .menu-primary li,
  .menu-secondary.is-active li,
  .menu-tertiary.is-active li,
  .menu-secondary,
  .menu-tertiary {
    animation: none !important;
    transform: none !important;
    transition: none !important;
    filter: none !important;
  }
}

/* Handoff fidelity: preserve the original three-column chapter composition. */
.chapter-grid.section-pad {
  width: auto;
  margin: 0;
  padding: 140px max(5vw, 56px);
}

.chapter-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}

.chapter-grid article {
  padding: 0 0 20px;
  border: 0;
  background: transparent;
}

.chapter-grid .chapter-art {
  height: 460px;
  margin: 0 0 24px;
}

.chapter-grid article > span {
  color: var(--aged-gold);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0;
}

.chapter-grid h2 {
  margin: 18px 0;
  font-family: var(--display);
  font-size: 42px;
  font-weight: 400;
  line-height: .98;
}

.chapter-grid article > p {
  margin-bottom: 18px;
}

.chapter-grid .arrow-link {
  min-width: 210px;
  padding: 12px 0;
}

@media (max-width: 980px) {
  .chapter-grid.section-pad {
    padding: 100px 6vw;
  }

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

  .chapter-grid h2 {
    font-size: clamp(30px, 4vw, 42px);
  }
}

@media (max-width: 720px) {
  .chapter-grid.section-pad {
    padding: 80px 24px;
  }

  .chapter-grid {
    grid-template-columns: 1fr;
    gap: 70px;
  }

  .chapter-grid .chapter-art {
    height: 420px;
  }

  .chapter-grid h2 {
    font-size: 42px;
  }
}

/* Final light editorial overrides. */
body { background: #fff; }

.section {
  padding: clamp(100px, 12vw, 180px) 0;
  border-top-color: rgba(27, 17, 16, .09);
}

.section.dark,
.section.garnet {
  background: #fff;
  color: var(--ink);
  border-top-color: rgba(27, 17, 16, .09);
}

.section.garnet { background: #fbfaf8; }

.section.dark .statement p,
.section.garnet .statement p,
.section.dark .section-head p,
.section.garnet .section-head p,
.section.dark .editorial-copy p,
.section.garnet .editorial-copy p {
  color: var(--ink);
}

.section-head {
  gap: clamp(48px, 9vw, 140px);
  margin-bottom: clamp(64px, 8vw, 112px);
}

.section-head p,
.editorial-copy p,
.piece-specs { line-height: 1.9; }

.pieces-grid { gap: clamp(52px, 7vw, 110px); }
.editorial-split { gap: clamp(64px, 10vw, 160px); }
.editorial-copy p { margin-top: 34px; }

.section.dark .button,
.section.garnet .button {
  color: var(--house-burgundy);
  border-color: rgba(75, 16, 20, .42);
}

.section.dark .button:hover,
.section.garnet .button:hover {
  background: var(--house-burgundy);
  color: #fff;
}

@media (max-width: 640px) {
  .section { padding: 84px 0; }
  .section-head { gap: 28px; margin-bottom: 56px; }
  .pieces-grid,
  .editorial-split { gap: 56px; }
}

@media not all {
/* Signature motion and editorial moments for the home experience. */
.page-progress {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  pointer-events: none;
}

.page-progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, var(--aged-gold), var(--shiraz-garnet));
  transform: scaleX(0);
  transform-origin: left;
  will-change: transform;
}

.hero::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
  opacity: .22;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}

.hero-content { z-index: 4; }

.hero h1 {
  text-wrap: balance;
  letter-spacing: -.035em;
}

.hero-scroll-cue {
  position: absolute;
  z-index: 5;
  right: clamp(26px, 4vw, 72px);
  bottom: clamp(30px, 5vw, 68px);
  display: flex;
  align-items: center;
  gap: 16px;
  color: rgba(248, 243, 236, .72);
  font-size: .58rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
}

.hero-scroll-cue i {
  width: 1px;
  height: 74px;
  overflow: hidden;
  background: rgba(248, 243, 236, .25);
}

.hero-scroll-cue i::after {
  content: "";
  display: block;
  width: 1px;
  height: 34px;
  background: var(--aged-gold);
  animation: scroll-cue 2.4s cubic-bezier(.65, 0, .35, 1) infinite;
}

@keyframes scroll-cue {
  0% { transform: translateY(-36px); }
  55%, 100% { transform: translateY(78px); }
}

.heritage-manifesto {
  --manifesto-progress: 0;
  position: relative;
  min-height: 115svh;
  display: grid;
  align-items: center;
  overflow: clip;
  background: #fff;
  border-top: 1px solid rgba(27, 17, 16, .08);
}

.manifesto-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) 180px;
  align-items: center;
  gap: clamp(36px, 6vw, 100px);
  padding-block: clamp(120px, 18vw, 260px);
}

.manifesto-index,
.manifesto-note {
  color: var(--muted);
  font-size: .62rem;
  letter-spacing: .16em;
  line-height: 1.8;
  text-transform: uppercase;
}

.manifesto-index {
  display: grid;
  gap: 16px;
}

.manifesto-index strong { color: var(--house-burgundy); font-weight: 600; }

.manifesto-line {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(4rem, 9.3vw, 10.5rem);
  font-weight: 300;
  line-height: .76;
  letter-spacing: -.055em;
  color: var(--ink);
}

.manifesto-line span {
  display: block;
  transform: translateX(calc((1 - var(--manifesto-progress)) * 9vw));
  opacity: calc(.18 + (var(--manifesto-progress) * .82));
  transition: opacity .2s linear;
  will-change: transform, opacity;
}

.manifesto-line span:nth-child(2) {
  color: var(--house-burgundy);
  font-style: italic;
  transform: translateX(calc((1 - var(--manifesto-progress)) * -7vw));
}

.manifesto-line span:nth-child(3) {
  padding-left: .52em;
}

.manifesto-note {
  align-self: end;
  padding-bottom: 4vh;
}

.manifesto-note i {
  display: block;
  width: 54px;
  height: 1px;
  margin-bottom: 22px;
  background: var(--aged-gold);
  transform: scaleX(var(--manifesto-progress));
  transform-origin: left;
}

.manifesto-orbit {
  position: absolute;
  width: min(52vw, 760px);
  aspect-ratio: 1;
  right: -16vw;
  top: 50%;
  display: grid;
  place-items: center;
  border: 1px solid rgba(75, 16, 20, .1);
  border-radius: 50%;
  color: rgba(75, 16, 20, .06);
  font-family: var(--display);
  font-size: clamp(8rem, 20vw, 21rem);
  transform: translateY(-50%) rotate(calc(var(--manifesto-progress) * 18deg));
}

.manifesto-orbit::before,
.manifesto-orbit::after {
  content: "";
  position: absolute;
  inset: 10%;
  border: 1px solid rgba(181, 138, 60, .12);
  border-radius: 50%;
}

.manifesto-orbit::after { inset: 28%; }

.button,
.header-enquire {
  --magnet-x: 0px;
  --magnet-y: 0px;
  transform: translate(var(--magnet-x), var(--magnet-y));
  transition: transform .28s cubic-bezier(.2, .8, .2, 1), background .3s ease, color .3s ease, border-color .3s ease;
}

.piece-card figure::after {
  content: "View piece";
  position: absolute;
  inset: 16px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(248, 243, 236, .55);
  color: #fff;
  background: rgba(34, 4, 4, .18);
  backdrop-filter: blur(2px);
  font-size: .62rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  opacity: 0;
  transform: scale(.96);
  transition: opacity .45s ease, transform .55s cubic-bezier(.2, .8, .2, 1);
}

.piece-card:hover figure::after { opacity: 1; transform: scale(1); }

@media (max-width: 900px) {
  .manifesto-grid { grid-template-columns: 1fr; align-content: center; }
  .manifesto-index { grid-template-columns: 1fr auto; }
  .manifesto-note { justify-self: end; }
  .manifesto-line { font-size: clamp(3.5rem, 14vw, 8rem); line-height: .88; }
  .manifesto-orbit { width: 82vw; right: -40vw; }
}

@media (max-width: 640px) {
  .hero-scroll-cue { display: none; }
  .heritage-manifesto { min-height: 100svh; }
  .manifesto-grid { padding-block: 110px; gap: 54px; }
  .manifesto-line { font-size: clamp(3.45rem, 17vw, 6rem); line-height: .9; }
  .manifesto-note { justify-self: start; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-scroll-cue i::after { animation: none; }
  .manifesto-line span { transform: none; opacity: 1; }
  .manifesto-orbit { transform: translateY(-50%); }
  .button,
  .header-enquire { transform: none; }
}

/* Gallery runway — restrained, asymmetrical, and scroll-led. */
.film-section {
  --statement-progress: 0;
  min-height: 125svh;
  display: flex;
  align-items: center;
  padding: 18vh 0;
  background: #fff;
}

.film-section .container {
  width: min(1680px, calc(100% - clamp(48px, 9vw, 180px)));
  max-width: none;
}

.film-section .statement {
  max-width: none;
  text-align: left;
}

.film-section .statement p {
  display: flex;
  flex-direction: column;
  gap: .04em;
  margin: 0;
  color: var(--ink);
  font-size: clamp(4.4rem, 10.8vw, 12.5rem);
  line-height: .76;
  letter-spacing: -.06em;
}

.film-section .statement p span {
  display: block;
  opacity: calc(.22 + var(--statement-progress) * .78);
  transform: translateX(calc((1 - var(--statement-progress)) * 10vw));
  will-change: transform, opacity;
}

.film-section .statement p span:nth-child(2) {
  align-self: flex-end;
  color: var(--house-burgundy);
  font-style: italic;
  transform: translateX(calc((1 - var(--statement-progress)) * -10vw));
}

.film-section .statement p span:nth-child(3) { padding-left: 8vw; }

.film-section .statement-actions {
  width: 100% !important;
  justify-content: center !important;
  gap: 16px;
  margin-top: clamp(54px, 8vw, 118px);
  margin-right: 0;
  margin-left: 0;
  text-align: center;
}

.film-section .statement-actions .button {
  min-width: clamp(190px, 17vw, 270px);
  min-height: 58px;
}

.statement-index,
.statement-foot {
  position: absolute;
  left: clamp(24px, 4vw, 72px);
  display: flex;
  gap: 28px;
  color: var(--muted);
  font-size: .58rem;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.statement-index { top: clamp(42px, 7vw, 100px); }
.statement-foot { bottom: clamp(42px, 7vw, 100px); }

.origin-film-section {
  position: relative;
  min-height: 128svh;
  display: block;
  padding: 18vh 0 22vh;
  overflow: clip;
  background: #fff;
  color: var(--ink);
}

.origin-stage {
  position: relative;
  width: min(78vw, 1320px);
  height: min(76vh, 860px);
  margin-left: auto;
  margin-right: 4vw;
  overflow: hidden;
  background: var(--house-burgundy);
}

.origin-stage .section-film-media { position: absolute; inset: 0; }
.origin-stage .section-film-media::after {
  background: linear-gradient(180deg, rgba(34, 4, 4, .06), rgba(34, 4, 4, .28));
}

.origin-stage video {
  transform: scale(1.05);
  transition: transform 1.8s cubic-bezier(.2, .7, .1, 1);
}

.origin-film-section:hover .origin-stage video { transform: scale(1); }

.origin-stage-number {
  position: absolute;
  z-index: 3;
  top: 18px;
  right: 24px;
  color: rgba(255,255,255,.72);
  font-family: var(--display);
  font-size: clamp(2.5rem, 5vw, 5rem);
  font-style: italic;
}

.origin-film-copy {
  position: absolute;
  z-index: 4;
  left: 4vw;
  bottom: 10vh;
  width: min(620px, 52vw);
  padding: clamp(38px, 5vw, 82px);
  background: rgba(255,255,255,.96);
  color: var(--ink);
}

.origin-film-copy h2 {
  color: var(--ink);
  font-size: clamp(3rem, 6vw, 7.2rem);
  letter-spacing: -.055em;
}

.origin-film-copy > p:last-child { color: var(--muted); }

.collection-showcase { padding-block: clamp(140px, 18vw, 260px); }

.collection-showcase .section-head {
  grid-template-columns: 1fr auto;
  align-items: start;
  margin-bottom: clamp(90px, 13vw, 190px);
  column-gap: clamp(70px, 12vw, 190px);
}

.collection-showcase .section-head .eyebrow {
  margin-bottom: clamp(45px, 5.6vw, 90px);
  letter-spacing: .588em;
  word-spacing: .77em;
  line-height: 1.8;
}

.collection-showcase .section-head h2 {
  font-size: clamp(5rem, 11vw, 13rem);
  line-height: .92;
  letter-spacing: .021em;
  word-spacing: .336em;
}

.collection-showcase .section-head > p {
  max-width: 330px;
  line-height: 2;
  letter-spacing: .1em;
  word-spacing: .22em;
}

.collection-showcase .pieces-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, .72fr) minmax(0, .9fr);
  gap: clamp(36px, 7vw, 120px);
  align-items: start;
}

.collection-showcase .piece-card:nth-child(2) { margin-top: 22vh; }
.collection-showcase .piece-card:nth-child(3) { margin-top: 8vh; }
.collection-showcase .piece-card figure { aspect-ratio: 3 / 4.25; }

.piece-number {
  display: block;
  margin-bottom: 16px;
  color: var(--muted);
  font-family: var(--display);
  font-size: 1rem;
  font-style: italic;
}

.piece-title { font-size: clamp(1.7rem, 2.5vw, 3.2rem); }

.section.dark { padding-block: clamp(150px, 19vw, 280px); }

.section.dark .editorial-split {
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr);
  gap: clamp(64px, 12vw, 190px);
}

.section.dark .editorial-image {
  min-height: min(78vh, 820px);
  aspect-ratio: auto;
}

.section.dark .editorial-copy h2 {
  font-size: clamp(4rem, 8vw, 9rem);
  letter-spacing: -.055em;
}

.section.garnet {
  position: relative;
  min-height: 92svh;
  display: grid;
  place-items: center;
  background: #fff;
  overflow: hidden;
}

.section.garnet::before {
  content: "G";
  position: absolute;
  left: 50%;
  top: 50%;
  color: rgba(75,16,20,.035);
  font-family: var(--display);
  font-size: min(82vw, 900px);
  line-height: 1;
  transform: translate(-50%, -48%);
}

.section.garnet .statement { position: relative; z-index: 2; }
.section.garnet .statement p { font-size: clamp(4rem, 11vw, 12rem); letter-spacing: -.06em; }

.enquiry-arrow {
  width: clamp(74px, 8vw, 112px);
  aspect-ratio: 1;
  margin: clamp(42px, 7vw, 86px) auto 0;
  display: grid;
  place-items: center;
  border: 1px solid rgba(75, 16, 20, .3);
  border-radius: 50%;
  color: var(--house-burgundy);
  font-size: clamp(1.8rem, 3vw, 3rem);
  transition: background .35s ease, color .35s ease, transform .35s ease;
}

.enquiry-arrow:hover { background: var(--house-burgundy); color: #fff; transform: rotate(45deg); }

@media (max-width: 900px) {
  .film-section .statement p { font-size: clamp(3.8rem, 13vw, 7.5rem); line-height: .82; }
  .origin-stage { width: 88vw; height: 68vh; margin-right: 0; }
  .origin-film-copy { left: 6vw; width: 74vw; }
  .collection-showcase .pieces-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .collection-showcase .piece-card:nth-child(2) { margin-top: 14vh; }
  .collection-showcase .piece-card:nth-child(3) { margin-top: 0; }
}

@media (max-width: 640px) {
  .film-section { min-height: 100svh; padding-block: 130px; }
  .film-section .statement p { font-size: clamp(3.5rem, 16vw, 5.6rem); line-height: .86; }
  .film-section .statement p span:nth-child(2) { align-self: flex-start; }
  .film-section .statement p span:nth-child(3) { padding-left: 0; }
  .film-section .statement-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .film-section .statement-actions .button { width: 100%; min-width: 0; }
  .statement-index { flex-direction: column; gap: 4px; }
  .origin-film-section { min-height: 112svh; padding-top: 12vh; }
  .origin-stage { width: 92vw; height: 62vh; }
  .origin-film-copy { left: 4vw; bottom: 6vh; width: 88vw; }
  .origin-film-copy h2 { font-size: clamp(2.7rem, 13vw, 4.8rem); }
  .collection-showcase .section-head { grid-template-columns: 1fr; }
  .collection-showcase .section-head { row-gap: 48px; }
  .collection-showcase .section-head h2 { font-size: clamp(4.5rem, 20vw, 7rem); }
  .collection-showcase .pieces-grid { grid-template-columns: 1fr; }
  .collection-showcase .piece-card:nth-child(2),
  .collection-showcase .piece-card:nth-child(3) { margin-top: 60px; }
  .section.dark .editorial-split { grid-template-columns: 1fr; }
  .section.dark .editorial-copy h2 { font-size: clamp(3.8rem, 18vw, 6rem); }
}

@media (prefers-reduced-motion: reduce) {
  .film-section .statement p span { transform: none; opacity: 1; }
  .origin-stage video { transform: none; transition: none; }
}
}
