const { BoltMark, Btn, Chip, Photo, MenuRow, EventCard, LanguageBadge, Icon } = window.LTSKit;
const T = window.LTSTokens;
const C = window.LTSCopy;
const menuItems = window.LTSMenu;
const events = window.LTSEvents;

const EXTERNAL = {
  shop: "https://lovethemclub.com/",
  ltsInstagram: "https://www.instagram.com/lts.bratislava/",
  runningInstagram: "https://www.instagram.com/lovethemrunningclub/?hl=sk",
  maps: "https://www.google.com/maps/search/?api=1&query=Flori%C3%A1nska%202%2C%20Bratislava",
};
const MEDIA = {
  runners: "./assets/lifestyle/city-runners-pexels.jpg",
  heroVideo: "./assets/video/lovethem-hero.mp4",
  heroPoster: "./assets/video/lovethem-hero-poster.jpg",
  kruh: "./assets/products/kruh-flapjack.jpg",
  eliksir: "./assets/products/eliksir-feniks.png",
  vlcie: "./assets/products/vlcie-sirupy.jpg",
  madonan: "./assets/products/madonan-fior-di-latte.jpg",
};
const focusHref = (screen, lang) => `?screen=${screen}&lang=${lang}`;

function ConceptHeader({ lang, light = false, mobile = false, variant = "static" }) {
  const copy = C[lang];
  const pageHref = (desktop, phone = desktop) => variant === "pace" ? focusHref(mobile ? phone : desktop, lang) : "#";
  const currentScreen = new URLSearchParams(window.location.search).get("screen");
  const languageScreen = variant === "pace" && currentScreen && currentScreen.startsWith("pace-") ? currentScreen : (mobile ? "pace-mobile" : "pace-home");
  if (mobile) {
    return (
      <header className="concept-mobile-header">
        <a className="mobile-logo" href={pageHref("pace-home", "pace-mobile")}><BoltMark dark={light} compact /></a>
        <a className="mobile-language" href={variant === "pace" ? focusHref(languageScreen, lang === "sk" ? "en" : "sk") : "#"}>{copy.location} · {lang.toUpperCase()}/{lang === "sk" ? "EN" : "SK"}</a>
        <a aria-label="Menu" href={pageHref("pace-menu", "pace-menu-mobile")}><Icon name="menu" size={20} /></a>
      </header>
    );
  }
  return (
    <header className="concept-header">
      <a className="header-logo" href={focusHref("pace-home", lang)}><BoltMark dark={light} /></a>
      <nav>
        <a href={pageHref("pace-menu")}>{copy.nav[0]}</a>
        <a href={pageHref("pace-program")}>{copy.nav[1]}</a>
        <a href={EXTERNAL.runningInstagram} target="_blank" rel="noreferrer">{copy.nav[2]}</a>
        <a href={pageHref("pace-visit")}>{copy.nav[3]}</a>
      </nav>
      <div className="concept-header-end"><a href={EXTERNAL.shop} target="_blank" rel="noreferrer">{copy.shop}</a><a className="language-link" href={variant === "pace" ? focusHref(languageScreen, lang === "sk" ? "en" : "sk") : "#"}><LanguageBadge lang={lang} /></a></div>
    </header>
  );
}

function PartnerStrip() {
  return <div className="partner-strip">{["VLČIE", "ELIKSIR", "MADONAN", "KRUH", "VOXBERG"].map((p) => <span key={p}>{p}</span>)}</div>;
}

function ConceptFooter({ copy, lang = "sk", variant = "static" }) {
  if (variant === "pace") {
    return (
      <footer className="concept-footer pace-footer-v7">
        <div className="footer-arrival-ghost" aria-hidden="true">BRATISLAVA / CHAPTER 01</div>
        <div className="footer-arrival-main">
          <div className="footer-arrival-copy"><span>LOVE THEM SPACE · CHAPTER 01</span><h2>{lang === "sk" ? "STRETNEME SA POD HRADOM." : "MEET US UNDER THE CASTLE."}</h2></div>
          <a className="footer-arrival-cta" href={EXTERNAL.maps} target="_blank" rel="noreferrer"><span>{lang === "sk" ? "NAVIGOVAŤ" : "NAVIGATE"}</span><Icon name="arrow" size={22} /></a>
        </div>
        <div className="footer-arrival-utility">
          <div className="footer-arrival-place"><BoltMark dark /><p>Floriánska 2 · Vydrica<br />Bratislava, Slovakia</p></div>
          <nav className="footer-arrival-nav" aria-label={lang === "sk" ? "Navigácia v pätičke" : "Footer navigation"}><a href={focusHref("pace-menu", lang)}>{lang === "sk" ? "MENU" : "MENU"} →</a><a href={focusHref("pace-program", lang)}>{lang === "sk" ? "PROGRAM" : "WHAT'S ON"} →</a><a href={focusHref("pace-visit", lang)}>{lang === "sk" ? "KOMUNITA + NÁVŠTEVA" : "COMMUNITY + VISIT"} →</a></nav>
          <div className="footer-arrival-social"><a href={EXTERNAL.ltsInstagram} target="_blank" rel="noreferrer">INSTAGRAM LTS ↗</a><a href={EXTERNAL.runningInstagram} target="_blank" rel="noreferrer">RUNNING CLUB ↗</a><a href={EXTERNAL.shop} target="_blank" rel="noreferrer">SHOP ↗</a></div>
        </div>
        <div className="footer-arrival-bottom"><span>© 2026 LOVE THEM SPACE · BRATISLAVA</span><span>ALL PACES WELCOME</span></div>
      </footer>
    );
  }
  return (
    <footer className="concept-footer">
      <div><BoltMark /><p>{copy.footer}<br />Floriánska 2, Bratislava</p></div>
      <div className="footer-links"><a href={EXTERNAL.ltsInstagram} target="_blank" rel="noreferrer">INSTAGRAM LTS ↗</a><a href={EXTERNAL.runningInstagram} target="_blank" rel="noreferrer">INSTAGRAM LTRC ↗</a><a href={EXTERNAL.shop} target="_blank" rel="noreferrer">SHOP ↗</a></div>
      <div className="footer-news"><strong>{copy.newsletter}</strong><div><span>{copy.email}</span><b>{copy.subscribe} ↗</b></div><a href={variant === "pace" ? focusHref("pace-visit", lang) : "#"}>{lang === "sk" ? "NÁVŠTEVA A KONTAKT" : "VISIT & CONTACT"} →</a></div>
    </footer>
  );
}

function CalmHome({ lang }) {
  const copy = C[lang];
  return (
    <div className="screen calm calm-home">
      <div className="calm-ribbon">{copy.openNote}<span>{copy.eventName} · {copy.eventDay} {copy.eventTime}</span></div>
      <ConceptHeader lang={lang} light />
      <section className="calm-hero">
        <div className="calm-hero-copy">
          <span className="eyebrow">{copy.kicker}</span>
          <h1>{copy.hero}</h1>
          <p>{copy.intro}</p>
          <div className="button-row"><Btn>{copy.viewMenu}</Btn><Btn kind="ghost">{copy.findUs}</Btn></div>
        </div>
        <div className="calm-hero-media">
          <Photo label="GOLDEN HOUR · FRIENDS AT THE TABLE" tone="golden" />
          <div className="calm-next-run"><span>{copy.nextRun}</span><strong>{copy.eventName}</strong><small>{copy.eventDay} · {copy.eventTime}</small></div>
        </div>
      </section>
      <section className="calm-visits">
        <div className="section-heading"><span>{copy.visitLabel}</span><h2>From first light<br />to afterlight.</h2></div>
        <div className="visit-grid">{copy.visits.map((visit, i) => (
          <article key={visit.title} className={`visit-card visit-${i + 1}`}>
            <span>{visit.n}</span><h3>{visit.title}</h3><p>{visit.text}</p><b>→</b>
          </article>
        ))}</div>
      </section>
      <section className="calm-menu-preview">
        <div className="calm-menu-photo"><Photo label="FLAPJACK + SCOOP · TEXTURE CLOSE-UP" tone="cream" /><span className="round-note">POST-RUN<br />FAVOURITE</span></div>
        <div className="calm-menu-list"><span className="eyebrow">{copy.signature}</span><h2>{copy.menuTitle}</h2><p>{copy.menuIntro}</p>{menuItems.slice(3, 7).map((item, i) => <MenuRow item={item} number={i} key={item.name} compact />)}<Btn kind="outline">{copy.allMenu}</Btn></div>
      </section>
      <section className="calm-program">
        <div className="section-heading"><span>{copy.program}</span><h2>Move together.<br />Stay a little.</h2></div>
        <div className="event-grid">{events.map((event, i) => <EventCard event={event} index={i} key={event.title} />)}</div>
      </section>
      <section className="calm-partners"><div><span className="eyebrow">LOCAL COLLABORATORS</span><h2>{copy.partners}</h2><p>{copy.partnerText}</p></div><PartnerStrip /></section>
      <section className="calm-about"><Photo label="RUN CLUB RETURNING TO LTS · BLUE HOUR" tone="blue" /><div><span className="eyebrow">LOVE THEM SPACE</span><h2>{copy.aboutTitle}</h2><p>{copy.aboutText}</p><Btn kind="ghost">OUR STORY</Btn></div></section>
      <ConceptFooter copy={copy} />
    </div>
  );
}

function CalmMobile({ lang }) {
  const copy = C[lang];
  return (
    <div className="screen calm calm-mobile">
      <ConceptHeader lang={lang} light mobile />
      <div className="mobile-status">{copy.openNote}</div>
      <main>
        <span className="eyebrow">{copy.kicker}</span>
        <h1>{copy.hero}</h1>
        <p>{copy.intro}</p>
        <Photo label="MORNING TO GOLDEN HOUR" tone="golden" />
        <div className="mobile-actions"><Btn>{copy.viewMenu}</Btn><Btn kind="ghost">{copy.findUs}</Btn></div>
        <div className="mobile-next"><span>{copy.nextRun}</span><strong>{copy.eventName}</strong><small>{copy.eventDay} · {copy.eventTime}</small></div>
        <h2>{copy.visitLabel}</h2>
        <div className="mobile-visit-list">{copy.visits.map(v => <div key={v.title}><span>{v.n}</span><strong>{v.title}</strong><p>{v.text}</p></div>)}</div>
      </main>
      <nav className="mobile-dock"><span>MENU</span><span>NAVIGATE</span><span>PROGRAM</span></nav>
    </div>
  );
}

function CalmMenu({ lang }) {
  const copy = C[lang];
  const groups = [...new Set(menuItems.map(i => i.category))];
  return (
    <div className="screen calm calm-menu">
      <ConceptHeader lang={lang} light />
      <div className="menu-masthead"><div><span className="eyebrow">LOVE THEM SPACE * BRATISLAVA</span><h1>MENU</h1></div><div><p>{copy.menuIntro}</p><Chip tone="acid">{copy.menuNote}</Chip></div></div>
      <div className="calm-menu-columns">{groups.map((group, gi) => <section key={group}><header><span>0{gi + 1}</span><h2>{group}</h2></header>{menuItems.filter(i => i.category === group).map((item, i) => <MenuRow item={item} number={i} key={item.name} />)}</section>)}</div>
      <div className="menu-bottom"><Photo label="SEASONAL HOUSE DRINKS" tone="green" /><div><h2>COME AS YOU ARE.</h2><p>{copy.footer}</p><Btn>{copy.findUs}</Btn></div></div>
    </div>
  );
}

const PACE_PRODUCTS = [
  { id: "combo", kind: "combo", name: "Flapjack + Scoop", partner: "KRUH × MADONAN", price: "€5.90", source: "https://www.kruhpekaren.sk/pribehy-z-kruhu/ponuka/flapjack/", sk: "KRUH flapjack cookie s dennou kopčekovou zmrzlinou Madonan. Presná receptúra a alergény čakajú na potvrdenie.", en: "KRUH flapjack cookie with a daily Madonan scoop. Exact recipe and allergens await confirmation." },
  { id: "madonan", kind: "madonan", name: "Madonan Scoop", partner: "MADONAN", price: "€3.20", source: "https://www.madonan.sk/", sk: "Denná príchuť zmrzliny Madonan. Konkrétna príchuť, receptúra a alergény sa potvrdia pred publikovaním.", en: "A daily Madonan ice-cream flavour. The exact flavour, recipe and allergens will be confirmed before publishing." },
  { id: "eliksir", kind: "eliksir", name: "Eliksir Kombucha", partner: "ELIKSIR", price: "€4.50", source: "https://eliksirdrinks.sk/", sk: "Prémiová kombucha, vychladená a pripravená po pohybe aj večer.", en: "Premium kombucha, served cold after movement or later in the evening." },
  { id: "vlcie", kind: "vlcie", name: "Vlčie House Lemonade", partner: "VLČIE SIRUPY", price: "€4.20", source: "https://vlciesirupy.sk/", sk: "Sezónna limonáda z ručne vyrábaného prírodného sirupu Vlčie.", en: "A seasonal lemonade made with a hand-crafted natural Vlčie syrup." },
  { id: "voxberg", kind: "voxberg", name: "Voxberg on Ice", partner: "VOXBERG", price: "€3.90", source: "https://www.voxberg.com/produkty/elektrolyty", sk: "Koncept servírovania elektrolytov na ľade v čírom LTS pohári. Finálna príchuť a branding sa potvrdia.", en: "A serving concept for electrolytes over ice in a clear LTS cup. Final flavour and branding to be confirmed." },
];

const PACE_WEEK = {
  range: { sk: "10—16 AUG · KONCEPT", en: "10—16 AUG · CONCEPT" },
  events: [
    { id: "easy-5k", date: { sk: "UT · 11 AUG", en: "TUE · 11 AUG" }, time: "18:30", type: { sk: "KOMUNITNÝ BEH", en: "COMMUNITY RUN" }, title: "EASY 5K", distance: "05.0", sk: "Päť ľahkých kilometrov mestom. Všetky tempá sú vítané.", en: "Five easy kilometres through the city. All paces are welcome." },
    { id: "love-them-run", date: { sk: "ŠT · 13 AUG", en: "THU · 13 AUG" }, time: "18:30", type: { sk: "PACE GROUPS", en: "PACE GROUPS" }, title: "LOVE THEM RUN", distance: "VAR", sk: "Viac pace groups, jeden spoločný návrat do LTS.", en: "Several pace groups, one shared finish back at LTS." },
    { id: "sober-run-party", date: { sk: "SO · 15 AUG", en: "SAT · 15 AUG" }, time: "17:00", type: { sk: "RUN + MUSIC", en: "RUN + MUSIC" }, title: "SOBER RUN & PARTY", distance: "05.0", sk: "Rozklus, päť kilometrov, DJ set a nealko finish pod hradom.", en: "Warm-up, five kilometres, a DJ set and a zero-proof finish." },
  ],
};

const PACE_REELS = [
  { id: "tuesday", src: null, poster: MEDIA.runners, position: "22% center", sk: "Easy kilometre. Hlučný finish.", en: "Easy kilometres. Loud finish." },
  { id: "stay", src: null, poster: MEDIA.runners, position: "64% center", sk: "Z behu rovno zostať.", en: "Run first. Stay after." },
  { id: "saturday", src: null, poster: MEDIA.runners, position: "88% center", sk: "Sobotná energia pod hradom.", en: "Saturday energy under the castle." },
];

const PACE_REVEAL_SELECTOR = [
  ".pace-split",
  ".pace-product-preview",
  ".pace-program",
  ".pace-partners",
  ".pace-manifesto",
  ".menu-bento-wrap",
  ".pace-menu-board",
  ".subpage-hero",
  ".program-feature",
  ".program-list",
  ".visit-map",
  ".community-grid",
  ".pace-bento .pace-product-card",
  ".pace-bento-mobile .pace-product-card",
  ".mobile-km",
  ".mobile-next-event",
  ".mobile-reels",
  ".mobile-event",
  ".mobile-community-links",
].join(",");

function usePaceMotion(anchorRef) {
  React.useEffect(() => {
    const root = anchorRef.current?.closest(".screen.pace");
    if (!root) return undefined;
    const prefersReduced = window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;
    const targets = [...root.querySelectorAll(PACE_REVEAL_SELECTOR)];
    root.classList.add("pace-motion-enabled");
    targets.forEach((target, index) => {
      target.classList.add("motion-reveal");
      if (target.matches(".pace-product-card, .mobile-event")) {
        target.style.setProperty("--motion-delay", `${(index % 5) * 60}ms`);
      }
    });
    const reveal = target => {
      target.classList.add("is-visible");
    };
    if (prefersReduced || !("IntersectionObserver" in window)) {
      root.classList.toggle("motion-reduced", Boolean(prefersReduced));
      targets.forEach(reveal);
      return undefined;
    }
    const observer = new IntersectionObserver(entries => {
      entries.forEach(entry => {
        if (!entry.isIntersecting) return;
        reveal(entry.target);
        observer.unobserve(entry.target);
      });
    }, { threshold: 0.12, rootMargin: "0px 0px -6% 0px" });
    targets.forEach(target => observer.observe(target));
    return () => observer.disconnect();
  }, [anchorRef]);
}

