:root {
  --lm-void: #07090a;
  --lm-abyss: #0b1512;
  --lm-slab: #101617;
  --lm-glass: #93a9a3;
  --lm-ivory: #ede7da;
  --lm-gold: #c8952f;
  --lm-hair: rgba(147, 169, 163, 0.2);
  --lm-hair-gold: rgba(200, 149, 47, 0.34);
  --lm-display: "Bodoni Moda", "Times New Roman", Georgia, serif;
  --lm-sans: "Inter Tight", system-ui, -apple-system, "Segoe UI", sans-serif;
  --lm-shell: min(1240px, 100% - 2.5rem);
}
html { scroll-behavior: smooth; }
body.lm-body {
  background: var(--lm-void);
  color: var(--lm-ivory);
  font-family: var(--lm-sans);
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
}
body.lm-body ::selection { background: var(--lm-gold); color: #120c02; }
.lm-shell { width: var(--lm-shell); margin-inline: auto; }
.lm-section { position: relative; padding: clamp(5rem, 12vw, 9rem) 0; }
.lm-section--abyss { background: linear-gradient(180deg, var(--lm-void), var(--lm-abyss) 45%, var(--lm-void)); }
.lm-eyebrow { font-size: 0.68rem; letter-spacing: 0.34em; text-transform: uppercase; color: var(--lm-gold); margin: 0 0 1.4rem; }
.lm-display { font-family: var(--lm-display); font-weight: 400; line-height: 1.04; letter-spacing: -0.01em; color: var(--lm-ivory); margin: 0; font-size: clamp(2.3rem, 5.6vw, 4rem); }
.lm-display--sm { font-size: clamp(1.8rem, 3.6vw, 2.6rem); }
.lm-lead { max-width: 58ch; margin: 1.5rem 0 0; font-size: 1.02rem; line-height: 1.78; color: var(--lm-glass); }
.lm-nav { position: fixed; inset: 0 0 auto 0; z-index: 60; display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: 72px; padding: 0 clamp(1rem, 4vw, 2.5rem); background: rgba(7, 9, 10, 0.58); backdrop-filter: blur(18px) saturate(120%); border-bottom: 1px solid var(--lm-hair); }
.lm-brand { display: inline-flex; align-items: center; gap: 0.7rem; color: inherit; text-decoration: none; }
.lm-brand__mark { width: 30px; height: 30px; will-change: transform; }
.lm-brand__word { font-family: var(--lm-display); font-size: 1.1rem; letter-spacing: 0.42em; text-indent: 0.42em; color: var(--lm-ivory); }
.lm-nav__links { display: none; gap: 2rem; }
@media (min-width: 940px) { .lm-nav__links { display: flex; } }
.lm-nav__link { font-size: 0.7rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--lm-glass); text-decoration: none; padding-bottom: 3px; border-bottom: 1px solid transparent; transition: color 0.3s ease, border-color 0.3s ease; }
.lm-nav__link:hover, .lm-nav__link:focus-visible { color: var(--lm-ivory); border-color: var(--lm-hair-gold); }
.lm-cta-buy { position: relative; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; padding: 0.95rem 2.1rem; border: 0; background: var(--lm-gold); color: #120c02; font-family: var(--lm-sans); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; cursor: pointer; text-decoration: none; transition: transform 0.12s ease; }
.lm-cta-buy::after { content: ""; position: absolute; left: var(--lm-x, 50%); top: var(--lm-y, 50%); width: 0; height: 0; border-radius: 999px; background: #fff0cd; transform: translate(-50%, -50%); transition: width 0.55s ease, height 0.55s ease; }
.lm-cta-buy:hover::after, .lm-cta-buy:focus-visible::after { width: 280%; height: 760%; }
.lm-cta-buy > span { position: relative; z-index: 1; }
.lm-cta-buy:active { transform: scale(0.98); }
.lm-cta-buy--sm { padding: 0.62rem 1.35rem; font-size: 0.64rem; }
.lm-cta-sheet { position: relative; overflow: hidden; display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.9rem 1.9rem; border: 1px solid var(--lm-hair-gold); border-radius: 999px; background: transparent; color: var(--lm-ivory); font-family: var(--lm-sans); font-size: 0.72rem; letter-spacing: 0.24em; text-transform: uppercase; cursor: pointer; transition: border-color 0.35s ease, transform 0.12s ease; }
.lm-cta-sheet::before { content: ""; position: absolute; inset: 0; transform: scaleX(0); transform-origin: left; background: rgba(147, 169, 163, 0.16); transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1); }
.lm-cta-sheet:hover, .lm-cta-sheet:focus-visible { border-color: var(--lm-gold); }
.lm-cta-sheet:hover::before, .lm-cta-sheet:focus-visible::before { transform: scaleX(1); }
.lm-cta-sheet > span { position: relative; z-index: 1; }
.lm-cta-sheet:active { transform: translateY(1px); }
.lm-link-serve { position: relative; display: inline-block; padding-bottom: 4px; color: var(--lm-gold); font-family: var(--lm-sans); font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; text-decoration: none; background: none; border: 0; cursor: pointer; }
.lm-link-serve::after { content: ""; position: absolute; left: 0; bottom: 0; height: 1px; width: 100%; background: var(--lm-gold); transform: scaleX(0); transform-origin: left; transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1); }
.lm-link-serve:hover::after, .lm-link-serve:focus-visible::after { transform: scaleX(1); }
.lm-marquee { overflow: hidden; border-top: 1px solid var(--lm-hair); border-bottom: 1px solid var(--lm-hair); background: linear-gradient(180deg, rgba(11, 21, 18, 0.9), rgba(7, 9, 10, 0.9)); }
.lm-marquee__track { display: flex; width: max-content; animation: lm-marquee 58s linear infinite; }
.lm-marquee__group { display: flex; align-items: center; flex: none; }
.lm-marquee__item { display: inline-flex; align-items: center; gap: 1.4rem; padding: 1.3rem 1.8rem; font-family: var(--lm-display); font-style: italic; font-size: clamp(1rem, 2vw, 1.45rem); color: var(--lm-ivory); white-space: nowrap; }
.lm-marquee__dot { width: 4px; height: 4px; border-radius: 999px; background: var(--lm-gold); flex: none; }
@keyframes lm-marquee { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }
.lm-taste { display: grid; gap: clamp(2.5rem, 6vw, 5rem); }
@media (min-width: 1000px) { .lm-taste { grid-template-columns: 1.02fr 0.98fr; align-items: start; } }
.lm-plates { position: relative; margin-top: 2.6rem; height: clamp(300px, 34vw, 430px); }
.lm-plate { position: absolute; overflow: hidden; border: 1px solid var(--lm-hair); will-change: transform; }
.lm-plate img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lm-plate--a { width: 52%; height: 78%; left: 0; top: 0; }
.lm-plate--b { width: 40%; height: 56%; right: 4%; top: 14%; }
.lm-plate--c { width: 33%; height: 42%; left: 33%; bottom: 0; }
.lm-ladder { border-top: 1px solid var(--lm-hair); margin-top: 0.5rem; }
.lm-ladder__row { display: grid; grid-template-columns: 8rem 1fr auto; gap: 1.2rem; align-items: center; padding: 1.1rem 0; border-bottom: 1px solid var(--lm-hair); }
.lm-ladder__name { font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--lm-ivory); }
.lm-ladder__bar { position: relative; height: 1px; background: var(--lm-hair); }
.lm-ladder__fill { position: absolute; left: 0; top: 0; height: 1px; width: 100%; background: var(--lm-gold); transform-origin: left; transform: scaleX(var(--lm-level, 0.5)); animation: lm-fill 1.2s cubic-bezier(0.22, 1, 0.36, 1) both; }
@keyframes lm-fill { from { transform: scaleX(0); } to { transform: scaleX(var(--lm-level, 0.5)); } }
.lm-ladder__val { font-size: 0.7rem; letter-spacing: 0.16em; color: var(--lm-glass); font-variant-numeric: tabular-nums; }
.lm-phases { margin-top: 3.4rem; }
.lm-phase { display: grid; gap: 0.5rem; padding: 1.5rem 0; border-top: 1px solid var(--lm-hair); }
@media (min-width: 780px) { .lm-phase { grid-template-columns: 9rem 1fr; gap: 2rem; align-items: baseline; } }
.lm-phase__k { font-family: var(--lm-display); font-style: italic; font-size: 1.1rem; color: var(--lm-gold); }
.lm-phase__t { margin: 0; color: var(--lm-glass); line-height: 1.76; }
.lm-rail { display: flex; gap: 1.4rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 1.4rem; }
.lm-serve { position: relative; flex: 0 0 clamp(258px, 74vw, 392px); scroll-snap-align: center; aspect-ratio: 4 / 5; overflow: hidden; border: 1px solid var(--lm-hair); background: var(--lm-slab); }
.lm-serve img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1); }
.lm-serve:hover img { transform: scale(1.05); }
.lm-serve__panel { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.5rem; background: linear-gradient(180deg, rgba(7, 9, 10, 0), rgba(7, 9, 10, 0.92)); }
.lm-serve__name { font-family: var(--lm-display); font-size: 1.5rem; margin: 0 0 0.4rem; }
.lm-serve__mix { font-size: 0.8rem; line-height: 1.6; color: var(--lm-glass); margin: 0 0 1rem; }
.lm-buy { display: grid; gap: clamp(2.5rem, 6vw, 4.5rem); align-items: center; }
@media (min-width: 1000px) { .lm-buy { grid-template-columns: 0.88fr 1.12fr; } }
.lm-buy__plate { position: relative; display: grid; place-items: center; padding: 2rem 1rem; background: radial-gradient(58% 52% at 50% 76%, rgba(200, 149, 47, 0.22), rgba(7, 9, 10, 0) 72%); }
.lm-buy__plate img { width: min(100%, 360px); height: auto; will-change: transform; }
.lm-specs { margin: 2.3rem 0 0; padding: 0; list-style: none; border-top: 1px solid var(--lm-hair); }
.lm-specs li { display: flex; align-items: center; gap: 1rem; padding: 0.9rem 0; border-bottom: 1px solid var(--lm-hair); font-size: 0.86rem; color: var(--lm-glass); }
.lm-specs img { width: 22px; height: 22px; flex: none; opacity: 0.9; }
.lm-specs b { color: var(--lm-ivory); font-weight: 500; }
.lm-price { display: flex; align-items: baseline; gap: 0.8rem; margin-top: 2.2rem; }
.lm-price__n { font-family: var(--lm-display); font-style: italic; font-size: clamp(1.6rem, 3vw, 2.1rem); color: var(--lm-gold); }
.lm-price__u { font-size: 0.7rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--lm-glass); }
.lm-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.lm-modal { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 1.25rem; background: rgba(4, 6, 7, 0.74); backdrop-filter: blur(14px); animation: lm-fade 0.35s ease both; }
@keyframes lm-fade { from { opacity: 0; } to { opacity: 1; } }
.lm-modal__card { position: relative; width: min(980px, 100%); max-height: 88dvh; overflow-y: auto; padding: clamp(1.5rem, 4vw, 3rem); border: 1px solid var(--lm-hair-gold); background: linear-gradient(180deg, rgba(16, 22, 23, 0.97), rgba(7, 9, 10, 0.99)); animation: lm-rise 0.5s cubic-bezier(0.22, 1, 0.36, 1) both; }
@keyframes lm-rise { from { transform: translateY(22px); } to { transform: none; } }
.lm-modal__close { position: absolute; top: 1rem; right: 1rem; width: 40px; height: 40px; border: 1px solid var(--lm-hair); border-radius: 999px; background: transparent; color: var(--lm-ivory); font-size: 1rem; line-height: 1; cursor: pointer; transition: border-color 0.3s ease, background 0.3s ease; }
.lm-modal__close:hover, .lm-modal__close:focus-visible { border-color: var(--lm-gold); background: rgba(200, 149, 47, 0.14); }
.lm-modal__grid { display: grid; gap: 2rem; }
@media (min-width: 840px) { .lm-modal__grid { grid-template-columns: 0.78fr 1.22fr; } }
.lm-modal__shot { width: 100%; height: auto; border: 1px solid var(--lm-hair); }
.lm-modal__macros { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; margin-top: 1.5rem; }
.lm-modal__macros img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border: 1px solid var(--lm-hair); }
.lm-table { width: 100%; border-collapse: collapse; margin-top: 1.3rem; }
.lm-table th, .lm-table td { text-align: left; padding: 0.78rem 0; border-bottom: 1px solid var(--lm-hair); font-size: 0.85rem; }
.lm-table th { width: 42%; font-weight: 400; color: var(--lm-glass); }
.lm-table td { color: var(--lm-ivory); }
.lm-footer { border-top: 1px solid var(--lm-hair); padding: 3.4rem 0 4rem; }
.lm-footer__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.4rem; }
.lm-footer__legal { margin: 0; font-size: 0.74rem; color: var(--lm-glass); }
.lm-rise { animation: lm-rise 0.8s cubic-bezier(0.22, 1, 0.36, 1) both; }
.lm-rise--2 { animation-delay: 0.09s; }
.lm-rise--3 { animation-delay: 0.18s; }
.scroll-scrub .scroll-scrub__title { font-family: var(--lm-display); font-weight: 400; letter-spacing: -0.01em; }
.scroll-scrub .scroll-scrub__kicker { font-family: var(--lm-sans); letter-spacing: 0.34em; color: var(--lm-gold); }
.scroll-scrub .scroll-scrub__body { font-family: var(--lm-sans); }
.scroll-scrub .scroll-scrub__route-button span { font-family: var(--lm-sans); letter-spacing: 0.2em; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .lm-marquee__track, .lm-rise, .lm-modal, .lm-modal__card, .lm-ladder__fill { animation: none !important; }
  .lm-serve img, .lm-cta-sheet::before, .lm-cta-buy::after, .lm-nav__link, .lm-link-serve::after { transition: none !important; }
  .lm-plate, .lm-buy__plate img, .lm-brand__mark { transform: none !important; }
}

