/* ==========================================================================
   Fouché Motors: the private showroom
   Black lacquer (the showroom's polished marble), silver sunray dial plates,
   engraved hairline indices, date-window numerals, one red seconds hand.
   Display: Gilda Display (didone, the serif of the Est. 1979 emblem).
   Text and labels: Jost (dial-printing geometric sans).
   ========================================================================== */

@font-face {
  font-family: "Jost";
  src: url("../fonts/jost-latin.woff2") format("woff2");
  font-weight: 200 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Jost";
  src: url("../fonts/jost-italic-latin.woff2") format("woff2");
  font-weight: 300 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Gilda Display";
  src: url("../fonts/gilda-display-latin.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --fm-ink: #08090a;
  --fm-ink-2: #0d0e10;
  --fm-ink-3: #141518;
  --fm-ink-4: #1e2023;
  --fm-t: #f1f1ef;
  --fm-t-2: #b8b9ba;
  --fm-t-3: #8c8d90;
  --fm-line: rgb(241 241 239 / 0.13);
  --fm-line-2: rgb(241 241 239 / 0.26);
  --fm-line-3: rgb(241 241 239 / 0.5);
  --fm-silver: #d6d6d4;
  --fm-silver-2: #c2c3c2;
  --fm-silver-3: #a3a4a4;
  --fm-on-silver: #121315;
  --fm-on-silver-2: #3b3c40;
  --fm-on-silver-line: rgb(18 19 21 / 0.18);
  --fm-red: #c8141c;
  --fm-accent: var(--fm-red);

  --fm-display: "Gilda Display", "Didot", "Bodoni 72", Georgia, serif;
  --fm-sans: "Jost", "Futura", "Century Gothic", system-ui, sans-serif;

  --fm-size-plate: clamp(3rem, 8.2vw, 6rem);
  --fm-size-h1: clamp(2.5rem, 5.4vw, 4.75rem);
  --fm-size-h2: clamp(2rem, 3.8vw, 3.35rem);
  --fm-size-h3: clamp(1.4rem, 1.9vw, 1.8rem);
  --fm-size-lead: clamp(1.0625rem, 1rem + 0.35vw, 1.25rem);
  --fm-size-body: clamp(1rem, 0.97rem + 0.15vw, 1.0625rem);
  --fm-size-small: 0.875rem;
  --fm-size-label: 0.75rem;

  --fm-gx: clamp(1.25rem, 4vw, 4rem);
  --fm-sec: clamp(6rem, 11vw, 10.5rem);
  --fm-max: 84rem;
  --fm-header-h: 4.5rem;

  --fm-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --fm-ease-io: cubic-bezier(0.65, 0, 0.35, 1);
  /* Motion scale: fast = feedback, base = UI state, slow = reveals, xslow = editorial moments. */
  --fm-dur-fast: 0.18s;
  --fm-dur: 0.45s;
  --fm-dur-slow: 0.9s;
  --fm-dur-xslow: 1.4s;
  --fm-stagger: 55ms;
  --fm-sunray: url("../img/sunray.webp");
  --fm-sunray-dark: url("../img/sunray-dark.webp");
}

/* ---------- Base (no class weight: :where) ---------- */
:where(html) {
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  background: var(--fm-ink);
  color-scheme: dark;
  scrollbar-color: var(--fm-ink-4) var(--fm-ink);
}
:where(body.fm-site) {
  margin: 0;
  background: var(--fm-ink);
  color: var(--fm-t);
  font-family: var(--fm-sans);
  font-size: var(--fm-size-body);
  font-weight: 350;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-stopped { overflow: clip; }
.fm-site :where(img, svg, video, canvas) { display: block; max-width: 100%; }
.fm-site :where(img) { height: auto; }
.fm-site :where(a) { color: inherit; text-underline-offset: 0.22em; text-decoration-thickness: 1px; }
.fm-site :where(p, h1, h2, h3, h4, ul, ol, dl, figure) { margin: 0; }
.fm-site :where(ul, ol) { padding: 0; list-style: none; }
.fm-site :where(button) { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
.fm-site ::selection { background: var(--fm-silver); color: var(--fm-on-silver); }
.fm-site :focus-visible { outline: 1.5px solid var(--fm-silver); outline-offset: 4px; border-radius: 3px; }
.fm-site [hidden] { display: none !important; }
.fm-site ::-webkit-scrollbar { width: 10px; height: 10px; }
.fm-site ::-webkit-scrollbar-track { background: var(--fm-ink); }
.fm-site ::-webkit-scrollbar-thumb { background: var(--fm-ink-4); border: 2px solid var(--fm-ink); border-radius: 10px; }

.fm-wrap { overflow-x: clip; position: relative; }
.fm-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.fm-skip { position: fixed; left: 1rem; top: -4rem; z-index: 100; padding: 0.75rem 1.1rem; background: var(--fm-silver); color: var(--fm-on-silver); border-radius: 999px; font-weight: 500; transition: top 0.3s var(--fm-ease); }
.fm-skip:focus { top: 1rem; }

/* ---------- Type ---------- */
.fm-display { font-family: var(--fm-display); font-weight: 400; letter-spacing: -0.01em; line-height: 0.98; }
.fm-h1 { font-family: var(--fm-display); font-weight: 400; font-size: var(--fm-size-h1); line-height: 1.02; letter-spacing: -0.015em; text-wrap: balance; }
.fm-h2 { font-family: var(--fm-display); font-weight: 400; font-size: var(--fm-size-h2); line-height: 1.04; letter-spacing: -0.01em; text-wrap: balance; }
.fm-h3 { font-family: var(--fm-display); font-weight: 400; font-size: var(--fm-size-h3); line-height: 1.15; }
.fm-lead { font-size: var(--fm-size-lead); line-height: 1.55; color: var(--fm-t-2); font-weight: 330; max-width: 36em; text-wrap: pretty; }
.fm-label { font-size: var(--fm-size-label); letter-spacing: 0.18em; text-transform: uppercase; font-weight: 450; color: var(--fm-t-2); }
.fm-num { font-variant-numeric: tabular-nums lining-nums; font-feature-settings: "tnum" 1, "lnum" 1; }
.fm-prose { max-width: 40em; color: var(--fm-t-2); }
.fm-prose > * + * { margin-top: 1.1em; }
.fm-prose h2, .fm-prose h3 { font-family: var(--fm-display); font-weight: 400; color: var(--fm-t); line-height: 1.1; margin-top: 2em; }
.fm-prose h2 { font-size: var(--fm-size-h3); }
.fm-prose a { color: var(--fm-t); }
.fm-prose ul { list-style: none; }
.fm-prose li { position: relative; padding-left: 1.4em; }
.fm-prose li::before { content: ""; position: absolute; left: 0; top: 0.8em; width: 0.7em; height: 1px; background: var(--fm-silver-3); }

/* ---------- Buttons: pills for small controls, crown-like icon buttons ---------- */
.fm-btn {
  --b: var(--fm-silver);
  display: inline-flex; align-items: center; justify-content: center; gap: 0.6em;
  min-height: 3rem; padding: 0 1.45rem; border-radius: 999px;
  background: var(--b); color: var(--fm-on-silver);
  font: 500 0.875rem/1 var(--fm-sans); letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none;
  position: relative; overflow: hidden; isolation: isolate; white-space: nowrap;
  transition: transform 0.5s var(--fm-ease), background-color 0.4s var(--fm-ease), color 0.4s var(--fm-ease), box-shadow 0.4s var(--fm-ease);
  box-shadow: 0 1px 0 rgb(255 255 255 / 0.5) inset, 0 10px 30px -12px rgb(0 0 0 / 0.6);
}
.fm-btn::before {
  /* A sunray glint that sweeps across on hover, like light over a polished case. */
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
  background: var(--fm-sunray) center / 600px auto, var(--b);
  opacity: 0.55; mix-blend-mode: multiply;
}
.fm-btn::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: -40%; width: 35%; z-index: -1;
  background: linear-gradient(100deg, transparent, rgb(255 255 255 / 0.65), transparent);
  transform: translateX(-120%) skewX(-18deg); transition: transform 0.9s var(--fm-ease);
}
@media (hover: hover) {
  .fm-btn:hover::after { transform: translateX(520%) skewX(-18deg); }
  .fm-btn:hover { transform: translateY(-1px); }
}
.fm-btn:active { transform: translateY(1px) scale(0.985); transition-duration: 0.12s; }
.fm-btn--ghost { --b: transparent; color: var(--fm-t); box-shadow: inset 0 0 0 1px var(--fm-line-2); }
.fm-btn--ghost::before { display: none; }
@media (hover: hover) { .fm-btn--ghost:hover { box-shadow: inset 0 0 0 1px var(--fm-line-3); background: rgb(241 241 239 / 0.04); } }
.fm-btn--dark { --b: var(--fm-on-silver); color: var(--fm-t); box-shadow: 0 1px 0 rgb(255 255 255 / 0.12) inset; }
.fm-btn--dark::before { display: none; }
.fm-btn--sm { min-height: 2.5rem; padding: 0 1.1rem; font-size: 0.78rem; }
.fm-btn svg { width: 1.05em; height: 1.05em; flex: none; }
.fm-btn[disabled] { opacity: 0.55; cursor: progress; }

.fm-icon-btn {
  display: inline-grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%;
  box-shadow: inset 0 0 0 1px var(--fm-line-2); color: var(--fm-t);
  transition: box-shadow 0.4s var(--fm-ease), background-color 0.4s var(--fm-ease), transform 0.4s var(--fm-ease);
}
.fm-icon-btn svg { width: 1.2rem; height: 1.2rem; }
@media (hover: hover) { .fm-icon-btn:hover { box-shadow: inset 0 0 0 1px var(--fm-line-3); background: rgb(241 241 239 / 0.06); } }
.fm-icon-btn:active { transform: scale(0.95); }

.fm-link {
  display: inline-flex; align-items: center; gap: 0.55em; text-decoration: none;
  font-size: 0.82rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 450;
  padding-block: 0.4em; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
  transition: background-size 0.6s var(--fm-ease);
}
@media (hover: hover) { .fm-link:hover { background-size: 100% 1px; } }
.fm-link svg { width: 1em; height: 1em; transition: transform 0.5s var(--fm-ease); }
@media (hover: hover) { .fm-link:hover svg { transform: translateX(3px); } }

/* ---------- Header ---------- */
.fm-header {
  position: fixed; inset: 0 0 auto; z-index: 50; color: var(--fm-t);
  transition: transform 0.6s var(--fm-ease), background-color 0.5s var(--fm-ease);
}
.fm-header::before {
  content: ""; position: absolute; inset: 0 0 -2.5rem; pointer-events: none;
  background: linear-gradient(rgb(8 9 10 / 0.72), rgb(8 9 10 / 0));
  transition: opacity 0.5s var(--fm-ease);
}
.fm-header.is-solid::before { opacity: 0; }
.fm-header.is-solid { background: rgb(8 9 10 / 0.94); }
.fm-header.is-tucked { transform: translateY(-101%); }
.fm-header__inner {
  position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  height: var(--fm-header-h); padding-inline: var(--fm-gx); max-width: 100rem; margin-inline: auto;
}
.fm-header__inner::after {
  content: ""; position: absolute; left: var(--fm-gx); right: var(--fm-gx); bottom: 0; height: 1px;
  background: var(--fm-line); transform-origin: left; transform: scaleX(0); transition: transform 0.9s var(--fm-ease);
}
.fm-header.is-solid .fm-header__inner::after { transform: scaleX(1); }
.fm-logo { display: flex; align-items: center; gap: 0.75rem; text-decoration: none; flex: none; }
.fm-logo img { width: auto; height: 0.95rem; }
.fm-logo .fm-logo__emblem { height: 1.35rem; }
.fm-logo__text { font: 400 1.1rem/1 var(--fm-display); letter-spacing: 0.3em; }
@media (min-width: 640px) { .fm-logo img { height: 1.05rem; } .fm-logo .fm-logo__emblem { height: 1.5rem; } }
.fm-nav { display: none; }
@media (min-width: 1100px) {
  .fm-nav { display: flex; gap: 2.2rem; }
  .fm-nav a { position: relative; text-decoration: none; font-size: 0.8rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--fm-t-2); padding-block: 0.6rem; transition: color 0.4s var(--fm-ease); }
  .fm-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0.25rem; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform 0.6s var(--fm-ease); }
  .fm-nav a:hover, .fm-nav [aria-current="page"] { color: var(--fm-t); }
  .fm-nav a:hover::after, .fm-nav [aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
}
.fm-header__actions { display: flex; align-items: center; gap: 0.75rem; }
.fm-header__book { display: none; }
@media (min-width: 640px) { .fm-header__book { display: inline-flex; } }
.fm-menu-btn { position: relative; width: 3rem; height: 3rem; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--fm-line-2); display: grid; place-items: center; }
@media (min-width: 1100px) { .fm-menu-btn { display: none; } }
.fm-menu-btn span { position: absolute; left: 50%; width: 1.1rem; height: 1px; margin-left: -0.55rem; background: currentColor; transition: transform 0.6s var(--fm-ease); }
.fm-menu-btn span:nth-child(1) { transform: translateY(-3px); }
.fm-menu-btn span:nth-child(2) { transform: translate(0.2rem, 3px) scaleX(0.64); }
.fm-menu-open .fm-menu-btn span:nth-child(1) { transform: rotate(45deg); }
.fm-menu-open .fm-menu-btn span:nth-child(2) { transform: rotate(-45deg); }

