/* GALVA SECURITY — one stylesheet, content-led sections, no viewport-sized rows. */
:root {
  color-scheme: dark;
  --ink: #0b0b0b;
  --surface: #121210;
  --paper: #f5f2ec;
  --muted: #bdb7ac;
  --gold: #d9b77b;
  --gold-bright: #f0d49d;
  --line: #d9b77b38;
  --space-1: .5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2rem;
  --space-5: 3rem;
  --section-space: clamp(2.75rem, 4vw, 3.5rem);
  --page-gutter: clamp(1rem, 4vw, 3.5rem);
  --content-width: 86rem;
  --radius: .75rem;
  --serif: Georgia, 'Times New Roman', serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--space-3); }
body { margin: 0; background: var(--ink); color: var(--paper); font: 16px/1.65 Arial, sans-serif; }
[hidden] { display: none !important; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; touch-action: manipulation; }
button, summary { cursor: pointer; }
img { display: block; max-width: 100%; height: auto; }
figure, blockquote { margin: 0; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; }
h2 { margin-bottom: var(--space-3); font-size: clamp(2rem, 3.3vw, 3rem); line-height: 1.16; letter-spacing: -.025em; text-wrap: balance; }
h3 { line-height: 1.3; }
p { margin-bottom: var(--space-2); }
em { font-weight: 400; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, article:focus-visible {
  outline: 2px solid var(--gold-bright); outline-offset: 5px;
}
.wrap { width: min(var(--content-width), calc(100% - var(--page-gutter) * 2)); margin-inline: auto; }
.section { padding-block: var(--section-space); }
.section + .section { border-top: 1px solid var(--line); }
.gold, .collection-link { color: var(--gold); }
.eyebrow { margin-bottom: var(--space-2); color: var(--gold); font-size: .6875rem; font-weight: 600; line-height: 1.65; letter-spacing: .18em; text-transform: uppercase; }
.small, .visual-note, figcaption { font-size: .75rem; color: var(--muted); line-height: 1.75; }
.small { margin: var(--space-2) 0 0; }
.visual-note { margin: var(--space-3) 0 0; }
figcaption { margin-top: var(--space-1); }
.btn { display: inline-flex; justify-content: center; align-items: center; gap: var(--space-1); min-height: 48px; padding: .875rem 1.375rem; max-width: 100%; border: 1px solid var(--gold); border-radius: .25rem; background: var(--gold); color: var(--ink); font: 600 .75rem/1.5 Arial, sans-serif; letter-spacing: .05em; text-align: center; transition: background .2s ease, box-shadow .2s ease; }
.btn.outline { background: transparent; color: var(--gold); }
.btn:disabled { opacity: .55; cursor: default; }
.collection-link { display: inline-flex; align-items: center; min-height: 44px; font-size: .8125rem; text-underline-offset: .3em; }
.collection-link:hover { text-decoration: underline; }
.skip { position: fixed; inset: .5rem auto auto 1rem; z-index: 50; padding: 1rem; background: var(--paper); color: var(--ink); transform: translateY(-200%); }
.skip:focus { transform: none; }

/* Header: intrinsic action widths, then two rows and an early accessible menu. */
.top { border-bottom: 1px solid var(--line); background: #0b0b0b; }
.prestige-header .wrap, .hero-shell { width: min(112rem, calc(100% - clamp(2rem, 6vw, 8rem))); }
.nav { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: clamp(.875rem, 1.5vw, 1.5rem); padding-block: 1.25rem; }
.brand { display: block; width: clamp(12rem, 17vw, 17rem); }
/* A transparent vector wordmark, independent from the brochure photograph. */
.brand-art { display: block; }
.brand-art img { display: block; width: 100%; height: auto; }
.prestige-navigation { display: flex; align-items: center; justify-content: center; gap: .5rem 1.25rem; min-width: 0; }
.prestige-navigation a { display: inline-flex; align-items: center; min-height: 44px; font-size: .6875rem; line-height: 1.5; letter-spacing: .045em; }
.prestige-navigation a:hover { color: var(--gold); }
.header-phone { white-space: nowrap; color: var(--gold); font-size: .875rem; font-variant-numeric: tabular-nums; min-height: 44px; display: inline-flex; align-items: center; }
/* Gold surface and a travelling light along the contour, reversing each cycle. */
.photo-quote { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: .625rem; min-height: 52px; width: max-content; max-width: 100%; padding: .5rem 1rem .5rem .5rem; border: 1px solid #f3dca5; border-radius: 999px; background: linear-gradient(115deg, #b88b43 0%, #e8c98a 27%, #f5dfab 48%, #d2aa62 73%, #e8cc94 100%); color: var(--ink); font: 600 .8125rem/1.4 Arial, sans-serif; white-space: nowrap; box-shadow: inset 0 1px 0 #fff7, inset 0 -1px 0 #8b642666; transition: transform .25s ease, filter .25s ease; }
.photo-quote::before { content: ''; position: absolute; inset: -2px; z-index: -1; border-radius: inherit; box-shadow: 0 0 12px #f9dfab88, 0 0 30px #d9b77b77, 0 0 54px #c9944238; opacity: .6; animation: quote-halo 3.6s ease-in-out infinite alternate; pointer-events: none; }
.photo-quote-badge { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-height: 30px; padding: .375rem .625rem; border-radius: 999px; background: var(--ink); color: var(--gold-bright); font-size: .5625rem; font-weight: 700; letter-spacing: .09em; }
.photo-quote-led { position: absolute; inset: -2px; width: calc(100% + 4px); height: calc(100% + 4px); overflow: visible; pointer-events: none; }
.photo-quote-led-track { stroke: #ffe6ad; stroke-width: 1; opacity: .5; }
.photo-quote-led-trail { stroke: #fff6d9; stroke-width: 2.2; stroke-linecap: round; stroke-dasharray: 16 84; filter: drop-shadow(0 0 3px #fff0bd) drop-shadow(0 0 8px #edba56); animation: quote-led-travel 3.6s ease-in-out infinite alternate; }
.photo-quote-mobile { display: none; }
.photo-quote:focus-visible { outline-offset: 6px; }
.hero-quote { white-space: normal; }
@keyframes quote-halo { from { opacity: .55; } to { opacity: 1; } }
@keyframes quote-led-travel { from { stroke-dashoffset: 0; } to { stroke-dashoffset: -100; } }
.menu-toggle { display: none; border: 1px solid var(--line); border-radius: .25rem; background: transparent; color: var(--gold); padding: .625rem .875rem; min-height: 44px; font-size: .75rem; }
@media (max-width: 1199px) {
  .nav { grid-template-columns: minmax(12rem, 1fr) auto auto auto; }
  .header-quote { grid-column: 2; grid-row: 1; }
  .header-phone { grid-column: 3; grid-row: 1; }
  .menu-toggle { display: block; grid-column: 4; grid-row: 1; justify-self: end; }
  .prestige-navigation { display: none; grid-column: 1 / -1; grid-row: 2; border-top: 1px solid var(--line); padding-top: var(--space-1); }
  .prestige-navigation.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .prestige-navigation a { padding: .875rem .5rem; min-height: 48px; font-size: .8125rem; }
}
@media (max-width: 899px) {
  .nav { grid-template-columns: minmax(0, 1fr) auto; gap: .5rem 1rem; }
  .brand { grid-column: 1; grid-row: 1 / 3; }
  .menu-toggle { grid-column: 2; grid-row: 1; }
  .header-phone { grid-column: 2; grid-row: 2; justify-self: end; }
  .header-quote { grid-column: 1 / -1; grid-row: 3; justify-self: end; }
  .prestige-navigation { grid-row: 4; }
}
@media (max-width: 767px) {
  .photo-quote { width: 100%; gap: .75rem; }
  .photo-quote-invitation, .photo-quote-desktop { display: none; }
  .photo-quote-mobile { display: inline; }
  .photo-quote-label { flex: 1; text-align: center; }
}
/* Keep the header action on phones; hide the duplicate in the hero, including touch landscape. */
@media (max-width: 767px), (max-width: 1023px) and (hover: none) and (pointer: coarse) {
  .hero-quote { display: none; }
}

/* Immersive opening: the existing brochure becomes a tilted background layer. */
.hero-shell { position: relative; width: 100%; }
.hero { position: relative; isolation: isolate; overflow: hidden; display: flex; min-height: clamp(44rem, calc(100svh - 7.5rem), 64rem); margin: 0; padding: 0; background: #0b0b0b; }
.hero-copy { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; width: min(76%, 78rem); min-width: 0; padding: clamp(3rem, 5vw, 6rem) clamp(1.5rem, 5.5vw, 7rem); }
.hero-eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; margin-bottom: clamp(1.5rem, 2.5vw, 3rem); font-size: .625rem; }
.hero-eyebrow::before { content: ''; width: 2rem; height: 1px; background: var(--gold); }
.hero-eyebrow span { white-space: nowrap; }
.hero h1 { position: relative; margin: 0 0 clamp(1.75rem, 3vw, 3rem); font-size: clamp(4rem, 7.4vw, 9.5rem); line-height: .99; letter-spacing: -.055em; text-shadow: 0 3px 35px #0007; }
.hero-title-main { display: block; }
.galva-slogan { text-transform: none; }
.hero .galva-slogan em { display: block; color: var(--gold); font-size: 1.08em; font-style: italic; margin-top: .15em; }
/* Letters retain their full layout; progressive visibility never moves the surrounding content. */
.hero-typewriter .type-word { white-space: nowrap; }
.hero-typewriter .type-letter { position: relative; }
.hero-typewriter.is-typing .type-letter:not(.is-typed) { opacity: 0; }
.hero-typewriter .type-letter::after { content: ''; position: absolute; inset-inline-end: -.06em; top: .1em; width: 1px; height: .85em; background: currentColor; opacity: 0; }
.hero-typewriter.is-typing .type-letter.is-current::after { opacity: 1; }
.intro { max-width: 29rem; margin-bottom: var(--space-3); font-size: 1.0625rem; color: var(--muted); }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; }
.hero .intro { max-width: 33rem; margin-bottom: 1.75rem; font-size: clamp(1rem, 1.1vw, 1.1875rem); line-height: 1.75; color: #d0c9bd; text-shadow: 0 2px 16px #000; }
.hero .actions { gap: .75rem 1.5rem; margin-top: .25rem; }
.hero .collection-link { gap: 1rem; min-height: 48px; padding-block: .625rem; border-bottom: 1px solid #d9b77b80; font-size: .8125rem; letter-spacing: .035em; }
.hero .collection-link:hover { color: var(--gold-bright); border-color: var(--gold-bright); text-decoration: none; }
.hero-signature { display: flex; align-items: center; gap: 1rem; margin-top: clamp(2rem, 3vw, 3rem); color: #a69a85; font-size: .5625rem; letter-spacing: .19em; }
.hero-signature-line { width: 2.5rem; height: 1px; background: var(--gold); opacity: .55; }
.hero-picture { position: absolute; z-index: 0; inset: 0; margin: 0; padding: 0; border: 0; pointer-events: none; }
.hero-picture::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, #0b0b0b 0%, transparent 18%, transparent 85%, #0b0b0b55 100%), linear-gradient(90deg, #0b0b0b 0%, #0b0b0bf7 28%, #0b0b0bc9 43%, #0b0b0b55 63%, #0b0b0b10 100%); }
.hero-artwork { --flyer-angle: -6deg; position: absolute; top: 50%; right: -4%; width: 72vw; transform: translateY(-50%) rotate(var(--flyer-angle)); transform-origin: center; opacity: .95; animation: flyer-settle 1.8s cubic-bezier(.16, 1, .3, 1) both; }
.hero-picture img { display: block; width: 100%; height: auto; max-width: none; max-height: none; box-shadow: 0 0 100px #000b; }
@keyframes flyer-settle { from { opacity: 0; transform: translate(1.5rem, -53%) rotate(calc(var(--flyer-angle) - 4deg)) scale(1.22); filter: blur(3px); } to { opacity: .95; transform: translate(0, -50%) rotate(var(--flyer-angle)) scale(1); filter: blur(0); } }

/* Five equal portraits: the existing panorama is cropped, never stretched. */
#les-portes { border-top: 1px solid var(--line); }
.door-collection { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-3); margin-top: var(--space-4); align-items: start; isolation: isolate; }
.door-product { position: relative; min-width: 0; z-index: 0; }
.door-product summary { list-style: none; text-align: center; border-radius: .5rem; outline: 1px solid transparent; outline-offset: .5rem; transition: transform .4s cubic-bezier(.2,.75,.25,1), box-shadow .4s ease, outline-color .4s ease, background .4s ease; }
.door-product:focus-within, .door-product.is-touched { z-index: 4; }
.door-product:not([open]) summary:focus-visible, .door-product:not([open]).is-touched summary { transform: translateY(-5px) scale(1.035); outline-color: var(--gold); background: #d9b77b0a; box-shadow: 0 0 30px #d9b77b35, 0 18px 35px #0009; }
.door-product:not([open]).is-touched .door-portrait img, .door-product summary:focus-visible .door-portrait img { filter: brightness(1.12) saturate(1.06); }
.door-product summary::-webkit-details-marker { display: none; }
.door-portrait { display: block; position: relative; overflow: hidden; width: 100%; aspect-ratio: 430.4 / 731; background: var(--surface); }
.door-portrait img { position: absolute; inset-block-start: 0; inset-inline-start: calc(var(--door-index) * -100%); width: 500%; max-width: none; height: auto; transition: filter .4s ease; }
.door-name { display: block; margin-top: var(--space-2); color: var(--gold); font-size: .8125rem; font-weight: 600; line-height: 1.5; letter-spacing: .06em; }
.door-tag { display: block; min-height: 4.8em; margin-top: .625rem; color: var(--muted); font: italic .875rem/1.6 var(--serif); }
.door-discover { display: block; margin-top: .625rem; padding-block: .5rem; color: var(--gold); font-size: .6875rem; letter-spacing: .09em; }
.door-product[open] { grid-column: 1 / -1; padding: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.door-product[open] summary { display: flex; align-items: center; gap: var(--space-3); text-align: left; }
.door-product[open] summary .door-portrait { width: 3rem; flex: 0 0 3rem; }
.door-product[open] summary .door-name { margin: 0; }
.door-product[open] summary .door-tag { display: none; }
.door-product[open] summary .door-discover { margin: 0 0 0 auto; }
.door-detail { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: var(--space-5); align-items: center; margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--line); }
.door-detail > .door-portrait { width: min(100%, 22rem); justify-self: center; }
.door-copy { min-width: 0; max-width: 40rem; }
.door-copy h3 { margin-bottom: var(--space-2); color: var(--gold); font-size: 2rem; }
.door-copy p, .door-copy dd { color: var(--muted); font-size: .875rem; }
.door-copy dl { margin: var(--space-3) 0; }
.door-copy dt { margin-top: var(--space-2); color: var(--gold); font-size: .8125rem; }
.door-copy dd { margin: .25rem 0 0; }
.door-copy .btn { margin-right: var(--space-2); }
.door-close { display: block; min-height: 44px; margin-top: var(--space-2); padding: 0; border: 0; background: transparent; color: var(--gold); font-size: .75rem; text-decoration: underline; }

/* Raised gold medallions above five rounded promise cards. */
.prestige-trust { padding-block: 0 var(--space-3); }
.horizontal-promises { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 4rem 1.125rem; padding-block: 3.5rem .75rem; isolation: isolate; }
.horizontal-promises article { display: flex; flex-direction: column; align-items: stretch; min-width: 0; min-height: 13rem; padding: 3rem 1.125rem 1.25rem; position: relative; border: 1px solid #ab874a; border-radius: 1.75rem; background: radial-gradient(ellipse at 50% 0%, #d6ab5038, transparent 65%), linear-gradient(140deg, #1c1810, #090909 70%); box-shadow: inset 0 1px 0 #fff0ca38, inset 0 -2px 0 #b98b3e38, 0 10px 25px #0006; text-align: center; transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.promise-icon { position: absolute; width: 6rem; height: 6rem; top: -3rem; left: 50%; transform: translateX(-50%); filter: drop-shadow(0 5px 10px #0009) drop-shadow(0 0 9px #d9b77b40); pointer-events: none; }
.promise-icon img { width: 100%; height: auto; }
.promise-copy { min-width: 0; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; border: 0; padding: 0; }
.horizontal-promises h3 { display: grid; place-items: center; min-height: 2.8em; width: 100%; margin: 0 0 .375rem; font: 600 .6875rem/1.4 Arial, sans-serif; letter-spacing: .035em; }
.horizontal-promises strong { display: block; color: var(--gold-bright); font: 400 clamp(1.375rem, 1.8vw, 1.875rem)/1.15 var(--serif); }
.horizontal-promises p { width: 100%; margin: .875rem 0 0; padding-top: .75rem; border-top: 1px solid #c49a4566; color: var(--muted); font-size: .75rem; line-height: 1.5; }
.horizontal-promises article:focus-visible, .horizontal-promises article.is-touched { transform: translateY(-4px) scale(1.035); border-color: var(--gold-bright); z-index: 3; box-shadow: 0 0 28px #c49a4560, 0 15px 30px #0008; }
.engagement-conditions { max-width: 74rem; margin: var(--space-2) auto 0; color: var(--muted); font-size: .6875rem; line-height: 1.8; }
.engagement-conditions p { margin-bottom: .5rem; }
.conditions-title { color: var(--gold); }

/* Atelier: inspiration, controls and summary form one coherent composition. */
.atelier-intro { max-width: 42rem; color: var(--muted); }
.atelier-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: var(--space-5); margin-top: var(--space-4); }
.atelier-interface { min-width: 0; }
.atelier-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.atelier-controls label { display: flex; flex-direction: column; gap: .75rem; color: var(--gold); font-size: .8125rem; }
.atelier-controls .visual-note { grid-column: 1 / -1; margin: 0; }
input, select, textarea { width: 100%; min-width: 0; min-height: 48px; border: 1px solid #827251; border-radius: .25rem; padding: .75rem; background: #1a1a16; color: var(--paper); font-size: 1rem; }
select { text-overflow: ellipsis; }
textarea { resize: vertical; }
.atelier-summary { margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--line); }
.atelier-summary h3 { margin: 0 0 var(--space-2); font-size: 1.75rem; color: var(--gold); }
.atelier-summary p { color: var(--muted); font-size: .875rem; overflow-wrap: anywhere; }
.atelier-summary .btn { margin-top: var(--space-1); }
.reference-window { position: relative; overflow: hidden; width: 100%; background: var(--surface); }
.reference-window img { position: absolute; max-width: none; height: auto; }
/* These viewports isolate the validated photos from their supplied reference screenshots. */
.atelier-reference { aspect-ratio: 958 / 539; }
.atelier-reference img { width: 114.509394%; left: -8.037578%; top: -14.285714%; }
.maison-reference { aspect-ratio: 958 / 495; }
.maison-reference img { width: 124.947808%; left: -11.169102%; top: -24.646465%; }
.maison-editorial { display: grid; grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); gap: var(--space-5); align-items: center; }
.maison-editorial-copy { min-width: 0; }
.maison-editorial-copy h2 { font-size: clamp(1.875rem, 2.8vw, 2.625rem); }
.maison-editorial-copy p { color: var(--muted); font-size: .9375rem; }
.maison-editorial-copy > p:first-of-type { font: italic 1.25rem/1.6 var(--serif); color: var(--paper); }
#zones-intervention { margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--line); }
#zones-intervention strong, #zones-intervention h3 { font: 600 .6875rem/1.6 Arial, sans-serif; letter-spacing: .07em; }
#zones-intervention h3 { margin-top: .75rem; }
#zones-intervention p { font-size: .75rem; margin-bottom: 0; }
.expertise-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: var(--space-5); align-items: center; }
.expertise-figure { width: min(100%, 27rem); justify-self: center; }
.expertise-editorial { color: var(--muted); font: 1.125rem/1.75 var(--serif); }
.security-detail { margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--line); }
.security-detail h3 { margin-bottom: var(--space-2); color: var(--gold); font: 600 .75rem/1.5 Arial, sans-serif; letter-spacing: .09em; }
.security-detail p { color: var(--muted); font-size: .875rem; }
.security-levels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); margin-block: var(--space-3); }
.security-levels strong { display: block; color: var(--gold); font: 1.75rem/1.2 var(--serif); }
.security-levels span { display: block; margin-top: .5rem; font-size: .8125rem; }
.security-detail .visual-note { font-size: .75rem; }

/* Photo quote: one accessible journey, same fields and server endpoint. */
.anchor-target { display: block; }
.photo-pitch { max-width: 68rem; margin-inline: auto; text-align: center; }
.photo-subtitle { max-width: 42rem; margin: 0 auto var(--space-3); color: var(--muted); }
.photo-bubbles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); margin-block: var(--space-4) var(--space-3); }
.photo-bubble { display: grid; justify-items: center; align-content: start; gap: .625rem; min-width: 0; width: 100%; border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem 1rem 1.25rem; background: var(--surface); color: var(--paper); font: inherit; text-align: center; transition: border-color .2s ease, background .2s ease; }
.photo-bubble:hover, .photo-bubble.gs-selected { border-color: var(--gold); }
.photo-number { display: grid; place-items: center; width: 2.5rem; aspect-ratio: 1; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold); font: 1.25rem var(--serif); }
.gs-step-title { color: var(--gold); font-size: .75rem; font-weight: 600; letter-spacing: .05em; }
.gs-step-description { color: var(--muted); font-size: .875rem; line-height: 1.6; }
.gs-story-mini { display: block; width: 100%; max-width: 17rem; }
.gs-story { display: block; width: 100%; height: auto; color: var(--gold); }
.gs-story text { fill: var(--gold-bright); stroke: none; text-anchor: middle; font: 700 12px Arial, sans-serif; letter-spacing: 1.5px; }
.gs-story .story-backdrop { opacity: .045; }
.gs-story .story-surface { fill: #171611; }
.gs-story .story-floor { opacity: .3; }
.gs-story .story-sight, .gs-story .story-send-route { stroke-dasharray: 3 6; opacity: .45; }
.gs-story-scene { width: min(100%, 26rem); margin: -.5rem auto .25rem; border-radius: .75rem; background: radial-gradient(ellipse, #d9b77b0b, transparent 72%); }
.gs-story-scene-compact { width: min(100%, 21rem); }
.gs-scene-caption { margin: 0 auto 1.25rem; max-width: 30rem; color: #e0d6c4; text-align: center; font-size: .9375rem; line-height: 1.6; }
.gs-panel-title { text-wrap: balance; }
.gs-photo-help { max-width: 34rem; margin: .5rem auto 1.25rem; color: var(--muted); font-size: .75rem; }
.gs-photo-help summary { width: fit-content; margin-inline: auto; min-height: 36px; padding-block: .375rem; color: var(--gold); text-decoration: underline; text-underline-offset: .25em; }
.gs-photo-help p { margin: .75rem 0 0; line-height: 1.65; }
.story-camera { transform-box: fill-box; transform-origin: center; animation: story-camera-aim 5s ease-in-out infinite; }
.story-flash { opacity: 0; animation: story-camera-flash 5s ease-in-out infinite; }
.story-bubble { animation: story-bubble-pop 5s ease-in-out infinite; }
.story-plane { animation: story-plane-send 5.5s ease-in-out infinite; }
.story-mail { animation: story-mail-arrive 5.5s ease-in-out infinite; }
.story-document-lines { stroke-dasharray: 72; stroke-dashoffset: 0; animation: story-write 5.5s ease-in-out infinite; }
.story-received { animation: story-delivery 5.5s ease-in-out infinite; }
.story-spark { animation: story-spark 5.5s ease-in-out infinite; }
@keyframes story-camera-aim { 0%, 100% { transform: rotate(-5deg); } 20%, 65% { transform: rotate(0); } }
@keyframes story-camera-flash { 0%, 30%, 45%, 100% { opacity: 0; } 35%, 39% { opacity: 1; } }
@keyframes story-bubble-pop { 0%, 25%, 100% { opacity: .3; } 36%, 70% { opacity: 1; } }
@keyframes story-plane-send { 0%, 20% { opacity: 0; transform: translate(-20px, 20px); } 30% { opacity: 1; } 65% { opacity: 1; transform: translate(42px, -12px); } 80%, 100% { opacity: 0; transform: translate(53px, 16px); } }
@keyframes story-mail-arrive { 0%, 55%, 100% { transform: translateY(0); } 68% { transform: translateY(-5px); } 78% { transform: translateY(0); } }
@keyframes story-write { 0%, 12% { stroke-dashoffset: 72; } 55%, 100% { stroke-dashoffset: 0; } }
@keyframes story-delivery { 0%, 48% { opacity: .2; } 70%, 90% { opacity: 1; } 100% { opacity: .2; } }
@keyframes story-spark { 0%, 50%, 100% { opacity: .15; } 70%, 85% { opacity: 1; } }
.photo-benefits { color: var(--gold); font-size: .75rem; letter-spacing: .12em; }
.photo-disclaimer { color: var(--muted); font-size: .75rem; }
#gs-photo-module { max-width: 58rem; margin: var(--space-4) auto 0; padding: var(--space-4); border: 1px solid #9e8250; border-radius: var(--radius); background: var(--surface); color: var(--paper); text-align: left; }
.gs-panel-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); margin-bottom: var(--space-3); color: var(--gold); font-size: .6875rem; letter-spacing: .08em; }
.gs-panel-toolbar button { min-height: 44px; border: 1px solid var(--line); border-radius: .25rem; padding: .5rem .875rem; background: transparent; color: var(--gold); }
.gs-panel-title { margin: 0 0 var(--space-3); color: var(--gold); font-size: 1.75rem; }
.gs-tip { margin-bottom: var(--space-3); padding: var(--space-2); border: 1px solid var(--line); border-radius: .5rem; background: #ffffff05; color: #e5d9be; font-size: .875rem; }
.gs-buttons { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--space-2); }
.gs-camera-icon { width: 22px; height: 22px; flex-shrink: 0; }
.gs-help { margin-block: var(--space-2); color: var(--muted); text-align: center; font-size: .75rem; }
#gs-video { width: 100%; max-height: 28rem; margin-block: var(--space-3); background: #000; border-radius: .5rem; }
#gs-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); margin-block: var(--space-3); }
#gs-gallery:empty { display: none; }
#gs-gallery figure { min-width: 0; padding: .625rem; border: 1px solid var(--line); border-radius: .5rem; }
#gs-gallery img { width: 100%; height: 12rem; object-fit: contain; background: #080808; }
#gs-gallery figcaption { color: var(--gold); }
.gs-card-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.gs-card-actions button { flex: 1; min-height: 44px; padding: .5rem; border: 1px solid var(--line); border-radius: .25rem; background: transparent; color: var(--paper); font-size: .6875rem; }
#gs-photo-module form { margin-top: var(--space-3); }
#gs-photo-module fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
#gs-photo-module legend { padding: 0 0 var(--space-3); color: var(--gold); font: 1.5rem/1.3 var(--serif); }
.gs-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.gs-field { display: flex; flex-direction: column; gap: .5rem; color: var(--paper); font-size: .8125rem; }
.gs-wide { grid-column: 1 / -1; }
.gs-consent { display: flex; align-items: start; gap: .75rem; margin-block: var(--space-3); font-size: .75rem; }
.gs-consent input { flex: 0 0 20px; width: 20px; height: 20px; min-height: 0; margin: .2rem 0 0; }
.gs-privacy { color: var(--muted); font-size: .75rem; }
.gs-privacy a, .privacy a { text-decoration: underline; text-underline-offset: .2em; }
#gs-send { width: 100%; margin-top: var(--space-2); }
#gs-add { display: flex; margin: var(--space-2) auto; }
#gs-photo-status { margin: var(--space-3) 0 0; color: var(--gold-bright); font-size: .875rem; }
#gs-photo-status:empty { display: none; }
#gs-message-photos { display: flex; gap: .75rem; margin-block: var(--space-2); }
#gs-message-photos img { width: calc((100% - 1.5rem) / 3); height: 9rem; object-fit: contain; border: 1px solid var(--line); border-radius: .5rem; background: #080808; }
#gs-reference { padding: var(--space-2); border: 1px solid var(--gold); color: var(--gold-bright); overflow-wrap: anywhere; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.premium-review { max-width: 48rem; padding: var(--space-4); border-left: 2px solid var(--gold); background: linear-gradient(110deg, #221d14, var(--ink)); }
.premium-review blockquote { margin-bottom: var(--space-2); font: 1.5rem/1.6 var(--serif); }
.premium-review figcaption { color: var(--gold); }
.premium-final { text-align: center; }
.premium-final > p { margin: var(--space-3) 0 0; font-size: .875rem; overflow-wrap: anywhere; }
footer { margin-top: var(--space-4); padding-block: var(--space-4); border-top: 1px solid var(--line); color: var(--muted); font-size: .75rem; }
.privacy { max-width: 60rem; padding-bottom: var(--space-3); }
.privacy h3 { color: var(--paper); font-size: 1.25rem; }
.footer-inner { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.footer-inner a { display: inline-flex; align-items: center; min-height: 44px; }
.mobile-photo-cta { display: none; }

@media (max-width: 1199px) {
  .horizontal-promises { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .horizontal-promises article { grid-column: span 2; }
  .horizontal-promises article:nth-last-child(-n+2) { grid-column: span 3; }
  .door-collection { gap: var(--space-2); }
  .atelier-layout, .maison-editorial, .expertise-layout { gap: var(--space-4); }
  .atelier-controls { grid-template-columns: 1fr; gap: var(--space-2); }
}
@media (max-width: 899px) {
  .hero h1 { font-size: clamp(3.25rem, 8vw, 4.5rem); }
  .hero-copy { width: 86%; }
  .hero .actions { align-items: flex-start; flex-direction: column; }
  .intro { font-size: .9375rem; }
  .door-collection { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4) var(--space-3); }
  .atelier-layout { grid-template-columns: 1fr; }
  .atelier-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .atelier-reference { max-width: 42rem; }
  .expertise-layout { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); }
  .expertise-copy h2 { font-size: 2rem; }
  .maison-editorial { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  html { scroll-padding-bottom: 5rem; }
  body { padding-bottom: calc(4rem + env(safe-area-inset-bottom, 0px)); }
  .nav { padding-block: 1rem; }
  .brand { width: min(100%, 12.5rem); grid-row: 1; }
  .menu-toggle { align-self: start; min-height: 32px; padding: .25rem .5rem; }
  .header-phone { grid-row: 1; align-self: end; min-height: 20px; font-size: .6875rem; }
  .header-quote { grid-row: 2; }
  .prestige-navigation { grid-row: 3; }
  .hero { min-height: 39rem; }
  .hero-copy { width: 100%; padding: 3rem 1.5rem; }
  .hero-eyebrow { margin-bottom: 1.5rem; gap: .25rem .75rem; font-size: .5625rem; letter-spacing: .12em; }
  .hero-eyebrow::before { width: 1.25rem; }
  .hero h1 { font-size: clamp(2.8rem, 12.4vw, 5.25rem); max-width: 100%; }
  .hero-signature { margin-top: 1.5rem; font-size: .5rem; }
  .hero .intro { font-size: 1rem; }
  .hero .actions { align-items: stretch; }
  .hero-artwork { --flyer-angle: -5deg; width: min(88vw, 25rem); right: -8%; top: 46%; opacity: .75; }
  .hero-picture::after { background: linear-gradient(0deg, #0b0b0b 0%, transparent 25%, #0b0b0b44 100%), linear-gradient(90deg, #0b0b0bf5 0%, #0b0b0bd9 30%, #0b0b0ba3 70%, #0b0b0b55 100%); }
  .horizontal-promises { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3.5rem .875rem; }
  .horizontal-promises article, .horizontal-promises article:nth-last-child(-n+2) { grid-column: auto; min-height: 12rem; padding: 2.75rem .75rem 1rem; }
  .horizontal-promises article:last-child { grid-column: 1 / -1; width: calc((100% - .875rem) / 2); justify-self: center; }
  .promise-icon { width: 5.5rem; height: 5.5rem; top: -2.75rem; }
  .promise-copy { padding: 0; }
  .horizontal-promises h3 { font-size: .625rem; }
  .horizontal-promises strong { font-size: clamp(1.125rem, 5vw, 1.5rem); }
  .horizontal-promises p { font-size: .6875rem; }
  .door-collection { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4) var(--space-2); }
  .door-name { font-size: .75rem; letter-spacing: .035em; }
  .door-detail { grid-template-columns: 1fr; gap: var(--space-3); }
  .door-product[open] { padding: var(--space-2); }
  .door-product[open] summary { gap: var(--space-2); }
  .door-product[open] summary .door-discover { font-size: .625rem; }
  .expertise-layout { grid-template-columns: 1fr; }
  .expertise-copy { grid-row: 1; }
  .expertise-figure { width: min(100%, 25rem); }
  .photo-bubbles { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin-block: 1.5rem; }
  .photo-bubble { grid-template-columns: minmax(0, 1fr); text-align: center; justify-items: center; gap: .375rem; padding: .5rem .25rem .875rem; }
  .photo-bubble .gs-step-title { font-size: clamp(.5625rem, 2.4vw, .75rem); letter-spacing: 0; }
  .photo-bubble .gs-step-description { display: none; }
  .gs-story-mini .gs-story { min-height: 60px; }
  .gs-story-scene { width: min(100%, 22rem); }
  .gs-story-scene-compact { width: min(100%, 18rem); }
  .gs-panel-title { font-size: 1.5rem; margin-bottom: 1rem; }
  .gs-scene-caption { font-size: .875rem; margin-bottom: 1rem; }
  .photo-number { grid-row: span 2; align-self: center; }
  .photo-main-cta { width: 100%; }
  #gs-photo-module { padding: var(--space-3); }
  .gs-panel-toolbar { letter-spacing: .03em; }
  .gs-fields { grid-template-columns: 1fr; gap: var(--space-2); }
  .gs-buttons > .btn { width: 100%; }
  #gs-gallery { grid-template-columns: 1fr; }
  #gs-gallery img { height: 15rem; }
  #gs-message-photos img { height: 6rem; }
  .premium-review { padding: var(--space-3); }
  .mobile-photo-cta { display: block; position: fixed; z-index: 30; inset: auto 1rem calc(.5rem + env(safe-area-inset-bottom, 0px)); min-height: 48px; border: 1px solid var(--gold); border-radius: .25rem; padding: .75rem; background: var(--gold); color: var(--ink); box-shadow: 0 4px 20px #0009; font: 600 .75rem/1.5 Arial, sans-serif; }
  body:has(#gs-photo-module:not([hidden])) .mobile-photo-cta,
  body:has(input:focus, select:focus, textarea:focus) .mobile-photo-cta { display: none; }
  input, select, textarea, button, a { scroll-margin-bottom: 5rem; }
}
@media (max-width: 479px) {
  .atelier-controls { grid-template-columns: 1fr; }
  .hero .actions > .btn { width: 100%; }
  .hero .actions > .collection-link { justify-content: center; }
  .door-copy .btn { width: 100%; margin-right: 0; }
  #gs-photo-module { padding: var(--space-2); }
  .gs-panel-toolbar { flex-wrap: wrap; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .photo-quote:hover { transform: scale(1.03); filter: brightness(1.06); z-index: 2; }
  .btn:hover { background: var(--gold-bright); color: var(--ink); box-shadow: 0 0 20px #d9b77b20; }
  .door-product:hover { z-index: 4; }
  .door-product:not([open]) summary:hover { transform: translateY(-5px) scale(1.035); outline-color: var(--gold); background: #d9b77b0a; box-shadow: 0 0 30px #d9b77b35, 0 18px 35px #0009; }
  .door-product summary:hover .door-portrait img { filter: brightness(1.12) saturate(1.06); }
}
@media (min-width: 768px) and (hover: hover) and (prefers-reduced-motion: no-preference) {
  .horizontal-promises article:hover { transform: translateY(-4px) scale(1.05); border-color: var(--gold-bright); z-index: 3; box-shadow: 0 0 28px #c49a4560, 0 15px 30px #0008; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero-typewriter.is-typing .type-letter:not(.is-typed) { opacity: 1; }
  .hero-typewriter .type-letter::after { display: none; }
  .door-product summary, .horizontal-promises article { transform: none !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
