/* Bespoke Estate · page styles
   The engine (scrollcraft.css) is untouched. Everything here is this page. */

/* ================================================================ LOOK ===
   Stone palette. Two display faces for review: Marcellus (default, upright,
   no italic) and Bodoni Moda. Launch keeps one and drops the other family. */
:root,
html[data-look] {
  --sc-canvas: #EFEAE3;  --sc-surface: #FBF8F4;
  --sc-ink: #1D1915;     --sc-ink-soft: #5C5248;
  --sc-accent: #8E3920;  --sc-accent-ink: #FFF8F2;
  --sc-font-text: "Manrope", system-ui, sans-serif;
  --be-lead: 1.04;
  --be-mark-case: uppercase; --be-mark-track: 0.22em; --be-mark-size: 0.95rem;
  --be-sky: #E8E3DC;
}
:root,
html[data-look="marcellus"] {
  --sc-font-display: "Marcellus", "Trajan Pro", "Times New Roman", serif;
  --be-dw: 400; --be-dtrack: 0; --be-dscale: 0.96;
  --be-em-style: normal; --be-em-color: #E6CF9F;
}
html[data-look="bodoni"] {
  --sc-font-display: "Bodoni Moda", "Didot", serif;
  --be-dw: 500; --be-dtrack: -0.02em; --be-dscale: 1;
  --be-em-style: normal; --be-em-color: #E6CF9F;
}

/* Light canvas: invert the edge light, halve the shadows (worlds.md). */
:root {
  --sc-shadow-color: 30 12% 25%;
  --sc-e1: 0 1px 2px hsl(var(--sc-shadow-color) / 0.10), 0 1px 1px hsl(var(--sc-shadow-color) / 0.06);
  --sc-e2: 0 2px 4px hsl(var(--sc-shadow-color) / 0.08), 0 8px 18px hsl(var(--sc-shadow-color) / 0.08);
  --sc-e3: 0 4px 8px hsl(var(--sc-shadow-color) / 0.08), 0 22px 48px hsl(var(--sc-shadow-color) / 0.14);
  --sc-edge: inset 0 1px 0 rgb(255 255 255 / 0.7);
  --be-r: 10px;
  --be-r-lg: 18px;
  --be-r-sm: 6px;
  --be-err: #A1261B;
  --bar-h: 76px;
}

body { background: var(--sc-canvas); }
[hidden] { display: none !important; }
.sc-grain { display: none; }

/* ============================================================ TYPE ====== */
.display {
  font-family: var(--sc-font-display);
  font-weight: var(--be-dw);
  letter-spacing: var(--be-dtrack);
  line-height: var(--be-lead);
  text-wrap: balance;
  margin: 0;
  color: var(--sc-ink);
}
.display em { font-style: var(--be-em-style); color: var(--be-em-color); }
.display--lg { font-size: calc(var(--sc-t-3xl) * var(--be-dscale)); }
.display--md { font-size: calc(var(--sc-t-2xl) * var(--be-dscale)); line-height: calc(var(--be-lead) + 0.04); }
.lede { font-size: var(--sc-t-lg); line-height: 1.5; color: var(--sc-ink); max-width: 34ch; margin: 0; text-wrap: pretty; }
.body { color: var(--sc-ink-soft); max-width: 58ch; margin: 0; text-wrap: pretty; }
.tag {
  display: inline-flex; align-items: center; height: 1.45rem; padding: 0 0.5rem;
  font-size: 0.7rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--sc-ink-soft); border: 1px solid var(--sc-hairline-strong); border-radius: var(--be-r-sm);
  white-space: nowrap;
}

/* ============================================================ BUTTONS === */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  min-height: 48px; padding: 0 1.35rem;
  font-family: var(--sc-font-text); font-size: 0.95rem; font-weight: 600; letter-spacing: 0.01em;
  text-decoration: none; white-space: nowrap; cursor: pointer;
  border-radius: var(--be-r); border: 1px solid transparent;
  transition: background-color 160ms var(--sc-ease-out), color 160ms var(--sc-ease-out),
              border-color 160ms var(--sc-ease-out), transform 120ms var(--sc-ease-out);
}
.btn:active { transform: scale(0.97); }
.btn--solid { background: var(--sc-accent); color: var(--sc-accent-ink); }
.btn--line { background: color-mix(in oklab, var(--sc-surface) 55%, transparent); color: var(--sc-ink); border-color: color-mix(in oklab, var(--sc-ink) 35%, transparent); }
.btn--wide { width: 100%; }
.btn:disabled { opacity: 0.55; cursor: progress; }
@media (hover: hover) and (pointer: fine) {
  .btn--solid:hover { background: color-mix(in oklab, var(--sc-accent) 86%, var(--sc-ink)); }
  .btn--line:hover { border-color: var(--sc-ink); background: var(--sc-surface); }
}

.skip { position: fixed; left: 1rem; top: -4rem; z-index: 100; background: var(--sc-ink); color: var(--sc-canvas); padding: 0.6rem 1rem; border-radius: var(--be-r); }
.skip:focus { top: 1rem; }

/* ============================================================ CHROME ==== */
.bar {
  position: fixed; inset: 0 0 auto 0; z-index: var(--sc-z-chrome);
  height: var(--bar-h); padding-inline: var(--sc-gutter);
  display: flex; align-items: center; justify-content: space-between;
  transition: background-color 240ms var(--sc-ease-out), box-shadow 240ms var(--sc-ease-out);
}
.bar--solid { background: color-mix(in oklab, var(--sc-canvas) 94%, transparent); box-shadow: 0 1px 0 var(--sc-hairline); }
.mark { text-decoration: none; color: var(--sc-ink); font-family: var(--sc-font-display); font-weight: var(--be-dw);
  font-size: var(--be-mark-size); letter-spacing: var(--be-mark-track); text-transform: var(--be-mark-case); line-height: 1; }
.mark__e { color: var(--sc-ink-soft); }
.bar__end { display: flex; align-items: center; gap: 0.75rem; }
.bar__cta { min-height: 42px; padding: 0 1.1rem; font-size: 0.88rem; }
.bar__menu { display: none; min-height: 42px; padding: 0 1rem; background: var(--sc-surface); border: 1px solid var(--sc-hairline-strong); border-radius: var(--be-r); font-weight: 600; font-size: 0.88rem; cursor: pointer; }

/* Binder tabs on the right margin: the dossier's own index. */
.tabs {
  position: fixed; right: 0; top: 50%; translate: 0 -50%; z-index: var(--sc-z-chrome);
  display: flex; flex-direction: column; gap: 6px;
}
.tabs a {
  writing-mode: vertical-rl; rotate: 180deg;
  padding: 0.95rem 0.5rem; min-width: 34px;
  font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none;
  color: var(--sc-ink-soft); background: var(--sc-surface);
  border: 1px solid var(--sc-hairline-strong); border-left: 0;
  border-radius: 0 var(--be-r) var(--be-r) 0;
  box-shadow: var(--sc-e1);
  transition: color 160ms var(--sc-ease-out), background-color 160ms var(--sc-ease-out), translate 200ms var(--sc-ease-out);
}
.tabs a[aria-current="true"] { color: var(--sc-accent-ink); background: var(--sc-accent); border-color: var(--sc-accent); translate: -3px 0; }
@media (hover: hover) and (pointer: fine) { .tabs a:hover { color: var(--sc-ink); translate: -3px 0; } }

.sheet { position: fixed; inset: var(--bar-h) 0 auto 0; z-index: 59; background: var(--sc-canvas); box-shadow: var(--sc-e3); padding: 0.5rem var(--sc-gutter) 1.25rem; }
.sheet nav { display: grid; }
.sheet a { padding: 0.95rem 0; border-bottom: 1px solid var(--sc-hairline); text-decoration: none; font-family: var(--sc-font-display); font-size: 1.5rem; font-weight: var(--be-dw); }

/* Review-only look switcher */
.look {
  position: fixed; left: 1rem; bottom: 1rem; z-index: var(--sc-z-chrome);
  display: flex; align-items: center; gap: 2px; padding: 4px;
  background: var(--sc-surface); border: 1px solid var(--sc-hairline-strong); border-radius: 14px; box-shadow: var(--sc-e2);
  font-size: 0.78rem;
}
.look__label { padding: 0 0.6rem 0 0.45rem; color: var(--sc-ink-soft); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; font-size: 0.66rem; }
.look button { min-height: 32px; padding: 0 0.7rem; border: 0; border-radius: 10px; background: transparent; cursor: pointer; font-weight: 600; color: var(--sc-ink-soft); }
.look button[aria-pressed="true"] { background: var(--sc-ink); color: var(--sc-canvas); }