/* ---------- serve: sticky horizontal pan ---------- */
.lm-serves { position: relative; background: var(--lm-void); }
.lm-serves__viewport { display: flex; flex-direction: column; justify-content: center; gap: clamp(1.4rem, 3vw, 2.6rem); padding: clamp(4rem, 9vw, 7rem) 0; overflow: hidden; }
.lm-serves__head { width: var(--lm-shell); margin-inline: auto; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 1rem; }
.lm-serves__count { font-size: 0.68rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--lm-glass); font-variant-numeric: tabular-nums; }
.lm-serves__track { display: flex; gap: clamp(1.1rem, 2.4vw, 2.2rem); padding-inline: max((100vw - var(--lm-shell)) / 2, 1.25rem); overflow-x: auto; scroll-snap-type: x mandatory; will-change: transform; }
.lm-serves__rule { position: relative; width: var(--lm-shell); margin-inline: auto; height: 1px; background: var(--lm-hair); }
.lm-serves__rule i { position: absolute; inset: 0; background: var(--lm-gold); transform-origin: left; transform: scaleX(var(--lm-pan, 0)); }
.lm-serves[data-panning="true"] { height: 280dvh; }
.lm-serves[data-panning="true"] .lm-serves__viewport { position: sticky; top: 0; height: 100dvh; padding: 0; }
.lm-serves[data-panning="true"] .lm-serves__track { overflow: visible; scroll-snap-type: none; }
.lm-serve { position: relative; flex: 0 0 clamp(260px, 40vw, 440px); aspect-ratio: 3 / 4; overflow: hidden; border: 1px solid var(--lm-hair); background: var(--lm-slab); scroll-snap-align: center; transform: translate3d(0, calc(var(--lm-off, 0) * 22px), 0); transition: border-color 0.5s ease; }
.lm-serve:hover { border-color: var(--lm-hair-gold); }
.lm-serve img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: translate3d(calc(var(--lm-off, 0) * -46px), 0, 0) scale(1.09); transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1); }
.lm-serve:hover img { transform: translate3d(calc(var(--lm-off, 0) * -46px), 0, 0) scale(1.14); }
.lm-serve::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(7, 9, 10, 0) 32%, rgba(7, 9, 10, 0.55) 60%, rgba(7, 9, 10, 0.96)); }
.lm-serve__panel { z-index: 2; background: none; }
.lm-serve__index { position: absolute; top: 1.2rem; left: 1.4rem; z-index: 2; font-family: var(--lm-display); font-style: italic; font-size: 1.15rem; color: var(--lm-gold); }

