/* Glensara Designer Brand Code v1.0. Generated by build_theme.py from Glensara_Website/index.html. */
/* Glensara Designer Brand Code v1.0 */
:root {
  --obsidian: #080909;
  --charcoal: #17191a;
  --slate: #2a2d2e;
  --highland: #193047;
  --bronze: #7c5735;
  --gold: #b18a57;
  --gold-hi: #c9a26c;
  --stone: #8d8982;
  --sand: #b6a38b;
  --ivory: #d8d0c3;
  --line: rgba(177,138,87,.28);
  --line-soft: rgba(216,208,195,.1);
  --radius: 4px;
  --max: 1280px;
  --serif: "Cinzel", "Trajan Pro", "Times New Roman", serif;
  --sans: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ease: cubic-bezier(.22,.8,.2,1);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--obsidian); color: var(--ivory); font: 400 16px/1.65 var(--sans); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 3px; }
.wrap { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 28px; }
@media (max-width: 600px) { .wrap { padding: 0 16px; } }
.skip { position: absolute; left: -999px; top: 8px; z-index: 200; background: var(--gold); color: var(--obsidian); padding: 10px 14px; }
.skip:focus { left: 8px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

h1, h2, h3 { font-family: var(--serif); font-weight: 500; margin: 0; color: #ece5d8; }
h2 { font-size: clamp(30px, 4.2vw, 58px); line-height: 1.06; letter-spacing: .04em; text-transform: uppercase; }
h3 { font-size: 21px; line-height: 1.25; letter-spacing: .03em; }
.label { display: inline-flex; align-items: center; gap: 12px; margin: 0 0 22px; color: var(--gold); font: 600 12px/1.3 var(--sans); letter-spacing: .18em; text-transform: uppercase; }
.label::before { content: ""; width: 28px; height: 1px; background: var(--gold); }
.lede { max-width: 36em; margin: 22px 0 0; color: #b9b2a6; font-size: 18px; }
section { position: relative; padding: 88px 0; }
@media (max-width: 700px) { section { padding: 60px 0; } }
/* Scene transitions: sections rise in as they arrive and fade back as they leave. */
.scene { opacity: 0; transform: translateY(60px) scale(.985); transition: opacity .9s var(--ease), transform 1s var(--ease); }
.scene.is-in { opacity: 1; transform: none; }
/* The first section of an inner page is on screen from the start: no fade-in. */
main > section:first-child.scene:not(.is-past) { opacity: 1; transform: none; transition: none; }
@media (max-width: 900px) { main > section:first-child:not(.hero) { padding-top: 128px; } }
.scene.is-past { opacity: .25; transform: scale(.97); transition: opacity .6s ease, transform .8s var(--ease); }
@media (prefers-reduced-motion: reduce) { .scene, .scene.is-in, .scene.is-past { opacity: 1; transform: none; transition: none; } }
.divider { height: 1px; background: linear-gradient(90deg, transparent, var(--line), transparent); border: 0; margin: 0; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 14px 26px; border: 1px solid transparent; border-radius: var(--radius); font: 700 13px/1.2 var(--sans); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background-color .25s, color .25s, border-color .25s; }
.btn--gold { background: var(--gold); color: var(--obsidian); }
.btn--gold:hover { background: var(--gold-hi); }
.btn--line { border-color: rgba(216,208,195,.45); color: var(--ivory); background: transparent; }
.btn--line:hover { border-color: var(--gold); color: var(--gold-hi); }

/* ---------- motion primitives ---------- */
.frame { position: relative; overflow: hidden; background: var(--charcoal); }
.frame img { width: 100%; height: 100%; object-fit: cover; }
.frame [data-parallax] { height: 124%; margin-top: -12%; will-change: transform; }
.wipe img { clip-path: inset(0 0 100% 0); transform: scale(1.18); transition: clip-path 1.4s var(--ease), transform 2.2s var(--ease); }
.wipe.is-in img { clip-path: inset(0 0 0 0); transform: scale(1); }
.rise { opacity: 0; transform: translateY(26px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
.rise.is-in { opacity: 1; transform: none; }

/* ---------- header ---------- */
.head { position: fixed; inset: 0 0 auto; z-index: 60; transition: background-color .4s, border-color .4s; border-bottom: 1px solid transparent; }
.head.is-solid { background: rgba(8,9,9,.9); backdrop-filter: blur(12px); border-bottom-color: var(--line); }
.head__in { display: flex; align-items: center; justify-content: space-between; height: 80px; gap: 20px; }
.brand { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.brand img { width: 48px; height: 48px; border-radius: 50%; filter: drop-shadow(0 2px 6px rgba(0,0,0,.4)); }
.brand span { font-family: var(--serif); font-size: 17px; letter-spacing: .3em; white-space: nowrap; }
.brand span em { font-style: normal; color: var(--gold-hi); }
@media (max-width: 420px) { .brand span { font-size: 14px; letter-spacing: .2em; } }
html { scroll-padding-top: 80px; }
.brand { flex-shrink: 0; }
.head .wrap { max-width: 1520px; }
.nav { display: flex; align-items: center; gap: clamp(12px, 1.6vw, 30px); }
.nav a { text-decoration: none; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #bdb6aa; }
.nav a:hover { color: var(--ivory); }
.nav .btn { min-height: 44px; padding: 10px 18px; color: var(--obsidian); white-space: nowrap; }
/* Dropdowns: open on hover or keyboard focus (desktop), with a + toggle on phones */
.nav__item { position: relative; display: flex; align-items: center; }
.nav__item > a { display: inline-flex; align-items: center; gap: 7px; padding: 28px 0; white-space: nowrap; }
.nav__item > a::after { content: ""; width: 5px; height: 5px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); opacity: .6; transition: transform .3s var(--ease), opacity .3s; }
.nav__item:hover > a, .nav__item:focus-within > a { color: var(--ivory); }
.nav__item:hover > a::after, .nav__item:focus-within > a::after { transform: translateY(1px) rotate(225deg); opacity: 1; }
.nav__sub { position: absolute; top: 100%; left: 50%; min-width: 230px; margin: 0; padding: 10px; list-style: none; background: rgba(12,13,14,.97); backdrop-filter: blur(14px); border: 1px solid var(--line); border-top: 2px solid var(--gold); border-radius: 0 0 var(--radius) var(--radius); box-shadow: 0 18px 40px rgba(0,0,0,.5);
  opacity: 0; visibility: hidden; transform: translate(-50%, 10px); transition: opacity .25s var(--ease), transform .3s var(--ease), visibility 0s .3s; }
.nav__item:hover .nav__sub, .nav__item:focus-within .nav__sub { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition: opacity .25s var(--ease), transform .3s var(--ease), visibility 0s; }
.nav__sub a { display: block; padding: 10px 14px; border-radius: 4px; font-size: 12px; letter-spacing: .1em; color: #bdb6aa; white-space: nowrap; transition: background-color .2s, color .2s, padding-left .25s var(--ease); }
.nav__sub a:hover, .nav__sub a:focus-visible { background: rgba(177,138,87,.12); color: var(--gold-hi); padding-left: 20px; }
.nav__sub small { display: block; margin-top: 2px; font-size: 11px; font-weight: 500; letter-spacing: .02em; text-transform: none; color: #8d8982; }
.nav__more { display: none; }
@media (prefers-reduced-motion: reduce) { .nav__sub, .nav__item:hover .nav__sub { transition: none; } }
.nav-toggle { display: none; min-height: 44px; padding: 0 16px; border: 1px solid rgba(216,208,195,.35); border-radius: var(--radius); background: none; color: var(--ivory); font: 700 12px var(--sans); letter-spacing: .14em; text-transform: uppercase; }
@media (max-width: 1560px) and (min-width: 1021px) { .nav a { letter-spacing: .07em; } .brand span { letter-spacing: .22em; } }
@media (max-width: 1680px) and (min-width: 1021px) { .brand span { display: none; } }
@media (min-width: 1021px) { .brand { min-width: max-content; } }


/* ---------- translations (assets/i18n): hide the English until it has been swapped ---------- */
html.i18n-pending body { visibility: hidden; }
html.lang-km body, html.lang-km .btn, html.lang-km button { font-family: 'Kantumruy Pro', var(--sans); }
html.lang-km h1, html.lang-km h2, html.lang-km h3, html.lang-km .serif, html.lang-km .statement__big { font-family: 'Noto Serif Khmer', 'Kantumruy Pro', serif; }
html.lang-zh body, html.lang-zh .btn, html.lang-zh button, html.lang-zh h1, html.lang-zh h2, html.lang-zh h3 { font-family: var(--sans), 'PingFang SC', 'Microsoft YaHei', 'Noto Sans SC', sans-serif; }
html.lang-km *, html.lang-zh * { letter-spacing: 0 !important; }
html.lang-km h1, html.lang-km h2, html.lang-km h3 { line-height: 1.5; }
html.lang-km .head__cd b::after { content: " ថ្ងៃ" !important; }
html.lang-zh .head__cd b::after { content: " 天" !important; }
html.lang-fr .head__cd b::after { content: " jours" !important; }

/* ---------- language switcher (/km/, /zh/, /fr/; ?lang= in previews) ---------- */
.lang { position: relative; margin-left: auto; }
.lang__btn { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px; border: 1px solid rgba(201,162,108,.28); border-radius: 999px; background: rgba(18,20,21,.55); color: #d9d1c3; font: 700 12px var(--sans); letter-spacing: .12em; cursor: pointer; }
.lang__btn svg { width: 16px; height: 16px; color: var(--gold); }
.lang__btn:hover, .lang__btn[aria-expanded="true"] { border-color: var(--gold); color: #f3ead9; }
.lang__list { position: absolute; right: 0; top: calc(100% + 8px); z-index: 70; min-width: 150px; margin: 0; padding: 6px; list-style: none; border: 1px solid rgba(201,162,108,.35); border-radius: 10px; background: rgba(14,16,17,.97); box-shadow: 0 18px 40px rgba(0,0,0,.45); }
.lang__list[hidden] { display: none; }
.lang__list a { display: block; padding: 9px 12px; border-radius: 6px; color: #d9d1c3; font-size: 15px; text-decoration: none; }
.lang__list a:hover, .lang__list a[aria-current="true"] { background: rgba(201,162,108,.16); color: var(--gold-hi); }
/* Basket button, top right next to the language switch */
.head__cart { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid rgba(201,162,108,.28); border-radius: 999px; background: rgba(18,20,21,.55); color: var(--gold); text-decoration: none; transition: border-color .2s, color .2s; }
.head__cart svg { width: 20px; height: 20px; }
.head__cart:hover { border-color: var(--gold); color: var(--gold-hi); }
.head__cart .gl-cart__n { position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--gold); color: var(--obsidian); font: 700 10px/18px var(--sans); text-align: center; letter-spacing: 0; }
.head__cart .gl-cart__n.is-empty { display: none; }
.head__cart, .lang, .nav-toggle { flex: none; }
@media (max-width: 430px) {
  .head__in { gap: 8px; }
  .head__cart { width: 40px; height: 40px; }
  .nav-toggle { min-height: 40px; padding: 0 9px; letter-spacing: .08em; }
  .lang__btn { min-height: 40px; }
  .brand { gap: 9px; }
  .brand img { width: 40px; height: 40px; }
  .brand span { letter-spacing: .12em; }
}
@media (max-width: 350px) { .brand span { display: none; } }
@media (min-width: 1021px) {
  .head__in { grid-template-columns: auto 1fr auto auto auto; }
  .brand { grid-column: 1; grid-row: 1; } .nav { grid-column: 2; grid-row: 1; } .lang { grid-column: 3; grid-row: 1; margin-left: 0; } .head__cart { grid-column: 4; grid-row: 1; } .head__cd { grid-column: 5; grid-row: 1; }
  .lang__btn { min-height: 40px; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
  .head__cart { width: 40px; height: 40px; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
}
@media (min-width: 1021px) and (max-width: 1180px) { .head__in { grid-template-columns: auto 1fr auto auto; } }
@media (max-width: 1020px) {
  .head__in { gap: 10px; }
  .lang { order: 1; } .head__cart { order: 2; } .nav-toggle { order: 3; }
  .lang__btn { padding: 0 10px; border-radius: var(--radius); }
}
@media (max-width: 430px) { .lang__btn svg { display: none; } .brand span { font-size: 11px; letter-spacing: .16em; } }

/* ---------- floating pill menu (desktop), after playmagicreef.com ---------- */
.head__cd { display: none; }
@media (min-width: 1021px) {
  .head { padding-top: 14px; background: none !important; border-bottom: 0 !important; backdrop-filter: none !important; }
  .head::before { content: ""; position: absolute; inset: 0 0 -36px; z-index: -1; background: linear-gradient(180deg, rgba(8,9,9,.96) 0%, rgba(8,9,9,.88) 55%, rgba(8,9,9,0) 100%); opacity: 0; transition: opacity .4s; pointer-events: none; }
  .head.is-solid::before { opacity: 1; }
  .head__in { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; height: 64px; }
  .brand { justify-self: start; }
  .nav { justify-self: center; gap: 2px; padding: 5px; border: 0; background: none; }
  .nav__item > a { text-shadow: 0 1px 10px rgba(0,0,0,.7); }
  .nav__item > a { padding: 10px 11px; border-radius: 999px; transition: background-color .25s, color .25s; }
  .nav__item:hover > a, .nav__item:focus-within > a { background: rgba(255,255,255,.06); }
  .nav__item.is-active > a { background: rgba(201,162,108,.2); color: #f3ead9; }
  .nav .btn { min-height: 40px; margin-left: 4px; padding: 8px 18px; border-radius: 999px; }
  /* hover bridge so the dropdown doesn't close in the gap below the pill */
  .nav__item::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 14px; }
  .nav__sub { top: calc(100% + 12px); border-radius: var(--radius); border-top-width: 2px; }
  .head__cd { display: inline-flex; justify-self: end; align-items: center; gap: 8px; padding: 9px 16px; border: 1px solid rgba(201,162,108,.28); border-radius: 999px; background: rgba(18,20,21,.55); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); color: #d9d1c3; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; text-decoration: none; }
  .head__cd b { font: 400 20px/1 'Bebas Neue', var(--sans); letter-spacing: .04em; color: var(--gold-hi); }
}
@media (min-width: 1021px) and (max-width: 1560px) { .nav__item > a { padding: 9px 10px; } .head__cd { padding: 9px 14px; } }
@media (min-width: 1021px) and (max-width: 1500px) { .head__cd span { display: none; } .head__cd b::after { content: " days"; font: 600 11px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: #d9d1c3; } }
@media (min-width: 1021px) and (max-width: 1360px) { .nav__item > a { padding: 9px 8px; gap: 5px; } .nav .btn { padding: 8px 14px; } }
@media (min-width: 1021px) and (max-width: 1180px) { .head__cd { display: none; } .head__in { grid-template-columns: auto 1fr auto auto; } .nav { justify-self: end; } }

/* ---------- hero as an inset card that stays put while the page slides over it ---------- */
.hero { position: sticky; top: var(--hero-top, 0px); z-index: 0; }
:where(main > section:not(.hero), main > aside) { position: relative; z-index: 1; background-color: var(--obsidian); }
main > .hero + * { border-radius: 32px 32px 0 0; box-shadow: 0 -24px 60px rgba(0,0,0,.55); }
@media (min-width: 1021px) {
  .hero { margin: 10px 10px 0; border-radius: 28px; height: calc(100svh - 10px); }
}
@media (prefers-reduced-motion: reduce) { .hero { position: relative; top: 0; } }

/* Hero line in a subtle glass pill */
.hero__meta { display: inline-flex; align-items: center; justify-content: center; text-align: center; width: fit-content; max-width: 100%; align-self: flex-start; justify-self: start; padding: 9px 20px; border: 0; border-radius: 999px; background: rgba(8,9,9,.5); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
@media (max-width: 600px) { .hero__meta { padding: 8px 14px; gap: 6px 14px; border-radius: 18px; } }

@media (max-width: 1180px) and (min-width: 1021px) { .nav { gap: 14px; } .nav a { font-size: 12px; } .brand span { font-size: 15px; } }
@media (max-width: 1020px) {
  .nav-toggle { display: inline-flex; align-items: center; }
  .nav { display: none; position: absolute; top: 80px; left: 0; right: 0; max-height: calc(100vh - 80px); overflow-y: auto; flex-direction: column; align-items: stretch; gap: 0; padding: 8px 24px 24px; background: var(--obsidian); border-bottom: 1px solid var(--line); }
  .nav.is-open { display: flex; }
  .nav a { padding: 15px 0; border-bottom: 1px solid var(--line-soft); font-size: 14px; }
  .nav .btn { margin-top: 16px; border-bottom: 0; }
  .nav__item { flex-wrap: wrap; }
  .nav__item > a { flex: 1; padding: 15px 0; }
  .nav__item > a::after { display: none; }
  .nav__more { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-left: 8px; border: 0; background: none; color: var(--gold); font: 400 24px/1 var(--sans); cursor: pointer; transition: transform .3s var(--ease); }
  .nav__more[aria-expanded="true"] { transform: rotate(45deg); }
  .nav__sub { position: static; flex-basis: 100%; min-width: 0; padding: 0 0 8px 14px; background: none; border: 0; border-left: 1px solid var(--gold); border-radius: 0; box-shadow: none; backdrop-filter: none; opacity: 1; visibility: visible; transform: none; transition: none; display: none; }
  .nav__item:hover .nav__sub, .nav__item:focus-within .nav__sub { transform: none; }
  .nav__item.is-open .nav__sub { display: block; }
  .nav__sub a { padding: 11px 0; border-bottom: 0; font-size: 13px; white-space: normal; }
  .nav__sub a:hover { padding-left: 6px; background: none; }
}

/* ---------- hero ---------- */
.hero { height: 100vh; height: 100svh; min-height: 640px; padding: 0; overflow: hidden; display: flex; align-items: flex-end; isolation: isolate; }
.slides { position: absolute; inset: 0; z-index: -2; background: var(--obsidian); }
.slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.8s ease; }
.slide.is-on { opacity: 1; }
.slide img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); }
.slide.is-on img { animation: kenburns 9s linear forwards; }
.slide:nth-child(2n).is-on img { animation-name: kenburns-b; }
/* trailer intro */
.trailer { position: absolute; inset: 0; z-index: -2; background: #050606; transition: opacity 1.2s ease; }
.trailer.is-done { opacity: 0; pointer-events: none; }
.trailer video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .9s ease; }
.trailer video.is-on { opacity: 1; }
.hero__stack { display: grid; }
.hero__stack > * { grid-area: 1 / 1; }
.hero__copy { transition: opacity .9s ease; }
.hero.is-trailer .hero__copy { opacity: 0; visibility: hidden; }
.trailer__line { align-self: center; margin: 0; max-width: 13em; font-family: var(--serif); font-weight: 500; font-size: clamp(34px, 5.6vw, 84px); line-height: 1.04; letter-spacing: .03em; text-transform: uppercase; color: #f1ebe0; opacity: 0; pointer-events: none; text-shadow: 0 2px 30px rgba(0,0,0,.6); }
.trailer__line.is-on { animation: trailer-line 3.7s ease forwards; }
/* Typewriter: letters appear one by one behind a blinking gold cursor */
.trailer__line .tw-off { visibility: hidden; }
.trailer__line .tw-w { white-space: nowrap; }
/* Zero-width cursor: drawn on top of the text, so it never pushes letters or words around */
.trailer__line .tw-caret { display: inline-block; position: relative; width: 0; height: .82em; vertical-align: -.04em; }
.trailer__line .tw-caret::before { content: ""; position: absolute; top: 0; bottom: 0; left: .02em; width: .07em; background: var(--gold-hi); animation: caret .75s steps(1) infinite; }
.trailer__line:not(.is-typing) .tw-caret { display: none; }
@keyframes caret { 50% { opacity: 0; } }
@keyframes trailer-line {
  0% { opacity: 0; filter: blur(6px); }
  12% { opacity: 1; filter: blur(0); }
  84% { opacity: 1; }
  100% { opacity: 0; }
}
.hero.is-trailer .ticks { display: none; }
.trailer-btn { min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid rgba(216,208,195,.4); background: rgba(8,9,9,.35); color: var(--ivory); font: 700 11px var(--sans); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; white-space: nowrap; }
.trailer-btn:hover { border-color: var(--gold); }
.slide__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; opacity: 0; transition: opacity .8s ease; }
.slide__video.is-ready { opacity: 1; }
@keyframes kenburns { from { transform: scale(1.04) translate(0,0); } to { transform: scale(1.16) translate(-1.5%, -1%); } }
@keyframes kenburns-b { from { transform: scale(1.16) translate(1.5%, 0); } to { transform: scale(1.04) translate(0, -1%); } }
.hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(8,9,9,.86) 0%, rgba(8,9,9,.7) 38%, rgba(8,9,9,.42) 62%, rgba(8,9,9,.22) 85%), linear-gradient(180deg, rgba(8,9,9,.72) 0%, rgba(8,9,9,.4) 26%, rgba(8,9,9,.55) 60%, rgba(8,9,9,.97) 100%); }
.hero__in { text-shadow: 0 2px 18px rgba(0,0,0,.7), 0 1px 3px rgba(0,0,0,.55); }
.hero__in .btn, .hero__in .slide-ctl { text-shadow: none; }
.hero h1, .hero__sub, .hero__meta, .stat, .slide-ctl p { text-shadow: 0 1px 2px rgba(0,0,0,.55), 0 2px 18px rgba(0,0,0,.45); }
@media (max-width: 900px) { .hero::after { background: linear-gradient(180deg, rgba(8,9,9,.78) 0%, rgba(8,9,9,.66) 30%, rgba(8,9,9,.7) 60%, rgba(8,9,9,.97) 100%); } }
.hero__in { width: 100%; padding-bottom: 44px; }
.hero__meta { color: var(--ivory); font-size: 13px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; margin-bottom: 22px; display: flex; flex-wrap: wrap; gap: 8px 22px; }
.hero__meta span + span::before { content: ""; display: inline-block; width: 5px; height: 5px; margin-right: 22px; transform: rotate(45deg) translateY(-2px); background: var(--gold); }
.hero h1 { font-size: clamp(40px, 7vw, 104px); line-height: .98; letter-spacing: .03em; text-transform: uppercase; max-width: 12em; }
.hero h1.motto { max-width: 15em; }
.motto__come { display: block; font-size: clamp(22px, 2.9vw, 40px); line-height: 1.12; letter-spacing: .05em; color: #ece5d8; }
.motto__amp { color: var(--gold-hi); }
.motto__stay { display: block; margin-top: .12em; font-size: clamp(44px, 7.4vw, 108px); line-height: .98; color: var(--gold-hi); }
.hero__sub { max-width: 32em; margin: 26px 0 34px; color: #ebe4d8; font-weight: 500;font-size: clamp(16px, 1.5vw, 19px); }
.hero__cta { display: flex; flex-wrap: wrap; gap: 14px; }
.hero__bar { margin-top: 56px; padding-top: 22px; border-top: 1px solid rgba(216,208,195,.2); display: grid; grid-template-columns: repeat(4, minmax(0, auto)) 1fr; gap: 40px; align-items: end; }
.stat b { display: block; font-family: var(--serif); font-weight: 500; font-size: clamp(24px, 2.6vw, 34px); color: var(--gold-hi); line-height: 1.1; }
.stat span { font-size: 13px; color: #aaa397; }
.slide-ctl { justify-self: end; display: flex; align-items: center; gap: 14px; }
.slide-ctl p { margin: 0; font-size: 12px; color: #bdb6aa; letter-spacing: .08em; text-align: right; min-width: 14em; }
.ticks { display: flex; gap: 6px; }
.ticks button { width: 34px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
.ticks button::before { content: ""; position: absolute; left: 0; right: 0; top: 11px; height: 2px; background: rgba(216,208,195,.25); }
.ticks button::after { content: ""; position: absolute; left: 0; top: 11px; height: 2px; width: 0; background: var(--gold-hi); }
.ticks button[aria-current="true"]::after { animation: tick 9s linear forwards; }
.is-paused .ticks button[aria-current="true"]::after { animation-play-state: paused; }
@keyframes tick { to { width: 100%; } }
.pause { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(216,208,195,.35); background: none; color: var(--ivory); cursor: pointer; display: grid; place-items: center; }
.pause svg { width: 14px; height: 14px; }
@media (max-width: 900px), (max-height: 760px) {
  .hero { height: auto; min-height: 100svh; }
  .hero__in { padding-top: 120px; }
}
@media (max-width: 900px) {
  .hero__bar { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .slide-ctl { grid-column: 1 / -1; justify-self: stretch; justify-content: space-between; }
  .slide-ctl p { text-align: left; min-width: 0; }
}

/* ---------- overview + quick paths ---------- */
.overview { background: linear-gradient(180deg, var(--obsidian), #0e1418); padding-bottom: 72px; }
/* ---------- hero, decluttered: no stats row, slim slide controls bottom-right ---------- */
.hero__bar { display: flex; justify-content: flex-end; margin-top: 40px; padding-top: 0; border-top: 0; }
.hero__bar .stat { display: none; }
.hero__bar .slide-ctl { justify-self: auto; justify-content: flex-end; }
.hero__sub { max-width: 30em; }
@media (max-width: 900px) { .hero__bar { margin-top: 28px; } .hero__bar .slide-ctl { width: 100%; justify-content: space-between; } }

/* ---------- made in Cambodia ---------- */
.madein { position: relative; isolation: isolate; overflow: hidden; }
.madein__bg { position: absolute; inset: 0; z-index: -1; }
.madein__bg img { width: 100%; height: 100%; object-fit: cover; opacity: .2; }
.madein__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, var(--obsidian) 0%, rgba(8,9,9,.55) 40%, var(--obsidian) 100%); }
.madein__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 26px 0 0; padding: 0; list-style: none; }
.madein__grid li { padding: 18px 18px 20px; border: 1px solid var(--line-soft); border-radius: 10px; background: rgba(17,19,20,.78); backdrop-filter: blur(6px); transition: border-color .3s, transform .35s var(--ease); }
.madein__grid li:hover { border-color: rgba(201,162,108,.55); transform: translateY(-3px); }
.madein__grid svg { width: 34px; height: 34px; fill: none; stroke: var(--gold-hi); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.madein__grid b { display: block; margin: 10px 0 6px; font-family: var(--serif); font-weight: 500; font-size: 18px; letter-spacing: .03em; color: #ece5d8; }
.madein__grid span { display: block; color: #b9b2a6; font-size: 14px; line-height: 1.5; }
.madein__why { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-top: 18px; padding: 20px 26px; border-left: 3px solid var(--gold); border-radius: 0 10px 10px 0; background: linear-gradient(90deg, rgba(177,138,87,.16), rgba(177,138,87,.04)); }
.madein__why b { display: block; margin-bottom: 6px; color: var(--gold-hi); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.madein__why p { margin: 0; max-width: 62em; color: #ddd5c8; font-size: 15px; }
.madein__why .btn { flex: none; }
.madein__pledge { flex: 0 0 min(300px, 26%); }
.madein__pledge b { font-family: var(--serif); font-size: 22px !important; font-weight: 500; letter-spacing: .04em !important; text-transform: none !important; color: #f1ebe0 !important; }
.madein__pledge p { font-size: 14px !important; color: #cfc7ba !important; }
.madein__commit { flex: 1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.madein__commit li { padding-left: 14px; border-left: 1px solid rgba(201,162,108,.4); color: #b9b2a6; font-size: 13px; line-height: 1.45; }
.madein__commit strong { display: block; margin-bottom: 4px; color: var(--gold-hi); font-size: 14px; font-weight: 700; }
@media (max-width: 1100px) { .madein__commit { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .madein__pledge { flex: none; } .madein__commit { grid-template-columns: 1fr; } }
@media (max-width: 1000px) { .madein__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .madein__why { flex-direction: column; align-items: flex-start; } }

/* Sections with a soft photo behind them */
.has-bg { position: relative; isolation: isolate; overflow: hidden; }
.sec-bg { position: absolute; inset: 0; z-index: -1; }
.sec-bg img { width: 100%; height: 100%; object-fit: cover; opacity: .28; }
.sec-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, var(--obsidian) 0%, rgba(8,9,9,.5) 35%, rgba(8,9,9,.6) 70%, var(--obsidian) 100%); }
.become-sec .sec-bg img { opacity: .38; }


/* Sustainability: commitments as tabs, detail on the right */
.sustain { background: var(--charcoal); }
.sustain__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 56px; align-items: center; }
.sustain__sub { color: #a9a296; font-size: 15px; margin: 12px 0 0; }
.sustain__tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 24px; }
.sustain__tab { display: flex; gap: 10px; align-items: center; min-height: 48px; padding: 8px 14px; text-align: left; border: 1px solid rgba(201,162,108,.22); border-radius: 10px; background: transparent; color: #cfc7ba; font: 600 14px/1.3 var(--sans); cursor: pointer; transition: background .2s, border-color .2s, color .2s; }
.sustain__tab span { flex: none; color: var(--gold); font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.sustain__tab:hover { border-color: rgba(201,162,108,.6); color: #f1ebe0; }
.sustain__tab[aria-selected="true"] { background: rgba(177,138,87,.16); border-color: var(--gold); color: #f1ebe0; }
.sustain__why { margin: 20px 0 0; color: #a9a296; font-size: 14px; }
.sustain__why b { color: var(--gold-hi); }
.sustain__panel figure { position: relative; margin: 0 0 20px; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: linear-gradient(135deg, #2a2218, #121110); }
.sustain__panel figure::before { content: attr(data-n); position: absolute; inset: 0; display: grid; place-items: center; font: 400 110px/1 'Bebas Neue', var(--sans); color: rgba(201,162,108,.22); }
.sustain__panel figure img { position: relative; width: 100%; height: 100%; object-fit: cover; }
.sustain__n { color: var(--gold); font-size: 12px; font-weight: 700; letter-spacing: .14em; }
.sustain__panel h3 { margin: 6px 0 10px; font-size: clamp(22px, 2vw, 28px); }
.sustain__panel p { margin: 0 0 10px; color: #bdb6aa; font-size: 15px; line-height: 1.6; }
@media (max-width: 960px) { .sustain__grid { grid-template-columns: 1fr; gap: 32px; } }
@media (max-width: 520px) { .sustain__tabs { grid-template-columns: 1fr; } }
@media (min-width: 1021px) and (min-height: 620px) { .sustain__panel figure { aspect-ratio: auto; height: calc(var(--scr) * .38); } }

.aerial__map { position: absolute; right: 12px; bottom: 12px; z-index: 3; padding: 8px 14px; border-radius: 999px; background: rgba(12,14,14,.82); border: 1px solid rgba(201,162,108,.5); color: var(--gold-hi); font-size: 13px; font-weight: 700; text-decoration: none; }
.aerial__map:hover { background: var(--gold); color: #17130e; }

/* Getting here */
.travel__route { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 34px 0 0; padding: 0; list-style: none; counter-reset: leg; position: relative; }
.travel__route li { position: relative; padding: 26px 24px 24px; border: 1px solid rgba(201,162,108,.22); border-radius: 12px; background: linear-gradient(180deg, rgba(177,138,87,.10), rgba(177,138,87,.02)); }
.travel__route li::after { content: ""; position: absolute; top: 47px; right: -19px; width: 20px; border-top: 1px dashed rgba(201,162,108,.6); }
.travel__route li:last-child::after { display: none; }
.travel__code { display: inline-grid; place-items: center; min-width: 56px; height: 42px; padding: 0 12px; margin-bottom: 16px; border-radius: 21px; background: var(--gold); color: #17130e; font-weight: 800; font-size: 16px; letter-spacing: .14em; }
.travel__code svg { width: 22px; height: 22px; }
.travel__route b { display: block; font-family: var(--serif); font-weight: 500; font-size: 22px; color: #f1ebe0; }
.travel__route small { display: block; margin: 4px 0 12px; color: var(--gold-hi); font-size: 13px; font-weight: 600; }
.travel__route p { margin: 0; color: #bdb6aa; font-size: 15px; line-height: 1.55; }
.travel__more { margin-top: 30px; }
@media (max-width: 1100px) { .travel__route { grid-template-columns: repeat(2, minmax(0, 1fr)); } .travel__route li::after { display: none; } }
@media (max-width: 600px) { .travel__route { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .madein__grid { grid-template-columns: 1fr; } }

/* ---------- food vendors with their logos ---------- */
/* Same structure in every card: logo + name on one row, description underneath at full width */
.vendors > div { display: grid; grid-template-columns: 56px minmax(0, 1fr); grid-template-areas: "logo name" "desc desc"; column-gap: 14px; row-gap: 12px; align-content: start; }
.vendors > div > .vendor__logo { grid-area: logo; }
.vendors > div > b { grid-area: name; align-self: center; margin: 0 !important; line-height: 1.2; }
.vendors > div > span:not(.vendor__logo) { grid-area: desc; }
.vendor__logo { display: grid; place-items: center; width: 56px; height: 56px; padding: 5px; border-radius: 10px; overflow: hidden; border: 1px solid rgba(201,162,108,.25); }
.vendor__logo--light { background: #f4efe6; }
.vendor__logo--dark { background: #0e0f10; }
.vendor__logo img { width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 520px) { .vendors > div { grid-template-columns: 48px minmax(0, 1fr); } .vendor__logo { width: 48px; height: 48px; } }

/* ---------- dish carousel ---------- */
.dish-carousel { position: relative; margin-top: 16px; }
.dish-track { display: flex; gap: 16px; margin: 0; padding: 2px 0 6px; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 70px), transparent 100%); mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 70px), transparent 100%); }
.dish-track::-webkit-scrollbar { display: none; }
.dish-card { flex: 0 0 clamp(230px, 21vw, 300px); scroll-snap-align: start; border: 1px solid var(--line-soft); border-radius: 10px; overflow: hidden; background: rgba(23,25,26,.85); transition: border-color .3s, transform .35s var(--ease); }
.dish-card[hidden] { display: none; }
.dish-card:hover { border-color: rgba(201,162,108,.6); transform: translateY(-4px); }
.dish-card__img { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: radial-gradient(circle at 30% 30%, #3a2a18 0%, #1b1712 55%, #121314 100%); }
.dish-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.dish-card:hover .dish-card__img img { transform: scale(1.06); }
.dish-card__ph { position: absolute; inset: 0; display: none; align-items: center; justify-content: center; padding: 18px; text-align: center; font-family: var(--serif); font-size: 22px; letter-spacing: .06em; text-transform: uppercase; color: rgba(201,162,108,.55); border: 1px dashed rgba(201,162,108,.25); margin: 12px; border-radius: 6px; }
.dish-card__img.is-empty .dish-card__ph { display: flex; }
.dish-card__cat { position: absolute; left: 10px; bottom: 10px; padding: 4px 10px; border-radius: 999px; background: rgba(8,9,9,.7); color: var(--gold-hi); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.dish-card__body { padding: 14px 16px 16px; }
.dish-card__body b { display: block; font-family: var(--serif); font-weight: 500; font-size: 19px; letter-spacing: .03em; color: #ece5d8; text-transform: uppercase; }
.dish-card__body small { display: block; margin-top: 3px; color: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.dish-card__body p { margin: 8px 0 0; color: #b9b2a6; font-size: 14px; line-height: 1.5; }
.dish-arrow { position: absolute; top: 36%; z-index: 2; width: 44px; height: 44px; border: 1px solid rgba(201,162,108,.5); border-radius: 50%; background: rgba(8,9,9,.8); color: var(--gold-hi); font-size: 18px; cursor: pointer; transition: background-color .2s, color .2s; }
.dish-arrow:hover { background: var(--gold); color: var(--obsidian); }
.dish-arrow--prev { left: -18px; }
.dish-arrow--next { right: -18px; }
@media (max-width: 700px) { .dish-arrow { display: none; } .dish-card { flex-basis: 78vw; } }

/* ---------- shop showcase ---------- */
.shopx { margin-top: 26px; }
.shopx__tabs { display: flex; flex-wrap: wrap; gap: 6px; padding: 5px; border: 1px solid var(--line); border-radius: 999px; width: fit-content; max-width: 100%; }
.shopx__tabs button { min-height: 42px; padding: 0 20px; border: 0; border-radius: 999px; background: none; color: #cfc7ba; font: 700 12px var(--sans); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; transition: background-color .25s, color .25s; }
.shopx__tabs button:hover { color: var(--ivory); background: rgba(255,255,255,.05); }
.shopx__tabs button[aria-selected="true"] { background: var(--gold); color: var(--obsidian); }
.shopx__body { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.25fr); gap: 28px; margin-top: 20px; align-items: stretch; }
.shopx__posters { position: relative; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; aspect-ratio: 1280 / 853; align-self: center; background: var(--charcoal); }
.shopx__posters img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.04); transition: opacity .7s var(--ease), transform 1.2s var(--ease); }
.shopx__posters img.is-on { opacity: 1; transform: none; }
.shopx__grid { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-content: center; }
.shopx__grid[data-col="horizon"], .shopx__grid[data-col="explorers"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.shopx__grid.is-in .pcard { animation: pcard-in .6s var(--ease) both; }
.shopx__grid.is-in .pcard:nth-child(2) { animation-delay: .06s; } .shopx__grid.is-in .pcard:nth-child(3) { animation-delay: .12s; }
.shopx__grid.is-in .pcard:nth-child(4) { animation-delay: .18s; } .shopx__grid.is-in .pcard:nth-child(5) { animation-delay: .24s; } .shopx__grid.is-in .pcard:nth-child(6) { animation-delay: .3s; }
@keyframes pcard-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.pcard { position: relative; border: 1px solid var(--line-soft); border-radius: 8px; background: var(--charcoal); overflow: hidden; transition: border-color .3s, transform .3s var(--ease); }
.pcard:hover { border-color: rgba(201,162,108,.6); transform: translateY(-3px); }
.pcard a { display: block; padding: 0 0 12px; text-decoration: none; color: inherit; }
.pcard__img { position: relative; aspect-ratio: 1; overflow: hidden; perspective: 900px; background: #0f1a26; }
.pcard__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; backface-visibility: hidden; transition: transform .7s var(--ease), opacity .5s; }
.pcard__back { transform: rotateY(180deg); opacity: 0; }
.pcard:hover .pcard__front, .pcard:focus-within .pcard__front { transform: rotateY(-180deg); opacity: 0; }
.pcard:hover .pcard__back, .pcard:focus-within .pcard__back { transform: rotateY(0); opacity: 1; }
.pcard__flip { position: absolute; right: 8px; top: 8px; padding: 3px 8px; border-radius: 999px; background: rgba(8,9,9,.6); color: var(--gold-hi); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .85; transition: opacity .3s; }
.pcard:hover .pcard__flip { opacity: 0; }
.pcard b { display: block; margin: 10px 12px 2px; font-family: var(--serif); font-weight: 500; font-size: 15px; line-height: 1.25; color: #ece5d8; }
.pcard__meta { display: block; margin: 0 12px; color: var(--gold-hi); font-size: 13px; }
.pcard__meta em { font-style: normal; color: #a9a294; }
.pcard__dots { position: absolute; left: 10px; top: 10px; display: flex; gap: 6px; }
.pcard__dots button { width: 18px; height: 18px; padding: 0; border-radius: 50%; border: 2px solid rgba(255,255,255,.75); background: var(--dot); cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,.5); transition: transform .2s; }
.pcard__dots button[aria-pressed="true"] { border-color: var(--gold-hi); transform: scale(1.18); }
.shopx__hint { margin: 12px 0 0; color: #8d8982; font-size: 12px; letter-spacing: .04em; }
@media (hover: none) { .shopx__hint { display: none; } }
@media (max-width: 900px) {
  .shopx__body { grid-template-columns: 1fr; }
  .shopx__grid, .shopx__grid[data-col] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .shopx__tabs button { padding: 0 12px; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) { .pcard__img img { transition: opacity .3s; } .pcard:hover .pcard__front { transform: none; } .pcard__back { transform: none; } }

/* No single words stranded on the last line: smarter line breaking site-wide */
p, li, figcaption, dd, .lede { text-wrap: pretty; }
h1, h2, h3, .motto, .foot__motto { text-wrap: balance; }
.trailer__line { text-wrap: wrap; font-kerning: none; }
.overview__head { max-width: none; }
.overview__head .lede { max-width: none; }
.pillars { margin: 48px 0 0; padding: 0; list-style: none; display: flex; gap: 14px; height: 480px; }
.pillar { position: relative; flex: 1 1 0; min-width: 0; overflow: hidden; border: 1px solid var(--line-soft); border-radius: 6px; cursor: pointer; isolation: isolate; transition: flex-grow .6s var(--ease), border-color .3s; outline: none; }
.pillar.is-open { flex-grow: 2.1; border-color: var(--gold); cursor: default; }
.pillar:focus-visible { border-color: var(--gold-hi); box-shadow: 0 0 0 2px var(--gold-hi); }
.pillar__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transform: scale(1.06); transition: transform 1.2s var(--ease), filter .6s; filter: saturate(.8) brightness(.5); }
.pillar.is-open .pillar__bg { transform: scale(1); filter: saturate(.9) brightness(.62); }
.pillar::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8,9,9,.2) 0%, rgba(8,9,9,.55) 38%, rgba(8,9,9,.96) 78%); }
.pillar__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 26px 24px; }
.pillar__k { color: var(--gold-hi); font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.pillar b { display: block; margin: 8px 0 0; font-family: var(--serif); font-weight: 500; font-size: clamp(22px, 2.2vw, 30px); letter-spacing: .03em; color: #f1ebe0; line-height: 1.15; text-shadow: 0 2px 14px rgba(0,0,0,.6); }
.pillar p, .pillar__facts, .pillar a { max-height: 0; opacity: 0; overflow: hidden; margin: 0; transition: max-height .5s var(--ease), opacity .4s, margin .4s; }
.pillar.is-open p { max-height: 120px; opacity: 1; margin-top: 10px; color: #f1ebe0; font-size: 15px; max-width: 32em; }
.pillar__body p, .pillar__body a, .pillar__k { text-shadow: 0 1px 3px rgba(0,0,0,.8); }
.pillar__facts { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.pillar.is-open .pillar__facts { max-height: 90px; opacity: 1; margin-top: 14px; }
.pillar__facts li { padding: 4px 11px; border: 1px solid rgba(216,208,195,.35); border-radius: 999px; background: rgba(8,9,9,.72); color: #ece5d8; font-size: 12px; font-weight: 600; }
.pillar a { display: inline-block; color: var(--gold-hi); font-weight: 700; font-size: 14px; text-decoration: none; }
.pillar a::after { content: " \2192"; }
.pillar.is-open a { max-height: 40px; opacity: 1; margin-top: 16px; }
@media (max-width: 900px) {
  .pillars { flex-direction: column; height: auto; }
  .pillar, .pillar.is-open { flex: none; height: 360px; }
  .pillar p, .pillar__facts, .pillar a { max-height: none; opacity: 1; }
  .pillar p { margin-top: 10px; color: #ddd5c8; font-size: 15px; }
  .pillar__facts { margin-top: 12px; }
  .pillar a { margin-top: 14px; }
  .pillar__bg, .pillar.is-open .pillar__bg { transform: none; filter: saturate(.9) brightness(.55); }
}  .guide { width: min(720px, calc(100vw - 24px)); max-height: calc(100vh - 24px); padding: 40px 36px 30px; border: 1px solid var(--gold); border-radius: 10px; background: radial-gradient(120% 90% at 50% 0%, #13202c, var(--obsidian) 70%); color: var(--ivory); text-align: center; overflow: auto; }
.guide::backdrop { background: rgba(4,5,5,.72); backdrop-filter: blur(5px); }
.guide[open] { animation: guide-in .5s var(--ease); }
@keyframes guide-in { from { opacity: 0; transform: translateY(18px) scale(.97); } to { opacity: 1; transform: none; } }
.guide__close { position: absolute; top: 14px; right: 14px; }
.guide__logo { width: 64px; height: 64px; margin: 0 auto 14px; }
.guide .label { justify-content: center; }
.guide .label::before { display: none; }
.guide h2 { font-size: clamp(26px, 3.4vw, 38px); }
.guide__lede { margin: 10px 0 26px; color: #bdb6aa; }
.guide__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; text-align: left; }
.guide__skip { margin-top: 20px; background: none; border: 0; color: #a9a296; font: 600 14px var(--sans); text-decoration: underline; cursor: pointer; min-height: 40px; }
.guide__skip:hover { color: var(--gold-hi); }
.tbar__btns { display: flex; gap: 8px; }
@media (max-width: 600px) { .guide { padding: 32px 18px 20px; } .guide__grid { grid-template-columns: 1fr; } .path { min-height: 0; padding: 14px 16px; } .tbar__guide { display: none; } }
.paths { margin-top: 56px; }
.paths__q { margin: 0 0 16px; font-family: var(--serif); font-size: clamp(20px, 2vw, 26px); color: #ece5d8; }
.paths__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.path { display: flex; flex-direction: column; gap: 6px; min-height: 110px; padding: 20px 22px; border: 1px solid var(--line); border-radius: var(--radius); text-decoration: none; background: linear-gradient(160deg, rgba(177,138,87,.08), transparent 70%); transition: border-color .2s, background-color .2s, transform .2s; }
.path:hover, .path:focus-visible { border-color: var(--gold); background-color: rgba(177,138,87,.08); transform: translateY(-2px); }
.path b { color: #ece5d8; font-size: 17px; font-weight: 600; }
.path b::after { content: " \2192"; color: var(--gold); }
.path span { color: #a9a296; font-size: 14px; }
@media (max-width: 1000px) { .paths__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .paths__grid { grid-template-columns: 1fr; } .path { min-height: 0; } .overview { padding-bottom: 80px; } }

/* ---------- sticky ticket bar ---------- */
@media (max-width: 900px) {
  .slide-ctl { flex-wrap: wrap; row-gap: 10px; }
  .slide-ctl p { flex: 1 0 100%; }
}
.tbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; background: rgba(10,12,13,.94); backdrop-filter: blur(10px); border-top: 1px solid var(--gold); transform: translateY(110%); transition: transform .35s var(--ease); }
.tbar.is-on { transform: none; }
.tbar__in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; padding-top: 10px; padding-bottom: 10px; }
.tbar__info { display: flex; align-items: baseline; gap: 18px; color: #cfc7ba; font-size: 14px; }
.tbar__info b { font-family: var(--serif); font-weight: 500; color: var(--gold-hi); font-size: 20px; font-variant-numeric: tabular-nums; }
.tbar__info span { color: #a9a296; }
.tbar .btn { min-height: 44px; padding: 10px 20px; }
@media (max-width: 600px) { .tbar__info span { display: none; } .tbar__info b { font-size: 17px; } .tbar .btn { padding: 10px 14px; font-size: 12px; } }
.has-tbar .consent { bottom: 84px; }
.foot { padding-bottom: 110px !important; }

/* ---------- founder bio ---------- */
.founder__name { margin: 4px 0 2px; font-family: var(--serif); font-weight: 500; font-size: clamp(28px, 3vw, 40px); color: #ece5d8; }
.founder__role { color: var(--gold); font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.founder__bio p { margin: 16px 0 0; color: #bdb6aa; font-size: 16px; max-width: 36em; }
.founder__quote { margin-top: 0 !important; }
.founder__card { align-self: center; padding: 40px; border: 1px solid var(--line); background: linear-gradient(150deg, #101b26, var(--charcoal) 75%); }
.founder__card .founder__by { margin-top: 26px; }

/* ---------- endorsements strip ---------- */
.endorsed { padding: 34px 0; background: #efeae1; color: #1b1b1b; }
.endorsed__in { display: flex; flex-wrap: nowrap; align-items: center; justify-content: center; gap: clamp(18px, 3vw, 44px); }
.endorsed__label { flex: none; font: 700 13px var(--sans); letter-spacing: .26em; text-transform: uppercase; color: #1b1b1b; padding-right: clamp(18px, 3vw, 44px); border-right: 1px solid rgba(0,0,0,.25); }
.endorsed__noc { flex: 0 1 auto; display: flex; align-items: center; gap: clamp(12px, 1.6vw, 22px); padding-right: clamp(18px, 3vw, 44px); border-right: 1px solid rgba(0,0,0,.25); }
.endorsed__noc img { flex: none; width: clamp(72px, 8vw, 108px); height: auto; aspect-ratio: 1; border-radius: 50%; box-shadow: 0 0 0 1px rgba(0,0,0,.08); }
.endorsed__noc span { font: 500 clamp(15px, 1.4vw, 19px)/1.35 var(--sans); color: #222; }
.endorsed__mjf { flex: 0 1 auto; width: clamp(220px, 26vw, 360px); aspect-ratio: 1275 / 135; overflow: hidden; }
.endorsed__aj { margin: 0; display: flex; align-items: center; gap: 14px; padding-left: clamp(18px, 3vw, 44px); border-left: 1px solid rgba(0,0,0,.25); opacity: 0; transform: translateX(40px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.endorsed__aj.is-in { opacity: 1; transform: none; }
.endorsed__aj img { flex: none; width: clamp(64px, 6vw, 88px); height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 50%; box-shadow: 0 0 0 2px #b18a57; }
.endorsed__aj b { display: block; font: 600 16px/1.2 var(--sans); color: #1b1b1b; }
.endorsed__aj span { display: block; font-size: 13px; color: #555; max-width: 13em; }
@media (prefers-reduced-motion: reduce) { .endorsed__aj { opacity: 1; transform: none; transition: none; } }
.endorsed__mjf img { width: 117.65%; height: auto; max-width: none; margin: -5.1% 0 0 -7.06%; mix-blend-mode: multiply; }
@media (max-width: 700px) {
  .endorsed__in { flex-direction: column; align-items: center; gap: 24px; text-align: center; }
  .endorsed__label, .endorsed__noc { padding-right: 0; border-right: 0; }
  .endorsed__noc { flex-direction: column; gap: 12px; }
  .endorsed__noc img { width: 104px; height: 104px; }
  .endorsed__noc span { font-size: 17px; }
  .endorsed__mjf { width: min(300px, 82vw); margin: 0 auto; }
  .endorsed__aj { padding-left: 0; border-left: 0; transform: translateY(20px); }
}

/* ---------- countdown + first 200 ---------- */
.first200 { padding: 0 0 80px; background: radial-gradient(80% 70% at 25% 55%, #13202c 0%, var(--obsidian) 70%); }
.countbar { border-top: 1px solid var(--gold); border-bottom: 1px solid var(--gold); background: linear-gradient(90deg, #0b131b, #101b26 50%, #0b131b); }
.countbar__in { display: grid; grid-template-columns: auto 1fr auto; gap: 40px; align-items: center; padding-top: 26px; padding-bottom: 26px; }
.countbar__name small { display: block; color: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.countbar__name b { display: block; margin: 4px 0 2px; font-family: var(--serif); font-weight: 500; font-size: 24px; letter-spacing: .08em; text-transform: uppercase; color: #ece5d8; }
.countbar__name span { color: #bdb6aa; font-size: 14px; }
.cd { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); justify-self: center; width: 100%; max-width: 640px; }
.cd div { text-align: center; padding: 0 clamp(14px, 1.8vw, 28px); border-left: 1px solid var(--line); }
.cd { grid-template-columns: repeat(4, auto); justify-content: center; }
.cd div:first-child { border-left: 0; }
.cd div { border-left-color: rgba(177,138,87,.6); }
.cd b { display: block; font-family: var(--serif); font-weight: 500; font-size: clamp(32px, 3.6vw, 50px); line-height: 1; color: #f1ebe0; font-variant-numeric: tabular-nums; }
.cd span { display: block; margin-top: 8px; font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #8fb3d6; }
.f200 { display: grid; grid-template-columns: 1.15fr .85fr; gap: 64px; align-items: center; padding-top: 72px; }
/* Fade all four edges so the shirts melt into the section background */
.f200__img { aspect-ratio: 1160 / 650; background: transparent; overflow: visible;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 16%, #000 84%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 14%, #000 80%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent 0%, #000 16%, #000 84%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 14%, #000 80%, transparent 100%);
  mask-composite: intersect; }
.f200__img img { filter: saturate(.95) brightness(.95); }
.f200__img img { animation: drift-soft 20s ease-in-out infinite alternate; }
.f200 h2 { font-size: clamp(40px, 4.6vw, 66px); color: #f1ebe0; line-height: 1.02; }
.f200__sub { display: block; margin-top: 6px; font-size: .78em; }
.f200__lead { margin: 22px 0 14px !important; color: #ece5d8 !important; font-size: 19px !important; }
.f200 p { color: #cfc7ba; font-size: 17px; margin: 0 0 14px; max-width: 30em; }
.f200__facts { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 30px; padding: 0; list-style: none; }
.f200__facts li { padding: 6px 13px; border: 1px solid var(--line); border-radius: 999px; font-size: 13px; font-weight: 600; color: var(--sand); }
@media (max-width: 1020px) {
  .countbar__in { grid-template-columns: 1fr; gap: 22px; text-align: center; }
  .countbar__in .btn { justify-self: center; }
  .f200 { grid-template-columns: 1fr; gap: 36px; padding-top: 56px; }
}
@media (max-width: 480px) { .cd div { padding: 0 4px; } .cd span { letter-spacing: .1em; font-size: 10px; } .first200 { padding-bottom: 88px; } }

/* ---------- statement ---------- */
.statement__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 80px; align-items: center; }
.statement__big { font-family: var(--serif); font-size: clamp(24px, 2.7vw, 38px); line-height: 1.32; color: #ece5d8; margin: 0; }
.statement__img { aspect-ratio: 4 / 5; }
.statement__cap { margin-top: 12px; font-size: 13px; color: var(--stone); }
@media (max-width: 900px) { .statement__grid { grid-template-columns: 1fr; gap: 48px; } }

/* ---------- course map ---------- */
.course { background: linear-gradient(180deg, var(--obsidian) 0%, var(--charcoal) 100%); }
.course__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 40px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { min-height: 42px; padding: 0 18px; border-radius: 999px; border: 1px solid rgba(216,208,195,.22); background: none; color: #cfc7ba; font: 600 13px var(--sans); letter-spacing: .04em; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s; }
.chip:hover { border-color: var(--gold); }
.chip[aria-pressed="true"] { background: var(--gold); border-color: var(--gold); color: var(--obsidian); }
.course__body { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 24px; }
.map { position: relative; border: 1px solid var(--line); background: #11161a; overflow: hidden; }
.map svg { display: block; width: 100%; height: auto; }
.pin { cursor: pointer; }
.pin:focus { outline: none; }
.pin .dot { transition: r .25s var(--ease), opacity .3s; }
.pin:hover .dot, .pin:focus-visible .dot, .pin.is-active .dot { r: 10; }
.pin .ring { fill: none; stroke: transparent; stroke-width: 2; }
.pin:focus-visible .ring, .pin.is-active .ring { stroke: #ece5d8; }
.pin.is-active .pulse { animation: pulse 1.8s ease-out infinite; }
@keyframes pulse { from { r: 14; opacity: .7; } to { r: 30; opacity: 0; } }
.pin text { pointer-events: none; font: 700 10px var(--sans); }
.pin .km { fill: #f1ebe0; font: 700 10px var(--sans); paint-order: stroke; stroke: #0a0c0d; stroke-width: 4px; stroke-linejoin: round; }
.map-label { paint-order: stroke; stroke: #0a0c0d; stroke-width: 4px; stroke-linejoin: round; }
.pk-km { color: var(--gold-hi); }
.pin.is-dim { opacity: .2; }
.falls line { stroke: #cfe0e6; stroke-width: 2; stroke-dasharray: 5 9; animation: fall 1s linear infinite; }
@keyframes fall { to { stroke-dashoffset: -14; } }
.course-line { stroke-dasharray: 2 12; animation: march 30s linear infinite; }
@keyframes march { to { stroke-dashoffset: -280; } }
.panel { border: 1px solid var(--line); background: var(--charcoal); padding: 30px; display: flex; flex-direction: column; }
.panel__media { margin: -30px -30px 24px; aspect-ratio: 3 / 2; overflow: hidden; background: var(--slate); }
.panel__media[hidden] { display: none; }
.panel__media img { width: 100%; height: 100%; object-fit: cover; animation: drift 18s ease-in-out infinite alternate; }
.panel__k { color: var(--gold); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.panel h3 { font-size: 26px; margin: 12px 0 14px; text-transform: uppercase; letter-spacing: .05em; }
.panel p { margin: 0 0 16px; color: #bdb6aa; }
.tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; padding: 0; list-style: none; }
.tags li { padding: 4px 11px; border: 1px solid var(--line); border-radius: 999px; font-size: 12px; font-weight: 600; color: var(--sand); }
.panel__nav { margin-top: auto; padding-top: 20px; border-top: 1px solid var(--line-soft); display: flex; gap: 10px; }
.panel__nav button { flex: 1; min-height: 46px; border-radius: var(--radius); border: 1px solid rgba(216,208,195,.25); background: none; color: var(--ivory); font: 700 12px var(--sans); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.panel__nav button:hover:not(:disabled) { border-color: var(--gold); }
.panel__nav button:disabled { opacity: .3; cursor: default; }
.ob-legend { padding: 14px 18px 16px; border-top: 1px solid var(--line-soft); background: rgba(8,9,9,.55); }
.ob-legend__title { display: block; margin-bottom: 8px; color: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.ob-list { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2px 14px; }
.ob-list li[hidden] { display: none; }
.ob-list button { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 30px; padding: 3px 6px; border: 0; border-radius: 4px; background: none; color: #bdb6aa; text-align: left; font: 500 13px/1.25 var(--sans); cursor: pointer; transition: background-color .2s, color .2s; }
.ob-list button span { flex: none; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--gold); color: var(--obsidian); font: 700 10px var(--sans); }
.ob-list button:hover, .ob-list button[aria-current="true"] { background: rgba(177,138,87,.14); color: #fff; }  .finish-note { margin-top: 28px; color: #a9a296; font-size: 15px; max-width: 46em; }
@media (max-width: 1020px) { .course__body { grid-template-columns: 1fr; } .ob-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 520px) { .ob-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ob-list button { font-size: 12px; } }

/* ---------- grounds (aerial hotspots) ---------- */
.grounds { background: var(--charcoal); }
.grounds__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; margin-top: 40px; }
.grounds__grid #g-panel h3 { font-size: clamp(26px, 2.6vw, 36px); text-transform: uppercase; letter-spacing: .05em; margin: 10px 0 16px; }
.grounds__grid #g-panel p { color: #bdb6aa; margin: 0 0 22px; font-size: 17px; }
@media (max-width: 900px) { .grounds__grid { grid-template-columns: 1fr; gap: 32px; } }
.aerial { position: relative; aspect-ratio: 800 / 1000; border: 1px solid var(--line); }
.aerial .frame { position: absolute; inset: 0; }
.aerial .frame img { animation: drift-soft 26s ease-in-out infinite alternate; }
@keyframes drift-soft { from { transform: scale(1); } to { transform: scale(1.035); } }
@keyframes drift { from { transform: scale(1.04) translate(0, 0); } to { transform: scale(1.1) translate(-1.2%, -1%); } }
.aerial__note { position: absolute; left: 16px; bottom: 14px; z-index: 2; font-size: 12px; color: #e6dfd3; background: rgba(8,9,9,.6); padding: 5px 10px; letter-spacing: .04em; }
.spot { position: absolute; z-index: 3; width: 44px; height: 44px; margin: -22px 0 0 -22px; border: 0; padding: 0; background: none; cursor: pointer; }
.spot::before { content: ""; position: absolute; inset: 11px; border-radius: 50%; background: var(--gold-hi); box-shadow: 0 0 0 3px rgba(8,9,9,.55); transition: transform .25s var(--ease); }
.spot::after { content: ""; position: absolute; inset: 11px; border-radius: 50%; border: 2px solid var(--gold-hi); animation: ping 2.4s ease-out infinite; }
.spot:hover::before, .spot[aria-pressed="true"]::before { transform: scale(1.35); background: #fff; }
@keyframes ping { from { transform: scale(1); opacity: .9; } to { transform: scale(2.6); opacity: 0; } }
.spot__tip { position: absolute; left: 50%; bottom: 100%; transform: translate(-50%, 4px); white-space: nowrap; padding: 6px 10px; background: rgba(8,9,9,.88); color: var(--ivory); font: 600 12px var(--sans); letter-spacing: .06em; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; }
.spot:hover .spot__tip, .spot:focus-visible .spot__tip, .spot[aria-pressed="true"] .spot__tip { opacity: 1; transform: translate(-50%, -2px); }
.grounds__panel { display: grid; grid-template-columns: .9fr 1.1fr; gap: 64px; padding-top: 56px; }
.grounds__panel h3 { font-size: clamp(26px, 2.6vw, 36px); text-transform: uppercase; letter-spacing: .05em; margin: 10px 0 16px; }
.grounds__panel p { color: #bdb6aa; margin: 0 0 16px; font-size: 17px; }
.facts { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 18px 26px; }
.facts li { padding-top: 14px; border-top: 1px solid var(--line); }
.facts b { display: block; color: #ece5d8; font-weight: 600; }
.facts span { color: #a9a296; font-size: 14px; }
.place-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
@media (max-width: 900px) { .grounds__panel { grid-template-columns: 1fr; gap: 28px; } .aerial__note { font-size: 11px; } }
@media (max-width: 520px) { .facts { grid-template-columns: 1fr; } .spot__tip { display: none; } }

/* ---------- day ---------- */
.day { padding: 0; min-height: 100vh; display: flex; align-items: center; overflow: hidden; isolation: isolate; }
.day__bg { position: absolute; inset: 0; z-index: -2; }
.day__bg .slide img { animation: none; }
.day__bg .slide.is-on img { animation: kenburns 12s linear forwards; }
.day::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(8,9,9,.92) 0%, rgba(8,9,9,.78) 45%, rgba(8,9,9,.55) 100%); }
.day__card, .phases { text-shadow: 0 1px 2px rgba(0,0,0,.5), 0 2px 16px rgba(0,0,0,.4); }
.day__in { padding: 96px 28px; display: grid; grid-template-columns: .9fr 1.1fr; gap: 60px; align-items: center; }
.phases { margin: 34px 0 0; padding: 0; list-style: none; border-left: 1px solid var(--line); }
.phases button { display: flex; gap: 18px; align-items: baseline; width: 100%; min-height: 52px; padding: 12px 20px; margin-left: -1px; border: 0; border-left: 2px solid transparent; background: none; color: #a9a296; font: 600 15px var(--sans); text-align: left; cursor: pointer; transition: color .2s, border-color .2s; }
.phases button small { min-width: 64px; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--stone); }
.phases button[aria-selected="true"] { color: #fff; border-left-color: var(--gold-hi); }
.phases button[aria-selected="true"] small { color: var(--gold-hi); }
.day__card { max-width: 30em; }
.day__both { margin: 14px 0 0; color: var(--gold-hi); font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.day__card h3 { font-size: clamp(30px, 3.4vw, 48px); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 18px; }
.day__card p { font-size: 18px; color: #ddd5c8; margin: 0; }
.day__card .label { margin-bottom: 14px; }
.day__card.swap { animation: swap .7s var(--ease); }
@keyframes swap { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (max-width: 900px) { .day__in { grid-template-columns: 1fr; padding: 96px 16px; } .day::after { background: linear-gradient(180deg, rgba(8,9,9,.8), rgba(8,9,9,.92)); } }

/* ---------- taste ---------- */
.taste { padding-top: 0; background: var(--obsidian); }
.taste__banner { height: 70vh; min-height: 420px; }
.taste__banner img { object-position: 50% 70%; }
.taste__head { margin-top: -180px; position: relative; z-index: 2; padding: 56px 56px 0; background: var(--obsidian); max-width: 860px; }
@media (max-width: 700px) { .taste__head { margin-top: -80px; padding: 36px 16px 0; } }
.vendors { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 56px 0 72px; background: var(--line-soft); border: 1px solid var(--line-soft); }
.vendors div { background: var(--obsidian); padding: 26px 24px; }
.vendors b { display: block; font-family: var(--serif); font-weight: 500; font-size: 19px; letter-spacing: .04em; color: #ece5d8; margin-bottom: 6px; }
.vendors span { color: #a9a296; font-size: 14px; }
@media (max-width: 900px) { .vendors { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .vendors { grid-template-columns: 1fr; } }
.dishes { margin: 30px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 48px; }
.dishes li[hidden] { display: none; }
.dish { width: 100%; padding: 22px 0; border: 0; border-bottom: 1px solid var(--line-soft); background: none; color: var(--ivory); text-align: left; font: inherit; cursor: pointer; display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; }
.dish b { font-family: var(--serif); font-weight: 500; font-size: 20px; letter-spacing: .03em; color: #ece5d8; }
.dish small { grid-column: 1; color: var(--gold); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.dish i { grid-row: 1 / span 2; grid-column: 2; align-self: center; font-style: normal; color: var(--gold); font-size: 22px; transition: transform .25s; }
.dish[aria-expanded="true"] i { transform: rotate(45deg); }
.dish span { grid-column: 1 / -1; display: none; padding-top: 10px; color: #b9b2a6; font-size: 15px; }
.dish[aria-expanded="true"] span { display: block; }
.dish:hover b { color: var(--gold-hi); }
.note { margin-top: 30px; font-size: 13px; color: var(--stone); }
@media (max-width: 900px) { .dishes { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .dishes { grid-template-columns: 1fr; } }

/* ---------- discover cambodia ---------- */
.discover { background: linear-gradient(180deg, var(--obsidian), #0d1419 55%, var(--charcoal)); }
.discover__grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .8fr); gap: 56px; margin-top: 56px; align-items: start; }
.kh-map { position: relative; }
.kh-map svg { display: block; width: 100%; height: auto; overflow: visible; }
.kh-holder { border: 1px solid var(--line); background: #0b1518; }
.kh-holder svg { display: block; width: 100%; height: auto; }
#kh-svg text { font-family: var(--sans); }
#kh-svg text.name { font-family: "Bebas Neue", "Arial Narrow", sans-serif; }
#kh-svg .kh-route { fill: none; stroke: #EFB156; stroke-width: 3.5; stroke-dasharray: 8 12; opacity: 0; transition: opacity .4s; }
#kh-svg .kh-route.is-on { opacity: .95; animation: march 20s linear infinite; }
#kh-svg .kh-pin { cursor: pointer; }
#kh-svg .kh-pin:focus { outline: none; }
#kh-svg .kh-pin .hit { fill: transparent; }
#kh-svg .kh-pin .ring { fill: none; stroke: #fff; stroke-width: 3; opacity: 0; transition: opacity .25s; }
#kh-svg .kh-pin:hover .ring, #kh-svg .kh-pin:focus-visible .ring, #kh-svg .kh-pin.is-active .ring { opacity: .9; }
#kh-svg .kh-pin .pulse { fill: none; stroke: #EFB156; stroke-width: 3; opacity: 0; }
#kh-svg .kh-pin.is-active .pulse { animation: kh-pulse 1.8s ease-out infinite; }
@keyframes kh-pulse { from { r: 16; opacity: .9; } to { r: 70; opacity: 0; } }
.kh-route { fill: none; stroke: var(--gold); stroke-width: 1.4; stroke-dasharray: 3 6; opacity: 0; transition: opacity .4s; }
.kh-route.is-on { opacity: .9; animation: march 20s linear infinite; }
.kh-note { margin-top: 10px; font-size: 12px; color: var(--stone); }
.dest { border: 1px solid var(--line); background: var(--charcoal); }
.dest__media { aspect-ratio: 16 / 10; position: relative; overflow: hidden; background: var(--slate); }
.dest__media img, .dest__media video { width: 100%; height: 100%; object-fit: cover; animation: drift 24s ease-in-out infinite alternate; }
.dest__placeholder { position: absolute; inset: 0; display: grid; place-items: end start; padding: 20px; color: rgba(216,208,195,.75); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.dest__cap { position: absolute; left: 14px; bottom: 12px; padding: 4px 9px; background: rgba(8,9,9,.65); font-size: 11px; color: #ddd5c8; letter-spacing: .06em; }
.dest__body { padding: 30px; }
.dest__body h3 { font-size: clamp(24px, 2.4vw, 32px); text-transform: uppercase; letter-spacing: .05em; margin: 8px 0 6px; }
.dest__travel { display: inline-flex; gap: 8px; align-items: center; margin: 4px 0 16px; color: var(--sand); font-size: 14px; font-weight: 600; }
.dest__travel svg { width: 16px; height: 16px; color: var(--gold); }
.dest__body p { margin: 0 0 16px; color: #bdb6aa; }
.dest__nav { display: flex; gap: 10px; padding: 0 30px 30px; }
.dest__nav button { flex: 1; min-height: 46px; border-radius: var(--radius); border: 1px solid rgba(216,208,195,.25); background: none; color: var(--ivory); font: 700 12px var(--sans); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.dest__nav button:hover { border-color: var(--gold); }
.people { margin-top: 96px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--line-soft); border: 1px solid var(--line-soft); }
.people div { background: var(--charcoal); padding: 28px 24px; }
.people b { display: block; font-family: var(--serif); font-weight: 500; font-size: 19px; color: #ece5d8; letter-spacing: .03em; margin-bottom: 6px; }
.people span { color: #a9a296; font-size: 14px; }
@media (max-width: 960px) { .discover__grid { grid-template-columns: 1fr; gap: 32px; } .people { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .people { grid-template-columns: 1fr; } .dest__body { padding: 22px; } .dest__nav { padding: 0 22px 22px; } }

/* ---------- founding ---------- */
.founding { background: var(--charcoal); }
.legacies { display: grid; grid-template-columns: .85fr 1.15fr; gap: 80px; align-items: center; }
.legacies__img { aspect-ratio: 4 / 5; }
.legacies__img img { object-position: 50% 20%; }
.twin { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-top: 40px; border-top: 1px solid var(--line); }
.twin div { padding: 26px 26px 0 0; }
.twin div + div { padding-left: 26px; border-left: 1px solid var(--line); }
.twin b { display: block; font-family: var(--serif); font-weight: 500; color: var(--gold-hi); letter-spacing: .1em; text-transform: uppercase; font-size: 15px; margin-bottom: 8px; }
.twin span { color: #b9b2a6; font-size: 15px; }
@media (max-width: 900px) { .legacies { grid-template-columns: 1fr; gap: 48px; } }
@media (max-width: 520px) { .twin { grid-template-columns: 1fr; } .twin div + div { padding-left: 0; border-left: 0; } }

.founder { margin-top: 140px; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
.founder__quote { font-family: var(--serif); font-size: clamp(24px, 2.4vw, 34px); line-height: 1.35; color: #ece5d8; margin: 0 0 28px; }
.founder__by { display: flex; align-items: center; gap: 16px; }
.mono { width: 58px; height: 58px; flex: none; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--gold); color: var(--gold-hi); font-family: var(--serif); font-size: 18px; background: var(--slate); }
.founder__by b { display: block; font-size: 17px; color: #ece5d8; }
.founder__by span { color: var(--gold); font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.team { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.team li { display: grid; grid-template-columns: 58px 1fr; gap: 18px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--line-soft); }
.team .mono { width: 46px; height: 46px; font-size: 14px; }
.team b { display: block; color: #ece5d8; font-weight: 600; }
.team em { font-style: normal; color: var(--gold); font-size: 13px; font-weight: 600; letter-spacing: .06em; }
.team p { margin: 2px 0 0; color: #9e978b; font-size: 14px; }
.team .tbc b { color: var(--stone); font-weight: 500; }
@media (max-width: 900px) { .founder { grid-template-columns: 1fr; gap: 48px; margin-top: 96px; } }

.endorse { margin-top: 140px; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.endorse__card { display: grid; grid-template-columns: 170px 1fr; gap: 30px; align-items: center; padding: 34px; border: 1px solid var(--line); background: var(--obsidian); }
.endorse__logo { background: #f2eee6; height: 100px; display: grid; place-items: center; padding: 10px; }
.endorse__logo img { max-height: 80px; width: auto; object-fit: contain; }
.endorse__card small { display: block; color: var(--gold); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 6px; }
.endorse__card b { display: block; font-family: var(--serif); font-weight: 500; font-size: 20px; color: #ece5d8; line-height: 1.25; }
@media (max-width: 900px) { .endorse { grid-template-columns: 1fr; margin-top: 96px; } }
@media (max-width: 520px) { .endorse__card { grid-template-columns: 1fr; padding: 24px; } }

.partners { margin-top: 140px; }
.partners__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 36px; }
.p-grid { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--line-soft); border: 1px solid var(--line-soft); }
.p-grid li[hidden] { display: none; }
.p-card { display: block; height: 100%; min-height: 150px; padding: 24px; background: var(--charcoal); text-decoration: none; transition: background-color .25s; }
a.p-card:hover { background: var(--slate); }
.p-card small { color: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.p-card b { display: block; margin: 12px 0 6px; font-family: var(--serif); font-weight: 500; font-size: 18px; line-height: 1.3; color: #ece5d8; }
.p-card span { color: #9e978b; font-size: 14px; }
.p-card--open b { color: var(--gold-hi); }
/* partner carousel */
.p-carousel { position: relative; }
.p-grid { display: flex !important; gap: 12px !important; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; background: none !important; border: 0 !important; padding: 2px 0 12px !important; scrollbar-width: none; }
.p-grid::-webkit-scrollbar { display: none; }
.p-grid > li { flex: 0 0 210px; scroll-snap-align: start; }
.p-grid .p-card { min-height: 0; padding: 16px 18px 18px; border: 1px solid var(--line-soft); border-radius: 6px; }
.p-grid .p-card b { font-size: 15px; margin: 8px 0 4px; }
.p-grid .p-card span { font-size: 13px; }
.p-arrow { position: absolute; top: 34%; z-index: 2; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); background: rgba(10,12,13,.88); color: var(--ivory); font-size: 18px; cursor: pointer; display: grid; place-items: center; }
.p-arrow:hover { border-color: var(--gold); color: var(--gold-hi); }
.p-arrow--prev { left: -14px; }
.p-arrow--next { right: -14px; }
@media (max-width: 600px) { .p-arrow { display: none; } .p-grid > li { flex-basis: 180px; } }
.p-logo { height: 120px; margin: -24px -24px 18px; display: grid; place-items: center; padding: 14px 20px; border-bottom: 1px solid var(--line-soft); }
.p-logo--light { background: #f4f1ea; }
.p-logo--dark { background: #0b0c0c; }
.p-logo--mono { background: linear-gradient(160deg, #1f2326, #141618); }
.p-logo--mono span { font-family: var(--serif); font-size: 34px; letter-spacing: .12em; color: var(--gold); opacity: .8; }
.p-grid .p-logo { height: 96px; margin: -16px -18px 12px; padding: 10px 14px; }
.p-grid .p-logo img { max-height: 76px; }
.p-grid .p-logo--mono span { font-size: 26px; }
.p-logo img { max-width: 100%; max-height: 92px; width: auto; height: auto; object-fit: contain; }
@media (max-width: 1000px) { .p-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .partners { margin-top: 96px; } }
@media (max-width: 520px) { .p-grid { grid-template-columns: 1fr; } }


.become { margin-top: 140px; display: grid; grid-template-columns: .95fr 1.05fr; gap: 64px; padding: 56px; border: 1px solid var(--line); background: linear-gradient(140deg, var(--highland) 0%, #101b26 60%, var(--obsidian) 100%); }
.acc { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(216,208,195,.16); }
.acc li { border-bottom: 1px solid rgba(216,208,195,.16); }
.acc button { width: 100%; min-height: 60px; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 0; border: 0; background: none; color: #ece5d8; font: 600 17px var(--sans); text-align: left; cursor: pointer; }
.acc button::after { content: "+"; color: var(--gold-hi); font-size: 24px; transition: transform .25s; }
.acc button[aria-expanded="true"]::after { transform: rotate(45deg); }
.acc div { padding: 0 0 20px; color: #b9b2a6; font-size: 15px; }
.acc div[hidden] { display: none; }
/* FAQ: native <details>, styled like the accordion */
.faq { padding: 120px 0; background: #0d0e0e; }
.faq__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 64px; align-items: start; }
.faq__head { position: sticky; top: 110px; }
.faq__head .lede a { color: var(--gold-hi); }
.faq__group { margin: 40px 0 6px; color: var(--gold-hi); font: 600 12px var(--sans); letter-spacing: .2em; text-transform: uppercase; }
.faq__group:first-child { margin-top: 0; }
.faq details { border-bottom: 1px solid rgba(216,208,195,.16); }
.faq details:first-of-type, .faq__group + details { border-top: 1px solid rgba(216,208,195,.16); }
.faq summary { min-height: 60px; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 0; color: #ece5d8; font: 600 17px var(--sans); cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; flex: none; color: var(--gold-hi); font-size: 24px; transition: transform .25s; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { margin: 0; padding: 0 0 20px; max-width: 62ch; color: #b9b2a6; font-size: 15px; line-height: 1.6; }
@media (max-width: 900px) {
  .faq { padding: 80px 0; }
  .faq__in { grid-template-columns: 1fr; gap: 28px; }
  .faq__head { position: static; }
  .faq summary { min-height: 52px; font-size: 16px; }
}
@media (max-width: 900px) { .become { grid-template-columns: 1fr; padding: 32px 22px; gap: 32px; margin-top: 96px; } }

/* ---------- legacy ---------- */
.legacy__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 56px; }
.legacy__card { position: relative; min-height: 520px; display: flex; flex-direction: column; justify-content: flex-end; padding: 40px; overflow: hidden; isolation: isolate; border: 1px solid var(--line-soft); }
.legacy__card .frame { position: absolute; inset: 0; z-index: -2; }
.legacy__card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8,9,9,.25) 0%, rgba(8,9,9,.62) 40%, rgba(8,9,9,.95) 72%); }
.legacy__card:hover .frame img { transform: scale(1.05); }
.legacy__card .frame img { transition: transform 1.6s var(--ease); }
.legacy__card time { color: var(--gold-hi); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.legacy__card h3 { font-size: clamp(24px, 2.4vw, 32px); text-transform: uppercase; letter-spacing: .05em; margin: 10px 0 14px; }
.legacy__card p { margin: 0 0 10px; color: #cfc7ba; }
.big { font-family: var(--serif); font-size: 52px; color: var(--gold-hi); line-height: 1; margin: 4px 0 12px; }
@media (max-width: 860px) { .legacy__grid { grid-template-columns: 1fr; } .legacy__card { min-height: 460px; padding: 28px; } }

/* ---------- shop ---------- */
.shop { background: var(--charcoal); }
.shop__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 24px; }
.collections { margin: 44px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.collection { display: block; text-decoration: none; }
.collection .frame { aspect-ratio: 1280 / 853; border: 1px solid var(--line); }
.collection .frame img { transition: transform 1.2s var(--ease); }
.collection:hover .frame img { transform: scale(1.04); }
.collection span { display: block; margin-top: 12px; color: var(--gold-hi); font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
@media (max-width: 900px) { .collections { grid-template-columns: 1fr; } }
.whisky { margin-top: 56px; display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: 48px; align-items: center; padding: 28px; border: 1px solid var(--line); background: linear-gradient(140deg, #101b26, var(--charcoal) 70%); }
.whisky__img { display: block; aspect-ratio: 853 / 1280; }
.whisky h3 { font-size: clamp(26px, 2.8vw, 38px); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 6px; }
.whisky__lead { margin: 0 0 14px; font-family: var(--serif); color: var(--gold-hi); font-size: 19px; }
.whisky p { color: #bdb6aa; max-width: 34em; }
.whisky__price { font-family: var(--serif); font-size: 44px; color: #ece5d8 !important; margin: 18px 0 4px; }
.whisky__price small { font-family: var(--sans); font-size: 14px; color: #9e978b; margin-left: 8px; }
.whisky__note { font-size: 14px; margin-bottom: 22px; }
.whisky__notes { margin: 18px 0; display: grid; gap: 8px; }
.whisky__notes div { display: grid; grid-template-columns: 70px 1fr; gap: 12px; }
.whisky__notes dt { color: var(--gold); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding-top: 2px; }
.whisky__notes dd { margin: 0; color: #cfc7ba; font-size: 15px; }
.whisky__options { margin: 22px 0 14px; padding: 0; list-style: none; display: grid; gap: 10px; }
.whisky__options li { display: grid; grid-template-columns: 80px 1fr; gap: 14px; align-items: center; padding: 12px 14px; border: 1px solid var(--line); border-radius: 4px; background: rgba(8,9,9,.35); }
.whisky__options b { font-family: var(--serif); font-weight: 500; font-size: 28px; color: #ece5d8; }
.whisky__options span { color: #bdb6aa; font-size: 14px; }
.whisky__le { background: linear-gradient(120deg, rgba(240,235,224,.1), rgba(177,138,87,.12)) !important; border-color: rgba(240,235,224,.4) !important; }
.whisky__le b { color: #f4efe6; }
.whisky__le b::before { content: "No. "; font-size: 13px; color: var(--gold-hi); letter-spacing: .1em; }
@media (max-width: 800px) { .whisky { grid-template-columns: 1fr; gap: 24px; padding: 20px; } .whisky__img { max-width: 320px; } }
.shop__rail { margin: 44px 0 0; padding: 0 0 18px; list-style: none; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(280px, 1fr); gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--bronze) transparent; }
.shop__rail li { scroll-snap-align: start; }
.product { display: block; text-decoration: none; }
.product .frame { aspect-ratio: 16 / 10; background: #222; }
.product .frame img { transition: transform 1.2s var(--ease); }
.product:hover .frame img { transform: scale(1.06); }
.product b { display: block; margin-top: 16px; font-family: var(--serif); font-weight: 500; font-size: 17px; letter-spacing: .04em; color: #ece5d8; }
.product span { color: var(--gold); font-size: 13px; font-weight: 600; }

/* ---------- tickets ---------- */
.tickets { background: var(--obsidian); }
.seg { display: inline-flex; gap: 4px; padding: 4px; margin: 34px 0 30px; border: 1px solid var(--line); border-radius: 999px; }
.seg button { min-height: 42px; padding: 0 20px; border: 0; border-radius: 999px; background: none; color: #bdb6aa; font: 700 12px var(--sans); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.seg button[aria-pressed="true"] { background: var(--ivory); color: var(--obsidian); }
.pt-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin: 30px 0 18px; }
.pt-bar .seg { margin: 0; }
.pt-tabs { display: none; flex-wrap: wrap; gap: 6px; }
.pt-tabs button { min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(216,208,195,.25); background: none; color: #cfc7ba; font: 700 12px var(--sans); letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.pt-tabs button[aria-pressed="true"] { background: var(--gold); border-color: var(--gold); color: var(--obsidian); }
.pt-scroll { overflow-x: auto; border-radius: 6px; border: 1px solid var(--line); background: var(--charcoal); }
.pt { width: 100%; min-width: 1040px; border-collapse: collapse; color: var(--ivory); font: 500 14px/1.3 var(--sans); }
.pt th, .pt td { border-right: 1px solid rgba(216,208,195,.08); border-bottom: 1px solid rgba(216,208,195,.08); text-align: center; padding: 10px 6px; }
.pt thead th { background: #101b26; color: #f1ebe0; border-color: rgba(216,208,195,.1); }
.pt .pt-corner { background: var(--charcoal); color: var(--gold-hi); font-family: var(--serif); font-size: 18px; text-transform: uppercase; letter-spacing: .06em; text-align: left; padding: 16px; min-width: 170px; border-color: rgba(216,208,195,.08); }
.pt-pack { padding: 16px 10px !important; vertical-align: top; }
.pt-pack b { display: block; font-family: var(--serif); font-weight: 600; font-size: 16px; letter-spacing: .04em; text-transform: uppercase; }
.pt-pack span { display: block; margin-top: 4px; font-size: 12px; color: #c9c2b4; font-weight: 500; }
.pt thead .is-best { background: linear-gradient(180deg, #5a3d17, #3d2a10); }
.pt-badge { display: inline-block !important; margin: 0 0 6px !important; padding: 3px 10px; border-radius: 3px; background: linear-gradient(90deg, #c99a4e, #efc77a); color: #1d1406 !important; font-size: 10px !important; font-weight: 800 !important; letter-spacing: .14em; text-transform: uppercase; }
.pt-tier { padding: 0 !important; vertical-align: middle; min-width: 74px; }
.pt-tier .pt-chip { margin: 0; padding: 8px 4px !important; line-height: 1.2; }
.pt-unit { display: block; margin-top: 6px; color: var(--gold-hi); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.pt-chip { display: block; padding: 7px 4px; margin-bottom: 8px; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #fff; }
.t-general .pt-chip { background: #2a5db0; }
.t-gold .pt-chip { background: #b8862f; }
.t-platinum .pt-chip { background: #5b6672; }
.pt-price { display: block; font-family: var(--serif); font-weight: 600; font-size: 21px; color: #fff; }
.pt-tier small { display: block; margin-top: 2px; font-size: 10px; color: #b5ae9f; letter-spacing: .04em; }
.pt tbody th { text-align: left; padding: 10px 14px; font-weight: 600; color: #ece5d8; background: var(--charcoal); }
.pt tbody th small { display: block; font-weight: 500; font-size: 12px; color: #8d8982; }
.pt tbody td.is-best { background: rgba(177,138,87,.14); }
.pt tbody tr:nth-child(even) td:not(.is-best), .pt tbody tr:nth-child(even) th { background: #1d2022; }
.pt-yes, .pt-no { display: inline-block; width: 22px; height: 22px; border-radius: 50%; position: relative; vertical-align: middle; }
.pt-yes { background: #1f9d4c; }
.pt-yes::after { content: ""; position: absolute; left: 7px; top: 4px; width: 6px; height: 11px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.pt-no { background: #b23a33; opacity: .85; }
.pt-no::before, .pt-no::after { content: ""; position: absolute; left: 5px; top: 10px; width: 12px; height: 2.5px; background: #fff; transform: rotate(45deg); }
.pt-no::after { transform: rotate(-45deg); }
.pt-buy td { padding: 12px 6px; }
.pt-buy .btn { min-height: 40px; padding: 8px 10px; font-size: 13px; letter-spacing: .02em; width: 100%; }
.pt-buy .btn--line { color: var(--ivory); border-color: rgba(216,208,195,.4); }
.pt-buy .btn--line:hover { border-color: var(--gold); color: var(--gold-hi); background: transparent; }
.pt-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 22px; color: #bdb6aa; font-size: 14px; }
.pt-notes b { display: block; color: var(--gold); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 6px; }
.pt-notes ul { margin: 0; padding-left: 18px; }
.pt-notes { grid-template-columns: 1fr 1fr 1.15fr; }
.pt-age { padding: 10px 14px; border-left: 3px solid var(--gold); background: rgba(177,138,87,.1); border-radius: 0 6px 6px 0; }
.pt-age b { color: var(--gold-hi) !important; }
.pt-age a { color: var(--gold-hi); }
@media (max-width: 900px) { .pt-notes { grid-template-columns: 1fr; } }
@media (max-width: 1000px) {
  .pt-tabs { display: flex; }
  .pt { min-width: 0; }
  .pt-corner { min-width: 0 !important; }
  .pt[data-show="day"] :is(.g-master, .g-hday, .g-hweek),
  .pt[data-show="master"] :is(.g-day, .g-hday, .g-hweek),
  .pt[data-show="hday"] :is(.g-day, .g-master, .g-hweek),
  .pt[data-show="hweek"] :is(.g-day, .g-master, .g-hday) { display: none; }
  .pt tbody th { padding: 10px; font-size: 13px; }
  .pt-notes { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .pt { table-layout: fixed; font-size: 12px; }
  .pt .pt-corner { width: 34%; padding: 10px; font-size: 12px; letter-spacing: .03em; }
  .pt-tier { min-width: 0; }
  .pt-chip { font-size: 9px; padding: 6px 2px; letter-spacing: .02em; }
  .pt-price { font-size: 16px; }
  .pt-tier small { font-size: 9px; }
  .pt-pack b { font-size: 13px; }
  .pt-pack span { font-size: 11px; }
  .pt tbody th { padding: 8px; font-size: 12px; }
  .pt tbody th small { font-size: 10px; }
  .pt-yes, .pt-no { width: 20px; height: 20px; }
  .pt-yes::after { left: 6px; top: 3px; }
  .pt-no::before, .pt-no::after { left: 4px; top: 9px; }
  .pt-buy .btn { font-size: 11px; padding: 6px 2px; min-height: 36px; }
  .pt-bar .seg button { padding: 0 14px; }
}
/* pop-up */
.pdlg { width: min(1320px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 28px; border: 1px solid var(--gold); border-radius: 8px; background: var(--obsidian); color: var(--ivory); overflow: auto; }
.pdlg::backdrop { background: rgba(4,5,5,.78); backdrop-filter: blur(4px); }
.pdlg__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.pdlg__head h2 { font-size: clamp(28px, 3.4vw, 44px); }
.pdlg__head p { margin: 6px 0 0; color: var(--gold-hi); font-family: var(--serif); letter-spacing: .08em; text-transform: uppercase; }
.pdlg__head .label { margin-bottom: 10px; }
.pdlg__close { flex: none; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(216,208,195,.35); background: none; color: var(--ivory); font-size: 26px; line-height: 1; cursor: pointer; }
.pdlg__close:hover { border-color: var(--gold); }
@media (max-width: 600px) { .pdlg { padding: 18px 14px; width: calc(100vw - 16px); max-height: calc(100vh - 16px); } }
/* Ticket pop-up fits the screen on laptops/desktops: compact header, no inner scrolling */
@media (min-width: 1021px) {
  .pdlg { padding: 20px 26px 18px; max-height: calc(100svh - 24px); overflow: hidden; }
  .pdlg__head { align-items: center; }
  .pdlg__head > div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 22px; }
  .pdlg__head .label { display: none; }
  .pdlg__head h2 { font-size: clamp(24px, min(2.6vw, 4.4vh), 38px); }
  .pdlg__head p { margin: 0; font-size: 15px; }
  .pdlg__close { width: 40px; height: 40px; font-size: 22px; }
  .pdlg .pt-bar { margin: 12px 0 10px; }
  .pdlg .pt th, .pdlg .pt td { padding-top: 4px; padding-bottom: 4px; }
  .pdlg .pt-pack { padding: 8px 8px !important; }
  .pdlg .pt-pack span { font-size: 11px; }
  .pdlg .pt-yes, .pdlg .pt-no { width: 18px; height: 18px; }
  .pdlg .pt-yes::after { left: 6px; top: 3px; width: 5px; height: 9px; }
  .pdlg .pt-no::before, .pdlg .pt-no::after { left: 4px; top: 8px; width: 10px; }
  .pdlg .pt-buy .btn { min-height: 36px; padding: 6px 8px; }
  .pdlg .pt-notes { margin-top: 12px; gap: 18px; font-size: 13px; }
  .pdlg .pt-notes ul { padding-left: 0; list-style: none; }
  .pdlg .pt-age { padding: 8px 12px; }
}
/* ---------- footer ---------- */
/* Highland navy, faint gold temple line art, motto bar, link grid, village panel (after r-o.com) */
.foot { position: relative; overflow: hidden; padding: 56px 0 40px; background: radial-gradient(ellipse at 80% 100%, #1d3a55 0%, transparent 60%), linear-gradient(180deg, #132536 0%, #0c1824 100%); border-top: 2px solid var(--gold); color: #c9c2b6; }
.foot__art { position: absolute; right: -60px; bottom: 60px; width: min(900px, 80vw); height: auto; color: var(--gold); opacity: .09; pointer-events: none; }
.foot .wrap { position: relative; }
.foot__top { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 32px; padding-bottom: 30px; border-bottom: 1px solid rgba(201,162,108,.35); }
.foot__crest { display: block; width: 170px; height: auto; filter: drop-shadow(0 8px 22px rgba(0,0,0,.5)); }
.foot__motto { margin: 0; text-align: center; font-family: var(--serif); font-size: clamp(18px, 2.3vw, 31px); line-height: 1.35; letter-spacing: .08em; text-transform: uppercase; color: #efe8db; }
.foot__motto em { font-style: normal; color: var(--gold-hi); }
.foot__top .btn { white-space: nowrap; }
.foot__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(0, 1.25fr); gap: 32px; padding: 40px 0 36px; }
.foot__h { display: block; margin: 0 0 14px; color: var(--gold-hi); font: 700 12px/1.3 var(--sans); letter-spacing: .2em; text-transform: uppercase; }
.foot ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; }
.foot a { text-decoration: none; color: #cdc6ba; transition: color .2s; }
.foot a:hover { color: var(--gold-hi); }
.foot p { margin: 0; color: #a9a294; font-size: 14px; }
.social { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.social a { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 1px solid rgba(201,162,108,.4); border-radius: 50%; color: var(--gold-hi); transition: background-color .2s, color .2s, border-color .2s; }
.social a:hover { background: var(--gold); border-color: var(--gold); color: var(--obsidian); }
.social svg { width: 19px; height: 19px; }
.social span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.foot__endorse { display: flex; align-items: center; gap: 14px; margin-top: 22px; }
.foot__endorse small { display: block; width: 100%; margin-bottom: -4px; color: #8f8a80; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
.foot__endorse { flex-wrap: wrap; }
.foot__endorse img { height: 42px; width: auto; }
.foot__endorse img.mjf { height: 36px; padding: 7px 10px; border-radius: 6px; background: #f4efe6; }
.foot__villages { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; list-style: none; border: 1px solid rgba(201,162,108,.3); border-radius: 14px; background: rgba(255,255,255,.03); }
.foot__villages li + li { border-left: 1px solid rgba(201,162,108,.18); }
.foot__villages a { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 24px 10px 20px; text-align: center; font: 700 12px/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: #e6dfd2; }
.foot__villages svg { width: 40px; height: 40px; color: var(--gold-hi); transition: transform .35s var(--ease); }
.foot__villages a:hover svg { transform: translateY(-4px); }
.foot__villages small { display: block; margin-top: -4px; font-weight: 500; letter-spacing: .04em; text-transform: none; color: #9f988b; font-size: 12px; }
.foot__base { margin-top: 34px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; font-size: 13px; color: #8f8a80; }
.foot__base .foot__legal { display: flex; gap: 18px; margin: 0; padding: 0; list-style: none; }
@media (max-width: 1000px) { .foot__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } .foot__contact { grid-column: span 3; } }
@media (max-width: 760px) {
  .foot__top { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .foot__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } .foot__contact { grid-column: span 2; }
  .foot__villages { grid-template-columns: repeat(2, 1fr); }
  .foot__villages li + li { border-left: 0; }
  .foot__villages li { border-top: 1px solid rgba(201,162,108,.18); }
  .foot__villages li:nth-child(-n+2) { border-top: 0; }
  .foot__villages li:nth-child(even) { border-left: 1px solid rgba(201,162,108,.18); }
  .foot__villages li:last-child { grid-column: span 2; border-left: 0; }
  .foot__base { justify-content: center; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .wipe img { clip-path: none; transform: none; }
  .rise { opacity: 1; transform: none; }
  .frame [data-parallax] { height: 100%; margin-top: 0; }
}
/* ---------- one screen per section (laptops and desktops) ----------
   Every section fills exactly one screen, content centred and sized to the screen height.
   --scr is the space left between the fixed header and the ticket bar. */
@media (min-width: 1021px) and (min-height: 620px) {
  html { scroll-snap-type: y proximity; scroll-padding-top: 0; }
  main > section { scroll-snap-align: start; }
  main > section:not(.hero):not(.day) { --scr: calc(100svh - 170px); min-height: 100svh; display: flex; flex-direction: column; justify-content: center; padding: 92px 0 78px; }
  main > section h2 { font-size: clamp(28px, min(3.8vw, 5.4vh), 56px); }
  main > section .lede { margin-top: 12px; font-size: clamp(15px, 1.9vh, 18px); }
  main > section .label { margin-bottom: 12px; }

  /* Overview: panels take the remaining height */
  .overview .pillars { height: max(300px, calc(var(--scr) - 250px)); margin-top: 28px; }

  /* Grounds: text, chips and info on the left, the aerial map on the right */
  .grounds .wrap { display: grid; grid-template-columns: minmax(0, 1fr) calc(var(--scr) * 800 / 1000); grid-template-rows: auto auto auto auto 1fr; column-gap: 56px; align-items: start; }
  .grounds .wrap > .label, .grounds .wrap > h2, .grounds .wrap > .lede, .grounds .place-list { grid-column: 1; }
  .grounds .wrap > .label { justify-self: start; }
  .grounds__grid { display: contents; }
  .grounds .aerial { grid-column: 2; grid-row: 1 / span 5; height: var(--scr); width: 100%; }
  .grounds #g-panel { grid-column: 1; margin-top: 22px; }
  .grounds .place-list { margin-top: 18px; }
  .grounds__grid #g-panel p { font-size: 16px; margin-bottom: 14px; }

  /* Course: map and panel fit the screen */
  .course__head { margin-bottom: 18px; gap: 18px; }
  .course__head .lede { max-width: 40em; }
  .course__body { grid-template-columns: minmax(0, 1fr) 340px; height: calc(var(--scr) - 190px); min-height: 380px; }
  .course .map { display: flex; flex-direction: column; }
  .course .map svg { flex: 1; min-height: 0; height: 100%; }
  .course .map { flex-direction: row; align-items: stretch; }
  .course .map svg { flex: none; height: 100%; width: auto; aspect-ratio: 470 / 770; }
  .course .ob-legend { flex: 1; min-width: 0; overflow: auto; }
  .course .ob-list { grid-template-columns: 1fr; }
  .course .ob-list button { min-height: 0; padding: 2px 6px; }
  .course .ob-legend { padding-top: 10px; padding-bottom: 10px; }
  .course .panel { padding: 22px; overflow: auto; }
  .course .panel__media { margin: -22px -22px 16px; aspect-ratio: 16 / 9; }
  .course .panel h3 { font-size: 22px; margin: 8px 0 10px; }
  .course .finish-note { display: none; }

  /* Taste: the grill photo becomes a dim backdrop behind the whole section */
  .taste { isolation: isolate; }
  .taste__banner { position: absolute; inset: 0; height: auto; min-height: 0; z-index: -1; opacity: .3; }
  .taste__banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,9,9,.4), var(--obsidian) 85%); }
  .taste__head { margin-top: 0; padding: 0; background: none; }
  .vendors { margin: 22px 0 18px; }
  .vendors div { padding: 14px 18px; background: rgba(8,9,9,.75); }
  .vendors b { font-size: 17px; }
  .vendors span { font-size: 13px; }
  .dishes { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 32px; margin-top: 14px; }
  .dish { padding: 12px 0; }
  .dish b { font-size: 17px; }
  .taste .note { margin-top: 10px; font-size: 12px; }

  /* Why Phnom Kulen */
  .statement__img { aspect-ratio: auto; height: calc(var(--scr) - 40px); }

  /* Discover Cambodia */
  .discover__grid { margin-top: 18px; gap: 36px; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .8fr); }
  .kh-holder svg { max-height: calc(var(--scr) - 230px); }
  .dest__media { aspect-ratio: 16 / 9; }
  .people { margin-top: 18px; }
  .people div { padding: 12px 18px; }
  .people b { font-size: 16px; margin-bottom: 2px; }
  .people span { font-size: 13px; }
  .discover .wrap > p:last-child { margin-top: 16px !important; }

  /* Legacy */
  .legacy__grid { margin-top: 24px; }
  .legacy__card { min-height: calc(var(--scr) - 170px); padding: 32px; }

  /* Founding, founder, partners: one screen each */
  .legacies__img { aspect-ratio: auto; height: var(--scr); }
  .legacies { grid-template-columns: auto minmax(0, 1fr); gap: 64px; }
  .founder { margin-top: 0; gap: 64px; align-items: center; }
  .founder__bio p { font-size: 15px; margin-bottom: 10px; }
  .partners { margin-top: 0; }
  .partners__head { margin-bottom: 20px; }
  .become { margin-top: 36px; padding: 32px 40px; gap: 48px; }
  .acc button { min-height: 50px; }

  /* First 200 */
  .first200 { padding-top: 80px !important; }
  .f200 { padding-top: 32px; gap: 48px; }
  .f200__img { max-height: calc(var(--scr) - 120px); }
  .f200 h2 { font-size: clamp(34px, min(4.2vw, 6vh), 62px); }

  /* Tickets: a tighter table */
  .pt-bar { margin: 16px 0 10px; }
  .pt th, .pt td { padding: 6px 5px; }
  .pt-pack { padding: 10px 8px !important; }
  .pt-chip { padding: 5px 4px; margin-bottom: 5px; }
  .pt-price { font-size: 18px; }
  .pt tbody th { padding: 6px 12px; }
  .pt-yes, .pt-no { width: 18px; height: 18px; }
  .pt-yes::after { left: 6px; top: 3px; width: 5px; height: 9px; }
  .pt-no::before, .pt-no::after { left: 4px; top: 8px; width: 10px; }
  .pt-buy td { padding: 8px 5px; }
  .pt-buy .btn { min-height: 34px; padding: 6px 8px; }
  .pt-notes { margin-top: 12px; font-size: 13px; }

  /* Shop and whisky */
  .collections { margin-top: 24px; }
  .collection .frame { aspect-ratio: auto; height: calc((var(--scr) - 200px) * .55); }
  .shop__rail { margin-top: 18px; }
  .product .frame { aspect-ratio: auto; height: calc((var(--scr) - 200px) * .3); }
  .whisky { margin-top: 0; }
  .whisky__img { max-height: var(--scr); }

  /* --- second pass: the sections that still ran over --- */
  .grounds .place-list .chip { min-height: 34px; padding: 6px 13px; font-size: 13px; }
  .grounds .place-list { gap: 6px; }
  .grounds .facts { margin-top: 10px; gap: 10px 20px; }
  .grounds .facts li { padding: 8px 0; }
  .grounds .facts span { font-size: 13px; }

  .course__body { height: calc(var(--scr) - 250px); grid-template-columns: minmax(0, 1fr) clamp(340px, 30vw, 460px); }
  .course .panel { overflow: hidden; padding: 18px 20px; }
  .course .panel__media { flex: 0 0 38%; aspect-ratio: auto; min-height: 0; margin: -18px -20px 12px; }
  .course .panel__media img { object-position: 50% 35%; }
  .course .panel h3 { font-size: 20px; margin: 6px 0 8px; }
  .course #p-b { flex: 1 1 auto; min-height: 0; overflow: auto; }
  .course .panel p { font-size: 14px; line-height: 1.55; margin-bottom: 8px; }
  .course .panel .tags { margin: 2px 0 0; }
  .course .panel__nav { margin-top: 10px; padding-top: 10px; }
  .course .panel__nav button { min-height: 38px; }
  .course__head h2 { font-size: clamp(26px, min(3.4vw, 5vh), 48px); }

  .taste__head { max-width: none; }
  /* Intro paragraphs run the full width (the course intro stays beside its filter buttons) */
  main > section .lede { max-width: none; }
  .course__head .lede { max-width: 46em; }
  .grounds .wrap > .lede { max-width: none; }
  .vendors div { padding: 10px 16px; }
  .dish { padding: 8px 0; }

  .discover .lede { max-width: 62em; }
  .discover__grid { height: calc(var(--scr) - 200px); align-items: stretch; }
  .discover__grid { grid-template-rows: minmax(0, 1fr); }
  .kh-map { display: flex; flex-direction: column; min-height: 0; height: 100%; }
  .kh-holder { flex: 1 1 0; min-height: 0; overflow: hidden; position: relative; }
  .kh-holder svg { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; overflow: hidden; }
  .kh-note { display: none; }
  .dest { display: flex; flex-direction: column; min-height: 0; }
  .dest__media { aspect-ratio: auto; flex: 0 0 38%; }
  .dest__body { flex: 1; min-height: 0; overflow: auto; padding: 18px 22px; }
  .dest__body h3 { font-size: 24px; margin: 6px 0 8px; }
  .dest__body p { font-size: 14px; margin-bottom: 8px; }
  .dest__nav { padding: 0 22px 16px; }
  .people { margin-top: 14px; }
  .people div { padding: 10px 16px; }
  .people span { display: none; }
  .discover .wrap > p:last-child { display: none; }

  .partners__head { margin-bottom: 14px; align-items: center; }
  .partners__head h2 { font-size: clamp(26px, min(3vw, 4.6vh), 44px); }
  .p-grid .p-logo { height: 72px; }
  .p-grid .p-logo img { max-height: 56px; }
  .become { margin-top: 22px; padding: 24px 32px; gap: 40px; }
  .become h2 { font-size: clamp(24px, min(2.6vw, 4.2vh), 38px); }
  .become .lede { font-size: 15px; }
  .become p[style] { margin-top: 16px !important; }
  .acc button { min-height: 42px; font-size: 15px; padding: 8px 0; }
  .acc div { font-size: 14px; padding-bottom: 12px; }

  .tickets .lede { margin-top: 6px; }
  .pt { font-size: 13px; }
  .pt tbody th { padding: 4px 12px; white-space: nowrap; }
  .pt tbody th small { display: inline; margin-left: 6px; }
  .pt tbody td { padding: 3px 4px; }
  .pt-pack { padding: 8px 8px !important; }
  .pt-pack span { font-size: 11px; }
  .pt-tier { padding-bottom: 6px !important; }
  .pt-tier small { font-size: 9px; }
  .pt-notes { grid-template-columns: 1fr 1fr 1.15fr; gap: 20px; margin-top: 8px; font-size: 12px; }
  .pt-age ul { display: block !important; }
  .pt-age li::before { content: none !important; }
  .pt-age li { margin: 2px 0; }
  .pt-notes ul { display: flex; flex-wrap: wrap; gap: 0 16px; padding-left: 0; list-style: none; }
  .pt-notes li::before { content: "· "; color: var(--gold); }

  .collection .frame { height: calc((var(--scr) - 200px) * .5); }

  .discover__grid { height: calc(var(--scr) - 235px); }
  /* Map box matches the map's own shape (no empty sides); the card gets the rest and a wider page */
  .discover .wrap { max-width: 1560px; }
  .discover__grid { grid-template-columns: calc((var(--scr) - 235px) * 1.235) minmax(380px, 1fr); gap: 28px; }
  /* Wide card: photo/film on the left, story on the right, so the text never needs scrolling */
  .dest { display: grid; grid-template-columns: minmax(0, 44%) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; }
  .dest__media { grid-column: 1; grid-row: 1 / span 2; height: 100%; flex: none; aspect-ratio: auto; }
  .dest__body { grid-column: 2; grid-row: 1; padding: 22px 26px 8px; overflow: auto; }
  .dest__nav { grid-column: 2; grid-row: 2; }
  .dest__body p { font-size: 15px; line-height: 1.55; }
  .dest__nav { padding: 0 24px 16px; }
  .dest__nav button { min-height: 44px; }
  @media (max-height: 800px) {
    .dest__body { padding-top: 16px; }
    .dest__body h3 { font-size: 22px; margin: 4px 0 4px; }
    .dest__travel { margin-bottom: 8px; font-size: 13px; }
    .dest__body p { font-size: 14px; line-height: 1.5; margin-bottom: 8px; }
  }

  .partners-sec .partners__head .label { display: none; }
  .p-grid .p-logo { height: 58px; margin-bottom: 8px; }
  .p-grid .p-logo img { max-height: 44px; }
  .p-grid .p-card { padding: 12px 14px 14px; }
  .p-grid .p-logo { margin: -12px -14px 8px; }
  .become .lede { font-size: 14px; line-height: 1.5; margin-top: 8px; }
  .become .label { margin-bottom: 8px; }
  .acc button { min-height: 38px; }

  .become-sec .become { margin-top: 0; padding: 48px 56px; gap: 56px; align-items: center; }
  .become-sec .become h2 { font-size: clamp(30px, min(3.6vw, 5.4vh), 54px); }
  .become-sec .become .lede { font-size: clamp(15px, 1.9vh, 18px); }
  .become-sec .acc button { min-height: 52px; font-size: 17px; }
  .become-sec .acc div { font-size: 15px; }
  main > section.tickets { padding-bottom: 24px; } /* the ticket bar hides on this section */
  main > section.partners-sec { padding-top: 84px; padding-bottom: 70px; }
  .become { margin-top: 14px; }
  .partners-sec .p-grid { padding-bottom: 4px !important; }
  .tickets .lede { display: none; }
  .pt-bar { margin: 10px 0 8px; }
  .pt-pack b { font-size: 14px; }
  .pt-badge { margin-bottom: 3px !important; padding: 2px 8px; }
  .pt-chip { padding: 3px 4px; margin-bottom: 3px; font-size: 10px; }
  .pt-price { font-size: 16px; }
  .pt .pt-corner { padding: 10px 12px; font-size: 16px; }
  .pt tbody td, .pt tbody th { padding-top: 2px; padding-bottom: 2px; }
  .pt-buy td { padding: 6px 4px; }

  .shopx { margin-top: 16px; }
  .shopx__body { margin-top: 14px; }
  .shopx__grid { gap: 12px; }
  .pcard__img { aspect-ratio: 5 / 4; }
  .pcard b { margin-top: 8px; }
  .pcard a { padding-bottom: 10px; }
  .shopx__hint { margin-top: 8px; }

  /* Partners have their own screen again: bigger cards, logos and text; arrows outside the cards */
  .partners-sec .partners__head .label { display: inline-flex; }
  .partners-sec .partners__head h2 { font-size: clamp(30px, min(3.8vw, 5.4vh), 56px); }
  .partners-sec .p-carousel { padding: 0 58px; }
  .partners-sec .p-arrow { top: 42%; width: 46px; height: 46px; }
  .partners-sec .p-arrow--prev { left: 0; }
  .partners-sec .p-arrow--next { right: 0; }
  .partners-sec .p-grid > li { flex: 0 0 clamp(250px, 21vw, 320px); }
  .partners-sec .p-grid .p-card { padding: 18px 22px 22px; border-radius: 10px; }
  .partners-sec .p-grid .p-logo { height: clamp(120px, 19vh, 170px); margin: -18px -22px 16px; padding: 16px; }
  .partners-sec .p-grid .p-logo img { max-height: calc(clamp(120px, 19vh, 170px) - 32px); }
  .partners-sec .p-grid .p-logo--mono span { font-size: 40px; }
  .partners-sec .p-grid .p-card small { font-size: 12px; }
  .partners-sec .p-grid .p-card b { font-size: 19px; margin: 10px 0 6px; }
  .partners-sec .p-grid .p-card span { font-size: 15px; }
  .partners-sec .partners__head { margin-bottom: 26px; }

  .whisky > div { columns: 2; column-gap: 40px; }
  .whisky > div > .label, .whisky > div > h3, .whisky__lead { column-span: all; }
  .whisky__notes, .whisky__options, .whisky > div > a { break-inside: avoid; }
  .whisky p { font-size: 15px; }
}
/* Gauntlet: tall portrait course map in the middle, text + obstacle list left, details right */
@media (min-width: 1021px) and (min-height: 620px) {
  .course .wrap { display: grid; grid-template-columns: minmax(0, 1fr) auto clamp(320px, 26vw, 420px); grid-template-rows: auto minmax(0, 1fr); column-gap: 28px; row-gap: 18px; height: var(--scr); }
  .course__head { grid-column: 1; grid-row: 1; display: block; margin: 0; }
  .course__head .lede { max-width: none; }
  .course__head .chips { margin-top: 14px; }
  .course__body, .course .map { display: contents; }
  .course .map svg { grid-column: 2; grid-row: 1 / span 2; height: 100%; width: auto; aspect-ratio: 470 / 770; border: 1px solid var(--line); border-radius: 12px; }
  .course .ob-legend { grid-column: 1; grid-row: 2; align-self: start; overflow: auto; max-height: 100%; padding: 0; }
  .course .ob-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .course .panel { grid-column: 3; grid-row: 1 / span 2; height: 100%; min-height: 0; display: flex; flex-direction: column; }
  .pin .dot { r: 13px; } .pin .ring { r: 19px; } .pin.is-active .dot, .pin:hover .dot { r: 16px; }
  .pin text { font-size: 15px; } .pin .km { font-size: 14px; stroke-width: 5px; }
}
/* Launch doors: the coming-soon page IS the closed doors (countdown to 14 Nov 20:00); the home page opens them */
.doors { display: none; position: fixed; inset: 0; z-index: 10000; perspective: 2400px; overflow: hidden; background: #0a0907; --seal: min(34vmin, 270px); }
html.doors-on, html.doors-on body { overflow: hidden; }
html.doors-on .doors { display: block; }
.doors.is-open { background: transparent; pointer-events: none; }
.doors__leaf { --hl: 100%; position: absolute; z-index: 0; top: 0; bottom: 0; width: 50.1%; overflow: hidden; backface-visibility: hidden; transition: transform 1.8s cubic-bezier(.62,0,.26,1), opacity .6s; background: radial-gradient(90% 60% at var(--hl) 50%, rgba(201,162,108,.13), transparent 65%), repeating-linear-gradient(45deg, rgba(177,138,87,.07) 0 1px, transparent 1px 26px), repeating-linear-gradient(-45deg, rgba(177,138,87,.07) 0 1px, transparent 1px 26px), linear-gradient(180deg, #17120c 0%, #0a0907 55%, #130f0a 100%); }
/* --pl / --pr: panel margins; wider on the seam side so the two films stay apart */
.doors { --pt: 5vh; --pb: max(8vh, 60px); }
.doors__leaf--l { --pl: 4vw; --pr: max(7vw, 34px); left: 0; transform-origin: 0 50%; }
.doors__leaf--r { --hl: 0%; --pl: max(7vw, 34px); --pr: 4vw; right: 0; transform-origin: 100% 50%; }
.doors__leaf::before, .doors__leaf::after, .doors__film { position: absolute; border-radius: 50% 50% 0 0 / 16% 16% 0 0; pointer-events: none; }
.doors__leaf::before, .doors__leaf::after { content: ""; z-index: 2; border: 1px solid rgba(201,162,108,.55); }
.doors__leaf::before { inset: var(--pt) var(--pr) var(--pb) var(--pl); }
.doors__leaf::after { inset: calc(var(--pt) + 12px) calc(var(--pr) + 12px) calc(var(--pb) + 12px) calc(var(--pl) + 12px); border-color: rgba(201,162,108,.25); }
/* Film in each door: the Gauntlet on the left, Horizon on the right */
.doors__film { z-index: 1; inset: calc(var(--pt) + 12px) calc(var(--pr) + 12px) calc(var(--pb) + 12px) calc(var(--pl) + 12px); overflow: hidden; background: #0a0907; }
/* Fully opaque so the still never shows through the moving film; the dimming lives in ::after */
.doors__film video, .doors__film img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.doors__film video { opacity: 0; transition: opacity 1.2s; }
.doors__film video.is-ready { opacity: 1; }
.doors__film::after { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(10,9,7,.24), rgba(10,9,7,.24)), linear-gradient(var(--fade), rgba(10,9,7,0) 30%, rgba(10,9,7,.9) 85%, #0a0907), linear-gradient(180deg, rgba(10,9,7,.15), rgba(10,9,7,0) 40%, rgba(10,9,7,.7)); }
/* Caption in each door, changing with the film: tells the journey */
.doors__cap { position: absolute; z-index: 2; left: 8%; right: 8%; bottom: 24px; margin: 0; display: flex; align-items: center; justify-content: center; gap: 14px; text-align: left; text-shadow: 0 2px 10px rgba(0,0,0,.9); transition: opacity .45s, transform .45s; }
.doors__cap.is-out { opacity: 0; transform: translateY(6px); }
.doors__cap i { flex: none; padding-right: 14px; border-right: 1px solid rgba(201,162,108,.7); font: 400 46px/1 'Bebas Neue', var(--sans); font-style: normal; color: #f1e6cf; text-shadow: 0 0 24px rgba(201,162,108,.55), 0 2px 10px rgba(0,0,0,.9); }
.doors__cap b { display: block; color: var(--gold-hi); font: 700 11px/1.4 var(--sans); letter-spacing: .26em; text-transform: uppercase; }
.doors__cap em { display: block; margin-top: 3px; color: #ece5d8; font: 500 15px/1.35 var(--serif); font-style: normal; letter-spacing: .02em; }
@media (max-width: 900px) { .doors__cap { left: 4%; right: 4%; bottom: 12px; gap: 8px; } .doors__cap i { font-size: 30px; padding-right: 8px; } .doors__cap b { font-size: 9px; letter-spacing: .14em; } .doors__cap em { display: none; } }
.doors__leaf--l .doors__film { --fade: 90deg; }
.doors__leaf--r .doors__film { --fade: 270deg; }
/* Seam line + studs, with a clean gap where the title, seal and countdown sit */
.doors__studs { --gap-a: calc(50% - var(--seal) / 2 - 150px); --gap-b: calc(50% + var(--seal) / 2 + 150px); position: absolute; z-index: 3; top: 0; bottom: calc(var(--pb) - 14px); width: 24px; opacity: .8; -webkit-mask-image: linear-gradient(#000 calc(var(--gap-a) - 30px), transparent var(--gap-a), transparent var(--gap-b), #000 calc(var(--gap-b) + 30px)); mask-image: linear-gradient(#000 calc(var(--gap-a) - 30px), transparent var(--gap-a), transparent var(--gap-b), #000 calc(var(--gap-b) + 30px)); }
.doors__leaf--l .doors__studs { right: 0; background: linear-gradient(to left, rgba(201,162,108,.9) 0 1px, transparent 1px), radial-gradient(circle, #d9b780 0 2px, #7a5c36 2.6px 3.6px, transparent 4.2px) 0 0 / 16px 34px repeat-y; }
.doors__leaf--r .doors__studs { left: 0; background: linear-gradient(to right, rgba(201,162,108,.9) 0 1px, transparent 1px), radial-gradient(circle, #d9b780 0 2px, #7a5c36 2.6px 3.6px, transparent 4.2px) 8px 0 / 16px 34px repeat-y; }
.doors__seal { position: absolute; z-index: 4; top: 50%; width: var(--seal); height: var(--seal); max-width: none; margin-top: calc(var(--seal) / -2); filter: drop-shadow(0 8px 26px rgba(0,0,0,.7)) brightness(.95); transition: filter .9s; }
.doors__leaf--l .doors__seal { right: calc(var(--seal) / -2); }
.doors__leaf--r .doors__seal { left: calc(var(--seal) / -2); }
.doors__shade { position: absolute; inset: 0; background: radial-gradient(circle at 50% 50%, rgba(10,9,7,0) calc(var(--seal) / 2 + 20px), rgba(10,9,7,.6) calc(var(--seal) / 2 + 70px), rgba(10,9,7,.3) 34vmax, rgba(10,9,7,0) 55vmax); pointer-events: none; transition: opacity .5s; }
.doors__ring { position: absolute; left: 50%; top: 50%; width: calc(var(--seal) + 34px); height: calc(var(--seal) + 34px); transform: translate(-50%, -50%); border-radius: 50%; border: 1px solid rgba(201,162,108,.85); pointer-events: none; transition: opacity .4s, transform 1.1s cubic-bezier(.5,0,.2,1); }
.doors__ring::before { content: ""; position: absolute; inset: -9px; border-radius: 50%; border: 1px dashed rgba(201,162,108,.45); }
.doors__ring::after { content: ""; position: absolute; left: 50%; top: -5px; width: 9px; height: 9px; margin-left: -4.5px; background: var(--gold-hi); transform: rotate(45deg); }
.doors__glow { position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; margin-left: -1px; background: linear-gradient(transparent, #ffe2a6 18%, #fff7e0 50%, #ffe2a6 82%, transparent); box-shadow: 0 0 22px 5px rgba(255,214,150,.55), 0 0 90px 30px rgba(255,196,110,.22); transform: scaleY(0); opacity: 0; transition: transform .7s cubic-bezier(.3,0,.2,1), opacity .4s; pointer-events: none; }
.doors__bloom { position: absolute; inset: 0; background: radial-gradient(60% 70% at 50% 50%, rgba(255,236,196,.85), rgba(255,206,130,.25) 45%, transparent 75%); opacity: 0; pointer-events: none; }
.doors__line, .doors__below, .doors__foot { position: absolute; left: 16px; right: 16px; margin: 0; text-align: center; text-shadow: 0 2px 12px rgba(0,0,0,.85), 0 1px 3px rgba(0,0,0,.7); transition: opacity .5s; }
.doors__line { top: calc(50% - var(--seal) / 2 - 52px); transform: translateY(-100%); pointer-events: none; }
.doors__title { display: block; font: 600 clamp(24px, 3.3vw, 46px)/1.12 var(--serif); letter-spacing: .07em; text-transform: uppercase; color: #e8c88f; background: linear-gradient(180deg, #f6e3b8 0%, #d9b06c 48%, #a8783d 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; text-shadow: none; filter: drop-shadow(0 2px 10px rgba(0,0,0,.85)); }
.doors__kick { display: block; margin-top: 10px; color: #d8d0c3; font: 700 12px/1.4 var(--sans); letter-spacing: .34em; text-transform: uppercase; }
.doors__below { top: calc(50% + var(--seal) / 2 + 30px); pointer-events: none; }
.doors__cd { display: flex; justify-content: center; gap: 4px; }
.doors__cd div { min-width: 78px; padding: 0 10px; border-left: 1px solid rgba(216,208,195,.2); }
.doors__cd div:first-child { border-left: 0; }
.doors__cd b { display: block; font: 400 clamp(34px, 6vmin, 58px)/1 'Bebas Neue', var(--sans); color: #f1e6cf; font-variant-numeric: tabular-nums; }
.doors__cd span { display: block; margin-top: 6px; color: var(--gold); font: 700 10px/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; }
.doors__date { margin: 16px 0 0; color: #d8d0c3; font: 600 12px/1.5 var(--sans); letter-spacing: .16em; text-transform: uppercase; }
.doors__date b { color: var(--gold-hi); font-weight: 700; }
.doors__foot { bottom: max(14px, 2.2vh); color: #a39e95; font: 600 11px/1.6 var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.doors__foot a { color: var(--gold-hi); text-decoration: none; margin: 0 8px; }
.doors__foot a:hover { color: #f1e6cf; }
.doors__count { position: absolute; left: 0; right: 0; top: calc(50% + var(--seal) / 2 + 30px); text-align: center; font: 400 clamp(84px, 17vmin, 160px)/1 'Bebas Neue', var(--sans); color: #fff3d6; text-shadow: 0 0 40px rgba(232,190,120,.65); font-variant-numeric: tabular-nums; pointer-events: none; }
.doors__count:empty { display: none; }
.doors.is-final .doors__below { opacity: 0; }
.doors__count.is-tick { animation: doorTick 1s cubic-bezier(.2,.7,.2,1); }
@keyframes doorTick { 0% { transform: scale(1.35); opacity: .35; } 35% { opacity: 1; } 100% { transform: scale(1); } }
.doors.is-final .doors__ring { animation: ringPulse 1s ease-out infinite; }
@keyframes ringPulse { 0% { box-shadow: 0 0 0 0 rgba(232,190,120,.45); } 100% { box-shadow: 0 0 0 26px rgba(232,190,120,0); } }
.doors.is-unlocking .doors__ring, .doors.is-unlocked .doors__ring { transform: translate(-50%, -50%) rotate(90deg); }
.doors.is-unlocking .doors__seal, .doors.is-unlocked .doors__seal { filter: drop-shadow(0 0 28px rgba(232,190,120,.55)) brightness(1.12); }
.doors.is-light .doors__glow { transform: scaleY(1); opacity: 1; }
.doors.is-open .doors__leaf { opacity: 0; transition: transform 1.8s cubic-bezier(.62,0,.26,1), opacity .8s .9s; }
.doors.is-open .doors__leaf--l { transform: rotateY(100deg); }
.doors.is-open .doors__leaf--r { transform: rotateY(-100deg); }
.doors.is-open .doors__ring, .doors.is-open .doors__line, .doors.is-open .doors__below, .doors.is-open .doors__foot, .doors.is-open .doors__count, .doors.is-open .doors__glow, .doors.is-open .doors__shade { opacity: 0; transition: opacity .4s; }
.doors.is-open .doors__bloom { animation: doorBloom 1.6s ease-out both; }
@keyframes doorBloom { 0% { opacity: 0; } 25% { opacity: 1; } 100% { opacity: 0; } }
@media (max-width: 600px) {
  .doors__cd div { min-width: 0; padding: 0 9px; }
  .doors__date, .doors__foot { letter-spacing: .1em; }
  .doors__foot span { display: block; }
  .doors { --pb: 104px; }
  .doors__title { font-size: clamp(22px, 7vw, 30px); }
}
@media (max-height: 560px) {
  .doors { --seal: min(26vmin, 200px); --pb: 44px; }
  .doors__line { top: calc(50% - var(--seal) / 2 - 38px); }
  .doors__title { font-size: 22px; }
  .doors__kick { margin-top: 4px; }
  .doors__below { top: calc(50% + var(--seal) / 2 + 14px); }
  .doors__date, .doors__foot span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .doors__leaf, .doors__ring, .doors__glow { transition: opacity .6s !important; }
  .doors.is-open .doors__leaf--l, .doors.is-open .doors__leaf--r { transform: none; opacity: 0; }
  .doors.is-unlocking .doors__ring, .doors.is-unlocked .doors__ring { transform: translate(-50%, -50%); }
  .doors.is-open .doors__bloom, .doors__count.is-tick, .doors.is-final .doors__ring { animation: none; }
}