.fm-menu {
  position: fixed; inset: 0; z-index: 45; display: flex; flex-direction: column; justify-content: center;
  padding: calc(var(--fm-header-h) + 2rem) var(--fm-gx) 2.5rem; background: var(--fm-ink);
  clip-path: circle(0% at calc(100% - var(--fm-gx) - 1.5rem) calc(var(--fm-header-h) / 2));
  transition: clip-path 0.55s var(--fm-ease-io), visibility 0s linear 0.55s; visibility: hidden;
}
.fm-menu::before { content: ""; position: absolute; inset: 0; background: var(--fm-sunray-dark) center / cover; opacity: 0.7; pointer-events: none; }
.fm-menu-open .fm-menu { clip-path: circle(150% at calc(100% - var(--fm-gx) - 1.5rem) calc(var(--fm-header-h) / 2)); visibility: visible; transition: clip-path 0.65s var(--fm-ease-io); }
.fm-menu__list { position: relative; display: grid; gap: 0.2rem; }
.fm-menu__list a {
  display: flex; align-items: baseline; gap: 1rem; text-decoration: none; padding-block: 0.35rem;
  font: 400 clamp(2.2rem, 9vw, 4rem)/1.05 var(--fm-display);
  opacity: 0; transform: translateY(1.2rem); transition: opacity 0.6s var(--fm-ease), transform 0.8s var(--fm-ease);
}
.fm-menu__list a span { font: 450 0.72rem/1 var(--fm-sans); letter-spacing: 0.18em; color: var(--fm-t-3); }
.fm-menu-open .fm-menu__list a { opacity: 1; transform: none; }
.fm-menu-open .fm-menu__list li:nth-child(1) a { transition-delay: 0.18s; }
.fm-menu-open .fm-menu__list li:nth-child(2) a { transition-delay: 0.23s; }
.fm-menu-open .fm-menu__list li:nth-child(3) a { transition-delay: 0.28s; }
.fm-menu-open .fm-menu__list li:nth-child(4) a { transition-delay: 0.33s; }
.fm-menu-open .fm-menu__list li:nth-child(5) a { transition-delay: 0.38s; }
.fm-menu__foot { position: relative; margin-top: 2.5rem; display: grid; gap: 0.4rem; color: var(--fm-t-2); font-size: var(--fm-size-small); }
.fm-menu__foot a { text-decoration: none; }
.fm-menu-open { overflow: hidden; }

/* ---------- Loader: the dial winds while the first photographs arrive ---------- */
/* Loader → page: "through the crystal". The ink outside the dial is a veil (a circle whose
   huge box-shadow is the ink), so opening the dial is a compositor-only scale of the veil
   and the bezel; the face clears first so the page shows through the glass. */
.fm-loader {
  --load: 0;
  --dial: min(52vw, 15rem);
  position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; pointer-events: auto; overflow: hidden;
}
.fm-loader.is-leaving { pointer-events: none; }
.fm-loader.is-done { visibility: hidden; }
.fm-loader__veil { position: absolute; width: var(--dial); aspect-ratio: 1; border-radius: 50%; box-shadow: 0 0 0 220vmax var(--fm-ink); will-change: transform; }
.fm-loader__dial { position: relative; width: var(--dial); aspect-ratio: 1; border-radius: 50%; will-change: transform, opacity; }
.fm-loader__face { position: absolute; inset: 0; border-radius: 50%; background: var(--fm-sunray-dark) center / cover, var(--fm-ink-2); transition: opacity var(--fm-dur-slow) var(--fm-ease); }
.fm-loader__dial::after { content: ""; position: absolute; inset: -1px; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--fm-line-3), 0 0 0 10px rgb(241 241 239 / 0.035), 0 0 0 11px rgb(241 241 239 / 0.12); pointer-events: none; }
.fm-loader__ticks { position: absolute; inset: 0; }
.fm-loader__ticks line { stroke: var(--fm-line-3); stroke-width: 1; }
.fm-loader__ticks line.is-major { stroke: var(--fm-t); stroke-width: 1.5; }
.fm-loader__arc { fill: none; stroke: var(--fm-silver); stroke-width: 1.5; stroke-dasharray: 1 1; stroke-dashoffset: calc(1 - var(--load)); transition: stroke-dashoffset 0.6s var(--fm-ease); }
.fm-loader__hand { position: absolute; left: 50%; top: 10%; width: 1.5px; height: 50%; margin-left: -0.75px; background: var(--fm-red); transform-origin: 50% 80%; animation: fm-sweep 2.4s linear infinite; transition: opacity var(--fm-dur) var(--fm-ease); }
.fm-loader__hand::after { content: ""; position: absolute; left: 50%; bottom: 20%; width: 9px; height: 9px; margin: 0 0 -4.5px -4.5px; border-radius: 50%; background: var(--fm-red); }
/* Positioned without transform so the flight to the header logo can own translate/scale. */
.fm-loader__emblem { position: absolute; left: 37%; top: 59%; width: 26%; height: auto; opacity: 0.9; transform-origin: 50% 50%; }
.fm-loader__text { position: absolute; bottom: 2.5rem; left: 0; right: 0; text-align: center; transition: opacity var(--fm-dur-fast) var(--fm-ease), transform var(--fm-dur) var(--fm-ease); }
.fm-loader.is-leaving .fm-loader__text { opacity: 0; transform: translateY(0.5rem); }
.fm-loader.is-leaving .fm-loader__hand { opacity: 0; }
.fm-loader.is-leaving .fm-loader__face { opacity: 0; }
.fm-loader.is-leaving { --load: 1; }
/* The header logo hands over from the flying emblem. */
.fm-loading .fm-header .fm-logo, .fm-handover .fm-header .fm-logo { opacity: 0; }
.fm-header .fm-logo { transition: opacity var(--fm-dur) var(--fm-ease); }
@media (prefers-reduced-motion: reduce) {
  .fm-loader.is-leaving { opacity: 0; transition: opacity 0.3s ease; }
}
@keyframes fm-sweep { to { transform: rotate(360deg); } }

/* ---------- Date windows and rolling digits ---------- */
.fm-wins { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.fm-win {
  display: inline-grid; gap: 0.2rem; padding: 0.55rem 0.85rem 0.6rem; border-radius: 4px; min-width: 4.5rem;
  background: linear-gradient(rgb(0 0 0 / 0.55), rgb(0 0 0 / 0.3));
  box-shadow: inset 0 1px 3px rgb(0 0 0 / 0.8), inset 0 0 0 1px rgb(241 241 239 / 0.16), 0 1px 0 rgb(241 241 239 / 0.08);
}
.fm-win__k { font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--fm-t-3); }
.fm-win__v { font: 400 1.25rem/1 var(--fm-display); letter-spacing: 0.01em; color: var(--fm-t); white-space: nowrap; }
.fm-win--price .fm-win__v { font-size: 1.45rem; }
@media (min-width: 768px) { .fm-win__v { font-size: 1.45rem; } .fm-win--price .fm-win__v { font-size: 1.75rem; } }
.fm-win--light { background: linear-gradient(rgb(18 19 21 / 0.12), rgb(18 19 21 / 0.04)); box-shadow: inset 0 1px 2px rgb(0 0 0 / 0.25), inset 0 0 0 1px var(--fm-on-silver-line); }
.fm-win--light .fm-win__k { color: var(--fm-on-silver-2); }
.fm-win--light .fm-win__v { color: var(--fm-on-silver); }

.fm-roll { display: inline-flex; line-height: 1; }
.fm-dg { position: relative; display: inline-block; color: transparent; clip-path: inset(0 -0.05em); }
.fm-dg::after {
  content: "0\A 1\A 2\A 3\A 4\A 5\A 6\A 7\A 8\A 9"; white-space: pre; position: absolute; left: 0; top: 0; color: var(--fm-t);
  transform: translateY(0); transition: transform 1.4s var(--fm-ease); transition-delay: calc(var(--i) * 45ms);
}
.fm-win--light .fm-dg::after { color: var(--fm-on-silver); }
.is-rolled .fm-dg::after, .fm-roll.is-rolled .fm-dg::after { transform: translateY(calc(var(--d) * -1em)); }
html:not(.fm-js) .fm-dg { color: inherit; }
html:not(.fm-js) .fm-dg::after { display: none; }

/* ---------- Film (car page) ---------- */
.fm-film { position: relative; height: 820svh; background: var(--fm-ink); }
@media (max-width: 767px) { .fm-film { height: 520svh; } .fm-loupe { height: 340svh !important; } }
.fm-film__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.fm-film__case { position: absolute; inset: 0; overflow: hidden; background: var(--fm-ink-2); will-change: clip-path; }
.fm-film__canvas, .fm-film__poster { position: absolute; inset: 0; width: 100%; height: 100%; }
.fm-film__poster { object-fit: cover; object-position: 50% 52%; }
.fm-film__shade { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(42rem 18rem at 100% 0%, rgb(8 9 10 / 0.72), rgb(8 9 10 / 0) 70%), linear-gradient(180deg, rgb(8 9 10 / 0.55), rgb(8 9 10 / 0) 22%), linear-gradient(90deg, rgb(8 9 10 / 0.7), rgb(8 9 10 / 0) 55%), linear-gradient(0deg, rgb(8 9 10 / 0.78), rgb(8 9 10 / 0) 42%); }
.fm-film__track { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: 0; z-index: 2; }
.fm-film__ticks { fill: none; stroke: rgb(241 241 239 / 0.22); stroke-width: 6; }
.fm-film__ticks--major { fill: none; stroke: rgb(241 241 239 / 0.42); stroke-width: 10; }
.fm-film__lit { fill: none; stroke: var(--fm-t); stroke-width: 10; }
.fm-film__litmask { fill: none; stroke: #fff; stroke-width: 30; }

.fm-film__title { position: absolute; z-index: 3; left: var(--fm-gx); right: var(--fm-gx); bottom: max(7rem, 16svh); max-width: 46rem; }
/* The maker is the first line of the car's name (inside the heading), set like dial printing. */
.fm-film__maker { display: block; margin-bottom: 0.75em; font: 450 max(0.75rem, 0.16em)/1.2 var(--fm-sans); letter-spacing: 0.2em; text-transform: uppercase; color: var(--fm-t-2); }
.fm-hero__slide-name .fm-film__maker { font-size: 0.72rem; margin-bottom: 0.5rem; }
.fm-film__model { font-family: var(--fm-display); font-weight: 400; font-size: var(--fm-size-plate); line-height: 0.95; letter-spacing: -0.015em; }
.fm-film__model em { display: block; font-style: normal; font-family: var(--fm-sans); font-weight: 300; font-size: 0.24em; letter-spacing: 0.2em; text-transform: uppercase; color: var(--fm-t-2); margin-top: 0.9em; line-height: 1.3; }
.fm-film__line { margin-top: 1.3rem; max-width: 30rem; color: var(--fm-t-2); font-size: var(--fm-size-body); }
.fm-film__go { margin-top: 1.8rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem; }
.fm-film__title [data-intro] { opacity: 0; transform: translateY(1.4rem); filter: blur(8px); }
.fm-film.is-ready .fm-film__title [data-intro], .fm-film.is-static .fm-film__title [data-intro] { opacity: 1; transform: none; filter: none; transition: opacity 1.4s var(--fm-ease), transform 1.6s var(--fm-ease), filter 1.4s var(--fm-ease); }
.fm-film.is-ready .fm-film__title [data-intro="2"] { transition-delay: 0.15s; }
.fm-film.is-ready .fm-film__title [data-intro="3"] { transition-delay: 0.3s; }
.fm-film.is-ready .fm-film__title [data-intro="4"] { transition-delay: 0.45s; }
.fm-film__cue { position: absolute; z-index: 3; right: var(--fm-gx); bottom: 2rem; display: flex; align-items: center; gap: 0.8rem; }
.fm-film__cue i { position: relative; display: block; width: 1px; height: 2.6rem; background: var(--fm-line-2); overflow: hidden; }
.fm-film__cue i::after { content: ""; position: absolute; left: 0; top: 0; width: 1px; height: 40%; background: var(--fm-t); animation: fm-drip 2.2s var(--fm-ease-io) infinite; }
@keyframes fm-drip { 0% { transform: translateY(-100%); } 100% { transform: translateY(260%); } }

.fm-film__acts { position: absolute; z-index: 3; left: var(--fm-gx); bottom: max(5.5rem, 13svh); pointer-events: none; }
.fm-film__act { position: absolute; left: 0; bottom: 0; opacity: 0; white-space: nowrap; display: flex; align-items: baseline; gap: 1rem; }
.fm-film__act b { font: 400 clamp(2.4rem, 5vw, 4.25rem)/1 var(--fm-display); color: var(--fm-t); text-shadow: 0 2px 24px rgb(0 0 0 / 0.7); }
.fm-film__act span { font-size: 0.82rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--fm-t); text-shadow: 0 1px 12px rgb(0 0 0 / 0.9), 0 0 2px rgb(0 0 0 / 0.8); }
.fm-film__hud { position: absolute; z-index: 3; top: calc(var(--fm-header-h) + 1.2rem); right: var(--fm-gx); text-align: right; opacity: 0; text-shadow: 0 1px 14px rgb(0 0 0 / 0.85), 0 0 2px rgb(0 0 0 / 0.7); }
.fm-film__hud .fm-label { color: var(--fm-t); }
.fm-film__skip { position: absolute; z-index: 3; left: var(--fm-gx); top: calc(var(--fm-header-h) + 1.2rem); opacity: 0; pointer-events: none; text-shadow: 0 1px 12px rgb(0 0 0 / 0.85); }
.fm-film__skip.is-on { opacity: 1; pointer-events: auto; }
.fm-film__hud .fm-film__clock { font: 300 clamp(1.3rem, 2.2vw, 1.75rem)/1 var(--fm-sans); letter-spacing: 0.04em; color: var(--fm-t); }
.fm-film__hud .fm-label { display: block; margin-top: 0.5rem; }
.fm-film__hud .fm-film__clock::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--fm-accent); margin-right: 0.6rem; vertical-align: 0.2em; box-shadow: 0 0 0 3px rgb(200 20 28 / 0.18); }