function CommunityReel({ reel, lang, compact = false }) {
  const videoRef = React.useRef(null);
  const [playing, setPlaying] = React.useState(false);
  React.useEffect(() => {
    const video = videoRef.current;
    if (!video || !reel.src) return undefined;
    const reduced = window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;
    const pauseOtherReels = () => {
      document.querySelectorAll(".community-reel video").forEach(other => {
        if (other !== video) other.pause();
      });
    };
    video.addEventListener("play", pauseOtherReels);
    if (reduced || !("IntersectionObserver" in window)) {
      video.pause();
      return () => video.removeEventListener("play", pauseOtherReels);
    }
    const observer = new IntersectionObserver(entries => {
      entries.forEach(entry => {
        if (entry.isIntersecting) video.play().catch(() => setPlaying(false));
        else video.pause();
      });
    }, { threshold: 0.68 });
    observer.observe(video);
    return () => {
      observer.disconnect();
      video.removeEventListener("play", pauseOtherReels);
    };
  }, [reel.src]);
  const togglePlayback = () => {
    const video = videoRef.current;
    if (!video) return;
    if (video.paused) video.play().catch(() => setPlaying(false));
    else video.pause();
  };
  const pending = lang === "sk" ? "LTS VIDEO DOPLNÍME" : "LTS VIDEO PENDING";
  return <article className={`community-reel reel-${reel.id} ${compact ? "community-reel-compact" : ""}`}>
    <div className="community-reel-media">
      {reel.src
        ? <video ref={videoRef} src={reel.src} poster={reel.poster} muted loop playsInline preload="metadata" onPlay={() => setPlaying(true)} onPause={() => setPlaying(false)} />
        : <img src={reel.poster} style={{ objectPosition: reel.position }} alt={lang === "sk" ? "Bezplatná referenčná fotografia namiesto pripravovaného LTS reel videa" : "Free reference photo standing in for a future LTS reel"} />}
      <span className="reel-index">REEL / {String(PACE_REELS.indexOf(reel) + 1).padStart(2, "0")}</span>
      <div className="reel-copy"><small>CONTENT DIRECTION</small><strong>{reel[lang]}</strong></div>
      {reel.src
        ? <button type="button" onClick={togglePlayback} aria-label={playing ? (lang === "sk" ? "Pozastaviť video" : "Pause video") : (lang === "sk" ? "Prehrať video" : "Play video")}>{playing ? "Ⅱ" : "▶"}</button>
        : <span className="reel-pending">{pending}</span>}
      <small className="reel-credit">PEXELS POSTER · OWNED MP4 TBC</small>
    </div>
  </article>;
}

function PaceMarquee({ lang }) {
  const anchorRef = React.useRef(null);
  usePaceMotion(anchorRef);
  const text = lang === "sk"
    ? "LOVE THEM SPACE · BRATISLAVA · POHYB · CHUŤ · HUDBA · ĽUDIA · ALL PACES WELCOME ·"
    : "LOVE THEM SPACE · BRATISLAVA · MOVE · EAT · LISTEN · CONNECT · ALL PACES WELCOME ·";
  return <div ref={anchorRef} className="pace-marquee" aria-label={text}><div>{[0, 1].map(i => <span key={i}>{text} {text} </span>)}</div></div>;
}

function ProductVisual({ product, compact = false }) {
  if (product.kind === "voxberg") return <div className={`product-visual visual-voxberg ${compact ? "compact" : ""}`} role="img" aria-label="Voxberg electrolyte serving concept in a clear LTS cup"><div className="ice-cup"><i></i><i></i><i></i><b>LTS<br />05K</b></div><span>SERVING CONCEPT</span></div>;
  if (product.kind === "combo") return <div className={`product-visual visual-combo ${compact ? "compact" : ""}`}><div className="combo-kruh"><img src={MEDIA.kruh} alt="KRUH Flapjack cookie" /></div><div className="combo-madonan"><img src={MEDIA.madonan} alt="Madonan Fior di latte package" /></div><div className="combo-plus" aria-hidden="true">+</div><span>KRUH × MADONAN · SERVING CONCEPT</span></div>;
  const src = product.kind === "eliksir" ? MEDIA.eliksir : product.kind === "madonan" ? MEDIA.madonan : MEDIA.vlcie;
  return <div className={`product-visual visual-${product.kind} ${compact ? "compact" : ""}`}><img src={src} alt={`${product.name} official product reference`} /><span>OFFICIAL PARTNER REFERENCE</span></div>;
}

function ProductCard({ product, lang, onOpen, compact = false }) {
  return <button type="button" className={`pace-product-card bento-product-card product-${product.id} ${compact ? "compact" : ""}`} aria-haspopup="dialog" onClick={() => onOpen(product)}><ProductVisual product={product} compact={compact} /><div className="product-card-copy"><small>{product.partner}</small><h3>{product.name}</h3><p>{product[lang]}</p><strong>{product.price}</strong><b>DETAIL +</b></div></button>;
}

function ProductModal({ product, lang, onClose, onChange, mobile = false }) {
  const dialogRef = React.useRef(null);
  const closeRef = React.useRef(null);
  const returnFocusRef = React.useRef(null);
  const wasOpenRef = React.useRef(false);
  const productIndex = product ? PACE_PRODUCTS.findIndex(item => item.id === product.id) : -1;
  React.useEffect(() => {
    if (product && !wasOpenRef.current) {
      returnFocusRef.current = document.activeElement;
      wasOpenRef.current = true;
    }
    if (!product && wasOpenRef.current) {
      returnFocusRef.current?.focus();
      returnFocusRef.current = null;
      wasOpenRef.current = false;
    }
  }, [product]);
  React.useEffect(() => {
    if (!product) return undefined;
    const previousOverflow = document.body.style.overflow;
    document.body.style.overflow = "hidden";
    if (mobile) document.body.classList.add("product-modal-mobile-open");
    closeRef.current?.focus();
    const onKeyDown = (event) => {
      if (event.key === "Escape") onClose();
      if (event.key !== "Tab" || !dialogRef.current) return;
      const controls = [...dialogRef.current.querySelectorAll("button, a[href]")].filter(el => !el.disabled);
      if (!controls.length) return;
      const first = controls[0];
      const last = controls[controls.length - 1];
      if (event.shiftKey && document.activeElement === first) { event.preventDefault(); last.focus(); }
      if (!event.shiftKey && document.activeElement === last) { event.preventDefault(); first.focus(); }
    };
    window.addEventListener("keydown", onKeyDown);
    return () => {
      window.removeEventListener("keydown", onKeyDown);
      document.body.style.overflow = previousOverflow;
      document.body.classList.remove("product-modal-mobile-open");
    };
  }, [product, onClose, mobile]);
  React.useEffect(() => () => {
    if (wasOpenRef.current) returnFocusRef.current?.focus();
  }, []);
  if (!product) return null;
  const previous = PACE_PRODUCTS[(productIndex - 1 + PACE_PRODUCTS.length) % PACE_PRODUCTS.length];
  const next = PACE_PRODUCTS[(productIndex + 1) % PACE_PRODUCTS.length];
  return ReactDOM.createPortal(<div className={`product-modal-backdrop ${window.innerWidth <= 600 ? "product-modal-mobile" : ""}`} role="presentation" onMouseDown={event => { if (event.target === event.currentTarget) onClose(); }}><section ref={dialogRef} className={`product-modal product-modal-${product.id}`} role="dialog" aria-modal="true" aria-labelledby={`product-title-${product.id}`}><header className="product-modal-top"><span>{String(productIndex + 1).padStart(2, "0")} / {String(PACE_PRODUCTS.length).padStart(2, "0")} · {product.partner}</span><button ref={closeRef} className="product-modal-close" type="button" onClick={onClose} aria-label={lang === "sk" ? "Zavrieť detail produktu" : "Close product detail"}>{lang === "sk" ? "ZAVRIEŤ" : "CLOSE"} ×</button></header><div className="product-modal-layout"><div className="product-modal-media"><ProductVisual product={product} /></div><div className="product-modal-copy"><span>{lang === "sk" ? "LTS VÝBER" : "LTS PICK"} / {product.partner}</span><h2 id={`product-title-${product.id}`}>{product.name}</h2><p>{product[lang]}</p><div className="product-modal-price"><small>{lang === "sk" ? "NÁVRH CENY" : "PROPOSED PRICE"}</small><strong>{product.price}</strong></div><div className="product-modal-status"><b>{lang === "sk" ? "PRED PUBLIKOVANÍM" : "BEFORE PUBLISHING"}</b><p>{lang === "sk" ? "Potvrdiť finálnu cenu, dostupnosť, receptúru a alergény." : "Confirm final price, availability, recipe and allergens."}</p></div><a className="product-source" href={product.source} target="_blank" rel="noreferrer">{lang === "sk" ? "OFICIÁLNY ZDROJ" : "OFFICIAL SOURCE"} ↗</a></div></div><footer className="product-modal-nav"><button type="button" onClick={() => onChange(previous)}>← <span>{previous.name}</span></button><button type="button" onClick={() => onChange(next)}><span>{next.name}</span> →</button></footer></section></div>, document.body);
}

function PaceHeroVideo({ lang, mobile = false }) {
  const videoRef = React.useRef(null);
  const [reducedMotion, setReducedMotion] = React.useState(() => window.matchMedia?.("(prefers-reduced-motion: reduce)").matches ?? false);
  const [playing, setPlaying] = React.useState(false);
  React.useEffect(() => {
    const preference = window.matchMedia?.("(prefers-reduced-motion: reduce)");
    if (!preference) return undefined;
    const handlePreference = event => setReducedMotion(event.matches);
    preference.addEventListener?.("change", handlePreference);
    return () => preference.removeEventListener?.("change", handlePreference);
  }, []);
  React.useEffect(() => {
    const video = videoRef.current;
    if (!video) return;
    if (reducedMotion) {
      video.pause();
      video.currentTime = 0;
      return;
    }
    const attempt = video.play();
    attempt?.catch(() => setPlaying(false));
  }, [reducedMotion]);
  const togglePlayback = () => {
    const video = videoRef.current;
    if (!video) return;
    if (video.paused) video.play()?.catch(() => setPlaying(false));
    else video.pause();
  };
  const label = playing
    ? (lang === "sk" ? "Pozastaviť video v hero" : "Pause hero video")
    : (lang === "sk" ? "Prehrať video v hero" : "Play hero video");
  return (
    <div className={`pace-hero-video${mobile ? " pace-hero-video-mobile" : ""}`}>
      <video ref={videoRef} src={MEDIA.heroVideo} poster={MEDIA.heroPoster} muted loop playsInline autoPlay={!reducedMotion} preload={reducedMotion ? "none" : "metadata"} aria-hidden="true" tabIndex="-1" onPlay={() => setPlaying(true)} onPause={() => setPlaying(false)} onError={() => setPlaying(false)} />
      <div className="pace-hero-video-shade" aria-hidden="true"></div>
      <div className="pace-hero-video-grid" aria-hidden="true"></div>
      <button className="pace-hero-video-toggle" type="button" onClick={togglePlayback} aria-label={label} aria-pressed={playing} title={label}><span aria-hidden="true">{playing ? "Ⅱ" : "▶"}</span></button>
    </div>
  );
}

function PaceHome({ lang }) {
  const copy = C[lang];
  const [activeProduct, setActiveProduct] = React.useState(null);
  return (
    <div className="screen pace pace-home pace-v3">
      <PaceMarquee lang={lang} />
      <ConceptHeader lang={lang} variant="pace" />
      <section className="pace-hero">
        <PaceHeroVideo lang={lang} />
        <div className="pace-ghost pace-ghost-hero" aria-hidden="true">LOVE THEM</div>
        <div className="pace-route-mark" aria-hidden="true"><span>START</span><i></i><b>05K</b></div>
        <div className="pace-code">LTS / BA<br />48.1419° N<br />17.1002° E</div>
        <h1>{copy.heroShort.split("\n").map((line, i) => <span key={line} className={`pace-line pace-line-${i}`}>{line}</span>)}</h1>
        <div className="pace-cta"><p>{copy.intro}</p><Btn href={focusHref("pace-menu", lang)}>{copy.viewMenu}</Btn></div>
      </section>
      <section className="pace-split">
        <div className="pace-run-card"><span>{copy.nextRun}</span><strong>05.0</strong><small>KM · EASY PACE · NO REGISTRATION · NO FEES</small><h2>{copy.eventDay}<br />{copy.eventTime}</h2><Btn kind="black" href={focusHref("pace-program", lang)}>RUN WITH US</Btn></div>
        <div className="pace-visit-panel"><h2>{copy.visitLabel}</h2>{copy.visits.map(v => <div key={v.title}><b>{v.n}</b><strong>{v.title}</strong><p>{v.text}</p></div>)}</div>
      </section>
      <section className="pace-product-preview"><header><span>01 / EAT + DRINK</span><h2>{copy.menuTitle}</h2><Btn kind="black" href={focusHref("pace-menu", lang)}>{copy.allMenu}</Btn></header><div className="pace-bento pace-bento-home">{PACE_PRODUCTS.map(p => <ProductCard key={p.id} product={p} lang={lang} onOpen={setActiveProduct} />)}</div><p className="prototype-note">{copy.prototypePriceNote}</p></section>
      <section className="pace-program pace-program-v6"><div className="pace-ghost pace-ghost-program" aria-hidden="true">THIS WEEK</div><header><span>02 / MOVE · {PACE_WEEK.range[lang]}</span><h2>{copy.program}</h2><Btn href={focusHref("pace-program", lang)}>{lang === "sk" ? "CELÝ PROGRAM" : "FULL PROGRAM"}</Btn></header><div className="pace-home-program-grid"><div className="pace-event-list">{PACE_WEEK.events.map((event, i) => <article key={event.id}><b>0{i + 1}</b><span>{event.date[lang]}</span><strong>{event.time}</strong><h3>{event.title}</h3><em>→</em></article>)}</div><CommunityReel reel={PACE_REELS[0]} lang={lang} compact /></div><p className="prototype-note dark">{copy.prototypeProgramNote}</p></section>
      <section className="pace-partners"><div><span>03 / COMMUNITY SUPPLY</span><h2>{copy.partners}</h2></div><PartnerStrip /><div className="pace-partner-code">BRATISLAVA / LOCAL / 2026</div></section>
      <section className="pace-manifesto"><div className="pace-community-photo"><img src={MEDIA.runners} alt="Urban running reference" /></div><div><div className="pace-ghost pace-ghost-story" aria-hidden="true">LOVE</div><small>LOVE THEM / CHAPTER 01</small><h2>{copy.aboutTitle}</h2><p>{copy.aboutText}</p><Btn kind="black" href={focusHref("pace-visit", lang)}>{lang === "sk" ? "SPOZNAŤ LTS" : "MEET LTS"}</Btn></div></section>
      <ConceptFooter copy={copy} lang={lang} variant="pace" />
      <ProductModal product={activeProduct} lang={lang} onClose={() => setActiveProduct(null)} onChange={setActiveProduct} />
    </div>
  );
}

function PaceMobileDock({ lang }) {
  return <nav className="mobile-dock"><a href={focusHref("pace-menu-mobile", lang)}>MENU</a><a href={focusHref("pace-visit-mobile", lang)}>NAVIGATE</a><a href={focusHref("pace-program-mobile", lang)}>PROGRAM</a></nav>;
}

function PaceMobile({ lang }) {
  const copy = C[lang];
  return (
    <div className="screen pace pace-mobile pace-v3-mobile">
      <PaceMarquee lang={lang} />
      <ConceptHeader lang={lang} mobile variant="pace" />
      <main>
        <section className="pace-mobile-hero">
          <PaceHeroVideo lang={lang} mobile />
          <div className="pace-mobile-ghost" aria-hidden="true">LOVE<br />THEM</div>
          <div className="pace-mobile-code">LTS / BA<br />FLORIÁNSKA 2</div>
          <h1>{copy.heroShort.split("\n").map(line => <span key={line}>{line}</span>)}</h1>
          <p>{copy.intro}</p>
          <div className="mobile-actions"><Btn href={focusHref("pace-menu-mobile", lang)}>{copy.viewMenu}</Btn><Btn kind="outline" href={focusHref("pace-visit-mobile", lang)}>{copy.findUs}</Btn></div>
        </section>
        <div className="pace-mobile-run"><span>{copy.nextRun}</span><strong>05.0 KM</strong><small>{copy.eventDay} / {copy.eventTime}</small></div>
        <h2>{lang === "sk" ? "NAJVIAC CHCEM /" : "TOP PICK /"}</h2>
        <ProductVisual product={PACE_PRODUCTS[0]} compact />
      </main>
      <PaceMobileDock lang={lang} />
    </div>
  );
}

function PaceMenu({ lang }) {
  const copy = C[lang];
  const [activeProduct, setActiveProduct] = React.useState(null);
  return (
    <div className="screen pace pace-menu pace-menu-v3 pace-menu-v4">
      <PaceMarquee lang={lang} /><ConceptHeader lang={lang} variant="pace" />
      <div className="pace-menu-title"><div className="pace-ghost pace-ghost-menu-page" aria-hidden="true">LOVE THEM</div><span>FUEL / COOL / STAY</span><h1>MENU</h1><p>{copy.menuIntro}</p></div>
      <section className="menu-bento-wrap"><header><span>01 / PARTNER PICKS</span><p>{lang === "sk" ? "To najlepšie od ľudí, ktorí s nami behajú, tvoria a zostávajú." : "The best from people who run, make and stay with us."}</p></header><div className="pace-bento pace-bento-menu">{PACE_PRODUCTS.map(p => <ProductCard key={p.id} product={p} lang={lang} onOpen={setActiveProduct} />)}</div></section>
      <section className="pace-menu-board">{menuItems.map((item, i) => <div className="pace-menu-item" key={item.name}><b>{String(i + 1).padStart(2, "0")}</b><div><span>{item.category}</span><h2>{item.name}</h2><p>{item.detail}</p></div><strong>{item.price}</strong></div>)}</section>
      <p className="menu-page-note">{copy.prototypePriceNote}</p>
      <div className="pace-menu-footer"><strong>FINISH LINE COMBO</strong><span>VOXBERG ON ICE + KRUH FLAPJACK</span><b>€6.20</b><em>LOVE THEM SPACE · BRATISLAVA · LOVE THEM SPACE · BRATISLAVA</em></div>
      <ProductModal product={activeProduct} lang={lang} onClose={() => setActiveProduct(null)} onChange={setActiveProduct} />
    </div>
  );
}