/* ============================================================ 1 HERO ==== */
.hero { --ivory: #F6F0E5; --ivory-soft: #D9D2C6; }
.hero__stage { background: #0B1424; isolation: isolate; }
.pl { position: absolute; max-width: none; pointer-events: none; will-change: transform; }
.pl--scene {
  inset: 0; z-index: 1; transform-origin: 66% 70%;
  transform: translate3d(calc(var(--mx, 0) * -7px), calc(var(--my, 0) * -6px - var(--sc-p, 0) * 2%), 0) scale(calc(1.025 + var(--sc-p, 0) * 0.1));
  container-type: size;
}
/* The stage covers the hero like object-fit: cover, anchored at --ox / 60%. */
.scene__stage {
  --ox: 0;
  position: absolute; overflow: hidden;
  width: max(100cqw, 177.778cqh); height: max(56.25cqw, 100cqh);
  left: calc((100cqw - max(100cqw, 177.778cqh)) * var(--ox));
  top: calc((100cqh - max(56.25cqw, 100cqh)) * 0.6);
}
.scene__stage > * { position: absolute; display: block; }
.scene__base { inset: 0; width: 100%; height: 100%; }
/* Plate pixels to percent: x/19.2, y/10.8. The car img is the no-JS / reduced-motion fallback. */
.scene__car { left: 25%; top: 69.1667%; width: 16.9271%; height: auto; }
.scene__cv  { inset: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 300ms linear; }
.scene__stage.is-live .scene__cv { opacity: 1; }
.scene__stage.is-live .scene__car { visibility: hidden; }
/* Falling star: above the veil so it reads, placed by script in the open sky */
.hero__star { position: absolute; z-index: 5; left: 0; top: 0; width: 0; height: 2px; opacity: 0;
  pointer-events: none; transform-origin: 100% 50%; border-radius: 2px;
  background: linear-gradient(90deg, rgb(255 250 236 / 0), rgb(255 250 236 / 0.3) 60%, rgb(255 252 244 / 0.75));
  filter: drop-shadow(0 0 2px rgb(255 244 214 / 0.45)); height: 1.5px; }
.hero__star::after { content: ""; position: absolute; right: -2px; top: -2px; width: 6px; height: 6px; border-radius: 50%;
  background: #FFFDF6; box-shadow: 0 0 5px 1px rgb(255 240 200 / 0.45); width: 3px; height: 3px; top: -1px; right: -1px; }
  70%  { opacity: 0.85; transform: rotate(-152deg) translateX(-150%) scaleX(1); }
  100% { opacity: 0; transform: rotate(-152deg) translateX(-230%) scaleX(0.6); }
}
.hero__veil {
  position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background:
    radial-gradient(62% 82% at 16% 48%, rgb(8 14 26 / 0.8), rgb(8 14 26 / 0.45) 52%, transparent 76%),
    linear-gradient(to bottom, rgb(8 14 26 / 0.45), transparent 30%);
}
.hero__copy {
  position: absolute; z-index: 4;
  left: var(--sc-gutter); top: clamp(6.5rem, 18svh, 11rem);
  max-width: min(36rem, 38vw); color: var(--ivory);
}
.hero__h1 { font-size: calc(clamp(2.7rem, 1.2rem + 4.2vw, 5.6rem) * var(--be-dscale)); max-width: 15ch; color: var(--ivory); }
.hero__sub { margin: 1.25rem 0 0; font-size: var(--sc-t-lg); line-height: 1.45; color: var(--ivory-soft); max-width: 36ch; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }
.btn--ivory { background: var(--ivory); color: #0E1522; }
.btn--ghost { background: rgb(8 14 26 / 0.25); color: var(--ivory); border-color: rgb(246 240 229 / 0.55); }
@media (hover: hover) and (pointer: fine) {
  .btn--ivory:hover { background: #FFFFFF; }
  .btn--ghost:hover { border-color: var(--ivory); background: rgb(8 14 26 / 0.45); }
}

.pl--glow {
  z-index: 6; inset: 0; pointer-events: none; mix-blend-mode: screen;
  background: radial-gradient(20vw 14vw at 74% 52%, rgb(255 196 120 / 0.12), transparent 70%);
  opacity: calc(0.7 + var(--sc-p, 0) * 0.3);
}
.hero__floor {
  position: absolute; inset: auto 0 0 0; height: 30svh; z-index: 8; pointer-events: none;
  background: linear-gradient(to top, var(--sc-canvas) 0%, color-mix(in oklab, var(--sc-canvas) 70%, transparent) 30%, transparent 100%);
  opacity: calc(var(--sc-p, 0) * 1.25 - 0.25);
}
.hero__beat {
  position: absolute; z-index: 9; left: var(--sc-gutter); top: clamp(7.5rem, 22svh, 12rem);
  margin: 0; max-width: 22ch;
  font-family: var(--sc-font-display); font-weight: var(--be-dw); letter-spacing: var(--be-dtrack);
  font-size: calc(var(--sc-t-2xl) * var(--be-dscale)); line-height: 1.1; color: var(--ivory);
}
/* Over the hero the bar's ink flips to ivory */
.bar:not(.bar--solid) .mark, .bar:not(.bar--solid) .mark__e { color: #F6F0E5; }
.bar:not(.bar--solid) .mark__e { opacity: 0.75; }

/* ============================================================ 2 MANDATE = */
.mandate { padding-top: clamp(3rem, 6vw, 6rem); }
.mandate__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2.5rem, 7vw, 8rem); align-items: center; }
.mandate__text > .lede { margin-top: var(--sc-6); }
.tenets { margin: var(--sc-8) 0 0; display: grid; }
.tenets > div { display: grid; grid-template-columns: 13rem 1fr; gap: 1.5rem; padding: 1.25rem 0; border-top: 1px solid var(--sc-hairline-strong); }
.tenets > div:last-child { border-bottom: 1px solid var(--sc-hairline-strong); }
.tenets dt { font-family: var(--sc-font-display); font-weight: var(--be-dw); font-size: calc(1.3rem * var(--be-dscale)); letter-spacing: var(--be-dtrack); line-height: 1.2; }
.tenets dd { margin: 0; color: var(--sc-ink-soft); }
.mandate__fig { margin: 0; }
.mandate__fig :is(img, video) { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--be-r-lg); background: #0B1424; }

/* ============================================================ 3+4 PEAK == */
.peak__stage { background: #0B1424; }
.peak__amb { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 2;
  opacity: 0; transition: opacity 600ms linear; pointer-events: none; }
.peak__amb.is-on { opacity: 1; }
.peak__plate {
  position: absolute; z-index: 20;
  left: var(--sc-gutter); bottom: clamp(1.75rem, 7svh, 4.5rem);
  width: min(31rem, calc(100vw - 2 * var(--sc-gutter)));
}
.plate {
  background: var(--sc-surface); color: var(--sc-ink);
  border-radius: var(--be-r-lg); padding: clamp(1.25rem, 2.2vw, 2rem);
  box-shadow: var(--sc-e3), var(--sc-edge);
}
.plate__kicker { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 0.9rem;
  font-size: 0.75rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sc-ink-soft); }
.plate__facts { margin: 0.7rem 0 0; color: var(--sc-ink-soft); font-size: 0.95rem; }
.plate__price { background: var(--sc-surface); display: grid; grid-template-columns: 1.4fr 1fr; gap: 1rem; margin-top: 1.25rem; padding-top: 1.1rem; border-top: 1px solid var(--sc-hairline-strong); }
.plate__price > div { display: grid; gap: 0.15rem; }
.plate__lbl { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--sc-ink-soft); }
.plate__num { font-family: var(--sc-font-display); font-weight: var(--be-dw); letter-spacing: var(--be-dtrack); font-size: calc(clamp(1.7rem, 1.2rem + 1.5vw, 2.35rem) * var(--be-dscale)); line-height: 1.05; font-variant-numeric: tabular-nums lining-nums; }
.plate__num--sm { font-size: calc(clamp(1.3rem, 1rem + 0.9vw, 1.7rem) * var(--be-dscale)); }
.plate__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.4rem; }

/* ============================================================ 4b ADDRESSES */
.addr__stage { display: flex; align-items: center; background: #0D1524; color: #F6F0E5; }
.addr .display { color: #F6F0E5; }
.addr__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 6rem); align-items: center; padding-top: var(--bar-h); }
.addr__list { list-style: none; margin: clamp(1.25rem, 3svh, 2.5rem) 0 0; padding: 0; display: grid; }
.addr__list button {
  all: unset; cursor: pointer; display: grid; grid-template-columns: minmax(7.5rem, auto) 1fr; gap: 1rem; align-items: baseline;
  width: 100%; padding: clamp(0.45rem, 1.1svh, 0.75rem) 0; border-top: 1px solid rgb(246 240 229 / 0.14);
  color: rgb(246 240 229 / 0.5); transition: color 220ms var(--sc-ease-out);
}
.addr__list li:last-child button { border-bottom: 1px solid rgb(246 240 229 / 0.14); }
.addr__name { font-family: var(--sc-font-display); font-weight: var(--be-dw); letter-spacing: var(--be-dtrack); font-size: calc(clamp(1.25rem, 1rem + 0.8vw, 1.7rem) * var(--be-dscale)); line-height: 1.15; }
.addr__desc { font-size: 0.86rem; }
.addr__list button[aria-current="true"] { color: #F6F0E5; }
.addr__list button[aria-current="true"] .addr__name { color: #E9C987; }
.addr__list button:focus-visible { outline: 2px solid #E9C987; outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) { .addr__list button:hover { color: rgb(246 240 229 / 0.85); } }
.addr__frame { position: relative; margin: 0; transform: translateZ(0); contain: paint; aspect-ratio: 16 / 10; max-height: 72svh; width: 100%; border-radius: var(--be-r-lg); overflow: hidden; background: #0B1424; box-shadow: 0 30px 80px rgb(0 0 0 / 0.45); }
.addr__v { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 600ms linear; backface-visibility: hidden; }
.addr__v[data-on] { opacity: 1; }
.addr__cap { position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; padding: 3.5rem 1.4rem 1.1rem; background: linear-gradient(to top, rgb(8 14 26 / 0.78), transparent); font-size: 0.85rem; color: rgb(246 240 229 / 0.82); }
#addr-cap-name { font-family: var(--sc-font-display); font-weight: var(--be-dw); font-size: calc(1.4rem * var(--be-dscale)); color: #F6F0E5; }
@media (prefers-reduced-motion: reduce) { .addr__v { transition: opacity 200ms linear; } }

/* ============================================================ 5 COLLECTION */
.collection { background: var(--sc-surface); }
.col__head { display: grid; gap: var(--sc-4); margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.col__head .lede { margin-top: var(--sc-2); }
.col__note { margin: 0; display: flex; gap: 0.6rem; align-items: center; color: var(--sc-ink-soft); font-size: 0.9rem; flex-wrap: wrap; }

.dial { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.dial__map { margin: 0; position: relative; background: var(--sc-canvas); border-radius: var(--be-r-lg); padding: clamp(0.75rem, 2vw, 1.75rem); border: 1px solid var(--sc-hairline); }
#map { width: 100%; height: auto; display: block; overflow: visible; }
.map-land { fill: none; stroke: color-mix(in oklab, var(--sc-ink) 24%, transparent); stroke-width: 3.3; stroke-linecap: round; }
.pin { cursor: pointer; }
.pin__dot { fill: var(--sc-canvas); stroke: color-mix(in oklab, var(--sc-ink) 45%, transparent); stroke-width: 2; transition: fill 220ms var(--sc-ease-out), stroke 220ms var(--sc-ease-out); }
.pin__ring { fill: none; stroke: var(--sc-accent); stroke-width: 1.5; opacity: 0; transform-box: fill-box; transform-origin: center; scale: 0.6; transition: opacity 260ms var(--sc-ease-out), scale 320ms var(--sc-ease-out); }
.pin__hit { fill: transparent; }
.pin.is-on .pin__dot { fill: var(--sc-accent); stroke: var(--sc-surface); stroke-width: 2.5; }
.pin.is-on .pin__ring { opacity: 0.55; scale: 1; }
.pin.is-hot .pin__ring { opacity: 1; scale: 1.25; }
.pin:focus-visible { outline: none; }
.pin:focus-visible .pin__ring { opacity: 1; stroke-width: 2.5; scale: 1.3; }
.pin-tip {
  position: absolute; z-index: 3; pointer-events: none; translate: -50% calc(-100% - 18px);
  background: var(--sc-ink); color: var(--sc-canvas); padding: 0.45rem 0.7rem; border-radius: var(--be-r);
  font-size: 0.8rem; line-height: 1.3; white-space: nowrap; box-shadow: var(--sc-e2);
}
.pin-tip b { font-weight: 600; }

.dial__controls { display: grid; gap: 2rem; align-content: center; }
.chips { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.chips legend, .ticket__lbl { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sc-ink-soft); margin-bottom: 0.8rem; padding: 0; }
.chips label { position: relative; }
.chips input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.chips span { display: inline-flex; align-items: center; min-height: 40px; padding: 0 1rem; border-radius: var(--be-r);
  border: 1px solid var(--sc-hairline-strong); font-size: 0.9rem; font-weight: 600; color: var(--sc-ink-soft);
  transition: background-color 160ms var(--sc-ease-out), color 160ms var(--sc-ease-out), border-color 160ms var(--sc-ease-out); }
.chips input:checked + span { background: var(--sc-ink); color: var(--sc-canvas); border-color: var(--sc-ink); }
.chips input:focus-visible + span { outline: 2px solid var(--sc-accent); outline-offset: 3px; }
@media (hover: hover) and (pointer: fine) { .chips label:hover span { border-color: var(--sc-ink); color: var(--sc-ink); } .chips label:hover input:checked + span { color: var(--sc-canvas); } }

.ticket__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.ticket__out { font-family: var(--sc-font-display); font-weight: var(--be-dw); letter-spacing: var(--be-dtrack); font-size: calc(var(--sc-t-xl) * var(--be-dscale)); line-height: 1.1; font-variant-numeric: tabular-nums lining-nums; }
.ticket__track { position: relative; height: 44px; margin-top: 1rem; --a: 0; --b: 1; }
.ticket__rail { position: absolute; left: 11px; right: 11px; top: 50%; height: 3px; translate: 0 -50%; background: var(--sc-hairline-strong); border-radius: 2px; }
.ticket__fill { position: absolute; top: 0; bottom: 0; left: calc(var(--a) * 100%); right: calc((1 - var(--b)) * 100%); background: var(--sc-accent); border-radius: 2px; }
.ticket__track input[type="range"] {
  position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; background: none;
  -webkit-appearance: none; appearance: none; pointer-events: none;
}
.ticket__track input[type="range"]::-webkit-slider-runnable-track { background: none; height: 44px; }
.ticket__track input[type="range"]::-moz-range-track { background: none; }
.ticket__track input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none; pointer-events: auto; width: 24px; height: 24px; margin-top: 10px; border-radius: 50%;
  background: var(--sc-surface); border: 2px solid var(--sc-accent); box-shadow: var(--sc-e2); cursor: grab;
}
.ticket__track input[type="range"]::-moz-range-thumb {
  pointer-events: auto; width: 20px; height: 20px; border-radius: 50%;
  background: var(--sc-surface); border: 2px solid var(--sc-accent); box-shadow: var(--sc-e2); cursor: grab;
}
.ticket__track input[type="range"]:focus-visible { outline: none; }
.ticket__track input[type="range"]:focus-visible::-webkit-slider-thumb { outline: 2px solid var(--sc-accent); outline-offset: 3px; }
.ticket__track input[type="range"]:focus-visible::-moz-range-thumb { outline: 2px solid var(--sc-accent); outline-offset: 3px; }
.ticket__bands { position: relative; height: 1.2rem; margin: 0.2rem 11px 0; font-size: 0.75rem; color: var(--sc-ink-soft); font-variant-numeric: tabular-nums; }
.ticket__bands span { position: absolute; left: calc(var(--t) * 100%); translate: -50% 0; white-space: nowrap; }
.ticket__bands span:first-child { translate: 0 0; }
.ticket__bands span:last-child { translate: -100% 0; }
.ticket__quick { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 1.1rem; }
.ticket__quick button { min-height: 36px; padding: 0 0.8rem; border: 1px solid var(--sc-hairline); background: transparent; border-radius: var(--be-r); font-size: 0.84rem; font-weight: 600; color: var(--sc-ink-soft); cursor: pointer; transition: border-color 160ms var(--sc-ease-out), color 160ms var(--sc-ease-out); }
@media (hover: hover) and (pointer: fine) { .ticket__quick button:hover { border-color: var(--sc-ink); color: var(--sc-ink); } }

/* Ledger: one schema for every asset */
.ledger { margin-top: clamp(2.5rem, 5vw, 4.5rem); }
.ledger__row { display: grid; grid-template-columns: 9.5rem minmax(0, 2.2fr) minmax(0, 1.4fr) minmax(0, 1.5fr) 9rem 10.5rem; gap: 1.25rem; align-items: center; }
.ledger__row--head { padding: 0 0 0.75rem; border-bottom: 1px solid var(--sc-ink); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sc-ink-soft); }
.ledger__list { list-style: none; margin: 0; padding: 0; }
.ledger__list > li { border-bottom: 1px solid var(--sc-hairline-strong); }
.ledger__list > li[hidden] { display: none; }
.ledger__list .ledger__row { padding: 1rem 0; transition: background-color 160ms var(--sc-ease-out); }
.ledger__list > li.is-hot .ledger__row { background: color-mix(in oklab, var(--sc-canvas) 70%, transparent); }
.lr__ref { display: flex; align-items: center; gap: 0.9rem; }
.lr__thumb { width: 4.25rem; height: 3rem; object-fit: cover; border-radius: var(--be-r-sm); flex: none; }
.lr__code { font-size: 0.8rem; font-weight: 600; letter-spacing: 0.06em; color: var(--sc-ink-soft); font-variant-numeric: tabular-nums; }
.lr__name { all: unset; cursor: pointer; display: grid; gap: 0.1rem; }
.lr__name strong { font-family: var(--sc-font-display); font-weight: var(--be-dw); letter-spacing: var(--be-dtrack); font-size: calc(1.3rem * var(--be-dscale)); line-height: 1.15; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 0.2em; text-decoration-thickness: 1px; transition: text-decoration-color 160ms var(--sc-ease-out); }
.lr__name span { font-size: 0.82rem; color: var(--sc-ink-soft); text-transform: capitalize; }
.lr__name:focus-visible { outline: 2px solid var(--sc-accent); outline-offset: 4px; border-radius: 2px; }
@media (hover: hover) and (pointer: fine) { .lr__name:hover strong { text-decoration-color: currentColor; } }
.lr__loc, .lr__size { font-size: 0.92rem; color: var(--sc-ink-soft); }
.lr__loc b { display: block; color: var(--sc-ink); font-weight: 500; }
.num { text-align: right; }
.lr__price { font-family: var(--sc-font-display); font-weight: var(--be-dw); letter-spacing: var(--be-dtrack); font-size: calc(1.3rem * var(--be-dscale)); text-align: right; font-variant-numeric: tabular-nums lining-nums; white-space: nowrap; }
.lr__cta { justify-self: end; min-height: 42px; font-size: 0.86rem; padding: 0 1rem; }
.ledger__empty { padding: 2.5rem 0; display: grid; gap: 0.75rem; justify-items: start; }
.ledger__empty p:first-child { font-family: var(--sc-font-display); font-size: calc(var(--sc-t-xl) * var(--be-dscale)); margin: 0; }

/* ============================================================ 6 ACCESS == */
.access__stage { display: flex; align-items: center; background: var(--sc-canvas); }
.access__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 7rem); align-items: center; padding-top: var(--bar-h); }
.steps { list-style: none; margin: clamp(1.5rem, 3.5svh, 2.75rem) 0 0; padding: 0; display: grid; gap: clamp(0.9rem, 2.4svh, 1.6rem); }
.steps li { display: grid; grid-template-columns: 2.5rem 1fr; gap: 1rem; align-items: start; }
.steps__n { font-family: var(--sc-font-display); font-weight: var(--be-dw); font-size: calc(1.9rem * var(--be-dscale)); line-height: 1; color: var(--sc-accent); font-variant-numeric: lining-nums; }
.steps h3 { margin: 0; font-size: var(--sc-t-lg); font-weight: 600; line-height: 1.25; }
.steps p { margin: 0.2rem 0 0; color: var(--sc-ink-soft); max-width: 38ch; }

.dossier { background: var(--sc-surface); border-radius: var(--be-r-lg); padding: clamp(1.4rem, 3vw, 2.5rem); box-shadow: var(--sc-e3), var(--sc-edge); }
.dossier__head { display: flex; justify-content: space-between; gap: 1rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sc-ink-soft); }
.dossier__state { color: var(--sc-accent); }
.dossier__title { margin: 0.8rem 0 1.2rem; font-family: var(--sc-font-display); font-weight: var(--be-dw); letter-spacing: var(--be-dtrack); font-size: calc(var(--sc-t-xl) * var(--be-dscale)); line-height: 1.15; }
.dossier__lines { margin: 0; display: grid; }
.dossier__lines > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 1rem; padding: 0.72rem 0; border-top: 1px solid var(--sc-hairline); font-size: 0.95rem; }
.dossier__lines dt { color: var(--sc-ink-soft); }
.dossier__lines dd { margin: 0; position: relative; font-weight: 500; }
.redact {
  --k: clamp(0, (var(--sc-p, 0) - var(--at, 2)) * 9, 1);
  position: absolute; left: 0; right: 0; top: 0.12em; height: 1.2em;
  background: var(--sc-ink); border-radius: 4px;
  transform-origin: 100% 50%; transform: scaleX(calc(1 - var(--k)));
}
.rel {
  --k: clamp(0, (var(--sc-p, 0) - var(--at, 2)) * 9, 1);
  color: var(--sc-accent); font-weight: 600; opacity: var(--k);
}

/* ============================================================ 7 ENQUIRE = */
.enquire { padding-bottom: 0; }
.enquire__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 6vw, 7rem); align-items: start; }
.enquire__intro .lede { margin-top: var(--sc-6); }
.enquire__intro { position: sticky; top: calc(var(--bar-h) + 2rem); }