.fm-film__plate { position: absolute; z-index: 3; inset: 0; visibility: hidden; pointer-events: none; }
.fm-film__plate.is-live { pointer-events: auto; }
.fm-film__plate-in { position: absolute; left: var(--fm-gx); right: var(--fm-gx); bottom: max(2rem, 6svh); display: grid; gap: 1.5rem; }
.fm-film__plate .fm-film__model { font-size: clamp(3.2rem, 9vw, 6rem); }
.fm-film__plate-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.25rem 2rem; }
.fm-film__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
@media (max-width: 767px) {
  .fm-film__title { bottom: 6.5rem; }
  .fm-film__plate-in { bottom: calc(5.25rem + env(safe-area-inset-bottom)); gap: 1rem; }
  .fm-film__plate .fm-film__model { font-size: clamp(2.8rem, 13vw, 3.6rem); }
  .fm-film__plate .fm-win { padding: 0.45rem 0.65rem 0.5rem; min-width: 0; }
  .fm-film__plate .fm-win__v { font-size: 1.1rem; }
  .fm-film__plate .fm-win--price .fm-win__v { font-size: 1.25rem; }
  .fm-film__plate .fm-film__actions { display: none; } /* the phone action bar carries Call, WhatsApp, Book */
  .fm-film.is-static .fm-film__plate .fm-film__actions { display: flex; }
  .fm-film.is-static .fm-film__plate-in { bottom: 2rem; }
  .fm-film__shade { background: linear-gradient(0deg, rgb(8 9 10 / 0.92), rgb(8 9 10 / 0.25) 55%, rgb(8 9 10 / 0) 75%); }
  .fm-film__hud { top: calc(var(--fm-header-h) + 0.6rem); }
  .fm-film__cue { display: none; }
}
.fm-film.is-static { height: auto; }
.fm-film.is-static .fm-film__sticky { position: relative; height: 100svh; min-height: 36rem; }
.fm-film.is-static .fm-film__plate { visibility: visible; pointer-events: auto; }
.fm-film.is-static .fm-film__title, .fm-film.is-static .fm-film__acts, .fm-film.is-static .fm-film__hud, .fm-film.is-static .fm-film__cue { display: none; }

/* ---------- Section heads ---------- */
.fm-head { display: grid; gap: 1rem; max-width: 40rem; }
.fm-head .fm-lead { margin-top: 0.25rem; }
.fm-container { width: 100%; max-width: var(--fm-max); margin-inline: auto; padding-inline: var(--fm-gx); box-sizing: border-box; }

/* ---------- Loupe ---------- */
.fm-loupe { position: relative; height: 520svh; background: var(--fm-ink); }
.fm-loupe__stage { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.fm-loupe__plate { position: absolute; left: 0; top: 0; will-change: transform; }
.fm-loupe__plate img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.62) saturate(0.85); }
.fm-loupe__shade { position: absolute; inset: 0; pointer-events: none; transition: background 0.8s var(--fm-ease); background: linear-gradient(180deg, rgb(8 9 10 / 0.88), rgb(8 9 10 / 0) 34%), linear-gradient(90deg, transparent 40%, rgb(8 9 10 / 0.82) 78%); }
.fm-loupe__shade[data-side="left"] { background: linear-gradient(180deg, rgb(8 9 10 / 0.88), rgb(8 9 10 / 0) 34%), linear-gradient(270deg, transparent 40%, rgb(8 9 10 / 0.82) 78%); }
@media (max-width: 767px) { .fm-loupe__shade, .fm-loupe__shade[data-side="left"] { background: linear-gradient(180deg, rgb(8 9 10 / 0.85), rgb(8 9 10 / 0) 22%), linear-gradient(0deg, rgb(8 9 10 / 0.95) 30%, transparent 62%); } }
.fm-loupe__head { position: absolute; z-index: 3; top: calc(var(--fm-header-h) + 1.25rem); left: var(--fm-gx); }
.fm-loupe__head .fm-h2 { text-shadow: 0 2px 30px rgb(0 0 0 / 0.6); }
.fm-loupe__lens {
  --lock: 0;
  position: absolute; left: 0; top: 0; z-index: 2; border-radius: 50%; will-change: transform;
  box-shadow: 0 0 0 1px rgb(241 241 239 / 0.6), 0 0 0 7px rgb(8 9 10 / 0.55), 0 0 0 8px rgb(241 241 239 / 0.25), 0 30px 70px -10px rgb(0 0 0 / 0.85);
}
.fm-loupe__mag, .fm-loupe__close { position: absolute; inset: 0; border-radius: 50%; overflow: hidden; }
.fm-loupe__mag { background-repeat: no-repeat; }
.fm-loupe__close { opacity: 0; transition: opacity 0.7s var(--fm-ease); }
.fm-loupe__close img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.15); transition: transform 1.6s var(--fm-ease); }
.fm-loupe__close.is-on { opacity: calc(var(--lock) * var(--lock)); }
.fm-loupe__close.is-on img { transform: scale(1); }
.fm-loupe__glass { position: absolute; inset: 0; border-radius: 50%; pointer-events: none; background: radial-gradient(circle at 32% 26%, rgb(255 255 255 / 0.18), transparent 32%), radial-gradient(circle at 50% 50%, transparent 62%, rgb(0 0 0 / 0.35)); }
.fm-loupe__bezel { position: absolute; inset: -14px; width: calc(100% + 28px); height: calc(100% + 28px); pointer-events: none; transition: none; }
.fm-loupe__bezel line { stroke: rgb(241 241 239 / 0.55); stroke-width: 1; }
.fm-loupe__bezel line.is-major { stroke: var(--fm-t); stroke-width: 1.6; }
.fm-loupe__no { position: absolute; left: 50%; top: -2.6rem; transform: translateX(-50%); padding: 0.25rem 0.5rem; font: 400 0.95rem/1 var(--fm-display); background: rgb(8 9 10 / 0.75); box-shadow: inset 0 0 0 1px var(--fm-line-2); border-radius: 3px; }
.fm-loupe__leader-svg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 2; }
.fm-loupe__leader { stroke: var(--fm-line-3); stroke-width: 1; stroke-dasharray: 1 1; }
.fm-loupe__card { position: absolute; z-index: 3; left: var(--fm-gx); right: var(--fm-gx); bottom: 6.5rem; min-height: 9rem; transition: opacity 0.4s; }
@media (min-width: 768px) {
  .fm-loupe__card { left: auto; right: var(--fm-gx); bottom: auto; top: 50%; width: min(24rem, 30vw); transform: translateY(-50%); }
  .fm-loupe__card[data-side="left"] { right: auto; left: var(--fm-gx); }
}
.fm-loupe__item { position: absolute; inset: 0 0 auto; opacity: 0; transform: translateY(0.8rem); transition: opacity 0.5s var(--fm-ease), transform 0.8s var(--fm-ease); pointer-events: none; }
.fm-loupe__item.is-on { position: relative; opacity: 1; transform: none; pointer-events: auto; }
.fm-loupe__count { display: flex; align-items: baseline; gap: 0.7rem; margin-bottom: 1rem; }
.fm-loupe__count b { font: 400 clamp(2.6rem, 4.5vw, 3.75rem)/1 var(--fm-display); }
.fm-loupe__item .fm-h3 { margin-bottom: 0.6rem; }
.fm-loupe__item p { color: var(--fm-t-2); }
.fm-loupe__stops { position: absolute; z-index: 3; left: var(--fm-gx); bottom: 2rem; display: flex; gap: 1.25rem; }
.fm-loupe__stops button { display: grid; gap: 0.55rem; text-align: left; padding-block: 0.5rem; }
.fm-loupe__stops button i { position: relative; display: block; width: 4.5rem; height: 1px; background: var(--fm-line-2); overflow: hidden; }
.fm-loupe__stops button i::after { content: ""; position: absolute; inset: 0; background: var(--fm-t); transform: scaleX(0); transform-origin: left; transition: transform 0.7s var(--fm-ease); }
.fm-loupe__stops button span { font-size: 0.7rem; letter-spacing: 0.16em; color: var(--fm-t-3); transition: color 0.4s; }
.fm-loupe__stops button[aria-current="true"] i::after { transform: scaleX(1); }
.fm-loupe__stops button[aria-current="true"] span { color: var(--fm-t); }
@media (hover: hover) { .fm-loupe__stops button:hover i::after { transform: scaleX(0.35); } .fm-loupe__stops button[aria-current="true"]:hover i::after { transform: scaleX(1); } }
@media (min-width: 768px) { .fm-loupe__stops button i { width: 6rem; } }
@media (max-width: 420px) { .fm-loupe__stops { gap: 0.75rem; } .fm-loupe__stops button i { width: 3.6rem; } }
@media (max-width: 899px) {
  .fm-loupe__stops { bottom: calc(5.25rem + env(safe-area-inset-bottom)); }
  .fm-loupe__card { bottom: calc(8.75rem + env(safe-area-inset-bottom)); }
}