/* ---------- purchase: loupe, sheen, drawn rules ---------- */
.lm-buy__plate { position: relative; overflow: hidden; }
.lm-buy__plate img { transform: translate3d(0, calc((var(--lm-p, 0.5) - 0.5) * -50px), 0) rotate(calc((var(--lm-p, 0.5) - 0.5) * -1.8deg)); }
.lm-buy__sheen { position: absolute; left: 0; right: 0; height: 44%; top: calc(var(--lm-p, 0.5) * 132% - 26%); pointer-events: none; mix-blend-mode: screen; background: linear-gradient(180deg, rgba(237, 231, 218, 0), rgba(237, 231, 218, 0.14) 46%, rgba(237, 231, 218, 0)); }
.lm-loupe { position: absolute; width: 190px; height: 190px; margin: -95px 0 0 -95px; border-radius: 999px; border: 1px solid var(--lm-hair-gold); pointer-events: none; opacity: 0; background-repeat: no-repeat; background-image: url("/assets/img/packshot.jpg"); box-shadow: 0 0 70px rgba(200, 149, 47, 0.28), inset 0 0 40px rgba(7, 9, 10, 0.55); transition: opacity 0.3s ease; }
@media (hover: none), (pointer: coarse) { .lm-loupe { display: none; } }
.lm-specs li { position: relative; animation: lm-rise 0.7s cubic-bezier(0.22, 1, 0.36, 1) both; }
.lm-specs li::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--lm-gold); transform: scaleX(0); transform-origin: left; transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1); }
.lm-specs li:hover::after { transform: scaleX(1); }
.lm-specs img { transition: transform 0.4s ease; }
.lm-specs li:hover img { transform: scale(1.18); }
@media (prefers-reduced-motion: reduce) {
  .lm-serves[data-panning="true"] { height: auto; }
  .lm-serve, .lm-serve img, .lm-buy__plate img { transform: none !important; }
  .lm-buy__sheen, .lm-loupe { display: none; }
  .lm-specs li { animation: none !important; }
}