.sheet-form { background: var(--sc-surface); border: 1px solid var(--sc-hairline); border-radius: var(--be-r-lg); padding: clamp(1.4rem, 3.2vw, 2.75rem); box-shadow: var(--sc-e2); display: grid; gap: 1.4rem; }
.sheet-form__head { margin: 0; display: flex; justify-content: space-between; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sc-ink-soft); padding-bottom: 1rem; border-bottom: 1px solid var(--sc-ink); }
.field { display: grid; gap: 0.35rem; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
.field label { font-size: 0.74rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--sc-ink-soft); }
.opt { text-transform: none; letter-spacing: 0; font-weight: 500; opacity: 0.8; margin-left: 0.3rem; }
.field input, .field textarea {
  width: 100%; border: 0; border-bottom: 1px solid color-mix(in oklab, var(--sc-ink) 40%, transparent); border-radius: 0;
  background: transparent; padding: 0.55rem 0 0.6rem; font-size: 1.05rem; line-height: 1.4; color: var(--sc-ink);
  transition: border-color 160ms var(--sc-ease-out), box-shadow 160ms var(--sc-ease-out);
}
.field textarea { resize: vertical; min-height: 6.5rem; }
.field input::placeholder, .field textarea::placeholder { color: color-mix(in oklab, var(--sc-ink-soft) 80%, transparent); }
.field input:focus, .field textarea:focus { outline: none; border-bottom-color: var(--sc-accent); box-shadow: 0 1px 0 var(--sc-accent); }
.field input[aria-invalid="true"] { border-bottom-color: var(--be-err); box-shadow: 0 1px 0 var(--be-err); }
.field__err { margin: 0; color: var(--be-err); font-size: 0.85rem; }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.consent { display: grid; grid-template-columns: auto 1fr; gap: 0.75rem; align-items: start; font-size: 0.9rem; color: var(--sc-ink-soft); }
.consent input { width: 1.15rem; height: 1.15rem; margin: 0.15rem 0 0; }
.sheet-form__foot { display: grid; gap: 0.9rem; }
.form-status { margin: 0; min-height: 1.4em; font-size: 0.95rem; }
.form-status.is-ok { color: var(--sc-accent); font-weight: 600; }
.form-status.is-err { color: var(--be-err); }
.selection { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.9rem; padding: 0.8rem 1rem; background: var(--sc-canvas); border-radius: var(--be-r); font-size: 0.92rem; }
.selection__lbl { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sc-ink-soft); }
.selection__val { font-weight: 600; flex: 1; min-width: 12rem; }
.selection__clear { border: 0; background: none; color: var(--sc-ink-soft); text-decoration: underline; text-underline-offset: 0.2em; cursor: pointer; font-size: 0.85rem; min-height: 32px; }

.foot { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem 2.5rem; align-items: baseline; margin-top: clamp(4rem, 8vw, 7rem); padding-block: 2rem 2.5rem; border-top: 1px solid var(--sc-hairline-strong); font-size: 0.9rem; color: var(--sc-ink-soft); }
.foot p { margin: 0; }
.foot__mark { font-family: var(--sc-font-display); font-weight: var(--be-dw); font-size: calc(1.2rem * var(--be-dscale)); letter-spacing: var(--be-mark-track); text-transform: var(--be-mark-case); color: var(--sc-ink); }
.foot__privacy summary { cursor: pointer; font-weight: 600; color: var(--sc-ink); }
.foot__privacy p { max-width: 50ch; margin-top: 0.6rem; }
.foot__small { grid-column: 1 / -1; font-size: 0.8rem; }

/* ============================================================ DRAWER ==== */
.drawer {
  margin: 0 0 0 auto; padding: 0; border: 0; height: 100dvh; max-height: 100dvh; width: min(44rem, 100vw); max-width: 100vw;
  background: var(--sc-surface); color: var(--sc-ink); box-shadow: var(--sc-e3);
  border-radius: var(--be-r-lg) 0 0 var(--be-r-lg); overflow: hidden;
}
.drawer::backdrop { background: color-mix(in oklab, var(--sc-ink) 38%, transparent); }
.drawer[open] { animation: drawer-in 360ms var(--sc-ease-drawer); }
@keyframes drawer-in { from { transform: translateX(6%); opacity: 0; } to { transform: none; opacity: 1; } }
.drawer__inner { position: relative; }
.drawer__close { position: absolute; top: 1rem; right: 1rem; z-index: 2; min-height: 40px; padding: 0 0.9rem; background: var(--sc-surface); border: 1px solid var(--sc-hairline-strong); border-radius: var(--be-r); font-weight: 600; cursor: pointer; }
.drawer__fig { margin: 0; }
.drawer__fig img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.drawer__body { padding: clamp(1.4rem, 4vw, 2.75rem); display: grid; gap: 1.25rem; }
.drawer__body .plate__kicker { margin: 0; }
.terms { margin: 0; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--sc-ink); }
.terms > div { padding: 0.8rem 0; border-bottom: 1px solid var(--sc-hairline); display: grid; gap: 0.15rem; }
.terms > div:nth-child(odd) { padding-right: 1rem; }
.terms dt { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--sc-ink-soft); }
.terms dd { margin: 0; font-weight: 500; }
.terms dd.big { font-family: var(--sc-font-display); font-weight: var(--be-dw); font-size: calc(1.6rem * var(--be-dscale)); letter-spacing: var(--be-dtrack); font-variant-numeric: tabular-nums lining-nums; }
.drawer__sub { margin: 0.5rem 0 0; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sc-ink-soft); }
.nda { list-style: none; margin: 0; padding: 0; display: grid; }
.nda li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; padding: 0.65rem 0; border-bottom: 1px solid var(--sc-hairline); align-items: center; font-size: 0.95rem; }
.nda li i { display: block; height: 1.05em; background: var(--sc-ink); border-radius: 4px; }

/* ============================================================ LAYOUT BREAKS */
@media (max-width: 1180px) {
  .tabs { display: none; }
  .ledger__row { grid-template-columns: 8.5rem minmax(0, 2fr) minmax(0, 1.3fr) 8rem 9.5rem; }
  .lr__size, .ledger__row--head span:nth-child(4) { display: none; }
}
@media (max-width: 960px) {
  .mandate__grid, .dial, .access__grid, .enquire__grid { grid-template-columns: 1fr; }
  .mandate__fig { max-width: 30rem; }
  .enquire__intro { position: static; }
  .dossier { padding: 1.25rem; }
}
@media (max-width: 860px) {
  :root { --bar-h: 64px; }
  .bar__cta { display: none; }
  .bar__menu { display: inline-flex; align-items: center; }
  .ledger__row--head { display: none; }
  .ledger__list .ledger__row { grid-template-columns: 6.5rem 1fr; grid-template-areas: "ref name" "ref loc" "price cta"; gap: 0.35rem 1rem; padding: 1.1rem 0; }
  .lr__ref { grid-area: ref; flex-direction: column; align-items: start; gap: 0.4rem; }
  .lr__thumb { width: 6.5rem; height: 4.4rem; }
  .ledger__list .lr__name { grid-area: name; }
  .lr__loc { grid-area: loc; }
  .lr__price { grid-area: price; text-align: left; margin-top: 0.6rem; }
  .lr__cta { grid-area: cta; margin-top: 0.6rem; }
  .tenets > div { grid-template-columns: 1fr; gap: 0.3rem; }
  .field-row { grid-template-columns: 1fr; }
  .foot { grid-template-columns: 1fr; }
  .access__grid { gap: 1.25rem; }
  .access__steps .display--lg { font-size: calc(var(--sc-t-2xl) * var(--be-dscale)); }
  .steps { margin-top: 1rem; gap: 0.6rem; }
  .steps p { font-size: 0.9rem; }
  .steps h3 { font-size: 1.05rem; }
  .dossier__lines > div { padding: 0.45rem 0; font-size: 0.86rem; }
  .dossier__title { margin: 0.5rem 0 0.6rem; font-size: 1.25rem; }
  .dossier__lines > div:nth-child(-n+2) { display: none; }
  .look { left: 0.5rem; bottom: 0.5rem; }
  .look__label { display: none; }
}
@media (max-width: 760px) {
  .hero__copy { top: calc(var(--bar-h) + 1.4rem); max-width: none; right: var(--sc-gutter); }
  .hero__h1 { font-size: calc(clamp(2.3rem, 1.4rem + 4.6vw, 3.2rem) * var(--be-dscale)); }
  .hero__sub { font-size: 1rem; margin-top: 0.8rem; }
  .hero__actions { margin-top: 1.3rem; }
  .hero__actions .btn { min-height: 46px; padding: 0 1.05rem; }
  .hero__veil { background: linear-gradient(to bottom, rgb(8 14 26 / 0.86) 0%, rgb(8 14 26 / 0.72) 34%, rgb(8 14 26 / 0.3) 52%, transparent 64%); }
  .scene__stage { --ox: 0.78; }
  .hero__beat { font-size: 1.6rem; max-width: 18ch; top: calc(var(--bar-h) + 1.4rem); }
  .peak__plate { bottom: 1rem; }
  .plate__actions .btn { flex: 1 1 auto; }
  .addr__grid { grid-template-columns: 1fr; gap: 1rem; }
  .addr__side .display--lg { font-size: calc(var(--sc-t-2xl) * var(--be-dscale)); }
  .addr__list { margin-top: 0.75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }
  .addr__list button { grid-template-columns: 1fr; gap: 0; padding: 0.4rem 0; }
  .addr__desc { display: none; }
  .addr__frame { aspect-ratio: 4 / 3; order: -1; }
  .addr__cap { padding: 2.5rem 1rem 0.8rem; }
  #addr-cap-desc { display: none; }
}

/* ============================================================ MOTION OFF */
@media (prefers-reduced-motion: reduce) {
  .pl { transform: none !important; }
  .hero__star { display: none; }
  .drawer[open] { animation: none; }
}