/* ---------- Chronograph ---------- */
.fm-chrono { position: relative; height: 300svh; background: var(--fm-ink-2); }
.fm-chrono__stage { position: sticky; top: 0; min-height: 100svh; display: grid; align-content: center; gap: 2.25rem; padding: calc(var(--fm-header-h) + 1rem) var(--fm-gx) 2rem; box-sizing: border-box; overflow: hidden; }
.fm-chrono__stage::before { content: ""; position: absolute; inset: 0; background: var(--fm-sunray-dark) 30% 50% / 140vmax auto no-repeat; opacity: 0.55; pointer-events: none; }
@media (min-width: 960px) { .fm-chrono__stage { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); align-items: center; gap: 4rem; max-width: 96rem; margin-inline: auto; } }
.fm-chrono__watch { position: relative; width: min(84vw, 58svh, 40rem); aspect-ratio: 1; justify-self: center; }
@media (min-width: 960px) { .fm-chrono__watch { width: min(42vw, 78svh, 44rem); } }
.fm-chrono__dial { position: absolute; inset: 0; filter: drop-shadow(0 40px 60px rgb(0 0 0 / 0.75)); }
.fm-chrono__svg { width: 100%; height: 100%; overflow: visible; }
.fm-ch-case { fill: #2b2c30; stroke: rgb(241 241 239 / 0.35); stroke-width: 1.5; }
.fm-ch-bezel { fill: #0b0c0e; stroke: rgb(241 241 239 / 0.2); stroke-width: 1; }
.fm-ch-bezel-lit { fill: none; stroke: var(--fm-accent); stroke-width: 3; opacity: 0.95; }
.fm-ch-btick { stroke: rgb(241 241 239 / 0.45); stroke-width: 1; }
.fm-ch-btick--major { stroke: var(--fm-t); stroke-width: 1.6; }
.fm-ch-bnum { fill: var(--fm-t); font: 400 15px var(--fm-sans); letter-spacing: 0.06em; text-anchor: middle; dominant-baseline: central; }
.fm-ch-bnum--unit { font-size: 11px; letter-spacing: 0.24em; fill: var(--fm-t-2); }
.fm-ch-face-ground { fill: #cfd0ce; }
.fm-ch-ray { fill: rgb(255 255 255 / 0.32); mix-blend-mode: soft-light; }
.fm-ch-light { transform-box: view-box; }
.fm-ch-tick { stroke: var(--fm-on-silver-2); stroke-width: 0.8; }
.fm-ch-tick--big { stroke: var(--fm-on-silver); stroke-width: 2; }
.fm-ch-num { fill: var(--fm-on-silver); font: 400 21px var(--fm-display); text-anchor: middle; dominant-baseline: central; }
.fm-ch-zero-mark { stroke: var(--fm-accent); stroke-width: 3; }
.fm-ch-sub-well { fill: rgb(18 19 21 / 0.06); stroke: rgb(18 19 21 / 0.35); stroke-width: 0.8; }
.fm-ch-sub-tick { stroke: var(--fm-on-silver-2); stroke-width: 0.8; }
.fm-ch-sub-num { fill: var(--fm-on-silver-2); font: 450 9px var(--fm-sans); text-anchor: middle; dominant-baseline: central; }
.fm-ch-sub-unit { fill: var(--fm-on-silver); font: 500 10px var(--fm-sans); letter-spacing: 0.2em; text-anchor: middle; }
.fm-ch-sub-needle { stroke: var(--fm-on-silver); stroke-width: 2; stroke-linecap: round; }
.fm-ch-sub-hand { transition: none; }
.fm-ch-pin { fill: var(--fm-on-silver); }
.fm-ch-window { fill: #f4f4f2; stroke: rgb(18 19 21 / 0.55); stroke-width: 1; filter: drop-shadow(0 1px 0 rgb(255 255 255 / 0.6)); }
.fm-ch-window-text { fill: var(--fm-on-silver); font: 400 25px var(--fm-display); text-anchor: middle; font-variant-numeric: tabular-nums; }
.fm-ch-label { fill: var(--fm-on-silver-2); font: 500 9.5px var(--fm-sans); letter-spacing: 0.22em; text-anchor: middle; }
.fm-ch-hh { fill: #1d1e21; stroke: rgb(255 255 255 / 0.25); stroke-width: 0.6; }
.fm-ch-sec-needle { stroke: var(--fm-accent); stroke-width: 2.2; stroke-linecap: round; }
.fm-ch-sec-weight { fill: var(--fm-accent); }
.fm-ch-cap { fill: #1d1e21; stroke: rgb(255 255 255 / 0.35); stroke-width: 0.8; }
.fm-ch-cap-dot { fill: var(--fm-accent); }
.fm-chrono__pusher {
  position: absolute; right: -2.6%; width: 8.5%; height: 6%; border-radius: 3px 8px 8px 3px;
  background: linear-gradient(180deg, #e4e4e2, #8f9091); box-shadow: inset 0 1px 0 #fff, 0 4px 10px rgb(0 0 0 / 0.5);
  transform-origin: left center; transition: transform 0.25s var(--fm-ease);
}
.fm-chrono__pusher:active { transform: translateX(-24%); }
.fm-chrono__pusher--start { top: 19%; transform: rotate(-38deg); right: 9%; }
.fm-chrono__pusher--reset { bottom: 19%; transform: rotate(38deg); right: 9%; }
.fm-chrono__pusher--start:active { transform: rotate(-38deg) translateX(-24%); }
.fm-chrono__pusher--reset:active { transform: rotate(38deg) translateX(-24%); }
.fm-chrono__pusher span { position: absolute; left: 115%; top: 50%; transform: translateY(-50%) rotate(var(--r, 38deg)); white-space: nowrap; font-size: 0.65rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--fm-t-2); }
.fm-chrono__pusher--reset span { --r: -38deg; }
.fm-chrono__pusher--start span { --r: 38deg; }
@media (max-width: 959px) { .fm-chrono__pusher span { display: none; } }
.fm-chrono__info { position: relative; display: grid; gap: 1.6rem; }
.fm-chrono__rows { border-top: 1px solid var(--fm-line); }
.fm-chrono__row { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 1rem; padding: 0.85rem 0; border-bottom: 1px solid var(--fm-line); transition: color 0.6s var(--fm-ease); color: var(--fm-t-3); }
.fm-chrono__row dt { font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; }
.fm-chrono__row dd { margin: 0; font: 400 clamp(1.25rem, 2vw, 1.6rem)/1 var(--fm-display); color: var(--fm-t-2); transition: color 0.6s var(--fm-ease), transform 0.8s var(--fm-ease); transform: translateX(0.4rem); text-align: right; }
.fm-chrono__row dd small { font: 400 0.75rem var(--fm-sans); letter-spacing: 0.1em; margin-left: 0.3em; color: var(--fm-t-3); }
.fm-chrono__row.is-lit { color: var(--fm-t-2); }
.fm-chrono__row.is-lit dd { color: var(--fm-t); transform: none; }
.fm-chrono__row.is-lit dt::before { content: ""; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--fm-silver); margin-right: 0.6rem; vertical-align: 0.15em; }
.fm-chrono__row--text.is-lit dt::before { display: none; }
.fm-chrono__pusher::before { content: ""; position: absolute; inset: -14px -10px; }
.fm-chrono__row--text dd { font-family: var(--fm-sans); font-size: 0.95rem; letter-spacing: 0; color: var(--fm-t-2); transform: none; max-width: 18rem; line-height: 1.4; }
.fm-chrono__note { font-size: 0.8rem; color: var(--fm-t-3); }
@media (max-width: 959px) { .fm-chrono { height: auto; } .fm-chrono__stage { position: relative; padding-block: var(--fm-sec); } }

/* ---------- Spec sheet: a silver plate ---------- */
.fm-plate {
  position: relative; color: var(--fm-on-silver); background-color: var(--fm-silver); isolation: isolate;
}
.fm-plate::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--fm-sunray) 50% 50% / cover no-repeat; opacity: 0.9; }
.fm-footer.fm-plate::before { background-position: 50% 42%; }
.fm-plate::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(80% 60% at 50% 0%, rgb(255 255 255 / 0.35), transparent 70%), linear-gradient(rgb(0 0 0 / 0), rgb(0 0 0 / 0.08)); }
.fm-plate .fm-label { color: var(--fm-on-silver-2); }
.fm-plate .fm-lead, .fm-plate .fm-prose { color: var(--fm-on-silver-2); }
.fm-plate ::selection { background: var(--fm-on-silver); color: var(--fm-t); }
.fm-plate :focus-visible { outline-color: var(--fm-on-silver); }
.fm-sheet { padding-block: var(--fm-sec); }
.fm-sheet__grid { display: grid; gap: 3rem; }
@media (min-width: 960px) { .fm-sheet__grid { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 5rem; } }
.fm-sheet__facts { display: grid; border-top: 1px solid var(--fm-on-silver-line); }
.fm-sheet__facts div { display: grid; grid-template-columns: 9rem 1fr; gap: 1rem; padding: 0.95rem 0; border-bottom: 1px solid var(--fm-on-silver-line); }
.fm-sheet__facts dt { font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--fm-on-silver-2); padding-top: 0.25em; }
.fm-sheet__facts dd { margin: 0; font-size: 1.02rem; }
.fm-sheet__facts .fm-sheet__price dd { font: 400 1.6rem/1.1 var(--fm-display); }
.fm-sheet__features { columns: 1; column-gap: 3rem; margin-top: 1.6rem; }
@media (min-width: 640px) { .fm-sheet__features { columns: 2; } }
.fm-sheet__features li { break-inside: avoid; position: relative; padding: 0.55rem 0 0.55rem 1.5rem; border-bottom: 1px solid var(--fm-on-silver-line); font-size: 0.97rem; }
.fm-sheet__features li::before { content: ""; position: absolute; left: 0; top: 1.15rem; width: 0.65rem; height: 1px; background: var(--fm-on-silver); }
.fm-sheet__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2.5rem; }
.fm-plate .fm-btn--ghost { color: var(--fm-on-silver); box-shadow: inset 0 0 0 1px rgb(18 19 21 / 0.35); }
@media (hover: hover) { .fm-plate .fm-btn--ghost:hover { background: rgb(18 19 21 / 0.06); } }

/* ---------- Gallery ---------- */
.fm-gallery { position: relative; background: var(--fm-ink); padding-block: var(--fm-sec) 0; }
.fm-gallery__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2.5rem; }
.fm-gallery__count { font: 400 1.25rem/1 var(--fm-display); color: var(--fm-t-2); }
.fm-gallery__count b { font-weight: 400; color: var(--fm-t); font-size: 2.25rem; }
.fm-gallery__track { display: flex; gap: 0.75rem; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 var(--fm-gx) var(--fm-sec); scrollbar-width: none; overscroll-behavior-x: contain; }
.fm-gallery__track::-webkit-scrollbar { display: none; }
.fm-gallery__frame { position: relative; flex: none; width: 74vw; scroll-snap-align: center; text-decoration: none; display: grid; gap: 0.7rem; }
.fm-gallery__frame > span:first-child { position: relative; display: block; overflow: hidden; border-radius: 6px; aspect-ratio: 3 / 4; background: var(--fm-ink-3); }
.fm-gallery__frame img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); transition: filter 0.6s var(--fm-ease); }
.fm-gallery__frame small { font-size: 0.7rem; letter-spacing: 0.16em; color: var(--fm-t-3); }
@media (hover: hover) { .fm-gallery__frame:hover img { filter: brightness(1.08); } }
.fm-gallery.is-pinned { padding: 0; }
.fm-gallery.is-pinned .fm-gallery__stage { position: sticky; top: 0; height: 100svh; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr) auto; padding-top: calc(var(--fm-header-h) + 1.5rem); padding-bottom: 1.5rem; box-sizing: border-box; overflow: hidden; }
.fm-gallery.is-pinned .fm-gallery__head { margin-bottom: 1.5rem; }
.fm-gallery.is-pinned .fm-gallery__track { overflow: visible; padding-bottom: 0; align-items: stretch; width: max-content; height: 100%; min-height: 0; will-change: transform; scroll-snap-type: none; }
.fm-gallery.is-pinned .fm-gallery__frame { width: auto; height: 100%; min-height: 0; grid-template-rows: minmax(0, 1fr) auto; }
.fm-gallery.is-pinned .fm-gallery__frame > span:first-child { height: 100%; aspect-ratio: 3 / 4; }
.fm-gallery.is-pinned .fm-gallery__frame:nth-child(3n + 2) > span:first-child { height: 84%; align-self: end; }
.fm-gallery__progress { display: none; }
.fm-gallery.is-pinned .fm-gallery__progress { display: block; margin: 1.25rem var(--fm-gx) 0; height: 1px; background: var(--fm-line); }
.fm-gallery__progress i { display: block; height: 1px; background: var(--fm-t); transform-origin: left; transform: scaleX(0); }
@media (min-width: 640px) { .fm-gallery__frame { width: 44vw; } }

.fm-viewer { width: 100vw; height: 100svh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgb(8 9 10 / 0.97); color: var(--fm-t); }
.fm-viewer::backdrop { background: rgb(0 0 0 / 0.6); }
.fm-viewer[open] { display: grid; grid-template-rows: auto 1fr auto; animation: fm-fade 0.5s var(--fm-ease); }
.fm-viewer__bar { display: flex; justify-content: space-between; align-items: center; padding: 1rem var(--fm-gx); }
.fm-viewer__stage { display: grid; place-items: center; min-height: 0; padding: 0 var(--fm-gx); }
.fm-viewer__img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 4px; opacity: 0; transform: scale(0.985); transition: opacity 0.5s var(--fm-ease), transform 0.7s var(--fm-ease); }
.fm-viewer__img.is-in { opacity: 1; transform: none; }
.fm-viewer__nav { display: flex; justify-content: center; gap: 0.75rem; padding: 1rem; }
@keyframes fm-fade { from { opacity: 0; } }

/* ---------- Booking / forms ---------- */
.fm-book { padding-block: var(--fm-sec); background: var(--fm-ink); position: relative; }
.fm-book__grid { display: grid; gap: 3.5rem; }
@media (min-width: 1024px) { .fm-book__grid { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 5rem; align-items: start; } }
.fm-book__aside { display: grid; gap: 2rem; align-content: start; }
@media (min-width: 1024px) { .fm-book__aside { position: sticky; top: calc(var(--fm-header-h) + 2rem); } }
.fm-contact-list { display: grid; gap: 0; border-top: 1px solid var(--fm-line); }
.fm-contact-list a, .fm-contact-list p { display: flex; justify-content: space-between; gap: 1rem; padding: 0.9rem 0; border-bottom: 1px solid var(--fm-line); text-decoration: none; color: var(--fm-t); }
.fm-contact-list span { font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--fm-t-3); padding-top: 0.2em; }
.fm-contact-list a { transition: border-color 0.5s var(--fm-ease); }
.fm-contact-list a span { transition: color 0.4s var(--fm-ease), transform 0.6s var(--fm-ease); }
@media (hover: hover) { .fm-contact-list a:hover { border-bottom-color: var(--fm-line-3); } .fm-contact-list a:hover span { color: var(--fm-t); transform: translateX(0.35rem); } }

