@font-face {
  font-family: "Bodoni Moda";
  src: url("../fonts/bodonimoda-variablefont_opsz-wght--52c10f8527.ttf") format("truetype");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Bodoni Moda";
  src: url("../fonts/bodonimoda-italic-variablefont_opsz-wght--3e5f24094b.ttf") format("truetype");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Inter";
  src: url("../fonts/inter-variablefont_opsz-wght--0be2399ea9.ttf") format("truetype");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inter";
  src: url("../fonts/inter-italic-variablefont_opsz-wght--6136f73372.ttf") format("truetype");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}
:root {
  --bg: #f4efe8;
  --bg-soft: #ede7de;
  --bg-dark: #0d0b0a;
  --text: #11110f;
  --text-soft: rgba(17, 17, 15, 0.72);
  --line: rgba(17, 17, 15, 0.12);
  --line-dark: rgba(244, 239, 232, 0.16);
  --bone: #f7f3ee;
  --max: 1440px;
  --gutter: 32px;
  --gutter-tablet: 24px;
  --gutter-mobile: 20px;
  --space-xl: 128px;
  --space-lg: 96px;
  --space-md: 64px;
  --space-sm: 32px;
  --serif: "Bodoni Moda", Georgia, serif;
  --sans: "Inter", system-ui, sans-serif;
  --portrait: 512 / 910;
}
html {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  overscroll-behavior-x: none;
  -webkit-text-size-adjust: 100%;
  background: var(--bg);
}
*, *::before, *::after {
  box-sizing: inherit;
  min-width: 0;
}
body {
  margin: 0;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
img, video {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}
a {
  color: inherit;
  text-decoration: none;
}
a:focus-visible, button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
.skip-link {
  position: absolute;
  left: 16px;
  top: -48px;
  background: var(--bone);
  color: var(--bg-dark);
  padding: 10px 14px;
  z-index: 100;
  transition: top .2s ease;
}
.skip-link:focus { top: 16px; }
.site-frame {
  width: min(100%, var(--max));
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.section-space { padding-block: var(--space-lg); }
.section-rule-top { border-top: 1px solid var(--line); }
.site-header {
  position: sticky;
  top: 0;
  z-index: 80;
  background: rgba(244,239,232,0.94);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--line);
}
.site-header__inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  min-height: 78px;
}
.brand {
  font-family: var(--serif);
  font-size: 24px;
  letter-spacing: .16em;
  text-transform: uppercase;
  white-space: nowrap;
}
.nav-rail {
  justify-self: end;
  display: flex;
  flex-wrap: wrap;
  gap: 18px 28px;
  justify-content: flex-end;
  align-items: center;
}
.nav-rail a, .menu-toggle {
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--text-soft);
}
.nav-rail a[aria-current="page"], .nav-rail a:hover { color: var(--text); }
.menu-toggle {
  display: none;
  background: none;
  border: 0;
  padding: 0;
  font-family: var(--sans);
  cursor: pointer;
}
.hero-section { padding-block: var(--space-xl) var(--space-lg); }
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, .72fr);
  gap: 48px;
  align-items: end;
}
.hero-copy h1, .page-intro h1 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(56px, 8vw, 120px);
  line-height: .92;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.hero-copy p, .page-intro p, .section-note, .cta-band p, .rail-block p, .legal-row p {
  margin: 18px 0 0;
  max-width: 40ch;
  font-size: 16px;
  line-height: 1.9;
  color: var(--text-soft);
}
.page-intro h1 { font-size: clamp(38px, 6vw, 74px); }
.page-intro.narrow-text p { max-width: 48ch; }
.section-kicker {
  margin-bottom: 16px;
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-soft);
}
.hero-media { justify-self: end; width: min(100%, 420px); }
.portrait-shell {
  position: relative;
  overflow: hidden;
  aspect-ratio: var(--portrait);
  background: var(--bg-soft);
}
.portrait-shell img,
.portrait-shell video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 28px;
  align-items: center;
  margin-top: 40px;
}
.cta-primary, .enter-action--primary {
  display: inline-block;
  border: 1px solid var(--text);
  padding: 16px 22px;
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--text);
}
.cta-link, .enter-action {
  display: inline-block;
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--text-soft);
}
.triptych-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 28px;
}
.home-cta-band { background: transparent; }
.cta-band {
  display: flex;
  justify-content: space-between;
  gap: 32px;
  align-items: end;
}
.atelier-top-grid, .editorial-grid, .enter-grid {
  display: grid;
  gap: 24px;
}
.atelier-top-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.editorial-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.quote-band { padding-block: var(--space-md); }
.atelier-quote {
  margin: 0;
  text-align: center;
  font-family: var(--serif);
  font-size: clamp(30px, 4vw, 54px);
  line-height: 1.08;
  letter-spacing: .02em;
}
.rail-list { border-top: 1px solid var(--line); }
.rail-link {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: baseline;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}
.rail-link strong {
  font-size: 13px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.rail-link span { color: var(--text-soft); font-size: 14px; }
.contact-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.rail-block {
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.rail-label, .legal-row h2, .footer-title {
  margin: 0;
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.rail-block a, .legal-row a { display: inline-block; margin-top: 18px; border-bottom: 1px solid var(--line); padding-bottom: 4px; }
.legal-list { border-top: 1px solid var(--line); }
.legal-row {
  display: grid;
  grid-template-columns: minmax(0, 240px) minmax(0, 1fr);
  gap: 24px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.site-footer {
  margin-top: var(--space-xl);
  background: var(--bg-dark);
  color: var(--bone);
}
.site-footer a, .site-footer span { color: rgba(247,243,238,.82); }
.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr 1.2fr;
  gap: 32px;
  padding-block: 56px 40px;
}
.footer-mark {
  font-family: var(--serif);
  font-size: 24px;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.footer-copy {
  margin-top: 12px;
  line-height: 1.8;
  color: rgba(247,243,238,.72);
}
.footer-links {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}
.footer-languages {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin-top: 16px;
}
.footer-languages a[aria-current="true"] { color: var(--bone); }
.footer-bottom {
  padding-block: 0 28px;
  color: rgba(247,243,238,.56);
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.page-enter {
  background: var(--bg-dark);
  color: var(--bone);
}
.page-enter .site-header {
  background: rgba(13,11,10,.92);
  border-bottom-color: var(--line-dark);
}
.page-enter .nav-rail a, .page-enter .menu-toggle, .page-enter .cta-link, .page-enter .section-kicker, .page-enter .hero-copy p, .page-enter .footer-copy {
  color: rgba(247,243,238,.72);
}
.page-enter .brand, .page-enter .nav-rail a[aria-current="page"], .page-enter .nav-rail a:hover, .page-enter .cta-primary, .page-enter .footer-mark, .page-enter .footer-languages a[aria-current="true"] { color: var(--bone); border-color: var(--bone); }
.enter-main { min-height: calc(100vh - 79px); display: grid; align-items: center; }
.enter-shell {
  width: min(100%, var(--max));
  margin-inline: auto;
  padding-inline: var(--gutter);
  padding-block: 72px 96px;
}
.enter-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.enter-line {
  margin: 36px auto 0;
  max-width: 22ch;
  text-align: center;
  font-family: var(--serif);
  font-size: clamp(28px, 4vw, 50px);
  line-height: 1.06;
}
.enter-actions {
  display: flex;
  justify-content: center;
  gap: 18px 26px;
  flex-wrap: wrap;
  margin-top: 36px;
}
html[dir="rtl"] body { direction: rtl; }
html[dir="rtl"] .nav-rail,
html[dir="rtl"] .cta-row,
html[dir="rtl"] .enter-actions,
html[dir="rtl"] .footer-languages { justify-content: flex-start; }
html[dir="rtl"] .rail-link { flex-direction: row-reverse; }
html[dir="rtl"] .legal-row { grid-template-columns: minmax(0, 1fr) minmax(0, 240px); }
@media (max-width: 1023px) {
  .site-frame, .enter-shell { padding-inline: var(--gutter-tablet); }
  .hero-grid { grid-template-columns: 1fr; gap: 32px; }
  .hero-media { justify-self: start; width: min(100%, 360px); }
  .editorial-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  :root { --space-xl: 92px; --space-lg: 72px; --space-md: 48px; }
  .site-frame, .enter-shell { padding-inline: var(--gutter-mobile); }
  .site-header__inner { grid-template-columns: auto auto; }
  .menu-toggle { display: inline-block; justify-self: end; }
  .nav-rail {
    grid-column: 1 / -1;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    justify-self: stretch;
    gap: 14px;
    padding-bottom: 18px;
    border-top: 1px solid var(--line);
    padding-top: 16px;
  }
  .site-header[data-menu-open="true"] .nav-rail { display: flex; }
  .hero-copy h1, .page-intro h1 { font-size: clamp(40px, 16vw, 68px); }
  .triptych-grid, .atelier-top-grid, .editorial-grid, .contact-grid, .enter-grid { grid-template-columns: 1fr 1fr; }
  .triptych-grid > :last-child:nth-child(odd),
  .atelier-top-grid > :last-child:nth-child(odd),
  .editorial-grid > :last-child:nth-child(odd),
  .enter-grid > :last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
  .cta-band, .legal-row, .rail-link { grid-template-columns: 1fr; flex-direction: column; align-items: flex-start; }
  .footer-grid { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .legal-row { display: grid; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