/* Numbers set in the display face: proportional figures read better at size,
   and Bodoni's display optical size turns commas into hairline dots. */
.plate__num, .lr__price, .ticket__out, .terms dd.big { font-variant-numeric: lining-nums proportional-nums; }
html[data-look="bodoni"] :is(.plate__num, .lr__price, .ticket__out, .terms dd.big) { font-optical-sizing: none; font-variation-settings: "opsz" 18; }

/* Hero type per look: muted emphasis must stay legible on the night plate,
   and Bodoni's wide set needs a smaller size to hold two lines. */
.hero__h1 { font-size: clamp(2.2rem, 1rem + 3.1vw, 4.4rem); }
html[data-look="marcellus"] .hero__h1 { line-height: 1.08; letter-spacing: -0.005em; }

/* ===================================================== MEDITERRANEAN ==== */
.medc__side .display--lg { font-size: calc(var(--sc-t-2xl) * 1.15 * var(--be-dscale)); }
.med, .tech { --ivory: #F6F0E5; --ivory-soft: #D9D2C6; }
.display--xl { font-size: calc(clamp(2.5rem, 1.2rem + 3.6vw, 4.8rem) * var(--be-dscale)); line-height: 1.04; }
.kicker { margin: 0 0 1rem; font-size: 0.74rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--sc-ink-soft); }
.kicker--light { color: #E6CF9F; }
.lede--light { color: var(--ivory-soft); max-width: 40ch; }

.med__hero { position: relative; min-height: 100svh; display: flex; align-items: flex-end; overflow: hidden; background: #1B2430; color: var(--ivory); }
.med__film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.med__veil { position: absolute; inset: 0; background:
  radial-gradient(70% 90% at 18% 62%, rgb(10 16 24 / 0.62), rgb(10 16 24 / 0.2) 60%, transparent 80%),
  linear-gradient(to top, rgb(10 16 24 / 0.86) 0%, rgb(10 16 24 / 0.55) 42%, rgb(10 16 24 / 0.12) 70%, rgb(10 16 24 / 0.25) 100%); }
.med__copy { position: relative; padding-top: calc(var(--bar-h) + 3rem); padding-bottom: clamp(2.5rem, 8svh, 5rem); }
.med__copy .display { color: var(--ivory); max-width: 18ch; }
.med__copy .lede { margin-top: 1.1rem; }
.med__motto { margin: 0.9rem 0 0; font-family: var(--sc-font-display); font-size: calc(clamp(1.2rem, 0.95rem + 0.8vw, 1.7rem) * var(--be-dscale)); line-height: 1.25; color: #E6CF9F; max-width: 30ch; }
.med__stats { margin: clamp(1.6rem, 4svh, 2.6rem) 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 15rem)); gap: clamp(1rem, 3vw, 2.5rem); }
.med__stats div { border-top: 1px solid rgb(246 240 229 / 0.3); padding-top: 0.8rem; }
.med__stats dt { font-family: var(--sc-font-display); font-size: calc(clamp(2rem, 1.4rem + 1.6vw, 3rem) * var(--be-dscale)); line-height: 1; color: var(--ivory); font-variant-numeric: lining-nums; }
.med__stats dd { margin: 0.45rem 0 0; font-size: 0.92rem; line-height: 1.4; color: var(--ivory-soft); }
.med__copy .hero__actions { margin-top: clamp(1.6rem, 4svh, 2.4rem); }
.med__src { margin: 1.2rem 0 0; font-size: 0.74rem; color: rgb(246 240 229 / 0.6); max-width: 70ch; }

.medc__stage { display: flex; align-items: center; background: var(--sc-canvas); }
.medc__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; padding-top: var(--bar-h); }
.medc__list { list-style: none; margin: clamp(1rem, 3svh, 2rem) 0 0; padding: 0; }
.medc__list button { width: 100%; display: grid; grid-template-columns: 2.4rem 1fr; align-items: baseline; gap: 0.4rem; padding: 0.7rem 0;
  border: 0; border-top: 1px solid var(--sc-hairline); background: none; text-align: left; cursor: pointer; color: var(--sc-ink-soft); font: inherit; }
.medc__list li:last-child button { border-bottom: 1px solid var(--sc-hairline); }
.medc__n { font-size: 0.78rem; font-variant-numeric: tabular-nums; }
.medc__name { font-family: var(--sc-font-display); font-size: calc(clamp(1.2rem, 1rem + 0.7vw, 1.6rem) * var(--be-dscale)); line-height: 1.15; }
.medc__list button[aria-current="true"] { color: var(--sc-ink); }
.medc__list button[aria-current="true"] .medc__n { color: var(--sc-accent); }
.medc__list button:focus-visible, .medc__chips button:focus-visible, .deals .chips button:focus-visible { outline: 2px solid var(--sc-accent); outline-offset: 3px; }
.medc__region { margin-top: clamp(1.2rem, 3svh, 2rem); }
.medc__rlbl { display: block; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--sc-ink-soft); margin-bottom: 0.6rem; }
.medc__chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.medc__chips button, .deals .chips button { min-height: 36px; padding: 0 0.85rem; border-radius: var(--be-r); border: 1px solid color-mix(in oklab, var(--sc-ink) 22%, transparent);
  background: transparent; color: var(--sc-ink); font: inherit; font-size: 0.86rem; cursor: pointer; }