.fm-form { display: grid; gap: 1.4rem; position: relative; }
.fm-form__row { display: grid; gap: 1.4rem; }
@media (min-width: 640px) { .fm-form__row--2 { grid-template-columns: 1fr 1fr; } .fm-form__row--3 { grid-template-columns: 1fr 1fr 1fr; } }
.fm-field { display: grid; gap: 0.5rem; min-width: 0; }
.fm-field > span, .fm-fieldset > legend { font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--fm-t-2); }
.fm-field > span i { font-style: normal; color: var(--fm-t-3); letter-spacing: 0.06em; text-transform: none; }
.fm-input, .fm-site select.fm-select, .fm-textarea {
  width: 100%; box-sizing: border-box; min-height: 3.25rem; padding: 0.8rem 0; border: 0; border-bottom: 1px solid var(--fm-line-2); border-radius: 0;
  background-color: transparent; color: var(--fm-t); font: 350 1.0625rem/1.4 var(--fm-sans);
  transition: border-color 0.4s var(--fm-ease), background-size 0.6s var(--fm-ease);
  background-image: linear-gradient(var(--fm-t), var(--fm-t)); background-repeat: no-repeat; background-size: 0 1px; background-position: 0 100%;
}
.fm-site select.fm-select { appearance: none; padding-right: 1.8rem; background-image: linear-gradient(var(--fm-t), var(--fm-t)), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23b8b9ba' stroke-width='1.2'/%3E%3C/svg%3E"); background-repeat: no-repeat, no-repeat; background-size: 0 1px, 12px 8px; background-position: 0 100%, right 0.2rem center; }
.fm-site select.fm-select option { background: var(--fm-ink-3); color: var(--fm-t); }
.fm-textarea { min-height: 7rem; resize: vertical; }
.fm-input::placeholder, .fm-textarea::placeholder { color: var(--fm-t-3); }
.fm-input:focus, .fm-site select.fm-select:focus, .fm-textarea:focus { outline: none; border-bottom-color: transparent; background-size: 100% 1px; }
.fm-site select.fm-select:focus { background-size: 100% 1px, 12px 8px; }
.fm-input:user-invalid, .fm-textarea:user-invalid { border-bottom-color: #e0656b; }
.fm-input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(0.85); cursor: pointer; }
.fm-input[type="file"] { padding: 0.9rem 0; font-size: 0.9rem; }
.fm-input[type="file"]::file-selector-button { margin-right: 1rem; padding: 0.55rem 1rem; border-radius: 999px; border: 0; background: var(--fm-silver); color: var(--fm-on-silver); font: 500 0.75rem var(--fm-sans); letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; }
.fm-fieldset { border: 0; padding: 0; margin: 0; min-width: 0; display: grid; gap: 0.8rem; }
.fm-choices { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.fm-choice { position: relative; }
.fm-choice input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.fm-choice span { display: inline-flex; align-items: center; min-height: 2.6rem; padding: 0 1.1rem; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--fm-line-2); font-size: 0.9rem; transition: background-color 0.35s var(--fm-ease), color 0.35s var(--fm-ease), box-shadow 0.35s; }
.fm-choice input:checked + span { background: var(--fm-silver); color: var(--fm-on-silver); box-shadow: none; }
.fm-choice input:focus-visible + span { outline: 1.5px solid var(--fm-silver); outline-offset: 3px; }
.fm-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.fm-form__foot { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; margin-top: 0.6rem; }
.fm-form__status { min-height: 1.4em; font-size: 0.92rem; color: var(--fm-t-2); }
.fm-form__status[data-kind="error"] { color: #f0a0a4; }
.fm-form__status[data-kind="ok"] { color: var(--fm-t); }
.fm-form__fine { font-size: 0.8rem; color: var(--fm-t-3); max-width: 38rem; }
.fm-form.is-sent > :not(.fm-form__done) { display: none; }
.fm-form__done { padding: 2.5rem 0; display: grid; gap: 1.2rem; animation: fm-fade 0.8s var(--fm-ease); }
.fm-form__done .fm-h3 { font-size: var(--fm-size-h2); }
.fm-form__msg { font-size: 0.85rem; color: var(--fm-t-2); min-height: 1.2em; }

/* Time dial */
.fm-dial { --size: min(86vw, 21rem); }
.fm-dial__wrap { display: grid; gap: 1.5rem; align-items: center; }
@media (min-width: 640px) { .fm-dial__wrap { grid-template-columns: auto 1fr; } }
.fm-dial__face { position: relative; width: var(--size); aspect-ratio: 1; border-radius: 50%; background: var(--fm-sunray-dark) center / cover; box-shadow: inset 0 0 0 1px var(--fm-line-2), 0 0 0 6px rgb(241 241 239 / 0.03), 0 30px 60px -20px rgb(0 0 0 / 0.8); }
.fm-dial__opt { position: absolute; left: 50%; top: 50%; width: 2.5rem; height: 2.5rem; margin: -1.25rem 0 0 -1.25rem; transform: rotate(var(--a)) translateY(calc(var(--size) * -0.42)) rotate(calc(var(--a) * -1)); }
.fm-dial__opt input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; z-index: 1; }
.fm-dial__opt span { position: absolute; inset: 0.1rem; display: grid; place-items: center; border-radius: 50%; font: 500 0.68rem/1 var(--fm-sans); letter-spacing: -0.01em; letter-spacing: 0.02em; color: var(--fm-t-2); transition: background-color 0.35s var(--fm-ease), color 0.35s, transform 0.5s var(--fm-ease); }
.fm-dial__opt span::before { content: ""; position: absolute; inset: 0; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--fm-line); }
@media (hover: hover) { .fm-dial__opt input:hover + span { color: var(--fm-t); } }
.fm-dial__opt input:checked + span { background: var(--fm-silver); color: var(--fm-on-silver); transform: scale(1.18); }
.fm-dial__opt input:focus-visible + span { outline: 1.5px solid var(--fm-silver); outline-offset: 3px; }
.fm-dial__opt.is-off span { opacity: 0.22; text-decoration: line-through; }
.fm-dial__opt.is-off input { cursor: not-allowed; }
.fm-dial__hand, .fm-dial__min { position: absolute; left: 50%; bottom: 50%; transform-origin: 50% 100%; border-radius: 2px; transition: transform 0.9s var(--fm-ease); pointer-events: none; }
.fm-dial__hand { width: 4px; height: 24%; margin-left: -2px; background: var(--fm-t); }
.fm-dial__min { width: 2px; height: 33%; margin-left: -1px; background: var(--fm-accent); }
.fm-dial__face::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; margin: -6px; border-radius: 50%; background: var(--fm-ink); box-shadow: 0 0 0 2px var(--fm-t); }
.fm-dial:not(.has-time) .fm-dial__hand, .fm-dial:not(.has-time) .fm-dial__min { opacity: 0.25; }
.fm-dial__out { font: 400 clamp(2.6rem, 6vw, 3.6rem)/1 var(--fm-display); }
.fm-dial__out[data-empty]:empty::before { content: attr(data-empty); font: 350 1rem var(--fm-sans); color: var(--fm-t-3); }

/* ---------- Next car ---------- */
.fm-next { position: relative; display: block; overflow: hidden; text-decoration: none; min-height: 70svh; isolation: isolate; }
.fm-next img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transform: scale(1.18); transition: transform 1.8s var(--fm-ease), filter 1s var(--fm-ease); filter: brightness(0.5); }
.fm-next::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgb(8 9 10 / 0.9), transparent 70%); }
.fm-next__in { position: absolute; left: var(--fm-gx); right: var(--fm-gx); bottom: 3rem; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem; }
.fm-next__name { font: 400 clamp(3rem, 9vw, 6rem)/0.95 var(--fm-display); }
@media (hover: hover) and (pointer: fine) { .fm-next:hover img { transform: scale(1.1); filter: brightness(0.7); } }

/* ---------- Footer: the dial ---------- */
.fm-footer { color: var(--fm-on-silver); overflow: hidden; }
.fm-footer__plate { padding-block: clamp(4.5rem, 9vw, 7.5rem) 2rem; }
@media (max-width: 899px) { .fm-footer__plate { padding-bottom: calc(5.5rem + env(safe-area-inset-bottom)); } }
.fm-footer__grid { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .fm-footer__grid { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1.15fr); gap: clamp(2.5rem, 4vw, 4.5rem); } }
.fm-footer__lead { display: grid; gap: 1.5rem; align-content: start; }
.fm-footer__lead .fm-h2 { max-width: 15em; font-size: clamp(1.9rem, 2.5vw, 2.6rem); line-height: 1.08; }
.fm-footer__clock { position: relative; width: min(78vw, 22rem); aspect-ratio: 1; justify-self: center; border-radius: 50%; }
.fm-footer__clock svg { width: 100%; height: 100%; overflow: visible; }
.fm-fc-case { fill: none; stroke: rgb(18 19 21 / 0.4); stroke-width: 1; }
.fm-fc-ring { fill: rgb(18 19 21 / 0.04); stroke: rgb(18 19 21 / 0.2); }
.fm-fc-tick { stroke: rgb(18 19 21 / 0.45); stroke-width: 0.8; }
.fm-fc-tick--h { stroke: var(--fm-on-silver); stroke-width: 2.2; }
.fm-fc-num { fill: var(--fm-on-silver); font: 400 15px var(--fm-display); text-anchor: middle; dominant-baseline: central; }
.fm-fc-hours { fill: none; stroke: var(--fm-on-silver); stroke-width: 4; stroke-linecap: butt; opacity: 0.85; }
.fm-fc-hours--sat { opacity: 0.4; stroke-dasharray: 2 3; }
.fm-fc-text { fill: var(--fm-on-silver-2); font: 500 7.5px var(--fm-sans); letter-spacing: 0.22em; text-anchor: middle; }
.fm-fc-h, .fm-fc-m { fill: var(--fm-on-silver); }
.fm-fc-s { stroke: var(--fm-red); stroke-width: 1.2; }
.fm-fc-sw { fill: var(--fm-red); }
.fm-fc-cap { fill: var(--fm-on-silver); }
.fm-footer__cols { display: grid; gap: 2rem; grid-template-columns: 1fr 1fr; align-content: start; }
.fm-footer__cols h3 { font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 500; color: var(--fm-on-silver-2); margin-bottom: 0.9rem; }
.fm-footer__cols li + li { margin-top: 0.4rem; }
.fm-footer__cols a { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size 0.5s var(--fm-ease); }
@media (hover: hover) { .fm-footer__cols a:hover { background-size: 100% 1px; } }
.fm-footer__cols address { font-style: normal; }
.fm-footer__hours { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 1rem; font-size: 0.95rem; }
.fm-footer__hours dt { color: var(--fm-on-silver-2); }
.fm-footer__hours dd { margin: 0; white-space: nowrap; }
.fm-footer__word { margin-top: clamp(3rem, 7vw, 6rem); }
.fm-footer__word img { width: 100%; height: auto; opacity: 0.88; }
.fm-footer__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem 2rem; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--fm-on-silver-line); font-size: 0.8rem; color: var(--fm-on-silver-2); }
.fm-footer__base a { color: var(--fm-on-silver); }

/* ---------- Phone action bar ---------- */
.fm-actionbar {
  position: fixed; z-index: 40; left: 0.75rem; right: 0.75rem; bottom: calc(0.75rem + env(safe-area-inset-bottom));
  display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: 0.4rem; padding: 0.4rem; border-radius: 999px;
  background: rgb(20 21 24 / 0.92); box-shadow: inset 0 0 0 1px var(--fm-line), 0 20px 40px -10px rgb(0 0 0 / 0.8);
  transform: translateY(160%); transition: transform 0.7s var(--fm-ease);
}
.fm-actionbar.is-shown { transform: none; }
.fm-actionbar a { display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem; min-height: 2.9rem; border-radius: 999px; text-decoration: none; font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 500; -webkit-tap-highlight-color: transparent; }
.fm-actionbar a:last-child { background: var(--fm-silver); color: var(--fm-on-silver); }
.fm-actionbar svg { width: 1rem; height: 1rem; }
@media (min-width: 900px) { .fm-actionbar { display: none; } }
.fm-menu-open .fm-actionbar { transform: translateY(160%); }