/* ================= responsive pass ================= */
:root { --lm-nav-h: 72px; }
.lm-nav { height: var(--lm-nav-h); }
.lm-display { font-size: clamp(1.95rem, 7.4vw, 4rem); }
.lm-display--sm { font-size: clamp(1.55rem, 6vw, 2.6rem); }
.lm-serves__track { scrollbar-width: none; scroll-padding-inline: 1.25rem; }
.lm-serves__track::-webkit-scrollbar { display: none; }

/* The engine paints its chapter buttons at the top of the sticky stage, so
   push them clear of the fixed brand bar instead of letting them sit under it. */
.scroll-scrub .scroll-scrub__route { top: calc(var(--lm-nav-h) + clamp(0.5rem, 2vw, 1.1rem)); }

@media (max-width: 900px) {
  .lm-serves__viewport { padding: 4.5rem 0; gap: 1.3rem; }
  .lm-serves__head { flex-direction: column; align-items: flex-start; gap: 0.4rem; }
  .lm-serve { flex-basis: min(78vw, 340px); aspect-ratio: 4 / 5; }
  .lm-serve__panel { padding: 1.15rem; max-height: 76%; overflow-y: auto; }
  .lm-serve__name { font-size: 1.25rem; }
  .lm-serve__mix { font-size: 0.78rem; margin-bottom: 0.75rem; }
  .lm-serve__index { top: 1rem; left: 1.1rem; font-size: 1rem; }
  .lm-link-serve { padding: 0.55rem 0 0.5rem; }
  .lm-buy__plate { padding: 1rem 0; }
  .lm-buy__plate img { width: min(76%, 300px); }
  .lm-specs li { align-items: flex-start; gap: 0.8rem; font-size: 0.82rem; }
  .lm-specs img { margin-top: 2px; }
  .lm-price__n { font-size: clamp(1.3rem, 5.4vw, 1.9rem); }
  .lm-actions { gap: 0.7rem; }
  .lm-actions .lm-cta-buy, .lm-actions .lm-cta-sheet { flex: 1 1 auto; justify-content: center; padding-inline: 1.1rem; font-size: 0.62rem; letter-spacing: 0.18em; }
}