.medc__chips button[aria-pressed="true"] { background: var(--sc-ink); color: var(--sc-canvas); border-color: var(--sc-ink); }
.medc__rnote { margin: 0.7rem 0 0; font-size: 0.9rem; color: var(--sc-ink-soft); max-width: 38ch; min-height: 2.6em; }
.medc__main { display: grid; gap: 0.9rem; }
.medc__frame { position: relative; margin: 0; aspect-ratio: 16 / 9; max-height: 56svh; width: 100%; border-radius: var(--be-r-lg); overflow: hidden; background: #C9CFD3; box-shadow: var(--sc-e3); transform: translateZ(0); contain: paint; }
.medc__v { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 700ms linear; }
.medc__v[data-on] { opacity: 1; }
.medc__chip { position: absolute; left: 1rem; bottom: 1rem; padding: 0.35rem 0.7rem; border-radius: var(--be-r-sm); background: rgb(10 16 24 / 0.55); color: #F6F0E5; font-size: 0.8rem; backdrop-filter: blur(6px); }
.medc__card { display: grid; grid-template-columns: 1fr auto; gap: 0.4rem 1.5rem; align-items: center; padding: 1.1rem 1.3rem; border-radius: var(--be-r); background: var(--sc-surface); box-shadow: var(--sc-e2), var(--sc-edge); }
.medc__cardtop { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 1rem; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sc-ink-soft); }
.medc__ticket { color: var(--sc-accent); letter-spacing: 0.02em; }
.medc__line { margin: 0; font-size: 1rem; line-height: 1.45; max-width: 52ch; }
.medc__card.is-swap .medc__line, .medc__card.is-swap .medc__cardtop { animation: medc-in 420ms var(--sc-ease-out) both; }
@keyframes medc-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.medc__fine { margin: 0; font-size: 0.76rem; color: var(--sc-ink-soft); }

/* ========================================================= TECHNOLOGY ==== */
.tech { background: #0E1218; color: var(--ivory); }
.tech .display { color: var(--ivory); }
.tech__intro { padding-block: clamp(5rem, 12svh, 9rem) clamp(2rem, 6svh, 4rem); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.tech__head .lede { margin-top: 1.1rem; }
.funnel { margin: 0; position: relative; }
.funnel__cv { display: block; width: 100%; height: auto; aspect-ratio: 10 / 3; }
.funnel__gates { list-style: none; margin: 0.4rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); font-size: 0.74rem; letter-spacing: 0.08em; text-transform: uppercase; color: rgb(246 240 229 / 0.62); }
.funnel__gates li:last-child { color: #E6CF9F; }
.funnel figcaption { margin-top: 1rem; font-family: var(--sc-font-display); font-size: calc(1.25rem * var(--be-dscale)); color: var(--ivory); }
.funnel__ill { font-family: var(--sc-font-text); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgb(246 240 229 / 0.5); margin-left: 0.4rem; }

.tag--dark { background: rgb(230 207 159 / 0.14); color: #E6CF9F; border-color: rgb(230 207 159 / 0.35); }

.deals { padding-block: clamp(3rem, 8svh, 6rem) clamp(4rem, 10svh, 7rem); }
.deals__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2rem; }
.deals .chips button { color: var(--ivory); border-color: rgb(246 240 229 / 0.3); }
.deals .chips button[aria-pressed="true"] { background: var(--ivory); color: #0E1218; border-color: var(--ivory); }
.deals__grid { list-style: none; margin: 1.6rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2rem; }
.deal { display: flex; flex-direction: column; border-radius: var(--be-r-lg); overflow: hidden; background: rgb(246 240 229 / 0.05); border: 1px solid rgb(246 240 229 / 0.12);
  transition: transform 260ms var(--sc-ease-out), border-color 260ms var(--sc-ease-out), opacity 260ms linear; }
.deal[hidden] { display: none !important; }
.deal img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.deal__body { padding: 1rem 1.1rem 1.15rem; display: flex; flex-direction: column; gap: 0.45rem; flex: 1; }
.deal__meta { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgb(246 240 229 / 0.6); }
.deal__name { font-family: var(--sc-font-display); font-size: calc(1.35rem * var(--be-dscale)); line-height: 1.15; margin: 0; color: var(--ivory); }
.deal__line { margin: 0; font-size: 0.9rem; line-height: 1.45; color: var(--ivory-soft); flex: 1; }
.deal__acts { display: flex; gap: 0.5rem; margin-top: 0.5rem; }
.deal__acts .btn { min-height: 40px; padding-inline: 0.9rem; font-size: 0.86rem; }
@media (hover: hover) { .deal:hover { transform: translateY(-4px); border-color: rgb(230 207 159 / 0.45); } }
.deals__legal { margin: 2rem 0 0; font-size: 0.78rem; line-height: 1.5; color: rgb(246 240 229 / 0.55); max-width: 80ch; }

@media (max-width: 860px) {
  .med__stats { grid-template-columns: 1fr; gap: 0.8rem; }
  .med__stats div { display: grid; grid-template-columns: 6.5rem 1fr; align-items: baseline; gap: 0.8rem; padding-top: 0.6rem; }
  .med__stats dd { margin: 0; }
  .medc__grid, .tech__intro { grid-template-columns: 1fr; gap: 1rem; }
  .medc__side .display--lg { font-size: calc(var(--sc-t-2xl) * var(--be-dscale)); }
  .medc__list { display: flex; flex-wrap: wrap; gap: 0.3rem 1rem; margin-top: 0.5rem; }
  .medc__list li { flex: 0 0 auto; }
  .medc__list button { border: 0 !important; padding: 0.2rem 0; grid-template-columns: auto auto; }
  .medc__list .medc__name { font-size: 1rem; }
  .medc__region { margin-top: 0.6rem; } .medc__rnote { display: none; } .medc__rlbl { display: none; }
  .medc__chips button { min-height: 32px; font-size: 0.78rem; padding: 0 0.6rem; }
  .medc__main { order: -1; }
  .medc__card { grid-template-columns: 1fr; padding: 0.9rem 1rem; }
  .medc__frame { max-height: 34svh; }
  .deals__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) { .deals__grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) {
}

/* ============================================ TECHNOLOGY: the film ===== */
.tfilm { position: relative; min-height: 100svh; display: flex; align-items: center; overflow: hidden; background: #05070B; color: var(--ivory); }
.tfilm__v { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tfilm__veil { position: absolute; inset: 0; background:
  radial-gradient(75% 95% at 15% 55%, rgb(4 6 10 / 0.86), rgb(4 6 10 / 0.45) 55%, rgb(4 6 10 / 0.1) 85%),
  linear-gradient(to top, rgb(4 6 10 / 0.7), transparent 40%); }
.tfilm__copy { position: relative; padding-top: calc(var(--bar-h) + 2.5rem); padding-bottom: clamp(2.5rem, 7svh, 4.5rem); }
.tfilm__h { margin: 0; font-family: var(--sc-font-display); font-weight: var(--be-dw); color: var(--ivory);
  font-size: calc(clamp(2.6rem, 1rem + 4.6vw, 6rem) * var(--be-dscale)); line-height: 1.02; letter-spacing: -0.01em; }
.tfilm__fixed { display: block; }
.tfilm__word { display: block; height: 1.08em; overflow: hidden; color: #E6CF9F; }
.tfilm__word > span { display: inline-block; }
.tfilm__word > span.is-out { animation: word-out 380ms cubic-bezier(0.5, 0, 0.75, 0) both; }
.tfilm__word > span.is-in { animation: word-in 620ms cubic-bezier(0.2, 0.8, 0.2, 1) both; }
@keyframes word-out { to { transform: translateY(-105%); opacity: 0; } }
@keyframes word-in { from { transform: translateY(105%); opacity: 0; filter: blur(6px); } to { transform: none; opacity: 1; filter: none; } }
.tfilm__lede { margin: 1.2rem 0 0; font-size: var(--sc-t-lg); line-height: 1.45; color: var(--ivory-soft); max-width: 36ch; }
.tfilm__cases { display: grid; grid-template-columns: repeat(2, minmax(0, 17rem)); gap: clamp(1rem, 3vw, 2.5rem); margin-top: clamp(1.6rem, 4svh, 2.6rem); }
.case { display: grid; gap: 0.35rem; padding: 0.9rem 1.1rem 1rem; border-radius: var(--be-r); background: rgb(246 240 229 / 0.06); border: 1px solid rgb(230 207 159 / 0.28); backdrop-filter: blur(8px); }
.case__lbl { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: rgb(246 240 229 / 0.65); }
.case__num { font-family: var(--sc-font-display); font-size: calc(clamp(2.2rem, 1.4rem + 2vw, 3.4rem) * var(--be-dscale)); line-height: 1; color: #E6CF9F; font-variant-numeric: tabular-nums lining-nums; }
.case__sub { font-size: 0.84rem; line-height: 1.4; color: var(--ivory-soft); }
.tfilm__copy .hero__actions { margin-top: clamp(1.4rem, 3.5svh, 2.2rem); }
.btn--glow { box-shadow: 0 0 0 0 rgb(230 207 159 / 0.55); animation: glow 2.8s ease-out infinite; }
@keyframes glow { 0% { box-shadow: 0 0 0 0 rgb(230 207 159 / 0.5); } 70%, 100% { box-shadow: 0 0 0 16px rgb(230 207 159 / 0); } }
.tfilm__src { margin: 1rem 0 0; font-size: 0.72rem; line-height: 1.45; color: rgb(246 240 229 / 0.55); max-width: 72ch; }
@media (max-width: 860px) {
  .tfilm { align-items: flex-end; }
  .tfilm__veil { background: linear-gradient(to top, rgb(4 6 10 / 0.92) 0%, rgb(4 6 10 / 0.7) 55%, rgb(4 6 10 / 0.25) 100%); }
  .tfilm__cases { grid-template-columns: 1fr 1fr; gap: 0.6rem; }
  .case { padding: 0.7rem 0.8rem; } .case__sub { font-size: 0.76rem; }
}
@media (prefers-reduced-motion: reduce) { .btn--glow { animation: none; } .tfilm__word > span { animation: none !important; } }

/* =================================== TECHNOLOGY: two separate pitches === */
.pitches__lead { padding-block: clamp(4rem, 10svh, 7rem) clamp(2rem, 5svh, 3rem); }
.pitches__lead .display { max-width: 18ch; }
.pitches__lead .lede { margin-top: 1rem; max-width: 46ch; }

.pitch { --acc: #7FD8FF; --acc-rgb: 127 216 255; --shade: 5 12 22; }
.pitch--stu { --acc: #E6CF9F; --acc-rgb: 230 207 159; --shade: 22 16 10; }
.pitch__stage { display: flex; align-items: center; overflow: hidden; background: rgb(var(--shade)); color: var(--ivory); }
.pitch__film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pitch__veil { position: absolute; inset: 0; pointer-events: none; background:
  linear-gradient(90deg, rgb(var(--shade) / 0.94) 0%, rgb(var(--shade) / 0.82) 30%, rgb(var(--shade) / 0.35) 52%, rgb(var(--shade) / 0) 68%),
  linear-gradient(to top, rgb(var(--shade) / 0.55), transparent 30%); }
.pitch--stu .pitch__veil { background:
  linear-gradient(90deg, rgb(var(--shade) / 0.95) 0%, rgb(var(--shade) / 0.88) 32%, rgb(var(--shade) / 0.45) 52%, rgb(var(--shade) / 0) 70%),
  linear-gradient(to top, rgb(var(--shade) / 0.5), transparent 30%); }
.pitch__grid { position: relative; width: 100%; padding-top: calc(var(--bar-h) + 1rem); padding-bottom: 3.5rem; }
.pitch__copy { max-width: 33rem; }
.pitch__no { display: flex; align-items: center; gap: 0.8rem; margin: 0 0 0.6rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: rgb(246 240 229 / 0.72); }
.pitch__no span { display: inline-grid; place-items: center; min-width: 2.4rem; height: 1.6rem; padding: 0 0.5rem; border-radius: 999px; border: 1px solid rgb(var(--acc-rgb) / 0.6); color: var(--acc); letter-spacing: 0.06em; }
.pitch__name { margin: 0; font-family: var(--sc-font-display); font-weight: var(--be-dw, 400); color: #FFF;
  font-size: calc(clamp(3rem, 1.2rem + 5.2vw, 6.4rem) * var(--be-dscale)); line-height: 0.98; letter-spacing: -0.01em; }
.pitch__tag { margin: 0.6rem 0 0; font-family: var(--sc-font-display); font-size: calc(clamp(1.3rem, 1rem + 0.9vw, 1.9rem) * var(--be-dscale)); line-height: 1.2; color: var(--acc); }
.pitch__rail { list-style: none; margin: clamp(1rem, 3svh, 1.8rem) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.6rem; }
.pitch__rail button { width: 100%; padding: 0.55rem 0 0; border: 0; border-top: 2px solid rgb(246 240 229 / 0.18); background: none; text-align: left; color: rgb(246 240 229 / 0.55);
  font: inherit; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; cursor: pointer; position: relative; }
.pitch__rail button::before { content: ""; position: absolute; left: 0; top: -2px; height: 2px; width: 0; background: var(--acc); transition: width 500ms var(--sc-ease-out); }
.pitch__rail button[aria-current="true"] { color: #FFF; }
.pitch__rail button[aria-current="true"]::before { width: 100%; }
.pitch__rail button:focus-visible { outline: 2px solid var(--acc); outline-offset: 3px; }
.pitch__beats { position: relative; display: grid; margin-top: clamp(0.9rem, 2.5svh, 1.4rem); min-height: 13.5rem; }
.pitch__beat { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity 420ms linear, transform 520ms var(--sc-ease-out), visibility 0s 520ms; }
.pitch__beat[data-on] { opacity: 1; visibility: visible; transform: none; transition: opacity 420ms linear 120ms, transform 620ms var(--sc-ease-out) 120ms, visibility 0s; }
.pitch__line { margin: 0; font-size: var(--sc-t-lg); line-height: 1.4; color: #FFF; }
.pitch__swap { display: inline-block; vertical-align: bottom; overflow: hidden; color: var(--acc); font-weight: 600; }
.pitch__swap > span { display: inline-block; }
.pitch__swap > span.is-out { animation: word-out 300ms cubic-bezier(0.5, 0, 0.75, 0) both; }
.pitch__swap > span.is-in { animation: word-in 520ms cubic-bezier(0.2, 0.8, 0.2, 1) both; }
.pitch__pts { list-style: none; margin: 0.9rem 0 0; padding: 0; display: grid; gap: 0.5rem; font-size: 0.98rem; line-height: 1.45; color: var(--ivory-soft); }
.pitch__pts li { position: relative; padding-left: 1.1rem; }
.pitch__pts li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 6px; height: 6px; border-radius: 50%; background: var(--acc); box-shadow: 0 0 10px rgb(var(--acc-rgb) / 0.8); }
.pitch__big { margin: 0 0 0.5rem; font-family: var(--sc-font-display); font-size: calc(clamp(1.7rem, 1.1rem + 1.6vw, 2.6rem) * var(--be-dscale)); line-height: 1.08; color: #FFF; }
.pitch__chips { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.45rem; }
.pitch__chips li { padding: 0.42rem 0.8rem; border-radius: 999px; font-size: 0.86rem; color: #FFF; background: rgb(var(--acc-rgb) / 0.12); border: 1px solid rgb(var(--acc-rgb) / 0.45);
  opacity: 0; transform: translateY(8px); transition: opacity 360ms linear, transform 460ms var(--sc-ease-out); }
.pitch__beat[data-on] .pitch__chips li { opacity: 1; transform: none; }
.pitch__beat[data-on] .pitch__chips li:nth-child(2) { transition-delay: 220ms; } .pitch__beat[data-on] .pitch__chips li:nth-child(3) { transition-delay: 300ms; }
.pitch__beat[data-on] .pitch__chips li:nth-child(4) { transition-delay: 380ms; } .pitch__beat[data-on] .pitch__chips li:nth-child(5) { transition-delay: 460ms; }
.pitch__beat[data-on] .pitch__chips li:nth-child(6) { transition-delay: 540ms; } .pitch__beat[data-on] .pitch__chips li:first-child { transition-delay: 140ms; }
.pitch__stats { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.8rem; }
.pitch__stats div { padding: 0.8rem 0.9rem 0.9rem; border-radius: var(--be-r); background: rgb(var(--shade) / 0.55); border: 1px solid rgb(var(--acc-rgb) / 0.3); backdrop-filter: blur(8px); }
.pitch__stats dt { font-family: var(--sc-font-display); font-size: calc(clamp(1.6rem, 1.1rem + 1.2vw, 2.4rem) * var(--be-dscale)); line-height: 1; color: var(--acc); font-variant-numeric: lining-nums; white-space: nowrap; }
.pitch__stats dd { margin: 0.45rem 0 0; font-size: 0.8rem; line-height: 1.38; color: var(--ivory-soft); }
.pitch__src { margin: 0.7rem 0 0; font-size: 0.7rem; color: rgb(246 240 229 / 0.55); }
.pitch__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 0.8rem; margin-top: clamp(1rem, 3svh, 1.6rem); }
.pitch__site { color: rgb(246 240 229 / 0.8); font-size: 0.9rem; text-decoration: underline; text-decoration-color: rgb(var(--acc-rgb) / 0.6); text-underline-offset: 4px; }
.pitch__site:hover { color: #FFF; }
.pitch .btn--glow { animation-name: glow-acc; }
@keyframes glow-acc { 0% { box-shadow: 0 0 0 0 rgb(var(--acc-rgb) / 0.5); } 70%, 100% { box-shadow: 0 0 0 16px rgb(var(--acc-rgb) / 0); } }
.pitch__hud { position: absolute; right: clamp(4.2rem, 5vw, 5rem); bottom: clamp(1rem, 4svh, 2.2rem); z-index: 1; margin: 0; display: flex; align-items: center; gap: 0.6rem;
  padding: 0.5rem 0.85rem; border-radius: 999px; background: rgb(var(--shade) / 0.66); border: 1px solid rgb(var(--acc-rgb) / 0.4); backdrop-filter: blur(8px);
  font-size: 0.8rem; letter-spacing: 0.04em; color: #FFF; }
.pitch__hud i { width: 8px; height: 8px; border-radius: 50%; background: var(--acc); box-shadow: 0 0 0 0 rgb(var(--acc-rgb) / 0.6); animation: hud 1.8s ease-out infinite; }
.pitch__hud b { font-weight: 500; color: rgb(246 240 229 / 0.6); font-variant-numeric: tabular-nums; }
.pitch__hud span.is-swap { animation: medc-in 420ms var(--sc-ease-out) both; }
@keyframes hud { 0% { box-shadow: 0 0 0 0 rgb(var(--acc-rgb) / 0.6); } 80%, 100% { box-shadow: 0 0 0 9px rgb(var(--acc-rgb) / 0); } }

@media (max-height: 780px) and (min-width: 861px) {
  .pitch__name { font-size: calc(clamp(2.6rem, 1rem + 4vw, 4.8rem) * var(--be-dscale)); }
  .pitch__pts li:nth-child(3) { display: none; }
  .pitch__beats { min-height: 11.5rem; }
}
@media (max-width: 860px) {
  .pitch__stage { align-items: flex-end; }
  .pitch__film { height: 46svh; }
  .pitch__veil, .pitch--stu .pitch__veil { background: linear-gradient(to bottom, transparent 0, transparent calc(46svh - 9rem), rgb(var(--shade)) 46svh); }
  .pitch__grid { padding-top: 0; padding-bottom: 4.2rem; }
  .pitch__hud { top: calc(var(--bar-h) + 0.6rem); bottom: auto; left: 1rem; right: auto; font-size: 0.72rem; padding: 0.35rem 0.7rem; }
  .pitch__no { font-size: 0.64rem; margin-bottom: 0.3rem; }
  .pitch__name { font-size: calc(2.6rem * var(--be-dscale)); }
  .pitch__tag { font-size: calc(1.15rem * var(--be-dscale)); margin-top: 0.3rem; }
  .pitch__rail { margin-top: 0.8rem; }
  .pitch__beats { margin-top: 0.7rem; min-height: 0; }
  .pitch__line { font-size: 0.98rem; }
  .pitch__pts { margin-top: 0.5rem; gap: 0.3rem; font-size: 0.86rem; }
  .pitch__pts li:nth-child(3) { display: none; }
  .pitch__big { font-size: calc(1.4rem * var(--be-dscale)); margin-bottom: 0.3rem; }
  .pitch__chips { margin-top: 0.6rem; gap: 0.3rem; } .pitch__chips li { font-size: 0.76rem; padding: 0.3rem 0.6rem; }
  .pitch__stats { gap: 0.4rem; } .pitch__stats div { padding: 0.55rem 0.6rem; }
  .pitch__stats dt { font-size: calc(1.25rem * var(--be-dscale)); } .pitch__stats dd { font-size: 0.7rem; }
  .pitch__acts { margin-top: 0.8rem; } .pitch__acts .btn { min-height: 42px; padding-inline: 0.9rem; font-size: 0.86rem; }
}
@media (max-width: 400px) { .pitch__site { display: none; } .pitch__stats dd { font-size: 0.66rem; } }
@media (prefers-reduced-motion: reduce) {
  .pitch__beat, .pitch__beat[data-on], .pitch__chips li { transition: none; }
  .pitch__hud i, .pitch .btn--glow { animation: none; }
}

/* ============================ TECHNOLOGY: two separate entities ========= */
.ent__bar { position: relative; z-index: 2; }
.ent__barin { display: flex; align-items: center; gap: 1rem 1.6rem; flex-wrap: wrap; padding-block: 1.1rem; }
.ent__logo { font-size: 1.15rem; letter-spacing: 0.02em; }
.ent__meta { font-size: 0.74rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.7; }
.ent__site { margin-left: auto; font-size: 0.88rem; text-underline-offset: 4px; }
.ent__k { margin: 0 0 0.8rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
.ent__h { margin: 0; font-family: var(--sc-font-display); font-weight: var(--be-dw, 400); font-size: calc(clamp(1.9rem, 1.1rem + 2.2vw, 3.2rem) * var(--be-dscale)); line-height: 1.06; max-width: 20ch; }
.ent__p { margin: 1rem 0 0; font-size: var(--sc-t-lg); line-height: 1.5; max-width: 44ch; }

/* --- Synopton: navy, cyan, instrument panel --- */
.ent--syn { --acc: #7FD8FF; --acc-rgb: 127 216 255; background: #050C16; color: #E8F4FF; }
.ent--syn .ent__bar { background: #050C16; border-top: 1px solid rgb(127 216 255 / 0.18); border-bottom: 1px solid rgb(127 216 255 / 0.18); }
.ent--syn .ent__logo { font-family: var(--sc-font-text); font-weight: 600; letter-spacing: 0.32em; text-transform: uppercase; color: #FFF; display: inline-flex; align-items: center; gap: 0.5rem; }
.ent--syn .ent__logo i { width: 8px; height: 8px; border-radius: 50%; background: var(--acc); box-shadow: 0 0 12px var(--acc); }
.ent--syn .ent__site { color: var(--acc); }
.ent--syn .ent__k { color: var(--acc); }
.ent--syn .ent__h { color: #FFF; }
.ent--syn .ent__p { color: #A9BCCF; }
.ent--syn .pitch__stage { background: #050C16; }

.syncam { padding-block: clamp(4rem, 10svh, 7rem); background: radial-gradient(80% 60% at 70% 40%, rgb(127 216 255 / 0.08), transparent 70%), #050C16; }
.syncam__grid { display: grid; grid-template-columns: 1fr; gap: clamp(1.6rem, 4svh, 2.6rem); }
.syncam__head { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); column-gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.syncam__head > :not(.syncam__feed) { grid-column: 1; }
.syncam__head .syncam__feed { grid-column: 2; grid-row: 1 / span 3; margin: 0; align-self: end; }
.syncam__wall { position: relative; margin: 0; border-radius: 14px; overflow: hidden; border: 1px solid rgb(127 216 255 / 0.25); box-shadow: 0 30px 90px rgb(0 0 0 / 0.55), 0 0 0 6px rgb(127 216 255 / 0.04); background: #000; }
.syncam__wall video { display: block; width: 100%; height: auto; aspect-ratio: 1440 / 540; object-fit: cover; }
.syncam__top { position: absolute; left: 50%; bottom: 0.8rem; transform: translateX(-50%); display: flex; gap: 1rem; align-items: center; padding: 0.4rem 0.9rem; border-radius: 999px; background: rgb(5 12 22 / 0.78); border: 1px solid rgb(127 216 255 / 0.3); font-size: 0.76rem; letter-spacing: 0.06em; color: #DDEBF7; font-variant-numeric: tabular-nums; white-space: nowrap; backdrop-filter: blur(6px); }
.syncam__live { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 700; text-transform: uppercase; color: #FF6B6F; }
.syncam__live i { width: 7px; height: 7px; border-radius: 50%; background: #E5484D; animation: hud 1.4s ease-out infinite; --acc-rgb: 229 72 77; }
.syncam__feed { list-style: none; margin: 1.6rem 0 0; padding: 0; display: grid; gap: 0.45rem; min-height: 10.5rem; }
.syncam__feed li { display: grid; grid-template-columns: 4.2rem 1fr; gap: 0.6rem; align-items: baseline; padding: 0.55rem 0.75rem; border-radius: 8px; background: rgb(127 216 255 / 0.06); border-left: 3px solid var(--tone, var(--acc)); font-size: 0.86rem; color: #DCE8F3; animation: feed-in 520ms var(--sc-ease-out) both; }
.syncam__feed li time { font-variant-numeric: tabular-nums; color: #7E93A8; font-size: 0.78rem; }
.syncam__feed li b { font-weight: 600; color: #FFF; }
@keyframes feed-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }

.inv { padding-block: clamp(4rem, 10svh, 7rem); }
.inv__head { margin-bottom: clamp(1.6rem, 4svh, 2.6rem); }
.inv__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.inv__card { margin: 0; padding: 1.3rem 1.4rem 1.2rem; border-radius: 16px; display: flex; flex-direction: column; gap: 0.8rem; }
.inv__lbl { margin: 0; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.inv__src { margin: auto 0 0; padding-top: 0.4rem; font-size: 0.7rem; line-height: 1.4; opacity: 0.6; }
.inv__big { margin: 0; font-family: var(--sc-font-display); font-size: calc(2.4rem * var(--be-dscale)); line-height: 1; }
.inv__big small { display: block; margin-top: 0.3rem; font-family: var(--sc-font-text); font-size: 0.82rem; opacity: 0.75; }
.bars { display: flex; align-items: flex-end; gap: 1rem; height: 11rem; }
.mbar { flex: 1; position: relative; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; }
.mbar::before { content: ""; display: block; height: calc(var(--v) * 7.5rem * var(--grow, 0)); min-height: 3px; border-radius: 8px 8px 2px 2px; background: currentColor; opacity: 0.35; transition: height 1400ms cubic-bezier(0.2, 0.8, 0.2, 1); }
.mbar--hot::before { opacity: 1; background: var(--acc); }
.mbar span { order: 2; margin-top: 0.4rem; font-size: 0.74rem; opacity: 0.7; }
.mbar b { position: absolute; left: 0; bottom: calc(var(--v) * 7.5rem * var(--grow, 0) + 1.9rem); font-weight: 600; font-size: 0.95rem; transition: bottom 1400ms cubic-bezier(0.2, 0.8, 0.2, 1); white-space: nowrap; }
[data-bars].is-on { --grow: 1; }
.bars--h { flex-direction: column; align-items: stretch; height: auto; gap: 0.7rem; }
.bars--h .mbar { height: auto; display: grid; grid-template-columns: 1fr auto; gap: 0.15rem 0.6rem; }
.bars--h .mbar::before { grid-column: 1 / -1; order: 3; height: 10px; width: calc(var(--v) * 100% * var(--grow, 0)); border-radius: 999px; transition: width 1400ms cubic-bezier(0.2, 0.8, 0.2, 1); }
.bars--h .mbar span { order: 1; margin: 0; } .bars--h .mbar b { order: 2; position: static; font-size: 0.9rem; }
.why { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.9rem; }
.why li { display: grid; gap: 0.15rem; }
.why b { font-family: var(--sc-font-display); font-weight: 400; font-size: calc(1.55rem * var(--be-dscale)); line-height: 1.1; color: var(--acc); }
.why span { font-size: 0.86rem; line-height: 1.4; opacity: 0.82; }
.sl { display: grid; gap: 0.45rem; font-size: 0.86rem; }
.sl span { display: flex; justify-content: space-between; gap: 1rem; }
.sl output { font-weight: 600; font-variant-numeric: tabular-nums; }
.sl input { width: 100%; accent-color: var(--acc); height: 28px; cursor: pointer; }
.calc__out { margin: 0.2rem 0 0; display: grid; }
.calc__out > output { font-family: var(--sc-font-display); font-size: calc(clamp(2.4rem, 1.6rem + 2vw, 3.4rem) * var(--be-dscale)); line-height: 1; color: var(--acc); font-variant-numeric: tabular-nums lining-nums; }
.calc__out small { margin-top: 0.35rem; font-size: 0.8rem; opacity: 0.75; }
.calc__ladder { margin: 0; display: grid; gap: 0.3rem; font-size: 0.76rem; }
.calc__ladder span { padding: 0.3rem 0.6rem; border-radius: 6px; border: 1px dashed currentColor; opacity: 0.7; }
.inv__acts { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: clamp(1.4rem, 3svh, 2rem); }
.inv--syn { background: linear-gradient(#050C16, #07111F); }
.inv--syn .inv__card { background: rgb(127 216 255 / 0.05); border: 1px solid rgb(127 216 255 / 0.18); color: #DCE8F3; }
.inv--syn .inv__lbl { color: var(--acc); }
.inv--syn .mbar { color: #7E93A8; }

/* --- Stueo: paper, ink, terracotta, editorial --- */
.ent--stu { --acc: #B4532A; --acc-rgb: 180 83 42; --paper: #F5F0E7; --ink: #241B14; background: var(--paper); color: var(--ink); }
.ent--stu .ent__bar { background: var(--paper); border-bottom: 1px solid rgb(36 27 20 / 0.12); }
.ent--stu .ent__logo { font-family: var(--sc-font-display); font-size: 1.7rem; letter-spacing: 0; text-transform: lowercase; color: var(--ink); }
.ent--stu .ent__logo::after { content: "."; color: var(--acc); }
.ent--stu .ent__site { color: var(--acc); }
.ent--stu .ent__k { color: var(--acc); }
.ent--stu .ent__h { color: var(--ink); }
.ent--stu .ent__p { color: #5E5248; }
.ent--stu .btn--solid { background: var(--acc); color: #FFF; }
.ent--stu .btn--line { color: var(--ink); border-color: rgb(36 27 20 / 0.35); background: transparent; }

/* Stueo pitch: light stage, framed film on the right */
.pitch--stu { --shade: 245 240 231; --acc: #B4532A; --acc-rgb: 180 83 42; }
.pitch--stu .pitch__stage { background: var(--paper); color: var(--ink); }
.pitch--stu .pitch__veil { display: block; background:
  linear-gradient(90deg, rgb(245 240 231 / 0.97) 0%, rgb(245 240 231 / 0.9) 30%, rgb(245 240 231 / 0.45) 50%, rgb(245 240 231 / 0) 66%),
  linear-gradient(to top, rgb(245 240 231 / 0.55), transparent 28%); }
.pitch--stu .pitch__copy { max-width: 33rem; }
.pitch--stu .pitch__no { color: #6E6157; }
.pitch--stu .pitch__name { color: var(--ink); }
.pitch--stu .pitch__line, .pitch--stu .pitch__big { color: var(--ink); }
.pitch--stu .pitch__pts { color: #5E5248; }
.pitch--stu .pitch__pts li::before { box-shadow: none; }
.pitch--stu .pitch__rail button { color: rgb(36 27 20 / 0.5); border-top-color: rgb(36 27 20 / 0.15); }
.pitch--stu .pitch__rail button[aria-current="true"] { color: var(--ink); }
.pitch--stu .pitch__chips li { color: var(--ink); background: rgb(180 83 42 / 0.08); }
.pitch--stu .pitch__stats div { background: #FFF; border-color: rgb(36 27 20 / 0.1); backdrop-filter: none; }
.pitch--stu .pitch__stats dd, .pitch--stu .pitch__src { color: #6E6157; }
.pitch--stu .pitch__site { color: var(--ink); }
.pitch--stu .pitch__hud { background: rgb(255 255 255 / 0.9); color: var(--ink); border-color: rgb(36 27 20 / 0.12); }
.pitch--stu .pitch__hud b { color: #8A7C70; }

.stuv { padding-block: clamp(4rem, 10svh, 7rem); background: linear-gradient(var(--paper), #EFE7DA); }
.stuv__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 4vw, 4rem); align-items: center; }
.stuv__tabs { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 1.6rem; }
.stuv__tabs button { min-height: 40px; padding: 0 1rem; border-radius: 999px; border: 1px solid rgb(36 27 20 / 0.22); background: #FFF; color: var(--ink); font: inherit; font-size: 0.88rem; cursor: pointer; }
.stuv__tabs button[aria-selected="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.stuv__tabs button:focus-visible { outline: 2px solid var(--acc); outline-offset: 3px; }
.stuv__cap { margin: 0.9rem 0 0; font-size: 0.92rem; color: #6E6157; min-height: 2.8em; max-width: 36ch; }
.stuv__frame { position: relative; margin: 0; border-radius: 20px; overflow: hidden; background: #E4DACB; box-shadow: 0 30px 80px rgb(60 40 20 / 0.2); aspect-ratio: 16 / 9; }
.stuv__frame video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity 360ms linear; }
.stuv__frame.is-swap video { opacity: 0; }

.inv--stu { background: #EFE7DA; }
.inv--stu .inv__card { background: #FFF; border: 1px solid rgb(36 27 20 / 0.08); box-shadow: 0 10px 30px rgb(60 40 20 / 0.06); color: var(--ink); }
.inv--stu .inv__lbl { color: var(--acc); }
.inv--stu .mbar { color: #B9A99A; }
.dem { margin: 0; display: grid; gap: 0.9rem; }
.dem dt { font-family: var(--sc-font-display); font-size: calc(2.2rem * var(--be-dscale)); line-height: 1; color: var(--acc); }
.dem dd { margin: 0.2rem 0 0; font-size: 0.86rem; color: #5E5248; }
.inv__round { margin-top: 1.1rem; padding: 1.1rem 1.4rem; border-radius: 16px; border: 1px solid rgb(36 27 20 / 0.12); display: flex; flex-wrap: wrap; gap: 0.8rem 1.6rem; align-items: center; }
.inv__round ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.4rem; counter-reset: r; font-size: 0.92rem; }
.inv__round li { counter-increment: r; }
.inv__round li::before { content: "0" counter(r) "  "; color: var(--acc); font-weight: 600; white-space: pre; }

@media (max-width: 1080px) { .inv__grid { grid-template-columns: 1fr 1fr; } .inv__calc { grid-column: 1 / -1; } }
@media (max-width: 860px) {
  .syncam__grid, .stuv__grid { grid-template-columns: 1fr; }
  .syncam__head { grid-template-columns: 1fr; } .syncam__head .syncam__feed { grid-column: 1; grid-row: auto; margin-top: 1.2rem; }
  .syncam__wall { order: -1; } .stuv__frame { order: -1; }
  .syncam__top { font-size: 0.66rem; gap: 0.6rem; bottom: 0.4rem; padding: 0.3rem 0.6rem; }
  .syncam__feed { min-height: 0; }
  .inv__grid { grid-template-columns: 1fr; }
  .ent__site { margin-left: 0; }
  .ent__meta { font-size: 0.64rem; }
  .pitch--stu .pitch__copy { max-width: none; }
  .pitch--stu .pitch__hud { top: calc(var(--bar-h) + 0.6rem); }
}
@media (prefers-reduced-motion: reduce) { .mbar::before, .mbar b { transition: none; } .syncam__feed li { animation: none; } }

.stuv__note { margin: 0.4rem 0 0; font-size: 0.72rem; color: #8A7C70; max-width: 40ch; }
.inv--stu .mbar span { color: #5E5248; opacity: 1; }
.inv--stu .mbar::before { opacity: 0.55; }
.inv--stu .mbar--hot::before { opacity: 1; }

/* ====================== Technology: switcher (A), covers (B), pages ===== */
.pitch--free .pitch__stage { position: relative; height: 100svh; min-height: 680px; max-height: 1000px; }
html.is-locked { overflow: hidden; }

.port { background: #0B1018; padding-top: clamp(3.5rem, 8svh, 5.5rem); }
.port__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1.2rem 2rem; padding-bottom: 1.6rem; }
.port__h { margin: 0; font-family: var(--sc-font-display); font-weight: var(--be-dw, 400); font-size: calc(clamp(2rem, 1.2rem + 2.2vw, 3.2rem) * var(--be-dscale)); color: var(--ivory); line-height: 1.05; }
.port__toggle { display: inline-flex; padding: 5px; border-radius: 999px; background: rgb(246 240 229 / 0.07); border: 1px solid rgb(246 240 229 / 0.14); gap: 4px; }
.port__toggle button { display: grid; text-align: left; gap: 0.05rem; min-width: 11rem; padding: 0.6rem 1.3rem; border-radius: 999px; border: 0; background: transparent; color: rgb(246 240 229 / 0.6); font: inherit; cursor: pointer; transition: background 240ms, color 240ms; }
.port__toggle button b { font-size: 1.02rem; font-weight: 600; }
.port__toggle button span { font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.8; }
.port__toggle button[aria-selected="true"][data-port="syn"] { background: #7FD8FF; color: #04101C; }
.port__toggle button[aria-selected="true"][data-port="stu"] { background: #F5F0E7; color: #241B14; }
.port__toggle button:focus-visible { outline: 2px solid #E6CF9F; outline-offset: 3px; }
.port__panel[hidden] { display: none; }
.port__go { display: flex; justify-content: flex-end; padding-block: 1.2rem 2.4rem; }
.ent--syn .port__go a { color: #7FD8FF; } .ent--stu .port__go a { color: var(--acc); }
.port__go a { font-size: 1rem; font-weight: 600; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; }

details.more > summary, details.dmore > summary { list-style: none; cursor: pointer; }
details.more > summary::-webkit-details-marker, details.dmore > summary::-webkit-details-marker { display: none; }
details.more > summary { display: flex; align-items: center; gap: 0.9rem; margin: 0 auto; max-width: var(--sc-wrap, 1200px); padding: 1.3rem clamp(1rem, 4vw, 2rem); font-size: 1.05rem; font-weight: 600; border-top: 1px solid rgb(127 127 127 / 0.2); border-bottom: 1px solid rgb(127 127 127 / 0.2); }
.ent--syn details.more > summary { color: #E8F4FF; border-color: rgb(127 216 255 / 0.2); }
.ent--stu details.more > summary { color: var(--ink); border-color: rgb(36 27 20 / 0.14); }
.more__plus { position: relative; flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1px solid currentColor; }
.more__plus::before, .more__plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; background: currentColor; transform: translate(-50%, -50%); transition: transform 260ms var(--sc-ease-out); }
.more__plus::after { transform: translate(-50%, -50%) rotate(90deg); }
details[open] > summary .more__plus::after { transform: translate(-50%, -50%) rotate(0deg); }
.more__hint { margin-left: auto; font-size: 0.8rem; font-weight: 500; opacity: 0.6; }

/* B · covers */
.covers { padding-block: clamp(3.5rem, 8svh, 5.5rem); }
.covers__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-top: 1.4rem; }
.cover { position: relative; min-height: min(78svh, 720px); border-radius: 22px; overflow: hidden; display: flex; align-items: flex-end; isolation: isolate; }
.cover video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1200ms var(--sc-ease-out); }
.cover:hover video { transform: scale(1.03); }
.cover::before { content: ""; position: absolute; inset: 0; z-index: -1; }
.cover--syn { background: #050C16; color: #E8F4FF; border: 1px solid rgb(127 216 255 / 0.25); }
.cover--syn::before { background: linear-gradient(to top, rgb(5 12 22 / 0.95) 10%, rgb(5 12 22 / 0.55) 45%, rgb(5 12 22 / 0.05) 75%); }
.cover--stu { background: #F5F0E7; color: #241B14; }
.cover--stu::before { background: linear-gradient(to top, rgb(245 240 231 / 0.98) 14%, rgb(245 240 231 / 0.7) 45%, rgb(245 240 231 / 0) 72%); }
.cover__body { padding: clamp(1.4rem, 3vw, 2.4rem); display: grid; gap: 0.9rem; width: 100%; }
.cover__logo { font-size: 0.86rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; }
.cover--syn .cover__logo { color: #7FD8FF; }
.cover--stu .cover__logo { font-family: var(--sc-font-display); font-size: 1.9rem; letter-spacing: 0; text-transform: lowercase; color: #241B14; }
.cover--stu .cover__logo::after { content: "."; color: #B4532A; }
.cover__tag { margin: 0; font-family: var(--sc-font-display); font-size: calc(clamp(1.6rem, 1.1rem + 1.5vw, 2.5rem) * var(--be-dscale)); line-height: 1.08; max-width: 18ch; }
.cover__nums { margin: 0.2rem 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.8rem; }
.cover__nums div { border-top: 1px solid currentColor; padding-top: 0.5rem; opacity: 0.95; }
.cover__nums dt { font-family: var(--sc-font-display); font-size: calc(1.6rem * var(--be-dscale)); line-height: 1; }
.cover--syn .cover__nums dt { color: #7FD8FF; } .cover--stu .cover__nums dt { color: #B4532A; }
.cover__nums dd { margin: 0.3rem 0 0; font-size: 0.78rem; opacity: 0.75; }
.cover__acts { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.3rem; }
.cover--stu .btn--solid { background: #B4532A; color: #FFF; } .cover--stu .btn--line { color: #241B14; border-color: rgb(36 27 20 / 0.35); background: transparent; }
dialog.cdlg { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; padding: 0; border: 0; overflow-y: auto; overscroll-behavior: contain; }
dialog.cdlg::backdrop { background: rgb(0 0 0 / 0.6); }
.cdlg__x { position: fixed; z-index: 30; top: 1rem; right: 1rem; min-height: 42px; padding: 0 1.1rem; border-radius: 999px; border: 1px solid rgb(127 127 127 / 0.4); background: rgb(255 255 255 / 0.92); color: #111; font: inherit; font-weight: 600; cursor: pointer; }
dialog.cdlg .pitch__grid { padding-top: 4rem; }

/* C · next strip */
.ent__next { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.4rem 2.6rem; }
.ent--syn .ent__next { color: #A9BCCF; } .ent--stu .ent__next { color: #5E5248; }
.ent__next a { font-weight: 600; text-decoration: none; border-bottom: 1px solid currentColor; }
.ent--syn .ent__next a { color: #7FD8FF; } .ent--stu .ent__next a { color: var(--acc); }

/* homepage deal board, collapsed */
.deals--home { padding-block: clamp(2rem, 5svh, 3.5rem) clamp(3rem, 8svh, 5rem); }
details.dmore > summary { display: flex; align-items: center; gap: 1rem; padding: 1.1rem 0; color: var(--ivory); border-top: 1px solid rgb(246 240 229 / 0.16); border-bottom: 1px solid rgb(246 240 229 / 0.16); }
details.dmore > summary b { font-family: var(--sc-font-display); font-weight: 400; font-size: calc(1.5rem * var(--be-dscale)); }
details.dmore > summary span:not(.more__plus) { font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgb(246 240 229 / 0.6); }
.deals__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.deals__all { margin: 1.2rem 0 0; } .deals__all a { color: #E6CF9F; font-weight: 600; }

/* dedicated pages */
.crumb { padding-top: calc(var(--bar-h) + 1.2rem); padding-bottom: 0.8rem; font-size: 0.8rem; letter-spacing: 0.06em; }
.crumb a { color: inherit; opacity: 0.7; } .crumb span { opacity: 0.45; margin: 0 0.4rem; }
.ent--syn .crumb { color: #A9BCCF; } .ent--stu .crumb { color: #6E6157; }
.tsec { padding-block: clamp(4rem, 10svh, 6rem); }
.terms__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.terms__card { padding: 1.4rem 1.5rem; border-radius: 16px; }
.ent--syn .terms__card { background: rgb(127 216 255 / 0.05); border: 1px solid rgb(127 216 255 / 0.2); color: #DCE8F3; }
.ent--stu .terms__card { background: #FFF; border: 1px solid rgb(36 27 20 / 0.08); color: var(--ink); }
.terms__dl { margin: 0; display: grid; }
.terms__dl div { display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; padding: 0.7rem 0; border-bottom: 1px solid rgb(127 127 127 / 0.2); font-size: 0.92rem; }
.terms__dl dt { opacity: 0.65; } .terms__dl dd { margin: 0; }
.terms__lbl { margin: 1.2rem 0 0.5rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--acc); }
.terms__nda { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.45rem; font-size: 0.9rem; }
.terms__nda li { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.terms__nda i { width: 40%; height: 0.8em; border-radius: 3px; background: currentColor; opacity: 0.85; }
.faq details { border-bottom: 1px solid rgb(127 127 127 / 0.22); }
.faq summary { cursor: pointer; padding: 1rem 0; font-size: 1.05rem; font-weight: 600; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-weight: 400; font-size: 1.3rem; line-height: 1; color: var(--acc); }
.faq details[open] summary::after { content: "–"; }
.faq p { margin: 0 0 1rem; font-size: 0.95rem; line-height: 1.55; opacity: 0.85; max-width: 60ch; }
.ent--syn .faq { color: #DCE8F3; } .ent--stu .faq { color: var(--ink); }
.xlink { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; padding-block: 2rem; border-top: 1px solid rgb(127 127 127 / 0.2); }
.xlink a { font-weight: 600; color: var(--acc); }

@media (max-width: 860px) {
  .covers__grid, .terms__grid { grid-template-columns: 1fr; }
  .cover { min-height: 72svh; }
  .port__toggle { width: 100%; } .port__toggle button { flex: 1; min-width: 0; padding: 0.55rem 0.9rem; }
  .deals__grid--2 { grid-template-columns: 1fr; }
  .pitch--free .pitch__stage { min-height: 760px; }
  .terms__dl div { grid-template-columns: 6.5rem 1fr; }
}
@media (max-width: 860px) { .pitch--stu .pitch__veil { background: linear-gradient(to bottom, transparent 0, transparent calc(46svh - 9rem), rgb(245 240 231) 46svh); } }

/* ======================== Mandate: three investor flows (rev 16) ======== */
.mandate__top { max-width: 62rem; }
.mandate__lede { margin-top: var(--sc-6); max-width: 60ch; }
.flows { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2rem); margin-top: clamp(2.2rem, 5svh, 3.5rem); }
.flow { display: flex; flex-direction: column; gap: 0.8rem; padding: clamp(1.3rem, 2.4vw, 2rem); border-radius: var(--be-r-lg); background: var(--sc-surface); box-shadow: var(--sc-e1), var(--sc-edge); }
.flow__n { margin: 0; font-family: var(--sc-font-display); font-size: calc(2.4rem * var(--be-dscale)); line-height: 1; color: var(--sc-accent); }
.flow__h { margin: 0; font-family: var(--sc-font-display); font-weight: var(--be-dw, 400); font-size: calc(clamp(1.35rem, 1.1rem + 0.6vw, 1.7rem) * var(--be-dscale)); line-height: 1.15; }
.flow__p { margin: 0; font-size: 0.95rem; line-height: 1.55; color: var(--sc-ink-soft); }
.flow__steps { list-style: none; margin: 0.4rem 0 0; padding: 0; display: grid; gap: 0; counter-reset: fs; }
.flow__steps li { counter-increment: fs; position: relative; padding: 0.6rem 0 0.6rem 2.2rem; border-top: 1px solid var(--sc-hairline); font-size: 0.88rem; line-height: 1.4; color: var(--sc-ink-soft); }
.flow__steps li::before { content: counter(fs); position: absolute; left: 0; top: 0.55rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; display: grid; place-items: center; font-size: 0.72rem; font-weight: 600; color: var(--sc-accent); border: 1px solid color-mix(in oklab, var(--sc-accent) 45%, transparent); }
.flow__steps b { display: block; color: var(--sc-ink); font-weight: 600; }
.flow__go { margin-top: auto; padding-top: 0.6rem; font-weight: 600; color: var(--sc-accent); text-decoration: none; }
.flow__go:hover { text-decoration: underline; text-underline-offset: 4px; }
.tenets--row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2rem); margin-top: clamp(2rem, 4svh, 3rem); }

/* ====================== Costa del Sol: three ways + funnel (rev 16) ===== */
.coast { background: var(--sc-canvas); padding-block: clamp(4rem, 10svh, 7rem); }
.coast__head { max-width: 58rem; }
.coast__lede { margin-top: 1rem; max-width: 60ch; }
.coast__list { margin-top: clamp(1.8rem, 4svh, 2.6rem); border-top: 1px solid var(--sc-ink); }
details.cway { border-bottom: 1px solid var(--sc-hairline); }
details.cway > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 3rem 1fr auto 34px; align-items: center; gap: 1rem; padding: 1.2rem 0; }
details.cway > summary::-webkit-details-marker { display: none; }
.cway__n { font-size: 0.8rem; font-variant-numeric: tabular-nums; color: var(--sc-accent); font-weight: 600; }
.cway__t { font-family: var(--sc-font-display); font-size: calc(clamp(1.5rem, 1.1rem + 1.2vw, 2.3rem) * var(--be-dscale)); line-height: 1.1; color: var(--sc-ink); }
.cway__tk { font-size: 0.86rem; font-weight: 600; color: var(--sc-ink-soft); }
details.cway .more__plus { color: var(--sc-ink); }
details.cway:hover > summary .cway__t { color: var(--sc-accent); }
.cway__body { padding: 0 0 1.6rem 4rem; display: grid; gap: 0.9rem; max-width: 52rem; animation: medc-in 380ms var(--sc-ease-out) both; }
.cway__body p { margin: 0; font-size: 1.02rem; line-height: 1.6; color: var(--sc-ink-soft); }
.cway__body ul { margin: 0; padding-left: 1.1rem; display: grid; gap: 0.3rem; font-size: 0.95rem; color: var(--sc-ink); }
.cway__body .btn { justify-self: start; }
.funnel2 { margin-top: clamp(2.6rem, 6svh, 4rem); padding: clamp(1.4rem, 3vw, 2.4rem); border-radius: var(--be-r-lg); background: var(--sc-surface); box-shadow: var(--sc-e2), var(--sc-edge); display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 1.2rem clamp(2rem, 4vw, 4rem); }
.funnel2__head { grid-column: 1 / -1; }
.funnel2__head .kicker { margin-bottom: 0.4rem; }
.funnel2__h { margin: 0; font-family: var(--sc-font-display); font-weight: var(--be-dw, 400); font-size: calc(clamp(1.6rem, 1.2rem + 1vw, 2.2rem) * var(--be-dscale)); line-height: 1.1; }
.funnel2__form { display: grid; gap: 1rem; }
.funnel2__form fieldset { margin: 0; padding: 0; border: 0; }
.funnel2__form legend { margin-bottom: 0.5rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--sc-ink-soft); }
.chips2 { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.chips2 button { min-height: 40px; padding: 0 1rem; border-radius: 999px; border: 1px solid color-mix(in oklab, var(--sc-ink) 22%, transparent); background: transparent; color: var(--sc-ink); font: inherit; font-size: 0.9rem; cursor: pointer; }
.chips2 button[aria-pressed="true"] { background: var(--sc-ink); color: var(--sc-canvas); border-color: var(--sc-ink); }
.chips2 button:focus-visible { outline: 2px solid var(--sc-accent); outline-offset: 3px; }
.funnel2__note { margin: 0.6rem 0 0; font-size: 0.86rem; color: var(--sc-ink-soft); min-height: 2.6em; }
.funnel2__go { margin-top: 0.2rem; }
.funnel2__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; align-self: start; }
.funnel2__steps li { display: grid; gap: 0.15rem; padding: 0.75rem 0 0.75rem 1rem; border-left: 2px solid color-mix(in oklab, var(--sc-accent) 30%, transparent); }
.funnel2__steps li:first-child { border-left-color: var(--sc-accent); }
.funnel2__steps b { font-size: 0.92rem; color: var(--sc-ink); }
.funnel2__steps span { font-size: 0.86rem; color: var(--sc-ink-soft); line-height: 1.4; }
.coast__faq { margin-top: clamp(2.6rem, 6svh, 4rem); max-width: 52rem; --acc: var(--sc-accent); color: var(--sc-ink); }
.coast__src { margin: 1.4rem 0 0; font-size: 0.74rem; color: var(--sc-ink-soft); }
@media (max-width: 960px) { .flows, .tenets--row { grid-template-columns: 1fr; } }
@media (max-width: 860px) {
  .funnel2 { grid-template-columns: 1fr; }
  details.cway > summary { grid-template-columns: 2.2rem 1fr 34px; }
  .cway__tk { grid-column: 2; grid-row: 2; font-size: 0.8rem; }
  .cway__body { padding-left: 0; }
}
.tenets--row > div { display: grid; grid-template-columns: 1fr; gap: 0.4rem; align-content: start; }
.tenets--row dd { margin: 0; }

/* =========================== Hero: Stueo '+' and card (rev 18 options) == */
.hplus { display: inline-grid; place-items: center; width: 0.92em; height: 0.92em; margin-left: 0.22em; vertical-align: 0.06em; border-radius: 50%;
  border: 1.5px solid #E6CF9F; background: rgb(230 207 159 / 0.12); color: #E6CF9F; font: 300 0.62em/1 var(--sc-font-text); cursor: pointer;
  box-shadow: 0 0 0 0 rgb(230 207 159 / 0.55); animation: glow 2.6s ease-out infinite; transition: transform 300ms var(--sc-ease-out), background 200ms; }
.hplus span { display: block; transform: translateY(-0.04em); }
.hplus:hover { background: #E6CF9F; color: #0E1522; }
.hplus[aria-expanded="true"] { transform: rotate(45deg); background: #E6CF9F; color: #0E1522; animation: none; }
.hplus:focus-visible, .hspot:focus-visible { outline: 2px solid #E6CF9F; outline-offset: 4px; }
.hspot { z-index: 3; pointer-events: auto; display: flex; align-items: center; gap: 0.55rem; translate: -50% -50%; padding: 0; border: 0; background: none; cursor: pointer; color: #FFF; font: 600 0.82rem/1 var(--sc-font-text); letter-spacing: 0.02em; }
.hspot i { position: relative; flex: none; width: 34px; height: 34px; border-radius: 50%; background: rgb(255 255 255 / 0.92); box-shadow: 0 0 0 0 rgb(255 255 255 / 0.6); animation: hud 1.9s ease-out infinite; --acc-rgb: 255 255 255; }
.hspot i::before, .hspot i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 13px; height: 2px; background: #B4532A; translate: -50% -50%; }
.hspot i::after { rotate: 90deg; transition: rotate 300ms var(--sc-ease-out); }
.hspot[aria-expanded="true"] i::after { rotate: 0deg; }
.hspot span { padding: 0.45rem 0.75rem; border-radius: 999px; background: rgb(10 16 24 / 0.6); backdrop-filter: blur(6px); white-space: nowrap; }
.hpop { position: absolute; z-index: 9; width: min(400px, calc(100vw - 2rem)); border-radius: 18px; overflow: hidden; background: #F5F0E7; color: #241B14;
  box-shadow: 0 30px 80px rgb(0 0 0 / 0.45); animation: hpop-in 420ms var(--sc-ease-out) both; }
.hpop[hidden] { display: none; }
@keyframes hpop-in { from { opacity: 0; transform: translateY(14px) scale(0.98); } to { opacity: 1; transform: none; } }
.hpop--copy { left: calc(var(--sc-gutter) + min(36rem, 38vw) + 2.5rem); top: calc(var(--bar-h) + 1.5rem); }
.hpop--spot { right: clamp(4.5rem, 6vw, 6rem); top: calc(var(--bar-h) + 1.5rem); }
.hpop__x { position: absolute; z-index: 3; top: 0.6rem; right: 0.6rem; width: 32px; height: 32px; border-radius: 50%; border: 0; background: rgb(255 255 255 / 0.9); color: #241B14; cursor: pointer; font-size: 0.85rem; }
.hpop__ba { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #222; }
.hpop__ba img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hpop__before { position: absolute; inset: 0; clip-path: inset(0 calc(100% - var(--ba)) 0 0); }
.hpop__seam { position: absolute; top: 0; bottom: 0; left: var(--ba); width: 2px; background: #FFF; translate: -1px 0; box-shadow: 0 0 10px rgb(0 0 0 / 0.4); pointer-events: none; }
.hpop__seam::after { content: "‹ ›"; position: absolute; top: 50%; left: 50%; translate: -50% -50%; width: 34px; height: 34px; border-radius: 50%; background: #FFF; color: #241B14; display: grid; place-items: center; font-size: 0.8rem; font-weight: 700; }
.hpop__range { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.hpop__l, .hpop__r { position: absolute; bottom: 0.5rem; padding: 0.2rem 0.5rem; border-radius: 4px; background: rgb(10 16 24 / 0.6); color: #FFF; font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; pointer-events: none; }
.hpop__l { left: 0.5rem; } .hpop__r { right: 0.5rem; }
.hpop__body { padding: 1rem 1.2rem 1.1rem; display: grid; gap: 0.5rem; }
.hpop__logo { font-family: var(--sc-font-display); font-size: 1.5rem; line-height: 1; }
.hpop__logo::after { content: "."; color: #B4532A; }
.hpop__t { margin: 0; font-family: var(--sc-font-display); font-size: calc(1.3rem * var(--be-dscale)); line-height: 1.15; color: #B4532A; }
.hpop__p { margin: 0; font-size: 0.86rem; line-height: 1.45; color: #5E5248; }
.hpop__nums { margin: 0.2rem 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; }
.hpop__nums dt { font-family: var(--sc-font-display); font-size: 1.35rem; color: #B4532A; line-height: 1; }
.hpop__nums dd { margin: 0.2rem 0 0; font-size: 0.74rem; color: #6E6157; }
.hpop__go { justify-self: start; margin-top: 0.3rem; padding: 0.6rem 1rem; border-radius: 999px; background: #B4532A; color: #FFF; font-weight: 600; font-size: 0.9rem; text-decoration: none; }
.hpop__note { margin: 0; font-size: 0.68rem; color: #8A7C70; }
.hero__h1--rot { max-width: 17ch; }
.rot__fix { display: block; }
.rot { display: inline-block; height: 1.1em; overflow: hidden; vertical-align: bottom; color: #E6CF9F; }
.rot > span { display: inline-block; }
.rot > span.is-out { animation: word-out 380ms cubic-bezier(0.5, 0, 0.75, 0) both; }
.rot > span.is-in { animation: word-in 620ms cubic-bezier(0.2, 0.8, 0.2, 1) both; }
.hplus--rot { opacity: 0; pointer-events: none; transition: opacity 400ms; }
.hplus--rot.is-show { opacity: 1; pointer-events: auto; }
@media (max-width: 860px) {
  .hpop--copy, .hpop--spot { left: 1rem; right: 1rem; top: auto; bottom: 1rem; width: auto; }
  .hpop__ba { aspect-ratio: 16 / 8; }
  .hspot span { display: none; }
}
@media (prefers-reduced-motion: reduce) { .hplus, .hspot i { animation: none; } .hpop { animation: none; } }
.hero__beat { pointer-events: none; }
/* rev 19: collapsible funnel/FAQ, two hero hotspots */
details.cway--box { margin-top: 1rem; border: 1px solid var(--sc-hairline); border-radius: var(--be-r-lg); padding: 0 1.2rem; background: var(--sc-surface); }
details.cway--box:first-of-type { margin-top: 2rem; }
details.cway--box > summary .cway__n { font-size: 1.1rem; }
details.cway--box .funnel2 { margin: 0 0 1.4rem; box-shadow: none; padding: 0.4rem 0 0; background: transparent; }
details.cway--box .coast__faq { margin: 0 0 1.2rem; }
.hpop--prop { right: auto; left: 46%; top: calc(var(--bar-h) + 1.5rem); }
.hpop__links { display: grid; gap: 0.45rem; margin-top: 0.3rem; }
.hpop__link { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.7rem 0.9rem; border-radius: 12px; background: #FFF; border: 1px solid rgb(36 27 20 / 0.1); color: #241B14; text-decoration: none; font-weight: 600; font-size: 0.92rem; }
.hpop__link small { display: block; font-weight: 500; font-size: 0.74rem; color: #6E6157; }
.hpop__link:hover { border-color: #B4532A; }
.hpop__link b { color: #B4532A; font-size: 1.1rem; }
.hpop--ai .hpop__logo::after, .hpop--prop .hpop__logo::after { content: none; }
.hpop--ai .hpop__logo, .hpop--prop .hpop__logo { font-size: 0.72rem; font-family: var(--sc-font-text); font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: #B4532A; }
.hpop--text .hpop__body { padding-top: 1.3rem; }
@media (max-width: 860px) { .hpop--prop { left: 1rem; } }
@media (max-width: 860px) { .hspot[data-hpop="hpop-prop"] { left: 61.5% !important; top: 72% !important; } .hspot span { display: none; } }
@media (max-width: 860px) { .hpop--prop { top: auto; bottom: 1rem; left: 1rem; right: 1rem; } }
/* rev 20: no clipped descenders in the rotating word */
.rot { height: 1.28em; padding-bottom: 0.1em; margin-bottom: -0.1em; vertical-align: top; }
.hpop--text .hpop__go { margin-top: 0.5rem; }