/* ---------- Home hero ---------- */
.fm-hero { position: relative; height: 100svh; min-height: 38rem; overflow: hidden; background: var(--fm-ink-2) var(--fm-sunray-dark) 70% 40% / max(110vw, 110vh) auto no-repeat; }
.fm-hero__canvas, .fm-hero__poster { position: absolute; inset: 0; width: 100%; height: 100%; }
.fm-hero__poster { object-fit: cover; }
.fm-hero__shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgb(8 9 10 / 0.78), rgb(8 9 10 / 0.1) 60%), linear-gradient(0deg, rgb(8 9 10 / 0.85), rgb(8 9 10 / 0) 45%); }
@media (max-width: 767px) {
  .fm-hero__shade { background: linear-gradient(0deg, rgb(8 9 10 / 0.97) 38%, rgb(8 9 10 / 0.55) 62%, rgb(8 9 10 / 0.15) 78%, rgb(8 9 10 / 0.7)); }
  .fm-hero__intro h1 { font-size: clamp(2.1rem, 9vw, 2.6rem); }
  .fm-hero__intro p { display: none; }
  .fm-hero__in { gap: 1.25rem; }
}
.fm-hero__in { position: absolute; inset: auto var(--fm-gx) max(2rem, 5svh); display: grid; gap: 2rem; }
@media (min-width: 1024px) { .fm-hero__in { grid-template-columns: minmax(0, 1fr) auto; align-items: end; } }
.fm-hero__intro h1 { font-size: clamp(2.5rem, 5.8vw, 5.25rem); max-width: 11em; }
.fm-hero__intro p { margin-top: 1.1rem; max-width: 30rem; color: var(--fm-t-2); }
.fm-hero__intro [data-intro] { opacity: 0; transform: translateY(1.4rem); filter: blur(8px); }
.fm-hero.is-ready .fm-hero__intro [data-intro] { opacity: 1; transform: none; filter: none; transition: opacity 1.4s var(--fm-ease), transform 1.6s var(--fm-ease), filter 1.4s var(--fm-ease); }
.fm-hero.is-ready .fm-hero__intro [data-intro="2"] { transition-delay: 0.14s; }
html:not(.fm-js) .fm-hero__intro [data-intro], .fm-reduced .fm-hero__intro [data-intro] { opacity: 1; transform: none; filter: none; }
.fm-hero__panel { display: grid; gap: 1.25rem; width: min(100%, 31rem); }
.fm-hero__slide-name svg { width: 0.55em; height: 0.55em; flex: none; transition: transform 0.6s var(--fm-ease); }
@media (hover: hover) { .fm-hero__slide-name:hover svg { transform: translateX(0.15em); } }
.fm-hero__slides { position: relative; display: grid; align-items: end; }
.fm-hero__slide { grid-area: 1 / 1; display: grid; gap: 0.85rem; opacity: 0; transform: translateX(-1.5rem); filter: blur(6px); transition: opacity 0.7s var(--fm-ease), transform 1s var(--fm-ease), filter 0.7s var(--fm-ease); pointer-events: none; }
.fm-hero__slide.is-on { opacity: 1; transform: none; filter: none; pointer-events: auto; transition-delay: 0.35s; }
.fm-hero__slide-name { font: 400 clamp(1.9rem, 3.2vw, 2.6rem)/1 var(--fm-display); text-decoration: none; display: inline-flex; align-items: center; gap: 0.6em; }
.fm-hero__slide-name small { font: 400 0.72rem/1 var(--fm-sans); letter-spacing: 0.18em; text-transform: uppercase; color: var(--fm-t-2); display: block; margin-bottom: 0.5rem; }
.fm-hero__controls { display: flex; align-items: center; gap: 1rem; }
.fm-hero__picks { display: flex; gap: 0.35rem; flex: 1; }
.fm-hero__picks button { flex: 1; display: grid; gap: 0.6rem; text-align: left; padding: 0.5rem 0; min-width: 0; }
.fm-hero__picks i { position: relative; display: block; height: 1px; background: var(--fm-line-2); overflow: hidden; }
.fm-hero__picks i::after { content: ""; position: absolute; inset: 0; background: var(--fm-t); transform: scaleX(0); transform-origin: left; }
.fm-hero__picks [aria-pressed="true"] i::after { animation: fm-fill 7s linear forwards; }
.fm-hero.is-paused .fm-hero__picks [aria-pressed="true"] i::after { animation-play-state: paused; }
@media (hover: hover) { .fm-hero:hover .fm-hero__picks [aria-pressed="true"] i::after { animation-play-state: paused; } }
.fm-hero__picks span { font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--fm-t-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color 0.4s; }
.fm-hero__picks [aria-pressed="true"] span { color: var(--fm-t); }
@keyframes fm-fill { to { transform: scaleX(1); } }
.fm-hero__pause { width: 2.5rem; height: 2.5rem; }
.fm-hero__pause svg { width: 0.85rem; height: 0.85rem; }
.fm-hero__pause .fm-i-play { display: none; }
.fm-hero.is-paused .fm-hero__pause .fm-i-play { display: block; }
.fm-hero.is-paused .fm-hero__pause .fm-i-pause { display: none; }
.fm-hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.6rem; }

/* ---------- Home: the unveiling (satin cover pulled off by the scroll) ---------- */
.fm-unveil { position: relative; height: 520svh; background: var(--fm-ink); }
@media (max-width: 767px) { .fm-unveil { height: 380svh; } }
.fm-unveil__sticky { position: sticky; top: 0; height: 100svh; min-height: 34rem; overflow: hidden; background: var(--fm-ink-2); }
.fm-unveil__canvas, .fm-unveil__poster { position: absolute; inset: 0; width: 100%; height: 100%; }
.fm-unveil__poster { object-fit: cover; }
.fm-unveil__shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgb(8 9 10 / 0.72), rgb(8 9 10 / 0) 26%), linear-gradient(90deg, rgb(8 9 10 / 0.6), rgb(8 9 10 / 0) 50%), linear-gradient(0deg, rgb(8 9 10 / 0.75), rgb(8 9 10 / 0) 40%); }
@media (max-width: 767px) { .fm-unveil__shade { background: linear-gradient(180deg, rgb(8 9 10 / 0.94) 0, rgb(8 9 10 / 0.86) 26%, rgb(8 9 10 / 0.35) 40%, rgb(8 9 10 / 0) 50%), linear-gradient(0deg, rgb(8 9 10 / 0.95), rgb(8 9 10 / 0.35) 40%, rgb(8 9 10 / 0) 60%); } }
.fm-unveil__title { position: absolute; z-index: 3; left: var(--fm-gx); right: var(--fm-gx); top: calc(var(--fm-header-h) + clamp(2rem, 8svh, 5rem)); max-width: 40rem; }
.fm-unveil__title .fm-h1 { font-size: clamp(2.3rem, 5.4vw, 5rem); max-width: 11em; text-shadow: 0 2px 30px rgb(0 0 0 / 0.55); }
.fm-unveil__title .fm-lead { margin-top: 1rem; max-width: 30rem; }
.fm-unveil__go { margin-top: 1.6rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem; }
.fm-unveil__title [data-intro] { opacity: 0; transform: translateY(1.2rem); filter: blur(6px); }
.fm-unveil.is-ready .fm-unveil__title [data-intro], .fm-unveil.is-static .fm-unveil__title [data-intro] { opacity: 1; transform: none; filter: none; transition: opacity 1.4s var(--fm-ease), transform 1.6s var(--fm-ease), filter 1.4s var(--fm-ease); }
.fm-unveil.is-ready .fm-unveil__title [data-intro="2"] { transition-delay: 0.2s; }
.fm-unveil.is-ready .fm-unveil__title [data-intro="3"] { transition-delay: 0.35s; }
.fm-motion .fm-unveil__title [data-intro="1"] { filter: none; transform: none; }
.fm-motion .fm-unveil.is-ready .is-split[data-intro] .fm-wi { transform: none; transition-delay: calc(0.1s + var(--i) * var(--fm-stagger)); }
.fm-unveil__hud { position: absolute; z-index: 3; right: var(--fm-gx); top: calc(var(--fm-header-h) + 1.2rem); opacity: 0; color: var(--fm-t); text-shadow: 0 1px 12px rgb(0 0 0 / 0.85); }
.fm-unveil__hud::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--fm-accent); margin-right: 0.6rem; vertical-align: 0.05em; }
.fm-unveil__plate { position: absolute; z-index: 3; inset: 0; visibility: hidden; pointer-events: none; }
.fm-unveil__plate.is-live { pointer-events: auto; }
.fm-unveil__plate .fm-film__model { font-size: clamp(3rem, 8.4vw, 6rem); }
html:not(.fm-js) .fm-unveil, .fm-unveil.is-static { height: auto; }
html:not(.fm-js) .fm-unveil__title [data-intro] { opacity: 1; transform: none; filter: none; }
.fm-unveil.is-static .fm-unveil__sticky, html:not(.fm-js) .fm-unveil__sticky { position: relative; height: 100svh; }
.fm-unveil.is-static .fm-unveil__plate, html:not(.fm-js) .fm-unveil__plate { visibility: visible; pointer-events: auto; }
.fm-unveil.is-static .fm-unveil__cue, .fm-unveil.is-static .fm-unveil__hud, .fm-unveil.is-static [data-fm-unveil-play] { display: none; }
@media (max-width: 767px) {
  .fm-unveil__plate .fm-film__plate-in { bottom: calc(5.25rem + env(safe-area-inset-bottom)); }
  .fm-unveil__plate .fm-film__model { font-size: clamp(2.6rem, 12vw, 3.4rem); }
  .fm-unveil__plate .fm-film__actions .fm-btn--ghost { display: none; }
  .fm-unveil__title .fm-lead { display: none; }
  .fm-unveil.is-static .fm-unveil__plate .fm-film__plate-in { bottom: 2rem; }
}

/* ---------- Home: the turntable (cover off, then the 360° film on the scroll) ---------- */
.fm-tt { position: relative; height: 900svh; background: var(--fm-ink); }
@media (max-width: 767px) { .fm-tt { height: 640svh; } }
.fm-tt__sticky { position: sticky; top: 0; height: 100svh; min-height: 34rem; overflow: hidden; background: var(--fm-ink); }
.fm-tt__case { position: absolute; inset: 0; overflow: hidden; background: var(--fm-ink); will-change: clip-path; }
.fm-tt__film, .fm-tt__cover, .fm-tt__poster { position: absolute; inset: 0; width: 100%; height: 100%; }
.fm-tt__poster { object-fit: cover; object-position: 50% 56%; }
.fm-tt__cover { transition: opacity 0.6s var(--fm-ease); }
.fm-tt__shade { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(120% 90% at 50% 55%, transparent 50%, rgb(8 9 10 / 0.6)), linear-gradient(90deg, rgb(8 9 10 / 0.55), rgb(8 9 10 / 0) 45%), linear-gradient(0deg, rgb(8 9 10 / 0.7), rgb(8 9 10 / 0) 35%); }
.fm-tt__flash { position: absolute; inset: 0; background: var(--fm-t); opacity: 0; pointer-events: none; }
.fm-tt .fm-film__track { z-index: 2; }
/* Desktop: the title sits in the clear band of wall between the wordmark and the covered car,
   on a soft dark halo that fades out with it (white on the pale studio wall needs it). */