function PaceMenuMobile({ lang }) {
  const copy = C[lang];
  const [activeProduct, setActiveProduct] = React.useState(null);
  return <div className="screen pace pace-sub-mobile pace-menu-mobile pace-menu-mobile-v4"><PaceMarquee lang={lang} /><ConceptHeader lang={lang} mobile variant="pace" /><main><span className="page-code">01 / FUEL + COOL</span><h1>MENU</h1><p className="mobile-menu-intro">{lang === "sk" ? "Partneri z komunity, rýchla energia aj pomalý večer pod hradom." : "Community partners, quick fuel and slow evenings under the castle."}</p><div className="pace-bento-mobile">{PACE_PRODUCTS.map(p => <ProductCard key={p.id} product={p} lang={lang} onOpen={setActiveProduct} />)}</div><p className="prototype-note dark">{copy.prototypePriceNote}</p></main><PaceMobileDock lang={lang} /><ProductModal product={activeProduct} lang={lang} onClose={() => setActiveProduct(null)} onChange={setActiveProduct} mobile /></div>;
}

function PaceProgram({ lang }) {
  const copy = C[lang];
  const next = PACE_WEEK.events[0];
  return <div className="screen pace pace-subpage pace-program-page pace-program-page-v6"><PaceMarquee lang={lang} /><ConceptHeader lang={lang} variant="pace" /><header className="subpage-hero program-hero-v6"><span>02 / MOVE TOGETHER · {PACE_WEEK.range[lang]}</span><h1>{lang === "sk" ? "PROGRAM" : "WHAT'S ON"}</h1><p>{lang === "sk" ? "Jeden týždeň. Viac temp. Beh, hudba a chvíle, kvôli ktorým sa oplatí zostať dlhšie." : "One week. More paces. Runs, music and the moments worth staying longer for."}</p></header><section className="program-feature program-feature-v6"><div className="program-next-card"><span>{lang === "sk" ? "NAJBLIŽŠIE" : "UP NEXT"} / {next.type[lang]}</span><strong>{next.distance}<small>KM</small></strong><div><b>{next.date[lang]} · {next.time}</b><h2>{next.title}</h2><p>{next[lang]}</p></div><a href={EXTERNAL.runningInstagram} target="_blank" rel="noreferrer">RUNNING CLUB ↗</a></div><div className="program-reel-grid" aria-label={lang === "sk" ? "Miesta pre komunitné reel videá" : "Community reel video positions"}>{PACE_REELS.map(reel => <CommunityReel key={reel.id} reel={reel} lang={lang} />)}</div></section><section className="program-list program-list-v6"><header><span>WEEK / {PACE_WEEK.range[lang]}</span><h2>{lang === "sk" ? "VŠETKO, ČO SA DEJE." : "EVERYTHING THAT'S ON."}</h2></header>{PACE_WEEK.events.map((event,i)=><article key={event.id}><b>0{i+1}</b><div className="program-event-meta"><span>{event.date[lang]}</span><strong>{event.time}</strong></div><div><small>{event.type[lang]}</small><h2>{event.title}</h2><p>{event[lang]}</p></div><a href={EXTERNAL.runningInstagram} target="_blank" rel="noreferrer">DETAIL ↗</a></article>)}</section><p className="subpage-note">{copy.prototypeProgramNote} {lang === "sk" ? "Reel médiá sú označené placeholdery pre videá dodané LTS." : "Reel media are labelled placeholders for LTS-supplied videos."}</p><ConceptFooter copy={copy} lang={lang} variant="pace" /></div>;
}

function PaceProgramMobile({ lang }) {
  const copy = C[lang];
  const next = PACE_WEEK.events[0];
  return <div className="screen pace pace-sub-mobile pace-program-mobile pace-program-mobile-v6"><PaceMarquee lang={lang} /><ConceptHeader lang={lang} mobile variant="pace" /><main><span className="page-code">02 / MOVE TOGETHER</span><h1>{lang === "sk" ? "PROGRAM" : "WHAT'S ON"}</h1><p className="mobile-week-range">{PACE_WEEK.range[lang]}</p><section className="mobile-next-event"><span>{lang === "sk" ? "NAJBLIŽŠIE" : "UP NEXT"} · {next.date[lang]} · {next.time}</span><strong>{next.distance}<small>KM</small></strong><h2>{next.title}</h2><p>{next[lang]}</p></section><div className="mobile-reels-head"><span>COMMUNITY / REELS</span><b>01—03</b></div><div className="mobile-reels" tabIndex="0" aria-label={lang === "sk" ? "Posúvateľné reel ukážky" : "Scrollable reel previews"} onKeyDown={event => { if (event.key !== "ArrowLeft" && event.key !== "ArrowRight") return; event.preventDefault(); event.currentTarget.scrollBy({ left: event.key === "ArrowRight" ? 176 : -176, behavior: window.matchMedia?.("(prefers-reduced-motion: reduce)").matches ? "auto" : "smooth" }); }}>{PACE_REELS.map(reel => <CommunityReel key={reel.id} reel={reel} lang={lang} />)}</div><div className="mobile-week-list">{PACE_WEEK.events.map((event,i)=><a className="mobile-event" href={EXTERNAL.runningInstagram} target="_blank" rel="noreferrer" key={event.id}><b>0{i+1}</b><span>{event.date[lang]}<small>{event.time} · {event.type[lang]}</small></span><strong>{event.title}</strong><em>↗</em></a>)}</div><p className="prototype-note dark">{copy.prototypeProgramNote} {lang === "sk" ? "Videá dodá LTS." : "Videos to be supplied by LTS."}</p></main><PaceMobileDock lang={lang} /></div>;
}

function PaceVisit({ lang }) {
  const copy = C[lang];
  return <div className="screen pace pace-subpage pace-visit-page"><PaceMarquee lang={lang} /><ConceptHeader lang={lang} variant="pace" /><header className="subpage-hero visit-hero"><span>03 / COMMUNITY + VISIT</span><h1>{lang === "sk" ? "POD HRADOM." : "UNDER THE CASTLE."}</h1><p>{copy.aboutText}</p></header><section className="visit-map"><div className="map-graphic"><span>CASTLE</span><i></i><b>LTS</b><small>FLORIÁNSKA 2</small></div><div className="visit-facts"><span>LOVE THEM SPACE · BRATISLAVA</span><h2>Floriánska 2<br />Vydrica, Bratislava</h2><p>{lang === "sk" ? "Presné otváracie hodiny doplníme po potvrdení prevádzky." : "Exact opening hours will follow operational confirmation."}</p><Btn href={EXTERNAL.maps} external>{copy.findUs}</Btn></div></section><section className="community-grid"><article><span>RUN</span><h2>LOVE THEM RUNNING CLUB</h2><p>{lang === "sk" ? "Domov bratislavskej bežeckej komunity. Bez registrácie, bez poplatku." : "Home of Bratislava's running community. No registration and no fee."}</p><a href={EXTERNAL.runningInstagram} target="_blank" rel="noreferrer">INSTAGRAM ↗</a></article><article><span>STAY</span><h2>{lang === "sk" ? "JEDEN SPACE. VIAC MIEST." : "ONE SPACE. MORE CITIES."}</h2><p>{lang === "sk" ? "Bratislava je kapitola 01. Architektúra webu je pripravená na ďalšie pobočky bez vymýšľania nepotvrdených lokalít." : "Bratislava is chapter 01. The site architecture is ready for future locations without inventing unconfirmed cities."}</p><a href={EXTERNAL.ltsInstagram} target="_blank" rel="noreferrer">LTS BRATISLAVA ↗</a></article></section><ConceptFooter copy={copy} lang={lang} variant="pace" /></div>;
}

function PaceVisitMobile({ lang }) {
  const copy = C[lang];
  return <div className="screen pace pace-sub-mobile pace-visit-mobile"><PaceMarquee lang={lang} /><ConceptHeader lang={lang} mobile variant="pace" /><main><span className="page-code">03 / COMMUNITY + VISIT</span><h1>{lang === "sk" ? "POD HRADOM." : "UNDER THE CASTLE."}</h1><div className="map-graphic"><span>CASTLE</span><i></i><b>LTS</b><small>FLORIÁNSKA 2</small></div><h2>Floriánska 2<br />Vydrica, Bratislava</h2><p>{copy.footer}. {lang === "sk" ? "Otváracie hodiny potvrdíme." : "Opening hours to be confirmed."}</p><Btn href={EXTERNAL.maps} external>{copy.findUs}</Btn><div className="mobile-community-links"><a href={EXTERNAL.ltsInstagram} target="_blank" rel="noreferrer">INSTAGRAM LTS ↗</a><a href={EXTERNAL.runningInstagram} target="_blank" rel="noreferrer">RUNNING CLUB ↗</a><a href={EXTERNAL.shop} target="_blank" rel="noreferrer">SHOP ↗</a></div></main><PaceMobileDock lang={lang} /></div>;
}

function Sticker({ children, tone = "acid", rotate = 0, className = "" }) {
  return <span className={`sticker sticker-${tone} ${className}`} style={{ transform: `rotate(${rotate}deg)` }}>{children}</span>;
}

function MixHome({ lang }) {
  const copy = C[lang];
  return (
    <div className="screen mix mix-home">
      <ConceptHeader lang={lang} light />
      <section className="mix-hero">
        <div className="mix-hero-copy"><Sticker tone="acid" rotate={-3}>LOVE THEM SPACE</Sticker><h1>{copy.hero}</h1><p>{copy.intro}</p><div className="button-row"><Btn>{copy.viewMenu}</Btn><Btn kind="outline">{copy.findUs}</Btn></div></div>
        <div className="mix-hero-collage"><Photo label="FRIENDS · FOOD · RUN" tone="collage" /><Sticker tone="pink" rotate={6} className="mix-sticker-one">UNDER THE CASTLE</Sticker><Sticker tone="teal" rotate={-7} className="mix-sticker-two">ALL PACES WELCOME</Sticker><div className="mix-bolt"><Icon name="bolt" size={96} stroke={T.mix.acid} /></div></div>
      </section>
      <div className="mix-marquee">RUN WITH US ✦ EAT WITH US ✦ STAY WITH US ✦ RUN WITH US ✦ EAT WITH US ✦</div>
      <section className="mix-visits"><header><Sticker tone="orange" rotate={-2}>{copy.visitLabel}</Sticker><h2>Pick your mood.</h2></header><div>{copy.visits.map((v, i) => <article className={`mix-visit mix-color-${i}`} key={v.title}><span>{v.n}</span><h3>{v.title}</h3><p>{v.text}</p><b>ADD TO DAY +</b></article>)}</div></section>
      <section className="mix-menu-preview"><div><Sticker tone="acid" rotate={2}>TODAY'S MIX</Sticker><h2>{copy.menuTitle}</h2><p>{copy.menuIntro}</p><Btn kind="black">{copy.allMenu}</Btn></div><div className="mix-menu-cards">{menuItems.slice(3, 8).map((item, i) => <article className={`mix-product mix-product-${i}`} key={item.name}><small>{item.category}</small><strong>{item.name}</strong><span>{item.price}</span></article>)}</div></section>
      <section className="mix-program"><header><Sticker tone="pink" rotate={-2}>{copy.program}</Sticker><h2>What's on the playlist?</h2></header><div>{events.map((event, i) => <article key={event.title}><span>TRACK 0{i + 1}</span><h3>{event.title}</h3><p>{event.day} · {event.time}</p><b>PLAY →</b></article>)}</div></section>
      <section className="mix-partners"><div><Sticker tone="teal" rotate={2}>FEATURING</Sticker><h2>{copy.partners}</h2><p>{copy.partnerText}</p></div><div className="partner-orbit">{["VLČIE", "ELIKSIR", "MADONAN", "KRUH", "VOXBERG"].map((p, i) => <span key={p} style={{ transform: `rotate(${[-5, 4, -2, 6, -4][i]}deg)` }}>{p}</span>)}</div></section>
      <section className="mix-about"><div><h2>{copy.aboutTitle}</h2><p>{copy.aboutText}</p><Sticker tone="acid" rotate={-4}>BRATISLAVA IS CHAPTER 01</Sticker></div><Photo label="ONE TABLE · MANY STORIES" tone="sunset" /></section>
      <ConceptFooter copy={copy} />
    </div>
  );
}

function MixMobile({ lang }) {
  const copy = C[lang];
  return (
    <div className="screen mix mix-mobile">
      <ConceptHeader lang={lang} light mobile />
      <main>
        <Sticker tone="acid" rotate={-3}>LOVE THEM SPACE</Sticker>
        <h1>{copy.hero}</h1>
        <Photo label="FRIENDS · FOOD · RUN" tone="collage" />
        <Sticker tone="pink" rotate={4} className="mobile-float-sticker">UNDER THE CASTLE</Sticker>
        <p>{copy.intro}</p>
        <div className="mobile-actions"><Btn>{copy.viewMenu}</Btn><Btn kind="outline">{copy.findUs}</Btn></div>
        <div className="mix-mobile-run"><Sticker tone="teal">{copy.nextRun}</Sticker><h2>{copy.eventName}</h2><p>{copy.eventDay} · {copy.eventTime}</p></div>
        <h2>Pick your mood.</h2>
        <div className="mix-mobile-visits">{copy.visits.map((v, i) => <div className={`mix-color-${i}`} key={v.title}><span>{v.n}</span><strong>{v.title}</strong><b>+</b></div>)}</div>
      </main>
      <nav className="mobile-dock"><span>MENU</span><span>NAVIGATE</span><span>PROGRAM</span></nav>
    </div>
  );
}

function MixMenu({ lang }) {
  const copy = C[lang];
  const groups = [...new Set(menuItems.map(i => i.category))];
  return (
    <div className="screen mix mix-menu">
      <ConceptHeader lang={lang} light />
      <div className="mix-menu-head"><Sticker tone="pink" rotate={-4}>EAT · DRINK · REPEAT</Sticker><h1>MENU<br />MIX 001</h1><p>{copy.menuNote}</p></div>
      <div className="mix-menu-grid">{groups.map((group, gi) => <section className={`mix-menu-group mix-group-${gi}`} key={group}><header><span>SIDE {String.fromCharCode(65 + gi)}</span><h2>{group}</h2></header>{menuItems.filter(i => i.category === group).map((item) => <div key={item.name}><strong>{item.name}</strong><small>{item.detail}</small><b>{item.price}</b></div>)}</section>)}</div>
      <div className="mix-menu-signature"><div><Sticker tone="acid" rotate={-2}>LTS SIGNATURE</Sticker><h2>FLAPJACK À LA LTS</h2><p>KRUH cookie + Madonan scoop · €5.90</p></div><Photo label="COOKIE + SCOOP · HERO SHOT" tone="cream" /></div>
    </div>
  );
}

