@font-face {
  font-family: Instrument;
  src: url('assets/instrument.woff2') format('woff2');
  font-display: swap;
}
@font-face {
  font-family: Instrument;
  src: url('assets/instrument-italic.woff2') format('woff2');
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: Jakarta;
  src: url('assets/jakarta.woff2') format('woff2');
  font-weight: 400 700;
  font-display: swap;
}

@font-face {
  font-family: Cormorant;
  src: url('assets/cormorant.woff2') format('woff2');
  font-weight: 400 700;
  font-display: swap;
}
@font-face {
  font-family: Cormorant;
  src: url('assets/cormorant-italic.woff2') format('woff2');
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
}

:root {
  --paper: #fcf6f3;
  --ink: #27151e;
  --muted: #624b53;
  --wine: #7a1739;
  --wine-deep: #4b192e;
  --night: #2b101e;
  --blush: #efd6db;
  --gold: #f4d7a7;
  --line: #e3cfd3;
  --serif: Instrument, Georgia, serif;
  --campaign-serif: Cormorant, Georgia, serif;
  --rose: #f7ecea;
  --rose-ink: #390d20;
  --sans: Jakarta, system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body, figure, p, h1, h2, h3 { margin: 0; }
body { background: var(--paper); color: var(--ink); font: 400 1rem/1.58 var(--sans); }
img { display: block; width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 4px; }
button { font: inherit; cursor: pointer; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--wine); outline-offset: 4px; }
.symbols { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.skip-link { position: fixed; top: .75rem; left: .75rem; z-index: 9; transform: translateY(-180%); background: var(--paper); padding: .55rem 1rem; }
.skip-link:focus { transform: none; }
.frame { width: min(calc(100% - 6.5rem), 1392px); margin-inline: auto; }
.icon { flex: none; width: 1.13rem; height: 1.13rem; fill: none; stroke: currentColor; stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; }
h2 { font-size: clamp(3.15rem, 5.1vw, 5.5rem); line-height: .94; letter-spacing: -.026em; }
.eyebrow { color: var(--wine); font-size: .66rem; font-weight: 700; line-height: 1.45; letter-spacing: .17em; }
.eyebrow.light { color: var(--gold); }
section[id], footer[id] { scroll-margin-top: 1rem; }

.button { display: inline-flex; width: fit-content; max-width: 100%; min-height: 46px; align-items: center; justify-content: center; gap: .65rem; padding: .55rem 1.05rem; border: 1px solid transparent; border-radius: 99px; color: inherit; text-decoration: none; font-size: .77rem; font-weight: 700; line-height: 1.25; white-space: nowrap; transition: background-color 180ms ease, border-color 180ms ease; }
.button-outline { background: #2e101d36; border-color: #f4d7a7c7; color: #fff8f7; }
.button-outline:hover { background: #5e2b42; }
.button-wine { background: var(--wine); border-color: #aa5371; color: #fff8f7; }
.button-wine:hover { background: #691936; }
.button-quiet { color: var(--wine); background: transparent; border-color: #ac7284; }
.button-quiet:hover { background: #f2e1e5; }
.button-gold { color: #311928; background: var(--gold); border-color: #ffe6bc; }
.button-gold:hover { background: #ffe5bb; }
.text-link { display: inline-flex; min-height: 44px; align-items: center; color: var(--wine); font-size: .8rem; font-weight: 700; }

/* Campaign masthead and portrait */
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.site-header { position: relative; z-index: 4; background: linear-gradient(100deg,#faf1ee,#f6ebe9); border-bottom: 1px solid #fffaf7; }
.header-frame { width: min(92%, 1600px); margin-inline: auto; }
.header-inner { display: grid; grid-template-columns: minmax(max-content,1fr) auto minmax(max-content,1fr); align-items: center; gap: clamp(1rem, 2vw, 2rem); min-height: clamp(65px, 4.8vw, 85px); }
.masthead { display: inline-flex; align-items: center; gap: clamp(.65rem, 1.45vw, 1.55rem); width: fit-content; text-decoration: none; color: #210f15; }
.monogram { font: 500 clamp(2.8rem, 3.8vw, 4.15rem)/.85 var(--campaign-serif); letter-spacing: -.12em; padding-right: .12em; }
.masthead-name { font-size: clamp(.71rem,1.22vw,1.35rem); line-height: 1.18; font-weight: 600; letter-spacing: .165em; text-transform: uppercase; white-space: nowrap; }
.masthead-name small { display: block; margin-top: .32em; font-size: .49em; font-weight: 700; letter-spacing: .3em; }
.wordmark { width: fit-content; display: inline-flex; align-items: baseline; gap: .38em; text-decoration: none; font: 400 clamp(1.21rem, 1.8vw, 1.7rem)/1 var(--serif); letter-spacing: .08em; white-space: nowrap; }
.wordmark span { color: var(--gold); }
.header-inner nav, .footer-inner nav { display: flex; align-items: center; gap: clamp(.8rem, 2.2vw, 2.25rem); }
.header-inner nav a, .header-menu summary, .footer-inner nav a { display: inline-flex; min-height: 44px; align-items: center; color: inherit; text-decoration: none; font-size: clamp(.75rem, .96vw, 1.025rem); font-weight: 600; }
.header-menu { position: relative; }
.header-menu summary { gap: .32em; cursor: pointer; list-style: none; }
.header-menu summary::-webkit-details-marker { display: none; }
.header-menu summary .icon { width: .85em; height: .85em; }
.header-menu[open] summary .icon { transform: rotate(180deg); }
.menu-panel { position: absolute; z-index: 1; top: calc(100% + .15rem); left: -.7rem; min-width: 11.75rem; padding: .35rem; border: 1px solid #e2c6ca; border-radius: 12px; background: #fff5f0; box-shadow: 0 12px 26px #52182522; }
.header-inner nav .menu-panel a { display: flex; padding-inline: .55rem; white-space: nowrap; }
.menu-panel a + a { border-top: 1px solid #ead8db; }
.footer-inner nav a .icon { margin-left: .28em; }
.header-inner nav a:hover, .footer-inner nav a:hover { text-decoration: underline; }
.header-tools { justify-self: end; display: flex; align-items: center; gap: clamp(.05rem, .8vw, .85rem); }
.tool-button { display: grid; place-items: center; width: 44px; height: 44px; color: var(--ink); background: transparent; border: 0; border-radius: 50%; }
.tool-button:hover { background: #eddee0; }
.tool-button .icon { width: 1.48rem; height: 1.48rem; }
.header-book { margin-left: clamp(.12rem, .75vw, .85rem); min-height: 44px; padding-inline: clamp(.95rem, 1.45vw, 1.6rem); font-size: clamp(.72rem, .92vw, 1rem); font-weight: 600; background: #781636; border-color: #781636; }

.opening { background: radial-gradient(ellipse at 82% 53%, #e5c8c6 0%, transparent 57%), linear-gradient(115deg,#f8eeeb,#f6eae7 65%,#f5e9e6); }
.hero { position: relative; isolation: isolate; overflow: hidden; background: #f7ebe8; }
.hero-media, .hero-shade { position: absolute; inset: 0; }
.hero-media { z-index: -2; }
.hero-image { height: 100%; width: 100%; object-fit: cover; }
.hero-campaign { object-position: 50% 57%; translate: 6.5% 0; mask-image: linear-gradient(90deg,transparent,#000 13%); }
.hero-client-photo { margin-left: auto; width: 65%; object-position: center; mask-image: linear-gradient(90deg, transparent, #000 33%); }
.hero-shade { z-index: -1; background: linear-gradient(90deg,#f8edebdf 0%,#f8edebb0 33%,#f8edeb89 43%,#f8edeb21 51%,transparent 58%), linear-gradient(270deg,#35181d54,transparent 26%); }
.hero-inner { position: relative; display: flex; align-items: center; min-height: clamp(451px, 33.15vw, 655px); padding: clamp(2.4rem,3.8vw,4.2rem) 6.85% clamp(5.3rem,6.3vw,7rem); width: min(100%,1850px); margin-inline: auto; }
.hero-copy { width: 53%; }
.hero h1 { color: var(--rose-ink); font: 500 clamp(4.1rem,5.3vw,6rem)/.96 var(--campaign-serif); letter-spacing: -.064em; text-wrap: balance; }
.hero h1 em { font-weight: 500; }
.hero-actions, .section-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem .85rem; margin-top: 1.3rem; }
.hero-actions { gap: .6rem clamp(.65rem,1.6vw,1.8rem); margin-top: clamp(.95rem,1.48vw,1.65rem); }
.hero-actions .button { min-height: clamp(44px,3.1vw,53px); padding-inline: clamp(1rem,1.65vw,1.75rem); font-size: clamp(.8rem,.95vw,1rem); font-weight: 600; }
.hero-actions .button-wine { border-color: var(--wine); }
.hero-actions .button-wine:hover { background: #5f102a; }
.hero-actions .button-quiet { border-color: #431b2b; color: #371423; background: #fff8f369; }
.hero-actions .button-quiet:hover { background: #fff8f3; }
.hero-carousel { position: absolute; right: 3.15%; bottom: 23%; min-width: clamp(130px,9.7vw,166px); padding: .52rem .58rem; border: 1px solid #ffebe347; border-radius: 15px; color: #fff8f5; background-color: #3d1b29b8; backdrop-filter: blur(9px); }
.slide-caption { margin-left: .22rem; padding: .25rem 0 .25rem clamp(.65rem,.9vw,1rem); border-left: 1px solid #fff5edba; max-width: 8.7rem; font-size: clamp(.72rem,.96vw,1.03rem); line-height: 1.45; }
.hero-controls { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: .5rem; }
.hero-controls button, .feature-arrow { display: grid; flex: none; place-items: center; width: 44px; height: 44px; border: 1px solid #fff9f4; border-radius: 50%; color: var(--rose-ink); background: #fff5f1ed; }
.hero-controls button:hover, .feature-card:hover .feature-arrow { background: #fffdfa; }
.slide-count { flex: none; color: #fff8f5; font-size: .78rem; font-variant-numeric: tabular-nums; text-shadow: 0 1px 6px #210e16; }
.portfolio :focus-visible, .booking :focus-visible, .site-footer :focus-visible, .feature-dialog :focus-visible { outline-color: var(--gold); }

/* The lit glass edge joins the portrait and the three editorial cards. */
.wide-frame { width: min(94.5%, 1630px); margin-inline: auto; }
.shortcut-bar { position: relative; z-index: 2; display: grid; grid-template-columns: 1.16fr 1.07fr .9fr .97fr 1fr 1.02fr .92fr; align-items: stretch; gap: .2rem; width: min(93.65%, 1620px); margin-top: clamp(-73px,-4.25vw,-48px); padding: clamp(.28rem,.42vw,.48rem); min-height: clamp(73px,5.85vw,106px); border: 1px solid #fffaf7; border-radius: 999px; background: linear-gradient(118deg,#fff9f6ee,#fcf2efdb 58%,#f8eeecdd); box-shadow: inset 0 1px 0 #fffaf7, 0 0 24px #fff4ef94, 0 12px 40px #8a4d5212; backdrop-filter: blur(16px); }
.shortcut-bar a { position: relative; display: flex; align-items: center; justify-content: center; gap: clamp(.4rem,.88vw,.95rem); min-width: 0; min-height: 52px; border-radius: inherit; color: #2e1620; text-decoration: none; font-size: clamp(.74rem,.91vw,1.02rem); font-weight: 600; line-height: 1.26; }
.shortcut-bar a + a::before { content: ''; position: absolute; left: -.1rem; height: 46%; border-left: 1px solid #bca1a080; }
.shortcut-bar a:hover, .shortcut-bar a:focus-visible { background: #eed7db; }
.shortcut-bar .shortcut-featured { background: linear-gradient(120deg,#f4dee2,#f1d9dfba); }
.shortcut-bar .icon { width: clamp(1.38rem,2.03vw,2.3rem); height: clamp(1.38rem,2.03vw,2.3rem); color: #621a34; }

.feature-cards { display: grid; grid-template-columns: 1fr 1.045fr 1.045fr; gap: clamp(.55rem,.95vw,1.15rem); padding: clamp(1.45rem,2.55vw,2.85rem) 0 clamp(1.55rem,2.4vw,2.6rem); }
.feature-card { position: relative; isolation: isolate; display: flex; align-items: center; min-height: clamp(180px,13vw,240px); overflow: hidden; border: 1px solid #fff9f6; border-radius: clamp(16px,1.75vw,30px); color: #251219; background: #f3e3df; text-decoration: none; }
.feature-card img { position: absolute; z-index: -2; inset: 0 0 0 auto; width: 79%; height: 100%; object-fit: cover; transition: transform 380ms ease; }
.feature-card:hover img { transform: scale(1.035); }
.feature-card::after { position: absolute; z-index: -1; inset: 0; content: ''; background: linear-gradient(90deg,#f5e9e5 1%,#f5e9e5f2 30%,#f5e9e56b 48%,transparent 68%); }
.feature-copy { width: 58%; padding: .9rem 0 .85rem clamp(.9rem,1.72vw,2rem); }
.feature-copy h2 { font: 600 clamp(1.55rem,2.15vw,2.55rem)/.95 var(--campaign-serif); letter-spacing: -.055em; text-wrap: balance; }
.feature-copy small { display: block; margin-top: .38rem; color: #65414a; font-size: .62rem; }
.feature-look img { width: 63%; object-position: 33% 54%; mask-image: linear-gradient(90deg,transparent,#000 25%); }
.feature-academy { color: #fff5ef; background: linear-gradient(120deg,#4d0e23,#78213c 80%,#921e50); }
.feature-academy img { width: 78%; object-fit: contain; object-position: right bottom; mask-image: linear-gradient(90deg,transparent,#000 38%); }
.feature-academy::after { background: linear-gradient(90deg,#4f1227 4%,#551429ed 31%,#5c172b59 49%,transparent 68%); }
.feature-academy .feature-copy { padding-left: clamp(.95rem,2.05vw,2.4rem); }
.feature-shop img { width: 84%; object-position: 80% 72%; }
.feature-shop::after { background: linear-gradient(90deg,#f2ded9 0%,#f2ded9e8 30%,#f2ded946 58%,transparent 77%), linear-gradient(125deg,#f6dfdf31,transparent); }
.feature-arrow { position: absolute; bottom: clamp(.6rem,.85vw,.95rem); right: clamp(.65rem,.95vw,1.05rem); width: clamp(38px,2.86vw,52px); height: clamp(38px,2.86vw,52px); box-shadow: 0 2px 12px #411c2727; transition: background 180ms ease; }

.destinations { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(.75rem, 1.65vw, 1.45rem); padding-block: clamp(1.45rem, 3vw, 3rem); }
.destination { display: flex; min-width: 0; position: relative; isolation: isolate; align-items: end; min-height: clamp(206px, 23vw, 346px); overflow: hidden; background: var(--wine-deep); color: #fff8f7; border-radius: 18px; text-decoration: none; }
.destination::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, #2b0e1f39 0%, transparent 28%, #2b10204f 51%, #290e21d9 83%, #290e21ee); }
.destination > img { position: absolute; z-index: -2; inset: 0; height: 100%; object-fit: cover; object-position: center 48%; transition: transform 480ms ease; }
.destination:hover > img, .destination:focus-visible > img { transform: scale(1.04); }
.asset-tag { position: absolute; left: .8rem; top: .7rem; padding: .15rem .45rem; border-radius: 99px; color: #fff6f2; background: #2a0d1dc2; font-size: .59rem; }
.destination-copy { display: grid; width: 100%; padding: clamp(.95rem, 1.7vw, 1.65rem) 3.25rem clamp(.95rem, 1.7vw, 1.65rem) clamp(.95rem, 1.7vw, 1.65rem); gap: .15rem; }
.destination-copy strong { font: 400 clamp(1.75rem, 2.9vw, 3rem)/.96 var(--serif); }
.round-arrow { display: grid; position: absolute; right: .9rem; bottom: 1.05rem; width: 39px; height: 39px; place-items: center; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold); transition: background-color 180ms ease; }
.destination:hover .round-arrow { background: #67253d; }

.section-lead { min-width: 0; }
.section-lead h2 { margin: 0 0 .6rem; text-wrap: balance; }
.look-section { display: grid; grid-template-columns: minmax(0,.88fr) minmax(0,2.9fr); align-items: center; gap: clamp(1rem, 2.45vw, 2.4rem); padding-block: clamp(1.05rem, 2.5vw, 2.65rem) clamp(2.25rem, 4.5vw, 4.1rem); }
.looks-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(.45rem, 1.15vw, 1.05rem); }
.look-card { display: grid; align-content: start; min-width: 0; text-decoration: none; }
.look-image { display: block; overflow: hidden; border-radius: 13px; aspect-ratio: 1.34; background: #b58b8e; }
.look-image img { height: 100%; object-fit: cover; transition: transform 380ms ease; }
.look-card:hover img, .look-card:focus-visible img { transform: scale(1.055); }
.moonlight img { object-position: 50% 36%; }
.wispy img { object-position: 50% 41%; }
.kat img { object-position: 50% 44%; }
.signature img { object-position: 50% 49%; }
.look-name { display: flex; align-items: start; justify-content: space-between; gap: .3rem; margin-top: .5rem; color: var(--ink); font-size: clamp(.74rem, 1.12vw, .97rem); font-weight: 700; line-height: 1.3; }
.look-name .icon { width: .87rem; height: .87rem; color: var(--wine); }
.look-card:hover .look-name { text-decoration: underline; }
.look-card small { margin-top: .16rem; color: var(--muted); font-size: .72rem; }

.portfolio { color: #fff8f5; background: radial-gradient(ellipse at 82% 12%, #6b2e47, #421b30 48%, #311322 87%); }
.portfolio-inner { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,2.8fr); align-items: center; gap: clamp(1.1rem, 3.25vw, 3.4rem); padding-block: clamp(1.55rem, 3vw, 3.1rem); }
.portfolio .section-lead > p { max-width: 28ch; color: #f1dce2; font-size: .84rem; text-wrap: pretty; }
.portfolio-view { min-width: 0; }
.portfolio-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 2rem) / 3); gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-color: #a66a83 #431a2e; padding-bottom: .25rem; }
.result-card { position: relative; isolation: isolate; overflow: clip; min-width: 0; height: clamp(148px, 16.5vw, 242px); background: #6d4553; border-radius: 12px; scroll-snap-align: start; }
.result-card::after { content: ''; position: absolute; z-index: 1; inset: 40% 0 0; background: linear-gradient(transparent,#27101ed9); }
.result-card > img { position: absolute; z-index: 0; inset: 0; height: 100%; object-fit: cover; }
.result-atlanta img { object-position: center 40%; }
.result-tokyo img { object-position: center 44%; }
.result-ny img { object-position: center 77%; }
.result-card > div { position: absolute; z-index: 2; inset: auto .6rem .55rem .72rem; display: flex; align-items: end; justify-content: space-between; gap: .35rem; }
.result-card h3 { color: #fff; font-size: clamp(1.22rem, 2vw, 2.1rem); line-height: 1; padding-bottom: .35rem; }
.result-card a, .portfolio-controls button { display: grid; flex: none; place-items: center; width: 44px; height: 44px; border: 1px solid #f7d9b9c4; border-radius: 50%; background: #2e1324a6; color: #fff6ec; }
.result-card a:hover, .portfolio-controls button:hover { background: #854662; }
.result-card :focus-visible { outline-offset: -2px; }
.portfolio-controls { display: flex; align-items: center; justify-content: end; gap: .7rem; margin-top: .35rem; }
.portfolio-count { font-size: .71rem; color: #f6dce3; font-variant-numeric: tabular-nums; }

.training { overflow: clip; background: linear-gradient(98deg,#f2dfe4,#f8eeef 52%,#efd0d8); }
.training-inner { position: relative; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.24fr); align-items: stretch; }
.training-inner .section-lead { position: relative; z-index: 1; align-self: center; padding-block: clamp(2.25rem, 5vw, 4.3rem); padding-right: 1.15rem; }
.training-picture { position: relative; min-height: 255px; margin-inline-end: min(-3.25rem, calc((1392px - 100vw) / 2)); }
.training-picture img { position: absolute; height: 100%; object-fit: cover; object-position: center 53%; }
.training-picture::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#f7e9ec 0%,#f7e9ec57 13%,transparent 35%), linear-gradient(0deg,#2e122373,transparent 24%); pointer-events: none; }
.training-picture figcaption { position: absolute; z-index: 1; right: 1.15rem; bottom: .7rem; color: #fff; font-size: .64rem; }
.shop { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.15fr); gap: clamp(1.35rem, 5vw, 5.25rem); align-items: center; padding-block: clamp(1.75rem, 4vw, 4rem); }
.shop-picture { position: relative; overflow: hidden; border-radius: 16px; aspect-ratio: 1.65; background: #f1e0e0; }
.shop-picture img { height: 100%; object-fit: cover; }
.shop-picture figcaption { position: absolute; left: .65rem; bottom: .65rem; padding: .18rem .45rem; border-radius: 99px; background: #351323c7; color: #fff8f5; font-size: .63rem; }

.booking { position: relative; isolation: isolate; overflow: clip; color: #fff7f4; background: radial-gradient(ellipse at 72% 135%,#bd7589,transparent 48%), radial-gradient(ellipse at 12% 5%,#713550,#361426 75%); }
.booking::after { position: absolute; z-index: -1; content: ''; inset: -40% -16% auto 41%; height: 140%; transform: rotate(-15deg); border-bottom: 1px solid #f1b2c259; border-radius: 50%; box-shadow: 0 18px 52px #f7b7c02c; }
.booking-arc { position: absolute; z-index: -1; width: clamp(210px, 31vw, 500px); left: -6%; bottom: -38%; transform: rotate(-27deg); opacity: .42; pointer-events: none; }
.booking-inner { padding-block: clamp(2.15rem, 4vw, 4rem); text-align: center; }
.booking h2 { margin: .35rem 0 .55rem; }
.booking .button { margin: .92rem auto 0; }
.booking-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .05rem 1rem; margin-top: .45rem; }
.booking-links a { display: inline-flex; min-height: 44px; align-items: center; color: #fae5e7; font-size: .73rem; }
.site-footer { background: var(--night); color: #fff6f5; }
.footer-inner { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .05rem 1.25rem; padding-block: 1.05rem; }
.footer-inner nav { flex-wrap: wrap; }
.footer-inner p { grid-column: 1 / -1; color: #eacfd6; font-size: .65rem; }

.feature-dialog { width: min(100% - 2rem, 820px); max-height: calc(100% - 2rem); padding: clamp(1.1rem, 3vw, 2.2rem); border: 1px solid #bb8199; border-radius: 20px; color: #fff7f6; background: radial-gradient(ellipse at 67% 59%,#6b2e4c,#2e1427 72%); }
.feature-dialog::backdrop { background: #210b19ce; }
.dialog-heading { padding-right: 3.25rem; }
.dialog-heading h2 { margin: .4rem 0 .5rem; font-size: clamp(2.85rem, 5.8vw, 5.5rem); }
.dialog-heading p:not(.eyebrow) { font-size: .85rem; color: #f4d9e5; }
.dialog-close { position: absolute; top: .85rem; right: .85rem; display: grid; place-items: center; width: 44px; height: 44px; color: #fff3f5; border: 1px solid #ddacbb; border-radius: 50%; background: #3c1a30; }
.feature-dialog video { width: 100%; max-height: 60vh; margin-top: .75rem; border-radius: 12px; display: block; }
.hero-stage { position: relative; margin-top: .65rem; height: clamp(260px, 44vw, 420px); }
.stage-surface { position: absolute; inset: 0 0 2.85rem; overflow: hidden; touch-action: pan-y; }
.hero-stage[data-ready] .stage-surface { cursor: grab; }
.hero-stage[data-ready] .stage-surface:active { cursor: grabbing; }
.stage-surface canvas, .stage-poster { position: absolute; inset: 0; width: 100%; height: 100%; }
.stage-poster { object-fit: contain; pointer-events: none; }
.hero-stage[data-ready] .stage-poster { visibility: hidden; }
.stage-controls { position: absolute; bottom: 0; display: flex; align-items: center; gap: .4rem; }
.stage-controls button { min-height: 44px; border: 1px solid #bd879b; background: #441e36; color: #fff6f7; padding: .35rem .75rem; font-size: .72rem; font-weight: 700; }
.stage-controls button[aria-pressed="true"] { background: var(--blush); color: var(--ink); }
.stage-controls small { color: var(--blush); font-size: .65rem; padding-left: .25rem; }

@media (max-width: 1080px) {
  .frame { width: calc(100% - 3.65rem); }
  .look-section { grid-template-columns: minmax(0,.82fr) minmax(0,2.8fr); }
  .training-picture { margin-inline-end: -1.825rem; }
}
@media (max-width: 800px) {
  .frame { width: calc(100% - 2.25rem); }
  .look-section { grid-template-columns: 1fr; }
  .portfolio-inner { grid-template-columns: minmax(0,.9fr) minmax(0,2.45fr); }
  .portfolio-track { grid-auto-columns: calc((100% - .7rem) / 2); gap: .7rem; }
  .training-picture { margin-inline-end: -1.125rem; }
}
@media (max-width: 640px) {
  .destinations { grid-template-columns: 1fr; gap: .75rem; }
  .destination { min-height: 188px; }
  .destination-copy strong { font-size: 2.2rem; }
  .look-section { gap: .85rem; padding-top: .65rem; }
  .looks-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .85rem .6rem; }
  .look-name { font-size: .83rem; }
  .portfolio-inner { grid-template-columns: 1fr; gap: .9rem; }
  .portfolio-track { grid-auto-columns: min(79%,330px); }
  .result-card { height: 183px; }
  .result-card h3 { font-size: 1.66rem; }
  .training-inner, .shop { grid-template-columns: 1fr; }
  .training-inner .section-lead { padding: 2rem 0 .95rem; }
  .training-picture { margin-inline: -1.125rem; min-height: 212px; }
  .training-picture::after { background: linear-gradient(180deg,#f7e9ec,transparent 26%),linear-gradient(0deg,#3010258f,transparent 30%); }
  .shop { gap: .95rem; }
  .shop-picture { aspect-ratio: 1.57; }
  .booking-arc { left: -23%; bottom: -18%; opacity: .26; }
  .footer-inner { grid-template-columns: 1fr; }
  .footer-inner nav { gap: .2rem 1.05rem; }
}
@media (max-width: 359px) {
  .frame { width: calc(100% - 1.65rem); }
}

.portfolio-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .8rem; margin-top: .85rem; }
.portfolio-arc { min-height: 44px; padding: 0; border: 0; color: #fff3ec; background: transparent; text-decoration: underline; text-underline-offset: .25em; font-size: .72rem; }
.training-picture { background: #581426; }
.training-picture img { object-position: 58% 64%; }
.training-picture::after { background: linear-gradient(90deg,#f7e9ec 0%,#f7e9ec4d 13%,transparent 31%), linear-gradient(0deg,#2e122373,transparent 26%); }
.extras { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--line); padding-block: 1.6rem 2.1rem; }
.extras article { padding: 0 clamp(.65rem,2vw,2rem); scroll-margin-top: 1rem; }
.extras article:first-child { padding-left: 0; }
.extras article + article { border-left: 1px solid var(--line); }
.extras article > .icon { color: var(--wine); width: 1.4rem; height: 1.4rem; }
.extras h2 { margin-top: .35rem; font-size: clamp(1.85rem,3vw,2.9rem); }
.extras .text-link .icon, .game-result .text-link .icon { margin-left: .35em; width: .85em; }
.appointment-note { margin-top: .75rem; color: #fae5e7; font-size: .76rem; text-wrap: pretty; }
.utility-dialog { width: min(100% - 2rem, 600px); color: var(--ink); background: #fff6f2; border-color: #d9b4be; }
.utility-dialog :focus-visible { outline-color: var(--wine); }
.utility-dialog .dialog-close { border-color: #d9b4be; color: var(--wine); background: #f5e4e7; }
.utility-dialog .dialog-heading p:not(.eyebrow) { color: var(--muted); }
.utility-dialog .dialog-heading h2 { font-size: clamp(2.7rem,6vw,4.3rem); }
#site-search { width: 100%; min-height: 48px; padding: .65rem .85rem; margin-top: .65rem; background: white; border: 1px solid #b98091; border-radius: 9px; color: var(--ink); font: inherit; }
.search-results { list-style: none; padding: 0; margin: .65rem 0 0; }
.search-results li + li { border-top: 1px solid var(--line); }
.search-results a { display: flex; align-items: center; min-height: 44px; font-size: .87rem; }
.search-empty { margin-top: .8rem; font-size: .86rem; }
.game-choices { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1rem; }
.game-choices [aria-pressed="true"] { background: var(--wine); border-color: var(--wine); color: white; }
.game-result { display: grid; grid-template-columns: minmax(85px,1fr) 1.2fr; align-items: center; gap: .85rem; padding-top: 1.1rem; }
.game-result img { height: 105px; object-fit: cover; border-radius: 10px; }
.game-result h3 { font-size: clamp(1.55rem,4vw,2.55rem); line-height: 1.05; margin-top: .3rem; }

@media (max-width: 1150px) {
  .header-inner { gap: .9rem; }
  .header-inner nav { gap: .9rem; }
  .header-tools { gap: 0; }
  .hero-inner { padding-left: 5.1%; }
  .hero-copy { width: 58%; }
  .hero h1 { font-size: clamp(3.65rem,5.65vw,4.65rem); }
}
@media (max-width: 960px) {
  .header-inner { grid-template-columns: 1fr auto; gap: 0 .5rem; min-height: auto; padding-top: .55rem; }
  .header-inner nav { grid-row: 2; grid-column: 1 / -1; justify-content: center; gap: clamp(.7rem,4vw,2.35rem); }
  .header-inner nav a, .header-menu summary { min-height: 39px; }
  .hero-inner { min-height: 425px; padding-left: 4.5%; }
  .hero-campaign { object-position: 52% 55%; }
  .hero-shade { background: linear-gradient(90deg,#f8edebed,#f8edebc9 30%,#f8edeb66 46%,transparent 69%), linear-gradient(270deg,#35181d47,transparent 29%); }
  .shortcut-bar { width: 95%; }
  .shortcut-bar a { font-size: .69rem; }
  .feature-copy { width: 65%; }
  .feature-copy h2 { font-size: clamp(1.35rem,2.75vw,2rem); }
  .feature-card::after { background-size: 112% 100%; }
}
@media (max-width: 680px) {
  .header-frame { width: calc(100% - 1.5rem); }
  .header-inner nav { justify-content: space-between; gap: .25rem; }
  .header-inner nav a, .header-menu summary { min-height: 38px; font-size: clamp(.69rem,2.45vw,.8rem); }
  .header-menu:first-child .menu-panel { left: 0; }
  .masthead { gap: .43rem; }
  .masthead-name { font-size: clamp(.64rem,2.75vw,.8rem); letter-spacing: .09em; }
  .masthead-name small { letter-spacing: .22em; }
  .monogram { font-size: clamp(2.25rem,9vw,3.3rem); }
  .header-appointment, .offer-tool, .account-tool { display: none; }
  .header-book { padding-inline: .68rem; min-height: 40px; }
  .header-book .icon { width: .9rem; height: .9rem; }
  .hero { --hero-image-height: clamp(265px,65vw,430px); }
  .hero-inner { min-height: 0; display: block; padding: clamp(14.65rem,57vw,22rem) 1.15rem 1.5rem; }
  .hero-copy { width: 100%; }
  .hero-media { height: var(--hero-image-height); }
  .hero-campaign { object-position: 54% 58%; translate: none; mask-image: none; }
  .hero-client-photo { width: 100%; mask-image: none; }
  .hero-shade { bottom: auto; height: var(--hero-image-height); background: linear-gradient(180deg,transparent 48%,#f7ebe8 99%); }
  .hero h1 { font-size: clamp(3.25rem,11.6vw,5.1rem); }
  .hero-actions { margin-top: .85rem; gap: .45rem; }
  .hero-actions .button { min-height: 44px; padding-inline: .68rem; font-size: clamp(.67rem,2.9vw,.86rem); }
  .hero-carousel { inset: .65rem .8rem auto auto; min-width: 0; padding: 0; border: 0; background: transparent; backdrop-filter: none; }
  .slide-caption { display: none; }
  .hero-controls { padding: .18rem; margin: 0; border: 1px solid #fff4ec8c; border-radius: 50px; background: #311420b0; }
  .hero-controls button { width: 40px; height: 40px; }
  .shortcut-bar { width: calc(100% - 1.25rem); margin-top: 0; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .2rem; min-height: 0; padding: .35rem; border-radius: 22px; }
  .shortcut-bar a { min-height: 61px; flex-direction: column; gap: .25rem; border-radius: 14px; text-align: center; font-size: clamp(.62rem,2.35vw,.79rem); }
  .shortcut-bar a + a::before { display: none; }
  .shortcut-bar a .icon { width: 1.3rem; height: 1.3rem; }
  .feature-cards { grid-template-columns: 1fr; width: calc(100% - 1.25rem); gap: .65rem; padding-top: 1rem; }
  .feature-card { min-height: clamp(168px,46vw,228px); }
  .feature-copy { width: 57%; padding-left: 1rem; }
  .feature-copy h2 { font-size: clamp(1.62rem,6.7vw,2.35rem); }
  .feature-academy .feature-copy { padding-left: 1rem; }
  .feature-card::after { background-size: 100% 100%; }
  .extras { grid-template-columns: 1fr; padding-block: .7rem 1.1rem; }
  .extras article, .extras article:first-child { padding: .85rem 0; }
  .extras article + article { border-left: 0; border-top: 1px solid var(--line); }
  .training-picture::after { background: linear-gradient(180deg,#f7e9ec,transparent 22%),linear-gradient(0deg,#3010258f,transparent 30%); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button, .destination > img, .look-image img, .round-arrow, .feature-card img, .feature-arrow { transition: none; }
  .destination:hover > img, .destination:focus-visible > img, .look-card:hover img, .look-card:focus-visible img, .feature-card:hover img { transform: none; }
  .hero-stage[data-ready] .stage-surface { cursor: default; }
  .stage-controls small { display: none; }
}