.fm-tt__title { position: absolute; z-index: 3; left: var(--fm-gx); right: var(--fm-gx); top: calc(var(--fm-header-h) + clamp(1.5rem, 7svh, 4.5rem)); max-width: 36rem; isolation: isolate; }
.fm-tt__title::before { content: ""; position: absolute; z-index: -1; left: calc(-1 * var(--fm-gx) - 10vw); top: -30%; width: min(78vw, 64rem); height: 170%; pointer-events: none; background: radial-gradient(closest-side, rgb(8 9 10 / 0.78), rgb(8 9 10 / 0.5) 55%, rgb(8 9 10 / 0)); }
@media (min-width: 768px) { .fm-tt__title { top: 30svh; } }
.fm-tt__title .fm-h1 { font-size: clamp(2.3rem, 4vw, 3.9rem); max-width: 12em; text-shadow: 0 2px 30px rgb(0 0 0 / 0.6); }
.fm-tt__title .fm-lead { margin-top: 1rem; max-width: 28rem; color: var(--fm-t); text-shadow: 0 1px 18px rgb(0 0 0 / 0.7); }
.fm-tt__title [data-intro] { opacity: 0; transform: translateY(1.2rem); filter: blur(6px); }
.fm-tt.is-ready .fm-tt__title [data-intro], .fm-tt.is-static .fm-tt__title [data-intro] { opacity: 1; transform: none; filter: none; transition: opacity 1.4s var(--fm-ease), transform 1.6s var(--fm-ease), filter 1.4s var(--fm-ease); }
.fm-tt.is-ready .fm-tt__title [data-intro="2"] { transition-delay: 0.2s; }
.fm-tt.is-ready .fm-tt__title [data-intro="3"] { transition-delay: 0.35s; }
.fm-motion .fm-tt__title [data-intro="1"] { filter: none; transform: none; }
.fm-motion .fm-tt.is-ready .is-split[data-intro] .fm-wi { transform: none; transition-delay: calc(0.1s + var(--i) * var(--fm-stagger)); }
.fm-tt__acts { position: absolute; z-index: 3; left: var(--fm-gx); bottom: max(5.5rem, 13svh); pointer-events: none; }
.fm-tt__hud { position: absolute; z-index: 3; top: calc(var(--fm-header-h) + 1.2rem); right: var(--fm-gx); text-align: right; opacity: 0; text-shadow: 0 1px 14px rgb(0 0 0 / 0.85); }
.fm-tt__hud .fm-film__clock::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--fm-accent); margin-right: 0.6rem; vertical-align: 0.2em; box-shadow: 0 0 0 3px rgb(200 20 28 / 0.18); }
.fm-tt__speed { min-height: 1.2em; margin-top: 0.5rem; color: var(--fm-t); }
.fm-tt__speed.is-slow { color: #f0a0a4; }
.fm-tt__bezel { position: absolute; z-index: 4; right: var(--fm-gx); bottom: max(1.75rem, 4svh); width: 7.5rem; height: 7.5rem; opacity: 0; cursor: grab; touch-action: none; border-radius: 50%; -webkit-tap-highlight-color: transparent; }
.fm-tt.is-turning .fm-tt__bezel { cursor: grabbing; }
.fm-tt__bezel svg { width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 10px 24px rgb(0 0 0 / 0.6)); }
.fm-tt__bezel-ring { fill: rgb(8 9 10 / 0.55); stroke: rgb(241 241 239 / 0.35); stroke-width: 1; }
.fm-tt__bezel-tick { stroke: rgb(241 241 239 / 0.45); stroke-width: 1; }
.fm-tt__bezel-tick.is-major { stroke: var(--fm-t); stroke-width: 1.5; }
.fm-tt__bezel-lit { fill: none; stroke: var(--fm-t); stroke-width: 2; stroke-dasharray: 1 1; stroke-dashoffset: 1; }
.fm-tt__bezel-dot { transform-origin: 60px 60px; }
.fm-tt__bezel-dot circle { fill: var(--fm-accent); stroke: var(--fm-t); stroke-width: 1.2; }
.fm-tt__bezel-t1, .fm-tt__bezel-t2 { fill: var(--fm-t); font: 500 8.5px var(--fm-sans); letter-spacing: 0.22em; text-anchor: middle; }
.fm-tt__bezel-t2 { fill: var(--fm-t-2); font-size: 7px; }
@media (hover: hover) and (pointer: fine) { .fm-tt__bezel:hover .fm-tt__bezel-ring { stroke: var(--fm-line-3); } }
.fm-tt__bezel:focus-visible { outline: 1.5px solid var(--fm-silver); outline-offset: 6px; }
.fm-tt__plate { position: absolute; z-index: 3; inset: 0; visibility: hidden; pointer-events: none; }
.fm-tt__plate.is-live { pointer-events: auto; }
.fm-tt__plate .fm-film__model { font-size: clamp(3rem, 8.6vw, 6rem); }
html:not(.fm-js) .fm-tt, .fm-tt.is-static { height: auto; }
.fm-tt.is-static .fm-tt__sticky, html:not(.fm-js) .fm-tt__sticky { position: relative; height: 100svh; }
.fm-tt.is-static .fm-tt__plate, html:not(.fm-js) .fm-tt__plate { visibility: visible; pointer-events: auto; }
.fm-tt.is-static .fm-tt__film, .fm-tt.is-static .fm-tt__cover, .fm-tt.is-static .fm-tt__cue, .fm-tt.is-static .fm-tt__hud, .fm-tt.is-static .fm-tt__bezel, .fm-tt.is-static .fm-tt__acts, .fm-tt.is-static [data-fm-tt-play] { display: none; }
html:not(.fm-js) .fm-tt__title [data-intro] { opacity: 1; transform: none; filter: none; }
@media (max-width: 767px) {
  .fm-tt__poster { object-fit: contain; }
  .fm-tt__shade { background: linear-gradient(180deg, rgb(8 9 10 / 0.9), rgb(8 9 10 / 0) 34%), linear-gradient(0deg, rgb(8 9 10 / 0.95), rgb(8 9 10 / 0) 38%); }
  .fm-tt__title .fm-lead { display: none; }
  .fm-tt__bezel { width: 6rem; height: 6rem; right: 50%; margin-right: -3rem; bottom: calc(5.5rem + env(safe-area-inset-bottom)); }
  /* The film is a band on phones: chapters use the dark space above it, the bezel the space below. */
  .fm-tt__acts { bottom: auto; top: calc(var(--fm-header-h) + 4.5rem); }
  .fm-tt__acts .fm-film__act { bottom: auto; top: 0; }
  .fm-tt__hud { top: calc(var(--fm-header-h) + 0.6rem); }
  .fm-tt__title .fm-unveil__go .fm-link { display: none; }
  .fm-tt__plate .fm-film__plate-in { bottom: calc(5.25rem + env(safe-area-inset-bottom)); }
  .fm-tt__plate .fm-film__model { font-size: clamp(2.6rem, 12vw, 3.4rem); }
  .fm-tt__plate .fm-film__actions .fm-btn--ghost { display: none; }
  .fm-tt.is-static .fm-tt__plate .fm-film__plate-in { bottom: 2rem; }
}

/* ---------- Home: the showroom film ---------- */
.fm-showroom { position: relative; height: 240svh; background: var(--fm-ink); }
.fm-showroom__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.fm-showroom__frame { position: absolute; inset: 0; overflow: hidden; background: var(--fm-ink-3); clip-path: inset(20% 19% round 22px); will-change: clip-path; }
.fm-showroom__frame::after {
  /* The case: a hairline ring with railroad ticks that fades as the frame opens to full bleed. */
  content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgb(241 241 239 / calc(0.45 * var(--fm-case, 1)));
}
.fm-showroom__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.16); will-change: transform; background: var(--fm-ink-3); }
.fm-showroom__shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg, rgb(8 9 10 / 0.85), rgb(8 9 10 / 0) 55%), linear-gradient(90deg, rgb(8 9 10 / 0.55), rgb(8 9 10 / 0) 50%); }
.fm-showroom__copy { position: absolute; left: 0; right: 0; bottom: max(2.5rem, 7svh); z-index: 2; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem 2.5rem; opacity: 0; }
.fm-showroom__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.fm-showroom__toggle .fm-i-play { display: none; }
.fm-showroom__toggle[aria-pressed="true"] .fm-i-play { display: block; }
.fm-showroom__toggle[aria-pressed="true"] .fm-i-pause { display: none; }
.fm-showroom__toggle svg { width: 0.9rem; height: 0.9rem; }
@media (max-width: 767px) { .fm-showroom { height: 190svh; } .fm-showroom__copy { bottom: calc(5.5rem + env(safe-area-inset-bottom)); } }
@media (prefers-reduced-motion: reduce) { .fm-showroom { height: auto; } .fm-showroom__sticky { position: relative; } .fm-showroom__frame { clip-path: none; } .fm-showroom__video { transform: none; } .fm-showroom__copy { opacity: 1; } }
html:not(.fm-js) .fm-showroom__copy { opacity: 1; }
.fm-filmview { width: min(92vw, 1280px); max-width: none; padding: 0; border: 0; background: #000; border-radius: 10px; overflow: visible; box-shadow: 0 40px 120px rgb(0 0 0 / 0.8); }
.fm-filmview::backdrop { background: rgb(8 9 10 / 0.92); }
.fm-filmview[open] { animation: fm-fade 0.4s var(--fm-ease); }
.fm-filmview video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 10px; background: #000; }
.fm-filmview__close { position: absolute; right: 0; top: -3.5rem; }

/* ---------- Home: the collection as exhibits ---------- */
.fm-section { padding-block: var(--fm-sec); position: relative; }
.fm-exhibits { display: grid; gap: clamp(5rem, 10vw, 9rem); margin-top: clamp(3rem, 6vw, 5rem); }
.fm-exhibit { display: grid; gap: 1.75rem; align-items: center; text-decoration: none; }
@media (min-width: 960px) {
  .fm-exhibit { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 5rem; }
  .fm-exhibit:nth-child(even) .fm-exhibit__media { order: 2; }
}
.fm-exhibit__media { position: relative; display: block; overflow: hidden; border-radius: 8px; aspect-ratio: 4 / 5; background: var(--fm-ink-3); }
@media (min-width: 960px) {
  .fm-exhibit__media { aspect-ratio: 3 / 4; height: min(86svh, 52rem); width: auto; justify-self: end; }
  .fm-exhibit:nth-child(even) .fm-exhibit__media { justify-self: start; }
  .fm-exhibit:nth-child(even) .fm-exhibit__body { justify-self: end; }
}
.fm-exhibit__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.1); transition: transform 1.6s var(--fm-ease); }
.fm-exhibit__media canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 0.8s var(--fm-ease); }
.fm-exhibit__media.has-cam canvas { opacity: 1; }
@media (hover: hover) { .fm-exhibit:hover .fm-exhibit__media img { transform: scale(1.04); } }
.fm-exhibit__media[data-sold]::after { content: attr(data-sold); position: absolute; left: 1rem; top: 1rem; padding: 0.45rem 0.8rem; border-radius: 999px; background: var(--fm-silver); color: var(--fm-on-silver); font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 500; }
.fm-exhibit__body { display: grid; gap: 1.25rem; justify-items: start; }
.fm-exhibit__maker { display: block; margin-bottom: 0.5rem; }
.fm-exhibit__name { font: 400 clamp(2.8rem, 6vw, 5rem)/0.95 var(--fm-display); letter-spacing: -0.015em; }
.fm-exhibit__line { color: var(--fm-t-2); max-width: 28rem; }

/* How Fouché works */
.fm-ways { display: grid; gap: 0; border-top: 1px solid var(--fm-line); margin-top: 3rem; }
.fm-ways li { display: grid; gap: 0.6rem; padding: 1.8rem 0; border-bottom: 1px solid var(--fm-line); }
@media (min-width: 900px) { .fm-ways li { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 3rem; align-items: baseline; padding: 2.4rem 0; } }
.fm-ways h3 { font: 400 clamp(1.8rem, 3vw, 2.6rem)/1.05 var(--fm-display); }
.fm-ways p { color: var(--fm-t-2); max-width: 34rem; }

/* Bands: sell / finance */
.fm-bands { display: grid; }
@media (min-width: 960px) { .fm-bands { grid-template-columns: 1fr 1fr; } }
.fm-band { position: relative; display: grid; align-content: end; gap: 1.25rem; min-height: 32rem; padding: clamp(2.5rem, 5vw, 4.5rem) var(--fm-gx); overflow: hidden; isolation: isolate; text-decoration: none; }
.fm-band > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; filter: brightness(0.45) saturate(0.8); transform: scale(1.16); transition: transform 1.8s var(--fm-ease), filter 1s var(--fm-ease); }
.fm-band::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgb(8 9 10 / 0.92), rgb(8 9 10 / 0.1) 70%); }
@media (hover: hover) and (pointer: fine) { .fm-band:hover > img { transform: scale(1.1); filter: brightness(0.55) saturate(0.9); } }
.fm-band p { color: var(--fm-t-2); max-width: 30rem; }
.fm-band.fm-plate { color: var(--fm-on-silver); }
.fm-band.fm-plate::after { display: none; }
.fm-band.fm-plate p { color: var(--fm-on-silver-2); }

/* Visit */
.fm-visit { display: grid; gap: 3rem; }
@media (min-width: 960px) { .fm-visit { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 5rem; align-items: stretch; } }
.fm-map { position: relative; min-height: 22rem; border-radius: 8px; overflow: hidden; background: var(--fm-ink-3); box-shadow: inset 0 0 0 1px var(--fm-line); }
.fm-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(1) invert(0.92) contrast(0.9) brightness(0.9); }
.fm-hours { display: grid; border-top: 1px solid var(--fm-line); }
.fm-hours div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.8rem 0; border-bottom: 1px solid var(--fm-line); }
.fm-hours dt { color: var(--fm-t-2); }
.fm-hours dd { margin: 0; }