const CONCEPT_CSS = `
  .screen{position:relative;overflow:hidden;font-family:${T.type.sans};min-height:100%;color:${T.brand.black};background:#fff}.screen h1,.screen h2,.screen h3,.screen h4,.screen p{margin-top:0}.screen button{cursor:default}.eyebrow{font-family:${T.type.mono};font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.concept-header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 54px;position:relative;z-index:4}.concept-header nav{display:flex;gap:28px}.concept-header a{text-decoration:none;color:inherit;font-size:12px;font-weight:700;letter-spacing:.05em}.concept-header-end{display:flex;align-items:center;gap:22px}.bolt-mark{display:flex;align-items:center;gap:9px;font-family:${T.type.display};font-size:12px}.bolt-mark span{letter-spacing:-.04em}.bolt-compact{gap:0}.language-badge{font-family:${T.type.mono};font-size:10px}.ui-btn{border:0;border-radius:${T.radius.pill}px;display:inline-flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 20px;font-weight:700;font-size:11px;letter-spacing:.04em;white-space:nowrap}.ui-btn-solid{background:${T.brand.acid};color:${T.brand.black}}.ui-btn-ghost{background:transparent;color:inherit;border:1px solid currentColor}.ui-btn-outline{background:transparent;color:inherit;border:1px solid currentColor}.ui-btn-black{background:${T.brand.black};color:white}.button-row,.mobile-actions{display:flex;gap:10px}.ui-chip{display:inline-flex;border-radius:99px;padding:8px 12px;font-family:${T.type.mono};font-size:9px;letter-spacing:.05em}.ui-chip-acid{background:${T.brand.acid};color:${T.brand.black}}.photo-placeholder{position:relative;min-height:220px;padding:18px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;color:white}.photo-placeholder:before,.photo-placeholder:after{content:"";position:absolute;inset:0;pointer-events:none}.photo-placeholder:after{background:linear-gradient(120deg,rgba(255,255,255,.12),transparent 45%,rgba(0,0,0,.22));mix-blend-mode:overlay}.photo-placeholder>*{position:relative;z-index:2}.photo-placeholder span{font-family:${T.type.mono};font-size:9px;letter-spacing:.12em}.photo-placeholder strong{max-width:75%;font-size:14px;letter-spacing:.03em}.photo-night{background:radial-gradient(circle at 64% 24%,#8f7761 0 8%,transparent 31%),linear-gradient(135deg,#1b211b,#493a32 48%,#141614)}.photo-golden{background:radial-gradient(circle at 72% 28%,#f0bd6b 0 7%,transparent 30%),linear-gradient(145deg,#263228 3%,#8d5942 48%,#201715)}.photo-cream{color:${T.calm.ink};background:radial-gradient(circle at 30% 45%,#efd69a 0 8%,transparent 9%),radial-gradient(circle at 59% 35%,#9a4f36 0 10%,transparent 11%),linear-gradient(135deg,#eee6d5,#c7b29c)}.photo-blue{background:radial-gradient(circle at 70% 42%,#6c7f88 0 9%,transparent 10%),linear-gradient(145deg,#13232c,#536d7a 58%,#171b1d)}.photo-green{background:radial-gradient(circle at 28% 30%,#cbf157 0 8%,transparent 9%),linear-gradient(135deg,#19382b,#6c805b)}.photo-flash{color:#050505;background:radial-gradient(circle at 76% 22%,#f8f4de 0 5%,transparent 6%),linear-gradient(125deg,#d9d9cf 0 32%,#68846c 33% 58%,#f14d27 59% 74%,#161616 75%)}.photo-red{background:linear-gradient(135deg,#ff4f22,#49100a 63%,#060606)}.photo-collage{color:#111;background:linear-gradient(115deg,#f6d94c 0 23%,#ff8fb4 24% 47%,#7ad7d0 48% 70%,#2d2c2a 71%)}.photo-sunset{background:radial-gradient(circle at 30% 25%,#ffda63 0 8%,transparent 28%),linear-gradient(145deg,#f6795a,#7e3a71 55%,#17283a)}.menu-row{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:start;padding:13px 0;border-top:1px solid currentColor}.menu-number,.menu-price{font-family:${T.type.mono};font-size:10px}.menu-copy{display:flex;flex-direction:column}.menu-copy strong{font-size:14px}.menu-copy small{font-size:10px;opacity:.65;margin-top:3px}.menu-row-compact{grid-template-columns:30px 1fr auto;padding:10px 0}.menu-row-compact .menu-copy strong{font-size:12px}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.event-card{border:1px solid currentColor;padding:18px;min-height:235px;display:flex;flex-direction:column}.event-meta{display:flex;justify-content:space-between;font-family:${T.type.mono};font-size:9px}.event-index{font-family:${T.type.serif};font-size:62px;margin:auto 0 12px}.event-card h4{font-size:16px;margin-bottom:6px}.event-card p{font-size:11px;line-height:1.5;opacity:.7}.partner-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;font-family:${T.type.display};font-size:20px}.concept-footer{display:grid;grid-template-columns:1fr .8fr 1.2fr;gap:30px;padding:42px 54px;background:#090a08;color:#fff}.concept-footer p{font-size:11px;line-height:1.6;margin:14px 0 0}.footer-links{display:flex;flex-direction:column;gap:10px;font-family:${T.type.mono};font-size:10px}.footer-news strong{font-size:16px}.footer-news>div{margin-top:14px;border-bottom:1px solid white;display:flex;justify-content:space-between;padding:10px 0;font-size:10px}.concept-mobile-header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:relative;z-index:5;font-size:10px;font-weight:700}.mobile-dock{position:absolute;bottom:0;left:0;right:0;height:54px;display:flex;align-items:center;justify-content:space-around;background:#0b0c0a;color:#fff;font-size:9px;font-weight:700;z-index:8}.mobile-actions .ui-btn{flex:1;padding:12px 14px;font-size:9px;gap:8px}

  .calm{background:${T.calm.bone};color:${T.calm.ink}}.calm-ribbon{height:28px;padding:0 54px;display:flex;align-items:center;justify-content:space-between;background:${T.calm.acid};font-family:${T.type.mono};font-size:8px;letter-spacing:.06em}.calm-hero{display:grid;grid-template-columns:1fr .9fr;gap:28px;padding:58px 54px 78px}.calm-hero-copy{align-self:center}.calm-hero h1{font-family:${T.type.serif};font-weight:400;font-size:76px;line-height:.95;max-width:600px;margin:26px 0}.calm-hero-copy>p{font-size:15px;line-height:1.6;max-width:460px}.calm-hero-media{position:relative}.calm-hero-media .photo-placeholder{height:470px;border-radius:50% 50% 24px 24px}.calm-next-run{position:absolute;left:-50px;bottom:28px;background:${T.calm.oxblood};color:#fff;width:190px;height:190px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.calm-next-run span,.calm-next-run small{font-family:${T.type.mono};font-size:8px}.calm-next-run strong{font-family:${T.type.serif};font-size:25px;margin:9px 0}.calm-visits,.calm-program{padding:78px 54px}.section-heading{display:grid;grid-template-columns:1fr 2fr;align-items:start;margin-bottom:30px}.section-heading>span{font-family:${T.type.mono};font-size:10px}.section-heading h2{font-family:${T.type.serif};font-size:48px;line-height:1;margin:0;font-weight:400}.visit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.visit-card{min-height:240px;border:1px solid ${T.calm.stone};padding:20px;display:flex;flex-direction:column}.visit-card>span{font-family:${T.type.mono};font-size:10px}.visit-card h3{font-family:${T.type.serif};font-weight:400;font-size:28px;margin:auto 0 8px}.visit-card p{font-size:11px;line-height:1.5;max-width:220px}.visit-card b{align-self:flex-end}.visit-2{background:${T.calm.forest};color:white}.visit-3{background:${T.calm.oxblood};color:white}.calm-menu-preview{display:grid;grid-template-columns:1fr 1fr;background:${T.calm.forest};color:white;padding:54px;gap:50px}.calm-menu-photo{position:relative}.calm-menu-photo .photo-placeholder{height:560px;border-radius:280px 280px 8px 8px}.round-note{position:absolute;right:-24px;top:30px;width:100px;height:100px;border-radius:50%;background:${T.calm.acid};color:${T.calm.ink};display:grid;place-content:center;text-align:center;font-family:${T.type.mono};font-size:9px;transform:rotate(7deg)}.calm-menu-list{align-self:center}.calm-menu-list h2{font-family:${T.type.serif};font-size:48px;font-weight:400;margin:20px 0 10px}.calm-menu-list>p{font-size:12px;line-height:1.6;opacity:.75;margin-bottom:32px}.calm-menu-list .ui-btn{margin-top:22px}.calm-program{background:#ddd9cd}.calm-partners{padding:70px 54px;background:${T.calm.acid};display:grid;grid-template-columns:1fr 1.4fr;align-items:end;gap:60px}.calm-partners h2{font-family:${T.type.serif};font-size:44px;line-height:1;margin:16px 0}.calm-partners p{font-size:12px;line-height:1.5}.calm-about{display:grid;grid-template-columns:1fr 1fr;min-height:520px}.calm-about .photo-placeholder{height:100%}.calm-about>div:last-child{padding:70px 54px;background:${T.calm.oxblood};color:white;display:flex;flex-direction:column;justify-content:center}.calm-about h2{font-family:${T.type.serif};font-weight:400;font-size:42px;line-height:1.04;margin:22px 0}.calm-about p{font-size:12px;line-height:1.6}.calm-about .ui-btn{align-self:flex-start;margin-top:15px}.calm-mobile{height:1120px}.calm-mobile main{padding:16px 18px 80px}.mobile-status{padding:8px 18px;background:${T.calm.acid};font-family:${T.type.mono};font-size:7px}.calm-mobile h1{font-family:${T.type.serif};font-size:46px;font-weight:400;line-height:.95;margin:18px 0 12px}.calm-mobile main>p{font-size:11px;line-height:1.55}.calm-mobile .photo-placeholder{height:295px;border-radius:180px 180px 12px 12px;margin:22px 0 12px}.calm-mobile .mobile-actions{margin-bottom:12px}.mobile-next{background:${T.calm.oxblood};color:white;padding:16px;border-radius:10px;display:grid;grid-template-columns:1fr auto;align-items:center}.mobile-next span,.mobile-next small{font-family:${T.type.mono};font-size:7px}.mobile-next strong{grid-row:1/3;grid-column:2;font-family:${T.type.serif};font-size:25px}.calm-mobile main>h2{font-family:${T.type.serif};font-size:28px;font-weight:400;margin:30px 0 12px}.mobile-visit-list>div{display:grid;grid-template-columns:28px 1fr;gap:5px;border-top:1px solid;padding:12px 0}.mobile-visit-list span{font-family:${T.type.mono};font-size:8px}.mobile-visit-list strong{font-size:11px}.mobile-visit-list p{grid-column:2;font-size:9px;margin:0;opacity:.65}.calm-menu{padding-bottom:0}.menu-masthead{padding:60px 54px;display:grid;grid-template-columns:1.3fr 1fr;align-items:end;border-top:1px solid ${T.calm.stone};border-bottom:1px solid ${T.calm.stone}}.menu-masthead h1{font-family:${T.type.serif};font-size:104px;font-weight:400;line-height:.8;margin:24px 0 0}.menu-masthead p{font-size:14px;line-height:1.5}.calm-menu-columns{padding:45px 54px 80px;display:grid;grid-template-columns:1fr 1fr;gap:34px 60px}.calm-menu-columns section header{display:flex;gap:16px;align-items:center}.calm-menu-columns section header span{font-family:${T.type.mono};font-size:9px}.calm-menu-columns section h2{font-family:${T.type.serif};font-size:26px;font-weight:400;margin:0}.menu-bottom{display:grid;grid-template-columns:1.2fr 1fr;background:${T.calm.oxblood};color:white}.menu-bottom .photo-placeholder{height:320px}.menu-bottom>div:last-child{padding:45px;display:flex;flex-direction:column;justify-content:center}.menu-bottom h2{font-family:${T.type.serif};font-size:42px;font-weight:400;margin-bottom:10px}.menu-bottom p{font-size:12px}.menu-bottom .ui-btn{align-self:flex-start;margin-top:12px}

  .pace{background:${T.pace.ink};color:white}.pace-ticker{height:30px;background:${T.pace.acid};color:#000;display:flex;justify-content:space-between;align-items:center;padding:0 54px;font-family:${T.type.mono};font-size:8px;overflow:hidden}.pace .concept-header{border-bottom:1px solid #30302e}.pace-hero{position:relative;min-height:580px;padding:42px 54px}.pace-code{position:absolute;z-index:3;left:54px;top:52px;font-family:${T.type.mono};font-size:9px;line-height:1.6}.pace-hero h1{position:relative;z-index:2;font-family:${T.type.display};font-size:112px;line-height:.76;letter-spacing:-.07em;margin:70px 0 0;text-transform:uppercase}.pace-line{display:block;width:max-content}.pace-line-1{margin-left:25%}.pace-line-2{margin-left:10%;color:${T.pace.acid}}.pace-hero .photo-placeholder{position:absolute;width:40%;height:410px;right:54px;top:46px;transform:rotate(2deg)}.pace-cta{position:absolute;z-index:3;right:54px;bottom:26px;width:40%;display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.pace-cta p{font-size:11px;line-height:1.5;max-width:280px}.pace-split{display:grid;grid-template-columns:1fr 1.45fr}.pace-run-card{background:${T.pace.acid};color:#000;padding:38px 54px;display:flex;flex-direction:column;min-height:430px}.pace-run-card>span{font-family:${T.type.mono};font-size:10px}.pace-run-card>strong{font-family:${T.type.display};font-size:116px;line-height:1;margin-top:auto;letter-spacing:-.08em}.pace-run-card>small{font-family:${T.type.mono};font-size:9px}.pace-run-card h2{font-family:${T.type.display};font-size:34px;line-height:.9;margin:28px 0}.pace-run-card .ui-btn{align-self:flex-start}.pace-visit-panel{padding:38px 54px;background:${T.pace.paper};color:#000}.pace-visit-panel>h2{font-family:${T.type.display};font-size:44px}.pace-visit-panel>div{display:grid;grid-template-columns:40px 170px 1fr;gap:15px;padding:19px 0;border-top:2px solid #000}.pace-visit-panel b{font-family:${T.type.mono};font-size:10px}.pace-visit-panel strong{font-size:14px}.pace-visit-panel p{font-size:11px;line-height:1.45;margin:0}.pace-menu-preview{padding:64px 54px;background:${T.pace.paper};color:#000}.pace-menu-preview>header,.pace-program>header{display:grid;grid-template-columns:140px 1fr auto;align-items:end;margin-bottom:30px}.pace-menu-preview header>span,.pace-program header>span,.pace-partners>div>span{font-family:${T.type.mono};font-size:9px}.pace-menu-preview h2,.pace-program h2,.pace-partners h2{font-family:${T.type.display};font-size:48px;line-height:.9;margin:0}.pace-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 50px}.pace-menu-grid .menu-row{border-top:2px solid #000;padding:16px 0}.pace-program{padding:64px 54px}.pace-event-list article{display:grid;grid-template-columns:50px 100px 100px 1fr 30px;align-items:center;border-top:1px solid #444;padding:19px 0}.pace-event-list article>b,.pace-event-list article>span,.pace-event-list article>strong{font-family:${T.type.mono};font-size:10px}.pace-event-list h3{font-family:${T.type.display};font-size:28px;margin:0}.pace-event-list em{font-style:normal;font-size:20px}.pace-partners{padding:64px 54px;background:${T.pace.cobalt};display:grid;grid-template-columns:1fr 1.4fr;gap:60px;align-items:end}.pace-partners h2{margin-top:18px}.pace-manifesto{display:grid;grid-template-columns:1fr 1fr;background:${T.pace.paper};color:#000;min-height:450px}.pace-manifesto .photo-placeholder{height:100%}.pace-manifesto>div{padding:54px;display:flex;flex-direction:column;justify-content:center}.pace-manifesto small{font-family:${T.type.mono};font-size:9px}.pace-manifesto h2{font-family:${T.type.display};font-size:44px;line-height:.94;margin:20px 0}.pace-manifesto p{font-size:12px;line-height:1.6}.pace-mobile{height:1120px}.pace-mobile-ticker{height:28px;background:${T.pace.acid};color:#000;font-family:${T.type.mono};font-size:7px;display:grid;place-items:center}.pace-mobile main{padding:16px 18px 80px}.pace-mobile-code{font-family:${T.type.mono};font-size:7px;line-height:1.5}.pace-mobile h1{font-family:${T.type.display};font-size:60px;line-height:.77;letter-spacing:-.06em;margin:30px 0 20px}.pace-mobile h1 span{display:block}.pace-mobile h1 span:nth-child(2){margin-left:50px}.pace-mobile h1 span:nth-child(3){color:${T.pace.acid}}.pace-mobile .photo-placeholder{height:260px;transform:rotate(1.5deg)}.pace-mobile main>p{font-size:10px;line-height:1.5;margin:18px 0}.pace-mobile-run{margin:20px 0;background:${T.pace.acid};color:#000;padding:16px;display:grid}.pace-mobile-run span,.pace-mobile-run small{font-family:${T.type.mono};font-size:7px}.pace-mobile-run strong{font-family:${T.type.display};font-size:40px}.pace-mobile main>h2{font-family:${T.type.display};font-size:26px;margin:25px 0 12px}.pace-mobile-visit{display:grid;grid-template-columns:30px 1fr auto;border-top:1px solid #555;padding:14px 0;align-items:center}.pace-mobile-visit b{font-family:${T.type.mono};font-size:8px}.pace-mobile-visit strong{font-size:11px}.pace-menu-title{padding:50px 54px 35px;border-bottom:8px solid ${T.pace.acid};display:grid;grid-template-columns:1fr auto;align-items:end}.pace-menu-title span,.pace-menu-title p{font-family:${T.type.mono};font-size:8px}.pace-menu-title h1{font-family:${T.type.display};font-size:120px;line-height:.8;letter-spacing:-.07em;margin:25px 0 0}.pace-menu-title p{max-width:300px}.pace-menu-board{display:grid;grid-template-columns:1fr 1fr}.pace-menu-item{display:grid;grid-template-columns:45px 1fr auto;gap:15px;padding:22px 28px;border-bottom:1px solid #3b3b38}.pace-menu-item:nth-child(odd){border-right:1px solid #3b3b38}.pace-menu-item>b,.pace-menu-item>strong,.pace-menu-item span{font-family:${T.type.mono};font-size:9px}.pace-menu-item h2{font-family:${T.type.display};font-size:21px;margin:8px 0 4px}.pace-menu-item p{font-size:9px;opacity:.65}.pace-menu-footer{background:${T.pace.paper};color:#000;padding:26px 54px;display:grid;grid-template-columns:1fr 1.5fr auto;align-items:center;font-family:${T.type.mono};font-size:10px}

  .mix{background:${T.mix.paper};color:${T.mix.ink}}.mix .concept-header{border-bottom:2px solid ${T.mix.ink}}.sticker{display:inline-block;width:max-content;padding:9px 14px;border:2px solid ${T.mix.ink};border-radius:5px;box-shadow:3px 3px 0 ${T.mix.ink};font-family:${T.type.mono};font-size:10px;font-weight:700;letter-spacing:.04em}.sticker-acid{background:${T.mix.acid}}.sticker-pink{background:${T.mix.pink}}.sticker-teal{background:${T.mix.teal}}.sticker-orange{background:${T.mix.tangerine}}.mix-hero{display:grid;grid-template-columns:.9fr 1.1fr;padding:52px 54px 65px;gap:42px}.mix-hero-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.mix-hero h1{font-family:${T.type.serif};font-size:76px;line-height:.9;font-weight:400;margin:30px 0 20px}.mix-hero-copy>p{font-size:13px;line-height:1.6;max-width:440px}.mix-hero-collage{position:relative}.mix-hero-collage .photo-placeholder{height:500px;border:3px solid ${T.mix.ink};box-shadow:10px 10px 0 ${T.mix.ink}}.mix-sticker-one{position:absolute;right:-8px;top:35px}.mix-sticker-two{position:absolute;left:-25px;bottom:36px}.mix-bolt{position:absolute;right:25px;bottom:15px;filter:drop-shadow(4px 4px 0 #111)}.mix-marquee{background:${T.mix.ink};color:${T.mix.acid};padding:13px 0;font-family:${T.type.display};font-size:19px;white-space:nowrap}.mix-visits{padding:70px 54px}.mix-visits>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.mix-visits h2,.mix-program header h2{font-family:${T.type.serif};font-size:48px;font-weight:400;margin:0}.mix-visits>div{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.mix-visit{min-height:260px;border:2px solid;padding:20px;box-shadow:6px 6px 0 ${T.mix.ink};display:flex;flex-direction:column}.mix-color-0{background:${T.mix.lavender}}.mix-color-1{background:${T.mix.teal}}.mix-color-2{background:${T.mix.pink}}.mix-visit>span{font-family:${T.type.mono};font-size:10px}.mix-visit h3{font-family:${T.type.serif};font-size:28px;font-weight:400;margin:auto 0 10px}.mix-visit p{font-size:11px;line-height:1.5}.mix-visit b{font-family:${T.type.mono};font-size:9px}.mix-menu-preview{padding:65px 54px;background:${T.mix.tangerine};display:grid;grid-template-columns:.75fr 1.25fr;gap:50px}.mix-menu-preview h2{font-family:${T.type.serif};font-size:48px;font-weight:400;line-height:.95;margin:25px 0 12px}.mix-menu-preview>div:first-child>p{font-size:12px;line-height:1.5}.mix-menu-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mix-product{border:2px solid;background:${T.mix.paper};padding:18px;min-height:135px;display:flex;flex-direction:column;box-shadow:4px 4px 0 ${T.mix.ink}}.mix-product small{font-family:${T.type.mono};font-size:7px}.mix-product strong{font-family:${T.type.serif};font-size:20px;font-weight:400;margin:auto 0}.mix-product span{font-family:${T.type.mono};font-size:9px}.mix-product-1,.mix-product-4{background:${T.mix.acid}}.mix-product-2{background:${T.mix.pink}}.mix-program{padding:70px 54px}.mix-program>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.mix-program>div{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.mix-program article{border:2px solid;padding:18px;background:white;transform:rotate(-1deg)}.mix-program article:nth-child(2){transform:rotate(1.5deg);background:${T.mix.lavender}}.mix-program article:nth-child(3){transform:rotate(-.5deg);background:${T.mix.acid}}.mix-program article>span,.mix-program article>b{font-family:${T.type.mono};font-size:8px}.mix-program article h3{font-family:${T.type.serif};font-size:24px;font-weight:400;margin:28px 0 8px}.mix-program article p{font-size:10px}.mix-partners{padding:70px 54px;background:${T.mix.teal};display:grid;grid-template-columns:1fr 1.2fr;gap:50px}.mix-partners h2{font-family:${T.type.serif};font-size:44px;font-weight:400;line-height:1;margin:25px 0 12px}.mix-partners p{font-size:11px;line-height:1.5}.partner-orbit{display:flex;flex-wrap:wrap;gap:14px;align-content:center}.partner-orbit span{padding:14px 18px;border:2px solid;background:${T.mix.paper};box-shadow:4px 4px 0 ${T.mix.ink};font-family:${T.type.display};font-size:18px}.mix-about{display:grid;grid-template-columns:1fr 1fr;padding:54px;gap:40px;background:${T.mix.pink}}.mix-about>div:first-child{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.mix-about h2{font-family:${T.type.serif};font-size:45px;font-weight:400;line-height:1;margin-bottom:18px}.mix-about p{font-size:12px;line-height:1.6}.mix-about .photo-placeholder{height:420px;border:2px solid;box-shadow:7px 7px 0 ${T.mix.ink}}.mix-mobile{height:1120px}.mix-mobile main{padding:20px 18px 80px;position:relative}.mix-mobile h1{font-family:${T.type.serif};font-size:50px;line-height:.9;font-weight:400;margin:28px 0 18px}.mix-mobile .photo-placeholder{height:290px;border:2px solid;box-shadow:6px 6px 0 ${T.mix.ink}}.mobile-float-sticker{position:absolute;right:8px;top:385px}.mix-mobile main>p{font-size:10px;line-height:1.5;margin:30px 0 15px}.mix-mobile-run{margin:22px 0;padding:18px;background:${T.mix.lavender};border:2px solid;box-shadow:5px 5px 0}.mix-mobile-run h2{font-family:${T.type.serif};font-size:30px;font-weight:400;margin:18px 0 2px}.mix-mobile-run p{font-family:${T.type.mono};font-size:8px}.mix-mobile main>h2{font-family:${T.type.serif};font-size:28px;font-weight:400;margin:32px 0 12px}.mix-mobile-visits>div{display:grid;grid-template-columns:30px 1fr auto;padding:14px;border:2px solid;border-bottom:0}.mix-mobile-visits>div:last-child{border-bottom:2px solid}.mix-mobile-visits span{font-family:${T.type.mono};font-size:8px}.mix-mobile-visits strong{font-size:10px}.mix-menu-head{padding:48px 54px;background:${T.mix.teal};display:grid;grid-template-columns:1fr auto;align-items:end;border-bottom:3px solid}.mix-menu-head h1{font-family:${T.type.serif};font-size:88px;line-height:.8;font-weight:400;margin:26px 0 0}.mix-menu-head p{font-family:${T.type.mono};font-size:8px;max-width:310px}.mix-menu-grid{display:grid;grid-template-columns:1fr 1fr;padding:40px 54px;gap:18px}.mix-menu-group{padding:20px;border:2px solid;box-shadow:5px 5px 0 ${T.mix.ink};background:white}.mix-group-1{background:${T.mix.lavender};transform:rotate(1deg)}.mix-group-2{background:${T.mix.acid};transform:rotate(-.7deg)}.mix-group-3{background:${T.mix.pink}}.mix-group-4{background:${T.mix.tangerine};transform:rotate(.8deg)}.mix-menu-group header{display:flex;justify-content:space-between;align-items:start;border-bottom:2px solid;padding-bottom:12px}.mix-menu-group header span{font-family:${T.type.mono};font-size:8px}.mix-menu-group h2{font-family:${T.type.serif};font-size:23px;font-weight:400;margin:0}.mix-menu-group>div{display:grid;grid-template-columns:1fr auto;padding:13px 0;border-bottom:1px dashed}.mix-menu-group>div:last-child{border-bottom:0}.mix-menu-group strong{font-size:12px}.mix-menu-group small{grid-row:2;font-size:8px;opacity:.65}.mix-menu-group b{grid-row:1/3;grid-column:2;font-family:${T.type.mono};font-size:9px}.mix-menu-signature{display:grid;grid-template-columns:1fr 1fr;background:${T.mix.pink};padding:42px 54px;gap:35px}.mix-menu-signature>div:first-child{display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.mix-menu-signature h2{font-family:${T.type.serif};font-size:42px;font-weight:400;margin:25px 0 10px}.mix-menu-signature p{font-family:${T.type.mono};font-size:10px}.mix-menu-signature .photo-placeholder{height:300px;border:2px solid;box-shadow:6px 6px 0}
  /* Pace / Poster V2 — LTS Signal */
  .photo-signal{color:white;background:radial-gradient(ellipse at 72% 30%,rgba(218,255,0,.92) 0 3%,rgba(218,255,0,.12) 4% 16%,transparent 17%),linear-gradient(104deg,transparent 0 18%,rgba(255,255,255,.48) 19% 22%,transparent 23% 48%,rgba(49,91,255,.26) 49% 63%,transparent 64%),repeating-linear-gradient(92deg,#070806 0 38px,#1d201c 39px 46px,#0c0d0b 47px 82px)}
  .photo-signal:before{inset:-15%;background:repeating-linear-gradient(8deg,transparent 0 18px,rgba(255,255,255,.08) 19px 20px);filter:blur(1px);transform:skewX(-13deg)}
  .photo-mono{background:radial-gradient(ellipse at 28% 32%,rgba(245,241,232,.62) 0 4%,transparent 18%),radial-gradient(ellipse at 72% 58%,rgba(49,91,255,.22) 0 10%,transparent 34%),repeating-linear-gradient(108deg,#060706 0 42px,#22251f 43px 49px,#0b0c0a 50px 86px)}
  .photo-mono:before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent);transform:translateX(-30%) skewX(-14deg)}
  .pace-ghost{position:absolute;font-family:${T.type.display};font-weight:900;line-height:.72;letter-spacing:-.09em;white-space:nowrap;pointer-events:none;user-select:none}
  .pace-hero{isolation:isolate;background-image:linear-gradient(rgba(255,255,255,.032) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.032) 1px,transparent 1px),radial-gradient(circle at 76% 46%,rgba(49,91,255,.13),transparent 29%);background-size:32px 32px,32px 32px,100% 100%}
  .pace-ghost-hero{z-index:0;left:-26px;top:76px;color:rgba(255,255,255,.052);font-size:190px;transform:rotate(-5deg)}
  .pace-route-mark{position:absolute;z-index:3;left:54px;bottom:36px;width:260px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;color:${T.pace.grey};font-family:${T.type.mono};font-size:7px;letter-spacing:.1em}
  .pace-route-mark i{height:1px;background:repeating-linear-gradient(90deg,${T.pace.grey} 0 7px,transparent 7px 12px)}
  .pace-route-mark b{color:${T.pace.acid};font-size:9px}
  .pace-hero .photo-placeholder{box-shadow:-16px 18px 0 rgba(49,91,255,.22);border:1px solid rgba(255,255,255,.18)}
  .pace-menu-preview{position:relative;isolation:isolate;background:${T.pace.paper};color:#000;overflow:hidden}
  .pace-menu-preview>header,.pace-menu-preview>.pace-menu-grid{position:relative;z-index:2}
  .pace-ghost-menu{z-index:0;right:-40px;top:22px;color:rgba(8,9,7,.045);font-size:154px;transform:rotate(-3deg)}
  .pace-program{position:relative;isolation:isolate;overflow:hidden;background-color:${T.pace.ink};background-image:linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:64px 100%}
  .pace-program>header,.pace-event-list{position:relative;z-index:2}
  .pace-ghost-program{z-index:0;right:-20px;top:12px;color:rgba(218,255,0,.045);font-size:190px}
  .pace-program-route{position:absolute;z-index:1;left:53%;top:68px;width:32%;height:116px;border-top:1px dashed rgba(218,255,0,.38);border-right:1px dashed rgba(218,255,0,.38);border-radius:0 70px 0 0;transform:rotate(-7deg)}
  .pace-program-route:before,.pace-program-route:after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:${T.pace.acid}}
  .pace-program-route:before{left:-3px;top:-4px}.pace-program-route:after{right:-4px;bottom:-4px}
  .pace-partners{position:relative;background:${T.pace.ink};border-top:10px solid ${T.pace.cobalt};border-bottom:1px solid rgba(255,255,255,.16);grid-template-columns:.9fr 1.6fr;overflow:hidden}
  .pace-partners:before{content:"LOVE THEM / LOCAL PEOPLE / LOCAL ENERGY";position:absolute;left:-16px;bottom:-13px;color:rgba(255,255,255,.045);font-family:${T.type.display};font-size:72px;white-space:nowrap;letter-spacing:-.05em}
  .pace-partners>div,.pace-partners>.partner-strip{position:relative;z-index:2}
  .pace-partners .partner-strip{color:${T.pace.acid}}
  .pace-partner-code{position:absolute!important;right:54px!important;top:24px!important;font-family:${T.type.mono};font-size:7px;color:${T.pace.cobalt};letter-spacing:.12em}
  .pace-manifesto>div{position:relative;isolation:isolate;overflow:hidden}
  .pace-manifesto>div>*:not(.pace-ghost){position:relative;z-index:2}
  .pace-ghost-story{z-index:0;left:-8px;top:34px;color:rgba(8,9,7,.045);font-size:160px;transform:rotate(-90deg) translateX(-100%);transform-origin:left top}
  .pace-home>.concept-footer{position:relative;overflow:hidden;background-image:linear-gradient(90deg,transparent 0 49%,rgba(255,255,255,.035) 50%,transparent 51%)}
  .pace-home>.concept-footer:before{content:"LTS / BA";position:absolute;right:-24px;bottom:-26px;font-family:${T.type.display};font-size:92px;color:rgba(255,255,255,.035);letter-spacing:-.07em}
  .pace-mobile main{position:relative;isolation:isolate;background-image:linear-gradient(rgba(255,255,255,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.026) 1px,transparent 1px);background-size:24px 24px}
  .pace-mobile main>*:not(.pace-mobile-ghost){position:relative;z-index:2}
  .pace-mobile-ghost{position:absolute;z-index:0;right:-18px;top:38px;color:rgba(255,255,255,.045);font-family:${T.type.display};font-size:78px;line-height:.7;letter-spacing:-.08em;text-align:right;transform:rotate(-5deg)}
  .pace-mobile .photo-placeholder{box-shadow:-8px 9px 0 rgba(49,91,255,.28);border:1px solid rgba(255,255,255,.18)}
  .pace-mobile-run{position:relative;overflow:hidden}
  .pace-mobile-run:after{content:"LTS";position:absolute;right:-5px;bottom:-15px;font-family:${T.type.display};font-size:68px;color:rgba(0,0,0,.07)}
  .pace-menu-title{position:relative;isolation:isolate;overflow:hidden;background-image:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:64px 100%}
  .pace-menu-title>*:not(.pace-ghost){position:relative;z-index:2}
  .pace-ghost-menu-page{z-index:0;right:-30px;top:18px;color:rgba(255,255,255,.045);font-size:170px;transform:rotate(-4deg)}
  .pace-menu-board{background-color:${T.pace.ink};background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);background-size:32px 32px}
  .pace-menu-item{background:rgba(8,9,7,.72)}
  .pace-menu-item:nth-child(3n+2){background:rgba(23,25,22,.82)}
  .pace-menu-item>strong{color:${T.pace.acid}}
  .pace-menu-footer{position:relative;overflow:hidden;background:${T.pace.acid};color:#000;grid-template-columns:1fr 1.5fr auto;min-height:86px}
  .pace-menu-footer>*:not(em){position:relative;z-index:2}
  .pace-menu-footer em{position:absolute;left:-8px;bottom:-15px;font-family:${T.type.display};font-size:46px;font-style:normal;white-space:nowrap;color:rgba(0,0,0,.075);letter-spacing:-.04em}
  .pace-mobile main{overflow:hidden}
  .pace-mobile-ghost{right:0;transform:rotate(-3deg)}
  .pace-mobile .photo-placeholder{width:calc(100% - 8px);margin-left:4px;box-sizing:border-box;transform:rotate(.8deg)}
  .pace-menu-footer{min-height:unset;height:72px;box-sizing:border-box}

  /* Pace / Poster V3 — product-led interactive prototype */
  .screen a{color:inherit}.screen a.ui-btn-black{color:#fff}.screen a.ui-btn-solid{color:#080907}.header-logo,.mobile-logo,.mobile-language,.language-link{text-decoration:none}.mobile-language{font-family:${T.type.mono};font-size:7px}.footer-links a,.footer-news>a{color:inherit;text-decoration:none}.footer-news>a{display:inline-block;margin-top:14px;font-family:${T.type.mono};font-size:8px}.mobile-dock a{color:white;text-decoration:none}.ui-btn{text-decoration:none;box-sizing:border-box}.pace-v3,.pace-menu-v3,.pace-subpage,.pace-sub-mobile{background-color:${T.pace.ink};background-image:linear-gradient(rgba(255,255,255,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.026) 1px,transparent 1px);background-size:32px 32px}.pace-marquee{height:34px;background:${T.pace.acid};color:#050605;overflow:hidden;display:flex;align-items:center;font-family:${T.type.display};font-size:12px;letter-spacing:-.02em;white-space:nowrap}.pace-marquee>div{display:flex;width:max-content;animation:pace-scroll 22s linear infinite}.pace-marquee span{display:block;padding-right:10px}.pace-marquee:hover>div{animation-play-state:paused}@keyframes pace-scroll{to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.pace-marquee>div{animation:none}}
  .pace-v3 .concept-header,.pace-menu-v3 .concept-header,.pace-subpage .concept-header{height:82px}.pace-hero-image{position:absolute;width:40%;height:410px;right:54px;top:46px;transform:rotate(1.2deg);overflow:hidden;box-shadow:-16px 18px 0 rgba(49,91,255,.22);border:1px solid rgba(255,255,255,.18)}.pace-hero-image img,.pace-mobile-image img,.pace-community-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.12)}.pace-hero-image:after,.pace-mobile-image:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 44%,rgba(218,255,0,.16))}.pace-hero-image span{position:absolute;z-index:2;bottom:12px;left:14px;font-family:${T.type.mono};font-size:7px;color:white}.pace-product-preview{padding:68px 54px;background:${T.pace.paper};color:#000;position:relative;overflow:hidden}.pace-product-preview:before{content:"LTS / EAT";position:absolute;right:-30px;top:30px;color:rgba(8,9,7,.045);font-family:${T.type.display};font-size:150px;letter-spacing:-.08em}.pace-product-preview>header{position:relative;z-index:2;display:grid;grid-template-columns:140px 1fr auto;align-items:end;margin-bottom:30px}.pace-product-preview header>span{font-family:${T.type.mono};font-size:9px}.pace-product-preview h2{font-family:${T.type.display};font-size:48px;line-height:.9;margin:0}.pace-product-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.25fr .75fr .75fr;gap:12px}.pace-product-grid .pace-product-card:first-child{grid-row:span 2}.pace-product-grid .pace-product-card:last-child{grid-column:2/4}.pace-product-card{appearance:none;border:1px solid #191a17;padding:0;background:#fff;color:#080907;text-align:left;display:grid;grid-template-rows:1fr auto;min-height:310px;cursor:pointer;overflow:hidden}.pace-product-card>div:last-child{position:relative;padding:16px 17px 18px}.pace-product-card small{font-family:${T.type.mono};font-size:7px;letter-spacing:.08em}.pace-product-card h3{font-family:${T.type.display};font-size:21px;line-height:.96;margin:10px 0 7px}.pace-product-card p{font-size:9px;line-height:1.45;max-width:88%;margin-bottom:20px}.pace-product-card strong{font-family:${T.type.mono};font-size:10px}.pace-product-card>div:last-child>b{position:absolute;right:16px;bottom:18px;font-family:${T.type.mono};font-size:7px}.pace-product-card:hover .product-visual img{transform:scale(1.035)}.pace-product-card:focus-visible{outline:4px solid ${T.pace.cobalt};outline-offset:-4px}.product-visual{min-height:230px;position:relative;overflow:hidden;background:#dcded8;color:#080907}.product-visual>img:not(.madonan-inset){width:100%;height:100%;position:absolute;inset:0;object-fit:cover;transition:transform .35s ease}.product-visual>span{position:absolute;z-index:4;left:12px;top:12px;background:${T.pace.acid};padding:6px 8px;font-family:${T.type.mono};font-size:6px;letter-spacing:.06em}.visual-combo{background:#d8d3c7;isolation:isolate}.visual-combo>img:not(.madonan-inset){filter:saturate(.68) contrast(1.08)}.visual-combo:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(8,9,7,.08),transparent 40%)}.visual-combo .scoop{position:absolute;z-index:2;width:118px;height:112px;border-radius:53% 47% 46% 54%;left:42%;top:27%;background:radial-gradient(circle at 32% 25%,#fff9df 0 4%,transparent 5%),radial-gradient(circle at 55% 52%,#d9bf8b,#f6e8bd 62%,#bca06b);box-shadow:0 14px 22px rgba(0,0,0,.28)}.visual-combo .madonan-inset{position:absolute;z-index:3;width:86px;height:86px;right:10px;bottom:10px;object-fit:cover;border:4px solid ${T.pace.acid};border-radius:50%}.visual-eliksir{background:#252724}.visual-eliksir img{object-position:center}.visual-vlcie{background:white}.visual-vlcie img{object-position:center 43%}.visual-voxberg{background:linear-gradient(145deg,#eaede7 0 55%,#bcc4bf 56%);display:grid;place-items:center}.ice-cup{position:relative;width:128px;height:170px;border:4px solid rgba(255,255,255,.78);border-top-width:8px;border-radius:7px 7px 32px 32px;background:linear-gradient(to top,rgba(163,0,45,.86) 0 68%,rgba(163,0,45,.22) 69%);box-shadow:inset 0 0 0 2px rgba(8,9,7,.12),0 24px 25px rgba(0,0,0,.22);transform:rotate(3deg)}.ice-cup:before{content:"";position:absolute;width:4px;height:120px;background:#080907;right:21px;top:-61px;transform:rotate(-5deg)}.ice-cup i{position:absolute;width:37px;height:31px;border:2px solid rgba(255,255,255,.68);background:rgba(255,255,255,.2);transform:rotate(18deg)}.ice-cup i:nth-child(1){left:12px;top:42px}.ice-cup i:nth-child(2){right:14px;top:70px;transform:rotate(-12deg)}.ice-cup i:nth-child(3){left:28px;top:102px;transform:rotate(35deg)}.ice-cup b{position:absolute;z-index:2;left:0;right:0;top:78px;text-align:center;color:white;font-family:${T.type.display};font-size:18px;line-height:.8}.prototype-note{position:relative;z-index:2;margin:18px 0 0;font-family:${T.type.mono};font-size:8px;line-height:1.5;border-left:4px solid ${T.pace.cobalt};padding-left:12px;max-width:770px}.prototype-note.dark{color:${T.pace.grey}}.pace-v3 .pace-program .ui-btn{justify-self:end}.pace-v3 .pace-program{padding-bottom:48px}.pace-community-photo{min-height:450px;overflow:hidden}.pace-community-photo img{object-position:center 68%}.pace-v3 .pace-manifesto .ui-btn{align-self:flex-start}.product-drawer-backdrop{position:fixed;z-index:999;inset:0;background:rgba(0,0,0,.72);display:flex;justify-content:flex-end;align-items:stretch}.product-drawer{width:390px;background:${T.pace.paper};color:#080907;padding:24px;box-sizing:border-box;overflow:auto;box-shadow:-20px 0 60px rgba(0,0,0,.4)}.drawer-close{display:block;margin-left:auto;border:0;background:transparent;font-family:${T.type.mono};font-size:8px;cursor:pointer}.product-drawer .product-visual{height:330px;margin:16px 0 26px}.product-drawer>small{font-family:${T.type.mono};font-size:8px}.product-drawer h2{font-family:${T.type.display};font-size:36px;line-height:.9;margin:15px 0}.product-drawer>p{font-size:11px;line-height:1.55}.drawer-meta{display:flex;justify-content:space-between;padding:15px 0;border-top:2px solid;margin-top:25px;font-family:${T.type.mono};font-size:9px}.product-drawer>a{display:flex;justify-content:space-between;background:${T.pace.acid};padding:14px;text-decoration:none;font-family:${T.type.mono};font-size:9px}.product-drawer>em{display:block;font-style:normal;font-family:${T.type.mono};font-size:7px;line-height:1.5;margin-top:18px;color:#555}
  .pace-v3-mobile{height:1200px}.pace-v3-mobile .pace-marquee,.pace-sub-mobile .pace-marquee{height:26px;font-size:8px}.pace-v3-mobile main{padding-top:15px}.pace-mobile-image{height:245px;position:relative;overflow:hidden;box-shadow:-8px 9px 0 rgba(49,91,255,.28);transform:rotate(.8deg)}.pace-v3-mobile .mobile-actions .ui-btn{min-width:0}.pace-v3-mobile .product-visual{height:205px;min-height:205px;border:1px solid rgba(255,255,255,.18)}.pace-v3-mobile .visual-combo .scoop{width:82px;height:76px}.pace-v3-mobile .visual-combo .madonan-inset{width:56px;height:56px}.pace-v3-mobile main>h2{margin-top:26px}
  .pace-menu-v3{height:2350px}.pace-menu-v3 .pace-menu-title{min-height:220px;box-sizing:border-box}.menu-feature{display:grid;grid-template-columns:1.2fr .8fr;background:${T.pace.paper};color:#080907;min-height:520px}.menu-feature>.product-visual{height:100%;min-height:520px}.menu-feature>div:last-child{padding:50px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.menu-feature span,.menu-feature button{font-family:${T.type.mono};font-size:8px}.menu-feature h2{font-family:${T.type.display};font-size:58px;line-height:.82;letter-spacing:-.05em;margin:20px 0}.menu-feature p{font-size:11px;line-height:1.55;max-width:370px}.menu-feature strong{font-family:${T.type.display};font-size:34px}.menu-feature button{margin-top:26px;border:0;background:${T.pace.acid};padding:13px 16px;font-weight:700;cursor:pointer}.menu-product-strip{padding:35px 54px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pace-product-card.compact{min-height:355px}.pace-product-card.compact .product-visual{min-height:205px}.pace-product-card.compact h3{font-size:18px}.pace-product-card.compact p{display:none}.pace-menu-v3 .pace-menu-board{grid-template-columns:1fr 1fr}.pace-menu-v3 .pace-menu-item{min-height:95px;box-sizing:border-box}.menu-page-note{margin:0;padding:18px 54px;background:${T.pace.paper};color:#000;font-family:${T.type.mono};font-size:8px;line-height:1.45}.pace-menu-v3 .pace-menu-footer{height:86px}
  .pace-subpage{height:1600px}.pace-visit-page{height:1600px}.subpage-hero{padding:62px 54px 54px;min-height:300px;box-sizing:border-box;position:relative;overflow:hidden}.subpage-hero:before{content:"LOVE THEM";position:absolute;right:-30px;top:42px;font-family:${T.type.display};font-size:150px;line-height:.7;color:rgba(255,255,255,.045);letter-spacing:-.08em}.subpage-hero>span{font-family:${T.type.mono};font-size:9px;color:${T.pace.acid}}.subpage-hero h1{position:relative;font-family:${T.type.display};font-size:102px;line-height:.78;letter-spacing:-.07em;margin:38px 0 28px}.subpage-hero p{position:relative;font-size:13px;line-height:1.55;max-width:500px}.program-feature{display:grid;grid-template-columns:.85fr 1.15fr;background:${T.pace.acid};color:#080907;min-height:310px}.program-feature>div:first-child{padding:38px 54px;display:flex;flex-direction:column}.program-feature span,.program-feature p{font-family:${T.type.mono};font-size:8px}.program-feature strong{font-family:${T.type.display};font-size:120px;line-height:.9;margin:auto 0}.program-route-map,.map-graphic{position:relative;overflow:hidden;background-color:#e9e9df;background-image:linear-gradient(rgba(8,9,7,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(8,9,7,.08) 1px,transparent 1px);background-size:30px 30px}.program-route-map:before{content:"";position:absolute;left:12%;top:28%;width:68%;height:42%;border:4px solid #080907;border-left-color:transparent;border-radius:50%;transform:rotate(-10deg)}.program-route-map i{position:absolute;width:12px;height:12px;border-radius:50%;background:${T.pace.cobalt}}.program-route-map i:nth-child(1){left:20%;top:39%}.program-route-map i:nth-child(2){left:52%;top:60%;background:#080907}.program-route-map i:nth-child(3){right:18%;top:42%;background:${T.pace.acid};border:3px solid #080907}.program-route-map b{position:absolute;right:18%;top:50%;font-family:${T.type.display};font-size:32px}.program-list{padding:35px 54px}.program-list article{display:grid;grid-template-columns:60px 1fr auto;gap:22px;align-items:center;padding:24px 0;border-top:1px solid #444}.program-list article>b,.program-list span,.program-list a{font-family:${T.type.mono};font-size:9px}.program-list h2{font-family:${T.type.display};font-size:30px;margin:10px 0 4px}.program-list p{font-size:10px;color:${T.pace.grey}}.program-list a{color:${T.pace.acid};text-decoration:none}.subpage-note{margin:0 54px 44px;padding:14px;border:1px solid #444;font-family:${T.type.mono};font-size:8px;color:${T.pace.grey}}.visit-hero{min-height:350px}.visit-map{display:grid;grid-template-columns:1.1fr .9fr;background:${T.pace.paper};color:#080907;min-height:440px}.map-graphic{min-height:440px}.map-graphic:before{content:"";position:absolute;width:75%;height:60%;left:8%;top:18%;border:3px dashed #080907;border-radius:48% 52% 38% 62%;transform:rotate(-14deg)}.map-graphic span{position:absolute;left:12%;top:10%;font-family:${T.type.display};font-size:32px}.map-graphic i{position:absolute;width:8px;height:8px;background:#080907;border-radius:50%;left:44%;top:44%;box-shadow:120px 55px 0 ${T.pace.cobalt},-95px 88px 0 ${T.pace.acid}}.map-graphic b{position:absolute;right:15%;bottom:24%;background:${T.pace.acid};border:4px solid #080907;padding:13px;font-family:${T.type.display};font-size:28px}.map-graphic small{position:absolute;right:11%;bottom:14%;font-family:${T.type.mono};font-size:8px}.visit-facts{padding:55px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.visit-facts>span{font-family:${T.type.mono};font-size:8px}.visit-facts h2{font-family:${T.type.display};font-size:40px;line-height:.95;margin:28px 0 18px}.visit-facts p{font-size:11px;line-height:1.55}.visit-facts .ui-btn{margin-top:20px}.community-grid{display:grid;grid-template-columns:1fr 1fr;min-height:420px}.community-grid article{padding:50px 54px;display:flex;flex-direction:column;align-items:flex-start}.community-grid article:first-child{background:${T.pace.cobalt}}.community-grid article:last-child{background:${T.pace.acid};color:#080907}.community-grid span,.community-grid a{font-family:${T.type.mono};font-size:8px}.community-grid h2{font-family:${T.type.display};font-size:34px;line-height:.94;margin:45px 0 16px}.community-grid p{font-size:11px;line-height:1.55}.community-grid a{margin-top:auto;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:4px}
  .pace-sub-mobile{height:1120px}.pace-sub-mobile main{padding:24px 18px 75px}.page-code{font-family:${T.type.mono};font-size:7px;color:${T.pace.acid}}.pace-sub-mobile h1{font-family:${T.type.display};font-size:54px;line-height:.78;letter-spacing:-.06em;margin:28px 0}.pace-menu-mobile{height:1950px}.pace-menu-mobile main>.pace-product-card{min-height:490px}.pace-menu-mobile main>.pace-product-card .product-visual{min-height:300px}.pace-menu-mobile .product-visual{min-height:145px}.pace-menu-mobile .pace-product-card.compact{min-height:250px}.pace-menu-mobile .pace-product-card.compact>div:last-child{padding:12px}.pace-menu-mobile .pace-product-card.compact h3{font-size:15px}.mobile-product-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.mobile-product-pair .pace-product-card:last-child{grid-column:1/3}.pace-menu-mobile .prototype-note{margin-bottom:30px}.pace-menu-mobile .ice-cup{width:80px;height:112px}.pace-menu-mobile .ice-cup:before{height:80px;top:-42px}.pace-menu-mobile .ice-cup b{font-size:12px;top:55px}.pace-menu-mobile .visual-combo .scoop{width:76px;height:70px}.pace-menu-mobile .visual-combo .madonan-inset{width:52px;height:52px}.pace-sub-mobile .product-drawer{width:100%;padding-bottom:80px}.pace-program-mobile .mobile-km{background:${T.pace.acid};color:#080907;font-family:${T.type.display};font-size:72px;line-height:1;padding:16px;margin-bottom:20px}.mobile-km small{font-family:${T.type.mono};font-size:10px}.mobile-event{display:grid;grid-template-columns:28px 80px 1fr 14px;gap:7px;align-items:center;padding:17px 0;border-top:1px solid #4b4d47;text-decoration:none}.mobile-event>b,.mobile-event span,.mobile-event small{font-family:${T.type.mono};font-size:7px}.mobile-event span small{display:block;margin-top:4px;color:${T.pace.grey}}.mobile-event strong{font-family:${T.type.display};font-size:15px}.mobile-event em{font-style:normal;color:${T.pace.acid}}.pace-visit-mobile .map-graphic{min-height:310px;margin-bottom:25px}.pace-visit-mobile .map-graphic span{font-size:24px}.pace-visit-mobile .map-graphic b{font-size:20px}.pace-visit-mobile main>h2{font-family:${T.type.display};font-size:26px;line-height:.95}.pace-visit-mobile main>p{font-size:10px;line-height:1.55;color:${T.pace.grey}}.mobile-community-links{display:flex;flex-direction:column;margin-top:28px;border-top:1px solid #444}.mobile-community-links a{padding:14px 0;border-bottom:1px solid #444;text-decoration:none;font-family:${T.type.mono};font-size:8px}

  /* Pace / Poster V4 — asymmetrical Bento menu + full-screen product story */
  .pace-bento{position:relative;z-index:2;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:300px;gap:16px}.pace-bento .pace-product-card{min-height:0;height:100%;border:0;box-shadow:inset 0 0 0 1px #191a17}.pace-bento .product-combo{grid-column:1/span 7;grid-row:1/span 2}.pace-bento .product-eliksir{grid-column:8/span 5;grid-row:1}.pace-bento .product-vlcie{grid-column:8/span 3;grid-row:2}.pace-bento .product-madonan{grid-column:11/span 2;grid-row:2}.pace-bento .product-voxberg{grid-column:1/span 12;grid-row:3;grid-template-columns:5fr 7fr;grid-template-rows:1fr}.pace-bento .product-voxberg .product-card-copy{display:flex;flex-direction:column;justify-content:center;padding:30px 42px}.pace-bento .product-voxberg .product-card-copy p{max-width:540px}.pace-bento .product-voxberg .product-card-copy b{right:42px;bottom:30px}.bento-product-card{transition:transform .2s ease,box-shadow .2s ease}.bento-product-card:hover{transform:translateY(-3px);box-shadow:0 12px 0 ${T.pace.cobalt}}.bento-product-card .product-visual{height:100%;min-height:0}.bento-product-card .product-card-copy{padding:20px 22px 22px}.bento-product-card small,.bento-product-card>div:last-child>b{font-size:14px;line-height:1.2}.bento-product-card h3{font-size:28px;margin:12px 0 10px}.bento-product-card p{font-size:16px;line-height:1.45;margin:0 0 24px;max-width:92%}.bento-product-card strong{font-size:20px}.bento-product-card.product-combo{grid-template-rows:minmax(0,1fr) auto}.bento-product-card.product-combo h3{font-size:58px;letter-spacing:-.045em}.bento-product-card.product-combo .product-card-copy{padding:28px 30px 30px}.bento-product-card.product-vlcie h3,.bento-product-card.product-madonan h3{font-size:24px}.bento-product-card.product-vlcie p,.bento-product-card.product-madonan p{display:none}.bento-product-card.product-vlcie .product-card-copy,.bento-product-card.product-madonan .product-card-copy{padding:17px 18px 18px}.bento-product-card.product-vlcie .product-card-copy b,.bento-product-card.product-madonan .product-card-copy b{display:none}.product-visual>span{font-size:14px;line-height:1.15;padding:8px 10px}.visual-combo{display:grid;grid-template-columns:68% 32%;gap:0}.visual-combo:after{z-index:2;pointer-events:none}.combo-kruh,.combo-madonan{position:relative;min-width:0;overflow:hidden}.combo-kruh img,.combo-madonan img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.combo-kruh img{filter:saturate(.8) contrast(1.05)}.combo-madonan img{object-position:center}.combo-plus{position:absolute;z-index:3;left:68%;top:50%;width:74px;height:74px;display:grid;place-items:center;transform:translate(-50%,-50%);background:${T.pace.acid};border:4px solid #080907;border-radius:50%;font-family:${T.type.display};font-size:54px;line-height:1}.visual-madonan img{object-position:center 48%}.pace-product-preview{padding-top:74px;padding-bottom:74px}.pace-product-preview>header{grid-template-columns:180px 1fr auto;margin-bottom:36px}.pace-product-preview header>span,.pace-product-preview .prototype-note{font-size:14px}.pace-product-preview h2{font-size:64px}.pace-bento-home{grid-auto-rows:275px}.pace-bento-home .product-combo{grid-column:1/span 7}.pace-bento-home .product-eliksir{grid-column:8/span 5}.pace-bento-home .product-vlcie{grid-column:8/span 3}.pace-bento-home .product-madonan{grid-column:11/span 2}

  .pace-menu-v4{height:3020px}.pace-menu-v4 .pace-marquee{height:42px;font-size:16px}.pace-menu-v4 .concept-header{height:90px}.pace-menu-v4 .concept-header a,.pace-menu-v4 .bolt-mark,.pace-menu-v4 .language-badge{font-size:14px}.pace-menu-v4 .pace-menu-title{min-height:260px;padding-top:54px;padding-bottom:44px}.pace-menu-v4 .pace-menu-title span{font-size:14px}.pace-menu-v4 .pace-menu-title p{font-size:16px;line-height:1.5;max-width:410px}.pace-menu-v4 .pace-menu-title h1{font-size:132px}.menu-bento-wrap{padding:50px 54px 54px;background:${T.pace.paper};color:#080907;position:relative;overflow:hidden}.menu-bento-wrap:before{content:"PARTNER PICKS";position:absolute;right:-28px;top:-8px;font-family:${T.type.display};font-size:122px;color:rgba(8,9,7,.045);letter-spacing:-.06em;white-space:nowrap}.menu-bento-wrap>header{position:relative;z-index:2;display:grid;grid-template-columns:210px 1fr;gap:34px;align-items:end;margin-bottom:28px}.menu-bento-wrap>header span{font-family:${T.type.mono};font-size:14px}.menu-bento-wrap>header p{font-size:16px;line-height:1.5;max-width:510px;margin:0}.pace-bento-menu{grid-auto-rows:300px}.pace-menu-v4 .pace-menu-board{grid-template-columns:1fr 1fr}.pace-menu-v4 .pace-menu-item{min-height:126px;padding:24px 30px}.pace-menu-v4 .pace-menu-item>b,.pace-menu-v4 .pace-menu-item>strong,.pace-menu-v4 .pace-menu-item span{font-size:14px}.pace-menu-v4 .pace-menu-item h2{font-size:26px;margin:10px 0 6px}.pace-menu-v4 .pace-menu-item p{font-size:16px;line-height:1.35;margin-bottom:0}.pace-menu-v4 .menu-page-note{font-size:14px;line-height:1.5;padding:22px 54px}.pace-menu-v4 .pace-menu-footer{height:96px;font-size:14px}.pace-menu-v4 .pace-menu-footer b{font-size:20px}

  .product-modal-backdrop{position:fixed;z-index:9999;inset:0;background:rgba(5,6,5,.9);display:grid;place-items:center;padding:20px;box-sizing:border-box;animation:modal-fade .18s ease-out}.product-modal{width:min(1240px,calc(100vw - 40px));height:calc(100vh - 40px);max-height:900px;background:${T.pace.paper};color:#080907;display:grid;grid-template-rows:64px minmax(0,1fr) 76px;overflow:hidden;box-shadow:0 28px 90px rgba(0,0,0,.6);animation:modal-rise .25s cubic-bezier(.2,.8,.2,1)}.product-modal-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #080907;padding:0 22px;font-family:${T.type.mono};font-size:14px}.product-modal-close{min-width:130px;min-height:44px;border:0;background:#080907;color:white;font-family:${T.type.mono};font-size:14px}.product-modal-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,1fr);min-height:0}.product-modal-media{min-height:0;border-right:1px solid #080907}.product-modal-media .product-visual{height:100%;min-height:100%}.product-modal-media .product-visual>span{font-size:14px}.product-modal-media .ice-cup{transform:scale(1.5) rotate(3deg)}.product-modal-copy{padding:42px 48px;overflow:auto;display:flex;flex-direction:column;align-items:flex-start}.product-modal-copy>span,.product-modal-price small,.product-modal-status,.product-source{font-family:${T.type.mono};font-size:14px}.product-modal-copy h2{font-family:${T.type.display};font-size:58px;line-height:.88;letter-spacing:-.05em;margin:28px 0 22px}.product-modal-copy>p{font-size:16px;line-height:1.55;max-width:520px}.product-modal-price{display:flex;align-items:end;justify-content:space-between;width:100%;padding:22px 0;border-top:2px solid #080907;margin-top:18px}.product-modal-price small{max-width:120px}.product-modal-price strong{font-family:${T.type.display};font-size:48px;line-height:.85}.product-modal-status{margin-top:auto;border-left:6px solid ${T.pace.cobalt};padding:12px 14px;background:rgba(49,91,255,.08)}.product-modal-status b{font-size:14px}.product-modal-status p{font-family:${T.type.sans};font-size:16px;line-height:1.45;margin:8px 0 0}.product-source{min-height:44px;display:flex;align-items:center;margin-top:16px;border-bottom:2px solid #080907;text-decoration:none}.product-modal-nav{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #080907}.product-modal-nav button{min-height:76px;border:0;background:${T.pace.acid};color:#080907;padding:0 24px;display:flex;align-items:center;gap:16px;font-family:${T.type.mono};font-size:14px;text-align:left}.product-modal-nav button:last-child{border-left:1px solid #080907;justify-content:flex-end;text-align:right}.product-modal-nav button:hover,.product-modal-nav button:focus-visible{background:${T.pace.cobalt};color:white;outline:none}@keyframes modal-fade{from{opacity:0}}@keyframes modal-rise{from{opacity:0;transform:translateY(18px) scale(.985)}}

  .pace-menu-mobile-v4{height:3210px}.pace-menu-mobile-v4 .pace-marquee{height:34px;font-size:14px}.pace-menu-mobile-v4 .concept-mobile-header{height:68px}.pace-menu-mobile-v4 .concept-mobile-header a,.pace-menu-mobile-v4 .bolt-mark,.pace-menu-mobile-v4 .mobile-language{font-size:14px}.pace-menu-mobile-v4 main{padding:28px 16px 84px}.pace-menu-mobile-v4 .page-code{font-size:14px}.pace-menu-mobile-v4 h1{font-size:72px;margin:34px 0 18px}.mobile-menu-intro{font-size:16px;line-height:1.5;color:${T.pace.grey};margin-bottom:28px}.pace-bento-mobile{display:grid;grid-template-columns:1fr;gap:14px}.pace-bento-mobile .pace-product-card{height:auto;min-height:0}.pace-bento-mobile .pace-product-card .product-visual{min-height:0}.pace-bento-mobile .product-combo{height:640px;grid-template-rows:390px 1fr}.pace-bento-mobile .product-eliksir{height:500px;grid-template-rows:310px 1fr}.pace-bento-mobile .product-vlcie{height:430px;grid-template-rows:270px 1fr}.pace-bento-mobile .product-madonan{height:480px;grid-template-rows:300px 1fr}.pace-bento-mobile .product-voxberg{height:430px;grid-template-rows:270px 1fr}.pace-bento-mobile .bento-product-card .product-card-copy{padding:18px 18px 20px}.pace-bento-mobile .bento-product-card small,.pace-bento-mobile .bento-product-card>div:last-child>b{font-size:14px}.pace-bento-mobile .bento-product-card h3,.pace-bento-mobile .bento-product-card.product-vlcie h3,.pace-bento-mobile .bento-product-card.product-madonan h3{font-size:28px}.pace-bento-mobile .bento-product-card.product-combo h3{font-size:48px}.pace-bento-mobile .bento-product-card p{font-size:16px;line-height:1.4;margin-bottom:20px;display:block;max-width:100%}.pace-bento-mobile .bento-product-card strong{font-size:20px}.pace-bento-mobile .product-card-copy b{right:18px;bottom:20px}.pace-bento-mobile .visual-combo{grid-template-columns:62% 38%}.pace-bento-mobile .combo-plus{left:62%;width:58px;height:58px;font-size:42px}.pace-menu-mobile-v4 .prototype-note{font-size:14px;line-height:1.5;margin:22px 0 28px}.pace-menu-mobile-v4 .mobile-dock a{font-size:14px}.product-modal-mobile{padding:6px}.product-modal-mobile .product-modal{width:calc(100vw - 12px);height:calc(100vh - 12px);max-height:none;grid-template-rows:58px minmax(0,1fr) 66px}.product-modal-mobile .product-modal-top{font-size:14px;padding:0 12px}.product-modal-mobile .product-modal-close{min-width:112px;font-size:14px}.product-modal-mobile .product-modal-layout{display:block;overflow:auto}.product-modal-mobile .product-modal-media{height:42vh;min-height:270px;border-right:0;border-bottom:1px solid #080907}.product-modal-mobile .product-modal-copy{padding:26px 22px;overflow:visible}.product-modal-mobile .product-modal-copy h2{font-size:44px}.product-modal-mobile .product-modal-price strong{font-size:40px}.product-modal-mobile .product-modal-status{margin-top:22px}.product-modal-mobile .product-modal-nav button{min-width:0;min-height:66px;padding:0 12px;font-size:14px}.product-modal-mobile .product-modal-nav span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  .pace-bento .product-vlcie,.pace-bento-home .product-vlcie{grid-column:8/span 2}.pace-bento .product-madonan,.pace-bento-home .product-madonan{grid-column:10/span 3}.pace-menu-v4{height:2380px}.product-modal-copy{padding:30px 42px}.product-modal-copy h2{font-size:54px;margin:20px 0 16px}.product-modal-price{padding:16px 0;margin-top:12px}.product-source{color:#080907!important}
  .product-modal-mobile-open .product-modal-backdrop{padding:6px}.product-modal-mobile-open .product-modal{width:calc(100vw - 12px);height:calc(100vh - 12px);max-height:none;grid-template-rows:58px minmax(0,1fr) 66px}.product-modal-mobile-open .product-modal-top{font-size:14px;padding:0 12px}.product-modal-mobile-open .product-modal-close{min-width:112px;font-size:14px}.product-modal-mobile-open .product-modal-layout{display:block;overflow:auto}.product-modal-mobile-open .product-modal-media{height:42vh;min-height:270px;border-right:0;border-bottom:1px solid #080907}.product-modal-mobile-open .product-modal-copy{padding:26px 22px;overflow:visible}.product-modal-mobile-open .product-modal-copy h2{font-size:44px}.product-modal-mobile-open .product-modal-price strong{font-size:40px}.product-modal-mobile-open .product-modal-status{margin-top:22px}.product-modal-mobile-open .product-modal-nav button{min-width:0;min-height:66px;padding:0 12px;font-size:14px}.product-modal-mobile-open .product-modal-nav span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pace-menu-mobile-v4{height:3350px}.pace-bento-mobile .product-combo{height:680px}.pace-bento-mobile .product-madonan{height:525px}.pace-bento-mobile .product-eliksir{height:515px}.pace-bento-mobile .product-vlcie{height:500px}.pace-bento-mobile .product-voxberg{height:495px}.product-modal-mobile-open .product-modal{width:min(390px,calc(100vw - 12px))}

  /* Pace / Poster V5 — calm entry motion and Love Them-style marquee */
  .pace-marquee{height:36px;font-family:${T.type.mono};font-size:12px;font-weight:500;line-height:18px;letter-spacing:1.2px}.pace-marquee>div{animation-duration:84s}.pace-marquee span{padding-right:24px}.pace-menu-v4 .pace-marquee{height:36px;font-size:12px;letter-spacing:1.2px}.pace-v3-mobile .pace-marquee,.pace-sub-mobile .pace-marquee,.pace-menu-mobile-v4 .pace-marquee{height:32px;font-size:11px;line-height:16px;letter-spacing:1.1px}
  .pace-motion-enabled .pace-marquee{animation:pace-strip-in .22s ease-out both}.pace-motion-enabled .concept-header,.pace-motion-enabled .concept-mobile-header{animation:pace-header-in .42s cubic-bezier(.2,.8,.2,1) both}.pace-motion-enabled .pace-hero .pace-line{opacity:0;animation:pace-title-in .65s cubic-bezier(.2,.8,.2,1) forwards}.pace-motion-enabled .pace-hero .pace-line-0{animation-delay:.05s}.pace-motion-enabled .pace-hero .pace-line-1{animation-delay:.13s}.pace-motion-enabled .pace-hero .pace-line-2{animation-delay:.21s}.pace-motion-enabled .pace-hero-image{animation:pace-photo-in .8s cubic-bezier(.2,.8,.2,1) .18s both}.pace-motion-enabled .pace-cta{animation:pace-copy-in .45s cubic-bezier(.2,.8,.2,1) .35s both}.pace-motion-enabled .pace-mobile-code{animation:pace-copy-in .4s ease-out .06s both}.pace-motion-enabled .pace-mobile h1 span{opacity:0;animation:pace-title-in .6s cubic-bezier(.2,.8,.2,1) forwards}.pace-motion-enabled .pace-mobile h1 span:nth-child(1){animation-delay:.08s}.pace-motion-enabled .pace-mobile h1 span:nth-child(2){animation-delay:.15s}.pace-motion-enabled .pace-mobile h1 span:nth-child(3){animation-delay:.22s}.pace-motion-enabled .pace-mobile-image{animation:pace-mobile-photo-in .75s cubic-bezier(.2,.8,.2,1) .2s both}.pace-motion-enabled .pace-mobile main>p,.pace-motion-enabled .pace-mobile .mobile-actions{animation:pace-copy-in .45s ease-out .34s both}.pace-motion-enabled .pace-menu-title>span,.pace-motion-enabled .subpage-hero>span,.pace-motion-enabled .pace-sub-mobile .page-code{animation:pace-copy-in .4s ease-out .08s both}.pace-motion-enabled .pace-menu-title h1,.pace-motion-enabled .subpage-hero h1,.pace-motion-enabled .pace-sub-mobile main>h1{animation:pace-page-title-in .68s cubic-bezier(.2,.8,.2,1) .12s both}.pace-motion-enabled .pace-menu-title>p,.pace-motion-enabled .subpage-hero>p,.pace-motion-enabled .mobile-menu-intro{animation:pace-copy-in .45s ease-out .28s both}
  .pace-motion-enabled .motion-reveal{opacity:0;transform:translateY(24px);transition:opacity .64s cubic-bezier(.2,.8,.2,1),transform .64s cubic-bezier(.2,.8,.2,1);transition-delay:var(--motion-delay,0ms);will-change:opacity,transform}.pace-motion-enabled .motion-reveal.is-visible{opacity:1;transform:translateY(0)}.pace-motion-enabled .bento-product-card,.pace-motion-enabled .product-visual img,.pace-motion-enabled .ui-btn,.pace-motion-enabled .pace-event-list article,.pace-motion-enabled .mobile-event{transition-duration:.24s;transition-timing-function:cubic-bezier(.2,.8,.2,1)}.pace-motion-enabled .ui-btn:hover,.pace-motion-enabled .ui-btn:focus-visible{transform:translateY(-2px)}.pace-motion-enabled .pace-event-list article:hover,.pace-motion-enabled .mobile-event:hover{background:rgba(255,255,255,.04)}.pace-motion-enabled .pace-event-list article em,.pace-motion-enabled .mobile-event em,.pace-motion-enabled .program-list a{transition:transform .2s ease}.pace-motion-enabled .pace-event-list article:hover em,.pace-motion-enabled .mobile-event:hover em,.pace-motion-enabled .program-list a:hover{transform:translateX(4px)}.pace-motion-enabled .concept-header nav a{position:relative}.pace-motion-enabled .concept-header nav a:after{content:"";position:absolute;left:0;right:0;bottom:6px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .24s cubic-bezier(.2,.8,.2,1)}.pace-motion-enabled .concept-header nav a:hover:after,.pace-motion-enabled .concept-header nav a:focus-visible:after{transform:scaleX(1);transform-origin:left}
  @keyframes pace-strip-in{from{opacity:0}to{opacity:1}}@keyframes pace-header-in{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes pace-title-in{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes pace-page-title-in{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes pace-copy-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pace-photo-in{from{opacity:0;transform:rotate(1.2deg) scale(1.04)}to{opacity:1;transform:rotate(1.2deg) scale(1)}}@keyframes pace-mobile-photo-in{from{opacity:0;transform:rotate(.8deg) scale(1.04)}to{opacity:1;transform:rotate(.8deg) scale(1)}}

  @media(prefers-reduced-motion:reduce){.pace-marquee>div,.pace-motion-enabled *{scroll-behavior:auto!important}.pace-motion-enabled .pace-marquee,.pace-motion-enabled .concept-header,.pace-motion-enabled .concept-mobile-header,.pace-motion-enabled .pace-line,.pace-motion-enabled .pace-hero-image,.pace-motion-enabled .pace-cta,.pace-motion-enabled .pace-mobile-code,.pace-motion-enabled .pace-mobile h1 span,.pace-motion-enabled .pace-mobile-image,.pace-motion-enabled .pace-mobile main>p,.pace-motion-enabled .pace-mobile .mobile-actions,.pace-motion-enabled .pace-menu-title>span,.pace-motion-enabled .pace-menu-title h1,.pace-motion-enabled .pace-menu-title>p,.pace-motion-enabled .subpage-hero>span,.pace-motion-enabled .subpage-hero h1,.pace-motion-enabled .subpage-hero>p,.pace-motion-enabled .pace-sub-mobile .page-code,.pace-motion-enabled .pace-sub-mobile main>h1,.pace-motion-enabled .mobile-menu-intro,.bento-product-card,.product-visual img,.product-modal-backdrop,.product-modal{transition:none!important;animation:none!important}.pace-motion-enabled .motion-reveal{opacity:1!important;transform:none!important;transition:none!important}.pace-motion-enabled .ui-btn:hover,.pace-motion-enabled .bento-product-card:hover,.pace-motion-enabled .pace-event-list article:hover em,.pace-motion-enabled .mobile-event:hover em,.pace-motion-enabled .program-list a:hover{transform:none!important}}

  /* Pace / Poster V6 — weekly programme + reel-ready community media */
  .community-reel{position:relative;min-width:0;aspect-ratio:9/16;overflow:hidden;background:${T.pace.ink};color:white;border:1px solid rgba(255,255,255,.22);isolation:isolate}.community-reel-media{position:absolute;inset:0;overflow:hidden}.community-reel img,.community-reel video{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.12);transition:transform .45s cubic-bezier(.2,.8,.2,1)}.community-reel-media:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,rgba(8,9,7,.18),transparent 34%,rgba(8,9,7,.88))}.community-reel:hover img,.community-reel:hover video{transform:scale(1.035)}.reel-index,.reel-pending,.reel-credit{position:absolute;z-index:3;font-family:${T.type.mono};font-size:14px;line-height:1.25}.reel-index{left:12px;top:12px;background:${T.pace.acid};color:#080907;padding:6px 8px}.reel-pending{right:10px;top:52px;max-width:calc(100% - 20px);padding:6px 8px;background:${T.pace.cobalt};color:white;text-align:right}.reel-copy{position:absolute;z-index:3;left:12px;right:12px;bottom:52px}.reel-copy small{display:block;font-family:${T.type.mono};font-size:14px;color:${T.pace.acid};margin-bottom:7px}.reel-copy strong{display:block;font-family:${T.type.display};font-size:22px;line-height:.95;letter-spacing:-.035em}.reel-credit{left:12px;right:12px;bottom:10px;color:rgba(255,255,255,.72)}.community-reel button{position:absolute;z-index:4;right:12px;top:12px;width:44px;height:44px;border:0;border-radius:50%;background:${T.pace.acid};color:#080907;font-size:16px;cursor:pointer}.community-reel button:focus-visible{outline:3px solid ${T.pace.cobalt};outline-offset:2px}
  .pace-v3 .pace-program-v6{padding:46px 54px 38px;background-image:linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:64px 100%}.pace-program-v6>header{grid-template-columns:180px 1fr auto;margin-bottom:22px}.pace-program-v6 header>span,.pace-program-v6 .prototype-note,.pace-program-v6 .ui-btn{font-size:14px}.pace-program-v6 h2{font-size:58px}.pace-home-program-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) 196px;gap:18px;height:272px}.pace-program-v6 .pace-event-list{min-width:0}.pace-program-v6 .pace-event-list article{grid-template-columns:48px 130px 78px minmax(0,1fr) 30px;min-height:86px;padding:14px 0}.pace-program-v6 .pace-event-list article>b,.pace-program-v6 .pace-event-list article>span,.pace-program-v6 .pace-event-list article>strong{font-size:14px}.pace-program-v6 .pace-event-list h3{font-size:28px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pace-program-v6 .pace-event-list em{font-size:22px}.community-reel-compact{height:272px;aspect-ratio:auto}.community-reel-compact .reel-copy strong{font-size:20px}
  .pace-program-page-v6{height:1600px}.program-hero-v6{min-height:250px;padding-top:52px;padding-bottom:42px}.program-hero-v6>span,.program-hero-v6 p{font-size:14px}.program-hero-v6 h1{font-size:94px;margin:30px 0 22px}.program-feature-v6{grid-template-columns:.8fr 1.2fr;min-height:410px}.program-next-card{padding:30px 48px!important;display:flex;flex-direction:column;align-items:flex-start}.program-next-card>span,.program-next-card b,.program-next-card p,.program-next-card>a{font-family:${T.type.mono};font-size:14px}.program-next-card>strong{font-family:${T.type.display};font-size:96px;line-height:.82;letter-spacing:-.07em;margin:24px 0 auto}.program-next-card>strong small{font-family:${T.type.mono};font-size:16px;letter-spacing:0;margin-left:10px}.program-next-card h2{font-family:${T.type.display};font-size:38px;line-height:.9;margin:10px 0 9px}.program-next-card p{font-family:${T.type.sans};font-size:16px;line-height:1.45;max-width:390px;margin:0}.program-next-card>a{display:flex;align-items:center;min-height:44px;color:#080907;text-decoration:none;border-bottom:2px solid;margin-top:14px}.program-reel-grid{padding:18px 22px;background:${T.pace.ink};display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:center;overflow:hidden}.program-reel-grid .community-reel{width:100%;max-height:374px}.program-feature-v6 .reel-index,.program-feature-v6 .reel-pending{font-size:14px}.program-reel-grid .reel-copy strong{font-size:19px}.program-list-v6{padding:24px 54px 20px}.program-list-v6>header{display:grid;grid-template-columns:210px 1fr;align-items:end;padding-bottom:15px}.program-list-v6>header span{font-family:${T.type.mono};font-size:14px;color:${T.pace.acid}}.program-list-v6>header h2{font-family:${T.type.display};font-size:34px;line-height:.9;margin:0}.program-list-v6 article{grid-template-columns:48px 168px minmax(0,1fr) 84px;gap:18px;min-height:96px;padding:14px 0}.program-list-v6 article>b,.program-list-v6 span,.program-list-v6 article>a,.program-event-meta strong,.program-list-v6 article small{font-size:14px}.program-event-meta{display:flex;flex-direction:column;gap:7px;font-family:${T.type.mono}}.program-list-v6 article small{font-family:${T.type.mono};color:${T.pace.acid}}.program-list-v6 article h2{font-size:27px;margin:7px 0 4px}.program-list-v6 article p{font-size:16px;line-height:1.35;margin:0}.program-list-v6 article>a{justify-self:end}.pace-program-page-v6 .subpage-note{font-size:14px;line-height:1.45;margin-bottom:24px;padding:12px}.pace-program-page-v6>.concept-footer{padding-top:28px;padding-bottom:28px}.pace-program-page-v6 .footer-links a,.pace-program-page-v6 .footer-news>a{font-size:14px}
  .pace-program-mobile-v6{height:1300px}.pace-program-mobile-v6 main{padding:24px 16px 78px}.pace-program-mobile-v6 .page-code,.mobile-week-range{font-size:14px}.pace-program-mobile-v6 main>h1{font-size:58px;margin:26px 0 12px}.mobile-week-range{font-family:${T.type.mono};color:${T.pace.acid};margin:0 0 16px!important}.mobile-next-event{background:${T.pace.acid};color:#080907;padding:18px;min-height:208px;display:flex;flex-direction:column;align-items:flex-start}.mobile-next-event>span{font-family:${T.type.mono};font-size:14px}.mobile-next-event>strong{font-family:${T.type.display};font-size:64px;line-height:.9;letter-spacing:-.06em;margin:16px 0 4px}.mobile-next-event>strong small{font-family:${T.type.mono};font-size:14px;letter-spacing:0;margin-left:7px}.mobile-next-event h2{font-family:${T.type.display};font-size:28px;line-height:.95;margin:0 0 8px}.mobile-next-event p{font-size:16px;line-height:1.35;margin:0}.mobile-reels-head{display:flex;justify-content:space-between;margin:20px 0 10px;font-family:${T.type.mono};font-size:14px}.mobile-reels{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 0 10px;scrollbar-color:${T.pace.acid} transparent}.mobile-reels:focus-visible{outline:3px solid ${T.pace.cobalt};outline-offset:3px}.mobile-reels .community-reel{flex:0 0 166px;height:295px;aspect-ratio:auto;scroll-snap-align:start}.mobile-reels .reel-copy strong{font-size:18px}.mobile-week-list{margin-top:12px}.pace-program-mobile-v6 .mobile-event{grid-template-columns:28px 108px minmax(0,1fr) 28px;gap:7px;min-height:92px;padding:12px 0}.pace-program-mobile-v6 .mobile-event>b,.pace-program-mobile-v6 .mobile-event>span,.pace-program-mobile-v6 .mobile-event small{font-size:14px}.pace-program-mobile-v6 .mobile-event span{display:flex;flex-direction:column;gap:7px}.pace-program-mobile-v6 .mobile-event strong{font-size:20px;line-height:.95}.pace-program-mobile-v6 .mobile-event em{font-size:22px}.pace-program-mobile-v6 .prototype-note{font-size:14px;line-height:1.4;margin-top:16px}
  @media(prefers-reduced-motion:reduce){.community-reel img,.community-reel video{transition:none!important;transform:none!important}.community-reel:hover img,.community-reel:hover video{transform:none!important}}

  /* Pace / Poster V7 — Editorial Arrival footer */
  .pace-footer-v7{position:relative;isolation:isolate;display:block;padding:0;background-color:${T.pace.paper};background-image:linear-gradient(rgba(8,9,7,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(8,9,7,.035) 1px,transparent 1px);background-size:32px 32px;color:#080907;border-top:10px solid ${T.pace.cobalt};overflow:hidden}.pace-home>.pace-footer-v7{background-image:linear-gradient(rgba(8,9,7,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(8,9,7,.035) 1px,transparent 1px);background-size:32px 32px}.pace-home>.pace-footer-v7:before{display:none}.footer-arrival-ghost{position:absolute;z-index:0;right:-28px;top:-10px;font-family:${T.type.display};font-size:118px;line-height:.8;letter-spacing:-.07em;color:rgba(8,9,7,.045);white-space:nowrap;pointer-events:none}.footer-arrival-main{position:relative;z-index:2;min-height:184px;padding:38px 54px 30px;display:grid;grid-template-columns:minmax(0,1fr) 188px;gap:44px;align-items:end;border-bottom:1px solid rgba(8,9,7,.26)}.footer-arrival-copy>span{font-family:${T.type.mono};font-size:14px;color:${T.pace.cobalt};letter-spacing:.06em}.footer-arrival-copy h2{font-family:${T.type.display};font-size:62px;line-height:.86;letter-spacing:-.055em;margin:22px 0 0;max-width:930px}.footer-arrival-cta{min-width:188px;min-height:66px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;align-self:end;background:${T.pace.acid};color:#080907;text-decoration:none;border:2px solid #080907;border-radius:999px;font-family:${T.type.mono};font-size:14px;font-weight:600;transition:transform .22s cubic-bezier(.2,.8,.2,1),background .22s ease,color .22s ease}.footer-arrival-cta:hover,.footer-arrival-cta:focus-visible{background:${T.pace.cobalt};color:white;transform:translateY(-2px);outline:none}.footer-arrival-utility{position:relative;z-index:2;min-height:126px;padding:24px 54px;display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:54px;align-items:start}.footer-arrival-place .bolt-mark{color:#080907;font-size:14px}.footer-arrival-place p{font-size:14px;line-height:1.5;margin:12px 0 0}.footer-arrival-nav,.footer-arrival-social{display:flex;flex-direction:column}.footer-arrival-nav a,.footer-arrival-social a{min-height:44px;display:flex;align-items:center;border-top:1px solid rgba(8,9,7,.28);color:#080907;text-decoration:none;font-family:${T.type.mono};font-size:14px}.footer-arrival-nav a:hover,.footer-arrival-nav a:focus-visible,.footer-arrival-social a:hover,.footer-arrival-social a:focus-visible{color:${T.pace.cobalt};outline:none}.footer-arrival-bottom{position:relative;z-index:2;min-height:52px;padding:0 54px;background:${T.pace.ink};color:white;display:flex;align-items:center;justify-content:space-between;font-family:${T.type.mono};font-size:14px}.pace-program-page-v6{height:1810px}.pace-visit-page{height:1790px}.pace-program-page-v6>.pace-footer-v7{padding:0}.pace-program-page-v6 .pace-footer-v7 p,.pace-program-page-v6 .pace-footer-v7 a,.pace-program-page-v6 .pace-footer-v7 span{font-size:14px}
  @media(prefers-reduced-motion:reduce){.footer-arrival-cta{transition:none!important}.footer-arrival-cta:hover,.footer-arrival-cta:focus-visible{transform:none!important}}

  /* Pace / Poster V8 — Love Them full-bleed hero film */
  .pace-hero-video{position:absolute;z-index:0;inset:0;overflow:hidden;background:${T.pace.ink};pointer-events:none}.pace-hero-video video{width:100%;height:100%;display:block;object-fit:cover;object-position:center 48%}.pace-hero-video-shade,.pace-hero-video-grid{position:absolute;inset:0;pointer-events:none}.pace-hero-video-shade{background:linear-gradient(90deg,rgba(8,9,7,.84) 0%,rgba(8,9,7,.67) 43%,rgba(8,9,7,.38) 74%,rgba(8,9,7,.5) 100%),linear-gradient(180deg,rgba(8,9,7,.1) 0%,rgba(8,9,7,.08) 56%,rgba(8,9,7,.82) 100%)}.pace-hero-video-grid{background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:32px 32px;mix-blend-mode:screen;opacity:.48}.pace-hero-video-toggle{position:absolute;z-index:5;right:54px;top:26px;width:48px;height:48px;border:1px solid rgba(255,255,255,.55);border-radius:50%;display:grid;place-items:center;padding:0;background:rgba(8,9,7,.68);color:white;font-family:${T.type.mono};font-size:14px;cursor:pointer;pointer-events:auto;transition:background .2s ease,color .2s ease,border-color .2s ease}.pace-hero-video-toggle:hover,.pace-hero-video-toggle:focus-visible{background:${T.pace.acid};color:#080907;border-color:${T.pace.acid};outline:none}.pace-hero-video-toggle span{transform:translateY(-1px)}.pace-hero>.pace-code,.pace-hero>.pace-route-mark,.pace-hero>h1,.pace-hero>.pace-cta{z-index:3}.pace-hero>.pace-code,.pace-hero .pace-cta p,.pace-hero .pace-cta .ui-btn{font-size:14px}.pace-hero>.pace-code{line-height:1.45}.pace-hero>.pace-ghost{z-index:1}.pace-mobile-hero{position:relative;isolation:isolate;min-height:560px;margin:0 -18px;padding:24px 18px 28px;box-sizing:border-box;overflow:hidden;display:flex;flex-direction:column;align-items:stretch}.pace-v3-mobile main{padding-top:0}.pace-mobile-hero>.pace-mobile-ghost{z-index:1}.pace-mobile-hero>.pace-mobile-code,.pace-mobile-hero>h1,.pace-mobile-hero>p,.pace-mobile-hero>.mobile-actions{position:relative;z-index:3}.pace-mobile-hero>.pace-mobile-code{color:${T.pace.acid};font-size:14px;line-height:1.45}.pace-mobile-hero>h1{margin:70px 0 0}.pace-mobile-hero>p{font-size:14px;line-height:1.45;max-width:300px;margin:auto 0 18px;text-shadow:0 1px 18px rgba(0,0,0,.6)}.pace-mobile-hero>.mobile-actions{margin-right:58px}.pace-hero-video-mobile video{object-position:61% center}.pace-hero-video-mobile .pace-hero-video-shade{background:linear-gradient(180deg,rgba(8,9,7,.66) 0%,rgba(8,9,7,.3) 40%,rgba(8,9,7,.86) 100%),linear-gradient(90deg,rgba(8,9,7,.5),transparent 72%)}.pace-hero-video-mobile .pace-hero-video-grid{background-size:24px 24px;opacity:.38}.pace-hero-video-mobile .pace-hero-video-toggle{right:18px;top:auto;bottom:28px;width:48px;height:48px}.pace-motion-enabled .pace-mobile-hero>p,.pace-motion-enabled .pace-mobile-hero>.mobile-actions{animation:pace-copy-in .45s ease-out .34s both}
  @media(prefers-reduced-motion:reduce){.pace-hero-video video{transform:none!important}.pace-hero-video-toggle{transition:none!important}.pace-motion-enabled .pace-mobile-hero>p,.pace-motion-enabled .pace-mobile-hero>.mobile-actions{animation:none!important}}

  /* Measured interaction targets */
  .concept-header>.header-logo,.concept-header nav a,.concept-header-end>a{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.concept-mobile-header>a{min-width:44px;height:44px;display:grid;place-items:center}.concept-mobile-header>.mobile-language{min-width:150px}.mobile-dock a{height:54px;min-width:100px;display:grid;place-items:center}.ui-btn{min-height:44px}.menu-feature button,.drawer-close,.product-modal-close{min-width:44px;min-height:44px}.product-drawer>a,.product-source{min-height:44px;box-sizing:border-box;align-items:center}.product-modal-nav button{min-width:44px;min-height:44px}.program-list a{min-width:44px;min-height:44px;display:grid;place-items:center}.community-grid a{min-width:44px;min-height:44px;display:flex;align-items:center}.footer-links a,.footer-news>a{min-height:44px;display:flex;align-items:center}.mobile-event{min-height:58px;box-sizing:border-box}.mobile-community-links a{min-height:44px;box-sizing:border-box}
`;

window.LTSConcepts = { CalmHome, CalmMobile, CalmMenu, PaceHome, PaceMobile, PaceMenu, PaceMenuMobile, PaceProgram, PaceProgramMobile, PaceVisit, PaceVisitMobile, MixHome, MixMobile, MixMenu, CONCEPT_CSS };