@media (max-width: 700px) {
  .lm-ladder__row { grid-template-columns: 1fr auto; gap: 0.45rem 1rem; padding: 0.95rem 0; }
  .lm-ladder__bar { order: 3; grid-column: 1 / -1; }
  .lm-ladder__name { font-size: 0.68rem; }
  .lm-ladder__val { font-size: 0.66rem; }
  .lm-plates { height: 300px; margin-top: 2rem; }
  .lm-plate--a { width: 58%; height: 72%; }
  .lm-plate--b { width: 44%; height: 50%; right: 0; top: 10%; }
  .lm-plate--c { width: 40%; height: 40%; left: 26%; }
  .lm-phase { padding: 1.2rem 0; }
  .lm-lead { font-size: 0.97rem; margin-top: 1.2rem; }
}

@media (max-width: 640px) {
  :root { --lm-nav-h: 58px; }
  .lm-nav { padding: 0 1rem; }
  .lm-brand__mark { width: 24px; height: 24px; }
  .lm-brand__word { font-size: 0.9rem; letter-spacing: 0.3em; text-indent: 0.3em; }
  .lm-cta-buy--sm { padding: 0.5rem 0.95rem; font-size: 0.56rem; letter-spacing: 0.16em; }
  .lm-section { padding: clamp(3.5rem, 12vw, 5rem) 0; }
  .lm-marquee__item { gap: 1rem; padding: 1rem 1.1rem; font-size: 0.95rem; }
  .lm-marquee__track { animation-duration: 34s; }
  .lm-modal { padding: 0.7rem; }
  .lm-modal__card { max-height: 92dvh; padding: 1.25rem 1.1rem 2rem; }
  .lm-modal__close { top: 0.6rem; right: 0.6rem; width: 36px; height: 36px; }
  .lm-modal__grid { gap: 1.5rem; }
  .lm-modal__macros { gap: 0.35rem; margin-top: 1.1rem; }
  .lm-table th, .lm-table td { padding: 0.62rem 0; font-size: 0.8rem; }
  .lm-table th { width: 46%; }
  .lm-footer { padding: 2.6rem 0 3rem; }
  .lm-footer__row { flex-direction: column; align-items: flex-start; gap: 1rem; }
  .lm-footer__legal { font-size: 0.72rem; }
}