/* ---------- Inner pages ---------- */
.fm-page-head { padding: calc(var(--fm-header-h) + clamp(4rem, 9vw, 8rem)) 0 clamp(3rem, 6vw, 5rem); position: relative; overflow: hidden; }
.fm-page-head::before { content: ""; position: absolute; right: -20vmax; top: -30vmax; width: 80vmax; height: 80vmax; border-radius: 50%; background: var(--fm-sunray-dark) center / cover; opacity: 0.9; mask-image: radial-gradient(circle, #000 30%, transparent 70%); -webkit-mask-image: radial-gradient(circle, #000 30%, transparent 70%); pointer-events: none; }
.fm-page-head .fm-container { position: relative; display: grid; gap: 1.2rem; }
.fm-page-head .fm-h1 { max-width: 14em; }
.fm-steps { display: grid; gap: 0; border-top: 1px solid var(--fm-line); counter-reset: s; }
.fm-steps li { counter-increment: s; display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; padding: 1.25rem 0; border-bottom: 1px solid var(--fm-line); color: var(--fm-t-2); }
.fm-steps li::before { content: counter(s); font: 400 1.6rem/1 var(--fm-display); color: var(--fm-t); }
.fm-split { display: grid; gap: 3.5rem; }
@media (min-width: 1024px) { .fm-split { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 5rem; align-items: start; } .fm-split > :first-child { position: sticky; top: calc(var(--fm-header-h) + 2rem); } }
.fm-calc { display: grid; gap: 1.5rem; padding: clamp(1.75rem, 4vw, 2.75rem); border-radius: 12px; }
.fm-calc__out { display: grid; gap: 0.4rem; padding-top: 1.5rem; border-top: 1px solid var(--fm-on-silver-line); }
.fm-calc__out b { font: 400 clamp(2.6rem, 6vw, 3.8rem)/1 var(--fm-display); }
.fm-plate .fm-input, .fm-plate select.fm-select { color: var(--fm-on-silver); border-bottom-color: rgb(18 19 21 / 0.3); background-image: linear-gradient(var(--fm-on-silver), var(--fm-on-silver)); }
.fm-plate .fm-field > span { color: var(--fm-on-silver-2); }
.fm-range { width: 100%; accent-color: var(--fm-on-silver); height: 2.25rem; }
.fm-range-row { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 1rem; }
.fm-range-row output { font: 400 1.15rem/1 var(--fm-display); min-width: 5.5rem; text-align: right; }
.fm-collection { display: grid; gap: clamp(4rem, 8vw, 7rem); }
.fm-empty { padding: 3rem 0; display: grid; gap: 1.2rem; justify-items: start; }
.fm-content-area { padding-block: 0 var(--fm-sec); }
.fm-content-area:empty { display: none; }
.fm-404 { min-height: 100svh; display: grid; place-items: center; text-align: center; padding: 6rem var(--fm-gx); }
.fm-404 .fm-h1 { margin: 1rem 0; }

/* ---------- Reveals (content is visible without JS and with reduced motion) ---------- */
.fm-reveal-ready [data-reveal] { opacity: 0; transform: translateY(1.75rem); transition: opacity 1.1s var(--fm-ease), transform 1.3s var(--fm-ease); }
.fm-reveal-ready [data-reveal].is-in { opacity: 1; transform: none; }
.fm-reveal-ready [data-reveal="2"] { transition-delay: 0.1s; }
.fm-reveal-ready [data-reveal="3"] { transition-delay: 0.2s; }
.fm-reveal-ready [data-reveal="clip"] { opacity: 1; transform: none; clip-path: inset(12% 6% 12% 6% round 8px); transition: clip-path 1.6s var(--fm-ease); }
.fm-reveal-ready [data-reveal="clip"].is-in { clip-path: inset(0 0 0 0 round 8px); }
.fm-reveal-ready [data-reveal="clip"] img { transform: scale(1.18); transition: transform 2s var(--fm-ease); }
.fm-reveal-ready [data-reveal="clip"].is-in img { transform: scale(1.1); }

/* ==========================================================================
   Motion layer (fm-motion.js adds .fm-motion; without it everything is at rest)
   ========================================================================== */

/* Headings: words rise out of a mask. */
.fm-motion .is-split .fm-w { display: inline-block; overflow: clip; overflow-clip-margin: 0.12em; vertical-align: top; padding-bottom: 0.1em; margin-bottom: -0.1em; }
.fm-motion .is-split .fm-wi { display: inline-block; transform: translate3d(0, 108%, 0); transition: transform var(--fm-dur-xslow) var(--fm-ease); transition-delay: calc(var(--i) * var(--fm-stagger)); }
.fm-motion .is-split.is-in .fm-wi,
.fm-motion .is-ready .is-split[data-intro] .fm-wi { transform: none; }
.fm-motion .fm-hero.is-ready .is-split[data-intro] .fm-wi { transition-delay: calc(0.1s + var(--i) * var(--fm-stagger)); }

/* Car names in the film: letters settle out of a blur, the maker line and edition follow. */
.fm-motion .fm-film__title .fm-c { display: inline-block; opacity: 0; transform: translate3d(0, 0.32em, 0) rotate(4deg); filter: blur(8px); transition: opacity var(--fm-dur-slow) var(--fm-ease), transform var(--fm-dur-xslow) var(--fm-ease), filter var(--fm-dur-slow) var(--fm-ease); transition-delay: calc(0.15s + var(--i) * 45ms); }
.fm-motion .fm-film.is-ready .fm-film__title .fm-c { opacity: 1; transform: none; filter: none; }
.fm-motion .fm-film__title [data-intro="2"] { filter: none; transform: none; }

/* Hairline lists: the rule draws in left to right as each row rises. */
.fm-motion [data-lines] > * { position: relative; border-bottom-color: transparent !important; opacity: 0; transform: translate3d(0, 0.9rem, 0); transition: opacity var(--fm-dur-slow) var(--fm-ease), transform var(--fm-dur-xslow) var(--fm-ease); transition-delay: calc(var(--i) * 70ms); }
.fm-motion [data-lines] > *::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--fm-line); transform: scaleX(0); transform-origin: left; transition: transform 1.3s var(--fm-ease-io); transition-delay: calc(0.1s + var(--i) * 70ms); pointer-events: none; }
.fm-motion .fm-plate [data-lines] > *::after { background: var(--fm-on-silver-line); }
.fm-motion [data-lines].is-in > * { opacity: 1; transform: none; }
.fm-motion [data-lines].is-in > *::after { transform: scaleX(1); }
.fm-motion .fm-sheet__features[data-lines] > * { transition-delay: calc(var(--i) * 30ms); }
.fm-motion .fm-sheet__features[data-lines] > *::after { transition-delay: calc(0.1s + var(--i) * 30ms); }
.fm-motion [data-stagger] > * { opacity: 0; transform: translate3d(0, 1.1rem, 0); transition: opacity var(--fm-dur-slow) var(--fm-ease), transform var(--fm-dur-xslow) var(--fm-ease); transition-delay: calc(var(--i) * 60ms); }
.fm-motion [data-stagger].is-in > * { opacity: 1; transform: none; }
.fm-motion .fm-form[data-stagger] > .fm-hp, .fm-motion .fm-form[data-stagger] > [type="hidden"] { transition: none; }

/* Silver plates: a light band turns with scroll and pointer (two lobes, like a sunray dial). */
.fm-sheen {
  position: absolute; left: 50%; top: 50%; z-index: -1; pointer-events: none; border-radius: 50%;
  background: conic-gradient(from 0deg, transparent 0 6%, rgb(255 255 255 / 0.55) 13%, transparent 21%, transparent 50%, rgb(255 255 255 / 0.45) 63%, transparent 71%, transparent 100%);
  mix-blend-mode: soft-light; opacity: 0.85; will-change: transform;
}
.fm-chrono__stage::before { transition: none; }

/* Page heads: the dark dial drifts up slower than the page. */
.fm-motion .fm-page-head::before { translate: 0 var(--fm-head-shift, 0); }

/* Clip reveals settle from slightly larger and lighter. */
.fm-motion .fm-exhibit__media img, .fm-motion .fm-band > img, .fm-motion .fm-next > img { will-change: transform; }

/* Marquee: the collection's makers, set like engraving on a case back. */
.fm-marquee { position: relative; overflow: hidden; padding-block: clamp(2.5rem, 6vw, 5rem); border-block: 1px solid var(--fm-line); }
.fm-marquee__track { display: flex; width: max-content; will-change: transform; }
.fm-marquee__track span { padding-right: 0.5em; font: 400 clamp(3.2rem, 9vw, 8.5rem)/1 var(--fm-display); letter-spacing: -0.01em; white-space: nowrap; color: transparent; -webkit-text-stroke: 1px rgb(241 241 239 / 0.32); }
.fm-marquee__track span i { font-style: normal; color: var(--fm-t-2); -webkit-text-stroke: 0; font-size: 0.3em; vertical-align: 0.9em; padding-inline: 0.6em; letter-spacing: 0.2em; font-family: var(--fm-sans); text-transform: uppercase; }

/* Pointer: a View ring over photographs (fine pointers only). */
.fm-cursor { position: fixed; left: 0; top: 0; z-index: 70; pointer-events: none; width: 0; height: 0; }
.fm-cursor span {
  position: absolute; left: -2.75rem; top: -2.75rem; width: 5.5rem; height: 5.5rem; border-radius: 50%; display: grid; place-items: center;
  background: rgb(241 241 239 / 0.92); color: var(--fm-on-silver); font: 500 0.7rem/1 var(--fm-sans); letter-spacing: 0.18em; text-transform: uppercase;
  opacity: 0; transform: scale(0.6); transition: opacity var(--fm-dur-fast) var(--fm-ease), transform var(--fm-dur) var(--fm-ease);
}
.fm-cursor.is-on span { opacity: 1; transform: scale(1); }
@media (hover: hover) and (pointer: fine) { .fm-motion .fm-gallery__frame, .fm-motion .fm-exhibit__media, .fm-motion .fm-next { cursor: none; } }

/* Magnetic pills (translate is separate from the press transform). */
.fm-btn, .fm-icon-btn { transition-property: transform, translate, background-color, color, box-shadow; }
.fm-btn { transition-duration: 0.5s, 0.35s, 0.4s, 0.4s, 0.4s; }

/* Scroll progress: a hairline seconds track under the header. */
.fm-progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--fm-t); transform-origin: left; transform: scaleX(0); opacity: 0; transition: opacity var(--fm-dur) var(--fm-ease); pointer-events: none; }
.fm-header.is-solid .fm-progress { opacity: 0.7; }

/* Footer: the wordmark is engraved left to right; the columns stagger in. */
.fm-motion .fm-footer__word { clip-path: inset(0 100% 0 0); transition: clip-path 1.8s var(--fm-ease-io); }
.fm-motion .fm-footer__word.is-in { clip-path: inset(0 0 0 0); }

/* Chronograph: the dial assembles before the hand runs. */
.fm-motion .fm-chrono__svg { opacity: 0; transform: rotate(-28deg) scale(0.92); transition: opacity var(--fm-dur-slow) var(--fm-ease), transform 1.6s var(--fm-ease); }
.fm-motion .fm-chrono.is-assembled .fm-chrono__svg { opacity: 1; transform: none; }
.fm-motion .fm-ch-num, .fm-motion .fm-ch-bnum { opacity: 0; transition: opacity var(--fm-dur-slow) var(--fm-ease); transition-delay: calc(0.35s + var(--i, 0) * 50ms); }
.fm-motion .fm-chrono.is-assembled .fm-ch-num, .fm-motion .fm-chrono.is-assembled .fm-ch-bnum { opacity: 1; }
.fm-motion .fm-chrono__pusher { opacity: 0; transition: opacity var(--fm-dur-slow) var(--fm-ease) 0.9s, transform 0.25s var(--fm-ease); }
.fm-motion .fm-chrono.is-assembled .fm-chrono__pusher { opacity: 1; }

/* ---------- View transitions between pages: the new page rises on an ink curtain ---------- */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  ::view-transition-group(root) { animation-duration: 0.75s; }
  ::view-transition-old(root) { animation: fm-vt-out 0.75s var(--fm-ease-io) both; }
  ::view-transition-new(root) { animation: fm-vt-in 0.75s var(--fm-ease-io) both; }
}
@keyframes fm-vt-out { to { opacity: 0.35; scale: 0.97; translate: 0 -2.5%; filter: brightness(0.6); } }
@keyframes fm-vt-in { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  /* No movement: transforms and blurs jump; short fades stay so state changes still read. */
  .fm-site *, .fm-site *::before, .fm-site *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-property: opacity, color, background-color, box-shadow, visibility !important; transition-duration: 0.2s !important; transition-delay: 0s !important; }
  .fm-menu, .fm-menu-open .fm-menu { clip-path: none; transition: opacity 0.2s, visibility 0s !important; opacity: 0; }
  .fm-menu-open .fm-menu { opacity: 1; }
  .fm-hero__slide { transform: none; filter: none; }
  .fm-loupe { height: auto; }
  .fm-loupe__stage { position: relative; }
}

/* Elementor canvas: keep the theme out of the way. */
.fm-elementor-canvas { padding-top: var(--fm-header-h); }