/* ================= real wordmark ================= */
.lm-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.lm-brand:hover .lm-brand__mark, .lm-brand:focus-visible .lm-brand__mark { background-position: 92% 0; }
.lm-footer .lm-brand { flex-direction: column; align-items: flex-start; gap: 0.55rem; }
.lm-footer .lm-brand__mark { width: 168px; height: 70px; }
.lm-brand__sub { font-family: var(--lm-display); font-size: 0.72rem; letter-spacing: 0.36em; text-indent: 0.36em; color: var(--lm-glass); }
@media (max-width: 640px) {
  .lm-brand__mark { width: 92px; height: 38px; }
  .lm-footer .lm-brand__mark { width: 132px; height: 55px; }
}

/* ================= purchase stage ================= */
.lm-buy { position: relative; z-index: 1; }
.lm-stage { position: relative; display: grid; place-items: center; min-height: clamp(400px, 50vw, 620px); }
.lm-halo { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; }
.lm-halo__rings { width: min(108%, 600px); aspect-ratio: 1; overflow: visible; grid-area: 1 / 1; }
.lm-halo__ring { fill: none; stroke: var(--lm-hair-gold); stroke-width: 1; }
.lm-halo__ring--dash { stroke: var(--lm-gold); stroke-dasharray: 2 15; opacity: 0.8; }
.lm-halo__ring--thin { stroke: rgba(147, 169, 163, 0.14); }
.lm-halo__glow { grid-area: 1 / 1; width: min(62%, 380px); aspect-ratio: 1; border-radius: 999px; background: radial-gradient(circle, rgba(200, 149, 47, 0.28), rgba(200, 149, 47, 0) 68%); }
.lm-dust { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.lm-bottle-wrap { position: relative; z-index: 2; display: grid; place-items: center; will-change: transform; }
.lm-bottle { display: block; height: clamp(300px, 42vw, 540px); width: auto; grid-area: 1 / 1; filter: drop-shadow(0 42px 60px rgba(0, 0, 0, 0.7)); }
.lm-sweep { grid-area: 1 / 1; position: relative; width: 100%; height: 100%; overflow: hidden; pointer-events: none; -webkit-mask: url("/assets/img/bottle-cut.webp") center / contain no-repeat; mask: url("/assets/img/bottle-cut.webp") center / contain no-repeat; }
.lm-sweep__bar { position: absolute; left: 0; right: 0; top: -34%; height: 34%; will-change: transform; background-image: linear-gradient(180deg, rgba(255, 244, 214, 0) 0%, rgba(255, 246, 220, 0.62) 50%, rgba(255, 244, 214, 0) 100%); }
.lm-orbit { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; }
.lm-orbit li { position: absolute; display: flex; align-items: center; gap: 0.5rem; white-space: nowrap; transform: translate(-50%, -50%); }
.lm-orbit li[data-side="left"] { flex-direction: row-reverse; }
.lm-orbit__dot { flex: none; width: 5px; height: 5px; border-radius: 999px; background: var(--lm-gold); }
.lm-orbit__label { font-size: 0.61rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--lm-glass); }
@media (max-width: 1040px) {
  .lm-orbit__label { display: none; }
  .lm-orbit__dot { width: 6px; height: 6px; box-shadow: 0 0 10px rgba(200, 149, 47, 0.7); }
}
.lm-shimmer { background-image: linear-gradient(100deg, #a97d26 0%, #f6e7b6 30%, #c8952f 50%, #f6e7b6 70%, #a97d26 100%); background-size: 260% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; }
.lm-mask-line { display: block; overflow: hidden; padding-bottom: 0.08em; }
.lm-mask-line > span { display: block; will-change: transform; }
@media (prefers-reduced-motion: reduce) {
  .lm-bottle-wrap, .lm-halo__rings { transform: none !important; }
}
.lm-buy .lm-specs li { animation: none; }
.lm-buy__copy { position: relative; z-index: 2; }

/* ================= the real gold lettering ================= */
.lm-logo { position: relative; display: block; height: 34px; will-change: transform; }
.lm-logo__img { display: block; height: 100%; width: auto; }
.lm-logo__sheen { position: absolute; inset: 0; pointer-events: none; -webkit-mask: url("/assets/img/lumes-logo.webp") left center / auto 100% no-repeat; mask: url("/assets/img/lumes-logo.webp") left center / auto 100% no-repeat; background-image: linear-gradient(104deg, rgba(255, 244, 214, 0) 38%, rgba(255, 246, 220, 0.85) 50%, rgba(255, 244, 214, 0) 62%); background-size: 260% 100%; background-position: 130% 0; background-repeat: no-repeat; transition: background-position 1.1s cubic-bezier(0.22, 1, 0.36, 1); }
.lm-brand:hover .lm-logo__sheen, .lm-brand:focus-visible .lm-logo__sheen { background-position: -60% 0; }
.lm-logo--lg { height: 52px; }
.lm-footer .lm-brand { flex-direction: column; align-items: flex-start; gap: 0.6rem; }
@media (max-width: 640px) {
  .lm-logo { height: 26px; }
  .lm-logo--lg { height: 40px; }
}

/* ================= mobile stability =================
   Two separate problems: something escaping the viewport width, and too many
   composited layers repainting at once on a phone. Overflow is contained at the
   elements that overflow, never on html or body: an overflow rule on an
   ancestor of the sticky scrub stage is what stalls the film. */
.lm-serves__track { overscroll-behavior-x: contain; }
.lm-rail { overscroll-behavior-x: contain; }

@media (max-width: 1040px) {
  .lm-stage { overflow: hidden; }
  .lm-halo__rings { width: min(94%, 430px); }
  .lm-halo__glow { width: min(58%, 300px); }
  .lm-bottle { filter: drop-shadow(0 22px 32px rgba(0, 0, 0, 0.6)); }
  .lm-bottle-wrap, .lm-logo, .lm-plate { will-change: auto; }
}

@media (max-width: 900px) {
  /* A blurred backdrop stacked over the sticky video stage is the single
     biggest source of repaint flicker on phones. Pay for opacity instead. */
  html { scroll-behavior: auto; }
  .lm-nav { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(7, 9, 10, 0.95); }
  .lm-serve__panel { backdrop-filter: none; -webkit-backdrop-filter: none; }
}

/* ================= no sideways drag =================
   Clipped on the sections themselves, never on html, body or any ancestor of
   the sticky film stage. */
.lm-section, .lm-footer { overflow-x: clip; }

/* ================= film framing and chapter legibility =================
   Two chapters can be on screen at once at a band seam. On a phone both sit at
   the bottom, so they collided. Only the active chapter's copy is shown, and
   before the controller runs every chapter is visible, so nothing is hidden
   from a static render. */
.scroll-scrub .scroll-scrub__copy { transition: opacity 0.3s ease; }
.scroll-scrub[data-active-section="0"] #botaniche .scroll-scrub__copy,
.scroll-scrub[data-active-section="0"] #distillazione .scroll-scrub__copy,
.scroll-scrub[data-active-section="1"] #origine .scroll-scrub__copy,
.scroll-scrub[data-active-section="1"] #distillazione .scroll-scrub__copy,
.scroll-scrub[data-active-section="2"] #origine .scroll-scrub__copy,
.scroll-scrub[data-active-section="2"] #botaniche .scroll-scrub__copy {
  opacity: 0;
  pointer-events: none;
}

@media (max-width: 860px) {
  /* Phones get their own 9:16 film, so it fills the screen without the brutal
     crop a 16:9 source needed. Framed slightly high so the chapter copy at the
     bottom sits on clean black. */
  .scroll-scrub__video, .scroll-scrub__poster { object-fit: cover; object-position: center 38%; }
  .scroll-scrub__stage { background: var(--lm-void); }
  .scroll-scrub .scroll-scrub__route { gap: 0; }
  .scroll-scrub .scroll-scrub__route-button { min-height: 2.2rem; padding: 0.45rem 0.7rem; }
  .scroll-scrub .scroll-scrub__route-button span { font-size: 0.66rem; letter-spacing: 0.16em; }
  .scroll-scrub .scroll-scrub__title { font-size: clamp(2.1rem, 9.5vw, 3.6rem); }
}

/* Stessa ragione: questi media riempiono il loro contenitore. */
.lm-serve img, .lm-plate img { height: 100%; max-width: none; }
.lm-dust { height: 100%; }

/* Il velo dietro la copy del capitolo era largo 2rem piu della copy stessa: su
   telefono usciva di 12px per lato e rendeva la pagina trascinabile in
   orizzontale. Lo allineo al padding della banda, stesso effetto visivo. */
@media (max-width: 860px) {
  .scroll-scrub .scroll-scrub__copy::before { inset: -3rem -1.25rem; }
}
