/* ── the design system, inlined (packages/tokens + the registry section system) ── */
/* =============================================================================
   Leadværk — FONTS, self-hosted
   -----------------------------------------------------------------------------
   The design guide imported Figtree and JetBrains Mono from
   `fonts.googleapis.com` (demo-v2/leadvaerk.css:11). Production must not:

     · it is a render-blocking third-party round trip on the critical path,
       paid for in LCP on every customer site;
     · it leaks every visitor's IP to Google, which on a Danish customer site
       is a GDPR exposure we would be creating on the customer's behalf;
     · LPH already solved this the hard way — its `saas` ThemeLayout gates the
       Google Fonts injection on `window.__lphConsent.personalization`, i.e. on
       consent, which means the typeface does not load at all for the
       ~majority of visitors who decline. Self-hosting removes the consent
       question entirely: a font served from our own origin is not a third
       party and needs no permission.

   Files live in `packages/tokens/assets/fonts/` as woff2, subset to
   `latin` + `latin-ext` (Danish needs æ ø å — latin alone drops them).
   Variable fonts where available: one file per family, not one per weight.

   The two `<link rel="preload">` tags belong in the document head, before the
   stylesheet, for the two faces that paint above the fold:

     <link rel="preload" as="font" type="font/woff2" crossorigin
           href="/fonts/figtree-var-latin-ext.woff2">
     <link rel="preload" as="font" type="font/woff2" crossorigin
           href="/fonts/jetbrains-mono-var-latin-ext.woff2">

   Preload ONLY those two. Everything below the first section is the tenant
   font-PAIRING catalog (`themes/src/pairings.mjs`), and a tenant renders
   exactly one pairing: a declared `@font-face` whose family no rule on the page
   ever names is not fetched, so the other twenty-odd faces cost this file's own
   bytes (~1.5 KiB gzipped) and no request at all. Preloading them would undo
   that — a preload fetches unconditionally.
   ========================================================================== */

@font-face {
  font-family: 'Figtree';
  src: url('/fonts/figtree-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
  /* latin + latin-ext: U+00C6/U+00E6 (Æ æ), U+00D8/U+00F8 (Ø ø),
     U+00C5/U+00E5 (Å å) all fall inside the latin block; latin-ext is carried
     for Slovak/Polish customer names in CMS content. */
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'JetBrains Mono';
  src: url('/fonts/jetbrains-mono-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+2000-206F, U+2074, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}

/* Metric-compatible fallback so `font-display: swap` does not reflow the page.
   Figtree's metrics are close to Segoe UI / system-ui at these overrides.

   TWO DEFECTS FIXED 2026-08-18, both of which made this face inert.

   (1) It resolved on NOTHING but Windows and macOS. `local('Segoe UI')`,
       `local('Helvetica Neue')` and `local('Arial')` are all absent on Linux and
       Android, so those visitors matched no fallback face at all and ate the
       full metric mismatch — measured at +12% on `1ch` and recorded in the
       Phase 13 handoff as the deeper defect behind `cls-budget`. The three
       Liberation/DejaVu/Noto names below are the metric-compatible faces that
       actually ship on Linux; `local()` costs nothing when it misses, so naming
       all six is strictly better than naming three.

   (2) NOTHING EVER NAMED IT. `--lv-font-ui` (primitives.css) listed
       `'Figtree', ui-sans-serif, …` and never `'Figtree Fallback'`, so even on
       Windows the face was declared, matched by no stack, and used by no
       element. A metric-compatible fallback that no font stack names is a
       comment. It is named now — here, in primitives.css, and in
       `themes/src/pairings.mjs`'s own body stack. */
@font-face {
  font-family: 'Figtree Fallback';
  src: local('Segoe UI'), local('Helvetica Neue'), local('Arial'),
       local('Liberation Sans'), local('Noto Sans'), local('DejaVu Sans');
  ascent-override: 96%;
  descent-override: 24%;
  line-gap-override: 0%;
  size-adjust: 102%;
}


/* ─── `font-display: optional`, and why it is not `swap` down here ──────────
   (2026-08-18, Phase 13.)

   The two faces ABOVE keep `swap`: they are the platform's own, they are what a
   page falls back to, and `'Figtree Fallback'` now genuinely matches Figtree's
   metrics on every OS, so their swap does not reflow.

   These twenty-one have no metric twin and cannot cheaply be given one — they
   are twenty-one different families with twenty-one different advance widths,
   and a per-family `size-adjust` calibration is a real job with real
   measurements behind it, not a number to guess. Until that exists, `swap` on a
   display face is a guaranteed reflow: the fallback paints, the vendored face
   arrives, and every line re-wraps. Measured on `raw` at 1440 the League Gothic
   headline collapsed from three lines to one and scored CLS 0.152 against a
   ≤0.1 budget; `atelier` at 390 scored 0.114 the same way.

   `optional` removes the class outright. The browser gives the face ~100ms and
   then commits for the life of the page: either the real face from the FIRST
   paint, or the fallback for all of it — never a swap between them, so there is
   no reflow to score. And the ~100ms is not a gamble here: `render.mjs`
   preloads the display face (`usedFontFiles(css, ['display'])`) and the preview
   path inlines every used face as a `data:` URI, so the face is present before
   first paint on both delivery paths.

   The trade is stated rather than hidden: on a genuinely slow cold load a
   visitor may see that page in the fallback stack. That is the right way round
   — a consistent page in the wrong face beats a correct page that jumps under
   the reader's eye, and it is the only one of the two that a Core Web Vital
   measures. When the per-family metric fallbacks land, these can go back to
   `swap` and the trade disappears. */

/* =============================================================================
   PAIRING CATALOG — the faces behind `themes/src/pairings.mjs`
   -----------------------------------------------------------------------------
   Twenty-one families, every one SIL OFL 1.1, vendored under
   `assets/fonts/upstream/` with a `<Family>-OFL.txt` beside it and cut to the
   ranges below by `tools/build-fonts.py`. They exist so a tenant's pairing is a
   real typographic identity rather than a system-stack alias: `æ` set in
   Fraunces on one customer's site and in Barlow Condensed on the next is the
   whole point of the catalog, and neither of those is a font a visitor's OS
   happens to have. Same self-host rule as the two faces above — no CDN, no
   consent question, no third party.

   Two conventions run through every block:

   · WEIGHT RANGES ARE THE FONT'S OWN. A `@font-face` weight descriptor is what
     the matcher instances a variable axis against, so the range is the axis
     range clamped to what the theme layer asks for (`--lv-weight-heading` is
     800), never a wider number copied between blocks. Where a family ships
     several static files instead of an axis (Spectral, Barlow, Barlow
     Condensed — no variable release upstream), each weight is its own block.

   · SINGLE-WEIGHT DISPLAY FACES DECLARE A RANGE ANYWAY. 'DM Serif Display' and
     'League Gothic' ship exactly one weight because that IS the design — they
     are display cuts meant to be set large at that weight. Declaring
     `font-weight: 400` alone would leave the matcher without a bold and it
     would smear a synthetic one under an 800 heading, which on a high-contrast
     serif is the ugliest artefact in this file. Declaring the range says "this
     face is the bold too": the heading renders in the real drawing instead.
   ========================================================================== */

/* `fraunces-inter` — warm editorial serif over a neutral workhorse.
   Cut with SOFT/WONK pinned off (see build-fonts.py `PIN`); opsz stays live, so
   the hero gets Fraunces' display drawing and body copy its text drawing. */
@font-face {
  font-family: 'Fraunces';
  src: url('/fonts/fraunces-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 900;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  src: url('/fonts/inter-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 900;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* `dm-serif-display-dm-sans` — high-contrast didone display, geometric body. */
@font-face {
  font-family: 'DM Serif Display';
  src: url('/fonts/dm-serif-display-400-latin-ext.woff2') format('woff2');
  font-weight: 400 800;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'DM Sans';
  src: url('/fonts/dm-sans-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 900;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* `space-grotesk-work-sans` — technical grotesque display, humanist body. */
@font-face {
  font-family: 'Space Grotesk';
  src: url('/fonts/space-grotesk-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 700;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Work Sans';
  src: url('/fonts/work-sans-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 900;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* `libre-caslon-text-source-sans` — bookish old-style serif, quiet sans body. */
@font-face {
  font-family: 'Libre Caslon Text';
  src: url('/fonts/libre-caslon-text-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 700;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Source Sans 3';
  src: url('/fonts/source-sans-3-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 900;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* `bitter-karla` — slab serif display, grotesque body. Trade/craft register. */
@font-face {
  font-family: 'Bitter';
  src: url('/fonts/bitter-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 900;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Karla';
  src: url('/fonts/karla-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 800;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* `archivo-expanded-archivo` — one superfamily, two widths. The display face is
   cut at wdth 125 (build-fonts.py `PIN`) and the body at the family's own 100,
   which is why both name the SAME upstream file and different served files. */
@font-face {
  font-family: 'Archivo Expanded';
  src: url('/fonts/archivo-expanded-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 900;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Archivo';
  src: url('/fonts/archivo-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 900;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* `spectral-public-sans` — literary text serif, civic sans. Two static cuts:
   Spectral has no variable release upstream. */
@font-face {
  font-family: 'Spectral';
  src: url('/fonts/spectral-400-latin-ext.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Spectral';
  src: url('/fonts/spectral-700-latin-ext.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Public Sans';
  src: url('/fonts/public-sans-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 900;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* `sora-ibm-plex-sans` — geometric-technical display, engineered body. */
@font-face {
  font-family: 'Sora';
  src: url('/fonts/sora-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 800;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'IBM Plex Sans';
  src: url('/fonts/ibm-plex-sans-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 700;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* `crimson-pro-mulish` — classical book serif, rounded-humanist body. */
@font-face {
  font-family: 'Crimson Pro';
  src: url('/fonts/crimson-pro-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 900;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Mulish';
  src: url('/fonts/mulish-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 900;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* `league-gothic-lora` — poster-condensed display against a bookish body. The
   loudest pairing in the catalog; the body face is what keeps it readable. */
@font-face {
  font-family: 'League Gothic';
  src: url('/fonts/league-gothic-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 800;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Lora';
  src: url('/fonts/lora-var-latin-ext.woff2') format('woff2-variations');
  font-weight: 400 700;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* `barlow-condensed-barlow` — industrial utility, one superfamily at two
   widths. Static cuts: Barlow has no variable release upstream. */
@font-face {
  font-family: 'Barlow Condensed';
  src: url('/fonts/barlow-condensed-400-latin-ext.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Barlow Condensed';
  src: url('/fonts/barlow-condensed-700-latin-ext.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Barlow';
  src: url('/fonts/barlow-400-latin-ext.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Barlow';
  src: url('/fonts/barlow-700-latin-ext.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: optional;
  unicode-range:
    U+0000-00FF, U+0100-017F, U+0180-024F,
    U+0259, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC,
    U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* =============================================================================
   Leadværk — LAYER 1: PRIMITIVES
   -----------------------------------------------------------------------------
   Raw values. Theme-independent. Named by position on a scale, NEVER by role.
   Nothing in the product references these directly — `semantic.css` maps them
   onto roles and everything else uses the roles.

   The colour ramp is not invented. It is sampled from the brand assets:
     /home/ian/inspiration/leadvaerk/Leadvaerk_1.webp   (horizontal wordmark)
     /home/ian/inspiration/leadvaerk/Leadvaerk_avatar.webp (monogram disc)
   Sampling method and the per-stop sRGB values are recorded in
     docs/design/brand-mark.md
   Do not "adjust" a brand stop without re-sampling and updating that document.

   Every value that carries text is gated by tools/contrast/check-contrast.mjs.
   ========================================================================== */

:root {
  /* ─────────────────────────────────────────────────────────────────────────
     BRAND RAMP — navy → teal, the mark's own gradient
     Measured stops (sRGB → OKLCH):
       #082245  oklch(25.5% 0.073 257)   wordmark letterforms
       #022b66  oklch(30.4% 0.113 259)   ligature start
       #055183  oklch(42.1% 0.106 246)   ligature mid
       #006987  oklch(48.5% 0.093 226)   ligature 3/4
       #008a96  oklch(57.8% 0.099 206)   ligature teal
       #009396  oklch(60.2% 0.102 197)   avatar teal terminal
     The scale below interpolates and extends that ramp in OKLCH so lightness
     steps are perceptually even. Chroma stays low (0.07–0.11) on purpose —
     see .impeccable.md §4: the system's interest comes from the rim, not from
     saturated fills.
     ───────────────────────────────────────────────────────────────────────── */

  --lv-navy-950: oklch(19% 0.055 258);
  --lv-navy-900: oklch(25.5% 0.073 257);  /* ← measured: wordmark ink */
  --lv-navy-800: oklch(30.5% 0.107 258);  /* ← measured: ligature start */
  --lv-navy-700: oklch(34% 0.100 252);
  --lv-navy-600: oklch(37% 0.101 248);
  --lv-navy-500: oklch(42% 0.106 246);    /* ← measured: ligature mid */

  --lv-teal-800: oklch(40% 0.096 232);
  --lv-teal-700: oklch(48.5% 0.093 226);  /* ← measured: ligature 3/4 */
  --lv-teal-600: oklch(53% 0.094 208);    /* ramp terminal — contrast-capped */
  --lv-teal-500: oklch(57.8% 0.099 206);  /* ← measured: ligature teal */
  --lv-teal-400: oklch(60.2% 0.102 197);  /* ← measured: avatar terminal */
  --lv-teal-300: oklch(68% 0.093 200);
  --lv-teal-200: oklch(74% 0.088 198);
  --lv-teal-100: oklch(84% 0.062 196);
  --lv-teal-050: oklch(93% 0.028 198);

  /* Dark-theme mark ramp, following the `-inv` convention used by the slate
     ink stops above. The light ramp travels 25.5% → 42% → 57.8% in lightness,
     and re-lighting it for dark by keeping that 32-point span put the START at
     42% — measured at 1.52:1 against the dark glass rail, which composites to
     roughly 30% lightness. The æ ligature's navy end was therefore all but
     invisible, unmeasured, for the whole build.
     The fix is a SHORTER lightness travel, not a different identity: the hue
     path is unchanged (250 → 214 → 198, navy into teal) and the chroma stays
     inside the 0.07–0.11 band `.impeccable.md` §4 fixes. On a dark surface a
     ramp cannot start low; it can still travel. */
  --lv-navy-300-inv: oklch(62% 0.098 250);   /* dark-theme ligature start */
  --lv-teal-350-inv: oklch(68% 0.094 214);   /* dark-theme ligature mid */

  /* ─────────────────────────────────────────────────────────────────────────
     NEUTRAL RAMP — tinted toward the brand hue (chroma 0.006–0.055).
     A true grey next to a cool palette reads as dirt. These are the only
     "greys" in the system.
     ───────────────────────────────────────────────────────────────────────── */

  --lv-slate-000: oklch(99.2% 0.003 240);
  --lv-slate-025: oklch(97% 0.007 238);
  --lv-slate-050: oklch(96% 0.008 240);
  --lv-slate-100: oklch(92.5% 0.012 235);
  --lv-slate-200: oklch(88.5% 0.012 236);
  --lv-slate-300: oklch(78% 0.018 238);
  --lv-slate-400: oklch(58% 0.030 240);
  --lv-slate-500: oklch(51% 0.033 242);
  --lv-slate-600: oklch(44% 0.042 250);
  --lv-slate-700: oklch(34% 0.036 255);
  --lv-slate-750: oklch(28% 0.038 254);
  --lv-slate-800: oklch(24% 0.040 255);
  --lv-slate-850: oklch(19% 0.038 256);
  --lv-slate-900: oklch(14% 0.032 257);
  --lv-slate-050-inv: oklch(96% 0.008 230);   /* dark-theme primary ink */
  --lv-slate-150-inv: oklch(79% 0.020 230);   /* dark-theme secondary ink */
  --lv-slate-250-inv: oklch(72% 0.024 234);   /* dark-theme tertiary ink */
  --lv-slate-350-inv: oklch(60% 0.030 240);   /* dark-theme control boundary */

  /* ─────────────────────────────────────────────────────────────────────────
     STATUS PRIMITIVES — two lightness tiers, tuned per theme in semantic.css.
     `-t` = text tier (passes 4.5:1 on its theme's worst-case backdrop).
     `-s` = surface/fill tier (used only behind text, never as text).
     ───────────────────────────────────────────────────────────────────────── */

  --lv-ok-t-light:   oklch(45% 0.086 192);
  --lv-ok-s-light:   oklch(92% 0.045 190);
  --lv-ok-t-dark:    oklch(80% 0.110 185);
  --lv-ok-s-dark:    oklch(38% 0.078 187);

  --lv-warn-t-light: oklch(48% 0.134 55);
  --lv-warn-s-light: oklch(93% 0.055 80);
  --lv-warn-t-dark:  oklch(85% 0.130 82);
  --lv-warn-s-dark:  oklch(40% 0.090 68);

  --lv-bad-t-light:  oklch(50% 0.190 25);
  --lv-bad-s-light:  oklch(93% 0.034 22);
  --lv-bad-t-dark:   oklch(78% 0.126 24);
  --lv-bad-s-dark:   oklch(38% 0.110 24);

  /* ─────────────────────────────────────────────────────────────────────────
     REFRACTION SPECTRUM — the prismatic rim.
     Cool-biased: turquoise → aqua → azure → indigo, then ONE warm stop.
     .impeccable.md §4: the warm stop is the difference between "split light"
     and "a blue smear". It has exactly one use — this gradient. Never an
     accent, never a status colour.
     ───────────────────────────────────────────────────────────────────────── */

  --lv-spec-1: oklch(72% 0.115 195);  /* turquoise */
  --lv-spec-2: oklch(80% 0.105 172);  /* aqua-green */
  --lv-spec-3: oklch(74% 0.120 235);  /* azure */
  --lv-spec-4: oklch(70% 0.130 285);  /* indigo */
  --lv-spec-5: oklch(80% 0.095 55);   /* the one warm note */

  /* ─────────────────────────────────────────────────────────────────────────
     TYPE — Figtree (UI) + JetBrains Mono (figures). Both self-hosted; see
     fonts.css. .impeccable.md §4 bans the Google Fonts CDN import the demo
     used.
     ───────────────────────────────────────────────────────────────────────── */

  /* `'Figtree Fallback'` (fonts.css) is a metric-compatible face whose whole
     job is to stop `font-display: swap` reflowing the page. It was declared
     and named by no stack, so it did nothing at all until 2026-08-18; it sits
     directly behind Figtree here, which is the only position in which a
     metric twin has any effect. */
  --lv-font-ui: 'Figtree', 'Figtree Fallback', ui-sans-serif, system-ui, 'Segoe UI', sans-serif;
  --lv-font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', 'Cascadia Mono', monospace;

  /* 5 steps, ratio ≥1.25 between adjacent steps (17 → 24 → 38 → 56 is 1.41/1.58/1.47;
     the two small steps below body are the label tier). */
  --lv-text-2xs: 0.6875rem; /* 11px — nav labels, kbd chips, counters */
  --lv-text-xs:  0.78rem;   /* 12.5px — eyebrows, table headers, captions */
  --lv-text-sm:  0.9375rem; /* 15px — UI default: buttons, table cells, fields */
  --lv-text-md:  1.0625rem; /* 17px — body copy */
  --lv-text-lg:  1.5rem;    /* 24px — section headings, stat values */
  --lv-text-xl:  2.375rem;  /* 38px — page titles */
  --lv-text-2xl: 3.5rem;    /* 56px — marketing display */

  --lv-weight-regular: 400;
  --lv-weight-medium: 500;
  --lv-weight-semibold: 600;
  --lv-weight-bold: 700;
  --lv-weight-heading: 800;
  --lv-weight-mark: 900;

  --lv-leading-tight: 1.08;
  --lv-leading-snug: 1.35;
  --lv-leading-normal: 1.55;

  --lv-tracking-heading: -0.028em;
  --lv-tracking-label: -0.012em;
  --lv-tracking-eyebrow: 0.11em;
  --lv-tracking-num: -0.02em;

  --lv-measure: 68ch;   /* prose max-width — never wider */

  /* ─────────────────────────────────────────────────────────────────────────
     SPACE — 4pt scale
     ───────────────────────────────────────────────────────────────────────── */

  --lv-space-1: 4px;
  --lv-space-2: 8px;
  --lv-space-3: 12px;
  --lv-space-4: 16px;
  --lv-space-5: 24px;
  --lv-space-6: 32px;
  --lv-space-7: 48px;
  --lv-space-8: 64px;
  --lv-space-9: 96px;

  /* ─────────────────────────────────────────────────────────────────────────
     SHAPE
     ───────────────────────────────────────────────────────────────────────── */

  --lv-radius-sm: 10px;
  --lv-radius-md: 16px;
  --lv-radius-lg: 24px;
  --lv-radius-xl: 32px;
  --lv-radius-pill: 999px;

  /* ─────────────────────────────────────────────────────────────────────────
     MOTION — one curve for everything the user causes. No bounce, no spring.
     ───────────────────────────────────────────────────────────────────────── */

  --lv-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --lv-dur-instant: 120ms;
  --lv-dur-fast: 160ms;
  --lv-dur-state: 240ms;
  --lv-dur-panel: 420ms;
  --lv-dur-light: 450ms;  /* rim + bloom — light settles slowly */

  /* ─────────────────────────────────────────────────────────────────────────
     Z-LAYERS — systemic only. A number outside this list is a defect.
     ───────────────────────────────────────────────────────────────────────── */

  --lv-z-canvas: 0;
  --lv-z-sticky: 40;
  --lv-z-panel: 55;
  --lv-z-bar: 60;
  --lv-z-overlay: 80;
  --lv-z-palette: 85;
  --lv-z-toast: 95;
}

/* =============================================================================
   Leadværk — LAYER 2: SEMANTIC ROLES
   -----------------------------------------------------------------------------
   Maps primitives onto what things ARE. This is the layer product code reads.
   A component that references `--lv-navy-900` instead of `--lv-text-primary`
   is a defect: it cannot be re-themed and it is invisible to the contrast gate.

   Theming contract
   ----------------
     :root                       → light (default)
     :root[data-theme="dark"]    → dark, explicit
     @media (prefers-color-scheme: dark) :root:not([data-theme])  → dark, implicit
     :root[data-theme="light"]   → light, explicit (must beat the media query)

   The explicit attribute always wins over the OS preference, in BOTH
   directions — this is the rule the demo got right and most systems get wrong.

   Every foreground/background pair declared here is registered in
   tools/contrast/pairs.mjs and measured by tools/contrast/check-contrast.mjs.
   ========================================================================== */

:root,
:root:where([data-theme='light']) {
  color-scheme: light;

  /* ── Backdrop ──────────────────────────────────────────────────────────
     `canvas` is the page. `canvas-wash-*` are the three atmospheric radial
     gradients laid over it. Their alpha is capped at 0.22 because the wash
     is what determines the WORST-CASE backdrop every glass surface and every
     piece of canvas-level text is measured against (.impeccable.md §6).
     `canvas-worst` records that computed floor so the gate can read it. */
  --lv-canvas: var(--lv-slate-050);
  --lv-canvas-deep: var(--lv-slate-100);
  --lv-canvas-wash-a: oklch(84% 0.070 210);
  --lv-canvas-wash-b: oklch(80% 0.075 258);
  --lv-canvas-wash-c: oklch(86% 0.055 180);
  --lv-canvas-wash-alpha: 0.22;
  --lv-canvas-worst: oklch(93.3% 0.023 218);   /* = canvas + wash-a @ 0.22, computed */
  --lv-overlay-scrim: color-mix(in oklab, var(--lv-canvas-deep) 62%, transparent);

  /* ── Opaque surfaces — where all work happens (.impeccable.md §3) ────── */
  --lv-surface: var(--lv-slate-000);
  --lv-surface-raised: var(--lv-slate-025);
  --lv-surface-sunken: var(--lv-slate-050);

  /* ── Ink ───────────────────────────────────────────────────────────────
     Three text roles, and all three clear 4.5:1 against the worst-case
     canvas. There is no fourth, dimmer text role — "faint" in the demo was
     a 3.1:1 colour used for real text. `--lv-icon-quiet` and `--lv-line`
     exist for the non-text jobs that role was doing. */
  --lv-text-primary: var(--lv-navy-900);
  --lv-text-secondary: var(--lv-slate-600);
  --lv-text-tertiary: var(--lv-slate-500);
  --lv-text-on-brand: oklch(98% 0.008 205);
  --lv-text-link: var(--lv-teal-700);

  /* ── Lines and boundaries ──────────────────────────────────────────────
     `line` = decorative hairline between same-surface content. No contrast
       requirement (it separates, it does not identify).
     `line-control` = the boundary of an interactive control. WCAG 1.4.11
       requires 3:1 against what it sits on. Gated. */
  --lv-line: var(--lv-slate-200);
  --lv-line-strong: var(--lv-slate-300);
  --lv-line-control: var(--lv-slate-400);
  --lv-icon-quiet: var(--lv-slate-400);

  /* ── Brand ─────────────────────────────────────────────────────────────
     `--lv-ramp` is the mark's gradient and it is what primary actions carry
     (.impeccable.md §4). Its light terminal is capped at --lv-teal-600 so
     that `--lv-text-on-brand` clears 4.5:1 at the brightest point of the
     gradient — the demo's terminal was too light for its own button label. */
  --lv-brand: var(--lv-teal-700);
  --lv-brand-strong: var(--lv-navy-800);
  --lv-brand-soft: var(--lv-teal-050);
  --lv-accent: var(--lv-brand);
  --lv-highlight: var(--lv-brand-soft);
  --lv-ramp: linear-gradient(
    118deg,
    var(--lv-navy-900) 0%,
    var(--lv-navy-500) 46%,
    var(--lv-teal-600) 100%
  );
  --lv-ramp-terminal: var(--lv-teal-600);   /* the gate measures ink against this */

  /* ── Dark-panel recipe (WAVE2 W2a) ─────────────────────────────────────
     The "dark object" ground shared verbatim by assert.statement,
     locate.practical-info, prove.stat-scene and prove.evidence-mosaic —
     given real names so `panel-dark-ink-on-panel-dark` (tools/contrast/
     pairs.mjs) can measure it for every theme, opted-in or not. Declared
     as a VAR REFERENCE, not a copied literal, so a theme's own dark-mode
     override of `--lv-brand-strong` is inherited automatically — no
     separate dark-scope redeclaration needed (mirrors how a component
     reading `var(--lv-panel-dark, var(--lv-brand-strong))` behaves whether
     or not this declaration existed at all). A theme's `ornament.css` may
     re-point either one; if it repoints `--lv-panel-dark`, `--lv-panel-dark-
     ink` must follow. */
  --lv-panel-dark: var(--lv-brand-strong);
  --lv-panel-dark-ink: var(--lv-text-on-brand);

  /* ── Status ────────────────────────────────────────────────────────────
     `-text` carries text and is gated at 4.5:1. `-surface` is a fill and is
     never used as a text colour. */
  --lv-ok-text: var(--lv-ok-t-light);
  --lv-ok-surface: var(--lv-ok-s-light);
  --lv-warn-text: var(--lv-warn-t-light);
  --lv-warn-surface: var(--lv-warn-s-light);
  --lv-bad-text: var(--lv-bad-t-light);
  --lv-bad-surface: var(--lv-bad-s-light);

  /* ── Focus ────────────────────────────────────────────────────────────
     One ring, everywhere, on `:focus-visible` only. 3:1 against every
     surface it can land on. Gated. */
  --lv-focus-ring: var(--lv-teal-600);
  --lv-focus-width: 2px;
  --lv-focus-offset: 3px;

  /* ── Elevation — navy-tinted, never neutral grey ──────────────────────── */
  --lv-shadow-tint: 14 34 62;
  --lv-lift-1: 0 1px 2px rgb(var(--lv-shadow-tint) / 0.06),
               0 2px 6px -2px rgb(var(--lv-shadow-tint) / 0.09);
  --lv-lift-2: 0 2px 4px rgb(var(--lv-shadow-tint) / 0.06),
               0 12px 28px -10px rgb(var(--lv-shadow-tint) / 0.22);
  --lv-lift-3: 0 4px 8px rgb(var(--lv-shadow-tint) / 0.07),
               0 28px 60px -18px rgb(var(--lv-shadow-tint) / 0.30);

  /* ── Glass material parameters — consumed by material.css ─────────────── */
  --lv-glass-tint: 255 255 255;
  --lv-glass-alpha: 0.55;
  --lv-glass-edge: 0.85;          /* inner top highlight opacity */
  --lv-glass-under: 14 34 62;     /* inner bottom shade colour */
  --lv-glass-blur: 22px;
  --lv-glass-saturate: 185%;
  --lv-rim-opacity: 0.44;
  --lv-rim-opacity-hover: 0.74;
  --lv-bloom-opacity: 0.50;
  --lv-bloom-opacity-hover: 0.72;
  --lv-bloom-blur: 14px;
  /* Composite of --lv-canvas-worst under glass at the declared alpha. The
     gate measures every piece of text that sits on glass against THIS, not
     against the surface token — a translucent surface has no colour of its
     own. */
  --lv-glass-worst: oklch(97.0% 0.010 220);
}

:root[data-theme='dark'] {
  color-scheme: dark;

  --lv-canvas: var(--lv-slate-850);
  --lv-canvas-deep: var(--lv-slate-900);
  --lv-canvas-wash-a: oklch(42% 0.082 210);
  --lv-canvas-wash-b: oklch(36% 0.105 258);
  --lv-canvas-wash-c: oklch(40% 0.085 180);
  --lv-canvas-wash-alpha: 0.24;
  --lv-canvas-worst: oklch(25.1% 0.047 236);   /* = canvas + wash-a @ 0.24, computed */
  --lv-overlay-scrim: color-mix(in oklab, var(--lv-canvas-deep) 72%, transparent);

  --lv-surface: var(--lv-slate-800);
  --lv-surface-raised: var(--lv-slate-750);
  --lv-surface-sunken: var(--lv-slate-900);

  --lv-text-primary: var(--lv-slate-050-inv);
  --lv-text-secondary: var(--lv-slate-150-inv);
  --lv-text-tertiary: var(--lv-slate-250-inv);
  --lv-text-on-brand: oklch(98% 0.008 205);   /* SAME as light — see note */
  --lv-text-link: var(--lv-teal-200);

  /* Note on --lv-text-on-brand: the demo flipped this to a DARK ink in dark
     mode (`--accent-ink: oklch(16% 0.04 235)`), which measures 2.1:1 against
     the dark ramp's own navy start — a primary button whose label failed on
     its own background. One ink, both themes; the ramp is what gets capped. */

  --lv-line: var(--lv-slate-700);
  --lv-line-strong: var(--lv-slate-750);
  --lv-line-control: var(--lv-slate-350-inv);
  --lv-icon-quiet: var(--lv-slate-250-inv);

  --lv-brand: var(--lv-teal-200);
  --lv-brand-strong: var(--lv-teal-300);
  --lv-brand-soft: oklch(30% 0.055 205);
  --lv-accent: var(--lv-brand);
  --lv-highlight: var(--lv-brand-soft);
  --lv-ramp: linear-gradient(
    118deg,
    var(--lv-navy-700) 0%,
    var(--lv-teal-800) 46%,
    var(--lv-teal-600) 100%
  );
  --lv-ramp-terminal: var(--lv-teal-600);

  --lv-ok-text: var(--lv-ok-t-dark);
  --lv-ok-surface: var(--lv-ok-s-dark);
  --lv-warn-text: var(--lv-warn-t-dark);
  --lv-warn-surface: var(--lv-warn-s-dark);
  --lv-bad-text: var(--lv-bad-t-dark);
  --lv-bad-surface: var(--lv-bad-s-dark);

  --lv-focus-ring: var(--lv-teal-200);

  --lv-shadow-tint: 0 0 0;
  --lv-lift-1: 0 1px 2px rgb(0 0 0 / 0.38), 0 2px 8px -2px rgb(0 0 0 / 0.48);
  --lv-lift-2: 0 2px 6px rgb(0 0 0 / 0.42), 0 14px 32px -10px rgb(0 0 0 / 0.62);
  --lv-lift-3: 0 6px 12px rgb(0 0 0 / 0.48), 0 32px 70px -20px rgb(0 0 0 / 0.72);

  --lv-glass-tint: 185 210 235;
  --lv-glass-alpha: 0.10;
  --lv-glass-edge: 0.30;
  --lv-glass-under: 0 0 0;
  --lv-glass-blur: 22px;
  --lv-glass-saturate: 170%;
  --lv-rim-opacity: 0.50;
  --lv-rim-opacity-hover: 0.80;
  --lv-bloom-opacity: 0.42;
  --lv-bloom-opacity-hover: 0.66;
  --lv-bloom-blur: 16px;
  --lv-glass-worst: oklch(31.8% 0.047 236);
}

/* OS preference — applies only when the app has not made an explicit choice.
   Kept as a duplicate block rather than a nested selector so the file stays
   parseable by the contrast gate (which reads declarations, not cascade). */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;

    --lv-canvas: var(--lv-slate-850);
    --lv-canvas-deep: var(--lv-slate-900);
    --lv-canvas-wash-a: oklch(42% 0.082 210);
    --lv-canvas-wash-b: oklch(36% 0.105 258);
    --lv-canvas-wash-c: oklch(40% 0.085 180);
    --lv-canvas-wash-alpha: 0.24;
    --lv-canvas-worst: oklch(25.1% 0.047 236);
    --lv-overlay-scrim: color-mix(in oklab, var(--lv-canvas-deep) 72%, transparent);

    --lv-surface: var(--lv-slate-800);
    --lv-surface-raised: var(--lv-slate-750);
    --lv-surface-sunken: var(--lv-slate-900);

    --lv-text-primary: var(--lv-slate-050-inv);
    --lv-text-secondary: var(--lv-slate-150-inv);
    --lv-text-tertiary: var(--lv-slate-250-inv);
    --lv-text-link: var(--lv-teal-200);

    --lv-line: var(--lv-slate-700);
    --lv-line-strong: var(--lv-slate-750);
    --lv-line-control: var(--lv-slate-350-inv);
    --lv-icon-quiet: var(--lv-slate-250-inv);

    --lv-brand: var(--lv-teal-200);
    --lv-brand-strong: var(--lv-teal-300);
    --lv-brand-soft: oklch(30% 0.055 205);
    --lv-accent: var(--lv-brand);
    --lv-highlight: var(--lv-brand-soft);
    --lv-ramp: linear-gradient(
      118deg,
      var(--lv-navy-700) 0%,
      var(--lv-teal-800) 46%,
      var(--lv-teal-600) 100%
    );

    --lv-ok-text: var(--lv-ok-t-dark);
    --lv-ok-surface: var(--lv-ok-s-dark);
    --lv-warn-text: var(--lv-warn-t-dark);
    --lv-warn-surface: var(--lv-warn-s-dark);
    --lv-bad-text: var(--lv-bad-t-dark);
    --lv-bad-surface: var(--lv-bad-s-dark);

    --lv-focus-ring: var(--lv-teal-200);

    --lv-shadow-tint: 0 0 0;
    --lv-lift-1: 0 1px 2px rgb(0 0 0 / 0.38), 0 2px 8px -2px rgb(0 0 0 / 0.48);
    --lv-lift-2: 0 2px 6px rgb(0 0 0 / 0.42), 0 14px 32px -10px rgb(0 0 0 / 0.62);
    --lv-lift-3: 0 6px 12px rgb(0 0 0 / 0.48), 0 32px 70px -20px rgb(0 0 0 / 0.72);

    --lv-glass-tint: 185 210 235;
    --lv-glass-alpha: 0.10;
    --lv-glass-edge: 0.30;
    --lv-glass-under: 0 0 0;
    --lv-glass-saturate: 170%;
    --lv-rim-opacity: 0.50;
    --lv-rim-opacity-hover: 0.80;
    --lv-bloom-opacity: 0.42;
    --lv-bloom-opacity-hover: 0.66;
    --lv-bloom-blur: 16px;
    --lv-glass-worst: oklch(31.8% 0.047 236);
  }
}

/* =============================================================================
   Leadværk — LAYER 3: MATERIAL
   -----------------------------------------------------------------------------
   The glass. This file is the signature of the whole product and it is the one
   file where an agent should change nothing without reading .impeccable.md §3
   and §4 first.

   What makes it Leadværk glass rather than the frosted panel every dashboard
   has shipped since 2013:

     · CHROMATIC ABERRATION, NOT BLUR. A 1px conic gradient masked to the border
       box (`mask-composite: exclude`) — split light running around the edge —
       plus a coloured bloom pooling BENEATH the lower edge, which is refracted
       light landing on the surface below. Blur is deliberately modest; the
       `saturate()` does more of the work. Heavy blur reads as fog.
     · PURE CSS. No `filter: url()`, no SVG filters. Those cost a rasterisation
       pass and are exactly what breaks in Safari.
     · COOL-BIASED SPECTRUM with one warm stop (--lv-spec-5). See primitives.css.

   WHERE IT MAY BE USED — .impeccable.md §3, restated because this is the rule
   most often broken:
     ALLOWED  rail · top bar · command palette · builder navigator / inspector /
              library drawer · toasts · popovers · dropdowns · theme bar ·
              marketing nav · marketing "lens" panels
     BANNED   data tables and rows · forms · fields inside a panel body · long
              text · article bodies · the builder canvas · modal bodies with
              forms · settings pages · anything containing a <textarea> · any
              surface that scrolls its own content

   `.lv-solid` is the DEFAULT surface. Reach for `.lv-glass` deliberately.
   ========================================================================== */

/* ── The opaque work surface — the default ───────────────────────────────── */

.lv-solid {
  background: var(--lv-surface);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius-lg);
  /* The `expression` dial (1.0.161) selects WHICH STEP of the theme's own
     authored light model this resting surface sits on — `--lv-solid-lift` is
     declared by registry.css's expression prelude and is anchored to this
     surface's base step, so `none`/`medium` are `--lv-lift-1` exactly as
     before. The fallback is that same base step, for the surfaces that load
     theme CSS without registry.css (the themes package's previews). */
  box-shadow: var(--lv-solid-lift, var(--lv-lift-1));
}

.lv-solid-sunken {
  background: var(--lv-surface-sunken);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius-lg);
  box-shadow: none;
}

/* ── The glass material ──────────────────────────────────────────────────── */

/* `position` lives in its own zero-specificity `:where()` rule, deliberately.
   Every floating glass surface (palette, popover, menu, tooltip, the mobile
   rail drawer) pairs `.lv-glass` with its own single-class rule that sets its
   REAL position (fixed, mostly). Both used to be plain `.lv-glass { position:
   relative }` at equal specificity with e.g. `.lv-palette { position: fixed }`
   — a tie broken by which stylesheet happened to load second, not by intent.
   That silently turned the command palette's `top: 14%` into an in-flow
   offset from wherever its portal landed in `document.body`, landing it near
   the bottom of the page. `:where()` contributes zero specificity, so any
   component's own `position` rule now wins regardless of file order, and a
   surface with no other opinion still gets `relative` as its base case. */
:where(.lv-glass) {
  position: relative;
}
.lv-glass {
  isolation: isolate;
  border-radius: var(--lv-radius-lg);

  /* The body: a directional tint wash. The three-stop gradient is what gives
     the surface a light direction — a flat rgba() fill reads as plastic. */
  background: linear-gradient(
    160deg,
    rgb(var(--lv-glass-tint) / calc(var(--lv-glass-alpha) + 0.22)) 0%,
    rgb(var(--lv-glass-tint) / var(--lv-glass-alpha)) 42%,
    rgb(var(--lv-glass-tint) / calc(var(--lv-glass-alpha) - 0.08)) 100%
  );

  backdrop-filter: blur(var(--lv-glass-blur)) saturate(var(--lv-glass-saturate));
  -webkit-backdrop-filter: blur(var(--lv-glass-blur)) saturate(var(--lv-glass-saturate));

  /* Machined edge: bright top, half-bright left, shaded bottom. This is the
     "wrought" quality from .impeccable.md §2 — the surface has a thickness. */
  box-shadow:
    inset 0 1px 0 0 rgb(255 255 255 / var(--lv-glass-edge)),
    inset 1px 0 0 0 rgb(255 255 255 / calc(var(--lv-glass-edge) * 0.45)),
    inset 0 -1px 0 0 rgb(var(--lv-glass-under) / 0.12),
    /* `expression` (1.0.161) — see `.lv-solid`. Glass is authored one step
       ABOVE solid, so its ladder is anchored at `--lv-lift-2`, not shared
       with solid's: one global token would have had to move one of the two. */
    var(--lv-glass-lift, var(--lv-lift-2));
}

/* ── The bloom — refracted light pooling on the surface below ────────────── */

.lv-glass::before {
  content: '';
  position: absolute;
  inset: 6% 4% -10% 4%;   /* pushed DOWN and OUT: light lands below, not behind */
  border-radius: inherit;
  z-index: -2;
  background:
    radial-gradient(60% 100% at 16% 100%, var(--lv-spec-1) 0%, transparent 70%),
    radial-gradient(55% 100% at 50% 100%, var(--lv-spec-3) 0%, transparent 70%),
    radial-gradient(60% 100% at 86% 100%, var(--lv-spec-4) 0%, transparent 70%);
  filter: blur(var(--lv-bloom-blur));
  opacity: var(--lv-bloom-opacity);
  transition: opacity var(--lv-dur-light) var(--lv-ease);
  pointer-events: none;
}

/* ── The rim — THE signature. 1px of conic gradient, masked to the border ── */

.lv-glass::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  z-index: -1;
  background: conic-gradient(
    from var(--lv-rim-angle, 205deg),
    var(--lv-spec-1),
    var(--lv-spec-2),
    var(--lv-spec-3),
    var(--lv-spec-4),
    var(--lv-spec-5),
    var(--lv-spec-1)
  );
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  opacity: var(--lv-rim-opacity);
  transition: opacity var(--lv-dur-light) var(--lv-ease);
  pointer-events: none;
}

/* Hover is the only motion the material has. It brightens; it does not move. */
.lv-glass:hover::after,
.lv-glass:focus-within::after {
  opacity: var(--lv-rim-opacity-hover);
}
.lv-glass:hover::before,
.lv-glass:focus-within::before {
  opacity: var(--lv-bloom-opacity-hover);
}

/* ── Variants ────────────────────────────────────────────────────────────── */

/* `flat` — structural chrome that is large, static, or always on screen: the
   rail, the stat strip, the marketing proof band. No bloom (a bloom under a
   full-height rail is noise), a quieter rim, less blur to cut paint cost. */
.lv-glass--flat {
  --lv-glass-blur: 16px;
  --lv-glass-saturate: 150%;
  --lv-rim-opacity: 0.20;
  --lv-rim-opacity-hover: 0.30;
}
.lv-glass--flat::before {
  display: none;
}

/* `lifted` — the surfaces that most justify the material: command palette,
   modal shells, marketing lens. Full rim, full bloom, deepest elevation. */
.lv-glass--lifted {
  box-shadow:
    inset 0 1px 0 0 rgb(255 255 255 / var(--lv-glass-edge)),
    inset 1px 0 0 0 rgb(255 255 255 / calc(var(--lv-glass-edge) * 0.45)),
    inset 0 -1px 0 0 rgb(var(--lv-glass-under) / 0.12),
    var(--lv-lift-3);
}

/* `control` — buttons, fields, chips. Smaller radius, tighter blur, no bloom
   (a bloom under a 40px button is a smudge). */
.lv-glass--control {
  --lv-glass-blur: 16px;
  --lv-glass-saturate: 180%;
  border-radius: var(--lv-radius-pill);
  box-shadow:
    inset 0 1px 0 0 rgb(255 255 255 / var(--lv-glass-edge)),
    inset 0 -1px 0 0 rgb(var(--lv-glass-under) / 0.12),
    var(--lv-lift-1);
}
.lv-glass--control::before {
  display: none;
}

/* Edge-anchored chrome: a rail flush to the viewport edge should not draw a
   rim on the edge it is flush with, or the rim reads as a seam. */
.lv-glass--edge-left  { border-start-start-radius: 0; border-end-start-radius: 0; }
.lv-glass--edge-right { border-start-end-radius: 0; border-end-end-radius: 0; }

/* =============================================================================
   DEGRADATION — three independent paths, all landing on the same opaque
   surface. .impeccable.md §5 principle 6: the fallback must be a good design,
   not a broken one. This is why `.lv-solid` and the glass fallback are the
   same visual object.
   ========================================================================== */

/* 1. The browser cannot composite a backdrop at all. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .lv-glass {
    background: var(--lv-surface);
    box-shadow:
      inset 0 0 0 1px var(--lv-line),
      var(--lv-lift-2);
  }
  .lv-glass::before { display: none; }
  .lv-glass::after  { opacity: calc(var(--lv-rim-opacity) * 0.6); }
}

/* 2. The user has asked for less transparency (Reduce Transparency on macOS
      and iOS, and the equivalent on Windows). This is an accessibility
      request, not a capability gap: honour it completely — the rim goes too,
      because a prismatic edge on an opaque panel is exactly the visual noise
      the setting exists to remove. */
@media (prefers-reduced-transparency: reduce) {
  .lv-glass {
    background: var(--lv-surface);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow:
      inset 0 0 0 1px var(--lv-line),
      var(--lv-lift-2);
  }
  .lv-glass::before,
  .lv-glass::after { display: none; }
}

/* 3. Forced colours (Windows High Contrast). Everything becomes system paint;
      the material is meaningless and must not fight the user's palette. */
@media (forced-colors: active) {
  .lv-glass {
    background: Canvas;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 1px solid CanvasText;
    box-shadow: none;
  }
  .lv-glass::before,
  .lv-glass::after { display: none; }
}

/* 4. Reduced motion: the rim/bloom transition is decorative, so it goes to
      zero — but the END STATES stay correct and nothing depends on the
      transition having run (.impeccable.md §4). */
@media (prefers-reduced-motion: reduce) {
  .lv-glass::before,
  .lv-glass::after {
    transition-duration: 0.01ms;
  }
}

/* =============================================================================
   PERFORMANCE BUDGET — not advisory.
   -----------------------------------------------------------------------------
   `backdrop-filter` re-samples the backdrop region on every paint inside that
   region. The cost scales with AREA, not with element count, and it compounds
   with scrolling because a scroll invalidates the sampled region.

   Budget: at most SIX `.lv-glass` elements composited at once, and their
   combined area must not exceed ~35% of the viewport. The admin shell as
   specified spends: rail (1) + top bar (1) + at most one floating surface
   (palette OR dropdown OR toast) = 3. The builder spends: top bar + navigator
   + inspector + library drawer = 4.

   If a design needs a seventh, it is using glass on a work surface — go back
   to .impeccable.md §3.

   `contain: paint` is applied to the two always-on chrome surfaces in
   components.css so their backdrop sampling is bounded to their own box.
   ========================================================================== */

/* =============================================================================
   Leadværk — LAYER 4: COMPONENT TOKENS + BASE PRIMITIVES
   -----------------------------------------------------------------------------
   Component-scoped custom properties (so a component can be re-tuned without
   touching semantic roles), plus the small set of base primitives every one of
   the ~95 admin pages composes from.

   Everything here is class-based and framework-free — the same rules serve the
   React admin, the Astro public site, and the `saas` theme. No component in
   this system may declare a raw colour; it declares a component token here and
   maps it to a semantic role.
   ========================================================================== */

:root {
  /* ── Button ─────────────────────────────────────────────────────────────
     Height 44px at default size: WCAG 2.5.5 target size, and the reason the
     padding is 13px rather than the 12px that would look tidier. */
  --lv-btn-height: 44px;
  --lv-btn-height-sm: 36px;
  --lv-btn-height-lg: 52px;
  --lv-btn-padding-x: 24px;
  --lv-btn-padding-x-sm: 16px;
  --lv-btn-radius: var(--lv-radius-pill);
  --lv-btn-font: var(--lv-weight-bold) var(--lv-text-sm) / 1 var(--lv-font-ui);
  --lv-btn-case: none;
  --lv-btn-variant: normal;
  --lv-btn-tracking: var(--lv-tracking-label);
  --lv-btn-border: 0;
  --lv-btn-halo-opacity: 0.48;
  --lv-btn-halo-opacity-hover: 0.85;
  /* THE HOVER GRAMMAR (operator defect, dennis-niess round 2): the whole
     `.lv-btn` family transitioned `transform`/`box-shadow`/`background-color`
     but every *-hover token a device leaves unset defaulted to an IDENTICAL
     copy of its resting value — `none` here, `var(--lv-btn-primary-shadow)`
     below — so a button with no theme device opinion (most of them) animated
     into exactly what it already looked like. `translateY(-1px)` is the
     shared lift every solid device now gets by default; a theme's own device
     in packages/themes/src/buttons.mjs can still override it per voice, this
     is only the floor. `--lv-btn-ink-wash` is the shared "colour-mix with
     ink" darken — an INSET box-shadow film rather than a background-color
     mix, because `--lv-btn-primary-surface` is a gradient a flat colour-mix
     cannot darken, and one wash works identically over a gradient or a flat
     fill. */
  --lv-btn-hover-transform: translateY(-1px);
  --lv-btn-ink-wash: color-mix(in oklab, var(--lv-text-primary) 10%, transparent);
  /* The `ruled` device's hover wash — a `::before` that scales in from the
     left. Inert by default (scale 0 both states, transparent fill), so every
     device that never sets `--lv-btn-invert-scale-hover` renders nothing:
     no extra paint, no stacking-context participation beyond what `::after`
     (the halo) already proves safe (theme-button-voices-spec.md "Gates" §2 —
     mirrors the same isolation:auto escape the halo relies on). */
  --lv-btn-invert-fill: transparent;
  --lv-btn-invert-scale: 0;
  --lv-btn-invert-scale-hover: 0;
  /* PRIMARY — today's gloss-over-ramp, as values rather than literals, so a
     theme's device can replace the material without touching the selector
     (theme-button-voices-spec.md "The variable contract"). */
  --lv-btn-primary-surface:
    linear-gradient(178deg, rgb(255 255 255 / 0.34) 0%, rgb(255 255 255 / 0) 48%),
    var(--lv-ramp);
  --lv-btn-primary-surface-hover: var(--lv-btn-primary-surface);
  --lv-btn-primary-ink: var(--lv-text-on-brand);
  --lv-btn-primary-border: 0;
  --lv-btn-primary-shadow:
    inset 0 1px 0 0 rgb(255 255 255 / 0.48),
    inset 0 -1px 0 0 rgb(0 0 0 / 0.18),
    0 2px 5px rgb(var(--lv-shadow-tint) / 0.16),
    0 12px 26px -10px color-mix(in oklab, var(--lv-brand) 78%, transparent);
  /* The ink wash layers ON TOP of the resting shadow list (a `var()` inside a
     `box-shadow` value list is just another comma-separated entry), so the
     gradient itself never has to be touched — safe under any device's own
     `--lv-btn-primary-surface`. */
  --lv-btn-primary-shadow-hover: var(--lv-btn-primary-shadow), inset 0 0 0 999px var(--lv-btn-ink-wash);
  /* SOLID SECONDARY — today's `.lv-btn--solid` values, as a device-settable
     "secondary voice" (spec table row `--lv-btn-solid-*`).

     INK AND SURFACE ARE ONE TOKEN PAIR, RESOLVED IN THE SAME SCOPE. Both
     custom properties substitute their var()s HERE, at :root — so the pair
     freezes together: page surface, page ink. The selector used to pair this
     frozen surface with a USE-SITE `var(--lv-text-primary)` instead, and any
     context that re-points the text roles without re-pointing the surface
     (the photo hero's scrim collapse in open.pitch — unlike the band, which
     re-points both) split the pair: measured on the live dennis-niess heroes,
     `.lv-btn--solid` computed oklch(0.985) ink on oklch(0.995) surface —
     1.02:1, an invisible secondary CTA on every hero sitewide (FINAL-VERDICT
     defect 3). A device that makes the solid voice TRANSPARENT re-points
     `--lv-btn-solid-ink: currentcolor` and follows the context ink again
     (buttons.mjs `ruled`). Gated: tools/contrast/pairs.mjs
     `btn-solid-ink-on-solid-surface`. */
  --lv-btn-solid-surface: var(--lv-surface);
  --lv-btn-solid-ink: var(--lv-text-primary);
  --lv-btn-solid-border: 0;
  --lv-btn-solid-shadow: inset 0 0 0 1px var(--lv-line-control), var(--lv-lift-1);
  /* Darken (ink mixed into the raised surface) AND lift (the stronger
     elevation step) — `--lv-surface-raised` alone read too close to resting
     to land as a hover at all. */
  --lv-btn-solid-surface-hover: color-mix(in oklab, var(--lv-text-primary) 6%, var(--lv-surface-raised));
  --lv-btn-solid-shadow-hover: inset 0 0 0 1px var(--lv-line-control), var(--lv-lift-2);
  /* What the halo is MADE of, as a token rather than a literal, so the theme
     plane can answer the question a customer site asks and the admin does not:
     whose light is this? Here — the admin, and anything that does not set it —
     it stays the refraction spectrum, which is the platform's own signature
     (.impeccable.md §4, derive.mjs's note on why --lv-spec-* never adapts).
     A tenant's public site overrides it with their brand ramp: the rim on
     glass stays ours, the light under their button is theirs. */
  --lv-btn-halo: linear-gradient(100deg, var(--lv-spec-3), var(--lv-spec-1), var(--lv-spec-3));

  /* ── Field ──────────────────────────────────────────────────────────────
     Fields inside GLASS chrome (search in a top bar, the command palette) use
     `--lv-field-bg-glass`. Fields inside a FORM are opaque, always. */
  --lv-field-height: 44px;
  --lv-field-height-sm: 38px;
  --lv-field-padding-x: 14px;
  --lv-field-radius: var(--lv-radius-sm);
  --lv-field-radius-pill: var(--lv-radius-pill);
  --lv-field-bg: var(--lv-surface);
  --lv-field-border: var(--lv-line-control);
  --lv-field-border-hover: var(--lv-text-tertiary);
  /* G22 — the focus ring is a FIELD token, not a re-declaration of
     `--lv-focus-ring`. It resolves to that same gated value today (the
     universal ring is already measured at 3:1 against surface/canvas/glass
     — `focus-ring-on-surface`, `focus-ring-on-canvas`, `focus-ring-on-glass`
     in `tools/contrast/pairs.mjs`), so no new pair is owed for the default.
     A theme that ever wants a field ring in its own accent overrides ONLY
     this token — never `--lv-focus-ring` itself, which every other
     `:focus-visible` outline in the system still reads — and owes
     `tools/contrast/pairs.mjs` a pair the day it does, per §6 of
     `.impeccable.md`.

     `--lv-field-focus-ring-width: 3px` and `--lv-field-focus-ring-alpha: 25%`
     stood here until 2026-08-18 and are gone. They copied the reference
     calibration (`design-reference/dennis-niess-reference.html`'s
     `.field input:focus-visible{ box-shadow:0 0 0 3px oklch(67% .115 68 / .25) }`)
     without ever measuring it — .impeccable.md §5.3, "a colour claim without a
     computed value is not a claim". Measured, a 25%-alpha halo composites to
     1.40–1.54:1 against the ground in all ten themes that render a field, and
     the 1px inset hairline it accompanied moves by 8% lightness. That is a
     focus state a sighted keyboard user cannot find, and it is what
     `tools/immersive-design/focus-appearance.mjs` now measures in rendered
     pixels rather than in declared values. The ring below is the audited
     `--lv-field-focus-ring` at the universal `--lv-focus-width`, so a field
     gets the same indicator as every other control in the system (§5.7, "one
     of everything") and inherits its already-gated 3:1 pairs. */
  --lv-field-focus-ring: var(--lv-focus-ring);

  /* ── Table — opaque, dense, no card boxes, rules do the separating ────── */
  --lv-table-row-height: 52px;
  --lv-table-row-height-compact: 40px;
  --lv-table-cell-padding-x: 12px;
  --lv-table-head-font: var(--lv-weight-semibold) var(--lv-text-xs) / 1 var(--lv-font-ui);
  --lv-table-row-hover: color-mix(in oklab, var(--lv-brand) 6%, var(--lv-surface));
  --lv-table-row-selected: color-mix(in oklab, var(--lv-brand) 11%, var(--lv-surface));

  /* ── Table matrix — `.lv-table--matrix`, the opt-in comparison/spec-table
     dressing (W4 hardening). `.lv-table` itself is UNCHANGED: every one of
     these is a fresh custom property a theme's `ornament.css` may re-VALUE
     (never re-select — `packages/themes/src/contract.mjs`'s component-plane
     boundary), so a theme tunes band tone, zebra strength, rule weight and
     head case entirely through these names, with sane cross-theme defaults
     read straight off the semantic layer already loaded here. */
  --lv-table-matrix-border: 1px solid var(--lv-line);
  --lv-table-matrix-radius: var(--lv-radius-lg);
  --lv-table-band-bg: var(--lv-surface-sunken);
  --lv-table-band-transform: uppercase;
  --lv-table-band-tracking: var(--lv-tracking-eyebrow);
  --lv-table-zebra-bg: var(--lv-surface-sunken);
  --lv-table-rule-block: 1px solid var(--lv-line);
  --lv-table-rule-inline: 0;
  --lv-table-highlight-bg: var(--lv-brand-soft);
  --lv-table-highlight-rail: 1px solid var(--lv-brand);
  --lv-table-sticky-shadow: 1px 0 0 var(--lv-line);
  --lv-table-num-font-family: var(--lv-font-mono);
  /* Density presets read as `padding-block padding-inline` pairs so a theme
     can widen columns without touching row height, or the reverse. */
  --lv-table-density-compact: var(--lv-space-2) var(--lv-space-3);
  --lv-table-density-regular: var(--lv-space-3) var(--lv-space-4);
  --lv-table-density-airy: var(--lv-space-4) var(--lv-space-5);

  /* ── Rail / top bar — the two always-on glass surfaces ──────────────── */
  --lv-rail-width: 264px;
  --lv-rail-width-collapsed: 72px;
  --lv-topbar-height: 60px;

  /* ── Badge ──────────────────────────────────────────────────────────── */
  --lv-badge-height: 22px;
  --lv-badge-padding-x: 11px;

  /* ── Meter ──────────────────────────────────────────────────────────── */
  --lv-meter-height: 7px;
}

/* =============================================================================
   BASE
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body {
  margin: 0;
  min-height: 100dvh;
  font-family: var(--lv-font-ui);
  font-size: var(--lv-text-md);
  line-height: var(--lv-leading-normal);
  color: var(--lv-text-primary);
  background-color: var(--lv-canvas);
  /* The three atmospheric washes. Alpha is a token, not a literal, because it
     is what sets --lv-canvas-worst — the backdrop the contrast gate measures
     everything against (.impeccable.md §6). */
  background-image:
    radial-gradient(1150px 640px at 10% -8%,
      rgb(from var(--lv-canvas-wash-a) r g b / var(--lv-canvas-wash-alpha)), transparent 62%),
    radial-gradient(950px 580px at 94% 2%,
      rgb(from var(--lv-canvas-wash-b) r g b / var(--lv-canvas-wash-alpha)), transparent 62%),
    radial-gradient(780px 520px at 58% 106%,
      rgb(from var(--lv-canvas-wash-c) r g b / calc(var(--lv-canvas-wash-alpha) * 0.85)), transparent 60%);
  background-attachment: fixed;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
  font-family: var(--lv-font-ui);
  font-weight: var(--lv-weight-heading);
  letter-spacing: var(--lv-tracking-heading);
  line-height: var(--lv-leading-tight);
  margin: 0;
  text-wrap: balance;
}

p { margin: 0; max-width: var(--lv-measure); }
a { color: inherit; }

/* Every figure in the product. Tabular so a changing number does not reflow. */
.lv-num {
  font-family: var(--lv-font-mono);
  font-feature-settings: 'tnum' 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--lv-tracking-num);
}

.lv-eyebrow {
  font: var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-ui);
  letter-spacing: var(--lv-tracking-eyebrow);
  /* The theme's eyebrow case — see the same rule on .lv-sec__eyebrow in
     packages/registry/styles/section.css. The two eyebrow classes must move
     together or a page sets its section eyebrows in one case and its inline
     ones in another. */
  text-transform: var(--lv-display-case, uppercase);
  font-variant-caps: var(--lv-display-variant, normal);
  color: var(--lv-text-tertiary);
}

.lv-muted { color: var(--lv-text-secondary); }
.lv-quiet { color: var(--lv-text-tertiary); }
.lv-rule  { height: 1px; background: var(--lv-line); border: 0; margin: 0; }

/* Visually hidden but present in the DOM. Load-bearing: any node carrying a
   `data-edit*` attribute must use this instead of `display: none`, or the page
   builder loses the edit target. */
.lv-vh {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* =============================================================================
   FOCUS — one ring, every interactive element, `:focus-visible` only.
   The demo shipped this on `.btn` and nothing else; nav links, tree nodes,
   palette rows, segmented buttons, tabs, swatches and library cards all had
   no visible focus at all (.impeccable.md §7 item 7).
   ========================================================================== */

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
  border-radius: var(--lv-radius-sm);
}

/* On a glass surface the ring can land on a light backdrop; a companion
   ring in the surface colour guarantees the 3:1 boundary either way. */
.lv-glass :where(a, button, input, [tabindex]):focus-visible {
  box-shadow: 0 0 0 calc(var(--lv-focus-width) + var(--lv-focus-offset)) var(--lv-surface);
}

/* =============================================================================
   BUTTON
   ========================================================================== */

.lv-btn {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--lv-space-2);
  min-height: var(--lv-btn-height);
  padding-inline: var(--lv-btn-padding-x);
  border: var(--lv-btn-border);
  border-radius: var(--lv-btn-radius);
  font: var(--lv-btn-font);
  text-transform: var(--lv-btn-case);
  font-variant-caps: var(--lv-btn-variant);
  letter-spacing: var(--lv-btn-tracking);
  color: var(--lv-text-primary);
  cursor: pointer;
  /* NOT `white-space: nowrap` (operator review, 2026-09-11). A button is
     shrink-to-fit, so its preferred size is already its max-content size and it
     stays on one line wherever one line fits — which is every case `nowrap` was
     protecting. What `nowrap` additionally did was make the label's MIN-content
     equal to the whole label, so a three-word Danish call to action on a theme
     with a wide UI face ("Bed om tilbud" on `design`: 197px) could not fit a
     190px column at 360px and pushed the form's whole track past its card.
     `normal` sets the floor at the longest single word instead, so the control
     wraps in the one situation where the alternative was overflowing the page.
     `text-wrap: balance` keeps that rare second line from being one orphan
     word. `max-inline-size: 100%` is the backstop for a label with no space in
     it at all. Measured: act.request-quote/design/360, 26 child-past-parent
     violations → 0, and the 1280 rendering is byte-identical (201×44). */
  white-space: normal;
  text-wrap: balance;
  max-inline-size: 100%;
  transition: transform var(--lv-dur-fast) var(--lv-ease),
              box-shadow var(--lv-dur-state) var(--lv-ease),
              background-color var(--lv-dur-state) var(--lv-ease),
              color var(--lv-dur-state) var(--lv-ease);
}
/* Same press value as `.lv-affordance-lift`/`.lv-link--arrow`
   (packages/registry/styles/section.css) — one press grammar everywhere a
   control presses, not a button-specific number. */
.lv-btn:active { transform: scale(0.97); }
.lv-btn[disabled],
.lv-btn[aria-disabled='true'] {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}

/* PRIMARY — carries the mark's own gradient (.impeccable.md §4).
   `--lv-ramp`'s light terminal is capped so `--lv-text-on-brand` clears
   4.5:1 at the brightest point of the gradient. Gated in pairs.mjs as
   `on-brand vs ramp-terminal`. */
.lv-btn--primary {
  /* THE HALO MUST PAINT BEHIND THE BUTTON, NOT OVER IT.
     `.lv-btn` sets `isolation: isolate`, which makes the button a stacking
     context; inside one, a `z-index: -1` pseudo-element paints ABOVE the
     element's own background and below its text. So the halo — a turquoise/
     azure gradient at opacity 0.48, blurred 11px, `inset: -3px` — was laid
     across the whole face of every primary button, on top of `--lv-ramp`.
     Measured on `raw` (brand hue 18, a deep red-orange): the button's centre
     sampled (108,166,217), a washed blue. With the isolation released it
     samples (147,123,198) and the red gradient is visible. Every one of the
     sixteen themes had the same cyan CTA for this one reason.

     `isolation: auto` lets the pseudo escape to the nearest ancestor stacking
     context, where a bloom belongs — light landing on the surface *under* the
     control (.impeccable.md §4). `.lv-btn--glass` keeps the isolation it
     needs: its `::after` is a 1px masked rim that has to sit above its own
     translucent fill, which is the opposite requirement. */
  isolation: auto;
  color: var(--lv-btn-primary-ink);
  background: var(--lv-btn-primary-surface);
  border: var(--lv-btn-primary-border);
  box-shadow: var(--lv-btn-primary-shadow);
}
.lv-btn--primary:hover {
  background: var(--lv-btn-primary-surface-hover);
  box-shadow: var(--lv-btn-primary-shadow-hover);
  --lv-btn-invert-scale: var(--lv-btn-invert-scale-hover);
}
/* `:active` (below, universal — RULES: active behaviour stays untouched by a
   device) must always win over a device's hover press/translate, so the
   hover transform is scoped OUT of the active state rather than relying on
   source order or specificity to sort it out. Shared across every SOLID
   voice (primary/solid/danger) — the filled-background family that "lifts"
   on hover, as opposed to `--quiet`/`--glass`, which fill in place instead
   of moving (ghost/outline never lifts off the page it sits on). */
/* Hover-only MOTION is pointer-gated (the same clause prove.people's linked
   index states as "POINTER PREVIEW IS POINTER-ONLY"): on a touch screen
   `:hover` latches after a tap, and a button left hanging 1px off the page is
   a stuck state, not an affordance. Only the transform is gated — the
   colour/shadow hover states above stay, because a latched tint is harmless
   where a latched translate is not. */
@media (hover: hover) and (pointer: fine) {
  .lv-btn--primary:hover:not(:active),
  .lv-btn--solid:hover:not(:active),
  .lv-btn--danger:hover:not(:active) {
    transform: var(--lv-btn-hover-transform);
  }
}

/* The halo: the same refracted-light idea as the bloom, tuned for a control.
   Opacity is device-controlled (buttons.mjs) — 0 for every device except
   `halo-pill`, which is the platform's own face and keeps today's
   elevation-derived glow (scales.mjs shapeVars()). */
.lv-btn--primary::after {
  content: '';
  position: absolute;
  inset: -3px;
  z-index: -1;
  border-radius: inherit;
  background: var(--lv-btn-halo);
  filter: blur(11px);
  opacity: var(--lv-btn-halo-opacity);
  transition: opacity var(--lv-dur-state) var(--lv-ease);
  pointer-events: none;
}
.lv-btn--primary:hover::after { opacity: var(--lv-btn-halo-opacity-hover); }

@media (prefers-reduced-transparency: reduce), (forced-colors: active) {
  .lv-btn--primary::after { display: none; }
}

/* The `ruled` device's hover wash — a translucent film that scales in from
   the left under UNCHANGED ink text (never an invert: text stays the same
   colour so no new contrast pairing is needed). Shares `.lv-btn--primary`'s
   `isolation: auto` release, so it escapes to the same ancestor stacking
   context the halo already proves paints BEHIND the button's own background
   and content (components.css note above `.lv-btn--primary`) — a second
   `z-index: -1` layer at the same level, ordered by source position, never a
   NEW stacking context of its own (mirrors differentiation.test.mjs's
   isolation assertion). Inert everywhere else: `--lv-btn-invert-scale`
   defaults to 0 in both states. */
.lv-btn--primary::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background-color: var(--lv-btn-invert-fill);
  transform: scaleX(var(--lv-btn-invert-scale));
  transform-origin: left center;
  transition: transform var(--lv-dur-state) var(--lv-ease);
  pointer-events: none;
}
/* Decorative, like the glass rim/bloom (material.css) — the transition goes
   to ~0 but the end state (filled or not) stays correct either way. */
@media (prefers-reduced-motion: reduce) {
  .lv-btn--primary::before { transition-duration: 0.01ms; }
}

/* SECONDARY — glass. Only legitimate inside glass chrome or on the canvas;
   never inside an opaque panel body (use `--quiet` there). */
.lv-btn--glass {
  background: linear-gradient(
    165deg,
    rgb(var(--lv-glass-tint) / calc(var(--lv-glass-alpha) + 0.26)),
    rgb(var(--lv-glass-tint) / var(--lv-glass-alpha))
  );
  backdrop-filter: blur(16px) saturate(180%);
  -webkit-backdrop-filter: blur(16px) saturate(180%);
  box-shadow:
    inset 0 0 0 1px var(--lv-line-control),
    inset 0 1px 0 0 rgb(255 255 255 / var(--lv-glass-edge)),
    var(--lv-lift-1);
}
.lv-btn--glass::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  padding: 1px;
  background: conic-gradient(
    from var(--lv-rim-angle, 205deg),
    var(--lv-spec-1), var(--lv-spec-2), var(--lv-spec-3),
    var(--lv-spec-4), var(--lv-spec-5), var(--lv-spec-1)
  );
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  opacity: 0.42;
  transition: opacity var(--lv-dur-state) var(--lv-ease);
  pointer-events: none;
}
.lv-btn--glass:hover::after { opacity: 0.80; }

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .lv-btn--glass { background: var(--lv-surface); }
}
@media (prefers-reduced-transparency: reduce) {
  .lv-btn--glass {
    background: var(--lv-surface);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .lv-btn--glass::after { display: none; }
}

/* SOLID SECONDARY — the correct secondary inside a form or panel body.
   `--lv-btn-solid-ink`, never a bare text role: the ink must be the token
   that froze WITH the surface (see the token block's own note — the bare
   role is exactly what went white-on-white on every photo hero). */
.lv-btn--solid {
  background: var(--lv-btn-solid-surface);
  color: var(--lv-btn-solid-ink);
  border: var(--lv-btn-solid-border);
  box-shadow: var(--lv-btn-solid-shadow);
}
.lv-btn--solid:hover {
  background: var(--lv-btn-solid-surface-hover);
  box-shadow: var(--lv-btn-solid-shadow-hover);
}

/* TERTIARY */
.lv-btn--quiet {
  background: transparent;
  color: var(--lv-text-secondary);
  box-shadow: none;
  padding-inline: var(--lv-space-4);
}
.lv-btn--quiet:hover {
  color: var(--lv-text-primary);
  background: color-mix(in oklab, var(--lv-brand) 8%, transparent);
}

/* DESTRUCTIVE — the one solid voice that had no hover at all (the operator's
   literal "no hover/active states" complaint): same ink-darken + shadow-token
   lift as `--solid` above, mixed against its own surface/border tokens
   rather than `--lv-line-control`/`--lv-surface-raised`. */
.lv-btn--danger {
  background: var(--lv-bad-surface);
  color: var(--lv-bad-text);
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--lv-bad-text) 40%, transparent);
}
.lv-btn--danger:hover {
  background: color-mix(in oklab, var(--lv-text-primary) 6%, var(--lv-bad-surface));
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--lv-bad-text) 55%, transparent), var(--lv-lift-2);
}

.lv-btn--sm { min-height: var(--lv-btn-height-sm); padding-inline: var(--lv-btn-padding-x-sm); font-size: var(--lv-text-xs); }
.lv-btn--lg { min-height: var(--lv-btn-height-lg); font-size: var(--lv-text-md); }
.lv-btn--block { width: 100%; }
.lv-btn--icon { padding: 0; width: var(--lv-btn-height); height: var(--lv-btn-height); border-radius: var(--lv-radius-md); }
.lv-btn--icon.lv-btn--sm { width: var(--lv-btn-height-sm); height: var(--lv-btn-height-sm); }

/* A small-size button is still a 44px touch target on a coarse pointer. */
@media (pointer: coarse) {
  .lv-btn--sm, .lv-btn--icon.lv-btn--sm { min-height: 44px; min-width: 44px; }
}

/* =============================================================================
   FIELD
   ========================================================================== */

/* Opaque field — the default, and the only one permitted inside a form.

   THE INPUT'S DEFAULT WIDTH IS A MINIMUM, NOT A PREFERENCE (operator review,
   2026-09-11). `act.apply` at 360px: `.lv-field` measured 264px inside a row
   measuring 200px — a 64px child-past-parent overhang on 4 of 5 themes, with
   the DOCUMENT not scrolling sideways at all, which is why the 1.0.199 pass
   read it as fixed. A bare `<input>` carries `size="20"`, and its intrinsic
   min-content contribution is those twenty characters (~236px in the UI face)
   plus this rule's own 28px of `padding-inline`. `.lv-field input { min-width:
   0 }` frees the input as a FLEX ITEM and does nothing for that contribution:
   the wrapper is itself a grid item in the renderer's row, `min-width` there is
   `auto`, and the row's single `auto` track is sized to it — 264px inside 200px
   of definite space, overflowing in place.

   `min-inline-size: 0` is what actually lets the wrapper's automatic minimum
   fall below its content, and `max-inline-size: 100%` is the second half of the
   same chain (`.lv-field--file` below carries both for exactly this reason, and
   this is that fix generalised from one modifier to the primitive — the `--file`
   case was never special, it was just the only one that also broke the document
   scroll and so the only one the old probe could see). */
.lv-field {
  display: flex;
  align-items: center;
  gap: var(--lv-space-3);
  min-height: var(--lv-field-height);
  min-inline-size: 0;
  max-inline-size: 100%;
  padding-inline: var(--lv-field-padding-x);
  border-radius: var(--lv-field-radius);
  background: var(--lv-field-bg);
  box-shadow: inset 0 0 0 1px var(--lv-field-border);
  transition: box-shadow var(--lv-dur-state) var(--lv-ease);
}
.lv-field:hover { box-shadow: inset 0 0 0 1px var(--lv-field-border-hover); }
/* The ring is drawn on the WRAPPER, not on the input: `.lv-field` is the box
   the visitor sees as "the field" — the input inside it is transparent, has no
   border of its own, and is inset by `--lv-field-padding-x`, so an outline on
   the input would trace a square rectangle floating inside a rounded control.
   `:focus-within` is what carries it, which also means an affix (a search icon,
   a currency prefix, a unit suffix) is enclosed by the ring rather than left
   outside it.

   `outline`, not `box-shadow`: an outline follows `border-radius`, is never
   painted under a sibling, and is the same mechanism as the universal
   `:focus-visible` rule above — so the field ring cannot drift away from every
   other ring in the product.

   Measured, not asserted: `tools/immersive-design/focus-appearance.mjs`
   screenshots each field unfocused and focused, diffs the rendered pixels, and
   holds the result to WCAG 2.2 SC 2.4.11 — a ≥2px perimeter whose pixels clear
   3:1 against BOTH their own unfocused value and the adjacent ground.
   `packages/themes/test/focus-appearance.test.mjs` pins it.

   `:has(> :is(input, select, textarea))` is not decoration — it is what makes
   this rule mean "a wrapper around a form control" rather than "anything
   wearing the class". `decide.pricing/renderers/pricing-field.astro:103` puts
   `lv-field` on its <section> (a *field of offers*, a different word), so on
   any theme binding that renderer the class matches a whole 1040×958 section
   that already inherits this primitive's flex/min-height/padding/background/
   border by accident — measured on `tide`, and a pre-existing defect this rule
   must not compound by drawing a 2px ring around an entire pricing table.
   Every genuine field wrapper in the registry (act.enquire, act.apply,
   act.comment, act.qualify, act.request-quote, act.schedule, act.subscribe,
   act.transact, act.conversion-panel, browse.locations, open.listing,
   open.scene, decide.compare-live-data) holds its control as a DIRECT child;
   the pricing section holds radios nested inside label rows. The structural
   predicate separates them without either package knowing about the other.
   The collision itself is `decide.pricing`'s to rename. */
.lv-field:has(> :is(input, select, textarea)):focus-within {
  box-shadow: inset 0 0 0 1px var(--lv-field-focus-ring);
  outline: var(--lv-focus-width) solid var(--lv-field-focus-ring);
  outline-offset: var(--lv-focus-offset);
}
/* `inline-size: 100%` IS THE ONE THAT DOES THE WORK, and `min-width: 0` alone
   never could. An `<input>` with no `size` attribute is `size="20"`, and twenty
   characters of the UI face is a SPECIFIED SIZE SUGGESTION — 236px here — which
   is what the control contributes to every intrinsic measurement its ancestors
   make. `min-width` bounds the control's own USED width; it is not consulted
   when the wrapper reports its min-content size, so `.lv-field` reported
   236 + 28 = 264px inside a 200px row and the whole column sized to the
   overflow. A percentage `inline-size` cannot be resolved during intrinsic
   sizing and contributes zero instead, which is precisely the behaviour wanted:
   the field asks for whatever the row can give it. `.lv-field select` two rules
   below has carried `width: 100%` since it was written, for the same reason and
   without the reason being stated — this makes the three controls agree.
   Measured (operator review 2026-09-11): `act.subscribe` restaurant/360 track
   264px → 200px, 11 child-past-parent violations → 0. */
.lv-field input,
.lv-field textarea {
  flex: 1;
  min-width: 0;
  min-inline-size: 0;
  inline-size: 100%;
  border: 0;
  background: transparent;
  outline: none;
  font: var(--lv-weight-regular) var(--lv-text-sm) / 1.5 var(--lv-font-ui);
  color: var(--lv-text-primary);
}
.lv-field input::placeholder,
.lv-field textarea::placeholder { color: var(--lv-text-tertiary); }
.lv-field--invalid { box-shadow: inset 0 0 0 1px var(--lv-bad-text); }
.lv-field--textarea { align-items: stretch; padding-block: var(--lv-space-3); }

/* ── File field ───────────────────────────────────────────────────────────────
   The one input the system had no answer for. `act.apply` wrapped its text
   fields in `.lv-field` and left the file input bare with two local
   declarations, so a form built entirely from this system had one control in
   the browser's own grey chrome sitting between two pill-shaped fields.
   The trim is the field; `::file-selector-button` carries the button role,
   because the native button is the accessible, keyboard-reachable control and
   replacing it with a styled `<label>` costs that for nothing. Both vendor
   spellings are written out: `::file-selector-button` is the standard and
   `::-webkit-file-upload-button` is what Safari still answers to, and a
   selector list containing one unknown pseudo-element is dropped WHOLE by the
   parser — so these cannot be combined into one rule. */
/* THE ONE CONTROL WITH A WIDTH OF ITS OWN (component-audit-20260910).
   `act.apply` scrolled sideways at 360px on 16 of 17 themes — atelier +35px,
   simple +68px, leadvaerk-custom +72px, saas +76px — and the amount tracked the
   theme's UI face rather than its layout, which is the tell. A file input's
   shadow content (`::file-selector-button` plus the browser's own "Ingen fil
   valgt" text node) sets an INTRINSIC minimum that `min-width: 0` does not
   reach: `min-width` frees the flex ITEM to shrink, and the shadow tree is not
   the flex item. `max-inline-size: 100%` is what actually caps it, and the
   wrapper needs `min-inline-size: 0` for the same reason `.lv-sec__inner` does
   — `.lv-field` is itself a grid item in `.lv-form`, and an item's automatic
   minimum is its min-content size unless something says otherwise. Both ends of
   the chain, or the overflow simply moves up one box. */
.lv-field--file {
  padding-inline: var(--lv-space-2);
  padding-block: var(--lv-space-2);
  min-inline-size: 0;
  max-inline-size: 100%;
}
.lv-field--file input[type='file'] {
  flex: 1;
  min-width: 0;
  min-inline-size: 0;
  max-inline-size: 100%;
  font: var(--lv-weight-regular) var(--lv-text-sm) / 1.5 var(--lv-font-ui);
  color: var(--lv-text-secondary);
}
.lv-field--file input[type='file']::file-selector-button {
  margin-inline-end: var(--lv-space-3);
  padding: var(--lv-space-2) var(--lv-space-4);
  border: 0;
  border-radius: var(--lv-radius-pill);
  font: var(--lv-weight-semibold) var(--lv-text-sm) / 1.2 var(--lv-font-ui);
  color: var(--lv-text-primary);
  background: var(--lv-surface-raised);
  box-shadow: inset 0 0 0 1px var(--lv-field-border);
  cursor: pointer;
  transition: background-color var(--lv-dur-state) var(--lv-ease);
}
.lv-field--file input[type='file']::-webkit-file-upload-button {
  margin-inline-end: var(--lv-space-3);
  padding: var(--lv-space-2) var(--lv-space-4);
  border: 0;
  border-radius: var(--lv-radius-pill);
  font: var(--lv-weight-semibold) var(--lv-text-sm) / 1.2 var(--lv-font-ui);
  color: var(--lv-text-primary);
  background: var(--lv-surface-raised);
  box-shadow: inset 0 0 0 1px var(--lv-field-border);
  cursor: pointer;
}
.lv-field--file input[type='file']:hover::file-selector-button { background: var(--lv-field-bg); }
.lv-field textarea { resize: vertical; }
.lv-field select { width: 100%; border: 0; background: transparent; color: var(--lv-text-primary); font: var(--lv-weight-regular) var(--lv-text-sm) / 1.5 var(--lv-font-ui); }
/* ── Form layout — twelve columns, and the field declares what its data needs ─
   Every field was full width regardless of what it held: a three-character
   currency code got the same box as an affiliate URL, which is what made every
   form in the CMS read as one undifferentiated column.

   Three properties make this safe to roll across ~29 forms:

   1. `.lv-form > *` spans the full row, so a form that declares NOTHING renders
      exactly as it did before. Narrowing is opt-in, per field, at the call site.
   2. Adjacency is free. A `third` followed by a `quarter` lands on one row
      because the tracks are there — price and currency read as one money
      control with no wrapper element and no name change.
   3. The collapse is a CONTAINER query, not a viewport one. The same form
      renders in a 22rem drawer and on a full page; only the form's own inline
      size decides whether the columns survive. */
.lv-form {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  /* Row gap wider than column gap: that difference is what reads as columns
     rather than as a wrapped list. */
  gap: var(--lv-space-5) var(--lv-space-4);
  container-type: inline-size;
}
.lv-form > * { grid-column: 1 / -1; }
.lv-form-field { display: grid; gap: var(--lv-space-2); align-content: start; }
.lv-form-field--quarter    { grid-column: span 3; }
.lv-form-field--third      { grid-column: span 4; }
.lv-form-field--half       { grid-column: span 6; }
.lv-form-field--two-thirds { grid-column: span 8; }
.lv-form-field--full       { grid-column: 1 / -1; }
/* Two honest degradations, both measured against the track a `quarter` gets.
   At 30rem a quarter track is ~110px — under a currency select with its
   chevron — so below that the row goes two-up and the fine distinctions
   collapse into it. Below 20rem (a `sm` drawer, a phone held upright) a row of
   any kind is a lie and everything is full width. */
@container (max-width: 30rem) {
  .lv-form > .lv-form-field--quarter,
  .lv-form > .lv-form-field--third,
  .lv-form > .lv-form-field--half { grid-column: span 6; }
  .lv-form > .lv-form-field--two-thirds { grid-column: 1 / -1; }
}
@container (max-width: 20rem) {
  .lv-form > .lv-form-field { grid-column: 1 / -1; }
}
/* A band, not a panel — hairline and rhythm, no box. Its children sit side by
   side while they fit and stack when they do not; that is the whole behaviour.
   First-child suppression: a rule at the very top of a form separates nothing. */
.lv-form-group {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: var(--lv-space-3) var(--lv-space-4);
  padding-top: var(--lv-space-4);
  border-top: 1px solid var(--lv-line);
}
.lv-form-group:first-child { padding-top: 0; border-top: 0; }
.lv-form-field__label { font-size: var(--lv-text-sm); font-weight: var(--lv-weight-semibold); }
.lv-form-field__helper { color: var(--lv-text-secondary); font-size: var(--lv-text-xs); }
.lv-form-field__error { color: var(--lv-bad-text); font-size: var(--lv-text-xs); }
.lv-form-field--invalid .lv-form-field__label { color: var(--lv-bad-text); }
/* A code or a figure is set in the mono face wherever it appears (§4). The
   controls set `font` as a shorthand, which resets family, so the family has to
   be restated here rather than inherited from the `.lv-num` wrapper. */
.lv-field.lv-num input,
.lv-field.lv-num select { font-family: var(--lv-font-mono); font-feature-settings: 'tnum' 1; letter-spacing: var(--lv-tracking-num); }
.lv-select { position: relative; }
.lv-select::after {
  content: '⌄';
  position: absolute;
  right: var(--lv-field-padding-x);
  pointer-events: none;
  color: var(--lv-text-tertiary);
}
.lv-select select { appearance: none; padding-right: var(--lv-space-5); cursor: pointer; }
.lv-site-switcher {
  display: flex;
  align-items: center;
  min-height: var(--lv-field-height);
  padding-inline: var(--lv-field-padding-x);
  border-radius: var(--lv-field-radius);
  background: var(--lv-field-bg);
  box-shadow: inset 0 0 0 1px var(--lv-field-border);
}
.lv-site-switcher select { width: 100%; border: 0; background: transparent; color: var(--lv-text-primary); font: var(--lv-weight-medium) var(--lv-text-sm) / 1.5 var(--lv-font-ui); }
.lv-check, .lv-toggle-field { display: flex; align-items: center; gap: var(--lv-space-3); }
.lv-check input { width: 18px; height: 18px; accent-color: var(--lv-brand); }
.lv-toggle-field__label { font-size: var(--lv-text-sm); font-weight: var(--lv-weight-semibold); }
.lv-toggle-field__description { color: var(--lv-text-secondary); font-size: var(--lv-text-xs); }

/* Glass field — ONLY inside glass chrome: the top-bar search, the command
   palette input, the builder inspector. Never in a form. */
.lv-field--glass {
  background: linear-gradient(
    165deg,
    rgb(var(--lv-glass-tint) / calc(var(--lv-glass-alpha) + 0.30)),
    rgb(var(--lv-glass-tint) / calc(var(--lv-glass-alpha) + 0.06))
  );
  backdrop-filter: blur(16px) saturate(170%);
  -webkit-backdrop-filter: blur(16px) saturate(170%);
  box-shadow:
    inset 0 0 0 1px var(--lv-line-control),
    inset 0 1px 0 0 rgb(255 255 255 / var(--lv-glass-edge)),
    inset 0 2px 5px 0 rgb(var(--lv-glass-under) / 0.08);
}
@media (prefers-reduced-transparency: reduce) {
  .lv-field--glass {
    background: var(--lv-surface);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

/* =============================================================================
   TOGGLE — a real <button role="switch">, keyboard-operable.
   ========================================================================== */

.lv-toggle {
  position: relative;
  width: 52px; height: 30px;
  flex: none;
  border-radius: var(--lv-radius-pill);
  cursor: pointer;
  border: 1px solid var(--lv-line-control);   /* 3:1 boundary in the OFF state */
  background: var(--lv-surface-sunken);
  transition: background-color var(--lv-dur-state) var(--lv-ease),
              border-color var(--lv-dur-state) var(--lv-ease);
}
.lv-toggle::after {
  content: '';
  position: absolute;
  top: 2px; left: 2px;
  width: 24px; height: 24px;
  border-radius: 50%;
  background: var(--lv-surface);
  box-shadow: 0 1px 2px rgb(var(--lv-shadow-tint) / 0.22),
              0 4px 8px -2px rgb(var(--lv-shadow-tint) / 0.28);
  transition: transform var(--lv-dur-state) var(--lv-ease);
}
.lv-toggle[aria-checked='true'] {
  background-image: var(--lv-ramp);
  border-color: transparent;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.4),
              0 4px 14px -4px color-mix(in oklab, var(--lv-brand) 65%, transparent);
}
.lv-toggle[aria-checked='true']::after { transform: translateX(22px); }

@media (pointer: coarse) {
  /* The visual switch stays 52×30; the hit area grows to 44px. */
  .lv-toggle { position: relative; }
  .lv-toggle::before {
    content: '';
    position: absolute;
    inset: -7px -0px;
    min-height: 44px;
  }
}

/* =============================================================================
   BADGE
   ========================================================================== */

.lv-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: var(--lv-badge-height);
  padding-inline: var(--lv-badge-padding-x);
  border-radius: var(--lv-radius-pill);
  font: var(--lv-weight-bold) var(--lv-text-xs) / 1.4 var(--lv-font-ui);
  color: var(--lv-text-secondary);
  background: var(--lv-surface-raised);
  box-shadow: inset 0 0 0 1px var(--lv-line);
}
.lv-badge--ok   { color: var(--lv-ok-text);   background: var(--lv-ok-surface);   box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--lv-ok-text) 38%, transparent); }
.lv-badge--warn { color: var(--lv-warn-text); background: var(--lv-warn-surface); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--lv-warn-text) 42%, transparent); }
.lv-badge--bad  { color: var(--lv-bad-text);  background: var(--lv-bad-surface);  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--lv-bad-text) 38%, transparent); }
/* WAVE2 W2a — `--lv-badge-tier-bg`/`--lv-badge-tier-ink` (contract.mjs
   `THEME_LAYER_VARS`), defaulting to `--lv-highlight`/`--lv-accent` (today's
   pair). Themes may not redefine `--lv-highlight`/`--lv-accent` themselves
   (a customer may pin either from /design/farver, and `accent-on-highlight`
   in tools/contrast/pairs.mjs measures that frozen pair) — these two levers
   let a theme give the TIER badge specifically its own fill/ink without
   touching the shared roles every other highlight-coloured surface reads. */
.lv-badge--tier { color: var(--lv-badge-tier-ink, var(--lv-accent)); background: var(--lv-badge-tier-bg, var(--lv-highlight)); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--lv-badge-tier-ink, var(--lv-accent)) 40%, transparent); }

/* The status dot is decoration; the badge's TEXT carries the state, so a
   colour-blind user never depends on the dot. */
.lv-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }

/* =============================================================================
   TABLE — opaque, dense, rules not boxes (.impeccable.md §3 and §5.5)
   ========================================================================== */

.lv-table { width: 100%; border-collapse: collapse; background: var(--lv-surface); }
.lv-table th {
  text-align: left;
  font: var(--lv-table-head-font);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--lv-text-tertiary);
  padding: 0 var(--lv-table-cell-padding-x) var(--lv-space-3);
  white-space: nowrap;
}
.lv-table td {
  padding: var(--lv-space-3) var(--lv-table-cell-padding-x);
  border-top: 1px solid var(--lv-line);
  font-size: var(--lv-text-sm);
  vertical-align: middle;
  height: var(--lv-table-row-height);
}
.lv-table tbody tr:hover td { background: var(--lv-table-row-hover); }
.lv-table tbody tr[aria-selected='true'] td { background: var(--lv-table-row-selected); }
.lv-table td:first-child, .lv-table th:first-child { padding-left: 0; }
.lv-table td:last-child,  .lv-table th:last-child  { padding-right: 0; text-align: right; }
.lv-table--compact td { height: var(--lv-table-row-height-compact); padding-block: var(--lv-space-2); }

/* Tables scroll inside their own container; the page body never scrolls
   sideways.

   `position: relative` is load-bearing, not decoration. `overflow-x: auto`
   clips a scroller's IN-FLOW descendants, but an absolutely positioned one is
   clipped only by an ancestor that is also its containing block — and a
   `position: static` scroller is not. Every wide table in this registry
   carries `.lv-vh` labels ("Tageftersyn: inkluderet"), which are
   `position: absolute`; at 390px their static position sits 200–500px past
   the viewport, so they escaped the scroller and set `documentElement`'s
   scroll width while `body.scrollWidth` still read 390. That is the whole of
   the Phase 13 `horizontal-overflow` failure on the pricing and comparison
   tables: the table was never the offender, its own visually-hidden labels
   were. Making the scroller the containing block clips them with everything
   else. */
.lv-table-scroll { position: relative; overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* =============================================================================
   TABLE MATRIX — `.lv-table--matrix`, opt-in (W4 hardening, .impeccable.md §3
   "tables are never glass" + §5.5 "density is a feature"). `.lv-table` bare
   is UNCHANGED above this point — every admin table keeps its forced
   `white-space: nowrap` / fixed row height / right-ranked last column. This
   modifier is for the registry's comparison/spec/dataset family, which needs
   a containing surface, a shaded header band, zebra, a sticky first column
   and honest wrapping instead.

   Controls are DATA ATTRIBUTES on the `<table>` (`data-density`, `data-zebra`,
   `data-band`, `data-sticky-first`), not modifier classes, because the admin
   panel added in this pass writes them from plain component props
   (`density`/`zebra`/`band`/`stickyFirst`) with no class-name mapping layer.
   Absent an attribute, the table renders the regular/zebra-on/band-on/
   sticky-on defaults — today's shipped look for every existing placement.

   THEMING: every visual knob reads a `--lv-table-*` custom property declared
   in this file's `:root` block. A theme's `ornament.css` may re-VALUE those
   names in its own `:root` override (`packages/themes/src/contract.mjs` —
   the component plane owns this selector, so a theme may never write
   `.lv-table--matrix` itself) to get its own band tone, rule weight, zebra
   strength or head case without touching a single selector here. ========== */

.lv-table-scroll:has(> .lv-table--matrix) {
  border: var(--lv-table-matrix-border);
  border-radius: var(--lv-table-matrix-radius);
  background: var(--lv-surface);
}

.lv-table--matrix { background: var(--lv-surface); }

/* Honest wrapping (§5.5): free text — a criterion label, a comparison
   verdict — must wrap rather than force the table wider than its container,
   so the bare `.lv-table` primitive's nowrap/fixed-height defaults are lifted
   here and density becomes an explicit, readable padding choice instead. */
.lv-table--matrix th,
.lv-table--matrix td {
  white-space: normal;
  height: auto;
  padding: var(--lv-table-density-regular);
  border-block-end: var(--lv-table-rule-block);
  border-inline-end: var(--lv-table-rule-inline);
}
.lv-table--matrix td:last-child, .lv-table--matrix th:last-child { text-align: inherit; }
.lv-table--matrix tr > :last-child { border-inline-end: 0; }

.lv-table--matrix[data-density='compact'] th,
.lv-table--matrix[data-density='compact'] td { padding: var(--lv-table-density-compact); }
.lv-table--matrix[data-density='airy'] th,
.lv-table--matrix[data-density='airy'] td { padding: var(--lv-table-density-airy); }

/* Header band — on by default, `data-band="off"` clears it back to a plain
   ruled head (the `raw`/`gridline` theme personalities want this). */
.lv-table--matrix thead th {
  background: var(--lv-table-band-bg);
  text-transform: var(--lv-table-band-transform);
  letter-spacing: var(--lv-table-band-tracking);
  border-block-end: var(--lv-table-rule-block);
}
.lv-table--matrix[data-band='off'] thead th { background: none; }

/* Zebra — on by default, over DATA rows only; a group/subheader row (marked
   `.lv-table__grouprow` by the renderer) never takes the stripe, exactly like
   `decide.compare-options`' own zebra rule. Covers the row LABEL cell
   (`th:first-child`) too, independent of whether that column is pinned —
   its extra `:nth-child(even):not(.lv-table__grouprow)` clause outweighs the
   sticky rule below on specificity, so `--lv-table-zebra-bg` always wins over
   that rule's opaque floor on even rows regardless of declaration order. */
.lv-table--matrix:not([data-zebra='off']) tbody tr:nth-child(even):not(.lv-table__grouprow) td,
.lv-table--matrix:not([data-zebra='off']) tbody tr:nth-child(even):not(.lv-table__grouprow) th {
  background: var(--lv-table-zebra-bg);
}

/* Sticky first column — on by default; `data-sticky-first="off"` releases it
   for a theme/layout that scrolls as a whole rather than pinning a row label.
   The background here is only the OPAQUE FLOOR a sticky cell needs so page
   content cannot show through it while scrolling — the zebra rule above, a
   later declaration of equal specificity, wins on even rows when zebra is on. */
.lv-table--matrix:not([data-sticky-first='off']) tbody th:first-child,
.lv-table--matrix:not([data-sticky-first='off']) tbody td:first-child {
  position: sticky;
  inset-inline-start: 0;
  background: var(--lv-surface);
  box-shadow: var(--lv-table-sticky-shadow);
}

/* Row emphasis ("this row is you" / a recommended plan row) and column
   highlight (the recommended option's whole column) — the two states the
   comparison and dataset families both need, unified onto one modifier so
   neither has to keep re-deriving `--lv-table-row-selected` locally. */
.lv-table--matrix .is-emphasis td,
.lv-table--matrix .is-emphasis th {
  background: var(--lv-table-row-selected);
  font-weight: var(--lv-weight-semibold);
}
/* WAVE2 W2a — `--lv-table-highlight-rule` (contract.mjs `THEME_LAYER_VARS`),
   default `--lv-brand` (today's bar colour). A theme whose recommended
   column already reads clearly from `--lv-table-highlight-bg`'s tint alone
   (the bars becoming redundant, even muddy, at near-zero brand chroma) may
   set this to `transparent` and keep the tint with no visible rule. */
.lv-table--matrix .is-highlight {
  background: var(--lv-table-highlight-bg);
  box-shadow: inset 1px 0 0 var(--lv-table-highlight-rule, var(--lv-brand)), inset -1px 0 0 var(--lv-table-highlight-rule, var(--lv-brand));
}
.lv-table--matrix thead .is-highlight {
  box-shadow: inset 1px 0 0 var(--lv-table-highlight-rule, var(--lv-brand)), inset -1px 0 0 var(--lv-table-highlight-rule, var(--lv-brand)), inset 0 2px 0 var(--lv-table-highlight-rule, var(--lv-brand));
}
.lv-table--matrix:not(:has(tfoot)) tbody tr:last-child .is-highlight,
.lv-table--matrix tfoot .is-highlight {
  box-shadow: inset 1px 0 0 var(--lv-table-highlight-rule, var(--lv-brand)), inset -1px 0 0 var(--lv-table-highlight-rule, var(--lv-brand)), inset 0 -2px 0 var(--lv-table-highlight-rule, var(--lv-brand));
}

/* Numerals — `.impeccable.md` §4: a number set in the UI face is a bug. Any
   cell holding a measured figure (price, count, date) takes this class.
   Byte-for-byte `.lv-num`'s own declaration (this file, "every figure in the
   product") — kept as its own name inside the table family because the table
   panel and the registry's table components (`prove.dataset`,
   `explain.spec-table`) address it as `.lv-table__num` in their own markup
   and CSS comments; §5.7 "one of everything" is why the four declarations
   are identical rather than one adding a value the other lacks. */
.lv-table__num {
  font-family: var(--lv-table-num-font-family);
  font-feature-settings: 'tnum' 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--lv-tracking-num);
}

/* Verdict chips — icon + colour + word (§2.4, refero/stats-3), lifted out of
   `decide.compare-options`' renderer-scoped styles so `explain.spec-table`
   can share the exact same drawing rather than re-authoring it. The glyph is
   drawn by the component (three silhouettes: check/bar/cross — see
   `compare.astro`'s `MARK_GLYPH`), never by this primitive, because a public
   page must not ship an icon-font's whole set to show three shapes. */
.lv-mark {
  display: inline-flex;
  align-items: center;
  gap: var(--lv-space-2);
  padding: 2px var(--lv-space-3) 2px var(--lv-space-2);
  border-radius: var(--lv-radius-pill);
  font-size: var(--lv-text-sm);
}
.lv-mark__glyph {
  flex: none;
  inline-size: 0.95em;
  block-size: 0.95em;
  /* Inherits the chip's verdict ink — measured by the same pair as the word
     beside it (`.impeccable.md` §5.3: a colour claim without a computed
     value is not a claim). */
  color: currentColor;
}
.lv-mark--good { background: var(--lv-ok-surface);   color: var(--lv-ok-text); }
.lv-mark--okay { background: var(--lv-warn-surface); color: var(--lv-warn-text); }
.lv-mark--bad  { background: var(--lv-bad-surface);  color: var(--lv-bad-text); }

/* Row-group subheader — whisper-caps (§1.3's eyebrow grammar), lifted out of
   `decide.compare-options`' renderer so `explain.spec-table` draws the exact
   same grammar rather than re-authoring it. Spans the table (`colspan`), and
   is excluded from `.lv-table__grouprow`'s own zebra/first-column rules
   above, so a group boundary never flips the stripe rhythm mid-table. */
.lv-table__group {
  padding-block: var(--lv-space-4) var(--lv-space-2);
  text-align: start;
  font: var(--lv-weight-bold) var(--lv-text-2xs) / 1.4 var(--lv-font-ui);
  text-transform: uppercase;
  letter-spacing: var(--lv-tracking-eyebrow);
  color: var(--lv-text-tertiary);
}

/* A table row's compact record identifier. The adjacent title supplies the
   accessible name; this stays decorative so its abbreviation is not repeated. */
.lv-marker-tile {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex: none;
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius-sm);
  background: var(--lv-surface-sunken);
  color: var(--lv-text-secondary);
  font-size: var(--lv-text-2xs);
  font-weight: var(--lv-weight-bold);
}

/* =============================================================================
   METER
   ========================================================================== */

.lv-meter {
  height: var(--lv-meter-height);
  border-radius: var(--lv-radius-pill);
  background: var(--lv-surface-sunken);
  overflow: hidden;
  /* `--lv-line-control`, not `--lv-line`: a meter at 0% is a graphic that
     conveys information (WCAG 1.4.11), so its track boundary needs 3:1 — a
     decorative hairline leaves an empty meter invisible. Gated as
     `meter-track-boundary`. */
  box-shadow: inset 0 0 0 1px var(--lv-line-control);
}
.lv-meter > i {
  display: block;
  height: 100%;
  /* The primitive's own fallback: a meter placed without `--lv-meter-value` on
     the wrapper (Meter.tsx, which sets `width` inline instead — see below)
     still renders full rather than collapsing to nothing. Callers that DO set
     `--lv-meter-value` (prove.rating-summary) get their fill this way; an
     inline `width` on `i` itself, where a caller computes one, wins over this
     regardless — inline style always outranks a class rule. */
  width: var(--lv-meter-value, 100%);
  border-radius: inherit;
  background-image: var(--lv-ramp);
}
.lv-meter--warn > i { background-image: linear-gradient(90deg, var(--lv-warn-text), var(--lv-bad-text)); }

/* =============================================================================
   ALWAYS-ON CHROME — paint containment so backdrop sampling is bounded
   ========================================================================== */

.lv-rail, .lv-topbar { contain: paint; }

/* =============================================================================
   SHARED COMPOSITIONS — these own the stem classes emitted by primitives.
   ========================================================================== */

.lv-tabs { min-width: 0; }
.lv-tabs [role='tabpanel'] { min-width: 0; outline: none; }
/* The `outline: none` above is for the click-focus a tabpanel takes when its
   tab is activated — but at (0,2,0) it also outranked the universal
   `:focus-visible` ring (the `:where()` rule above resolves to (0,1,0)), so a
   keyboard user tabbing INTO the panel had no visible focus at all. Restated
   here with the same tokens as the universal rule, so the panel gets the one
   ring every other control in the system gets (§5.7, "one of everything"). */
.lv-tabs [role='tabpanel']:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
  border-radius: var(--lv-radius-sm);
}
.lv-section { min-width: 0; }
.lv-section--warn { box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--lv-warn-text) 34%, transparent), var(--lv-lift-1); }
.lv-section--bad { box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--lv-bad-text) 34%, transparent), var(--lv-lift-1); }
.lv-status-banner { display: grid; gap: var(--lv-space-3); }
.lv-status-banner--warn { background: color-mix(in oklab, var(--lv-warn-surface) 54%, var(--lv-surface)); }
.lv-status-banner--bad { background: color-mix(in oklab, var(--lv-bad-surface) 54%, var(--lv-surface)); }
.lv-empty--compact { padding-block: var(--lv-space-4); gap: var(--lv-space-2); }
.lv-empty--compact h3 { font-size: var(--lv-text-sm); }
.lv-filter-bar__search { min-width: min(100%, 14rem); }
.lv-filter-bar__select { min-width: 10rem; }
.lv-chip-group__search { width: min(100%, 18rem); }
.lv-inline { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lv-space-2); }

/* =============================================================================
   Leadværk — the public-site SECTION system
   -----------------------------------------------------------------------------
   One stylesheet, imported by every component renderer that needs it. It exists
   because of `.impeccable.md` §5.4 and §5.7: the system is the deliverable, and
   there is one of everything. Eighty components each inventing their own
   heading block is eighty components that disagree about what a heading block
   is, which is the state LPH was measured in.

   Two rules govern what may live here rather than in a component's own
   `<style>`:

     1. If two components would write it identically, it belongs here.
     2. If it encodes a *brand* decision rather than a *layout* decision, it
        belongs here even if only one component uses it today.

   NO GLASS IN THIS FILE. `.impeccable.md` §3 is a law: glass carries chrome,
   never the work surface, and a customer's page content is the work surface —
   for their visitor it is the only surface. Everything below is opaque and
   therefore measurable by the contrast gate.

   THE SIGNATURE, spent once and reused 80 times: the **spectral hairline** at
   the head of a section — a 1px rule that carries the mark's ramp for its first
   4rem and then fades to the neutral line colour. It is the machined edge of
   §2's "wrought", at the one place every section already has a horizontal line.
   Components do not get to add a second signature.
   ========================================================================== */

/* ── The section shell ───────────────────────────────────────────────────── */

.lv-sec {
  /* Container queries, not viewport queries: a section may be placed in a
     narrow article column or in a full-bleed page. §4 of the design protocol. */
  container-type: inline-size;
  /* THE COMPOSED-SECTION SEAM (G20). `--lv-sec-pad` is this plane's own
     rhythm value — the base, re-declared by the --tight/--loose modifiers
     below, so the computed padding is byte-identical to the literal
     `padding-block` declarations this replaces. `--lv-sec-pad-start/-end`
     belong to the THEME PLANE (contract.mjs THEME_LAYER_VARS): the block
     shell sets them on composition wrappers (`.lvt-group`/`.lvt-split`
     members, chrome.mjs) to collapse the rhythm between banded members and
     to neutralise it inside a split column. Unset — every ordinary page —
     both fall back to `--lv-sec-pad` and nothing changes. Same seam, same
     direction as `--lv-container-max` on `.lv-sec__inner` below: the theme
     supplies a value, this plane decides where it lands. */
  --lv-sec-pad: var(--lv-space-8);
  padding-block: var(--lv-sec-pad-start, var(--lv-sec-pad)) var(--lv-sec-pad-end, var(--lv-sec-pad));
  color: var(--lv-text-primary);

  /* THE ACCENT INK ROLE, and why it is a role rather than `--lv-brand-strong`
     written eight times.

     A theme may put a section in a brand band (`sections: { intent: { tone:
     'band' } }`). The band inverts the room through the VARIABLES — chrome.mjs
     re-points --lv-text-*, --lv-surface* and --lv-line* on the shell's direct
     child, which is this element — so a component that paints with a text role
     survives inversion at any specificity. A component that paints with the
     BRAND role does not: --lv-brand-strong is the band gradient's own dark end.

     Measured, before this role existed: `prove.customer-voice` set its rating
     figure to var(--lv-brand-strong) and `raw` and `saas` both place that
     intent in a band. On raw the band runs oklch(34% 0.15 18) → oklch(48% 0.15
     44) and the figure resolved to oklch(34% 0.15 18) — the gradient's first
     stop exactly. Contrast 1.00:1. The rating was invisible on two of sixteen
     themes, and .impeccable.md §5.1 says the ratio wins.

     So: a brand-coloured accent that sits on the INHERITED background reads
     this role. Outside a band it is the brand, unchanged and still measured by
     the contrast gate's brand-on-canvas pairs. Inside one the theme re-points
     it to the band's single ink.

     An accent that carries its OWN background — `explain.capability-grid`'s
     icon chip is --lv-brand-strong on --lv-brand-soft — must NOT use this role.
     That pair travels with the element, the contrast gate measures it as
     `brand-on-brand-soft`, and re-pointing the ink would break a measured pair
     to fix a problem it does not have. */
  --lv-ink-accent: var(--lv-brand-strong);
}

.lv-sec--tight { --lv-sec-pad: var(--lv-space-6); }
.lv-sec--loose { --lv-sec-pad: var(--lv-space-9); }

/* Full-bleed background variant. Still opaque; the wash comes from the canvas
   tokens, so it re-themes rather than being painted in. */
.lv-sec--sunken {
  background: var(--lv-surface-sunken);
  padding-inline: var(--lv-space-5);
}

/* ── The work column, and the two axes it used to cancel ──────────────────────

   THE CONTAINER AXIS. `rhythm.container` is a real theme axis — 880–1440px in
   `packages/themes/src/scales.mjs`, generated into `--lv-container-max` and
   applied to THIS ELEMENT'S PARENT by `.lvt-shell > *`. A second, literal cap
   here at 72rem = 1152px silently overruled every theme that declared more:
   portfolio 1360, comparison 1320, ecommerce 1300, raw 1280, gridline 1240,
   community 1200, saas 1160, simple 1160 — eight of sixteen, all rendering at
   1152. Reading the variable makes this cap agree with the shell's instead of
   competing with it; the fallback is what an untethered surface with no theme
   stylesheet (a bare document, a fixture) gets, and it is the value that used
   to be unconditional.

   `.impeccable.md` §5.4: a token, never a literal. A length that encodes a
   theme decision is as much a token as a colour is. */
.lv-sec__inner {
  /* `--lv-sec-inner-max` is the composed-section seam again (see `.lv-sec`
     above): inside a split column the shell lifts the cap, because a column
     is narrower than the work column by construction and the cap would only
     re-centre a phantom margin. Unset everywhere else. */
  max-width: var(--lv-sec-inner-max, var(--lv-container-max, 72rem));
  margin-inline: auto;
  /* A flex or grid item's automatic minimum size is its MIN-CONTENT size, and
     several components lay their section root out as flex or grid — which
     makes this inner an item whose floor is whatever its widest unbreakable
     descendant demands. A gallery rail or a wide media row then holds the
     inner open past the shell and the page scrolls sideways, even though the
     rail scrolls its own content perfectly well. The floor is the same one
     `.lvt-split` already writes as `minmax(0, 1fr)` (chrome.mjs, v1.0.51) and
     for the identical reason; stated here so it holds for every section root,
     not only the split pair. */
  min-inline-size: 0;
}

/* ── Bleed ────────────────────────────────────────────────────────────────────

   THE CAP. `.lvt-shell--bleed` drops the page gutter and lifts the cap off its
   own child (chrome.mjs), because `SECTION_TONES` defines bleed as "the section
   runs to the page edge: no gutter, no work column". The cap the content then
   hit was the one above — so a bled hero, gallery or map was a 1152px column
   that had merely lost its side padding, and `SECTION_BUDGET.bleed`, three per
   theme and rationed against the band, bought almost nothing.

   The shell cannot reach in and fix this from its own side: a theme may not
   write a rule that names a component's class (`theme-selector-out-of-namespace`
   in packages/themes/src/check). So the component reads the TREATMENT instead.
   The dependency runs component → shell, which is the direction the boundary
   leaves open, and it is one rule rather than sixteen.

   THE FLOOR. Bleed sets `padding-inline: 0` on the shell and nothing else inset
   the content: `.lv-sec` and `.lv-sec__inner` carry no inline padding at all
   (only `.lv-sec--sunken` did), so on any viewport under the work column — every
   phone, and every one of the eight wide themes on a laptop — a bled section's
   text ran to the physical edge of the glass. A bleed surrenders the work
   COLUMN, not the margin that makes a line of text readable, so the floor has
   to survive it. It sits on the shell's child (the component root) rather than
   on `.lv-sec__inner`, because 21 of 83 components — `browse.product-set`'s
   grid and `locate.map` among them — have no inner at all.

   A component that has already made an inline-padding decision of its own keeps
   it: a scoped `.lv-x.astro-hash` rule is (0,2,0) and wins, and an unscoped one
   is equal-specificity but later in the stylesheet (registry.css is
   concatenated after system.css). `open.atmosphere` and `.lv-map--editor` are
   the two that rely on that today. */
.lvt-shell--bleed > * {
  padding-inline: var(--lv-space-5);
}

.lvt-shell--bleed .lv-sec__inner {
  max-width: none;
}

/* ── The same floor, for a section whose BACKGROUND is the media ──────────────

   `.lvt-shell:has(> [data-lv-bleed])` (packages/themes/src/chrome.mjs) drops
   the gutter and the work-column cap so a hero photograph reaches the page
   edge. The COPY must not follow it there — a headline that starts at the
   physical edge of the glass is the defect the floor above exists to prevent,
   and an uncapped hero on a 1440px laptop sets its lede across the whole
   viewport.

   THE RULE IS NOT HERE, and that is not a preference. This file reaches a
   served page ONLY through `apps/site-renderer/themes/system.css`, which
   `theme:generate` writes — and `theme:generate` refuses while `theme:check`
   reports findings, which it has since before this change (22 dark-theme
   contrast findings, none of them geometry). So a rule added here today is a
   rule no visitor would ever load. Measured, and it is not hypothetical: the
   `.lv-icon` primitive added to this file on 2026-08-07 is absent from the
   `system.css` on disk for exactly the same reason.

   So the floor sits in the three components that carry the attribute, in their
   own scoped blocks, which `registry:generate` compiles into `registry.css` on
   every run. It is three copies of one declaration rather than one — the cost
   is stated here rather than hidden, and it is owed back to this file the day
   `theme:check` is green. */

/* ── The head: eyebrow, title, lede. Left-aligned by default ─────────────── */

.lv-sec__head {
  position: relative;
  max-width: var(--lv-measure);
  padding-block-start: var(--lv-space-4);
  margin-block-end: var(--lv-space-6);
}

/* The signature. `::before` so it never interferes with the edit surface. */
.lv-sec__head::before {
  content: '';
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  inline-size: 100%;
  block-size: 1px;
  background:
    linear-gradient(90deg, var(--lv-accent) 0, var(--lv-highlight) 2.5rem, transparent 4rem),
    var(--lv-line);
}

.lv-sec__head--center {
  margin-inline: auto;
  text-align: center;
}

.lv-sec__head--center::before {
  background:
    linear-gradient(90deg, transparent 0, var(--lv-brand-soft) 50%, transparent 100%),
    var(--lv-line);
}

/* G23 — the kicker/eyebrow system.
   Calibrated against `design-reference/dennis-niess-reference.html`'s `.kick`:
   mono face, accent ink, wide tracking, and a small dimension-line motif —
   the carpenter's "01 |—| Ydelser" measure-tick, borrowed because it is the
   one signature on that page that is pure typography-and-geometry rather than
   a photograph, which is exactly what a token-driven system can reproduce.

   THE INK. `--lv-text-tertiary` (neutral grey) read as inert furniture, not a
   section landmark. `--lv-ink-accent` is the ROLE this file already defines on
   `.lv-sec` (§ above) for exactly this case — a brand-coloured mark that must
   survive a banded placement without painting the brand onto the brand. Same
   role, same fallback pattern (`var(--lv-ink-accent, var(--lv-brand-strong))`),
   already shipped at this identical weight/size on
   `explain.narrative-media`'s `.lv-story__category` and four other renderers
   — this is that pattern reaching the one kicker the system itself owns.

   THE FACE. `--lv-font-mono` (JetBrains Mono, .impeccable.md §4: "for every
   figure") rather than `--lv-font-ui` — a kicker is a label THAT CARRIES A
   NUMBER once `.lv-sec--numbered` is in play, and the numeral needs the mono
   face's tabular figures whether or not this particular section is numbered.
   A kicker that switches face when numbering is added is a fourth, unwanted
   axis; one face for the whole class reads as one system. */
.lv-sec__eyebrow {
  display: block;
  margin-block-end: var(--lv-space-2);
  font: var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-mono);
  letter-spacing: var(--lv-tracking-eyebrow);
  /* The theme's eyebrow case. `type.eyebrowCase` resolves to --lv-display-case
     in packages/themes/src/scales.mjs and this rule hard-coded `uppercase`, so
     `small-caps` (atelier, restaurant) and `normal` (washi) were a FOURTH axis
     value that never reached a page — after the display face, the hero step and
     the neutral chroma. The fallback keeps the admin, which sets no theme, on
     uppercase.

     `small-caps` pairs the transform with real small capitals rather than
     merely lowercasing the label: lowercase alone reads as a mistake, and small
     capitals are what a menu card and a drawing sheet actually set an eyebrow
     in. */
  text-transform: var(--lv-display-case, uppercase);
  font-variant-caps: var(--lv-display-variant, normal);
  color: var(--lv-ink-accent, var(--lv-brand-strong));
}

/* THE EYEBROW-ORNAMENT AXIS (W2, 2026-09-15). Operator complaint: the |—|
   dimension tick below was UNCONDITIONAL — every theme that did not
   hand-author an opt-out inherited it, so 13 of 16 themes rendered the same
   flourish on every section. `packages/themes/src/contract.mjs` now declares
   `eyebrowOrnament` as a closed-vocabulary field every theme names (like
   `buttons.device`), resolved into `theme.axes.ornament.eyebrow` on the
   manifest and read by `apps/site-renderer/render.mjs` into a
   `data-lv-eyebrow="<value>"` attribute on the body element — the same seam
   `data-lv-motif` already uses, and for the same reason: a theme NAMES a
   value, this file OWNS the CSS that value activates, and no theme may
   select `.lv-sec__eyebrow` directly (`theme-selector-out-of-namespace`).

   EVERY RULE BELOW IS KEYED ON THE ATTRIBUTE, NOT UNCONDITIONAL. The
   attribute is absent — and therefore no rule below matches, and NOTHING is
   drawn — whenever a page's resolved value is `'none'`: the theme's own
   default, a page composition directive's `eyebrow` override, or simply no
   directive and a theme that chose `none` (five of sixteen do, by design:
   variety without every page carrying a mark). Fail-quiet, never fail-tick.

   `[data-lv-motif='…']` (below, unchanged) STILL WINS over any of these:
   a tenant who picked one of the seven motifs gets its own small eyebrow
   variant regardless of the theme's `eyebrowOrnament`, because the motif
   rules match the same `::after` and are declared later in this file — same
   specificity, later wins. This block only ever supplies the THEME's own
   unmotifed voice.

   THE BACKWARD-COMPAT ESCAPE HATCH. `--lv-eyebrow-tick-display` and
   `--lv-eyebrow-tick-width` are not tick-only any more: every generated-
   content rule below (and every `[data-lv-motif]` variant, which already
   read them) resolves its `display` through the same
   `var(--lv-eyebrow-tick-display, inline-block)` chain, so ONE variable is
   the universal off switch regardless of which ornament word is active —
   set it to `none` and the section carries no mark at all. This is the
   whole reason `packages/registry/src/tenant-overlay/compiler.ts` carves out
   exactly these two names (plus `--lv-eyebrow-ornament` itself) as the one
   `:root` assignment a tenant overlay may make: the attribute a page
   renders with is server-resolved and out of a tenant's CSS's reach, so the
   variable is the only lever left, same as it always was for `saas`. */
[data-lv-eyebrow='tick'] .lv-sec__eyebrow::after {
  content: '';
  display: var(--lv-eyebrow-tick-display, inline-block);
  vertical-align: middle;
  margin-inline-start: var(--lv-space-2);
  inline-size: var(--lv-eyebrow-tick-width, 1.5rem);
  block-size: 0.5rem;
  background:
    linear-gradient(var(--lv-ink-accent, var(--lv-brand-strong)), var(--lv-ink-accent, var(--lv-brand-strong)))
      left / 1px 100% no-repeat,
    linear-gradient(var(--lv-ink-accent, var(--lv-brand-strong)), var(--lv-ink-accent, var(--lv-brand-strong)))
      right / 1px 100% no-repeat,
    linear-gradient(var(--lv-ink-accent, var(--lv-brand-strong)), var(--lv-ink-accent, var(--lv-brand-strong)))
      center / 100% 1px no-repeat;
}

/* RULE — a 2rem hairline trailing the label, the tick's own midline alone
   without the two verticals that turn it into a dimension mark. */
[data-lv-eyebrow='rule'] .lv-sec__eyebrow::after {
  content: '';
  display: var(--lv-eyebrow-tick-display, inline-block);
  vertical-align: middle;
  margin-inline-start: var(--lv-space-2);
  inline-size: 2rem;
  block-size: 1px;
  background: var(--lv-ink-accent, var(--lv-brand-strong));
}

/* DOT — a single 4px brand dot leading the label, on `::before` (this
   ornament never coexists with `numeral`'s own `::before`, since only one
   `data-lv-eyebrow` value is ever active on a page). */
[data-lv-eyebrow='dot'] .lv-sec__eyebrow::before {
  content: '';
  display: var(--lv-eyebrow-tick-display, inline-block);
  vertical-align: middle;
  margin-inline-end: var(--lv-space-2);
  inline-size: 4px;
  block-size: 4px;
  border-radius: 50%;
  background: var(--lv-ink-accent, var(--lv-brand-strong));
}

/* BRACKET — a single `[ … ]` pair drawn with borders around the label,
   never as a card: two 1px verticals plus their own top/bottom ticks, each
   hugging one end of the text instead of boxing it. */
[data-lv-eyebrow='bracket'] .lv-sec__eyebrow {
  padding-inline: 0.5em;
}
[data-lv-eyebrow='bracket'] .lv-sec__eyebrow::before,
[data-lv-eyebrow='bracket'] .lv-sec__eyebrow::after {
  content: '';
  display: var(--lv-eyebrow-tick-display, inline-block);
  position: absolute;
  inline-size: 0.35em;
  block-size: 1em;
  border-block: 1px solid var(--lv-ink-accent, var(--lv-brand-strong));
}
[data-lv-eyebrow='bracket'] .lv-sec__eyebrow {
  position: relative;
}
[data-lv-eyebrow='bracket'] .lv-sec__eyebrow::before {
  inset-inline-start: 0;
  border-inline-start: 1px solid var(--lv-ink-accent, var(--lv-brand-strong));
}
[data-lv-eyebrow='bracket'] .lv-sec__eyebrow::after {
  inset-inline-end: 0;
  border-inline-end: 1px solid var(--lv-ink-accent, var(--lv-brand-strong));
}

/* NUMERAL — `.lv-sec--numbered`'s own counter treatment (decimal-leading-
   zero, tabular mono, the numeral's own tighter tracking), promoted from an
   opt-in per-section BUILDER flag to a per-PAGE ornament: every
   `.lv-sec__eyebrow` on a page carrying this value numbers itself, with no
   markup or renderer change, on ITS OWN counter (`lv-eyebrow-number`) so it
   never collides with a page that also opts a section into
   `.lv-sec--numbered` for unrelated reasons. */
[data-lv-eyebrow='numeral'] {
  counter-reset: lv-eyebrow-number;
}
[data-lv-eyebrow='numeral'] .lv-sec__eyebrow {
  counter-increment: lv-eyebrow-number;
}
[data-lv-eyebrow='numeral'] .lv-sec__eyebrow::before {
  content: counter(lv-eyebrow-number, decimal-leading-zero);
  display: var(--lv-eyebrow-tick-display, inline-block);
  margin-inline-end: var(--lv-space-2);
  letter-spacing: var(--lv-tracking-num);
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1;
  color: var(--lv-ink-accent, var(--lv-brand-strong));
}

/* UNDERSCORE — a real `text-decoration` underline, deliberately not a
   generated-content bar: the rule this way always matches the label's own
   width instead of guessing a fixed one, in Danish where labels range from
   "Om os" to "tilbudsberegneren" on the very themes this ornament serves
   (gridline, restaurant). No `--lv-eyebrow-tick-display` gate — a text
   decoration has no display box for that switch to hide. */
[data-lv-eyebrow='underscore'] .lv-sec__eyebrow {
  text-decoration-line: underline;
  text-decoration-color: var(--lv-ink-accent, var(--lv-brand-strong));
  text-decoration-thickness: 1px;
  text-underline-offset: 0.35em;
}

/* SLASH — a leading "/ " in ink-accent, the plainest possible kicker: one
   character of punctuation instead of a drawn device, for the themes whose
   whole argument is that they draw less, not less legibly. */
[data-lv-eyebrow='slash'] .lv-sec__eyebrow::before {
  content: '/ ';
  display: var(--lv-eyebrow-tick-display, inline-block);
  color: var(--lv-ink-accent, var(--lv-brand-strong));
}

/* ── THE TICK, PER TENANT MOTIF ───────────────────────────────────────────
   A tenant that has chosen one of `packages/themes/src/motifs.mjs`'s seven
   motifs gets that motif drawn TWICE: once large, on `.lvt-shell::before` /
   `::after` (the shell ornament `motifCss()` emits), and once small, here, on
   every section eyebrow down the page. The small one is what turns the choice
   into a THREAD rather than a decoration — a shell ornament is seen once per
   page, the eyebrow tick is seen at every section landmark, and drawing both
   from one vocabulary is the entire point of a per-tenant motif.

   THE SEAM. `[data-lv-motif='…']` on an ancestor — a later wave sets it on
   the document's `body` element from the tenant's resolved `motif_key`. An
   attribute rather than a class because a class on `body` is theme-shell
   territory (`chrome.mjs` owns it) and this is TENANT state, not theme state
   — the same separation that keeps `motifs.mjs` a closed set of its own that
   `check/axes.mjs` never scans. Until that wave lands, no rule below can
   match and every page keeps the default tick.

   (`body`, written as the element name and never as the angle-bracket start
   tag. This file is inlined verbatim into `apps/site-renderer/themes/
   system.css`, and from there into the inline stylesheet of every preview
   document — so a literal body start tag written here is the FIRST one in
   those bytes, ~340KB ahead of the real one, and anything that locates the
   body by scanning for it lands mid-stylesheet instead. Everything below
   that point is still CSS, including the site nav/footer chrome SELECTORS
   the theme plane declares, which is exactly what the component- and
   section-preview "has no site chrome" tests read as a rendered header and
   footer.)

   THE INK AND THE SIZE. `--lv-ornament-ink` and `--lv-ornament-size`: the two
   variables `motifVars()` already sets for the shell device, so the tick is
   the same brand ink and keyed to the same rhythm as the ornament it rhymes
   with, with no third token to keep in step (the reconciled plan's MATCH 1 —
   "no new var" — applies to the tick as much as to the shell). Both carry a
   fallback: the ink falls through to the default tick's own
   `--lv-ink-accent` chain, the size to normal rhythm's 18px, so the rules
   still draw something sane if the attribute ever reaches a surface that sets
   no theme layer at all (the admin).

   THE DEFAULT IS UNTOUCHED, AND NARROWER THAN IT USED TO BE (W2). Nothing
   here alters `[data-lv-eyebrow='tick'] .lv-sec__eyebrow::after` above. A
   page with no `data-lv-motif` renders whichever `data-lv-eyebrow` value its
   theme (or page directive) resolved to — the |—| dimension tick only for a
   theme whose `eyebrowOrnament` is literally `'tick'`, nothing at all for
   the five themes that chose `'none'`, one of the other six words otherwise.
   `--lv-eyebrow-tick-display: none` still switches every variant below off
   — universally, not tick-only — because each one RESTATES `display` (and,
   where relevant, `inline-size`) from those same two `--lv-eyebrow-tick-*`
   tokens rather than relying on the default rule to supply them across the
   specificity step. That restatement is deliberate redundancy: it is what
   makes the theme-level opt-out and the shared tick footprint true of each
   variant on its own terms, including the eighth one somebody adds by
   copying the seventh.

   THE TECHNIQUE is the default's, unchanged: layered background gradients
   with per-layer position and size, no image and no inline SVG for any of it
   — including `linear-gradient(<ink>, <ink>)` spelled out in full for a solid
   layer. The tempting shorthand for that is `linear-gradient(<ink> 0 100%)`,
   which Chromium accepts and `<color-stop-list>` in css-images-4 does not
   (the production wants two comma-separated stops; a doubly-positioned single
   stop is defined as expanding to two, not as being two). One engine's
   leniency is not a licence, and a gradient that fails to parse is a silently
   blank tick, so these rules pay the second `var()` chain. */

/* RULER-TICKS — alternating long and half graduations standing on the rule
   they are struck from, the shell's ruler edge at eyebrow scale. Three
   layers: the long ticks at one ornament step, the half ticks a half-step
   over and 45% as tall, and the baseline they sit on. */
[data-lv-motif='ruler-ticks'] .lv-sec__eyebrow::after {
  display: var(--lv-eyebrow-tick-display, inline-block);
  inline-size: var(--lv-eyebrow-tick-width, 1.5rem);
  background:
    repeating-linear-gradient(90deg,
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))) 0 1px,
        transparent 1px calc(var(--lv-ornament-size, 18px) * 0.4))
      left bottom / 100% 100% no-repeat,
    repeating-linear-gradient(90deg,
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))) 0 1px,
        transparent 1px calc(var(--lv-ornament-size, 18px) * 0.4))
      calc(var(--lv-ornament-size, 18px) * 0.2) bottom / 100% 45% no-repeat,
    linear-gradient(
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))),
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))))
      left bottom / 100% 1px no-repeat;
}

/* DIMENSION-LINES — the measured span with real arrowheads, where the default
   tick has square end caps. Four diagonal 1px strokes (a `/` and a `\` meeting
   at each end, drawn as hard-stopped 45°/135° gradients in a small square box
   pinned to that corner) plus the midline they measure. This is the one
   variant deliberately CLOSE to the default: the tenant who picked
   `dimension-lines` picked the system's own house mark, and gets it sharpened
   rather than replaced. */
[data-lv-motif='dimension-lines'] .lv-sec__eyebrow::after {
  display: var(--lv-eyebrow-tick-display, inline-block);
  inline-size: var(--lv-eyebrow-tick-width, 1.5rem);
  background:
    linear-gradient(135deg,
        transparent calc(50% - 0.5px),
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))) calc(50% - 0.5px) calc(50% + 0.5px),
        transparent calc(50% + 0.5px))
      left top / min(calc(var(--lv-ornament-size, 18px) * 0.25), 0.25rem) 50% no-repeat,
    linear-gradient(45deg,
        transparent calc(50% - 0.5px),
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))) calc(50% - 0.5px) calc(50% + 0.5px),
        transparent calc(50% + 0.5px))
      left bottom / min(calc(var(--lv-ornament-size, 18px) * 0.25), 0.25rem) 50% no-repeat,
    linear-gradient(45deg,
        transparent calc(50% - 0.5px),
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))) calc(50% - 0.5px) calc(50% + 0.5px),
        transparent calc(50% + 0.5px))
      right top / min(calc(var(--lv-ornament-size, 18px) * 0.25), 0.25rem) 50% no-repeat,
    linear-gradient(135deg,
        transparent calc(50% - 0.5px),
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))) calc(50% - 0.5px) calc(50% + 0.5px),
        transparent calc(50% + 0.5px))
      right bottom / min(calc(var(--lv-ornament-size, 18px) * 0.25), 0.25rem) 50% no-repeat,
    linear-gradient(
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))),
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))))
      left center / 100% 1px no-repeat;
}

/* CHALK-LINE — a snapped line, not a ruled one: no end caps (the default's
   two verticals are exactly what a snapped string does not have), skipping
   where the string bounced, and dusty underneath.

   HOW THE IRREGULARITY IS MADE, since a gradient is the most regular thing in
   CSS: two long-dashed hairlines one pixel apart in y, on INCOMMENSURATE
   periods (0.33 vs 0.47 of the ornament step, deliberately not a ratio). Each
   is perfectly regular; their union drifts in and out of phase across 24px
   and never repeats inside the tick, so the eye reads one wobbling line
   rather than two dashed ones. Two earlier cuts — three offset segments, then
   a continuous rule with pooled patches — read as a broken bar and as a blob
   respectively; chalk has to read LIGHTER than its siblings here, not
   heavier, and dashes are what buy that. The half-degree rotation is lifted
   verbatim from the motif's own `.lvt-shell::before`: same string, snapped
   twice at two scales. */
[data-lv-motif='chalk-line'] .lv-sec__eyebrow::after {
  display: var(--lv-eyebrow-tick-display, inline-block);
  inline-size: var(--lv-eyebrow-tick-width, 1.5rem);
  transform: rotate(-0.6deg);
  background:
    repeating-linear-gradient(90deg,
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))) 0 calc(var(--lv-ornament-size, 18px) * 0.28),
        transparent calc(var(--lv-ornament-size, 18px) * 0.28) calc(var(--lv-ornament-size, 18px) * 0.33))
      left 42% / 100% 1px no-repeat,
    repeating-linear-gradient(90deg,
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))) 0 calc(var(--lv-ornament-size, 18px) * 0.4),
        transparent calc(var(--lv-ornament-size, 18px) * 0.4) calc(var(--lv-ornament-size, 18px) * 0.47))
      left 58% / 100% 1px no-repeat,
    repeating-linear-gradient(90deg,
        color-mix(in oklab, var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))) 45%, transparent) 0 1px,
        transparent 1px calc(var(--lv-ornament-size, 18px) * 0.22))
      left 88% / 100% 1px no-repeat;
}

/* PLANK-PATTERN — one board run interrupted at every seam: a rule broken by a
   2px gap each ornament step, and a taller notch standing in each gap where
   two planks butt. Two layers, phase-locked to the same step so the notch
   always lands in the break rather than on a board. */
[data-lv-motif='plank-pattern'] .lv-sec__eyebrow::after {
  display: var(--lv-eyebrow-tick-display, inline-block);
  inline-size: var(--lv-eyebrow-tick-width, 1.5rem);
  background:
    repeating-linear-gradient(90deg,
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))) 0 calc(var(--lv-ornament-size, 18px) * 0.45 - 2px),
        transparent calc(var(--lv-ornament-size, 18px) * 0.45 - 2px) calc(var(--lv-ornament-size, 18px) * 0.45))
      left center / 100% 1px no-repeat,
    repeating-linear-gradient(90deg,
        transparent 0 calc(var(--lv-ornament-size, 18px) * 0.45 - 2px),
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong)))
          calc(var(--lv-ornament-size, 18px) * 0.45 - 2px) calc(var(--lv-ornament-size, 18px) * 0.45 - 1px),
        transparent calc(var(--lv-ornament-size, 18px) * 0.45 - 1px) calc(var(--lv-ornament-size, 18px) * 0.45))
      left center / 100% 75% no-repeat;
}

/* BRICK-COURSING — two courses, not one row: head joints across the upper
   half, the same joints half a brick over across the lower half, and the bed
   lines they course against. The offset between the two rows of verticals IS
   the mark — a running bond never lines its joints up, and that stagger is
   the one thing no other variant here does. */
[data-lv-motif='brick-coursing'] .lv-sec__eyebrow::after {
  display: var(--lv-eyebrow-tick-display, inline-block);
  inline-size: var(--lv-eyebrow-tick-width, 1.5rem);
  background:
    repeating-linear-gradient(90deg,
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))) 0 1px,
        transparent 1px calc(var(--lv-ornament-size, 18px) * 0.55))
      left top / 100% 0.25rem no-repeat,
    repeating-linear-gradient(90deg,
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))) 0 1px,
        transparent 1px calc(var(--lv-ornament-size, 18px) * 0.55))
      calc(var(--lv-ornament-size, 18px) * 0.275) bottom / 100% 0.25rem no-repeat,
    linear-gradient(
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))),
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))))
      left 0.25rem / 100% 1px no-repeat,
    linear-gradient(
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))),
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))))
      left bottom / 100% 1px no-repeat;
}

/* LEVEL-BUBBLE — the vial read end-on: a guide rule running in from each
   side, the two centring marks, and the bubble itself as a ring between them.
   `closest-side` is what keeps the ring 1px at every rhythm — the stops are
   percentages of the ending shape, so the ring scales with the box instead of
   fattening as `--lv-ornament-size` grows, and the `min()` stops the box
   itself outgrowing the tick's own 0.5rem height at cathedral rhythm. */
[data-lv-motif='level-bubble'] .lv-sec__eyebrow::after {
  display: var(--lv-eyebrow-tick-display, inline-block);
  inline-size: var(--lv-eyebrow-tick-width, 1.5rem);
  background:
    radial-gradient(circle closest-side,
        transparent 0 52%,
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))) 52% 88%,
        transparent 88%)
      center / min(calc(var(--lv-ornament-size, 18px) * 0.34), 0.5rem) min(calc(var(--lv-ornament-size, 18px) * 0.34), 0.5rem)
      no-repeat,
    linear-gradient(
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))),
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))))
      32% center / 1px 100% no-repeat,
    linear-gradient(
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))),
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))))
      68% center / 1px 100% no-repeat,
    linear-gradient(
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))),
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))))
      left center / 30% 1px no-repeat,
    linear-gradient(
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))),
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))))
      right center / 30% 1px no-repeat;
}

/* TAPE-MEASURE-TICK — graduations HANGING from the tape's printed edge, at
   roughly two and a half times the density of `ruler-ticks`, with every
   fourth one running long. Anchored top where the ruler is anchored bottom,
   which is the whole difference between reading a rule laid on the page and
   reading a tape pulled across it. */
[data-lv-motif='tape-measure-tick'] .lv-sec__eyebrow::after {
  display: var(--lv-eyebrow-tick-display, inline-block);
  inline-size: var(--lv-eyebrow-tick-width, 1.5rem);
  background:
    repeating-linear-gradient(90deg,
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))) 0 1px,
        transparent 1px calc(var(--lv-ornament-size, 18px) * 0.16))
      left top / 100% 40% no-repeat,
    repeating-linear-gradient(90deg,
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))) 0 1px,
        transparent 1px calc(var(--lv-ornament-size, 18px) * 0.64))
      left top / 100% 85% no-repeat,
    linear-gradient(
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))),
        var(--lv-ornament-ink, var(--lv-ink-accent, var(--lv-brand-strong))))
      left top / 100% 1px no-repeat;
}

/* THE AUTO-NUMBER. `body` is the one ancestor every page has regardless of
   theme shell markup, so the reset lives there rather than in a theme's own
   `.lvt-shell` (which would make numbering a per-theme feature instead of a
   system one). `.lv-sec--numbered` is opt-in per section — a builder flag
   lands in a parallel work stream; this only makes the class do something
   once applied. `decimal-leading-zero` gives "01".."09" and falls through to
   "10"+ unpadded past two digits, matching the reference's own two-digit
   kickers. Tabular figures + the number's own (tighter) tracking, because the
   eyebrow's `--lv-tracking-eyebrow` (0.11em, tuned for letters) reads as
   broken kerning on digits — `.impeccable.md` §4's "JetBrains Mono for every
   figure" rule again. */
body { counter-reset: lv-sec-number; }

.lv-sec--numbered { counter-increment: lv-sec-number; }

.lv-sec--numbered .lv-sec__eyebrow::before {
  content: counter(lv-sec-number, decimal-leading-zero);
  margin-inline-end: var(--lv-space-2);
  letter-spacing: var(--lv-tracking-num);
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1;
}

/* ── Wrapping, and why a display class carries three properties ──────────────

   Measured, component-audit-20260910: `explain.changelog`'s Danish headline
   "Ændringer i tilbudsberegneren" pushed the whole document sideways at 360px
   on twelve of sixteen themes — on `lodstil` by 360px, a full viewport width,
   so the line rendered essentially off-canvas — and `explain.capability-bento`'s
   "kontaktperson" did the same on five more. Seventeen (intent, renderer) pairs
   across four audit parts traced to this one gap. Nothing in this file said
   what a heading does when ONE token is wider than its line: the initial
   `overflow-wrap: normal` means "never break a word", so the word wins and the
   page scrolls. Danish compounds — tilbudsberegneren, kontaktperson,
   åbningstider — are the language's ordinary case rather than an edge one, so
   the answer belongs on the shared display classes and not in whichever
   component gets measured next.

   THREE PROPERTIES, IN THE ORDER THE BROWSER TRIES THEM:

     `hyphens: auto` first. The document is `lang="da"` (render.mjs emits it on
       `<html>`), so wherever the platform ships a Danish dictionary the break
       lands on a real syllable boundary and shows a hyphen. Where it does not,
       this is an inert declaration and the floor below still holds.

     `overflow-wrap: anywhere` as the floor — `anywhere`, NOT `break-word`.
       Only `anywhere` shrinks the element's MIN-CONTENT size, and a flex or
       grid item's automatic minimum size is computed from exactly that. With
       `break-word` the glyphs wrap but the box still ASKS for the whole word,
       so the track stays too wide and the page still scrolls. This is the
       declaration that actually closes the defect.

     `text-wrap: balance` last, on the titles only. §1.3 requires it for
       display text; it is purely typographic (it evens the rag over two or
       three lines) and never decides whether a line fits.

   No `word-break: break-all` anywhere: that breaks every word rather than the
   one word that cannot fit, which is a different and worse typography. */

.lv-sec__title {
  margin: 0;
  font-size: var(--lv-text-2xl);
  color: var(--lv-text-primary);
  hyphens: auto;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

/* ── The same three properties, on the ELEMENTS ──────────────────────────────

   The block above put the wrapping doctrine on `.lv-sec__title` and
   `.lv-sec__lede` — the two SHARED display classes — and every component that
   names its own heading was left out of it. There are dozens:
   `.lv-pdetail__title`, `.lv-hero__title`, `.lv-scene__copy`,
   `.lv-people__name`, `.lv-price__name`, `.lv-offer__price`. The registry
   viewport gate measured what that costs, at 360px, on the four themes with
   the largest display steps (operator review, 2026-09-11):

     · `browse.product-detail` on design/lodstil/portfolio put its title,
       price, description AND buy form 29–132px outside `.lv-sec__inner` —
       one compound holding the inner's only `auto` track open past the section;
     · `prove.people` on portfolio drove `document.scrollWidth` to 655px inside
       a 360px viewport, with `.lv-people__ident` collapsed to 0px;
     · `open.scene` on lodstil, 523px inside 360px;
     · `explain.annotated-image`, `act.request-quote`, `decide.pricing`,
       `prove.chart` — the same shape on a smaller scale.

   All of it is one missing floor, so it is written once as an ELEMENT rule
   rather than as thirty class names a future component would have to know to
   join. The properties and their order are the block above's, unchanged and
   for its stated reasons — `anywhere` and not `break-word`, because only
   `anywhere` shrinks the min-content size that a grid or flex item's automatic
   minimum is computed from, and shrinking that is the entire point.

   HEADINGS GET `hyphens: auto`; RUNNING TEXT DOES NOT. Hyphenation is the
   better break and the document is `lang="da"`, but it also re-rags every
   paragraph it touches — a typographic decision about the whole product rather
   than an overflow fix. Display type is where the Danish compounds are, so
   that is where the hyphen is spent. Everything else gets only the floor,
   which is inert until a word genuinely cannot fit.

   Measured after: 84 gate findings across 8 intents → 2, both of them
   `browse.product-set` document overflows that turned out to be an artefact of
   the harness rather than of the page. */
.lv-sec :is(h1, h2, h3, h4, h5, h6) {
  hyphens: auto;
  overflow-wrap: anywhere;
}

.lv-sec :is(p, li, dd, dt, figcaption, td, th, blockquote, address, summary) {
  overflow-wrap: anywhere;
}

.lv-sec__title--sm { font-size: var(--lv-text-xl); }

.lv-sec__lede {
  margin-block-start: var(--lv-space-3);
  color: var(--lv-text-secondary);
  line-height: var(--lv-leading-normal);
  hyphens: auto;
  overflow-wrap: anywhere;
}

.lv-sec__foot {
  margin-block-start: var(--lv-space-6);
  display: flex;
  flex-wrap: wrap;
  gap: var(--lv-space-3);
}

/* ── Grids and lists ─────────────────────────────────────────────────────── */

.lv-grid {
  display: grid;
  gap: var(--lv-space-5);
  margin: 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(auto-fit, minmax(min(17rem, 100%), 1fr));
}

/* An explicit column count, honoured only once there is room for it. The
   `auto-fit` above is the mobile-first answer and never needs a media query. */
@container (min-width: 44rem) {
  .lv-grid--cols {
    grid-template-columns: repeat(var(--lv-cols, 3), minmax(0, 1fr));
  }
}

.lv-grid--tight { gap: var(--lv-space-4); }

/* Dense information: hairlines, not boxes (design protocol §2, DENSITY ≥7). */
.lv-rows {
  margin: 0;
  padding: 0;
  list-style: none;
  border-block-start: 1px solid var(--lv-line);
}

.lv-rows > li {
  padding-block: var(--lv-space-4);
  border-block-end: 1px solid var(--lv-line);
}

/* ── The card. Elevation only where elevation means something ────────────── */

/* WAVE2 W2a — three levers (contract.mjs `THEME_LAYER_VARS`), all defaulting
   to today's values so a theme that never sets them renders byte-identical:
     --lv-card-bg      the fill (today: --lv-surface)
     --lv-card-ring     the hairline inset ring (today: --lv-line); a theme
                        may set `transparent` to turn the ring off without
                        losing the fill
     --lv-card-shadow  an EXTRA shadow layered after the ring (today: an
                       invisible, zero-spread transparent shadow — not the
                       keyword `none`, which cannot sit in the same
                       comma-separated box-shadow list as the ring) */
.lv-card {
  display: flex;
  flex-direction: column;
  gap: var(--lv-space-3);
  block-size: 100%;
  padding: var(--lv-space-5);
  border-radius: var(--lv-radius-md);
  background: var(--lv-card-bg, var(--lv-surface));
  box-shadow: inset 0 0 0 1px var(--lv-card-ring, var(--lv-line)), var(--lv-card-shadow, 0 0 0 transparent);
}

/* Un-carded variant: the same content model with rules doing the separating. */
.lv-card--plain {
  padding: 0;
  background: none;
  box-shadow: none;
  border-radius: 0;
}

/* Same wrapping contract as `.lv-sec__title` above, for the same reason one
   step down the scale: a card title sits in a grid track that is narrower than
   the section, so it meets an unbreakable compound sooner, not later. */
.lv-card__title {
  margin: 0;
  font-size: var(--lv-text-md);
  font-weight: var(--lv-weight-semibold);
  line-height: var(--lv-leading-snug);
  color: var(--lv-text-primary);
  hyphens: auto;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.lv-card__body {
  margin: 0;
  color: var(--lv-text-secondary);
  line-height: var(--lv-leading-normal);
  hyphens: auto;
  overflow-wrap: anywhere;
}

.lv-card__meta {
  margin: 0;
  font-size: var(--lv-text-xs);
  color: var(--lv-text-tertiary);
}

/* §1.1 LINK GRAMMAR. The underline EXISTS at rest and THICKENS on hover; it
   does not appear out of nothing, and the hover is never colour alone — which
   is both the standard's rule and the one signal a visitor with a colour-vision
   difference cannot read. Measured, component-audit-20260910: this single rule
   was the whole interactive state of `prove.certification`, `prove.dataset`,
   `prove.ai-citations` and `decide.compare-live-data`'s links.

   The rest state inks the line at 45% so it reads as a hairline rather than as
   a rule; hover takes it to full ink at 2px. `--lv-dur-instant` (120ms) because
   §1.1 caps a link hover at 150ms while the card that holds it lifts at
   `--lv-dur-state` (240ms) — the affordance moving FASTER than its container is
   the timing split §1.1's three-layer choreography asks for, not an oversight.
   Same grammar as `locate.map`'s `.lv-map__entry-link`, where it was first
   written; this is that rule promoted to the class every card shares. */
.lv-card__link {
  color: var(--lv-text-link);
  font-weight: var(--lv-weight-medium);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: color-mix(in oklab, var(--lv-text-link) 45%, transparent);
  transition: text-decoration-color var(--lv-dur-instant) var(--lv-ease);
}

.lv-card__link:hover {
  text-decoration-thickness: 2px;
  text-decoration-color: var(--lv-text-link);
}

/* ── The no-photo plate (§1.5) ────────────────────────────────────────────────

   §1.5 is explicit: "No-photo fallback is a designed system, not an empty box…
   never fake stock, never a grey rectangle." `prove.case-study` wrote the first
   one (B8: plank seams as a repeating hairline in `currentColor` at low alpha,
   line art at 1.2 stroke over it) and it stayed local to that component — so
   when `explain.video` shipped without a `poster` it had nothing to fall back
   on and rendered the exact anti-pattern the standard names, on 17/17 lanes.
   Rule 1 at the head of this file: if two components would write it
   identically, it belongs here. This is that rule being kept.

   The plank seams run in `currentColor` so ONE declaration serves both the
   paper plate and the inverted one; the ratio is the caller's, because a video
   frame is 16/9 and a case photograph is not always. */

.lv-plate {
  display: grid;
  place-items: center;
  aspect-ratio: var(--lv-plate-ratio, 16 / 9);
  border-radius: var(--lv-radius-md);
  background-color: var(--lv-surface-sunken);
  background-image: repeating-linear-gradient(
    90deg,
    transparent 0 78px,
    color-mix(in oklab, currentColor 5%, transparent) 78px 80px
  );
  color: var(--lv-text-primary);
  box-shadow: inset 0 0 0 1px var(--lv-line);
}

.lv-plate__art { display: grid; opacity: 0.55; }

.lv-plate__art svg {
  inline-size: clamp(5rem, 18cqi, 8rem);
  block-size: auto;
  stroke-width: 1.2;
}

/* Inverted by swapping ROLES rather than by naming a colour: text-primary as
   ground and surface as ink are opposite ends of the scheme in light AND dark
   mode, so "inverted relative to the page" holds in both without a literal.

   WAVE2 W2a — `--lv-plate-invert-bg`/`--lv-plate-invert-ink` (contract.mjs
   `THEME_LAYER_VARS`), defaulting to this exact pair (`--lv-text-primary`/
   `--lv-surface`) so a theme that never sets them renders byte-identical.
   A theme whose brief never wants the inverted-plate rhythm (e.g. a plain
   sunken surface instead) may repoint both — see the pairing note on
   `--lv-panel-dark` above; the same rule applies here. */
.lv-plate--invert {
  background-color: var(--lv-plate-invert-bg, var(--lv-text-primary));
  color: var(--lv-plate-invert-ink, var(--lv-surface));
  box-shadow: none;
}

/* ── Media ───────────────────────────────────────────────────────────────── */

.lv-media {
  display: block;
  overflow: hidden;
  border-radius: var(--lv-radius-md);
  background: var(--lv-surface-sunken);
}

.lv-media img,
.lv-media video {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}

.lv-media--wide { aspect-ratio: 16 / 9; }
.lv-media--square { aspect-ratio: 1; }
.lv-media--portrait { aspect-ratio: 3 / 4; }

/* ── The hero image treatments ────────────────────────────────────────────
   The picture half of `src/image-treatment.ts` — read that file for WHY the
   axis exists and what the five values mean. This is what the markup gets.

   Rule 1 at the top of this stylesheet applies literally: thirteen `open.*`
   renderers would otherwise each write "a photograph, cropped from a declared
   focal point, in a plate with the theme's radius and a hairline ring" and
   thirteen openings would then disagree about what a hero picture is. That was
   measured, not feared — the 2026-09-10 audit found `open.entity`'s two plates,
   `open.editorial`'s standard-scale image and `open.pitch`'s six full-bleed
   stages using four different crop conventions and three different rings.

   THE CONTRACT — two hooks, and a renderer owns nothing else about the picture:

     `data-lv-hero-image="<treatment>"`  on the section root. Only ever a value
                                          `resolveImageTreatment` returned, so
                                          it is `none` (or absent) exactly when
                                          there is no picture to treat.
     `class="lv-heroimg"`                 on the figure wrapping the `<img>`.

   PLACEMENT stays the renderer's, deliberately, and for the same reason zones
   are the component's in the arrangement axis: where a picture sits in a frame
   is a fact about that frame. What is shared is the picture's own treatment —
   crop, ratio, plate, ring, and the mobile floor.

   Every value below is a `--lv-*` token the theme plane already publishes, so
   `theme-forks-component` has nothing to catch: no theme file names any class
   here, and no length or colour is a literal. */

.lv-heroimg {
  /* The default crop. `42%` rather than `50%` because a hero photograph is
     almost always a scene with its subject above the middle — §1.5 asks every
     media slot to DECLARE its `object-position` rather than inherit a centre
     crop that lops off heads and ridgelines. A renderer or a theme may
     re-point it; nothing here guesses per image. */
  --lv-heroimg-focus: 50% 42%;
  display: block;
  margin: 0;
  min-inline-size: 0;
  overflow: hidden;
  /* The plate the picture arrives onto, so a slow image is a themed ground
     rather than a white hole — never a grey rectangle (§1.5). */
  background: var(--lv-surface-sunken);
  border-radius: var(--lv-heroimg-radius, 0);
  aspect-ratio: var(--lv-heroimg-ratio, 16 / 10);
}

.lv-heroimg > img,
.lv-heroimg > video,
.lv-heroimg > picture > img {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  object-position: var(--lv-heroimg-focus);
}

/* `split` — the picture owns one half of the frame and runs to the section's
   own edge on that side. No radius and no ring: a crop that touches the edge
   is an art direction, and a rounded corner would turn it back into a card.
   `block-size: 100%` with a floor rather than a ratio, because the height a
   split picture wants is the height of the copy beside it. */
[data-lv-hero-image='split'] .lv-heroimg {
  --lv-heroimg-ratio: auto;
  --lv-heroimg-radius: 0;
  block-size: 100%;
  min-block-size: var(--lv-heroimg-min, 24rem);
}

/* `framed` — the picture as a deliberate object on the page: theme radius, a
   1px ring in the line token (§1.4's hairline discipline — a ring, never a
   border heavy enough to read as an accent stripe), and a portrait-ish ratio
   so a framed hero picture is tall enough to be the fold's focal object rather
   than a thumbnail beside a paragraph. */
[data-lv-hero-image='framed'] .lv-heroimg {
  --lv-heroimg-ratio: 4 / 4.6;
  --lv-heroimg-radius: var(--lv-radius-lg);
  box-shadow: inset 0 0 0 1px var(--lv-line);
}

/* `offset` — `framed`'s plate, bled off the frame's own inline edge. The
   overhang is one spacing step, spent on one axis only: the asymmetry IS the
   move, and a plate escaping in two directions reads as a mistake. */
[data-lv-hero-image='offset'] .lv-heroimg {
  --lv-heroimg-ratio: 4 / 4.2;
  --lv-heroimg-radius: var(--lv-radius-lg);
  box-shadow: inset 0 0 0 1px var(--lv-line);
  margin-inline-end: calc(-1 * var(--lv-heroimg-overhang, var(--lv-space-6)));
}

/* ── THE MEASURED SCRIM FLOOR · `full-bleed` only ─────────────────────────
   §1.5 says "text on photo ⇒ scrim, always"; `.impeccable.md` §5.1 says the
   ratio wins. Neither had ever been MEASURED on a hero, and the 2026-09-10
   audit measured it: white hero copy over a bright photograph — a white sky,
   which is the case `open.pitch`'s own `scrim` field names in its own Danish
   description — came in between **1.06:1 and 3.05:1** on all seventeen themes
   at the `soft` default, and never once reached 4.5:1. `VERDICT.md` §4 carries
   the table.

   The cause is geometric rather than a wrong number. Every full-bleed opener
   in the family paints a DIRECTIONAL gradient whose strong end is the
   section's extreme edge (0.92 of the scrim value at 0%, 0.58 at 38%, 0.20 at
   68%). The headline does not sit at 0% — it sits where the eyebrow left it,
   about a fifth of the way in, at roughly half the alpha the contract assumes.

   So the floor is a second veil UNDER each renderer's own scrim — the stage is
   the first child and this pseudo-element is the second thing at `z-index: -1`,
   and painting order among equal z-indices is DOM order, so nothing above it
   changes and no renderer needed editing.

   ITS SHAPE IS A PLATEAU, not a ramp and not a flat wash, and both of the
   alternatives were built and measured before this one:

     · A ramp is what the renderers already have, and it is what fails: its
       maximum is at the section's extreme edge and the copy is not there.
     · A FLAT wash at the strength the floor needs (0.50) pays the ratio and
       costs the photograph — rendered on `tide` it read as a solid dark ground
       with a headline on it, which is the "text block" verdict this pass
       exists to answer, arrived at from the other direction.

   The plateau holds full strength across the anchored 62% — where every
   renderer in the family puts its copy, and where `portfolio`'s four-line
   headline still ends at 56% — and then releases to nothing over the last
   sixth, so the far edge of the frame is the photograph at full strength.
   `--lv-hero-scrim-dir` is the direction the renderers already publish from
   `contentAnchor`, so the plateau sits over the copy whichever end it is
   anchored to; `to bottom` is the default because an unanchored opener puts
   its copy at the top. */
[data-lv-hero-image='full-bleed'] > .lv-sec__inner { position: relative; }

[data-lv-hero-image='full-bleed'] > .lv-sec__inner::before {
  content: '';
  position: absolute;
  /* Out to the section's own edges in both axes. The inline reach is the
     "past whatever the cap is" idiom rather than arithmetic, and deliberately:
     the exact distance from the capped inner to the section edge depends on
     `--lv-gutter`, `--lv-container-max` AND any `--lv-sec-inner-max` a
     composed shell re-points, and a formula that gets one of the three wrong
     is a veil that stops short of the edge (a visible seam) or runs past it
     (measured at 58–70px of sideways page scroll on `design` and `tide`). The
     inline CLIP below is what makes over-reaching free. */
  inset-block: calc(-1 * var(--lv-heroimg-block-reach, var(--lv-sec-pad, 0px)));
  inset-inline: -100vmax;
  z-index: -1;
  background: linear-gradient(
    var(--lv-hero-scrim-dir, to bottom),
    rgb(var(--lv-glass-under) / var(--lv-hero-scrim-floor, 0.5)) 0%,
    rgb(var(--lv-glass-under) / var(--lv-hero-scrim-floor, 0.5)) 62%,
    rgb(var(--lv-glass-under) / calc(var(--lv-hero-scrim-floor, 0.5) * 0.34)) 84%,
    rgb(var(--lv-glass-under) / 0) 100%
  );
  pointer-events: none;
}

/* `scrim: 'strong'` finally means what its own Danish description has promised
   the operator since 2026-08: *"Kraftig holder også mod en helt hvid himmel."*
   Measured, it did not — at `strong` the directional gradient is deeper but its
   maximum is still at the section's edge rather than under the copy, so a white
   sky came in below 4.5:1 there too. The floor is where that promise can
   actually be kept, so `strong` raises it.

   Selected on `[class*='--scrim-strong']` rather than on a named class because
   the eleven renderers each namespace that modifier to themselves
   (`lv-hero--scrim-strong`, `lv-ghost--scrim-strong`, `lv-workshop--scrim-strong`
   …). The attribute substring is the one selector that reaches all of them
   without this stylesheet naming a single renderer — and it cannot reach
   anything else, because `--scrim-strong` is a modifier only the openers emit. */
[data-lv-hero-image='full-bleed'][class*='--scrim-strong'] > .lv-sec__inner::before {
  --lv-hero-scrim-floor: 0.74;
}

/* ── PLACEMENT · the second column, and why it is not a grid track ────────
   The plate has to be as tall as the copy beside it or it is not a hero
   picture, it is an illustration — the audit's whole finding in one sentence.
   A grid track cannot do that here: `.lv-hero__inner` and its six siblings in
   the family carry an implicit row grid (their zone wrappers are
   `display: contents`, so the row count is whatever the content produced), and
   `grid-row: 1 / -1` in an implicit grid spans exactly one row. Measured:
   a 633px plate in a 1494px opening — 18%, when the reserve was already made.

   So the plate is positioned against the section's own INNER, whose width is
   the work column by definition. Percentages then resolve against the one box
   that matters, the reserve and the plate are two halves of the same number,
   and no renderer's grid is touched. `--lv-heroimg-span` is that number, and a
   renderer may re-point it; `45%` is `A6`'s split and the ratio §2.1 asks for.

   `:has()` gates the reserve on a plate ACTUALLY being present — a treatment
   attribute with no picture under it (the `none` case, and every hero below
   its media floor) must not hold 45% of the fold open for nothing (§1.6). */
:is([data-lv-hero-image='split'], [data-lv-hero-image='framed'], [data-lv-hero-image='offset']):has(.lv-heroimg) {
  --lv-heroimg-span: 45%;
  position: relative;
}

@container (min-width: 52rem) {
  :is([data-lv-hero-image='split'], [data-lv-hero-image='framed'], [data-lv-hero-image='offset']):has(.lv-heroimg)
    > .lv-sec__inner {
    position: relative;
    padding-inline-end: calc(var(--lv-heroimg-span) + var(--lv-space-8));
  }

  /* The reserve and the plate read ONE number, so an override has to reach
     both — `offset`'s wider column is declared on the figure below and lifted
     to the inner here rather than written twice. */
  [data-lv-hero-image='offset']:has(.lv-heroimg) > .lv-sec__inner { --lv-heroimg-span: 48%; }

  :is([data-lv-hero-image='split'], [data-lv-hero-image='framed'], [data-lv-hero-image='offset'])
    > .lv-sec__inner
    > .lv-heroimg {
    position: absolute;
    inset-block: 0;
    inset-inline-end: 0;
    inline-size: var(--lv-heroimg-span);
    /* Stretched, so the ratio stands down and the crop does the work — the
       `object-position` declared on `.lv-heroimg` above is what keeps that
       honest rather than an accidental centre crop (§1.5). */
    --lv-heroimg-ratio: auto;
    block-size: auto;
  }

  /* `split` — the crop runs to the section's own edges: past the capped inner
     on the inline side, past the section's block padding above and below. The
     inline reach is computed rather than guessed — `100cqi` is this section's
     content box (`.lv-sec` is the container), so the distance from the inner's
     edge to the section's is half the overflow plus the gutter the bleed floor
     re-applies. Container units, not `vw`, so a hero placed inside a split
     column reaches ITS column's edge and not the viewport's. */
  [data-lv-hero-image='split'] > .lv-sec__inner > .lv-heroimg {
    --lv-heroimg-reach: calc(
      max(0px, (100cqi - var(--lv-container-max, 72rem)) / 2) + var(--lv-gutter, 0px)
    );
    inset-inline-end: calc(-1 * var(--lv-heroimg-reach));
    /* `--lv-heroimg-block-reach` is how far the plate has to travel to meet
       the section's block edges, and it is a variable rather than
       `--lv-sec-pad` because the openers do not all pay their vertical rhythm
       through that token: `open.pitch`'s six renderers re-declare
       `padding-block` outright under `[data-lv-bleed]`, and a plate insetting
       by the token would stop short of the edge by exactly the difference
       (measured on `gridline`: 140px of daylight under a "full-bleed" crop).
       Each renderer states its own; the token is the fallback. */
    inset-block: calc(-1 * var(--lv-heroimg-block-reach, var(--lv-sec-pad, 0px)));
    inline-size: calc(var(--lv-heroimg-span) + var(--lv-heroimg-reach));
  }

  /* `offset` — the plate escapes the frame on ONE axis, by one spacing step,
     and runs PAST the section's own block end rather than stopping at the
     inner's. Measured before that second half existed: 25.1% of the opening on
     `tide`/`ghost` against `split`'s 45% next door, because a plate bounded by
     the inner top and bottom is shorter than the section by two paddings — the
     overhang was decorative and the height was the thumbnail's. It is a wider
     column too (48% against 45%): an offset plate is the composition's focal
     object, and the copy it overlaps is what pays for it. */
  [data-lv-hero-image='offset'] > .lv-sec__inner > .lv-heroimg {
    --lv-heroimg-span: 48%;
    inset-block: 0
      calc(-1 * (var(--lv-heroimg-block-reach, var(--lv-sec-pad, 0px)) + var(--lv-space-5)));
  }
}

/* Nothing an opening does may turn a page into one that scrolls sideways: a
   split crop reaches the section's inline edge, an offset plate overhangs it,
   and the scrim floor over-reaches on purpose. `clip` rather than `hidden`
   because it establishes no scroll container, so a sticky descendant elsewhere
   in the section still sticks.

   INLINE ONLY, and that is the whole of `offset`'s design: the plate escapes
   the frame on the BLOCK axis by one spacing step, and `overflow: clip` on
   both axes would clip exactly the overhang the treatment exists for — the
   move would silently become `framed`, one size wider. `overflow-x: clip` with
   `overflow-y: visible` is the one legal mixed pair (unlike `hidden`/`visible`,
   which the used-value rules would coerce), so it is available here and it is
   the honest one. */
[data-lv-hero-image] { overflow-x: clip; }

/* THE MOBILE FLOOR, and it is one rule for all three treatments. Below the
   split point every treatment becomes the same thing — a wide band above the
   copy — because a 360px column has no second half to give a photograph and a
   4/4.6 plate at that width is a picture taller than the phone. `16 / 10` is
   the band; the overhang, the absolute placement and the reserve all stand
   down together. The band is above the copy rather than below it because the
   plate is first in the DOM in every renderer of the family: the reading order
   is `stage → lead`, and on a phone the visual order finally agrees with it
   without a single `order` declaration. */
@container (max-width: 51.999rem) {
  [data-lv-hero-image='split'] .lv-heroimg,
  [data-lv-hero-image='framed'] .lv-heroimg,
  [data-lv-hero-image='offset'] .lv-heroimg {
    position: static;
    --lv-heroimg-ratio: 16 / 10;
    inline-size: 100%;
    block-size: auto;
    min-block-size: 0;
    margin-inline-end: 0;
  }

  [data-lv-hero-image='split'] > .lv-sec__inner,
  [data-lv-hero-image='framed'] > .lv-sec__inner,
  [data-lv-hero-image='offset'] > .lv-sec__inner { padding-inline-end: 0; }

  /* THE PHONE FLOOR, and it is the one the audit's F5 was really about.
     Every opener in this family lays its inner out as a grid with no declared
     tracks, so its single column is `auto` — and an `auto` track's MINIMUM is
     min-content. One long Danish compound in a display headline
     ("varmepumper" at `lodstil`'s step-4) therefore holds the whole track open
     past the phone: measured at 539px inside a 360px section, which is a
     picture cropped to two thirds and a headline with its last syllables off
     the glass. `minmax(0, 1fr)` is the same floor `.lv-sec__inner` already
     writes as `min-inline-size: 0` for the same reason, applied to the track
     rather than to the box. The `break-word` companion this block used to
     carry is gone — not weakened, GENERALISED: it now lives beside
     `.lv-sec__title`'s wrapping rules as `anywhere` on every heading in a
     section, at every width, because the compound that will not fit its column
     is a display-step problem rather than a phone-width one and was measured
     at 1280 as well (operator review 2026-09-11). */
  [data-lv-hero-image] > .lv-sec__inner { grid-template-columns: minmax(0, 1fr); }
}

/* ── Affordance layer (G25) ────────────────────────────────────────────────
   One hover/active grammar, spent once here and consumed by every card,
   link and interactive tile the next component waves touch — calibrated
   against `design-reference/dennis-niess-reference.html`'s `.svc`
   (photographic service card) and `.story-link` (arrow link).

   THE CONTRACT — three classes, applied at the call site:

     .lv-affordance-lift        on the interactive root (an `<a>` or
                                 `<button>` wrapping a `.lv-card` and/or a
                                 `.lv-media`). Lifts on hover, presses on
                                 `:active`. If the root also contains a
                                 `.lv-media`, that media's `img`/`video` zooms
                                 in step — no extra class needed.

     .lv-link--arrow             on an inline text link that carries a
                                 trailing `<svg aria-hidden="true">…</svg>`
                                 arrow — the arrow slides on hover. The svg
                                 needs no class of its own.

     (tactile `:active` feedback ships on `.lv-affordance-lift` and
     `.lv-link--arrow` directly — nothing extra to apply.)

   Usage:
     <a class="lv-card lv-affordance-lift" href="…">
       <span class="lv-media lv-media--wide"><img …></span>
       …
     </a>
     <a class="lv-link--arrow" href="…">Mere om os
       <svg width="14" height="14" viewBox="0 0 16 16" aria-hidden="true">…</svg>
     </a>

   MOTION SAFETY — deliberately NOT a local `@media (prefers-reduced-motion)`
   block. Every class below is `[class*="lv-"]`, which the file's existing
   backstop (§ Motion, further down this file — v1.0.28) already collapses to
   a near-zero transition duration under `prefers-reduced-motion: reduce`.
   Writing a second guard here would be the second copy of a rule §5.7 of
   .impeccable.md's "one of everything" exists to prevent; the transform END
   STATE still applies (hover still reads as hovered, `:active` still presses)
   because .impeccable.md §4 Motion requires the end state to stay reachable,
   just without the animated glide. */

/* THE STRUCTURAL HALF OF THE CONTRACT (component-audit-20260910). A card whose
   ROOT is the anchor is clickable by construction, and asking it to also
   remember an opt-in class is how three components (`explain.capability-bento`,
   `explain.capability-grid`, `explain.integrations`) shipped href-bearing tiles
   with no hover life at all. `.lv-card:has(> a.lv-card__cover)` is the same
   statement for the stretched-link shape. Each selector keeps its own
   specificity — deliberately a selector LIST and not `:is()`, which would take
   the highest of the three and quietly re-weight `.lv-affordance-lift` against
   every component that overrides it.

   A tile that is NOT clickable is untouched, and that is the other half of
   §1.1: motion implies action, so a card with nothing to press must not move.
   That is why this is two structures rather than `.lv-card`. */
.lv-affordance-lift,
a.lv-card,
button.lv-card,
.lv-card:has(> a.lv-card__cover) {
  /* THE LIFT MOVES WITH `translate`, NOT WITH `transform`, AND THAT IS LOAD-
     BEARING (2026-09-11). Almost every tile this class lands on also carries
     `lvt-reveal`, and the THEME stylesheet — which render.mjs:563 concatenates
     AFTER this file — ends the entrance with `.lvt-reveal[data-shown] {
     transform: none }` at (0,2,0). `.lv-affordance-lift:hover` is (0,2,0) too,
     so the later rule won and the container half of §1.1's three-layer hover
     was dead on arrival on every revealed card: the shadow changed, the card
     never moved. Measured this pass on `explain.integrations` —
     `box-shadow` took the lift value, `transform` stayed `none`.

     `translate` and `scale` are their own properties. The browser applies them
     BEFORE `transform`, so the entrance and the hover compose instead of
     overwriting one another, and neither plane has to know the other's
     specificity. It is also the honest split: the reveal owns where the card
     ARRIVES, the affordance owns where it goes when you point at it. */
  transition: translate var(--lv-dur-state) var(--lv-ease),
              scale var(--lv-dur-state) var(--lv-ease),
              box-shadow var(--lv-dur-state) var(--lv-ease);
}

/* Hover MOTION is pointer-gated, the same clause `prove.people`'s linked
   index states as "POINTER PREVIEW IS POINTER-ONLY": a touch screen latches
   `:hover` after a tap, and a card left floating 6px off the page with its
   photo mid-zoom is a stuck state, not an affordance. `:active` (below) stays
   ungated — a press exists on every pointer type. */
@media (hover: hover) and (pointer: fine) {
  .lv-affordance-lift:hover,
  a.lv-card:hover,
  button.lv-card:hover,
  .lv-card:has(> a.lv-card__cover):hover {
    translate: 0 -6px;
    box-shadow: var(--lv-lift-2);
  }
}

.lv-affordance-lift:active,
a.lv-card:active,
button.lv-card:active,
.lv-card:has(> a.lv-card__cover):active { scale: 0.97; }

/* Media zoom — scoped to `.lv-media`'s own `img`/`video` rule so the zoom
   never outgrows the `overflow: hidden` frame that already clips it above. */
.lv-affordance-lift .lv-media img,
.lv-affordance-lift .lv-media video,
a.lv-card .lv-media img,
a.lv-card .lv-media video,
.lv-card:has(> a.lv-card__cover) .lv-media img,
.lv-card:has(> a.lv-card__cover) .lv-media video {
  transition: transform var(--lv-dur-panel) var(--lv-ease);
}

/* Same pointer gate as the lift above — the zoom is half of the same motion. */
@media (hover: hover) and (pointer: fine) {
  .lv-affordance-lift:hover .lv-media img,
  .lv-affordance-lift:hover .lv-media video,
  a.lv-card:hover .lv-media img,
  a.lv-card:hover .lv-media video,
  .lv-card:has(> a.lv-card__cover):hover .lv-media img,
  .lv-card:has(> a.lv-card__cover):hover .lv-media video {
    transform: scale(1.045);
  }
}

/* WCAG 2.2 SC 2.5.8 — 24×24 CSS px minimum.
   This is the "read more →" affordance that closes a card, and it is NOT
   covered by SC 2.5.8's inline exception: the exception is for a target "in a
   sentence or block of text", and nothing precedes or follows this on its line.
   It is `inline-flex` with an arrow child, so it was never a text run either.
   Measured at 106×15 before this rule (visual-matrix.json, `touch-target`).
   The block grows around the text rather than the text growing, so the type,
   colour and the arrow's own motion are untouched — only the hit area. */
.lv-link--arrow {
  display: inline-flex;
  align-items: center;
  min-block-size: 24px;
  gap: var(--lv-space-2);
  color: var(--lv-text-link);
  text-decoration: none;
  font-weight: var(--lv-weight-medium);
}

.lv-link--arrow:hover { text-decoration: underline; }
.lv-link--arrow:active { transform: scale(0.97); }

.lv-link--arrow svg {
  flex: none;
  transition: transform var(--lv-dur-fast) var(--lv-ease);
}

/* The arrow's slide is motion, so it carries the same pointer gate as the
   lift; the underline hover above stays ungated — a latched underline is
   harmless where a latched translate is not. */
@media (hover: hover) and (pointer: fine) {
  .lv-link--arrow:hover svg { transform: translateX(3px); }
}

/* ── Icons ───────────────────────────────────────────────────────────────────
   One class, so that six components carrying an icon slot do not each invent a
   swatch with its own size, radius and tint. `explain.capability-grid` had the
   only such rule until 2026-08-07 and it lived in that component's own scoped
   block, which is exactly how a second one would have drifted.

   The drawing inherits `currentColor`, so the tint below is the ONLY colour
   decision, and `--lv-brand-soft` / `--lv-brand-strong` are the tenant's. The
   plain variant drops the surface for rows and lists, where a filled square per
   line is louder than the content it labels. */

.lv-icon {
  display: grid;
  place-items: center;
  flex: none;
  inline-size: var(--lv-space-7);
  block-size: var(--lv-space-7);
  border-radius: var(--lv-radius-sm);
  background: var(--lv-brand-soft);
  color: var(--lv-brand-strong);
}

.lv-icon--plain {
  inline-size: auto;
  block-size: auto;
  border-radius: 0;
  background: none;
  color: var(--lv-brand-strong);
}

.lv-icon--lg {
  inline-size: var(--lv-space-8);
  block-size: var(--lv-space-8);
  border-radius: var(--lv-radius-md);
}

/* ── Trust marks (G4/G16) ─────────────────────────────────────────────────
   The chip + the star-row's ink role. The inline SVG source markup itself —
   'google' | 'trustpilot' | 'facebook' plus the star glyph — is generated by
   `packages/registry/src/trust-marks`, on the same `renderIcon`-shaped
   pattern `packages/registry/src/icons` already established: a TS module
   returns complete `<svg>` markup, a renderer drops it in with `set:html`,
   and these two classes are what it drops the markup INTO. No renderer
   consumes either yet — this is the shared surface the next two waves
   (review-source attribution, hero/quote trust strips) build on, so nothing
   here may assume a particular component's markup.

   Usage:
     import { renderTrustMark, renderStarRow } from '../../../src/trust-marks/index.js';
     <span class="lv-trust-mark" set:html={renderTrustMark('google')} />
     <span class="lv-num" set:html={renderStarRow(4.7, { label: '4,7 ud af 5 stjerner' })} /> */

.lv-trust-mark {
  display: grid;
  place-items: center;
  flex: none;
  inline-size: 2.1rem;
  block-size: 2.1rem;
  border-radius: var(--lv-radius-pill);
  background: var(--lv-surface);
  box-shadow: inset 0 0 0 1px var(--lv-line);
}

.lv-trust-mark--lg {
  inline-size: 2.75rem;
  block-size: 2.75rem;
}

/* `currentColor` stars (packages/registry/src/trust-marks) read this role,
   same pattern as the eyebrow above: a brand-coloured mark that has to
   survive a banded/dark placement (the reference's `.voice` quote band)
   without painting the brand onto the brand. */
.lv-star-row {
  display: inline-flex;
  align-items: center;
  gap: 1px;
  vertical-align: -1px;
  color: var(--lv-ink-accent, var(--lv-brand-strong));
}

/* ── Chips: a filter entry point, per audit §8.4 ─────────────────────────── */

.lv-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lv-space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.lv-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--lv-space-2);
  min-block-size: 36px;
  padding-inline: var(--lv-space-4);
  border: 0;
  border-radius: var(--lv-radius-pill);
  background: var(--lv-surface);
  box-shadow: inset 0 0 0 1px var(--lv-line-control);
  font: var(--lv-weight-medium) var(--lv-text-sm) / 1 var(--lv-font-ui);
  color: var(--lv-text-primary);
  text-decoration: none;
  transition: background-color var(--lv-dur-state) var(--lv-ease);
}

.lv-chip:hover { background: var(--lv-surface-raised); }

@media (pointer: coarse) {
  .lv-chip { min-block-size: 44px; }
}

/* ── Label/value pairs: specs, opening hours, practical detail ───────────── */

.lv-kv {
  display: grid;
  grid-template-columns: minmax(8rem, max-content) 1fr;
  gap: var(--lv-space-2) var(--lv-space-5);
  margin: 0;
}

.lv-kv dt {
  font-size: var(--lv-text-sm);
  font-weight: var(--lv-weight-medium);
  color: var(--lv-text-tertiary);
}

.lv-kv dd {
  margin: 0;
  color: var(--lv-text-primary);
}

/* ── The empty state ─────────────────────────────────────────────────────────
   Audit §5.0 makes this a first-class, editable, action-bearing surface on
   every `browse.*` intent and every external binding. LPH had exactly one
   designed empty state in the whole library, on a per-tenant component. The
   dashed hairline is the one place in the system where a border is dashed, so
   it reads as "nothing here yet" and not as "a card". */

.lv-empty {
  display: flex;
  flex-direction: column;
  align-items: start;
  gap: var(--lv-space-3);
  max-width: 48ch;
  padding: var(--lv-space-7);
  border: 1px dashed var(--lv-line-strong);
  border-radius: var(--lv-radius-lg);
  background: var(--lv-surface-raised);
}

.lv-empty__title {
  margin: 0;
  font-size: var(--lv-text-md);
  font-weight: var(--lv-weight-semibold);
  color: var(--lv-text-primary);
}

.lv-empty__body {
  margin: 0;
  color: var(--lv-text-secondary);
  line-height: var(--lv-leading-normal);
}

/* ── Prose: the one long-form measure in the system ──────────────────────── */

.lv-prose {
  max-width: var(--lv-measure);
  color: var(--lv-text-primary);
  line-height: var(--lv-leading-normal);
}

.lv-prose :where(h2, h3) { margin-block: var(--lv-space-6) var(--lv-space-3); }
.lv-prose :where(p, ul, ol) { margin-block: 0 var(--lv-space-4); }
.lv-prose :where(a) { color: var(--lv-text-link); }
/* Prose is CLIENT-authored: an editor pastes an image at capture size. Without
   a measure clamp it renders at natural width — measured on the lodstil
   showcase's 1600px figure: +1277px of document scroll at 390. Same defect
   class as the `.lv-vh`/scroller note above: content the operator cannot see
   deciding the page's width. */
.lv-prose :where(img, video) { max-inline-size: 100%; block-size: auto; }
.lv-prose :where(figure) { margin-inline: 0; }
.lv-prose--wide { max-width: 60rem; }
.lv-prose--full { max-width: none; }

/* ── Motion ──────────────────────────────────────────────────────────────────
   Nothing in this file animates on load. The one orchestrated moment a page
   gets belongs to the page, not to eighty sections each staggering their own
   children — that is how a site ends up feeling like a slot machine. */

@media (prefers-reduced-motion: reduce) {
  .lv-chip { transition: none; }

  /* Backstop, not the primary mechanism. Every component that animates
     deliberately (dialogs, `:has()` reveals, scroll-spy) already carries its
     own local `@media (prefers-reduced-motion: reduce)` block, because only
     the component knows which end-state the motion resolves to. This rule
     exists for the 80+ components that DON'T animate deliberately but still
     inherit `--lv-dur-state`/`--lv-dur-panel` transitions from ordinary
     hover/focus states, and for whatever the next component adds tomorrow
     without remembering to write its own guard.

     Durations collapse to near-zero rather than `transition: none` /
     `animation: none` — a hard `none` can suppress the `transitionend` /
     `animationend` event some components wait on to flip a class or remove
     a node, silently breaking that end-state instead of just skipping the
     motion to reach it. 0.01ms still fires those events; nothing visibly
     moves. `scroll-behavior: auto` covers `html { scroll-behavior: smooth }`
     if a future component ever sets it — imperative
     `element.scrollIntoView({ behavior: 'smooth' })` calls are CSS-invisible
     and stay gated in their own script (see act.qualify/questionnaire.astro,
     orient.jump-nav/nav.astro, explain.scroll-pinned-showcase/showcase.astro
     for the pattern: check `matchMedia('(prefers-reduced-motion: reduce)')`
     and pass `'auto'` instead of `'smooth'`). */
  [class*="lv-"], [class*="lv-"] * {
    transition-duration: 0.01ms !important;
    transition-delay: 0s !important;
    animation-duration: 0.01ms !important;
    animation-delay: -0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ── Split: copy beside media ─────────────────────────────────────────────────
   Used by every "show and tell" intent. One implementation, one reversal
   modifier — the alternating rhythm that LPH shipped as a separate component
   (`alternating-feature-list`, 203 placements) is `:nth-child(even)` here. */

.lv-split {
  display: grid;
  gap: var(--lv-space-6);
  align-items: center;
}

@container (min-width: 46rem) {
  .lv-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .lv-split--reverse > :first-child { order: 2; }
  .lv-split--wide-copy { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
}

/* ── Steps: a numbered or dated sequence ─────────────────────────────────── */

.lv-steps {
  display: grid;
  gap: var(--lv-space-5);
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: lv-step;
}

.lv-steps > li {
  position: relative;
  counter-increment: lv-step;
  padding-inline-start: var(--lv-space-8);
}

.lv-steps > li::before {
  content: counter(lv-step);
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 0;
  display: grid;
  place-items: center;
  inline-size: var(--lv-space-6);
  block-size: var(--lv-space-6);
  border-radius: var(--lv-radius-pill);
  background: var(--lv-brand-soft);
  color: var(--lv-brand-strong);
  font: var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-mono);
  font-variant-numeric: tabular-nums;
}

/* The connector, drawn from the marker rather than between the items, so the
   last step has no dangling tail. */
.lv-steps > li:not(:last-child)::after {
  content: '';
  position: absolute;
  inset-inline-start: calc(var(--lv-space-6) / 2);
  inset-block: var(--lv-space-6) calc(var(--lv-space-5) * -1);
  inline-size: 1px;
  background: var(--lv-line);
}

/* `icon` was an enum value with nothing behind it. Only `none` and `date` had
   rules, so choosing "ikon" fell through to the counter and drew the numbers —
   the customer picked a different marker and the page did not change. It now
   draws the step's own icon in the marker's place, deliberately keeping the
   numbered variant's geometry so the connector between steps still lands. */
.lv-steps--marker-icon > li::before { content: none; }

.lv-steps__icon {
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 0;
  inline-size: var(--lv-space-6);
  block-size: var(--lv-space-6);
  border-radius: var(--lv-radius-pill);
}

.lv-steps--marker-none > li::before,
.lv-steps--marker-date > li::before { content: none; }
.lv-steps--marker-none > li,
.lv-steps--marker-date > li { padding-inline-start: 0; }
.lv-steps--marker-none > li:not(:last-child)::after,
.lv-steps--marker-date > li:not(:last-child)::after { content: none; }

@container (min-width: 52rem) {
  .lv-steps--horizontal {
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
  }

  .lv-steps--horizontal > li:not(:last-child)::after {
    inset: calc(var(--lv-space-6) / 2) calc(var(--lv-space-5) * -1) auto var(--lv-space-6);
    inline-size: auto;
    block-size: 1px;
  }
}

/* ── connector: 'line' — opt-in, default 'none' (G13) ─────────────────────
   The numbered/icon marker above already threads a short segment between
   adjacent badges — chained per-<li>, the same generated-content technique
   the reference's own chalk line uses, just too quiet to read as ONE line
   and silent for marker: 'date' | 'none'. `connector: 'line'` widens that
   segment, gives every marker a peg (the badge itself for number/icon, a
   plain accent dot for date/none), and rings the peg in --lv-surface — the
   section's OWN surface, which chrome.mjs re-points inside a brand band
   (see the accent-ink role note at the top of this file) — so the peg reads
   as sitting ON the line rather than fusing with it, on any tone.

   Reflow is inherited for free: the default (vertical) axis is a permanent
   spine, since steps are already one column at every width; paired with
   axis: 'horizontal' the line runs left-to-right at the same >=52rem
   container breakpoint `--horizontal` already reflows at above, and drops
   back to this vertical rule below it. Nothing here animates — it is a
   static line, so there is nothing for prefers-reduced-motion to disable. */

.lv-steps--connector-line > li::before,
.lv-steps--connector-line .lv-steps__icon {
  box-shadow: 0 0 0 var(--lv-space-1) var(--lv-surface);
}

.lv-steps--connector-line.lv-steps--marker-none > li::before,
.lv-steps--connector-line.lv-steps--marker-date > li::before {
  content: '';
  display: block;
  inline-size: var(--lv-space-6);
  block-size: var(--lv-space-6);
  border-radius: var(--lv-radius-pill);
  background: var(--lv-brand-strong);
  box-shadow: 0 0 0 var(--lv-space-1) var(--lv-surface);
}

.lv-steps--connector-line.lv-steps--marker-none > li,
.lv-steps--connector-line.lv-steps--marker-date > li {
  padding-inline-start: var(--lv-space-8);
}

.lv-steps--connector-line.lv-steps--marker-none > li:not(:last-child)::after,
.lv-steps--connector-line.lv-steps--marker-date > li:not(:last-child)::after {
  content: '';
}

.lv-steps--connector-line > li:not(:last-child)::after {
  inline-size: 2px;
}

@container (min-width: 52rem) {
  .lv-steps--connector-line.lv-steps--horizontal > li:not(:last-child)::after {
    block-size: 2px;
  }
}

/* ── markerLabel — the mono "TRIN n" kicker (G14) ──────────────────────────
   Still the SAME CSS counter: the number is `counter(lv-step)`, generated
   exactly as the plain numbered pill already generates it — only the prefix
   word and the box it sits in change. `attr(data-marker-label)` reads the
   per-<li> attribute the renderer writes, so the label has one source of
   truth (the `markerLabel` prop) and needs no CSS string-escaping. Only
   reachable with marker: 'number' — the renderer gates the class on that,
   so this never fights icon/date/none. */

.lv-steps--kicker > li {
  padding-inline-start: 0;
}

.lv-steps--connector-line.lv-steps--kicker > li {
  padding-inline-start: var(--lv-space-6);
}

.lv-steps--kicker > li::before {
  content: attr(data-marker-label) ' ' counter(lv-step);
  position: static;
  display: block;
  inline-size: auto;
  block-size: auto;
  border-radius: 0;
  background: none;
  box-shadow: none;
  margin-block-end: var(--lv-space-2);
  color: var(--lv-ink-accent, var(--lv-brand-strong));
  font: var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-mono);
  letter-spacing: var(--lv-tracking-label);
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
}

/* Belt-and-braces: win over the ring the connector-line rule above adds to
   every marker's ::before, regardless of stylesheet order — the kicker
   text has no badge to ring. */
.lv-steps--connector-line.lv-steps--kicker > li::before {
  box-shadow: none;
  background: none;
}

.lv-steps--kicker .lv-card__title {
  font-size: var(--lv-text-lg);
}

/* The kicker's own peg + line: a single generated box per <li>, its accent
   dot / surface ring / hairline drawn as three layered backgrounds — the
   same technique the eyebrow tick above this file uses, so no renderer
   carries inline SVG for a decoration. Vertical by default; the horizontal
   variant rotates which axis is "inline" vs "block" at the identical 52rem
   container breakpoint every other horizontal rule in this file uses. */

/* Replaced 2026-08-15 (explain modernization): selector list gains --marker-chip. */
.lv-steps--connector-line.lv-steps--kicker > li::after,
.lv-steps--connector-line.lv-steps--marker-chip > li::after {
  content: '';
  position: absolute;
  inset-inline-start: 0;
  inset-block: 0 calc(var(--lv-space-6) * -1);
  inline-size: var(--lv-space-3);
  /* The base connector above sets `background: var(--lv-line)` — a SHORTHAND,
     so its background-color survives this rule's image/size/position longhands
     and floods the whole peg box as a solid bar (it covered the TRIN kickers
     on every non-last step of the acceptance render). The kicker's line is a
     sized gradient layer; the box itself must stay clear. */
  background-color: transparent;
  background-image:
    radial-gradient(circle, var(--lv-brand-strong) 0 32%, transparent 33%),
    radial-gradient(circle, var(--lv-surface) 0 46%, transparent 47%),
    linear-gradient(var(--lv-line), var(--lv-line));
  background-repeat: no-repeat;
  background-position: center top, center top, center top;
  background-size:
    var(--lv-space-3) var(--lv-space-3),
    var(--lv-space-3) var(--lv-space-3),
    2px 100%;
}

/* Replaced 2026-08-15 (explain modernization): selector list gains --marker-chip. */
.lv-steps--connector-line.lv-steps--kicker > li:last-child::after,
.lv-steps--connector-line.lv-steps--marker-chip > li:last-child::after {
  inset-block-end: auto;
  block-size: var(--lv-space-3);
  background-image:
    radial-gradient(circle, var(--lv-brand-strong) 0 32%, transparent 33%),
    radial-gradient(circle, var(--lv-surface) 0 46%, transparent 47%);
  background-size:
    var(--lv-space-3) var(--lv-space-3),
    var(--lv-space-3) var(--lv-space-3);
}

@container (min-width: 52rem) {
  /* Horizontal, the connector row sits across the TOP of every step — where
     the in-flow kicker text also starts. Clear it: the li steps down by the
     row's own height plus one breath, so "TRIN n" reads BELOW the drawn line
     exactly as the reference's chalk line does. Vertical needs nothing — the
     line is a left column there and the li's inline padding already clears it. */
  /* Replaced 2026-08-15 (explain modernization): selector list gains --marker-chip. */
  .lv-steps--connector-line.lv-steps--kicker.lv-steps--horizontal > li,
  .lv-steps--connector-line.lv-steps--marker-chip.lv-steps--horizontal > li {
    padding-block-start: calc(var(--lv-space-3) + var(--lv-space-2));
  }

  /* Replaced 2026-08-15 (explain modernization): selector list gains --marker-chip. */
  .lv-steps--connector-line.lv-steps--kicker.lv-steps--horizontal > li::after,
  .lv-steps--connector-line.lv-steps--marker-chip.lv-steps--horizontal > li::after {
    inset-block-start: 0;
    inset-inline: 0 calc(var(--lv-space-6) * -1);
    inline-size: auto;
    block-size: var(--lv-space-3);
    background-position: left center, left center, left center;
    background-size:
      var(--lv-space-3) var(--lv-space-3),
      var(--lv-space-3) var(--lv-space-3),
      100% 2px;
  }

  /* Replaced 2026-08-15 (explain modernization): selector list gains --marker-chip. */
  .lv-steps--connector-line.lv-steps--kicker.lv-steps--horizontal > li:last-child::after,
  .lv-steps--connector-line.lv-steps--marker-chip.lv-steps--horizontal > li:last-child::after {
    inset-inline-end: auto;
    inline-size: var(--lv-space-3);
    background-image:
      radial-gradient(circle, var(--lv-brand-strong) 0 32%, transparent 33%),
      radial-gradient(circle, var(--lv-surface) 0 46%, transparent 47%);
    background-size:
      var(--lv-space-3) var(--lv-space-3),
      var(--lv-space-3) var(--lv-space-3);
  }
}

/* ── Note: a callout inside running text ─────────────────────────────────────
   Deliberately NOT a coloured left stripe — that is the single most
   over-produced pattern in this class of component and the design protocol
   bans it outright. The signal is a hairline box plus a labelled kicker. */

.lv-note {
  max-width: var(--lv-measure);
  padding: var(--lv-space-5);
  border-radius: var(--lv-radius-md);
  background: var(--lv-surface-raised);
  box-shadow: inset 0 0 0 1px var(--lv-line);
}

.lv-note--warn { background: var(--lv-warn-surface); color: var(--lv-warn-text); }
.lv-note--ok { background: var(--lv-ok-surface); color: var(--lv-ok-text); }
.lv-note--bad { background: var(--lv-bad-surface); color: var(--lv-bad-text); }

.lv-note__kicker {
  display: block;
  margin-block-end: var(--lv-space-2);
  font: var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-ui);
  letter-spacing: var(--lv-tracking-eyebrow);
  text-transform: uppercase;
}

/* ── Quote ───────────────────────────────────────────────────────────────── */

.lv-quote {
  max-width: var(--lv-measure);
  margin: 0;
}

.lv-quote__text {
  margin: 0;
  font-size: var(--lv-text-lg);
  line-height: var(--lv-leading-snug);
  color: var(--lv-text-primary);
  text-wrap: pretty;
}

.lv-quote--display .lv-quote__text {
  font-size: var(--lv-text-xl);
  font-weight: var(--lv-weight-medium);
}

/* The one substring a pullquote marks (G15). `prove.customer-voice`'s
   `pullquote` layout builds this via `src/text-emphasis`'s escape-then-wrap
   — never trusted markup — and drops it in with `set:html`, so this class
   only ever wraps text that renderer already fully HTML-escaped. Token-only
   ink — the same accent role `.lv-star-row`/`.lv-trust-mark` (earlier in
   this file) and `.lv-voices__rating` use, for the same dark-band reason. */
.lv-quote__accent {
  color: var(--lv-ink-accent, var(--lv-brand-strong));
  font-weight: var(--lv-weight-bold);
  font-style: italic;
}

.lv-quote__by {
  display: flex;
  align-items: center;
  gap: var(--lv-space-3);
  margin-block-start: var(--lv-space-4);
  font-size: var(--lv-text-sm);
  color: var(--lv-text-tertiary);
}

/* ── Portrait ────────────────────────────────────────────────────────────── */

.lv-portrait {
  flex: none;
  inline-size: var(--lv-portrait-size, 3rem);
  block-size: var(--lv-portrait-size, 3rem);
  border-radius: var(--lv-radius-pill);
  object-fit: cover;
  background: var(--lv-surface-sunken);
}

.lv-portrait--lg { --lv-portrait-size: 5.5rem; }

/* ── Figure: one number, one label. Never a card ─────────────────────────── */

.lv-figures {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(10rem, 100%), 1fr));
  gap: var(--lv-space-5);
  margin: 0;
}

/* The floor only, no `hyphens` and no `balance`: this is a numeral or a short
   unit string, a hyphen inside "1.240 kr." would be a lie, and there is never
   a second line to balance. `anywhere` is still what keeps a long figure from
   holding its `minmax(min(10rem, 100%), 1fr)` track open past the viewport. */
.lv-figure__value {
  font-size: var(--lv-text-2xl);
  font-weight: var(--lv-weight-semibold);
  color: var(--lv-text-primary);
  overflow-wrap: anywhere;
}

/* Replaced 2026-08-15 (prove modernization).
   PATTERN-STANDARDS §2.3(a): stats are big numeral + caps-whisper caption —
   the §1.3 eyebrow layer, not a sentence in body type. Case follows the
   theme's display-case token, same as `.lv-sec__eyebrow`/`.lv-eyebrow`, so a
   theme that opts out of uppercase opts these captions out with it. */
.lv-figure__label {
  margin: var(--lv-space-2) 0 0;
  font: var(--lv-weight-bold) var(--lv-text-xs) / var(--lv-leading-snug) var(--lv-font-ui);
  letter-spacing: var(--lv-tracking-eyebrow);
  text-transform: var(--lv-display-case, uppercase);
  font-variant-caps: var(--lv-display-variant, normal);
  /* Secondary, not tertiary: at xs the tertiary ink measured 4.47:1 in five
     themes (compatibility sweep, 2026-09-27) — a caption is text, not a rule. */
  color: var(--lv-text-secondary);
}

/* ── Actions row ─────────────────────────────────────────────────────────── */

.lv-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lv-space-3);
}

/* ── Form block — opaque always, never glass (.impeccable.md §3) ─────────── */

.lv-form {
  display: grid;
  gap: var(--lv-space-4);
  max-width: 34rem;
}

.lv-form__label {
  display: block;
  margin-block-end: var(--lv-space-2);
  font: var(--lv-weight-medium) var(--lv-text-sm) / 1 var(--lv-font-ui);
  color: var(--lv-text-secondary);
}

.lv-form__consent {
  font-size: var(--lv-text-xs);
  color: var(--lv-text-tertiary);
}

/* A refused post (`?fejl=`), inserted above the submit button by the form
   guard in `/lv.js` (`apps/site-server/form-guard.mjs`) as
   `.lv-note.lv-note--bad.lv-form__error` — the note carries the theme's own
   status tokens; this only fits it to a form. The busy cursor is the visible
   half of the guard's «Sender …» state. */
.lv-form__error {
  margin: 0;
  padding: var(--lv-space-3) var(--lv-space-4);
  font-size: var(--lv-text-sm);
}

form[aria-busy='true'] [type='submit'] { cursor: progress; }

/* ── Form success state — the shared no-JS confirmation mechanism ──────────
   `POST /api/formularer` 303-redirects back to the submitter's own page with
   BOTH `?sendt=<kind>-<placementId>` and a matching
   `#lv-sent-<kind>-<placementId>` fragment (see
   `apps/api/src/routes/formularer/index.ts`'s `redirectTarget`). The fragment
   is what does the work: a browser navigating to a URL whose hash matches an
   element's `id` applies `:target` to that element and scrolls it into view
   NATIVELY, with scripting fully disabled — the query param rides along for
   anything that later wants the same information without parsing the hash,
   but nothing here reads it.

   Every renderer that posts to `/api/formularer` (`act.apply`, `act.enquire`,
   `act.comment`, `act.subscribe`, `act.request-quote`, and `act.schedule`'s
   static fallback) wraps its `<form>` and its sibling `.lv-form-success` in
   one `[data-lv-form-shell]`. `:has()` is already load-bearing in this
   registry (`act.schedule`'s `.lv-booking__opt:has(input:checked)`), so this
   is the established technique for state-driven CSS here, not a new one. */

/* THE HONEYPOT'S HIDING PLACE (2026-08-31).

   Deliberately NOT `display: none` and NOT `hidden`: the cheap bots skip both,
   which is precisely why they are the wrong tool. Moved off-canvas instead, so
   the field is in the DOM, has a label, and looks exactly like the rest of the
   form to anything reading the markup rather than the layout.

   `position: absolute` inside the form's own containing block, `left: -9999px`
   rather than a clip, and `opacity: 0` as a second line — a browser that
   somehow lays it out still shows nothing. It is `aria-hidden` and
   `tabindex="-1"` in the markup, so no screen reader announces it and no
   keyboard path reaches it; this rule only has to keep it off the screen. */
.lv-form__trap {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

/* ── `hidden` is a promise this plane has to keep ────────────────────────────

   THE DEFECT, measured on component-audit-20260910. `browse.event-set` renders
   its "ingen kommende arrangementer" card with the `hidden` attribute whenever
   there ARE events (`events.astro:177`, and the same line in `plakat.astro` and
   `timeline.astro`) — and the card showed anyway, underneath the real events,
   on all three renderers and all seventeen theme lanes. The UA sheet's
   `[hidden] { display: none }` is a TYPE-less attribute rule at (0,1,0) in the
   user-agent origin, and any author rule at the same weight beats it. So
   `.lv-empty { display: flex }` — twenty lines up this file — silently cancelled
   the attribute for every element wearing that class.

   IT WAS NEVER ONLY `.lv-empty`. The same probe found `act.qualify`'s wizard
   controls (`<button class="lv-btn" hidden>`, questionnaire.astro:177-178) and
   `act.schedule`'s equivalents rendering visible on every lane, because
   `.lv-btn` sets `display: inline-flex` in packages/tokens. Every `display:`
   utility in this plane and in the token plane is a latent copy of the same
   bug, which is why the answer is one rule here and not a `[hidden]` override
   filed next to each of them (four renderers already carry such a local
   override — `browse.image-set`'s four galleries, `browse.content-set`'s list —
   which is the shape of a missing shared rule, not of five decisions).

   SPECIFICITY, DELIBERATELY (0,2,0). A bare `[hidden]` would be (0,1,0) and so
   would lose to any single-class `display:` rule that happens to come later in
   the cascade — and component-scoped styles are concatenated AFTER this file
   (`renderer-runtime.ts`, `stylesheet()`). `:not([hidden='until-found'])` buys
   the second unit honestly rather than with `!important`: `hidden="until-found"`
   is the one value of the attribute that must NOT become `display: none` (it
   needs `content-visibility: hidden` so find-in-page can reveal it), so the
   exclusion is correct on its own terms and the weight is a consequence. An
   intentional override stays possible at (0,3,0) — `decide.recommend` already
   holds one (`.lv-rec--answered .lv-rec__outcome[hidden]`), and it keeps working
   unchanged.

   No `!important`: this must remain a floor a component can argue with, not a
   law it cannot. */
[hidden]:not([hidden='until-found']) { display: none; }

.lv-form-success { display: none; }

.lv-form-success:target { display: block; }

/* `.lv-empty` too — `act.schedule`'s static fallback can show it (no slots
   left) beside a shell whose success block is target-active from an earlier
   submission on the same reload; a visitor who just got their confirmation
   does not also need "no times left, write to us instead" under it. */
[data-lv-form-shell]:has(.lv-form-success:target) > form,
[data-lv-form-shell]:has(.lv-form-success:target) > .lv-empty {
  display: none;
}

/* ── Chart series tokens ─────────────────────────────────────────────────────
   Registry-owned component tokens (LAYER 4). They live here rather than in
   `packages/tokens` because W2-D4 owns the registry and not the token package;
   they should migrate up the next time the token layer moves, unchanged.

   **These four values were computed, not chosen.** The brand lives in a narrow
   cool hue span (`.impeccable.md` §4: 195–260 OKLCH, chroma 0.07–0.11), which
   is hostile to categorical encoding — near hues at similar lightness are
   exactly what a dichromat reader cannot separate. The set below is the output
   of an exhaustive search over that span, scored by the data-viz validator's
   own checks, maximising the worst adjacent ΔE that still passes both modes:

     node scripts/validate_palette.js "#00989b,#0465af,#6b8ae4,#5f53ae" \
          --mode light --surface "#fbfdfe"

     [PASS] Lightness band        all 4 inside L 0.43–0.77
     [PASS] Chroma floor          all 4 >= 0.1
     [PASS] CVD separation        worst adjacent ΔE 14.0 (protan) · tritan 11.6
     [PASS] Normal-vision floor   worst adjacent ΔE 15.7 (normal)
     [PASS] Contrast vs surface   all 4 >= 3:1
     dark mode: same four checks pass; contrast reports the documented sub-3:1
     relief on slots 2 and 4, which is why `prove.chart` ships direct labels AND
     a table view rather than treating either as optional.

   Chroma is 0.14 — above the brand's 0.07–0.11 band. That is deliberate and is
   the one place the band is exceeded: the validator's chroma floor is 0.10 and
   a series at 0.11 could not clear the CVD gate. A chart is the one surface
   where colour carries data rather than mood.

   FIXED ORDER. Slot 1 is always the first series. A filter that removes a
   series never repaints the survivors. There is no slot 5: a fifth series folds
   into "Øvrige" or the chart becomes small multiples.

   ── WHY THESE DO NOT FOLLOW THE THEME'S BRAND, THOUGH THE SCENE NOW DOES ──────

   Raised 2026-08-04 as the twin of `open.atmosphere`'s navy-and-teal presets:
   four cool values on a warm-paper restaurant site read as imported. The scene
   was that defect and is fixed. This is not, and the difference is measurable.

   The scene's overlays sit UNDER TEXT whose ratio the gate already covers at
   both ends of the ramp, so re-anchoring them costs nothing. A chart's four
   values must stay separable from EACH OTHER, including for a reader who has
   lost one of the three cone channels — and they must do it at whatever hue the
   tenant's own `brand_color` happens to be, which is any hue at all.

   Measured (`test/chart-series.test.ts`, Viénot–Brettel–Mollon 1999 dichromacy
   simulation, ΔE in OKLab ×100, worst ADJACENT pair, the metric the validation
   above reports):

     shipped, fixed                       normal 15.6 · protan 13.8 · deutan 15.0 · tritan 10.8
     same set rotated onto the brand hue  collapses to 4.1 (paper, 68°),
                                          4.2 (restaurant, 52°), 4.2 (design, 322°)
     slot 1 alone following the brand      collapses to 3.7 (hue 324°)
     best hue-agnostic ladder found        6.4, over a search of 224 constructions
                                          (monotone lightness ladder × hue fan)

   The ceiling is not a search failure, it is arithmetic: a dichromat's
   separation has to come from LIGHTNESS, and keeping all four slots ≥3:1
   against the light canvas caps lightness at about 0.64, which leaves ~0.27 of
   range to split three ways. Whatever hue is left over is the channel that
   reader does not have.

   `.impeccable.md` §5 principle 1 — legible before beautiful, and the ratio
   wins — settles it. These four are a DATA encoding that happens to live in the
   brand's hue span, not a brand expression; the theme reaches this component
   through `--lv-chart-grid`, `--lv-chart-axis`, the surface it sits on and the
   type it is labelled in. If a tenant ever needs a house palette here, the way
   in is four more declared, validated values, not a rotation — and it needs
   `--lv-chart-1..4` added to `THEME_LAYER_VARS`, which is a theme-plane change
   and belongs in a report. */

:root {
  --lv-chart-1: oklch(60% 0.14 196);
  --lv-chart-2: oklch(50% 0.14 250);
  --lv-chart-3: oklch(65% 0.14 268);
  --lv-chart-4: oklch(50% 0.14 286);
  --lv-chart-grid: var(--lv-line);
  --lv-chart-axis: var(--lv-text-tertiary);
}

/* === modernization 2026-08-15: explain === */

/* Additions to the `.lv-steps` system above (explain.sequence). Two new
   presentation switches, both driven by the SAME `lv-step` counter the
   numbered pill already generates:

     .lv-steps--marker-chip   `marker: 'chip'` — the outlined stage chip from
                              motionsites/process-1: an in-flow mono pill
                              ("TRIN 1", or the bare numeral without a
                              markerLabel), outlined with an inset 1px ring in
                              the accent-ink role so it survives a banded
                              placement.

     .lv-steps--punch         `numberLook: 'over-border'`, marker: number only
                              (renderer-gated) — B7's counter-over-border:
                              each step carries a 1px top hairline and the
                              numeral punches a gap in it, backed by
                              --lv-surface (the section's OWN surface, which
                              chrome.mjs re-points inside a band) and sitting
                              astride the line.

   Selector notes, deliberate: the chip/punch `::before` rules lead with
   `.lv-steps.` (0,3,1) so they beat `.lv-steps--connector-line > li::before`'s
   surface ring (0,2,1) at any stylesheet order; the punch thread-suppression
   carries the same double class for the same reason. The five kicker
   peg/padding rules earlier in this file were extended in place with the chip
   selector (see the "Replaced 2026-08-15" provenance comments there) so
   `connector: 'line'` draws the same peg-and-line for a chip sequence as for
   a kicker one. */

/* ── marker: 'chip' — outlined stage chip (process-1) ────────────────────── */

/* Double class (0,2,1): outranks the base `.lv-steps > li` inline padding at
   any merge position, not just when this file lands after it. */
.lv-steps.lv-steps--marker-chip > li {
  padding-inline-start: 0;
}

.lv-steps.lv-steps--marker-chip > li::before {
  content: counter(lv-step);
  position: static;
  display: inline-flex;
  align-items: center;
  inline-size: auto;
  block-size: auto;
  margin-block-end: var(--lv-space-3);
  padding: calc(var(--lv-space-1) / 2) var(--lv-space-3);
  border-radius: var(--lv-radius-pill);
  background: transparent;
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--lv-ink-accent, var(--lv-brand-strong)) 45%, transparent);
  color: var(--lv-ink-accent, var(--lv-brand-strong));
  font: var(--lv-weight-bold) var(--lv-text-xs) / 1.6 var(--lv-font-mono);
  letter-spacing: var(--lv-tracking-label);
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
}

.lv-steps.lv-steps--marker-chip > li[data-marker-label]::before {
  content: attr(data-marker-label) ' ' counter(lv-step);
}

/* The chip is in-flow; the badge-anchored thread has no badge to hang from.
   `connector: 'line'` re-enables a drawn line via the peg rules above. */
.lv-steps.lv-steps--marker-chip > li:not(:last-child)::after { content: none; }

.lv-steps--connector-line.lv-steps--marker-chip > li:not(:last-child)::after { content: ''; }

/* ── numberLook: 'over-border' — B7's counter punching the top border ────── */

.lv-steps.lv-steps--punch > li {
  padding-inline-start: 0;
  padding-block-start: var(--lv-space-5);
  border-block-start: 1px solid var(--lv-line);
}

.lv-steps.lv-steps--punch > li::before {
  content: counter(lv-step);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  translate: 0 -50%;
  display: block;
  inline-size: auto;
  block-size: auto;
  border-radius: 0;
  padding-inline-end: var(--lv-space-3);
  background: var(--lv-surface);
  box-shadow: none;
  color: var(--lv-ink-accent, var(--lv-brand-strong));
  font: var(--lv-weight-bold) var(--lv-text-lg) / 1 var(--lv-font-mono);
  letter-spacing: var(--lv-tracking-label);
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
}

.lv-steps.lv-steps--punch > li[data-marker-label]::before {
  content: attr(data-marker-label) ' ' counter(lv-step);
}

/* The border IS the connector here: the badge thread — and connector-line's
   widened variant — would double-draw against it. Double class (0,3,2) so the
   suppression outranks both at any order. */
.lv-steps.lv-steps--punch > li:not(:last-child)::after { content: none; }

/* The kicker's connector PADDING rule (earlier in this file) is deliberately
   NOT extended with the chip selector: its (0,2,1) would tie with the chip
   zero-padding rule above and decide by merge position. The chip gets its own
   triple-class copy instead — (0,3,1) wins at any order. */
.lv-steps.lv-steps--connector-line.lv-steps--marker-chip > li {
  padding-inline-start: var(--lv-space-6);
}

/* === modernization 2026-08-15: prove === */

/* `.lv-figure__label` was re-cut in place (see the "Replaced 2026-08-15"
   provenance comment on the block above) — `.lv-figures`/`.lv-figure__*` are
   consumed ONLY by `prove.numbers` and `prove.case-study` (verified by grep
   across components/), both owned by that family.

   CONSOLIDATION CANDIDATE (deliberately not yet a rule — no renderer
   references it): `prove.customer-voice` (display layouts) and `prove.press`
   (band) both draw Danish guillemets + accent ink around a display quote in
   their own scoped styles. If a third quote surface appears, promote this
   block and switch the renderers' scoped rules to it:

   .lv-quote--guillemets::before { content: '»'; margin-inline-end: 0.08em; }
   .lv-quote--guillemets::after { content: '«'; margin-inline-start: 0.08em; }
   .lv-quote--guillemets::before,
   .lv-quote--guillemets::after {
     color: var(--lv-ink-accent, var(--lv-brand-strong));
     font-style: normal;
   }
*/

/* === modernization 2026-08-15: open (vision-judge fix) === */

/* open.editorial's accent-underline and word-reveal classes are injected via
   `set:html` (mastheadHeadlineHtml), so they never carry Astro's scope class —
   the component's own <style> compiled them to `.lv-masthead__accent.astro-…`,
   which matched NOTHING and the §2.1 marker underline shipped dead. They live
   here, unscoped, for exactly the reason `.lv-quote__accent` above does.
   Owner: components/open.editorial/renderers/masthead.astro (sole emitter of
   `lv-masthead__*`, verified by grep across components/). */

/* One word of the rubric carries a marker stroke in the theme's accent
   (Doctronic's serif statement). The stroke is an SVG path used as a MASK
   over a plain `background` so its colour is the token, not a hard-coded
   fill baked into a data URI — the accent follows `--lv-ink-accent`
   everywhere, including a theme band's re-point. `isolation: isolate` keeps
   the stroke's `z-index: -1` inside the word's own stacking context: behind
   the glyphs (so descenders cut through it like real marker ink), never
   behind an ancestor's ground. */
.lv-masthead__accent {
  position: relative;
  isolation: isolate;
  font-weight: inherit;
  color: inherit;
}

.lv-masthead__accent::after {
  content: '';
  position: absolute;
  z-index: -1;
  inset-inline: -0.08em;
  /* -0.06em/0.26em (not -0.14em) rode the baseline's descender zone at the
     leading this was tuned against — but that is a FIXED reach against a
     leading that varies per theme, and WAVE3 round-2 measured it landing on
     the next line's own letters in artsy and consultancy, both around a
     1.04 heading leading (line-height barely past font-size, so the actual
     inter-line gap is a couple of px, not the ~0.32em the fixed values
     assume). `1lh` is the element's OWN used line-height, so
     `(1lh - 1em) / 2` is that gap's real size at THIS theme's leading,
     whatever it is — clamping the stroke's total reach (drop + thickness)
     to a fraction of it, never more than the original 0.06em/0.26em,
     means a generous-leading theme (this pair's tuning case) renders
     byte-identical (`min()` picks the original values, the gap being
     wider), while a razor-leading theme shrinks the mark to fit the gap
     it actually has instead of drawing into the next line. `max(…, 0px)`
     floors a zero-or-negative gap (leading at or under 1) rather than
     flipping the stroke above the baseline. */
  --lv-masthead-gap: max(calc((1lh - 1em) / 2), 0px);
  --lv-masthead-reach: min(0.32em, calc(var(--lv-masthead-gap) * 0.85));
  inset-block-end: calc(var(--lv-masthead-reach) * -0.1875);
  block-size: calc(var(--lv-masthead-reach) * 0.8125);
  /* WAVE2 W2a — `--lv-marker-ink` (contract.mjs `THEME_LAYER_VARS`), default
     `--lv-ink-accent` (today's value — a theme that never sets it renders
     byte-identical). `--lv-ink-accent` itself is read far too broadly
     elsewhere (eyebrows, tick marks, accent numerals across the registry) to
     safely repoint just for this one mark; this lever lets a theme mute or
     recolour ONLY the editorial marker stroke. */
  background: var(--lv-marker-ink, var(--lv-ink-accent, var(--lv-brand-strong)));
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 10' preserveAspectRatio='none'%3E%3Cpath d='M2 7.5 C 20 3.5 45 8.5 70 5.5 S 95 4.2 98 5.6' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 10' preserveAspectRatio='none'%3E%3Cpath d='M2 7.5 C 20 3.5 45 8.5 70 5.5 S 95 4.2 98 5.6' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

/* On the cover the marker stroke prints in the cover's own ink: a brand
   accent on a scrimmed photograph is unmeasured, on-brand white is the pair
   the scrim already pays for. */
.lv-masthead--display[data-lv-bleed] .lv-masthead__accent::after {
  background: var(--lv-text-on-brand);
}

/* Word-by-word entrance (hero-8). FAIL-VISIBLE BY CONSTRUCTION: the words'
   resting state is fully visible — there is no hidden default for a noscript
   page to inherit. The entrance is an ANIMATION that only attaches once the
   shared observer stamps `data-shown` on the revealing header, and only under
   `prefers-reduced-motion: no-preference`; `both` fill holds each word at the
   keyframe's `from` during its own delay, which is what produces the stagger
   without ever hiding a word by default. */
.lv-masthead__w { display: inline-block; }

@media (prefers-reduced-motion: no-preference) {
  .lv-masthead--words .lvt-reveal[data-shown] .lv-masthead__w {
    animation: lv-masthead-word var(--lv-dur-panel) var(--lv-ease) both;
    animation-delay: calc(var(--lv-w, 0) * 55ms);
  }

  @keyframes lv-masthead-word {
    from {
      opacity: 0;
      transform: translateY(0.35em);
    }
  }
}

/* GENERATED FILE — registry component plane. */
/* charts/chart.css */
/* THE CHART STYLESHEET — one file, one meaning.
   ---------------------------------------------------------------------------
   `renderChart()` emits these class names and nothing else; this file is what
   they mean. It is imported by `prove.chart`'s Astro renderers, so the
   registry generator folds it into the site's single stylesheet — and the
   admin's Grafer stage renders the same section through the komponentvisning
   engine, so it reads this file inside the tenant's own theme too. Two copies
   of a chart's appearance is exactly the drift the Grafer tool exists to
   remove, so there is one.

   No scoped `<style>` block can do this job: the chart arrives through
   `set:html`, and Astro's scoped-class strategy cannot reach markup it did not
   compile. */

/* Token levers. Declared here, on :root, so the theme stylesheet — which the
   renderer emits AFTER the registry's — can override them at :root the same
   way `raw` and `comparison` already override `--lv-chart-1..4`.
   `--lv-chart-other` paints the folded «Øvrige» part of a donut or progress
   bar: a neutral step, never a generated fifth hue. `--lv-chart-emphasis` /
   `--lv-chart-muted` are «Fremhæv»: the highlighted mark in the site's own
   strong brand colour (already text-grade against the surface), everything
   else in the theme's tertiary text grey. Not the line grey: the muted marks
   are still data and need 3:1 against the surface (WCAG 1.4.11) — the line
   greys measure ~1.4:1 in light themes. A theme whose brand colour is itself
   a grey (raw) points `--lv-chart-emphasis` at its primary ink instead. */
:root {
  --lv-chart-other: var(--lv-text-tertiary);
  --lv-chart-emphasis: var(--lv-brand-strong);
  --lv-chart-muted: var(--lv-text-tertiary);
}

/* The plot is its own size container: the two drawings `renderChart` emits —
   a wide one and a narrow one — are chosen by the width the chart actually
   gets, not by the viewport, so a chart in a narrow column on a desktop page
   re-lays out exactly like one on a phone. */
.lv-chart__plot { display: grid; gap: var(--lv-space-4); container-type: inline-size; }
.lv-chart__legend { display: flex; flex-wrap: wrap; gap: var(--lv-space-2) var(--lv-space-4); margin: 0; padding: 0; list-style: none; font-size: var(--lv-text-sm); color: var(--lv-text-secondary); }
.lv-chart__key { display: flex; align-items: center; gap: var(--lv-space-2); }
.lv-chart__swatch { flex: none; inline-size: 12px; block-size: 12px; border-radius: 3px; }
.lv-chart__share { font-family: var(--lv-font-mono); font-feature-settings: "tnum" 1; color: var(--lv-text-tertiary); }
.lv-chart__unit { margin: 0; font-size: var(--lv-text-xs); color: var(--lv-text-tertiary); }
.lv-chart__figure { margin: 0; }
.lv-chart__svg { display: block; inline-size: 100%; block-size: auto; }
.lv-chart__svg--narrow { display: none; }
@container (max-width: 34rem) {
  .lv-chart__svg--wide { display: none; }
  .lv-chart__svg--narrow { display: block; }
}
.lv-chart__grid { stroke: var(--lv-chart-grid); stroke-width: 1; }
.lv-chart__zero { stroke: var(--lv-chart-axis); stroke-width: 1; }
.lv-chart__tick { fill: var(--lv-chart-axis); font: 500 12px/1 var(--lv-font-mono); font-feature-settings: "tnum" 1; }
.lv-chart__hlabel { fill: var(--lv-text-secondary); font: 500 13px/1 var(--lv-font-ui); }
.lv-chart__value, .lv-chart__total { fill: var(--lv-text-primary); font: 600 13px/1 var(--lv-font-mono); font-feature-settings: "tnum" 1; }
.lv-chart__total { font-size: 20px; }
.lv-chart__end { fill: var(--lv-text-secondary); }
.lv-chart__line { fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.lv-chart__area { opacity: 0.12; }
/* Markers carry a 2-unit ring in the page's own surface colour so they stay
   legible where lines cross; the hit circle is the hover target, bigger than
   the mark and invisible. */
.lv-chart__dot { stroke: var(--lv-surface); stroke-width: 2; }
.lv-chart__hit { fill: transparent; }
.lv-chart__arc { fill: none; }
.lv-chart__track { fill: var(--lv-chart-grid); }
.lv-chart__track-ring { fill: none; stroke: var(--lv-chart-grid); }
.lv-chart__table summary { display: inline-flex; align-items: center; min-block-size: 44px; cursor: pointer; font-size: var(--lv-text-sm); color: var(--lv-text-secondary); }
.lv-chart__table table { width: 100%; margin-block-start: var(--lv-space-3); border-collapse: collapse; font: var(--lv-weight-regular) var(--lv-text-sm) / 1.5 var(--lv-font-ui); }
.lv-chart__table th, .lv-chart__table td { padding: var(--lv-space-2) var(--lv-space-3); border-block-end: 1px solid var(--lv-line); text-align: start; }
.lv-chart__table td { font-family: var(--lv-font-mono); font-feature-settings: "tnum" 1; text-align: end; }
.lv-chart__measured, .lv-chart__disclaimer { margin: 0; max-width: var(--lv-measure); font-size: var(--lv-text-xs); color: var(--lv-text-tertiary); }
.lv-chart__measured a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.lv-chart__cta { margin: 0; }

/* ── THE CONTENT FLOOR TREATMENT (§1.6 / §2.3) ──────────────────────────────
   Below two datapoints an axis chart is not drawn at all (`charts/figure.ts`);
   its number is promoted instead — display scale, tabular mono, the same
   attribution and source lines the plot would have carried. Theme tokens
   only, so it reads on every ground the section can be banded onto. */
.lv-chart__keyfigure { display: grid; gap: var(--lv-space-2); justify-items: start; }
.lv-chart__keyfigure-value {
  margin: 0;
  font-size: clamp(2.5rem, 8cqi, 4.5rem);
  font-weight: var(--lv-weight-bold);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--lv-text-primary);
  font-feature-settings: "tnum" 1;
}
.lv-chart__keyfigure-label { margin: 0; font-size: var(--lv-text-sm); color: var(--lv-text-secondary); }
/* components/act.qualify/renderers/counter.css */
/**
 * act.qualify · `counter` ("Skranken") — the worked card.
 *
 * Un-scoped, `.lv-cntr*`-namespaced, theme tokens only — same contract as
 * questionnaire.css. The card is the tenant theme's own raised surface with a
 * hairline; the one departure is the ledger line, a small mono tag on the
 * card's top rule, which is what makes the surface read as a counter and not
 * as another feature card.
 */

.lv-cntr__row {
  display: grid;
  gap: var(--lv-space-6);
  align-items: start;
}

@container (min-width: 52rem) {
  .lv-cntr__row { grid-template-columns: minmax(15rem, 5fr) minmax(0, 7fr); gap: var(--lv-space-8); }
}

.lv-cntr__aside {
  display: grid;
  gap: var(--lv-space-4);
  max-width: var(--lv-measure);
}

.lv-cntr__proof {
  margin: 0;
  padding-block-start: var(--lv-space-3);
  border-block-start: 1px solid var(--lv-line);
}

.lv-cntr__proof .lv-quote__text::before { content: '« '; color: var(--lv-text-tertiary); }
.lv-cntr__proof .lv-quote__text::after { content: ' »'; color: var(--lv-text-tertiary); }

.lv-cntr__card {
  position: relative;
  padding: clamp(var(--lv-space-5), 4cqi, var(--lv-space-8));
  border-radius: var(--lv-radius-lg);
  background: var(--lv-surface-raised);
  box-shadow: inset 0 0 0 1px var(--lv-line), var(--lv-lift-1);
}

/* The ledger line: the card's top rule speaks. Mono, tracked, quiet. */
.lv-cntr__ledger {
  margin: 0 0 var(--lv-space-5);
  padding-block-end: var(--lv-space-3);
  border-block-end: 1px solid var(--lv-line);
  font-family: var(--lv-font-mono);
  font-size: var(--lv-text-xs);
  letter-spacing: var(--lv-tracking-eyebrow);
  text-transform: uppercase;
  color: var(--lv-text-tertiary);
}

.lv-cntr__ask {
  display: grid;
  justify-items: start;
  gap: var(--lv-space-4);
}

.lv-cntr__form { max-width: none; }

/* Choice options as tactile tiles: the chip grammar, sized for a thumb. */
.lv-cntr__tiles { gap: var(--lv-space-3); }

.lv-cntr__tile {
  min-height: 44px;
  padding: var(--lv-space-3) var(--lv-space-5);
  font-size: var(--lv-text-sm);
}
/* components/act.qualify/renderers/journey.css */
/**
 * act.qualify · `journey` ("Rejsen") — the milestone rail.
 *
 * UN-SCOPED ON PURPOSE, like questionnaire.css: the live rail's milestones are
 * inserted by the client script, and a node created by `document.createElement`
 * never carries Astro's scoping attribute. Every selector is `.lv-jour*`-
 * namespaced; the generator inlines this file into `registry.css` verbatim.
 *
 * Only theme tokens — the rail inherits every tenant theme's own line, ink and
 * spacing voice, which is what keeps the template on the client's design
 * language instead of beside it.
 */

.lv-jour__stage {
  position: relative;
  padding-inline-start: var(--lv-space-6);
  max-width: var(--lv-measure);
}

/* The spine: a hairline the milestones sit on. The micro dial at high draws it
   (svg-line-draw binds `[data-draw] svg path[pathLength]`); at every other
   level it is simply present. */
.lv-jour__spine {
  position: absolute;
  inset-block: 0;
  inset-inline-start: calc(var(--lv-space-2) + 1px);
  width: 2px;
  height: 100%;
  color: var(--lv-line);
}

.lv-jour__rail {
  display: grid;
  gap: var(--lv-space-6);
}

.lv-jour__stops {
  display: grid;
  gap: var(--lv-space-6);
  margin: 0;
  padding: 0;
  list-style: none;
}

.lv-jour__stops:empty { display: none; }

.lv-jour__stop {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--lv-space-4);
  align-items: start;
}

/* The milestone marker: mono, ringed, opaque — it sits ON the spine, so its
   own surface is what breaks the line into segments. */
.lv-jour__num {
  display: inline-grid;
  place-items: center;
  min-width: 2.25rem;
  min-height: 2.25rem;
  margin-inline-start: calc(-1 * var(--lv-space-6));
  border-radius: var(--lv-radius-pill);
  background: var(--lv-surface);
  box-shadow: inset 0 0 0 1px var(--lv-line);
  font-family: var(--lv-font-mono);
  font-size: var(--lv-text-sm);
  color: var(--lv-text-tertiary);
  font-feature-settings: 'tnum' 1;
}

.lv-jour__stop--ask .lv-jour__num {
  color: var(--lv-brand-strong);
  box-shadow: inset 0 0 0 1px var(--lv-brand-strong);
}

.lv-jour__fields {
  border: 0;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--lv-space-3);
}

.lv-jour__fields legend { padding: 0; }

.lv-jour__sub {
  margin: 0;
  font-size: var(--lv-text-sm);
  color: var(--lv-text-secondary);
}

.lv-jour__ask {
  display: grid;
  justify-items: start;
  gap: var(--lv-space-4);
}

.lv-jour__form { max-width: none; }

.lv-jour__proof {
  margin: var(--lv-space-6) 0 0;
  padding-block-start: var(--lv-space-3);
  border-block-start: 1px solid var(--lv-line);
  max-width: var(--lv-measure);
}

.lv-jour__proof .lv-quote__text::before { content: '« '; color: var(--lv-text-tertiary); }
.lv-jour__proof .lv-quote__text::after { content: ' »'; color: var(--lv-text-tertiary); }

@container (min-width: 44rem) {
  .lv-jour__stage { padding-inline-start: var(--lv-space-8); }
  .lv-jour__num { margin-inline-start: calc(-1 * var(--lv-space-8)); }
}
/* components/act.qualify/renderers/questionnaire.css */
/**
 * The questionnaire modal's surface.
 *
 * UN-SCOPED ON PURPOSE. The dialog and every question inside it are built by
 * the client script — one shared instance per document, created on first open —
 * because the questions are not known at build time: they are fetched from
 * `GET /questionnaires/public/:slug` at click time so that an edit in the admin
 * goes live without a rebuild. Astro's scoped styles only match elements that
 * carry the build-time `data-astro-cid-*` attribute, and a node created by
 * `innerHTML` never does. Every selector here is `.lv-lq*`-namespaced, so
 * global scope is collision-safe; the generator inlines this file into
 * `registry.css` verbatim.
 *
 * SURFACE CLASS: solid, always. `.impeccable.md` §3 forbids glass on "modal
 * bodies containing forms", on "anything containing a `<textarea>`" and on "any
 * surface that scrolls its own content". This dialog is all three at once. The
 * scrim behind it is the only translucent thing in the component.
 *
 * THE SIGNATURE is the progress rail: a hairline track whose fill carries
 * `--lv-ramp`, the brand's own gradient. It is the one bold element; everything
 * else in here is quiet on purpose, because the visitor is doing work.
 */

/* ── The section that invites the visitor in ─────────────────────────────── */

.lv-qual__invite {
  display: grid;
  justify-items: start;
  gap: var(--lv-space-4);
  max-width: var(--lv-measure);
}

/* ── The dialog ──────────────────────────────────────────────────────────── */

.lv-lq {
  inline-size: min(34rem, calc(100vw - var(--lv-space-6)));
  max-block-size: min(44rem, calc(100dvh - var(--lv-space-7)));
  padding: 0;
  border: 0;
  border-radius: var(--lv-radius-xl);
  background: var(--lv-surface);
  box-shadow: inset 0 0 0 1px var(--lv-line), var(--lv-lift-3);
  color: var(--lv-text-primary);
  overflow: hidden;
}

.lv-lq::backdrop {
  background: var(--lv-overlay-scrim);
}

.lv-lq__shell {
  display: grid;
  /* One column that may never outgrow the dialog: an `auto` column grew to
     the footer's min-content in themes with wide uppercase buttons
     (restaurant at 390 px) and the close button and «Næste» were clipped. */
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  max-block-size: inherit;
  block-size: 100%;
}

/* ── Header: the counter, the title, the way out ─────────────────────────── */

.lv-lq__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--lv-space-4);
  padding: var(--lv-space-5) var(--lv-space-5) var(--lv-space-4);
}

.lv-lq__meta {
  display: grid;
  gap: var(--lv-space-2);
  min-inline-size: 0;
}

/* Mono, tabular: the counter changes on every step and must not reflow the
   title beside it. `.impeccable.md` §4 — a number set in the UI face is a bug. */
.lv-lq__counter {
  font: var(--lv-weight-medium) var(--lv-text-2xs) / 1 var(--lv-font-mono);
  font-feature-settings: 'tnum' 1;
  letter-spacing: var(--lv-tracking-num);
  color: var(--lv-text-tertiary);
}

.lv-lq__title {
  margin: 0;
  font: var(--lv-weight-heading) var(--lv-text-xl) / var(--lv-leading-snug) var(--lv-font-ui);
  letter-spacing: var(--lv-tracking-heading);
  text-wrap: balance;
}

.lv-lq__close {
  flex: none;
}

/* ── The progress rail — the signature ───────────────────────────────────── */

.lv-lq__rail {
  block-size: 2px;
  background: var(--lv-line);
}

.lv-lq__fill {
  display: block;
  block-size: 100%;
  background: var(--lv-ramp);
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform var(--lv-dur-panel) var(--lv-ease);
}

/* ── Body ────────────────────────────────────────────────────────────────── */

.lv-lq__body {
  padding: var(--lv-space-2) var(--lv-space-5) var(--lv-space-5);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.lv-lq__intro,
.lv-lq__lede {
  margin: 0 0 var(--lv-space-5);
  max-inline-size: var(--lv-measure);
  font-size: var(--lv-text-sm);
  line-height: var(--lv-leading-normal);
  color: var(--lv-text-secondary);
}

.lv-lq__questions {
  display: grid;
  gap: var(--lv-space-6);
}

.lv-lq__q {
  display: grid;
  gap: var(--lv-space-3);
}

.lv-lq__label {
  font: var(--lv-weight-semibold) var(--lv-text-md) / var(--lv-leading-snug) var(--lv-font-ui);
  color: var(--lv-text-primary);
}

.lv-lq__req {
  margin-inline-start: 2px;
  color: var(--lv-text-tertiary);
}

.lv-lq__helper {
  margin: calc(var(--lv-space-2) * -1) 0 0;
  font-size: var(--lv-text-xs);
  color: var(--lv-text-tertiary);
}

/* ── Fields ──────────────────────────────────────────────────────────────── */

.lv-lq__input,
.lv-lq__textarea {
  inline-size: 100%;
  min-block-size: var(--lv-field-height);
  padding: var(--lv-space-3) var(--lv-field-padding-x);
  border: 0;
  border-radius: var(--lv-field-radius);
  background: var(--lv-field-bg);
  box-shadow: inset 0 0 0 1px var(--lv-field-border);
  font: var(--lv-weight-regular) var(--lv-text-md) / var(--lv-leading-normal) var(--lv-font-ui);
  color: var(--lv-text-primary);
}

.lv-lq__textarea {
  min-block-size: 7rem;
  resize: vertical;
}

.lv-lq__input:hover,
.lv-lq__textarea:hover {
  box-shadow: inset 0 0 0 1px var(--lv-field-border-hover);
}

.lv-lq__input:focus-visible,
.lv-lq__textarea:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

.lv-lq__input[aria-invalid='true'],
.lv-lq__textarea[aria-invalid='true'] {
  box-shadow: inset 0 0 0 1px var(--lv-bad-text);
}

/* ── Options ─────────────────────────────────────────────────────────────── */

.lv-lq__options {
  display: grid;
  gap: var(--lv-space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

@container (min-width: 30rem) {
  .lv-lq__options[data-cols='2'] { grid-template-columns: 1fr 1fr; }
}

.lv-lq__option {
  display: flex;
  align-items: center;
  gap: var(--lv-space-3);
  inline-size: 100%;
  min-block-size: 44px;
  padding: var(--lv-space-3) var(--lv-space-4);
  border: 0;
  border-radius: var(--lv-radius-md);
  background: var(--lv-surface);
  box-shadow: inset 0 0 0 1px var(--lv-line-control);
  font: var(--lv-weight-medium) var(--lv-text-sm) / var(--lv-leading-snug) var(--lv-font-ui);
  color: var(--lv-text-primary);
  text-align: start;
  cursor: pointer;
  transition: background-color var(--lv-dur-state) var(--lv-ease),
              transform var(--lv-dur-fast) var(--lv-ease);
}

.lv-lq__option:hover { background: var(--lv-surface-raised); }

/* Same press value as `.lv-btn:active` (components.css) — one press grammar
   everywhere a control presses. The option had hover feedback and no pressed
   state at all. */
.lv-lq__option:active { transform: scale(0.97); }

.lv-lq__option:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

.lv-lq__option[aria-pressed='true'] {
  background: var(--lv-brand-soft);
  box-shadow: inset 0 0 0 1px var(--lv-brand);
}

.lv-lq__tick {
  display: grid;
  place-items: center;
  flex: none;
  inline-size: 20px;
  block-size: 20px;
  border-radius: var(--lv-radius-sm);
  box-shadow: inset 0 0 0 1px var(--lv-line-control);
  color: transparent;
}

.lv-lq__option[aria-pressed='true'] .lv-lq__tick {
  background: var(--lv-brand);
  box-shadow: none;
  color: var(--lv-text-on-brand);
}

/* ── Errors ──────────────────────────────────────────────────────────────── */

.lv-lq__error {
  margin: 0;
  font: var(--lv-weight-medium) var(--lv-text-xs) / var(--lv-leading-snug) var(--lv-font-ui);
  color: var(--lv-bad-text);
}

/* ── Footer ──────────────────────────────────────────────────────────────── */

.lv-lq__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--lv-space-3);
  padding: var(--lv-space-4) var(--lv-space-5);
  border-block-start: 1px solid var(--lv-line);
  background: var(--lv-surface-sunken);
}

.lv-lq__consent {
  margin: 0;
  flex: 1 1 14rem;
  font-size: var(--lv-text-2xs);
  line-height: var(--lv-leading-snug);
  color: var(--lv-text-tertiary);
}

.lv-lq__actions {
  display: flex;
  flex: none;
  gap: var(--lv-space-2);
  margin-inline-start: auto;
}

/* ── The outcome ─────────────────────────────────────────────────────────── */

.lv-lq__outcome {
  display: grid;
  justify-items: start;
  gap: var(--lv-space-4);
  padding-block: var(--lv-space-5);
}

.lv-lq__seal {
  display: grid;
  place-items: center;
  inline-size: 40px;
  block-size: 40px;
  border-radius: var(--lv-radius-pill);
  background: var(--lv-ok-surface);
  color: var(--lv-ok-text);
}

.lv-lq__outcome-title {
  margin: 0;
  font: var(--lv-weight-heading) var(--lv-text-xl) / var(--lv-leading-snug) var(--lv-font-ui);
  letter-spacing: var(--lv-tracking-heading);
  text-wrap: balance;
}

.lv-lq__outcome-body {
  margin: 0;
  max-inline-size: var(--lv-measure);
  line-height: var(--lv-leading-normal);
  color: var(--lv-text-secondary);
}

/* ── Waiting and failing ─────────────────────────────────────────────────── */

.lv-lq__status {
  margin: 0;
  padding-block: var(--lv-space-6);
  font-size: var(--lv-text-sm);
  color: var(--lv-text-secondary);
}

/* ══ 0126 — screens, pictures, scales (overnight batch 2026-09-30) ═════════
   Same material as everything above: solid surfaces, theme tokens only, no
   theme may select these classes. The dialog is a container so the picture
   grid can answer to the DIALOG's width, not the viewport's. */

.lv-lq__body { container-type: inline-size; }

/* The stage in the admin opens the dialog without `showModal()` (whose focus
   steps would steal the editor's cursor); this draws the same centred card
   and scrim the top layer would. */
.lv-lq[data-stage] {
  position: fixed;
  inset: 0;
  margin: auto;
  z-index: 50;
  block-size: fit-content;
  box-shadow: inset 0 0 0 1px var(--lv-line), var(--lv-lift-3), 0 0 0 100vmax var(--lv-overlay-scrim);
}

/* A screen with picture answers needs room for the cards. */
.lv-lq[data-wide] {
  inline-size: min(44rem, calc(100vw - var(--lv-space-6)));
}

/* One screen at a time: a short fade, nothing that moves. */
.lv-lq__screen {
  animation: lv-lq-screen var(--lv-dur-state) var(--lv-ease) both;
}

@keyframes lv-lq-screen {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* ── Welcome ─────────────────────────────────────────────────────────────── */

.lv-lq__welcome {
  display: grid;
  gap: var(--lv-space-4);
  padding-block-start: var(--lv-space-2);
}

.lv-lq__cover {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--lv-radius-lg);
  background: var(--lv-surface-sunken);
}

.lv-lq__welcome .lv-lq__intro {
  margin: 0;
  font-size: var(--lv-text-md);
  color: var(--lv-text-secondary);
}

/* «Ca. 2 min · 8 spørgsmål» — figures, so mono and tabular. */
.lv-lq__facts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lv-space-2) var(--lv-space-4);
  margin: 0;
  font: var(--lv-weight-medium) var(--lv-text-xs) / 1.2 var(--lv-font-mono);
  font-feature-settings: 'tnum' 1;
  letter-spacing: var(--lv-tracking-num);
  color: var(--lv-text-tertiary);
}

.lv-lq__fact + .lv-lq__fact::before {
  content: '·';
  margin-inline-end: var(--lv-space-4);
  color: var(--lv-text-tertiary);
}

/* ── One question per screen ─────────────────────────────────────────────── */

.lv-lq__questions--single .lv-lq__label {
  font-size: var(--lv-text-lg);
  line-height: var(--lv-leading-snug);
  letter-spacing: var(--lv-tracking-heading);
  text-wrap: balance;
}

.lv-lq__qimg {
  display: block;
  inline-size: 100%;
  block-size: auto;
  max-block-size: 14rem;
  object-fit: cover;
  border-radius: var(--lv-radius-md);
  background: var(--lv-surface-sunken);
}

/* ── Picture answers ─────────────────────────────────────────────────────── */

.lv-lq__options--pictures {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--lv-space-3);
}

@container (min-width: 36rem) {
  .lv-lq__options--pictures { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.lv-lq__option--picture {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr;
  align-items: stretch;
  gap: 0;
  block-size: 100%;
  padding: 0;
  overflow: hidden;
  border-radius: var(--lv-radius-md);
  text-align: center;
}

.lv-lq__pic {
  display: block;
  aspect-ratio: 4 / 3;
  background: var(--lv-surface-raised);
}

.lv-lq__pic img {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}

/* An option without a picture in a picture grid: a quiet tile, so the grid
   keeps its rhythm and the label still reads. */
.lv-lq__pic--none {
  background: var(--lv-surface-raised);
  box-shadow: inset 0 -1px 0 var(--lv-line);
}

.lv-lq__pic-label {
  display: grid;
  place-items: center;
  padding: var(--lv-space-3);
  min-block-size: 44px;
}

/* …and where the browser can tell (`:has`), that tile IS the card: the label
   sits centred in the picture's place instead of under an empty box, which
   read as a picture that failed to load. */
.lv-lq__option--picture:has(> .lv-lq__pic--none) {
  grid-template-rows: 1fr;
  background: var(--lv-surface-raised);
}

.lv-lq__option--picture > .lv-lq__pic--none:not(:only-child) {
  display: none;
}

.lv-lq__option--picture:has(> .lv-lq__pic--none) .lv-lq__pic-label {
  min-block-size: 7rem;
  font-weight: var(--lv-weight-semibold);
}

.lv-lq__option--picture .lv-lq__tick {
  position: absolute;
  inset-block-start: var(--lv-space-2);
  inset-inline-end: var(--lv-space-2);
  background: var(--lv-surface);
}

.lv-lq__option--picture[aria-pressed='true'] {
  box-shadow: inset 0 0 0 2px var(--lv-brand);
}

.lv-lq__option--picture[aria-pressed='true'] .lv-lq__pic-label {
  background: var(--lv-brand-soft);
}

/* ── Scale (1–5, 0–10) ───────────────────────────────────────────────────── */

.lv-lq__scale {
  display: grid;
  grid-template-columns: repeat(var(--lv-lq-scale-count, 5), minmax(0, 1fr));
  gap: var(--lv-space-2);
}

.lv-lq__scale[data-count='2'] { --lv-lq-scale-count: 2; }
.lv-lq__scale[data-count='3'] { --lv-lq-scale-count: 3; }
.lv-lq__scale[data-count='4'] { --lv-lq-scale-count: 4; }
.lv-lq__scale[data-count='6'] { --lv-lq-scale-count: 6; }
.lv-lq__scale[data-count='7'] { --lv-lq-scale-count: 7; }
.lv-lq__scale[data-count='8'] { --lv-lq-scale-count: 8; }
.lv-lq__scale[data-count='9'] { --lv-lq-scale-count: 9; }
/* Eleven points (0–10) do not fit 44 px each on a phone: two rows there. */
.lv-lq__scale[data-count='10'],
.lv-lq__scale[data-count='11'] { --lv-lq-scale-count: 6; }

@container (min-width: 32rem) {
  .lv-lq__scale[data-count='10'] { --lv-lq-scale-count: 10; }
  .lv-lq__scale[data-count='11'] { --lv-lq-scale-count: 11; }
}

.lv-lq__scale-option {
  justify-content: center;
  min-inline-size: 44px;
  min-block-size: 44px;
  padding: var(--lv-space-2);
  font: var(--lv-weight-semibold) var(--lv-text-sm) / 1 var(--lv-font-mono);
  font-feature-settings: 'tnum' 1;
  text-align: center;
}

.lv-lq__scale-option[aria-pressed='true'] {
  background: var(--lv-brand);
  box-shadow: none;
  color: var(--lv-text-on-brand);
}

.lv-lq__scale-ends {
  display: flex;
  justify-content: space-between;
  gap: var(--lv-space-4);
  margin: calc(var(--lv-space-1) * -1) 0 0;
  font-size: var(--lv-text-xs);
  color: var(--lv-text-tertiary);
}

/* ── Inline display (`display: 'inline'`) — the same card, in the page ──── */

.lv-qual__invite--inline {
  justify-items: stretch;
  max-width: 40rem;
}

.lv-lq--inline {
  inline-size: 100%;
  max-block-size: none;
  box-shadow: inset 0 0 0 1px var(--lv-line), var(--lv-lift-1);
}

.lv-lq--inline .lv-lq__body { overflow: visible; }

/* ── The ending's picture ────────────────────────────────────────────────── */

.lv-lq__outcome-img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--lv-radius-lg);
  background: var(--lv-surface-sunken);
}

@media (prefers-reduced-motion: reduce) {
  .lv-lq__fill,
  .lv-lq__option {
    transition: none;
  }

  .lv-lq__screen { animation: none; }
}
/* components/act.schedule/renderers/booking.css */
/**
 * The booking dialog's surface (the real-calendar silhouette of `act.schedule`).
 *
 * UN-SCOPED ON PURPOSE, same reason `act.qualify/renderers/questionnaire.css`
 * gives: the dialog is built by the client script — one shared instance per
 * document, created the first time a visitor opens it — because the services,
 * staff and slots are not known at build time: they are fetched from
 * `GET /booking/services` and `GET /booking/slots` at click time, so an edit in
 * the admin calendar is live without a rebuild. Astro's scoped styles only
 * match elements carrying the build-time `data-astro-cid-*` attribute, and a
 * node created by `innerHTML` never does. Every selector here is
 * `.lv-bm*`-namespaced, so global scope is collision-safe; the generator
 * inlines this file into `registry.css` verbatim.
 *
 * SURFACE CLASS: solid, always. `.impeccable.md` §3 forbids glass on "modal
 * bodies containing forms" and "any surface that scrolls its own content" —
 * this dialog is both. The scrim behind it is the only translucent thing in
 * the component. Structurally this is `act.qualify`'s dialog again (same
 * header/rail/body/footer skeleton, same option-button and field vocabulary) —
 * kept as its own `.lv-bm*` namespace rather than a shared class, matching the
 * one-CSS-file-per-renderer convention every other dialog in this registry
 * follows (`browse.product-media`'s lightbox is the third instance of the
 * same shape, also its own namespace).
 */

/* ── The section that invites the visitor in ─────────────────────────────── */

.lv-sched__invite {
  display: grid;
  justify-items: start;
  gap: var(--lv-space-4);
  max-width: var(--lv-measure);
}

/* ── The dialog ──────────────────────────────────────────────────────────── */

.lv-bm {
  inline-size: min(34rem, calc(100vw - var(--lv-space-6)));
  max-block-size: min(46rem, calc(100dvh - var(--lv-space-7)));
  padding: 0;
  border: 0;
  border-radius: var(--lv-radius-xl);
  background: var(--lv-surface);
  box-shadow: inset 0 0 0 1px var(--lv-line), var(--lv-lift-3);
  color: var(--lv-text-primary);
  overflow: hidden;
}

/* `indlejret` (2026-09-30): the same shell drawn in the section instead of a
   `<dialog>` — full width of its column, no height cap (the page scrolls, not
   the flow), the hairline instead of the floating lift. */
.lv-bm--inline {
  inline-size: 100%;
  max-block-size: none;
  box-shadow: inset 0 0 0 1px var(--lv-line);
}

/* `minmax(0, 1fr)` + `min-inline-size: 0`: with the body no longer a scroll
   container, the day rail's nowrap row would otherwise set the min-content
   width of the whole flow and push it past the viewport. */
.lv-bm--inline .lv-bm__shell { grid-template-columns: minmax(0, 1fr); }

.lv-bm--inline .lv-bm__body { overflow: visible; min-inline-size: 0; }

.lv-sched__inline { min-inline-size: 0; }

.lv-bm::backdrop {
  background: var(--lv-overlay-scrim);
}

.lv-bm__shell {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  max-block-size: inherit;
  block-size: 100%;
}

/* ── Header: the counter, the title, the way out ─────────────────────────── */

.lv-bm__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--lv-space-4);
  padding: var(--lv-space-5) var(--lv-space-5) var(--lv-space-4);
}

.lv-bm__meta {
  display: grid;
  gap: var(--lv-space-2);
  min-inline-size: 0;
}

/* Mono, tabular: the counter changes on every step and must not reflow the
   title beside it. `.impeccable.md` §4 — a number set in the UI face is a bug. */
.lv-bm__counter {
  font: var(--lv-weight-medium) var(--lv-text-2xs) / 1 var(--lv-font-mono);
  font-feature-settings: 'tnum' 1;
  letter-spacing: var(--lv-tracking-num);
  color: var(--lv-text-tertiary);
}

.lv-bm__title {
  margin: 0;
  font: var(--lv-weight-heading) var(--lv-text-xl) / var(--lv-leading-snug) var(--lv-font-ui);
  letter-spacing: var(--lv-tracking-heading);
  text-wrap: balance;
}

.lv-bm__close {
  flex: none;
}

/* ── The progress rail ────────────────────────────────────────────────────── */

.lv-bm__rail {
  block-size: 2px;
  background: var(--lv-line);
}

.lv-bm__fill {
  display: block;
  block-size: 100%;
  background: var(--lv-ramp);
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform var(--lv-dur-panel) var(--lv-ease);
}

/* ── Body ────────────────────────────────────────────────────────────────── */

.lv-bm__body {
  padding: var(--lv-space-2) var(--lv-space-5) var(--lv-space-5);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.lv-bm__status {
  margin: 0;
  padding-block: var(--lv-space-6);
  font-size: var(--lv-text-sm);
  color: var(--lv-text-secondary);
}

.lv-bm__lede {
  margin: 0 0 var(--lv-space-5);
  max-inline-size: var(--lv-measure);
  font-size: var(--lv-text-sm);
  line-height: var(--lv-leading-normal);
  color: var(--lv-text-secondary);
}

/* ── Option list: services and staff share this vocabulary ──────────────── */

.lv-bm__options {
  display: grid;
  gap: var(--lv-space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.lv-bm__option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--lv-space-3);
  inline-size: 100%;
  min-block-size: 44px;
  padding: var(--lv-space-3) var(--lv-space-4);
  border: 0;
  border-radius: var(--lv-radius-md);
  background: var(--lv-surface);
  box-shadow: inset 0 0 0 1px var(--lv-line-control);
  font: var(--lv-weight-medium) var(--lv-text-sm) / var(--lv-leading-snug) var(--lv-font-ui);
  color: var(--lv-text-primary);
  text-align: start;
  cursor: pointer;
  transition: background-color var(--lv-dur-state) var(--lv-ease),
              transform var(--lv-dur-fast) var(--lv-ease);
}

.lv-bm__option:hover { background: var(--lv-surface-raised); }

/* Same press value as `.lv-btn:active` (components.css) — one press grammar
   everywhere a control presses. The option had hover feedback and no pressed
   state at all; same fix on the day and slot tiles below. */
.lv-bm__option:active { transform: scale(0.97); }

.lv-bm__option:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

.lv-bm__option[aria-pressed='true'] {
  background: var(--lv-brand-soft);
  box-shadow: inset 0 0 0 1px var(--lv-brand);
}

.lv-bm__option-left {
  display: flex;
  align-items: center;
  gap: var(--lv-space-3);
  min-inline-size: 0;
}

.lv-bm__option-title {
  display: block;
  font-weight: var(--lv-weight-semibold);
}

.lv-bm__option-meta {
  display: block;
  margin-block-start: 2px;
  font-size: var(--lv-text-2xs);
  color: var(--lv-text-tertiary);
}

/* The service's own description — two lines at most, so a long text never
   pushes the other services out of the dialog. */
.lv-bm__option-desc {
  display: -webkit-box;
  margin-block-start: var(--lv-space-1);
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  font-size: var(--lv-text-xs);
  font-weight: var(--lv-weight-regular);
  line-height: var(--lv-leading-snug);
  color: var(--lv-text-secondary);
}

.lv-bm__option-price {
  flex: none;
  font: var(--lv-weight-medium) var(--lv-text-xs) / 1 var(--lv-font-mono);
  font-feature-settings: 'tnum' 1;
  color: var(--lv-text-secondary);
}

/* Staff avatar / initial fallback — the one place a photograph appears in the
   whole registry's dialog vocabulary. */
.lv-bm__avatar {
  flex: none;
  inline-size: 2.25rem;
  block-size: 2.25rem;
  border-radius: var(--lv-radius-pill);
  object-fit: cover;
  background: var(--lv-surface-sunken);
}

.lv-bm__avatar-fallback {
  display: grid;
  place-items: center;
  flex: none;
  inline-size: 2.25rem;
  block-size: 2.25rem;
  border-radius: var(--lv-radius-pill);
  background: var(--lv-brand-soft);
  color: var(--lv-brand);
  font: var(--lv-weight-semibold) var(--lv-text-xs) / 1 var(--lv-font-ui);
}

/* ── What is being booked, above the times ────────────────────────────────── */

.lv-bm__context {
  display: flex;
  flex-wrap: wrap;
  column-gap: var(--lv-space-2);
  row-gap: var(--lv-space-1);
  margin: 0 0 var(--lv-space-4);
  font-size: var(--lv-text-sm);
  line-height: var(--lv-leading-snug);
  color: var(--lv-text-secondary);
}

.lv-bm__context strong {
  font-weight: var(--lv-weight-semibold);
  color: var(--lv-text-primary);
}

/* ── The day rail ─────────────────────────────────────────────────────────── */

.lv-bm__days {
  display: flex;
  gap: var(--lv-space-2);
  margin: 0 0 var(--lv-space-5);
  padding: 2px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
}

.lv-bm__day {
  display: grid;
  justify-items: center;
  gap: 2px;
  flex: none;
  inline-size: 3.25rem;
  padding: var(--lv-space-2) 0;
  border: 0;
  border-radius: var(--lv-radius-md);
  background: var(--lv-surface);
  box-shadow: inset 0 0 0 1px var(--lv-line-control);
  color: var(--lv-text-primary);
  cursor: pointer;
  transition: background-color var(--lv-dur-state) var(--lv-ease),
              transform var(--lv-dur-fast) var(--lv-ease);
}

.lv-bm__day:hover { background: var(--lv-surface-raised); }

.lv-bm__day:active { transform: scale(0.97); }

.lv-bm__day:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

.lv-bm__day[aria-pressed='true'] {
  background: var(--lv-brand-soft);
  box-shadow: inset 0 0 0 1px var(--lv-brand);
}

.lv-bm__day-name {
  font: var(--lv-weight-medium) var(--lv-text-2xs) / 1 var(--lv-font-ui);
  text-transform: uppercase;
  letter-spacing: var(--lv-tracking-label);
  color: var(--lv-text-tertiary);
}

.lv-bm__day[aria-pressed='true'] .lv-bm__day-name { color: var(--lv-brand); }

.lv-bm__day-num {
  font: var(--lv-weight-semibold) var(--lv-text-md) / 1 var(--lv-font-mono);
  font-feature-settings: 'tnum' 1;
}

/* ── Slots, grouped by part of day ────────────────────────────────────────── */

.lv-bm__slot-group + .lv-bm__slot-group { margin-block-start: var(--lv-space-5); }

.lv-bm__slot-group-label {
  margin: 0 0 var(--lv-space-2);
  font: var(--lv-weight-semibold) var(--lv-text-2xs) / 1 var(--lv-font-ui);
  text-transform: uppercase;
  letter-spacing: var(--lv-tracking-label);
  color: var(--lv-text-tertiary);
}

.lv-bm__slots {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(5.25rem, 1fr));
  gap: var(--lv-space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.lv-bm__slot {
  min-block-size: 44px;
  padding: var(--lv-space-2) var(--lv-space-3);
  border: 0;
  border-radius: var(--lv-radius-md);
  background: var(--lv-surface);
  box-shadow: inset 0 0 0 1px var(--lv-line-control);
  font: var(--lv-weight-medium) var(--lv-text-sm) / 1 var(--lv-font-mono);
  font-feature-settings: 'tnum' 1;
  color: var(--lv-text-primary);
  cursor: pointer;
  transition: background-color var(--lv-dur-state) var(--lv-ease),
              transform var(--lv-dur-fast) var(--lv-ease);
}

.lv-bm__slot:hover { background: var(--lv-surface-raised); }

.lv-bm__slot:active { transform: scale(0.97); }

.lv-bm__slot:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

.lv-bm__slot[aria-pressed='true'] {
  background: var(--lv-brand-soft);
  box-shadow: inset 0 0 0 1px var(--lv-brand);
}

/* ── Fields: the details step ─────────────────────────────────────────────── */

.lv-bm__field {
  display: grid;
  gap: var(--lv-space-2);
  margin: 0 0 var(--lv-space-4);
}

.lv-bm__field:last-child { margin-block-end: 0; }

.lv-bm__label {
  font: var(--lv-weight-semibold) var(--lv-text-sm) / var(--lv-leading-snug) var(--lv-font-ui);
  color: var(--lv-text-primary);
}

.lv-bm__input {
  inline-size: 100%;
  min-block-size: var(--lv-field-height);
  padding: var(--lv-space-3) var(--lv-field-padding-x);
  border: 0;
  border-radius: var(--lv-field-radius);
  background: var(--lv-field-bg);
  box-shadow: inset 0 0 0 1px var(--lv-field-border);
  font: var(--lv-weight-regular) var(--lv-text-md) / var(--lv-leading-normal) var(--lv-font-ui);
  color: var(--lv-text-primary);
}

.lv-bm__input:hover { box-shadow: inset 0 0 0 1px var(--lv-field-border-hover); }

.lv-bm__input:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

.lv-bm__input[aria-invalid='true'] {
  box-shadow: inset 0 0 0 1px var(--lv-bad-text);
}

/* ── The summary the visitor confirms against ─────────────────────────────── */

.lv-bm__summary {
  display: grid;
  gap: var(--lv-space-1);
  margin: 0 0 var(--lv-space-5);
  padding: var(--lv-space-4);
  border-radius: var(--lv-radius-md);
  background: var(--lv-surface-sunken);
  font-size: var(--lv-text-sm);
  color: var(--lv-text-secondary);
}

.lv-bm__summary strong { color: var(--lv-text-primary); }

.lv-bm__summary time {
  font-family: var(--lv-font-mono);
  font-feature-settings: 'tnum' 1;
}

/* ── Errors and the conflict banner ───────────────────────────────────────── */

.lv-bm__error {
  margin: 0 0 var(--lv-space-4);
  font: var(--lv-weight-medium) var(--lv-text-xs) / var(--lv-leading-snug) var(--lv-font-ui);
  color: var(--lv-bad-text);
}

.lv-bm__banner {
  margin: 0 0 var(--lv-space-4);
  padding: var(--lv-space-3) var(--lv-space-4);
  border-radius: var(--lv-radius-md);
  background: var(--lv-warn-surface);
  color: var(--lv-warn-text);
  font-size: var(--lv-text-xs);
  line-height: var(--lv-leading-snug);
}

/* ── Footer ──────────────────────────────────────────────────────────────── */

.lv-bm__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--lv-space-3);
  padding: var(--lv-space-4) var(--lv-space-5);
  border-block-start: 1px solid var(--lv-line);
  background: var(--lv-surface-sunken);
}

/* ── The outcome ─────────────────────────────────────────────────────────── */

.lv-bm__outcome {
  display: grid;
  justify-items: start;
  gap: var(--lv-space-4);
  padding-block: var(--lv-space-5);
}

.lv-bm__seal {
  display: grid;
  place-items: center;
  inline-size: 40px;
  block-size: 40px;
  border-radius: var(--lv-radius-pill);
  background: var(--lv-ok-surface);
  color: var(--lv-ok-text);
}

.lv-bm__outcome-title {
  margin: 0;
  font: var(--lv-weight-heading) var(--lv-text-xl) / var(--lv-leading-snug) var(--lv-font-ui);
  letter-spacing: var(--lv-tracking-heading);
  text-wrap: balance;
}

.lv-bm__outcome-body {
  margin: 0;
  max-inline-size: var(--lv-measure);
  line-height: var(--lv-leading-normal);
  color: var(--lv-text-secondary);
}

/* The appointment itself, in one line — the fact the visitor re-reads. */
.lv-bm__outcome-when {
  margin: 0;
  max-inline-size: var(--lv-measure);
  font-weight: var(--lv-weight-semibold);
  line-height: var(--lv-leading-snug);
  color: var(--lv-text-primary);
}

.lv-bm__outcome-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lv-space-3);
  margin: var(--lv-space-2) 0 0;
}

/* ── The cancel page (`/booking/afbestil`, mode `cancel`) ─────────────────── */

.lv-bm-cancel {
  display: grid;
  justify-items: start;
  gap: var(--lv-space-3);
  max-inline-size: var(--lv-measure);
  padding: var(--lv-space-5);
  border-radius: var(--lv-radius-lg);
  background: var(--lv-surface);
  box-shadow: inset 0 0 0 1px var(--lv-line);
}

.lv-bm-cancel__title {
  margin: 0;
  font: var(--lv-weight-heading) var(--lv-text-lg) / var(--lv-leading-snug) var(--lv-font-ui);
  letter-spacing: var(--lv-tracking-heading);
  color: var(--lv-text-primary);
  text-wrap: balance;
}

.lv-bm-cancel__title:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

.lv-bm-cancel__body {
  margin: 0;
  line-height: var(--lv-leading-normal);
  color: var(--lv-text-secondary);
}

.lv-bm-cancel__actions {
  margin: var(--lv-space-2) 0 0;
}

@media (prefers-reduced-motion: reduce) {
  .lv-bm__fill,
  .lv-bm__option,
  .lv-bm__day,
  .lv-bm__slot {
    transition: none;
  }
}
/* components/act.schedule/renderers/menu.css */
/**
 * act.schedule · `menu` ("Ydelsesmenuen") — the service cards.
 *
 * Un-scoped, `.lv-bmenu*`-namespaced: the cards are built by the client script
 * from the fetched service list, and injected nodes never carry Astro's
 * scoping attribute. Theme tokens only — the menu speaks each tenant theme's
 * own card grammar.
 */

.lv-bmenu__stage { display: grid; gap: var(--lv-space-5); }

.lv-bmenu__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: var(--lv-space-4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.lv-bmenu__card {
  display: grid;
  align-content: start;
  gap: var(--lv-space-3);
  padding: var(--lv-space-5);
  border-radius: var(--lv-radius-md);
  background: var(--lv-surface-raised);
  box-shadow: inset 0 0 0 1px var(--lv-line);
}

.lv-bmenu__cardhead {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--lv-space-3);
}

.lv-bmenu__price {
  font-size: var(--lv-text-sm);
  color: var(--lv-text-primary);
  white-space: nowrap;
}

.lv-bmenu__meta {
  margin: 0;
  font-family: var(--lv-font-mono);
  font-size: var(--lv-text-xs);
  color: var(--lv-text-tertiary);
  font-feature-settings: 'tnum' 1;
}

.lv-bmenu__card .lv-btn { justify-self: start; }

.lv-bmenu__proof {
  margin: var(--lv-space-6) 0 0;
  padding-block-start: var(--lv-space-3);
  border-block-start: 1px solid var(--lv-line);
  max-width: var(--lv-measure);
}

.lv-bmenu__proof .lv-quote__text::before { content: '« '; color: var(--lv-text-tertiary); }
.lv-bmenu__proof .lv-quote__text::after { content: ' »'; color: var(--lv-text-tertiary); }

/* The service's own description (2026-09-30) — three lines at most. */
.lv-bmenu__desc {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  font-size: var(--lv-text-sm);
  line-height: var(--lv-leading-snug);
  color: var(--lv-text-secondary);
}
/* components/act.schedule/renderers/opslag.css */
/**
 * act.schedule · `opslag` ("Roligt opslag") — the calm two-column notice.
 *
 * Un-scoped, `.lv-bops*`-namespaced, theme tokens only. The framed terms
 * panel is the one drawn element; the action card is the theme's own raised
 * surface. Nothing here performs.
 */

.lv-bops__row {
  display: grid;
  gap: var(--lv-space-6);
  align-items: start;
}

@container (min-width: 52rem) {
  .lv-bops__row { grid-template-columns: minmax(0, 7fr) minmax(16rem, 5fr); gap: var(--lv-space-8); }
}

.lv-bops__essay {
  display: grid;
  gap: var(--lv-space-4);
  max-width: var(--lv-measure);
}

/* The practical panel: a hairline frame, not a tinted box — terms are read,
   not shouted. */
.lv-bops__terms {
  display: grid;
  gap: var(--lv-space-2);
  padding: var(--lv-space-4) var(--lv-space-5);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius-md);
}

.lv-bops__terms-kicker {
  margin: 0;
  font-family: var(--lv-font-mono);
  font-size: var(--lv-text-xs);
  letter-spacing: var(--lv-tracking-eyebrow);
  text-transform: uppercase;
  color: var(--lv-text-tertiary);
}

.lv-bops__terms-body {
  margin: 0;
  font-size: var(--lv-text-sm);
  color: var(--lv-text-secondary);
}

.lv-bops__proof {
  margin: 0;
  padding-block-start: var(--lv-space-3);
  border-block-start: 1px solid var(--lv-line);
}

.lv-bops__proof .lv-quote__text::before { content: '« '; color: var(--lv-text-tertiary); }
.lv-bops__proof .lv-quote__text::after { content: ' »'; color: var(--lv-text-tertiary); }

.lv-bops__card {
  display: grid;
  gap: var(--lv-space-4);
  padding: clamp(var(--lv-space-5), 4cqi, var(--lv-space-7));
  border-radius: var(--lv-radius-lg);
  background: var(--lv-surface-raised);
  box-shadow: inset 0 0 0 1px var(--lv-line), var(--lv-lift-1);
}

.lv-bops__ask { display: grid; justify-items: start; gap: var(--lv-space-4); }

.lv-bops__form { max-width: none; }
/* components/assert.text-marquee/renderers/marquee.css */
/* assert.text-marquee — shared chassis. Every page ships this file whole, so
   the rationale lives in def.ts and text-marquee.astro; only the load-bearing
   notes stay here. The clamp() maxima of --lv-tm-size are lib/line-plan.ts's
   FORMAT_METRICS.capPx — change one, change both. */

.lv-tm {
  --lv-tm-size: clamp(2.25rem, 6.2cqi, 7.5rem);
  --lv-tm-gap: 1.4em;
  --lv-tm-leading: 1.14;
  position: relative;
  padding-block: var(--lv-space-7);
  padding-inline: 0;
  overflow-x: clip;
}

.lv-tm--ribbon {
  --lv-tm-size: clamp(1.125rem, 1rem + 0.7cqi, 1.875rem);
  --lv-tm-gap: 0.75em;
  --lv-tm-leading: 1.3;
  --lv-tm-lead: var(--lv-gutter, var(--lv-space-5));
  padding-block: 0;
}

.lv-tm--oversize {
  --lv-tm-size: clamp(4rem, 15cqi, 18rem);
  --lv-tm-gap: 0.8em;
  --lv-tm-leading: 0.94;
  padding-block: var(--lv-space-8);
}

/* The stage: the strip alone, or crossing a portrait at its middle. */
.lv-tm__stage { display: grid; grid-template-areas: 'stage'; align-items: center; }
.lv-tm__stage > * { grid-area: stage; min-inline-size: 0; }
.lv-tm__figure { justify-self: center; inline-size: min(34rem, 50%); margin: 0; }
.lv-tm__figure img {
  display: block;
  inline-size: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 30%;
  background: var(--lv-surface-sunken);
}
@container (max-width: 40rem) { .lv-tm__figure { inline-size: 80%; } }

/* The strip. Opaque grounds only (.impeccable.md §3): `plain` is the room's
   own; `inverse` swaps the two measured body roles, ink for ground. */
.lv-tm__strip {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  color: var(--lv-text-primary);
}
.lv-tm--inverse .lv-tm__strip { background: var(--lv-text-primary); color: var(--lv-canvas); }
.lv-tm--ribbon .lv-tm__strip {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--lv-space-3);
  padding-block: var(--lv-space-3);
  padding-inline-end: var(--lv-gutter, var(--lv-space-5));
}

.lv-tm__viewport { overflow: hidden; min-inline-size: 0; }
.lv-tm__track { position: relative; display: flex; inline-size: max-content; }

/* Each copy carries its own trailing gap, so both sets are the same width to
   the pixel and -50% lands the clone exactly where the first set began. */
.lv-tm__set { display: flex; flex: none; align-items: center; margin: 0; padding-inline-start: var(--lv-tm-lead, 0px); }
.lv-tm__item {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: var(--lv-tm-gap);
  margin: 0;
  max-inline-size: none; /* the real copy is a <p>; the base sheet caps <p> at the measure */
  padding-inline-end: var(--lv-tm-gap);
  white-space: nowrap;
  font-size: var(--lv-tm-size);
  line-height: var(--lv-tm-leading);
}
.lv-tm--band .lv-tm__item,
.lv-tm--oversize .lv-tm__item {
  font-family: var(--lv-display-family, inherit);
  letter-spacing: var(--lv-display-tracking, var(--lv-tracking-heading));
}
.lv-tm--band .lv-tm__item { font-weight: var(--lv-weight-medium); padding-block: 0.04em 0.08em; }
.lv-tm--oversize .lv-tm__item { font-weight: var(--lv-weight-regular); text-transform: uppercase; }
.lv-tm--ribbon .lv-tm__item { font-weight: var(--lv-weight-regular); letter-spacing: normal; }

/* One link, named by the line; its overlay covers the track, so any copy a
   pointer lands on follows it. */
.lv-tm__link { color: inherit; text-decoration: none; }
.lv-tm__link::after { content: ''; position: absolute; inset: 0; }
.lv-tm__link:hover { text-decoration: underline; text-decoration-thickness: 0.06em; text-underline-offset: 0.12em; }
.lv-tm__link:focus-visible {
  outline: var(--lv-focus-width, 2px) solid var(--lv-focus-ring, currentColor);
  outline-offset: 0.08em;
}

/* Separators — drawn, aria-hidden, sized with the line. */
.lv-tm__sep { display: inline-flex; flex: none; align-items: center; justify-content: center; color: currentColor; }
.lv-tm__sep svg { display: block; fill: currentColor; }
.lv-tm__sep--dot svg { inline-size: 0.26em; block-size: 0.26em; }
.lv-tm__sep--star svg { inline-size: 0.62em; block-size: 0.62em; }
.lv-tm__sep--slash svg { inline-size: 0.42em; block-size: 0.9em; fill: none; stroke: currentColor; stroke-width: 1.6; }
.lv-tm__sep--eyes-closed svg { inline-size: 1.9em; block-size: 0.76em; }
.lv-tm__sep--eyes-open svg { inline-size: 1.75em; block-size: 0.82em; }
.lv-tm__sep--sparkle svg { inline-size: 0.72em; block-size: 0.72em; }
.lv-tm__sep .lv-tm__orb-white { fill: var(--lv-surface); stroke: currentColor; stroke-width: 2; }

/* The foot: caption, and the control at the row's inline end. */
.lv-tm__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--lv-space-3) var(--lv-space-5);
  max-inline-size: var(--lv-container-max, 72rem);
  margin: var(--lv-space-4) auto 0;
  padding-inline: var(--lv-gutter, var(--lv-space-5));
  box-sizing: content-box;
}
.lv-tm__caption {
  flex: 1 1 18rem;
  margin: 0;
  max-inline-size: 44ch;
  font: var(--lv-weight-medium) var(--lv-text-sm) / var(--lv-leading-snug) var(--lv-font-ui);
  color: var(--lv-text-secondary);
  text-wrap: balance;
}
.lv-tm__foot > .lv-tm__pause { margin-inline-start: auto; }
.lv-tm--with-media .lv-tm__foot {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 44ch) minmax(0, 1fr);
  text-align: center;
}
.lv-tm--with-media .lv-tm__caption { grid-column: 2; justify-self: center; }
.lv-tm--with-media .lv-tm__foot > .lv-tm__pause { grid-column: 3; justify-self: end; }
@container (max-width: 40rem) {
  .lv-tm--with-media .lv-tm__foot { grid-template-columns: minmax(0, 1fr); }
  .lv-tm--with-media .lv-tm__caption,
  .lv-tm--with-media .lv-tm__foot > .lv-tm__pause { grid-column: 1; }
}

/* The pause control (WCAG 2.2.2): a native checkbox switch read by :has() —
   works with scripting off. Checked = paused. Clipped, never hidden, so it
   stays in the tab order. */
.lv-tm__pause {
  position: relative;
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: var(--lv-space-2);
  min-block-size: 44px;
  padding-inline: var(--lv-space-4);
  border-radius: var(--lv-radius-pill);
  box-shadow: inset 0 0 0 1px var(--lv-line-strong);
  background: var(--lv-surface);
  color: var(--lv-text-primary);
  font: var(--lv-weight-medium) var(--lv-text-xs) / 1 var(--lv-font-ui);
  letter-spacing: normal;
  text-transform: none;
  cursor: pointer;
  transition: box-shadow var(--lv-dur-state, 200ms) var(--lv-ease, cubic-bezier(0.22, 1, 0.36, 1));
}
.lv-tm__pause:hover { box-shadow: inset 0 0 0 1px var(--lv-text-primary); }
.lv-tm__pause:has(.lv-tm__switch:focus-visible) {
  outline: var(--lv-focus-width, 2px) solid var(--lv-focus-ring, currentColor);
  outline-offset: 2px;
}
.lv-tm__switch {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.lv-tm__pause svg { inline-size: 0.8rem; block-size: 0.8rem; fill: currentColor; }
.lv-tm__pause .lv-tm__glyph--play { display: none; }
.lv-tm__pause:has(.lv-tm__switch:checked) .lv-tm__glyph--play { display: block; }
.lv-tm__pause:has(.lv-tm__switch:checked) .lv-tm__glyph--pause { display: none; }

/* The loop — double-gated: the drift class exists only when a pace was
   asked for, and the keyframe binds only under no-preference. Hover and
   focus pause it too; the switch is the mechanism. */
@media (prefers-reduced-motion: no-preference) {
  .lv-tm--drift .lv-tm__track { animation: lv-tm-drift var(--lv-tm-dur, 60s) linear infinite; }
  .lv-tm--drift.lv-tm--right .lv-tm__track { animation-direction: reverse; }
  .lv-tm--drift .lv-tm__viewport:hover .lv-tm__track,
  .lv-tm--drift .lv-tm__viewport:focus-within .lv-tm__track,
  .lv-tm--drift:has(.lv-tm__switch:checked) .lv-tm__track { animation-play-state: paused; }
}
@keyframes lv-tm-drift {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* The still composition (pace still, or reduced motion). Band and oversize:
   the ONE real copy, wrapped and balanced in the work column — never a line
   cut off at the screen's edge. The ribbon keeps its repeats (each is the
   whole phrase) and simply stands. */
.lv-tm--still:is(.lv-tm--band, .lv-tm--oversize) .lv-tm__track,
.lv-tm--still:is(.lv-tm--band, .lv-tm--oversize) .lv-tm__set { display: block; inline-size: auto; }
.lv-tm--still:is(.lv-tm--band, .lv-tm--oversize) .lv-tm__set {
  max-inline-size: var(--lv-container-max, 72rem);
  margin-inline: auto;
  padding-inline: var(--lv-gutter, var(--lv-space-5));
  box-sizing: content-box;
}
.lv-tm--still:is(.lv-tm--band, .lv-tm--oversize) .lv-tm__item { display: block; padding-inline-end: 0; white-space: normal; text-wrap: balance; }
.lv-tm--still.lv-tm--oversize { --lv-tm-size: clamp(3rem, 9cqi, 9rem); }
.lv-tm--still:is(.lv-tm--band, .lv-tm--oversize) .lv-tm__sep,
.lv-tm--still:is(.lv-tm--band, .lv-tm--oversize) .lv-tm__set.lv-tm__set--clone,
.lv-tm--still:is(.lv-tm--band, .lv-tm--oversize) .lv-tm__item[aria-hidden] { display: none; }

/* Still + a portrait: crossing the photo's middle only worked for a two-line
   clamp, and a real sentence at caption scale routinely runs longer than
   that — the clamp then cuts it with an ellipsis a reduced-motion visitor
   can never read past (only band ever carries media, so this only ever
   narrows that pairing). Instead the still composition stacks: the photo
   stands whole, the caption-scale sentence sits below it, wrapped in full,
   however many lines it takes. */
.lv-tm--still.lv-tm--with-media .lv-tm__stage {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lv-space-5);
}
.lv-tm--still.lv-tm--with-media {
  --lv-tm-size: clamp(1.25rem, 1rem + 1.6cqi, 2.5rem);
  --lv-tm-leading: 1.24;
}
.lv-tm--still.lv-tm--with-media .lv-tm__set { max-inline-size: min(38rem, 100%); }
.lv-tm--still.lv-tm--with-media .lv-tm__item { display: block; }

@media (prefers-reduced-motion: reduce) {
  .lv-tm--drift:is(.lv-tm--band, .lv-tm--oversize) .lv-tm__track,
  .lv-tm--drift:is(.lv-tm--band, .lv-tm--oversize) .lv-tm__set { display: block; inline-size: auto; }
  .lv-tm--drift:is(.lv-tm--band, .lv-tm--oversize) .lv-tm__set {
    max-inline-size: var(--lv-container-max, 72rem);
    margin-inline: auto;
    padding-inline: var(--lv-gutter, var(--lv-space-5));
    box-sizing: content-box;
  }
  .lv-tm--drift:is(.lv-tm--band, .lv-tm--oversize) .lv-tm__item { display: block; padding-inline-end: 0; white-space: normal; text-wrap: balance; }
  .lv-tm--drift.lv-tm--oversize { --lv-tm-size: clamp(3rem, 9cqi, 9rem); }
  .lv-tm--drift:is(.lv-tm--band, .lv-tm--oversize) .lv-tm__sep,
  .lv-tm--drift:is(.lv-tm--band, .lv-tm--oversize) .lv-tm__set.lv-tm__set--clone,
  .lv-tm--drift:is(.lv-tm--band, .lv-tm--oversize) .lv-tm__item[aria-hidden] { display: none; }
  .lv-tm__pause { display: none; }

  /* Same caption-scale, stacked, unclamped hold as the still composition
     above — this is the same still layout, just reached because motion was
     declined system-wide instead of authored still. */
  .lv-tm--drift.lv-tm--with-media .lv-tm__stage {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--lv-space-5);
  }
  .lv-tm--drift.lv-tm--with-media {
    --lv-tm-size: clamp(1.25rem, 1rem + 1.6cqi, 2.5rem);
    --lv-tm-leading: 1.24;
  }
  .lv-tm--drift.lv-tm--with-media .lv-tm__set { max-inline-size: min(38rem, 100%); }
  .lv-tm--drift.lv-tm--with-media .lv-tm__item { display: block; }
}
/* components/browse.event-set/renderers/calendar.css */
/**
 * The month grid's surface.
 *
 * UN-SCOPED ON PURPOSE, and the reason is structural rather than stylistic:
 * the grid's markup is produced by `lib/calendar-grid.ts` as a STRING, both at
 * build time (`set:html`) and again in the browser after a shared-source fetch
 * or a filter click. Astro's scoped styles only match elements that carry the
 * build-time `data-astro-cid-*` attribute, and a node created by `innerHTML`
 * never does — a scoped block would leave every rebuilt panel unstyled. The
 * generator inlines this file into `registry.css` verbatim (`collectExternalCss`),
 * and every selector is `.lv-cal*`-namespaced, so global scope is safe.
 *
 * SURFACE CLASS: solid, always. `.impeccable.md` §3 forbids glass on "any
 * surface that scrolls its own content" and on work surfaces generally. A month
 * grid is a dense reading surface whose backdrop would change under it as the
 * page moves, and 42 translucent cells is precisely the compositor cost §3
 * names. It is drawn the way a wall calendar is drawn: hairlines and paper.
 *
 * Every colour is a token. The grid's structure comes from `--lv-line` at 1px
 * and nothing else — no fills, no zebra, no per-cell borders that would double
 * up along shared edges.
 */

.lv-cal {
  border-radius: var(--lv-cal-radius, var(--lv-radius-lg));
  background: var(--lv-cal-surface, var(--lv-surface));
  box-shadow: inset 0 0 0 var(--lv-cal-ring, 1px) var(--lv-cal-line, var(--lv-line));
  overflow: hidden;
}

/* ── The bar: month name, and the two page controls ──────────────────────── */

.lv-cal__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--lv-space-4);
  padding: var(--lv-cal-head-pad, var(--lv-space-4) var(--lv-space-5));
  border-block-end: 1px solid var(--lv-cal-line, var(--lv-line));
  background: var(--lv-cal-head-bg, transparent);
}

/* `text-transform` reads its lever with NO fallback on purpose: an unset
   custom property makes the declaration compute as `unset`, which for an
   inherited property is exactly the "not declared" it replaced. */
.lv-cal__month {
  margin: 0;
  font: var(--lv-cal-head-weight, var(--lv-weight-semibold)) var(--lv-cal-head-size, var(--lv-text-lg)) / var(--lv-leading-snug) var(--lv-cal-head-family, var(--lv-font-ui));
  letter-spacing: var(--lv-cal-head-tracking, var(--lv-tracking-heading));
  text-transform: var(--lv-cal-head-case);
  color: var(--lv-cal-head-ink, var(--lv-cal-ink, var(--lv-text-primary)));
}

.lv-cal__pager {
  display: inline-flex;
  gap: var(--lv-space-2);
}

/* The pager is `--sm` (36px) so it does not shout over the month name, which is
   right with a mouse and wrong with a thumb. `.lv-chip` in section.css makes the
   same trade the same way; a tablet is the likeliest device to meet the grid,
   since the list view is what a phone gets. */
@media (pointer: coarse) {
  .lv-cal__pager .lv-btn {
    min-inline-size: 44px;
    min-block-size: 44px;
    inline-size: 44px;
    block-size: 44px;
  }
}

/* ── Weekday header and the week rows ────────────────────────────────────── */

.lv-cal__weekdays,
.lv-cal__week {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.lv-cal__weekdays {
  border-block-end: 1px solid var(--lv-cal-line, var(--lv-line));
  background: var(--lv-cal-weekday-bg, transparent);
}

.lv-cal__weekday {
  padding: var(--lv-space-2) var(--lv-space-3);
  font: var(--lv-weight-semibold) var(--lv-text-2xs) / 1 var(--lv-font-ui);
  letter-spacing: var(--lv-tracking-label);
  text-transform: uppercase;
  color: var(--lv-cal-weekday-ink, var(--lv-cal-muted, var(--lv-text-tertiary)));
}

/* One hairline per shared edge: the row owns its top rule, the cell owns its
   leading rule, and the first cell of each row suppresses its own. Doubling a
   1px rule into 2px along every internal edge is the classic grid tell. */
.lv-cal__week + .lv-cal__week {
  border-block-start: 1px solid var(--lv-cal-line, var(--lv-line));
}

.lv-cal__cell {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--lv-cal-cell-gap, var(--lv-space-1));
  min-block-size: var(--lv-cal-cell-min, 5.5rem);
  padding: var(--lv-cal-cell-pad, var(--lv-space-2));
  border-inline-start: 1px solid var(--lv-cal-line, var(--lv-line));
}

.lv-cal__cell:first-child {
  border-inline-start: 0;
}

.lv-cal__cell--pad {
  background: var(--lv-cal-pad-bg, var(--lv-surface-sunken));
}

.lv-cal__cell:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-cal-focus, var(--lv-focus-ring));
  outline-offset: calc(var(--lv-focus-offset) * -1);
}

/* `font-weight` without a fallback: unset inherits, as before (see .lv-cal__month). */
.lv-cal__date {
  font-size: var(--lv-cal-date-size, var(--lv-text-xs));
  font-weight: var(--lv-cal-date-weight);
  color: var(--lv-cal-muted, var(--lv-text-tertiary));
}

/* Today is stated with weight and ink, not with a filled disc — the disc reads
   as "selected" and the visitor has selected nothing. Set by the client, which
   is the only place a clock is permitted. */
.lv-cal__cell--today .lv-cal__date {
  font-weight: var(--lv-weight-bold);
  color: var(--lv-cal-ink, var(--lv-text-primary));
}

.lv-cal__cell--today::before {
  content: '';
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  block-size: var(--lv-cal-today-bar, 2px);
  background: var(--lv-cal-accent, var(--lv-brand));
}

/* The optional ring (`--lv-cal-today-ring`, 0 by default): an inset shadow,
   so it never changes the cell's box. A 0px spread paints nothing. */
.lv-cal__cell--today {
  box-shadow: inset 0 0 0 var(--lv-cal-today-ring, 0px) var(--lv-cal-accent, var(--lv-brand));
}

/* ── Event chips ─────────────────────────────────────────────────────────── */

.lv-cal__chips {
  display: flex;
  flex-direction: column;
  gap: var(--lv-cal-chip-gap, 2px);
  min-block-size: 0;
}

/* SC 2.5.8 (Target Size, Minimum): a day chip is a discrete clickable tile in
   a month-grid cell — the calendar equivalent of an event badge — so the
   standard's "in a sentence or block of text" exception does not apply. It
   measured 154-175 × 20-21 before this rule. `align-items: baseline` is kept
   because the time stamp and the title must sit on one baseline; the 24px
   floor grows the chip's box beneath them without disturbing that. */
.lv-cal__chip {
  display: flex;
  align-items: baseline;
  min-block-size: 24px;
  gap: var(--lv-space-2);
  padding: var(--lv-cal-chip-pad, 3px var(--lv-space-2));
  border-radius: var(--lv-cal-chip-radius, var(--lv-radius-sm));
  background: var(--lv-cal-chip-bg, var(--lv-brand-soft));
  font: var(--lv-cal-chip-weight, var(--lv-weight-medium)) var(--lv-cal-chip-size, var(--lv-text-2xs)) / 1.3 var(--lv-font-ui);
  color: var(--lv-cal-chip-ink, var(--lv-text-primary));
  text-decoration: none;
}

a.lv-cal__chip:hover {
  background: var(--lv-surface-raised);
}

a.lv-cal__chip:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-cal-focus, var(--lv-focus-ring));
  outline-offset: var(--lv-focus-offset);
}

.lv-cal__chip-time {
  flex: none;
  font-size: var(--lv-cal-chip-size, var(--lv-text-2xs));
  color: var(--lv-cal-chip-time, var(--lv-text-secondary));
}

.lv-cal__chip-title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* THE SIGNATURE. A multi-day event is one continuous bar across the days it
   runs, so the shape of a busy weekend is legible at a glance — which is the
   whole difference between a calendar and a list. The days after the first
   square off their leading edge and lose their inset, so consecutive cells
   read as one object interrupted by the grid rule rather than as three
   unrelated chips that happen to share a title. No accent stripe involved. */
.lv-cal__chip--spans {
  background: var(--lv-cal-chip-bg, var(--lv-brand-soft));
  box-shadow: inset 0 0 0 1px var(--lv-line-control);
}

.lv-cal__chip--continues {
  border-start-start-radius: 0;
  border-end-start-radius: 0;
  margin-inline-start: calc(var(--lv-cal-cell-pad, var(--lv-space-2)) * -1 - 1px);
  padding-inline-start: var(--lv-space-2);
}

.lv-cal__more {
  padding-inline: var(--lv-space-2);
  font-size: var(--lv-text-2xs);
  color: var(--lv-cal-muted, var(--lv-text-tertiary));
}

/* ── Visitor-facing tag filter ───────────────────────────────────────────── */

.lv-events__filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--lv-space-2);
  margin-block-end: var(--lv-space-5);
}

.lv-events__filter-label {
  margin: 0;
  font: var(--lv-weight-medium) var(--lv-text-sm) / 1 var(--lv-font-ui);
  color: var(--lv-text-secondary);
}

.lv-chip--toggle {
  border: 0;
  cursor: pointer;
  font: inherit;
}

.lv-chip--toggle[aria-pressed='true'] {
  background: var(--lv-cal-accent, var(--lv-brand));
  color: var(--lv-cal-accent-ink, var(--lv-text-on-brand));
  box-shadow: none;
}

.lv-chip--toggle:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

.lv-chip--static {
  min-block-size: 28px;
  padding-inline: var(--lv-space-3);
  font-size: var(--lv-text-xs);
  color: var(--lv-text-secondary);
}

.lv-events__facts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lv-space-2);
  margin-block: var(--lv-space-2) 0;
}

/* ── The two views ───────────────────────────────────────────────────────── */
/*
 * The list is the base state and the grid is the enhancement, in that order and
 * for three reasons: it is what a crawler indexes, it is what a visitor without
 * JavaScript gets, and it is the copy that carries the operator's `data-edit`
 * anchors. A container query — not a viewport query — decides which is shown,
 * because this section may sit in a narrow article column on a wide screen.
 */

.lv-events--calendar .lv-events__grid { display: none; }

@container (min-width: 46rem) {
  .lv-events--calendar .lv-events__grid { display: block; }
  .lv-events--calendar .lv-events__list { display: none; }
}

/* A grid that never arrived — shared source still loading, a fetch that failed,
   or a placement whose dates are all unparseable — must not collapse the
   section to nothing. `revert` undoes the `display: none` above rather than
   imposing a second layout on a plain `<ul>`. */
.lv-events--calendar .lv-events__grid:empty { display: none; }

@container (min-width: 46rem) {
  .lv-events--calendar .lv-events__grid:empty + .lv-events__list { display: revert; }
}

/* A day that is over (set by the controller — the only place a clock is
   allowed). Its chips step down to an outline in secondary ink: still AA
   legible, visibly behind the days to come. */
.lv-cal__cell--past .lv-cal__chip {
  background: transparent;
  box-shadow: inset 0 0 0 1px var(--lv-cal-line, var(--lv-line));
  color: var(--lv-cal-muted, var(--lv-text-secondary));
}

/* ── The list row (Kalender, 2026-09-30) ─────────────────────────────────── */
/*
 * Moved here from a scoped `<style>` in `events.astro`: shared-mode rows are
 * painted with `innerHTML` and never carried the scope attribute, so every
 * shared calendar lost its row grid on the published site. Un-scoped,
 * `.lv-events*`-namespaced, like the rest of this file.
 */

.lv-events__item {
  display: grid;
  gap: var(--lv-space-2) var(--lv-space-5);
  align-items: start;
}

.lv-events__when {
  display: grid;
  gap: 2px;
  margin: 0;
  font-size: var(--lv-text-sm);
  color: var(--lv-text-primary);
}

@container (min-width: 44rem) {
  .lv-events__item { grid-template-columns: 14rem minmax(0, 1fr) auto; align-items: center; }
  .lv-events__item--media { grid-template-columns: 12rem 7rem minmax(0, 1fr) auto; }
}

/* The picture. Solid, token-only: a sunken surface shows while it loads, and
   a fixed 16:9 box means nothing moves when it arrives. */
.lv-events__img {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--lv-radius-md);
  background: var(--lv-surface-sunken);
}

.lv-evtl__stop .lv-events__img {
  max-inline-size: 28rem;
  margin-block-end: var(--lv-space-3);
}

/* ── Button + «Tilføj til kalender» ──────────────────────────────────────── */

.lv-events__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--lv-space-2);
}

.lv-events__addcal {
  display: grid;
  gap: var(--lv-space-2);
}

.lv-events__addcal-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--lv-space-2);
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.lv-events__addcal-toggle::-webkit-details-marker { display: none; }
.lv-events__addcal-toggle::marker { content: ''; }

.lv-events__addcal-toggle svg { flex: none; }

.lv-events__addcal[open] > .lv-events__addcal-toggle {
  background: var(--lv-surface-raised);
}

.lv-events__addcal-toggle:focus-visible,
.lv-events__addcal-link:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

.lv-events__addcal-list {
  display: grid;
  gap: var(--lv-space-1);
  margin: 0;
  padding: 0;
  list-style: none;
}

.lv-events__addcal-link {
  display: flex;
  align-items: center;
  min-block-size: 44px;
  padding-inline: var(--lv-space-3);
  border-radius: var(--lv-radius-sm);
  background: var(--lv-surface);
  box-shadow: inset 0 0 0 1px var(--lv-line);
  font: var(--lv-weight-medium) var(--lv-text-sm) / 1.2 var(--lv-font-ui);
  color: var(--lv-text-primary);
  text-decoration: none;
  white-space: nowrap;
}

.lv-events__addcal-link:hover {
  background: var(--lv-surface-raised);
  text-decoration: underline;
}

/* SC 2.5.8: the summary is a `--sm` button (36px) with a mouse and 44px
   under a thumb, the same trade the month pager makes above. */
@media (pointer: coarse) {
  .lv-events__addcal-toggle,
  .lv-events__actions .lv-btn {
    min-block-size: 44px;
  }
}

/* The builder canvas keeps finished manual rows (their edit anchors live on
   them) and marks them instead; the published page removes them. */
[data-lv-event-past] {
  opacity: 0.55;
}

@media (prefers-reduced-motion: reduce) {
  .lv-cal__chip,
  .lv-chip--toggle,
  .lv-events__addcal-toggle,
  .lv-events__addcal-link {
    transition: none;
  }
}

/* P1.4 — «Abonnér på kalenderen» under a shared calendar (opt-in). */
.lv-events__subscribe {
  margin: var(--lv-space-4) 0 0;
}

.lv-events__subscribe > a {
  display: inline-flex;
  align-items: center;
  min-block-size: 44px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   «Kalender-udseende» — the calendar skin (WP-A, 2026-10-08)
   ───────────────────────────────────────────────────────────────────────────
   Everything below matches ONLY markup a skin produces: `[data-lv-cal-skin]`
   on the section, `[data-lv-cal-cat]` on a chip, `.lv-events__filter--legend`.
   A section without a skin renders exactly what it did before (proved by the
   before/after screenshot diff in the WP-A report). The protocol, the lever
   table and how to add a preset: docs/design/calendar-skin-protocol.md.

   PRECEDENCE: token default < theme ornament.css (levers on :root) < preset
   and modifiers (rules on the section, below) < the tenant's own values (the
   section's `style` attribute, written by the renderer from the skin).
   ═════════════════════════════════════════════════════════════════════════ */

/* ── Category slots ──────────────────────────────────────────────────────────
   A category is a SLOT (1–8, the skin's order). Its colour pair arrives as
   `--lv-cal-cat-N` / `--lv-cal-cat-N-ink` — measured for 4.5:1 when the skin
   is saved, the ink picked automatically by contrast unless the skin names
   one. Every coloured element reads the pair through two private variables,
   so a chip, a legend swatch and a selected legend chip can never disagree. */
.lv-events [data-lv-cal-cat='1'] { --lv-calcat-bg: var(--lv-cal-cat-1, var(--lv-cal-chip-bg, var(--lv-brand-soft))); --lv-calcat-ink: var(--lv-cal-cat-1-ink, var(--lv-cal-chip-ink, var(--lv-text-primary))); }
.lv-events [data-lv-cal-cat='2'] { --lv-calcat-bg: var(--lv-cal-cat-2, var(--lv-cal-chip-bg, var(--lv-brand-soft))); --lv-calcat-ink: var(--lv-cal-cat-2-ink, var(--lv-cal-chip-ink, var(--lv-text-primary))); }
.lv-events [data-lv-cal-cat='3'] { --lv-calcat-bg: var(--lv-cal-cat-3, var(--lv-cal-chip-bg, var(--lv-brand-soft))); --lv-calcat-ink: var(--lv-cal-cat-3-ink, var(--lv-cal-chip-ink, var(--lv-text-primary))); }
.lv-events [data-lv-cal-cat='4'] { --lv-calcat-bg: var(--lv-cal-cat-4, var(--lv-cal-chip-bg, var(--lv-brand-soft))); --lv-calcat-ink: var(--lv-cal-cat-4-ink, var(--lv-cal-chip-ink, var(--lv-text-primary))); }
.lv-events [data-lv-cal-cat='5'] { --lv-calcat-bg: var(--lv-cal-cat-5, var(--lv-cal-chip-bg, var(--lv-brand-soft))); --lv-calcat-ink: var(--lv-cal-cat-5-ink, var(--lv-cal-chip-ink, var(--lv-text-primary))); }
.lv-events [data-lv-cal-cat='6'] { --lv-calcat-bg: var(--lv-cal-cat-6, var(--lv-cal-chip-bg, var(--lv-brand-soft))); --lv-calcat-ink: var(--lv-cal-cat-6-ink, var(--lv-cal-chip-ink, var(--lv-text-primary))); }
.lv-events [data-lv-cal-cat='7'] { --lv-calcat-bg: var(--lv-cal-cat-7, var(--lv-cal-chip-bg, var(--lv-brand-soft))); --lv-calcat-ink: var(--lv-cal-cat-7-ink, var(--lv-cal-chip-ink, var(--lv-text-primary))); }
.lv-events [data-lv-cal-cat='8'] { --lv-calcat-bg: var(--lv-cal-cat-8, var(--lv-cal-chip-bg, var(--lv-brand-soft))); --lv-calcat-ink: var(--lv-cal-cat-8-ink, var(--lv-cal-chip-ink, var(--lv-text-primary))); }

/* The mark: a registry drawing (stroke = currentColor = the slot's ink) or a
   media picture. Decorative — the label beside it names the category. */
.lv-cal__chip-icon,
.lv-events__cat-icon {
  flex: none;
  inline-size: 1.15em;
  block-size: 1.15em;
  object-fit: contain;
}

.lv-cal__chip--cat .lv-cal__chip-icon { align-self: center; }

/* Grid chip in a category: the slot's pair, time stamp included. Hover keeps
   the measured pair and underlines instead of swapping the fill. */
.lv-cal__chip--cat,
.lv-cal__chip--cat.lv-cal__chip--spans {
  background: var(--lv-calcat-bg);
  color: var(--lv-calcat-ink);
}

.lv-cal__chip--cat .lv-cal__chip-time { color: var(--lv-calcat-ink); }

a.lv-cal__chip--cat:hover { background: var(--lv-calcat-bg); }
a.lv-cal__chip--cat:hover .lv-cal__chip-title { text-decoration: underline; text-underline-offset: 2px; }

/* A finished day: the fill steps back to a ring in the slot colour (a cue,
   never the only one — the label says it), the text to the grid's muted ink. */
.lv-cal__cell--past .lv-cal__chip--cat {
  background: transparent;
  box-shadow: inset 0 0 0 2px var(--lv-calcat-bg);
  color: var(--lv-cal-muted, var(--lv-text-secondary));
}

.lv-cal__cell--past .lv-cal__chip--cat .lv-cal__chip-time { color: inherit; }

/* List, timeline and poster: the tag fact becomes the category chip. */
.lv-chip--static.lv-events__cat {
  background: var(--lv-calcat-bg);
  box-shadow: none;
  color: var(--lv-calcat-ink);
  font-weight: var(--lv-cal-chip-weight, var(--lv-weight-medium));
}

/* ── The legend that is also the filter ──────────────────────────────────────
   Each category is a toggle button with its mark; «Alle» first. A key while
   nothing is chosen, a filter when something is: the chosen chip fills with
   its slot pair AND gains a ring in its own ink, so «chosen» is a change of
   shape, not of colour alone (SC 1.4.1). 44px on every pointer (§1). */
.lv-events__filter--legend .lv-chip--toggle {
  min-block-size: 44px;
  gap: var(--lv-space-2);
  padding-inline: var(--lv-space-3) var(--lv-space-4);
}

.lv-events__cat-mark {
  display: inline-grid;
  place-items: center;
  flex: none;
  inline-size: 1.5rem;
  block-size: 1.5rem;
  border-radius: calc(var(--lv-cal-chip-radius, var(--lv-radius-sm)) / 2);
  background: var(--lv-calcat-bg);
  color: var(--lv-calcat-ink);
}

.lv-events__cat-mark .lv-events__cat-icon { inline-size: 1rem; block-size: 1rem; }

.lv-chip--static.lv-events__cat .lv-events__cat-mark {
  inline-size: auto;
  block-size: auto;
  background: transparent;
}

.lv-events__filter--legend .lv-chip--toggle[aria-pressed='true'][data-lv-cal-cat] {
  background: var(--lv-calcat-bg);
  color: var(--lv-calcat-ink);
  box-shadow: inset 0 0 0 2px var(--lv-calcat-ink);
}

.lv-events__filter--legend .lv-chip--toggle[aria-pressed='true'] .lv-events__cat-mark {
  background: transparent;
}

/* ── Presets — each one a set of LEVER VALUES, never a property ──────────────
   `standard` has no block: it is today's calendar. Adding a preset = one block
   here + its key in CALENDAR_SKIN_PRESETS (packages/contracts/src/calendar.ts)
   + its Danish name (packages/i18n) — see the protocol doc. */

/* «Spilaften»: a game-night / tournament board. A dense month on a sunken
   weekday strip, bold chips, today ringed, and a poster header: the month in
   the theme's display face, heavy and upper-case, on the brand-strong band
   (brand-strong + text-on-brand is the gated `panel-dark` pair). */
.lv-events[data-lv-cal-skin='spilaften'] {
  --lv-cal-radius: var(--lv-radius-md);
  --lv-cal-cell-min: 4.5rem;
  --lv-cal-cell-pad: var(--lv-space-1);
  --lv-cal-cell-gap: 3px;
  --lv-cal-date-weight: var(--lv-weight-bold);
  --lv-cal-weekday-bg: var(--lv-surface-sunken);
  --lv-cal-weekday-ink: var(--lv-text-secondary);
  --lv-cal-today-bar: 4px;
  --lv-cal-today-ring: 2px;
  --lv-cal-head-bg: var(--lv-brand-strong);
  --lv-cal-head-ink: var(--lv-text-on-brand);
  --lv-cal-head-size: var(--lv-text-xl);
  --lv-cal-head-weight: var(--lv-weight-mark);
  --lv-cal-head-family: var(--lv-display-family, var(--lv-font-ui));
  --lv-cal-head-tracking: var(--lv-tracking-label);
  --lv-cal-head-case: uppercase;
  --lv-cal-head-pad: var(--lv-space-5);
  --lv-cal-chip-weight: var(--lv-weight-bold);
  --lv-cal-chip-radius: calc(var(--lv-radius-sm) / 2);
  --lv-cal-chip-pad: 3px var(--lv-space-1);
  --lv-cal-chip-gap: 3px;
}

/* «Plakat»: the month as a printed poster — display-face header, large heavy
   day numerals, square chips. */
.lv-events[data-lv-cal-skin='plakat'] {
  --lv-cal-radius: var(--lv-radius-sm);
  --lv-cal-cell-min: 6.5rem;
  --lv-cal-date-size: var(--lv-text-md);
  --lv-cal-date-weight: var(--lv-weight-heading);
  --lv-cal-head-size: var(--lv-text-xl);
  --lv-cal-head-weight: var(--lv-weight-heading);
  --lv-cal-head-family: var(--lv-display-family, var(--lv-font-ui));
  --lv-cal-head-tracking: var(--lv-display-tracking, var(--lv-tracking-heading));
  --lv-cal-head-case: uppercase;
  --lv-cal-chip-radius: 0;
}

/* «Minimal»: no frame, no fills — hairlines and text on the page's own
   surface. Category chips keep their colour: that is information. */
.lv-events[data-lv-cal-skin='minimal'] {
  --lv-cal-ring: 0px;
  --lv-cal-radius: 0;
  --lv-cal-surface: transparent;
  --lv-cal-pad-bg: transparent;
  --lv-cal-head-pad: var(--lv-space-3) 0;
  --lv-cal-chip-bg: transparent;
  --lv-cal-chip-pad: 2px var(--lv-space-1);
  --lv-cal-cell-min: 4.5rem;
}

/* ── Modifiers — explicit choices beat the preset (same specificity, later) ─ */

.lv-events[data-lv-cal-density='airy'] { --lv-cal-cell-min: 7rem; --lv-cal-cell-pad: var(--lv-space-3); --lv-cal-cell-gap: var(--lv-space-2); --lv-cal-chip-gap: var(--lv-space-1); }
.lv-events[data-lv-cal-density='standard'] { --lv-cal-cell-min: 5.5rem; --lv-cal-cell-pad: var(--lv-space-2); --lv-cal-cell-gap: var(--lv-space-1); --lv-cal-chip-gap: 2px; }
.lv-events[data-lv-cal-density='dense'] { --lv-cal-cell-min: 4.25rem; --lv-cal-cell-pad: var(--lv-space-1); --lv-cal-cell-gap: 2px; --lv-cal-chip-gap: 2px; }

.lv-events[data-lv-cal-radius='square'] { --lv-cal-radius: 0; --lv-cal-chip-radius: 0; }
.lv-events[data-lv-cal-radius='standard'] { --lv-cal-radius: var(--lv-radius-lg); --lv-cal-chip-radius: var(--lv-radius-sm); }
.lv-events[data-lv-cal-radius='round'] { --lv-cal-radius: var(--lv-radius-xl); --lv-cal-chip-radius: var(--lv-radius-pill); }

.lv-events[data-lv-cal-head='plain'] {
  --lv-cal-head-bg: transparent;
  --lv-cal-head-ink: var(--lv-cal-ink, var(--lv-text-primary));
  --lv-cal-head-size: var(--lv-text-lg);
  --lv-cal-head-weight: var(--lv-weight-semibold);
  --lv-cal-head-family: var(--lv-font-ui);
  --lv-cal-head-tracking: var(--lv-tracking-heading);
  --lv-cal-head-case: none;
  --lv-cal-head-pad: var(--lv-space-4) var(--lv-space-5);
}

/* A band takes the skin's accent pair when it has one, else brand-strong +
   text-on-brand (the gated `panel-dark` pair). */
.lv-events[data-lv-cal-head='band'] {
  --lv-cal-head-bg: var(--lv-cal-accent, var(--lv-brand-strong));
  --lv-cal-head-ink: var(--lv-cal-accent-ink, var(--lv-text-on-brand));
  --lv-cal-head-size: var(--lv-text-lg);
  --lv-cal-head-weight: var(--lv-weight-bold);
  --lv-cal-head-family: var(--lv-font-ui);
  --lv-cal-head-tracking: var(--lv-tracking-heading);
  --lv-cal-head-case: none;
  --lv-cal-head-pad: var(--lv-space-4) var(--lv-space-5);
}

.lv-events[data-lv-cal-head='poster'] {
  --lv-cal-head-bg: var(--lv-cal-accent, var(--lv-brand-strong));
  --lv-cal-head-ink: var(--lv-cal-accent-ink, var(--lv-text-on-brand));
  --lv-cal-head-size: var(--lv-text-xl);
  --lv-cal-head-weight: var(--lv-weight-mark);
  --lv-cal-head-family: var(--lv-display-family, var(--lv-font-ui));
  --lv-cal-head-tracking: var(--lv-tracking-label);
  --lv-cal-head-case: uppercase;
  --lv-cal-head-pad: var(--lv-space-5);
}

/* A heavy month name must still fit a phone-width grid: the month bar wraps
   and the name drops a step before it would overflow. */
@container (max-width: 40rem) {
  .lv-events[data-lv-cal-skin] .lv-cal__month { font-size: min(var(--lv-cal-head-size, var(--lv-text-lg)), var(--lv-text-lg)); }
}
/* components/browse.event-set/renderers/plakat.css */
/**
 * browse.event-set · `plakat` ("Plakatvæggen") — the poster rail.
 *
 * Un-scoped, `.lv-evpo*`-namespaced: the client repaint path
 * (`lvcalPosterHtml`) injects this structure. Theme tokens only.
 *
 * Calendar levers (WP-A): the card's ring and date rule read `--lv-cal-line`.
 * The card's surface and inks deliberately do NOT read the grid's surface
 * levers — the card carries buttons and «Tilføj til kalender» drawn in page
 * roles, and an ink lever is only ever read on the surface its skin colours.
 *
 * The rail is a native scroll-snap row — no JavaScript required to browse it.
 * `data-drag-gallery` upgrades it with inertial drag at react HIGH; that
 * chunk, not this file, owns the drag behaviour.
 */

.lv-evpo__rail {
  /* `position: relative` is load-bearing, exactly as on `.lv-table-scroll`
     (registry/styles/section.css): every card carries `.lv-vh` date labels,
     which are `position: absolute` — with a static scroller their containing
     block is the theme's `position: relative` section shell, so at 390px
     they escaped the rail and set the DOCUMENT's scroll width (measured:
     +680px on the community showcase). The scroller must be their
     containing block so they clip with everything else. */
  position: relative;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(15rem, 18rem);
  gap: var(--lv-space-4);
  margin: 0;
  padding: var(--lv-space-1) var(--lv-space-1) var(--lv-space-4);
  list-style: none;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
}

.lv-evpo__card {
  display: grid;
  align-content: start;
  gap: var(--lv-space-3);
  padding: var(--lv-space-5);
  border-radius: var(--lv-radius-md);
  background: var(--lv-surface-raised);
  box-shadow: inset 0 0 0 1px var(--lv-cal-line, var(--lv-line));
  scroll-snap-align: start;
}

.lv-evpo__date { margin: 0; }

.lv-evpo__date time {
  display: flex;
  align-items: baseline;
  gap: var(--lv-space-2);
  padding-block-end: var(--lv-space-3);
  border-block-end: 1px solid var(--lv-cal-line, var(--lv-line));
}

.lv-evpo__day {
  font-size: var(--lv-text-2xl);
  font-weight: var(--lv-weight-bold);
  line-height: 1;
  color: var(--lv-text-primary);
  font-feature-settings: 'tnum' 1;
}

.lv-evpo__mon {
  font-family: var(--lv-font-mono);
  font-size: var(--lv-text-xs);
  letter-spacing: var(--lv-tracking-eyebrow);
  text-transform: uppercase;
  color: var(--lv-text-tertiary);
}

.lv-evpo__summary {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.lv-evpo__card .lv-btn { justify-self: start; }

/* Kalender 2026-09-30 — the poster's picture sits on top, bled to the card's
   edges so the card reads as one printed object, not a photo in a frame. */
.lv-evpo__img {
  inline-size: calc(100% + 2 * var(--lv-space-5));
  max-inline-size: none;
  margin: calc(-1 * var(--lv-space-5)) calc(-1 * var(--lv-space-5)) 0;
  border-radius: var(--lv-radius-md) var(--lv-radius-md) 0 0;
}
/* components/browse.event-set/renderers/timeline.css */
/**
 * browse.event-set · `timeline` ("Tidslinjen") — the season flow.
 *
 * Un-scoped, `.lv-evtl*`-namespaced: the client repaint path
 * (`lvcalTimelineHtml`) injects this structure, and injected nodes never carry
 * Astro's scoping attribute. Theme tokens only.
 *
 * Calendar levers (WP-A): the spine and the month pill's ring read
 * `--lv-cal-line`; everything else here sits on the page canvas and keeps the
 * page roles (an ink lever is only read on the surface its skin colours).
 */

.lv-evtl__flow {
  position: relative;
  padding-inline-start: var(--lv-space-6);
}

.lv-evtl__spine {
  position: absolute;
  inset-block: 0;
  inset-inline-start: calc(var(--lv-space-2) + 1px);
  width: 2px;
  height: 100%;
  color: var(--lv-cal-line, var(--lv-line));
}

.lv-evtl__months {
  display: grid;
  gap: var(--lv-space-7);
  margin: 0;
  padding: 0;
  list-style: none;
}

.lv-evtl__month { display: grid; gap: var(--lv-space-4); }

/* The month heading sits ON the spine and breaks it — its own opaque surface
   is the segment gap, same trick as the journey rail's markers. */
.lv-evtl__month-label {
  justify-self: start;
  margin: 0 0 0 calc(-1 * var(--lv-space-6));
  padding: var(--lv-space-1) var(--lv-space-3);
  background: var(--lv-surface);
  box-shadow: inset 0 0 0 1px var(--lv-cal-line, var(--lv-line));
  border-radius: var(--lv-radius-pill);
  font-family: var(--lv-font-mono);
  font-size: var(--lv-text-xs);
  letter-spacing: var(--lv-tracking-eyebrow);
  text-transform: uppercase;
  color: var(--lv-text-secondary);
}

.lv-evtl__list {
  display: grid;
  gap: var(--lv-space-5);
  margin: 0;
  padding: 0;
  list-style: none;
}

.lv-evtl__stop {
  display: grid;
  gap: var(--lv-space-2) var(--lv-space-5);
  align-items: start;
}

.lv-evtl__date { margin: 0; }

.lv-evtl__date time {
  display: grid;
  gap: 2px;
  justify-items: start;
}

.lv-evtl__daynum {
  font-size: var(--lv-text-xl);
  font-weight: var(--lv-weight-bold);
  line-height: 1;
  color: var(--lv-text-primary);
  font-feature-settings: 'tnum' 1;
}

.lv-evtl__time {
  font-size: var(--lv-text-xs);
  color: var(--lv-text-tertiary);
}

@container (min-width: 44rem) {
  .lv-evtl__flow { padding-inline-start: var(--lv-space-8); }
  .lv-evtl__month-label { margin-inline-start: calc(-1 * var(--lv-space-8)); }
  .lv-evtl__stop { grid-template-columns: 6rem minmax(0, 1fr) auto; align-items: center; }
}
/* components/browse.image-set/renderers/lightbox.css */
/**
 * `browse.image-set`'s gallery lightbox surface.
 *
 * DELIBERATE DUPLICATE of `browse.product-media/renderers/lightbox.css`,
 * `.lv-pmedia-lb` renamed to `.lv-gallery-lb` throughout — not a shared
 * import, because a component's renderer only imports its own sibling files
 * in this tree (see that component's script/def.ts header for the fuller
 * rationale on why the dialog is built lazily and reads straight off the
 * baked `<img>` elements). Both dialogs must stay visually identical: change
 * one, change the other in the same edit — WITH ONE NAMED EXCEPTION:
 *
 * `.lv-gallery-lb__meta` / `.lv-gallery-lb__caption` (2026-08-14,
 * GAP-ANALYSIS §6 G19) are an image-set-ONLY addition. `browse.product-media`
 * has no caption content — it shows the same object from different angles,
 * not different subjects — so its `.lv-pmedia-lb__counter` stays exactly as
 * it was: a bare, absolutely-positioned bottom bar. Here that bar became a
 * flex row (`.lv-gallery-lb__meta`) holding the new caption span plus the
 * counter span, which keeps its own mirrored styling (font, tokens,
 * position within the row) — so if you ever add a caption to product-media
 * too, mirror THIS shape into that file rather than re-deriving it.
 * `.lv-gallery-lb__link` (2026-09-07) is the SECOND image-set-only addition,
 * for the same reason and inside the same row — see its own block below.
 * Every other rule below (`__shell`, `__figure`, `__img`, `__close`, `__nav`,
 * `::backdrop`) is still the byte-identical mirror the rest of this comment
 * describes.
 *
 * 2026-08-14 chrome polish (PATTERN-STANDARDS §2.2b, mirrored BOTH ways —
 * these rules are part of the byte-identical base, not the exception): the
 * backdrop gained a blur behind the scrim (the A13 recipe — the page recedes
 * physically, not just tonally), the dialog and backdrop gained an entrance
 * (opacity + a short rise, transform/opacity only, killed in the
 * reduced-motion block below), and the nav arrows nudge 2px in their travel
 * direction on hover at `--lv-dur-fast` — the §1.1 affordance layer.
 *
 * UN-SCOPED ON PURPOSE, same reason `act.qualify/renderers/questionnaire.css`
 * and `browse.product-media/renderers/lightbox.css` give: it is a file every
 * one of this component's four route-family renderers imports, so a scoped
 * copy would be four near-identical copies of the same dialog in
 * `registry.css`. Every selector here is `.lv-gallery-lb*`-namespaced, so
 * global scope is collision-safe; the generator inlines this file verbatim.
 *
 * 2026-08-18 (Phase 7C1): THE DIALOG IS SERVER-RENDERED NOW. It used to be
 * built by the client script on first open — which is why this file could not
 * be scoped in the first place, the markup never carrying Astro's build-time
 * `data-astro-cid-*` attribute. Declaring the renderer's interaction anatomy
 * made that build the DOM-replacement family `check/interaction.ts` bans, so
 * each renderer now bakes one `<dialog>` per placement and the behaviour only
 * writes `textContent` into its caption and counter. The rules below are
 * unchanged: they were always plain class selectors, and they match the baked
 * markup exactly as they matched the built markup.
 *
 * SURFACE CLASS: solid. `.impeccable.md` §3 keeps glass off any surface that
 * scrolls its own content or fills most of the viewport as the thing being
 * looked at rather than chrome floating over other content — a lightbox is
 * squarely that. The scrim behind it is the only translucent thing here.
 */

.lv-gallery-lb {
  inline-size: min(56rem, calc(100vw - var(--lv-space-6)));
  max-block-size: calc(100dvh - var(--lv-space-7));
  padding: 0;
  border: 0;
  border-radius: var(--lv-radius-xl);
  background: var(--lv-surface);
  box-shadow: inset 0 0 0 1px var(--lv-line), var(--lv-lift-3);
  color: var(--lv-text-primary);
}

/* Blur + scrim, not scrim alone (A13): the page behind physically recedes,
   which is what makes the solid dialog read as the one thing in focus.
   `-webkit-` prefix for Safari, which still requires it on backdrop-filter. */
.lv-gallery-lb::backdrop {
  background: var(--lv-overlay-scrim);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

/* Entrance — transform/opacity only, one short rise. `[open]` so re-running
   the animation on every showModal() needs no JS class juggling; the
   backdrop fades in step. Reduced motion kills both below. */
@keyframes lv-gallery-lb-in {
  from { opacity: 0; transform: translateY(0.65rem); }
}

@keyframes lv-gallery-lb-backdrop-in {
  from { opacity: 0; }
}

.lv-gallery-lb[open] { animation: lv-gallery-lb-in var(--lv-dur-state) var(--lv-ease); }
.lv-gallery-lb[open]::backdrop { animation: lv-gallery-lb-backdrop-in var(--lv-dur-state) var(--lv-ease); }

.lv-gallery-lb__shell {
  position: relative;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  justify-items: center;
  align-items: center;
  gap: var(--lv-space-3);
  padding: var(--lv-space-6);
}

.lv-gallery-lb__figure {
  display: grid;
  margin: 0;
  min-block-size: 0;
  max-inline-size: 100%;
  max-block-size: calc(100dvh - var(--lv-space-7) - var(--lv-space-9));
}

.lv-gallery-lb__img {
  display: block;
  max-inline-size: 100%;
  max-block-size: calc(100dvh - var(--lv-space-7) - var(--lv-space-9));
  object-fit: contain;
  border-radius: var(--lv-radius-md);
  opacity: 0;
  transition: opacity var(--lv-dur-state) var(--lv-ease);
}

.lv-gallery-lb__img[data-ready='1'] { opacity: 1; }

.lv-gallery-lb__close {
  position: absolute;
  inset-block-start: var(--lv-space-3);
  inset-inline-end: var(--lv-space-3);
  z-index: 1;
}

.lv-gallery-lb__nav {
  position: absolute;
  inset-block-start: 50%;
  transform: translateY(-50%);
  z-index: 1;
  transition: transform var(--lv-dur-fast) var(--lv-ease);
}

.lv-gallery-lb__nav--prev { inset-inline-start: var(--lv-space-3); }
.lv-gallery-lb__nav--next { inset-inline-end: var(--lv-space-3); }

/* Directional nudge, the §1.1 affordance grammar: the arrow moves 2px the
   way it will take you, at the quick layer's duration. `:active` recompresses
   to the resting spot. The nudge is hover MOTION, so it is pointer-gated
   (prove.people's "POINTER PREVIEW IS POINTER-ONLY" clause): on touch,
   `:hover` latches after a tap and the arrow would stay leaning until the
   next tap somewhere else. `:active` stays ungated — a press exists on every
   pointer type. */
@media (hover: hover) and (pointer: fine) {
  .lv-gallery-lb__nav--prev:hover { transform: translateY(-50%) translateX(-2px); }
  .lv-gallery-lb__nav--next:hover { transform: translateY(-50%) translateX(2px); }
}
.lv-gallery-lb__nav:active { transform: translateY(-50%) scale(0.94); }

/* image-set-only — see the file header. The bar keeps the exact absolute
   bottom-centre position `.lv-pmedia-lb__counter` uses in product-media;
   it just now holds two spans instead of being the counter text itself. */
.lv-gallery-lb__meta {
  grid-row: 2;
  inline-size: 100%;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: var(--lv-space-3);
  text-align: center;
}

.lv-gallery-lb__caption {
  font-size: var(--lv-text-sm);
  color: var(--lv-text-primary);
}

.lv-gallery-lb__caption:empty { display: none; }

/* image-set-only, and a SECOND deliberate departure from the mirror (the
   header's exception list): `lightboxLink` (def.ts, "one way out of the
   dialog"). `browse.product-media` shows one object from several angles and
   has nowhere to send a reader; a gallery embedded beside a project or a case
   is a sample of a larger collection, and the reader on the last picture is
   the one who wants the rest. The mirror runs product-media → image-set only
   (`browse-family-wave.test.ts`), so an extra block here is legal; if
   product-media ever grows the same idea, mirror THIS shape rather than
   re-deriving it.

   Quiet by construction: it sits in the meta row the caption and counter
   already share, at counter weight, and it is the only underlined thing in
   the dialog so it cannot be mistaken for the caption. `:focus-visible` comes
   from the shared primitive; the 44px touch floor is met with padding rather
   than a min-size so the baseline stays aligned with its two siblings. */
.lv-gallery-lb__link {
  display: inline-flex;
  align-items: baseline;
  gap: var(--lv-space-1);
  padding-block: var(--lv-space-3);
  font-size: var(--lv-text-xs);
  color: var(--lv-text-primary);
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.lv-gallery-lb__link:hover { text-decoration-thickness: 2px; }

/* The off-switch, and the reason the element is rendered unconditionally:
   an `<a>` wrapped in `{cond && (…)}` inside the `<template>` is duplicated
   by the Astro compiler (see the note beside the element). An empty label
   therefore yields an empty element, which this removes — exactly what
   `.lv-gallery-lb__caption:empty` above does for a picture with no caption. */
.lv-gallery-lb__link:empty { display: none; }

/* Mirrored styling from `.lv-pmedia-lb__counter` — only the wrapper that
   positions it changed. */
.lv-gallery-lb__counter {
  font: var(--lv-weight-medium) var(--lv-text-2xs) / 1 var(--lv-font-mono);
  font-feature-settings: 'tnum' 1;
  letter-spacing: var(--lv-tracking-num);
  color: var(--lv-text-tertiary);
}

@media (prefers-reduced-motion: reduce) {
  .lv-gallery-lb__img { transition: none; }

  /* The `[class*="lv-"]` backstop in styles/section.css cannot reach a
     `::backdrop` pseudo-element, so the entrance pair is disarmed here
     explicitly rather than left to collapse. */
  .lv-gallery-lb[open],
  .lv-gallery-lb[open]::backdrop { animation: none; }

  .lv-gallery-lb__nav { transition: none; }
}
/* components/browse.product-detail/renderers/pdp-pair.css */
/* =============================================================================
   browse.product-detail · the buy box beside the gallery (Business commerce
   wave, 2026-09-26)
   -----------------------------------------------------------------------------
   The product page's two halves are two placements — `browse.product-media`
   and this component — and the renderer's composition pass already knows how
   to set two placements side by side: `_split: { with: 'next', ratio: '7/5' }`
   on the media placement renders both into ONE section as `.lvt-split`
   columns (apps/site-renderer/composition.mjs, chrome.mjs). The generated
   product page (`tools/release/shop-content.mjs`) now asks for exactly that.

   What the split does not do is let a column STICK: `.lvt-split` aligns its
   columns to the start, so each column is as tall as its own content and a
   sticky child has no room to travel. The column that holds a commerce buy
   box (`[data-lv-pdp-column]`, emitted only by the `couture` and `cosmetics`
   anatomies) is therefore made sticky itself — a start-aligned grid item
   inside a row as tall as the gallery beside it, which is exactly the room
   `position: sticky` needs.

   THE ONE RULE HERE THAT NAMES A COMPOSITION WRAPPER. The dependency runs
   component → shell (the direction `styles/section.css` already reads
   `.lvt-shell--bleed` in), it is scoped by `:has()` to a column this
   component emitted, and it declares positioning only — no colour, no size,
   no rhythm. Nothing else on any page can match it. If the theme plane ever
   grows a sticky-column hook of its own, this block moves there unchanged.

   Only where it can work: the split stacks at 900px, so below that the buy
   box simply follows the gallery; and a viewport too short to hold the box
   would pin its lower half out of reach, so the rule also asks for height.
   Sticky is not motion — `prefers-reduced-motion` leaves it on.
   ========================================================================== */

@media (min-width: 901px) and (min-height: 40rem) {
  .lvt-split > .lvt-split__item:has(> [data-lv-pdp-column]) {
    position: sticky;
    inset-block-start: var(--lv-space-6);
  }
}

/* The mirror case (1.0.246): the shared anatomy's buy column grows with a
   long description — Baltzer's longest runs to 3,000+ px — and the gallery
   beside it ended a few hundred pixels down, leaving the left half of the
   page empty while the visitor read. The gallery column holds instead. Same
   scoping rule as above (a product-media placed directly beside a product
   buy box, nothing else), and only where the viewport can hold the whole
   gallery — square stage plus thumbnail rail — so the rail is never pinned
   out of reach below the fold. */
@media (min-width: 901px) and (min-height: 50rem) {
  .lvt-split > .lvt-split__item:has(> [data-lv-pmedia]):has(+ .lvt-split__item [data-lv-pdetail]) {
    position: sticky;
    inset-block-start: var(--lv-space-6);
  }
}

/* Shared storefront facts for the two theme-specific PDP anatomies. */
.lv-pdp-breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lv-space-1);
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--lv-text-xs);
  color: var(--lv-text-tertiary);
}
.lv-pdp-breadcrumbs li:not(:last-child)::after { content: '›'; margin-inline-start: var(--lv-space-1); }
.lv-pdp-breadcrumbs a { color: inherit; text-decoration: none; }
.lv-pdp-breadcrumbs a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.lv-pdp-breadcrumbs a:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

.lv-pdp-promises {
  display: grid;
  gap: var(--lv-space-2);
  margin: var(--lv-space-2) 0 0;
  padding: var(--lv-space-3) 0;
  border-block: 1px solid var(--lv-line);
  list-style: none;
  font-size: var(--lv-text-sm);
  color: var(--lv-text-secondary);
}
.lv-pdp-promises li { display: flex; justify-content: space-between; gap: var(--lv-space-4); }
.lv-pdp-promises li > span:first-child { min-inline-size: 0; }
/* The amount never breaks («Grati / s» at 390 px beside a long pickup address). */
.lv-pdp-promises li > span:last-child { flex: none; white-space: nowrap; color: var(--lv-text-primary); font-variant-numeric: tabular-nums; }

.lv-pdp-description {
  display: grid;
  gap: var(--lv-space-2);
  padding-block-start: var(--lv-space-4);
  border-block-start: 1px solid var(--lv-line);
}
.lv-pdp-description__copy {
  max-inline-size: var(--lv-measure);
  margin: 0;
  font-family: var(--lv-font-ui);
  line-height: var(--lv-leading-normal);
  color: var(--lv-text-secondary);
  white-space: pre-wrap;
}
.lv-pdp-description__toggle {
  display: none;
  justify-self: start;
  min-block-size: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--lv-text-link, var(--lv-brand));
  font: inherit;
  font-weight: var(--lv-weight-medium);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  cursor: pointer;
}
.lv-pdp-description__toggle:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

/* WP-A — the PITCH beside the button, shared by all three anatomies: the
   product's lead (the display face, one step above the buy box's UI text) and
   its highlights as a tight check list. The theme's accent ink marks the
   check only; the words stay body ink. Content-document text, so the whole
   block is `data-edit-off` (edited in Webshop › Indhold, not on the page). */
.lv-pdp-pitch {
  display: grid;
  gap: var(--lv-space-3);
}
.lv-pdp-pitch__lead {
  max-inline-size: var(--lv-measure);
  margin: 0;
  font-family: var(--lv-display-family, var(--lv-font-ui));
  font-size: var(--lv-text-md);
  font-weight: var(--lv-weight-medium);
  line-height: var(--lv-leading-snug);
  color: var(--lv-text-primary);
  text-wrap: pretty;
}
.lv-pdp-pitch__list {
  display: grid;
  gap: var(--lv-space-1);
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--lv-text-sm);
  line-height: var(--lv-leading-normal);
  color: var(--lv-text-primary);
}
.lv-pdp-pitch__list li {
  display: grid;
  grid-template-columns: 1rem minmax(0, 1fr);
  gap: var(--lv-space-2);
  align-items: start;
}
.lv-pdp-pitch__mark {
  inline-size: 1rem;
  block-size: 1rem;
  margin-block-start: 0.2em;
  color: var(--lv-ink-accent, var(--lv-brand-strong));
}

.lv-pdp-sticky { display: none; }

@media (max-width: 48rem) {
  .lv-pdp-description__copy.is-collapsed {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 7;
  }
  .lv-pdp-description__toggle { display: inline-flex; align-items: center; }
  .lv-pdp-sticky:not([hidden]) {
    position: fixed;
    z-index: var(--lv-z-sticky);
    inset-inline: 0;
    inset-block-end: 0;
    display: grid;
    grid-template-columns: minmax(0, auto) minmax(10rem, 1fr);
    align-items: center;
    gap: var(--lv-space-3);
    padding: var(--lv-space-3) max(var(--lv-space-4), env(safe-area-inset-right)) max(var(--lv-space-3), env(safe-area-inset-bottom)) max(var(--lv-space-4), env(safe-area-inset-left));
    border-block-start: 1px solid var(--lv-line);
    background: var(--lv-surface);
    box-shadow: var(--lv-lift-2);
  }
  .lv-pdp-sticky__price {
    font-family: var(--lv-font-ui);
    font-weight: var(--lv-weight-semibold);
    font-variant-numeric: tabular-nums;
  }
  /* Never over an open dialog (cart, lightbox) or over the builder canvas. */
  body:has(dialog[open]) .lv-pdp-sticky,
  body:has(> [data-lv-builder-ui]) .lv-pdp-sticky { display: none; }

  /* While a bar is up (either anatomy's), the page's own last lines — the
     footer's legal row — stay reachable above it. */
  body:has(:is(.lv-pdp-sticky, .lv-pdetail__sticky):not([hidden])) {
    padding-block-end: calc(var(--lv-space-3) * 2 + 3rem + env(safe-area-inset-bottom));
  }
}
/* components/browse.product-media/renderers/lightbox.css */
/**
 * `zoom: 'lightbox'`'s dialog surface.
 *
 * MIRROR CONTRACT: `browse.image-set/renderers/lightbox.css` is a deliberate
 * duplicate of this file (`.lv-pmedia-lb` → `.lv-gallery-lb`) — change one,
 * change the other in the same edit. That file's header names the one
 * sanctioned divergence (its `__meta`/`__caption` bar, an image-set-only
 * addition this component has no content for). The 2026-08-14 chrome polish
 * (PATTERN-STANDARDS §2.2b) is part of the byte-identical base and lives in
 * BOTH files: blurred backdrop behind the scrim (the A13 recipe — the page
 * recedes physically, not just tonally), an entrance on `[open]` (opacity +
 * a short rise, transform/opacity only, killed in the reduced-motion block
 * below), and a 2px directional nav-arrow nudge on hover at `--lv-dur-fast`
 * — the §1.1 affordance layer.
 *
 * UN-SCOPED ON PURPOSE, same reason `act.qualify/renderers/questionnaire.css`
 * gives: this dialog is built by the client script the first time a visitor
 * opens it, one shared instance per `[data-lv-pmedia]` root, so it never
 * carries Astro's build-time `data-astro-cid-*` scope attribute. Every
 * selector here is `.lv-pmedia-lb*`-namespaced, so global scope is
 * collision-safe; the generator inlines this file into `registry.css`
 * verbatim, exactly like the questionnaire's.
 *
 * SURFACE CLASS: solid. `.impeccable.md` §3 keeps glass off any surface that
 * scrolls its own content or fills most of the viewport as the thing being
 * looked at rather than chrome floating over other content — a lightbox is
 * squarely that. The scrim behind it is the only translucent thing here.
 */

.lv-pmedia-lb {
  inline-size: min(56rem, calc(100vw - var(--lv-space-6)));
  max-block-size: calc(100dvh - var(--lv-space-7));
  padding: 0;
  border: 0;
  border-radius: var(--lv-radius-xl);
  background: var(--lv-surface);
  box-shadow: inset 0 0 0 1px var(--lv-line), var(--lv-lift-3);
  color: var(--lv-text-primary);
}

/* Blur + scrim, not scrim alone (A13): the page behind physically recedes,
   which is what makes the solid dialog read as the one thing in focus.
   `-webkit-` prefix for Safari, which still requires it on backdrop-filter. */
.lv-pmedia-lb::backdrop {
  background: var(--lv-overlay-scrim);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

/* Entrance — transform/opacity only, one short rise. `[open]` so re-running
   the animation on every showModal() needs no JS class juggling; the
   backdrop fades in step. Reduced motion kills both below. */
@keyframes lv-pmedia-lb-in {
  from { opacity: 0; transform: translateY(0.65rem); }
}

@keyframes lv-pmedia-lb-backdrop-in {
  from { opacity: 0; }
}

.lv-pmedia-lb[open] { animation: lv-pmedia-lb-in var(--lv-dur-state) var(--lv-ease); }
.lv-pmedia-lb[open]::backdrop { animation: lv-pmedia-lb-backdrop-in var(--lv-dur-state) var(--lv-ease); }

.lv-pmedia-lb__shell {
  position: relative;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  justify-items: center;
  align-items: center;
  gap: var(--lv-space-3);
  padding: var(--lv-space-6);
}

.lv-pmedia-lb__figure {
  display: grid;
  margin: 0;
  min-block-size: 0;
  max-inline-size: 100%;
  max-block-size: calc(100dvh - var(--lv-space-7) - var(--lv-space-9));
}

.lv-pmedia-lb__img {
  display: block;
  max-inline-size: 100%;
  max-block-size: calc(100dvh - var(--lv-space-7) - var(--lv-space-9));
  object-fit: contain;
  border-radius: var(--lv-radius-md);
  opacity: 0;
  transition: opacity var(--lv-dur-state) var(--lv-ease);
}

.lv-pmedia-lb__img[data-ready='1'] { opacity: 1; }

.lv-pmedia-lb__close {
  position: absolute;
  inset-block-start: var(--lv-space-3);
  inset-inline-end: var(--lv-space-3);
  z-index: 1;
}

.lv-pmedia-lb__nav {
  position: absolute;
  inset-block-start: 50%;
  transform: translateY(-50%);
  z-index: 1;
  transition: transform var(--lv-dur-fast) var(--lv-ease);
}

.lv-pmedia-lb__nav--prev { inset-inline-start: var(--lv-space-3); }
.lv-pmedia-lb__nav--next { inset-inline-end: var(--lv-space-3); }

/* Directional nudge, the §1.1 affordance grammar: the arrow moves 2px the
   way it will take you, at the quick layer's duration. `:active` recompresses
   to the resting spot. The nudge is hover MOTION, so it is pointer-gated
   (prove.people's "POINTER PREVIEW IS POINTER-ONLY" clause): on touch,
   `:hover` latches after a tap and the arrow would stay leaning until the
   next tap somewhere else. `:active` stays ungated — a press exists on every
   pointer type. */
@media (hover: hover) and (pointer: fine) {
  .lv-pmedia-lb__nav--prev:hover { transform: translateY(-50%) translateX(-2px); }
  .lv-pmedia-lb__nav--next:hover { transform: translateY(-50%) translateX(2px); }
}
.lv-pmedia-lb__nav:active { transform: translateY(-50%) scale(0.94); }

/* 1.0.222 (operator, Safari, 2026-09-15): the bottom bar is a GRID ROW of the
   shell, not an absolutely positioned layer over the figure. Inside a
   `<dialog>` the shell's `block-size: 100%` resolves against an auto-height
   parent, so the bar was pinned to the bottom of a content-sized box and, in
   Safari, clipped to its own 43px while overlapping the picture. The shell
   now reserves `minmax(0, 1fr) auto` — picture, then bar — in every browser,
   and the figure gets `min-block-size: 0` so the 1fr track may shrink. The
   `max-block-size` budget below already left `--lv-space-9` for the bar. */
/* THE BOTTOM BAR IS A ROW NOW (2026-09-08), and both blocks below are
   byte-identical to `browse.image-set`'s after the prefix rename — which is
   what the one-way mirror in `browse-family-wave.test.ts` requires. That file's
   header invited exactly this: "if you ever add a caption to product-media too,
   mirror THIS shape into that file rather than re-deriving it." The counter
   used to position ITSELF (absolute, full width, centred); it now sits inside
   `__meta` and keeps only its type, which is why image-set's counter block was
   already described as "mirrored styling — only the wrapper that positions it
   changed". Visually the bar is where it always was. `__counter` blocks are the
   mirror's one named exemption, so dropping its positioning is legal. */
.lv-pmedia-lb__meta {
  grid-row: 2;
  inline-size: 100%;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: var(--lv-space-3);
  text-align: center;
}

.lv-pmedia-lb__link {
  display: inline-flex;
  align-items: baseline;
  gap: var(--lv-space-1);
  padding-block: var(--lv-space-3);
  font-size: var(--lv-text-xs);
  color: var(--lv-text-primary);
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.lv-pmedia-lb__link:hover { text-decoration-thickness: 2px; }

.lv-pmedia-lb__link:empty { display: none; }

.lv-pmedia-lb__counter {
  margin: 0;
  font: var(--lv-weight-medium) var(--lv-text-2xs) / 1 var(--lv-font-mono);
  font-feature-settings: 'tnum' 1;
  letter-spacing: var(--lv-tracking-num);
  color: var(--lv-text-tertiary);
}

@media (prefers-reduced-motion: reduce) {
  .lv-pmedia-lb__img { transition: none; }

  /* The `[class*="lv-"]` backstop in styles/section.css cannot reach a
     `::backdrop` pseudo-element, so the entrance pair is disarmed here
     explicitly rather than left to collapse. */
  .lv-pmedia-lb[open],
  .lv-pmedia-lb[open]::backdrop { animation: none; }

  .lv-pmedia-lb__nav { transition: none; }
}
/* components/browse.showcase-marquee/renderers/rail.css */
/**
 * browse.showcase-marquee — THE RAIL CHASSIS, shared by all three anatomies.
 *
 * One file so the boundedness rules are written ONCE and cannot drift between
 * anatomies. Everything anatomy-specific (the stamped numerals, the progress
 * hairline's own treatment and its `animation-timeline` binding, the drift
 * loop) lives in the renderer's own scoped `<style>` block; everything that
 * decides whether the rail is SAFE lives here.
 *
 * ADOPTED from the Phase 7C2 partial draft (`cache/phase7-partial-20260818`),
 * with five corrections recorded so the next reader sees the history:
 *   1. `lv-rail__*` → `lv-mq__*`. The component already owns the `lv-mq`
 *      namespace and `premium-2-mint.test.ts` pins `lv-mq__set--clone`; a
 *      second namespace for one component is the "one of everything" defect
 *      (.impeccable §5.7).
 *   2. `--lv-text-2xs` is not a token in this tree (grep: zero definitions) —
 *      the draft inherited the typo from the old renderer. `--lv-text-xs`.
 *   3. The draft's progress hairline named `--lv-rail-scroll` but nothing ever
 *      declared it. The name is now produced by `scroll-timeline` on the
 *      viewport and hoisted to the frame with `timeline-scope`, because the
 *      hairline is the viewport's SIBLING, not its descendant.
 *   4. The draft kept prev/next buttons hidden until a script ran. There is no
 *      script: dropped. See "THE SCRIPT BUDGET" below.
 *   5. The edge-fade mask of the old renderer stays dropped. A fade SOFTENS
 *      the cut edge, and the cut edge is the affordance the anatomy is built
 *      on (`section.browse.edge-bleed-rail.v1`: "the cut edge states there are
 *      more"). It also wanted a raw `#000` alpha literal.
 *
 * ── The three safety laws, in the order every rail this estate has reviewed
 *    has violated them ────────────────────────────────────────────────────
 *
 * 1 · A HORIZONTAL RAIL NEVER CAPTURES A VERTICAL GESTURE.
 *     `overflow-x: auto` + `overflow-y: hidden` gives the viewport scrollable
 *     overflow on the inline axis only, so a wheel or a swipe with any block
 *     component reaches the page. `overscroll-behavior-block: auto` is written
 *     out even though it is the initial value: it is the declaration a future
 *     editor would otherwise "tidy" into the `overscroll-behavior: contain`
 *     shorthand — which is exactly the bug (it contains BOTH axes and glues a
 *     visitor to the rail). Only the `-inline` longhand may ever say `contain`.
 *     No `touch-action` is declared anywhere: `pan-x` alone would forbid the
 *     vertical pan, and the browser's default already does the right thing.
 *
 * 2 · THE SCROLL IS VISIBLE BEFORE IT IS TOUCHED.
 *     Three affordances, none of which needs JavaScript: the native scrollbar
 *     is kept (thin, brand-tinted — hiding it is how rails become invisible),
 *     the item at the cut edge is deliberately half-visible, and the count line
 *     states the true total in text. The scroll-driven progress hairline is a
 *     fourth, added only where the browser supports scroll timelines.
 *
 * 3 · EVERY STATE IS REACHABLE WITHOUT JS AND WITHOUT MOTION.
 *     The rail is a plain scroll container in its server-rendered resting
 *     state: scroll, snap, keyboard and every `data-edit-*` anchor work with
 *     scripting off and with motion off. Drift, where an anatomy offers it at
 *     all, is a transform on top of a container that was already navigable.
 *
 * THE SCRIPT BUDGET IS ZERO. No anatomy ships a `<script>`. That is not
 * asceticism, it is the strongest available form of law 1: a renderer with no
 * `wheel`, `touchmove` or `scroll` listener cannot preventDefault a gesture it
 * never hears. It also settles law 3 by construction — there is no no-JS
 * degrade because there is no JS rung to fall from — and keeps every
 * `data-edit-*` anchor server-emitted and immortal (check/interaction.ts's
 * anchor rule). The consequences are that the keyboard contract is the
 * platform's own (a focusable scroll container: arrows, Home/End, Page keys)
 * and that the pause control is a native checkbox, not a button.
 *
 * GLASS IS FORBIDDEN HERE and that is a rule, not a taste: .impeccable §3
 * bans `backdrop-filter` on "any surface that scrolls its own content". The
 * rail scrolls its own content. It is `.lv-solid` grammar throughout.
 */

/* ── The room ──────────────────────────────────────────────────────────────
   The rail owns the physical page edge (the `bleed-past-gutter` half of
   `section.browse.edge-bleed-rail.v1`); the head and the meta line keep the
   work column by carrying their own gutter, the same discipline
   `open.editorial`'s masthead uses. */

.lv-mq.lv-mq--bleeding { padding-inline: 0; }

.lv-mq__head,
.lv-mq__meta,
.lv-mq__empty {
  max-width: var(--lv-container-max, 72rem);
  margin-inline: auto;
  padding-inline: var(--lv-gutter, var(--lv-space-5));
}

.lv-mq__rows {
  display: grid;
  gap: var(--lv-space-4);
}

.lv-mq__frame {
  display: grid;
  gap: var(--lv-space-2);
  /* Hoists the viewport's named scroll timeline to this subtree so the
     progress hairline — a SIBLING of the scroll port, not a descendant — can
     name it. Ignored by browsers without scroll-driven animations, where the
     hairline is `display: none` anyway. */
  timeline-scope: --lv-mq-scroll;
}

/* ── The scroll port (law 1) ─────────────────────────────────────────────── */

.lv-mq__viewport {
  /* The scroll port must also be the CONTAINING BLOCK for what it scrolls.
     `overflow-x: auto` clips in-flow descendants, but an absolutely
     positioned descendant is clipped only by an ancestor that is also its
     containing block — and a `position: static` scroller is not one. Every
     card in this rail carries a `.lv-vh` alt-text span (`marquee.astro`,
     `marquee-product.astro`, `marquee-workshop.astro`), and `.lv-vh` is
     `position: absolute`. On a 390px viewport those spans sit at their static
     position part-way along a track several viewports wide, so unclipped they
     set the DOCUMENT's scroll width — the page scrolled sideways while the
     rail itself was perfectly contained. Same defect, same one-line fix, as
     `.lv-table-scroll` and `.lv-offer__table-wrap`. */
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  overscroll-behavior-block: auto;
  scroll-snap-type: inline proximity;
  scroll-padding-inline: var(--lv-gutter, var(--lv-space-5));
  scrollbar-width: thin;
  scrollbar-color: var(--lv-line-strong) transparent;
  /* Room for the focus ring the clipped block axis would otherwise cut. */
  padding-block: var(--lv-space-1);
  scroll-timeline: --lv-mq-scroll inline;
}

/* The rail is ONE keyboard stop with a name (`tabindex="0"` + `role="group"`
   in the markup): arrows, Home/End and the Page keys scroll it natively, with
   no script and no key handler of ours. The cards themselves are not links and
   are deliberately NOT tabbable — twelve photographs would otherwise be twelve
   tab stops on the way to the next real control. */
.lv-mq__viewport:focus-visible {
  outline: var(--lv-focus-width, 2px) solid var(--lv-focus-ring, var(--lv-brand-strong));
  outline-offset: 3px;
  border-radius: var(--lv-radius-md);
}

.lv-mq__track {
  display: flex;
  gap: var(--lv-space-4);
  inline-size: max-content;
}

.lv-mq__set {
  display: flex;
  flex: none;
  gap: var(--lv-space-4);
  margin: 0;
  padding: 0;
  padding-inline: var(--lv-gutter, var(--lv-space-5));
  list-style: none;
}

/* The clone exists only to close a drift loop seamlessly. It is `aria-hidden`,
   carries no `data-edit*` (one edit target per image, never two) and no
   `alt` text, and it is not rendered at all by an anatomy that never drifts. */
.lv-mq__set--clone { padding-inline-start: 0; }

.lv-mq__card {
  flex: none;
  scroll-snap-align: start;
}

.lv-mq__fig { margin: 0; }

/* Same height, natural width — the contact-sheet rhythm. The height breathes
   with the container (`.lv-sec` is a container) and is clamped so a phone gets
   a readable band and a wide screen never a wall. `min(78vw, …)` keeps the
   promise the anatomy makes about the cut edge: at every width at least one
   full card and one cut card are visible. */
.lv-mq__media {
  block-size: clamp(11rem, 26cqi, 16rem);
  max-inline-size: min(78cqi, 28rem);
  border-radius: var(--lv-radius-md);
}

.lv-mq__media img {
  block-size: 100%;
  inline-size: auto;
  max-inline-size: none;
  /* Resting grade: consistent, slightly quieted photography. */
  filter: saturate(0.92);
}

.lv-mq__cap {
  margin-block-start: var(--lv-space-2);
  font-size: var(--lv-text-xs);
  color: var(--lv-text-tertiary);
}

/* ── The affordances (law 2) ─────────────────────────────────────────────── */

.lv-mq__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--lv-space-3);
  margin-block-end: var(--lv-space-3);
}

/* The true count, in text, always — `true-remaining-count` is required anatomy
   and a scrollbar is not a number. Figures are mono and tabular (.impeccable
   §4: "a number set in the UI face is a bug"). */
.lv-mq__count {
  margin: 0;
  font-size: var(--lv-text-xs);
  color: var(--lv-text-tertiary);
}

.lv-mq__count b {
  font-family: var(--lv-font-mono);
  font-feature-settings: 'tnum' 1;
  font-weight: var(--lv-weight-semibold);
  color: var(--lv-text-secondary);
}

/* ── The pause control ─────────────────────────────────────────────────────
   A native checkbox with `role="switch"`: it works with scripting off, Space
   toggles it, the platform announces on/off, and `:has()` carries its state to
   the track. Checked = paused. It is rendered ONLY where motion is actually
   continuous, and hidden where the loop cannot run (reduced motion), because
   chrome for a behaviour that is not happening is the anti-pattern this
   component was reviewed for (`adapter.static-stacked-list.v1`: no inert
   chrome). */

.lv-mq__pause {
  display: inline-flex;
  align-items: center;
  gap: var(--lv-space-2);
  min-block-size: 44px;
  padding-inline: var(--lv-space-4);
  border-radius: var(--lv-radius-pill);
  box-shadow: inset 0 0 0 1px var(--lv-line-strong);
  background: var(--lv-surface);
  color: var(--lv-text-secondary);
  font-size: var(--lv-text-xs);
  font-weight: var(--lv-weight-medium);
  cursor: pointer;
  transition: box-shadow var(--lv-dur-fast) var(--lv-ease), color var(--lv-dur-fast) var(--lv-ease);
}

.lv-mq__pause:hover {
  box-shadow: inset 0 0 0 1px var(--lv-brand-strong);
  color: var(--lv-text-primary);
}

.lv-mq__pause:has(.lv-mq__switch:focus-visible) {
  outline: var(--lv-focus-width, 2px) solid var(--lv-focus-ring, var(--lv-brand-strong));
  outline-offset: 2px;
}

/* Clipped, never `opacity`/`visibility` — the control must stay in the
   accessibility tree and in the tab order; only its default box is replaced by
   the pill around it. */
.lv-mq__switch {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.lv-mq__pause svg {
  inline-size: 0.85rem;
  block-size: 0.85rem;
  fill: currentColor;
}

.lv-mq__pause .lv-mq__glyph--play { display: none; }
.lv-mq__pause:has(.lv-mq__switch:checked) .lv-mq__glyph--play { display: block; }
.lv-mq__pause:has(.lv-mq__switch:checked) .lv-mq__glyph--pause { display: none; }

/* ── The progress hairline ─────────────────────────────────────────────────
   Scroll-driven, so it costs no script and no scroll listener. Hidden entirely
   where scroll timelines are unsupported: a bar that cannot move would be a
   lie about position, and the scrollbar, the cut edge and the count line
   already state position three other ways. Each anatomy binds its own
   `animation-timeline` and paints its own hairline. */

.lv-mq__progress { display: none; }

.lv-mq__progressbar {
  display: block;
  block-size: 100%;
  inline-size: 100%;
  transform-origin: left center;
}

/* ── The static floor (law 3) ──────────────────────────────────────────────
   Below the rail floor — and wherever an anatomy decides the set does not
   scroll — the same cards render as one wrapped, centred row: every item,
   every caption, the true count, and NO rail chrome. */

.lv-mq--still .lv-mq__viewport {
  overflow-x: visible;
  overflow-y: visible;
  scroll-snap-type: none;
  scroll-timeline: none;
}

.lv-mq--still .lv-mq__track,
.lv-mq--still .lv-mq__set {
  inline-size: auto;
  flex-wrap: wrap;
  justify-content: center;
  padding-inline: 0;
}

.lv-mq--still .lv-mq__progress { display: none; }
/* components/decide.pricing/renderers/offer.css */
/**
 * decide.pricing — the shared OFFER skeleton
 * ============================================================================
 *
 * One file behind all four route-family anatomies (`pricing.astro`,
 * `pricing-folio.astro`, `pricing-field.astro`, `pricing-ledger.astro`), the
 * same seam `prove.people/renderers/linked.css` opened in Phase 7B1. The
 * family files carry idiom — ordinals, leaders, stages. This file carries the
 * MECHANISM, and the mechanism is the part that must be correct in every
 * theme: the billing-period toggle, the price datum, the degrade ladder and
 * the builder-state block.
 *
 * ── Three laws this file exists to keep ─────────────────────────────────────
 *
 * 1. THE PRICE IS NEVER BEHIND A REVEAL. There is no `opacity: 0`, no
 *    `visibility: hidden` and no animation anywhere in this skeleton. The one
 *    thing that ever hides is a billing-period column, by `display: none`,
 *    and only on the rung where a real control has already offered the visitor
 *    the choice — and its sibling period is showing in its place. Rung 1 (no
 *    CSS) and rung 2 (no `:has()`) both print EVERY price with its own period
 *    label, so a browser that understands nothing still reads a complete,
 *    honest price list.
 *
 * 2. THE TOGGLE CHANGES THE LENS, NEVER THE TRUTH.
 *    `section.decide.rate-table.v1` states it exactly that way, and requires
 *    `billing-unit-toggle` as anatomy: "The toggle is a real control (radio
 *    pair or switch) with visible focus and a text label per unit… a tap swaps
 *    units instantly… figures never animate in a way that misstates a price at
 *    any frame." So it is a native `<fieldset>` of two `<input type="radio">`
 *    and one `:has()` rule. No script. The browser supplies the single tab
 *    stop, arrow traversal, Space, `:focus-visible` and the "radio button 2 of
 *    2" announcement, and there is no frame in which a figure is mid-flight.
 *
 * 3. EVERY PRICE AND EVERY LABEL STAYS EDITABLE IN EVERY STATE. A
 *    period-collapsed column still carries its `data-edit` anchors — the nodes
 *    are in the DOM, `display: none` does not remove them — and the builder's
 *    `expanded` state (bottom of this file) reopens both periods AND every
 *    plan-picker detail at once, so an operator can reach the yearly price of
 *    a tier that is neither selected nor currently shown.
 *
 * ── The degrade ladder ──────────────────────────────────────────────────────
 *
 *   rung 1  no CSS at all      every plan, every price (both periods, each
 *                              labelled), every feature, every CTA, in
 *                              document order
 *   rung 2  no `:has()`        as rung 1, styled: both period columns stand
 *                              side by side, the toggle is not drawn (no inert
 *                              chrome — `adapter.static-stacked-list.v1`)
 *   rung 3  `:has()`           the toggle is drawn and collapses the table to
 *                              the chosen period, instantly
 *
 * Nothing on rung 3 carries content that rungs 1–2 lack. There is no rung 4:
 * this component declares `runtime: 'none'` and ships no scroll timeline, no
 * entrance and no transition of its own. An offer section is the one place on
 * a page where motion can only ever be in the way — §5.1 of `.impeccable.md`,
 * "legible before beautiful", applied to the surface that takes the money.
 *
 * ── Glass ───────────────────────────────────────────────────────────────────
 *
 * None, anywhere, deliberately. `.impeccable.md` §3 forbids `backdrop-filter`
 * on "data tables, table rows, forms, form fields… and any surface that
 * scrolls its own content". A pricing table is every one of those things at
 * once. The offer surfaces are `.lv-solid` by construction, which §3 calls the
 * default rather than the fallback.
 */

/* ═══════════════════════════════════════════════════════════════════════════
   1 · THE BILLING-PERIOD TOGGLE
   ═══════════════════════════════════════════════════════════════════════════ */

/* The control. A real fieldset, a real legend, two real radios. The legend is
   visually hidden rather than absent: the group needs an accessible name, and
   "Betalingsperiode" is the name — but drawing it would put a third label
   above two labels that already say what they are. */
.lv-offer__periods {
  display: inline-flex;
  align-items: stretch;
  gap: 0;
  margin: 0 0 var(--lv-space-5);
  padding: 3px;
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius-pill);
  background: var(--lv-surface-sunken);
}

.lv-offer__periods-legend {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* The label IS the target, and it is 44px high on every pointer type —
   `section.decide.rate-table.v1`'s touch clause is a floor, not a phone-only
   rule. */
.lv-offer__period {
  display: inline-flex;
  align-items: center;
  gap: var(--lv-space-2);
  min-block-size: 44px;
  padding-inline: var(--lv-space-4);
  border-radius: var(--lv-radius-pill);
  color: var(--lv-text-secondary);
  font-size: var(--lv-text-sm);
  font-weight: var(--lv-weight-medium);
  cursor: pointer;
}

/* The radio is DRAWN, not visually hidden. The focus ring has to sit on the
   element the arrow keys actually move — a hidden input parks the ring
   somewhere the eye cannot follow, which is defect 7 in `.impeccable.md` §7
   restated on a different control. */
.lv-offer__period input {
  flex: none;
  margin: 0;
}

.lv-offer__period input:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

.lv-offer__period:has(input:checked) {
  background: var(--lv-surface);
  color: var(--lv-text-primary);
  box-shadow: var(--lv-lift-1);
}

/* ── Rung 2 → rung 3 ────────────────────────────────────────────────────────
   Both period columns stand side by side by default. That is the honest state
   for a browser with no `:has()`, and it is also the state the no-CSS reader
   gets. Only inside the `@supports` block does the toggle appear and start
   collapsing columns — a control that cannot do anything is never drawn. */

.lv-offer__periods { display: none; }

.lv-offer__price-period {
  display: block;
  color: var(--lv-text-tertiary);
  font-size: var(--lv-text-xs);
  font-weight: var(--lv-weight-regular);
  letter-spacing: normal;
}

@supports selector(:has(*)) {
  .lv-offer--periodic .lv-offer__periods { display: inline-flex; }

  /* One rule per direction. `.lv-offer__price--alt` and `--primary` both carry
     their anchors either way; `display: none` keeps the node, and the
     `expanded` builder state at the bottom of this file outranks both. */
  .lv-offer--periodic:has(.lv-offer__period-primary input:checked) .lv-offer__price--alt { display: none; }
  .lv-offer--periodic:has(.lv-offer__period-alt input:checked) .lv-offer__price--primary { display: none; }

  /* With one period showing, its own period label is redundant with the
     toggle that is now on screen — the toggle says "pr. år", so the figure
     need not repeat it. It comes back the moment both columns show again. */
  .lv-offer--periodic:has(.lv-offer__period-primary input:checked) .lv-offer__price--primary .lv-offer__price-period,
  .lv-offer--periodic:has(.lv-offer__period-alt input:checked) .lv-offer__price--alt .lv-offer__price-period {
    display: none;
  }
}

/* Both columns standing: they need to read as two prices, not one long
   number. A hairline between them, and the second one quieter. */
.lv-offer__price + .lv-offer__price {
  margin-block-start: var(--lv-space-1);
  padding-block-start: var(--lv-space-1);
  border-block-start: 1px solid var(--lv-line);
}

/* ═══════════════════════════════════════════════════════════════════════════
   2 · THE PRICE DATUM
   ═══════════════════════════════════════════════════════════════════════════

   The defect this fixes: in a flex row of plan cards, each card's price block
   sits wherever its own name and chip stack leaves it. Three prices at three
   heights are three prices the eye has to hunt for, and comparing them is the
   entire job of the section. Every family file lays its plans out on the SAME
   five-row template, so name, price, summary, features and action land on one
   line across the whole row — `hierarchy.proof-ledger` made structural rather
   than decorative. */

/* The template is now BUILT FROM THE ARRANGEMENT rather than hard-coded, and it
   has to be: five fixed rows only held the line while every theme drew the same
   five parts in the same order, and the composition axis exists precisely so
   they do not. Each renderer emits `--lv-plan-rows` as one row per rendered
   group with the slack on the itemisation (see `pricing.astro`'s `planRows`),
   so the action still lands on the card's bottom edge and the prices still read
   as one line across the row whatever the theme refused. The fallback is the
   old literal, so a plan drawn outside the axis is unchanged. */
.lv-offer__plan {
  display: grid;
  grid-template-rows: var(--lv-plan-rows, auto auto auto 1fr auto);
  align-content: start;
  gap: 0;
}

.lv-offer__plan > * { margin-block: 0; }

.lv-offer__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lv-space-2);
  min-block-size: var(--lv-badge-height);
  margin-block-end: var(--lv-space-2);
  padding: 0;
  list-style: none;
}

.lv-offer__badge {
  display: inline-flex;
  align-items: center;
  padding: 2px var(--lv-space-2);
  border-radius: var(--lv-radius-pill);
  background: var(--lv-brand-soft);
  color: var(--lv-brand);
  font: var(--lv-weight-semibold) var(--lv-text-2xs) / 1.6 var(--lv-font-ui);
  text-transform: uppercase;
  letter-spacing: var(--lv-tracking-eyebrow);
}

/* "Nuværende plan" is a STATE, not a recommendation. It stays grayscale even
   on the recommended card, so the single accent keeps meaning "anbefalet" and
   nothing else — the single-accent discipline the def's header settled. */
.lv-offer__badge--current {
  background: var(--lv-surface-sunken);
  color: var(--lv-text-secondary);
  box-shadow: inset 0 0 0 1px var(--lv-line);
}

/* `white-space: nowrap` — a price is one figure ("fra 4.500 kr.", "740
   kr./m²"), never a sentence, and this class carries the WHOLE string
   (`exampleContent`'s own price values are two or three words). In `table`
   mode this element is a plain inline `<span>` sitting inside a centred,
   narrow `<th>` beside as many sibling plan columns as there are plans, with
   no width floor of its own — so it wrapped at its own internal spaces
   exactly like running text: "fra 4.500" / "kr." on one theme, "kr./m²"
   split from its number on another, in every theme that binds `table` mode
   (`bespoke`, `galleria`, `speakeasy` on the default `pricing.astro`;
   `raw` on `pricing-field.astro`, which reads this same class). `cards` mode
   never showed it because there `.lv-offer__price` sits on a `<p>` with more
   room; the class is shared, so the fix is too. The table's own
   `.lv-offer__table-wrap { overflow-x: auto }` is the safety net if a figure
   ever needs more room than a column has — never a second wrap inside the
   figure itself. */
.lv-offer__price {
  color: var(--lv-text-primary);
  font-size: var(--lv-text-2xl);
  font-weight: var(--lv-weight-semibold);
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--lv-tracking-num);
  white-space: nowrap;
}

/* The struck anchor price. `<s>` carries the semantics, a visually-hidden
   "Normalpris" carries the meaning aloud, and the figure is quiet — an anchor
   price that shouts is the thing `avoidDa` warns is misleading marketing. */
.lv-offer__anchor {
  color: var(--lv-text-tertiary);
  font-size: var(--lv-text-md);
  font-weight: var(--lv-weight-regular);
  text-decoration-thickness: 1px;
}

.lv-offer__summary {
  margin-block-start: var(--lv-space-2);
  color: var(--lv-text-secondary);
  font-size: var(--lv-text-sm);
}

/* ═══════════════════════════════════════════════════════════════════════════
   3 · INCLUDED / EXCLUDED — two signals, never colour alone
   ═══════════════════════════════════════════════════════════════════════════ */

.lv-offer__features {
  display: grid;
  gap: var(--lv-space-2);
  margin-block: var(--lv-space-4) var(--lv-space-4);
  padding: 0;
  list-style: none;
  font-size: var(--lv-text-sm);
}

.lv-offer__feature {
  display: flex;
  align-items: start;
  gap: var(--lv-space-3);
  color: var(--lv-text-secondary);
}

/* Filled square = included, open square + struck label = excluded. Fill versus
   outline is a geometric difference, so the distinction survives grayscale,
   colour deficiency and a printed page. The corner radius is the theme's own
   shape axis, never a literal. */
.lv-offer__mark {
  flex: none;
  inline-size: 10px;
  block-size: 10px;
  margin-block-start: 6px;
  border-radius: var(--lv-radius-sm);
  background: var(--lv-brand);
}

.lv-offer__feature.is-out {
  color: var(--lv-text-tertiary);
  text-decoration: line-through;
}

.lv-offer__feature.is-out .lv-offer__mark {
  background: none;
  box-shadow: inset 0 0 0 1px var(--lv-line-strong);
}

/* Single-accent discipline: brand ink appears on the recommended plan alone.
   Every other plan keeps the geometry and loses the hue. */
.lv-offer__plan:not(.is-featured) .lv-offer__mark { background: var(--lv-icon-quiet); }
.lv-offer__plan:not(.is-featured) .lv-offer__feature.is-out .lv-offer__mark { background: none; }

/* ═══════════════════════════════════════════════════════════════════════════
   4 · THE DOTTED LEADER
   ═══════════════════════════════════════════════════════════════════════════

   Label on the left, figure on the right, joined by a dotted rule that the eye
   tracks across the gap. It is a menu card's whole anatomy, and it is equally
   a rate card's — 6C §5.4 recorded "decide.pricing has no menu mode… the
   dotted leader between dish and price is the whole anatomy of the thing being
   imitated" as an open want. It is answered here as an ORNAMENT available to
   every family rather than a fifth `mode` value: minting a mode would change
   the meaning of stored placements, which Phase 7A1 refused to do for the same
   reason.

   Implemented as a border on a flexible middle element, not as a repeating
   character: a `content: '……'` leader is read aloud by a screen reader and
   cannot be sized to the gap. */
.lv-offer__lead {
  flex: 1 1 var(--lv-space-6);
  min-inline-size: var(--lv-space-5);
  align-self: end;
  margin-block-end: 0.32em;
  border-block-end: 1px dotted var(--lv-line-strong);
}

/* ═══════════════════════════════════════════════════════════════════════════
   5 · RATE ROWS — `section.decide.rate-table.v1`
   ═══════════════════════════════════════════════════════════════════════════ */

.lv-offer__rates {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  max-inline-size: 46rem;
}

.lv-offer__rate {
  display: flex;
  align-items: baseline;
  gap: var(--lv-space-4);
  min-block-size: 48px;
  padding-block: var(--lv-space-3);
  border-block-end: 1px solid var(--lv-line);
}

.lv-offer__rate:first-child { border-block-start: 1px solid var(--lv-line); }

.lv-offer__rate-copy {
  display: grid;
  gap: 2px;
  min-inline-size: 0;
}

.lv-offer__rate-label {
  color: var(--lv-text-primary);
  font-weight: var(--lv-weight-medium);
}

.lv-offer__rate-note {
  color: var(--lv-text-tertiary);
  font-size: var(--lv-text-xs);
}

.lv-offer__rate-figures {
  flex: none;
  text-align: end;
}

.lv-offer__rate-figure {
  color: var(--lv-text-primary);
  font-size: var(--lv-text-md);
  font-variant-numeric: tabular-nums;
}

.lv-offer__rate-unit {
  color: var(--lv-text-tertiary);
  font-size: var(--lv-text-xs);
}

/* ═══════════════════════════════════════════════════════════════════════════
   6 · THE COMPARISON TABLE
   ═══════════════════════════════════════════════════════════════════════════ */

/* WAVE3 (2026-09-27) — `table` mode is a comparison grid, not the narrative
   reading column every OTHER mode of this component (cards, a rates list,
   the configurator) sizes for, and a theme is entitled to narrow
   `--lv-container-max` for the prose modes without knowing a table shares
   the same section intent (speakeasy: `[data-lv-intent$='pricing'] {
   --lv-container-max: 38rem }`, a "wine list" reading measure). At 38rem a
   featured column's own `nowrap` price (§6 below) rendered past the wrap's
   scrollable edge with no visible cue that anything was scrollable — round-2
   read it as the card "spilling past the section". `max()` only ever WIDENS
   the measure the theme chose, and only for `table` mode's own section
   instance — every other mode keeps whatever measure the theme narrowed to,
   byte-identical. `pricing-field.astro`'s own rail+matrix split (rendered by
   `raw`/`design`/`tide`/`portfolio`) is a second, unrelated width deficit
   that file's own `<style>` fixes directly; this floor still backstops it. */
/* `--lv-container-max: max(var(--lv-container-max), 56rem)` declared and
   READ on the very same element is a genuine dependency cycle by
   custom-property NAME — even under a snapshot name, one element resolving
   two custom properties that reference each other is still a cycle to every
   engine, and a cycle computes to the guaranteed-invalid value for every
   participant (measured: silently dropped `.lv-sec__inner` back to its own
   72rem fallback — raw's 1312px inherited measure collapsed to 1152px, the
   opposite of this fix). Splitting the read and the write across two
   elements — the snapshot on the `<section>`, the merge on its
   `.lv-sec__inner` child — breaks the cycle: the child only ever reads the
   snapshot name, never `--lv-container-max` on itself.

   TWO PLACES READ `--lv-container-max` for this one section, not one:
   `.lv-sec__inner` (`section.css`) AND the section element itself
   (`packages/themes/src/chrome.mjs`'s `.lvt-shell > * { max-inline-size:
   var(--lv-container-max) }` — every section is a direct shell child).
   Widening only `.lv-sec__inner`'s copy left the SECTION still clamped to
   the theme's narrow measure, which is also the `.lv-sec__inner`'s own
   containing block — a wider max-width on a child cannot make it wider
   than the box it sits inside (measured: speakeasy's `.lv-sec__inner` cap
   rose to 896px but stayed rendered at 608px). Setting `max-inline-size`
   directly on the section (a plain CSS property, not `--lv-container-max`
   itself) from the SAME snapshot answers both readers at once without a
   second cycle; `.lv-sec.lv-price--table` etc. (every anatomy's own root
   also carries `.lv-sec`) outranks chrome.mjs's single-class selector on
   specificity alone, so this wins regardless of stylesheet order. */
.lv-price--table,
.lv-sheet--table,
.lv-folio--table,
.lv-ledger--table {
  --lv-table-measure-floor: var(--lv-container-max, 72rem);
}

.lv-sec.lv-price--table,
.lv-sec.lv-sheet--table,
.lv-sec.lv-folio--table,
.lv-sec.lv-ledger--table {
  max-inline-size: max(var(--lv-table-measure-floor), 56rem);
}

.lv-price--table .lv-sec__inner,
.lv-sheet--table .lv-sec__inner,
.lv-folio--table .lv-sec__inner,
.lv-ledger--table .lv-sec__inner {
  --lv-container-max: max(var(--lv-table-measure-floor), 56rem);
}

/* A table wider than its column scrolls inside its OWN container, per
   `section.decide.rate-table.v1`'s responsive clause — never the page body.

   `position: relative` is what makes that promise true. `overflow-x: auto`
   alone clips only in-flow descendants; an absolutely positioned one escapes
   unless the scroller is ALSO its containing block. Section 3 of this file
   puts a `.lv-vh` label inside every feature cell ("Tageftersyn: inkluderet"),
   and `.lv-vh` is `position: absolute`. On a 390px viewport those labels sit
   at their static position inside a 544–666px table — 76–229px past the
   viewport edge — and, unclipped, they set the DOCUMENT's scroll width. The
   table itself was always contained; its hidden labels were not. */
.lv-offer__table-wrap { position: relative; overflow-x: auto; }

.lv-offer__table {
  inline-size: 100%;
  min-inline-size: 34rem;
  border-collapse: collapse;
}

.lv-offer__table th,
.lv-offer__table td {
  padding: var(--lv-space-3) var(--lv-space-4);
  text-align: center;
  border-block-end: 1px solid var(--lv-line);
}

/* `34rem` is a floor for the WHOLE table, not a per-column one, and
   `.lv-price__table-plan` (every plan's own `<th>`, all three/four
   renderers that draw `mode: 'table'`) carried no width rule of its own —
   so with three or four plans sharing that floor, `table-layout: auto`
   happily shrank a column below what its own CTA button needed. A button
   never gets `white-space: nowrap` (`packages/tokens/src/components.css`,
   "a button stays on one line wherever one line fits" — deliberate,
   operator review 2026-09-11), so a column that narrow made "wherever one
   line fits" false and `.lv-offer__table-cta`'s "BESTIL EFTERSYN" wrapped
   to two lines, at a different height in every column: the "cramped and
   misaligned" read every one of this pass's `table`-mode findings named.
   A floor per plan column, not the table overall, is what a button needs a
   floor FOR — `.lv-offer__table-wrap`'s own `overflow-x: auto` is still the
   backstop on a phone, exactly as it already is for the table's total
   width. */
.lv-price__table-plan { min-inline-size: 11rem; }

.lv-offer__table-corner { border: 0; }

.lv-offer__table thead th {
  vertical-align: bottom;
  padding-block-end: var(--lv-space-4);
  border-block-end: 2px solid var(--lv-line-strong);
}

.lv-offer__table-name {
  display: block;
  color: var(--lv-text-primary);
  font-weight: var(--lv-weight-semibold);
}

/* `min-inline-size` for the same reason `.lv-price__table-plan` just got one:
   this column had none, so giving the plan columns a floor made auto table
   layout take the room back FROM this one instead — measured on `speakeasy`
   at 45px, where a feature label like "Udbedring af utæthed" met
   `.lv-sec :is(… td, th …) { overflow-wrap: anywhere }` (`section.css`'s own
   deliberate, load-bearing floor, never this file's to touch) and rendered
   one character per line. The floor was doing exactly its documented job —
   the column feeding it 45px was the actual defect. */
.lv-offer__table-row-label {
  text-align: start;
  color: var(--lv-text-secondary);
  font-weight: var(--lv-weight-medium);
  min-inline-size: 9rem;
}

.lv-offer__table-cell .lv-offer__mark {
  display: inline-block;
  margin-block-start: 0;
}

.lv-offer__table-cell.is-out .lv-offer__mark {
  background: none;
  box-shadow: inset 0 0 0 1px var(--lv-line-strong);
}

.lv-offer__table-dash { color: var(--lv-text-tertiary); }

.lv-offer__table-cta { padding-block: var(--lv-space-4); }

/* `.lv-price__table-plan`'s new `11rem` floor still let an uppercase,
   letter-spaced CTA label ("BESTIL EFTERSYN") wrap once measured against
   the actual tracked button type several themes draw — a table row of CTAs
   needs to line up at one height far more than the general button rule's
   "wraps if it must" reasoning was written for (that reasoning is about a
   button alone in flowing copy, not four of them sharing one ruled row).
   `nowrap` here is scoped to this one context, not a reversal of the shared
   rule in `packages/tokens/src/components.css`. */
.lv-offer__table-cta .lv-btn { white-space: nowrap; }

/* ═══════════════════════════════════════════════════════════════════════════
   7 · THE PLAN PICKER
   ═══════════════════════════════════════════════════════════════════════════ */

.lv-offer__picker {
  display: grid;
  gap: var(--lv-space-3);
  max-inline-size: 36rem;
}

.lv-offer__pick {
  border-radius: var(--lv-radius-md);
  box-shadow: inset 0 0 0 1px var(--lv-line);
}

.lv-offer__pick-row {
  display: flex;
  align-items: center;
  gap: var(--lv-space-3);
  min-block-size: 44px;
  padding: var(--lv-space-4);
  cursor: pointer;
}

.lv-offer__pick-row input { flex: none; }

.lv-offer__pick-row input:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

.lv-offer__pick-name {
  flex: 1;
  min-inline-size: 0;
  color: var(--lv-text-primary);
  font-weight: var(--lv-weight-semibold);
}

.lv-offer__pick-price {
  flex: none;
  color: var(--lv-text-primary);
  font-variant-numeric: tabular-nums;
}

/* The detail panel. `display: none` and not `opacity: 0`: an unselected plan's
   detail is not "hidden content", it is content the visitor has not asked for
   — and every anchor inside it is reachable in the `expanded` builder state
   below, which is the state the operator edits in. */
.lv-offer__pick-detail {
  display: none;
  padding: 0 var(--lv-space-4) var(--lv-space-4);
}

@supports selector(:has(*)) {
  .lv-offer__pick:has(input:checked) { box-shadow: inset 0 0 0 2px var(--lv-brand); }

  .lv-offer__pick:has(input:checked) .lv-offer__pick-detail {
    display: grid;
    gap: var(--lv-space-3);
  }
}

/* Rung 2: no `:has()` means no way to open a panel, so every panel is open.
   The visitor reads a long page instead of a short one; nobody loses a price. */
@supports not selector(:has(*)) {
  .lv-offer__pick-detail { display: grid; gap: var(--lv-space-3); }
  .lv-offer__pick-row input { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   8 · CONFIGURATOR ADD-ONS
   ═══════════════════════════════════════════════════════════════════════════ */

.lv-offer__addons-wrap { max-inline-size: 42rem; }

.lv-offer__addons {
  display: grid;
  margin-block-start: var(--lv-space-6);
  padding: 0;
  list-style: none;
}

.lv-offer__addon {
  display: flex;
  align-items: center;
  gap: var(--lv-space-4);
  min-block-size: 44px;
  border-block-end: 1px solid var(--lv-line);
}

.lv-offer__addon-label {
  display: flex;
  align-items: center;
  gap: var(--lv-space-3);
  min-block-size: 44px;
  cursor: pointer;
}

.lv-offer__addon-label input:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

.lv-offer__addon-price {
  flex: none;
  font-variant-numeric: tabular-nums;
}

/* Label left, running total right — until they no longer both fit. The label
   is uppercase with tracking and the figure is `--lv-text-2xl` in the `field`
   anatomy, so inside a narrow configurator column (307px on a 390px phone)
   the pair's min-content is wider than the column and, unwrapped, held the
   section open and scrolled the page sideways. Wrapping puts the total on its
   own line, still right-aligned by the `margin-inline-start: auto` below —
   the same reading order, one line lower. Nothing is hidden or shrunk to
   illegibility: a price is the last thing that may be clipped to fit. */
.lv-offer__addon-total {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--lv-space-4);
  margin-block-start: var(--lv-space-4);
  padding-block-start: var(--lv-space-3);
  border-block-start: 2px solid var(--lv-line-strong);
  color: var(--lv-text-primary);
  font-weight: var(--lv-weight-semibold);
}

/* A flex item's automatic minimum is its min-content size; without this floor
   the longest unbreakable word in either half re-opens the row. */
.lv-offer__addon-total > * { min-inline-size: 0; }

/* The computed sum is DERIVED, so it carries no `data-edit` anchor and is
   announced politely rather than on every keystroke of a checkbox run. */
.lv-offer__addon-sum {
  margin-inline-start: auto;
  font-variant-numeric: tabular-nums;
}

.lv-offer__foot {
  max-inline-size: var(--lv-measure);
  margin-block-start: var(--lv-space-5);
  color: var(--lv-text-tertiary);
  font-size: var(--lv-text-xs);
}

/* ═══════════════════════════════════════════════════════════════════════════
   9 · BUILDER PROTOCOL v2 — `[data-lv-state]`
   ═══════════════════════════════════════════════════════════════════════════

   `data-lv-state` lands on the placement wrapper, outside any renderer's
   scoped styles, which is why these rules live in this shared plain-CSS file
   rather than in a family file's `<style>` block.

   Declared states: idle · period-alternate · focus-visible · plan-selected ·
   expanded. `idle` needs no rule — the server markup commits the primary
   period and the recommended plan, and that IS the resting state. */

/* `period-alternate` — the operator inspects the yearly column without
   clicking. Written as the mirror of the `:has()` pair above and placed after
   it, so it wins on order at equal specificity. */
[data-lv-state='period-alternate'] .lv-offer--periodic .lv-offer__price--primary { display: none; }
[data-lv-state='period-alternate'] .lv-offer--periodic .lv-offer__price--alt { display: block; }

/* `focus-visible` — the ring the keyboard user gets, shown on demand on the
   canvas so the operator can see what they are shipping. */
[data-lv-state='focus-visible'] .lv-offer__period input,
[data-lv-state='focus-visible'] .lv-offer__pick-row input,
[data-lv-state='focus-visible'] .lv-offer__addon-label input {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

/* `plan-selected` — the picker's committed row, drawn without needing a real
   `:checked` (the canvas renders server markup, not a live selection). */
[data-lv-state='plan-selected'] .lv-offer__pick { box-shadow: inset 0 0 0 2px var(--lv-brand); }
[data-lv-state='plan-selected'] .lv-offer__pick-detail { display: grid; gap: var(--lv-space-3); }

/* `expanded` — THE EDITING STATE, and the reason the two rules above can
   safely hide anything at all. Every billing period, every picker detail and
   every period label is open at once, so every `data-edit` anchor the def
   declares is on screen and reachable: a non-selected tier's price, its label,
   its yearly figure, its feature rows.

   Written with compound selectors on purpose. It has to outrank BOTH `:has()`
   collapse rules and the `period-alternate` rule above it; without that, an
   operator who asked for every field would still lose whichever column the
   toggle happened to be sitting on. */
[data-lv-state='expanded'] .lv-offer--periodic .lv-offer__price--primary,
[data-lv-state='expanded'] .lv-offer--periodic .lv-offer__price--alt,
[data-lv-state='expanded'] .lv-offer--periodic .lv-offer__price .lv-offer__price-period {
  display: block;
}

[data-lv-state='expanded'] .lv-offer .lv-offer__pick-detail {
  display: grid;
  gap: var(--lv-space-3);
}

[data-lv-state='expanded'] .lv-offer .lv-offer__pick { box-shadow: inset 0 0 0 1px var(--lv-line); }

/* ═══════════════════════════════════════════════════════════════════════════
   6 · THE COMPOSITION ZONES
   ═══════════════════════════════════════════════════════════════════════════

   The arrangement axis (`../lib/arrangement.ts`) lets a theme move the head
   matter — the label, the unit note, the lens, the guarantee row, the
   conditions — above the matrix or under it. These are the two wrappers that
   carry it, and they are deliberately thin: the zone decides WHERE a part sits,
   the part keeps its own drawing. */

.lv-offer__zone--foot {
  display: grid;
  justify-items: start;
  gap: var(--lv-space-4);
  margin-block-start: var(--lv-space-6);
}

.lv-offer__zone--foot > * { margin-block: 0; }

/* ── THE GUARANTEE ROW ──────────────────────────────────────────────────────

   What the business stands behind, set as a tight row of undertakings rather
   than a paragraph: each one is a promise that has to be readable on its own,
   and a sentence would blur four of them into a mood. Hairline-separated in the
   manner of the rate rows, mono nowhere — these are words, not figures.

   It must never read as the footnote. The footnote is what the price ASSUMES
   and is set in tertiary ink at the smallest step; this row is what the
   business PROMISES and is set in body ink at label weight. Same section, two
   different kinds of small print, and a visitor who cannot tell them apart has
   been misled about which one binds. */

.lv-offer__assurance {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lv-space-2) var(--lv-space-5);
  margin: 0;
  padding: var(--lv-space-3) 0 0;
  border-block-start: 1px solid var(--lv-line);
  list-style: none;
  max-inline-size: 100%;
}

.lv-offer__undertaking {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 0 1 auto;
  min-inline-size: 0;
}

.lv-offer__undertaking > b {
  color: var(--lv-text-primary);
  font-size: var(--lv-text-sm);
  font-weight: 600;
  letter-spacing: 0.01em;
}

.lv-offer__undertaking > span {
  color: var(--lv-text-secondary);
  font-size: var(--lv-text-xs);
  line-height: 1.45;
  max-inline-size: 28ch;
}

/* In the section head the row is the last thing before the matrix, so it needs
   air under it rather than over it. */
.lv-offer__zone--lead .lv-offer__assurance { margin-block-start: var(--lv-space-4); }

/* The table's per-column summary, which only appears when a theme puts
   `summary` in the column head. Quiet, wrapped, and never wider than the
   column it explains. */
.lv-offer__table-summary {
  display: block;
  margin-block-start: var(--lv-space-2);
  color: var(--lv-text-secondary);
  font-size: var(--lv-text-xs);
  font-weight: 400;
  line-height: 1.45;
  text-wrap: pretty;
}
/* components/decide.variant-picker/renderers/choices.css */
/* =============================================================================
   decide.variant-picker · the two quiet choice anatomies (Business commerce
   wave, 2026-09-26)
   -----------------------------------------------------------------------------
   ONE STYLESHEET, FOUR CONSUMERS. The size/colour row is drawn identically
   wherever it appears — in a separately placed picker (`picker-text.astro`,
   `picker-list.astro`) and inside the buy box of the two product-page
   anatomies (`browse.product-detail`'s `detail-buybox.astro` and
   `detail-label.astro`). A choice that looked one way in the picker and
   another way in the buy box would be two components wearing one name.
   Imported as a plain stylesheet (global, like `lightbox.css`), so every
   class here carries the `lv-choice` prefix and nothing else.

   `.lv-choice--text` — the couture row (reference: toteme.com). Sizes are
   plain words in a row; the chosen one is underlined AND set a weight step
   heavier, so the state is never carried by the underline alone. A sold-out
   size is struck through in tertiary ink and says "udsolgt" in its name.
   Colour swatches stay small squares; the chosen colour's name appears
   beside the row. One value only → static text, no input (nothing to choose).

   `.lv-choice--list` — the cosmetics size list (reference: aesop.dk's house
   product page). One row per size with a hairline between rows, a native
   radio at the start, the label (size · price) filling the row, "Udsolgt" at
   the end of a row that cannot be chosen.

   Tokens only. The one colour a stylesheet cannot know — a swatch — arrives
   from content as `--lv-choice-swatch` on the element, validated in the
   renderer before it is written.
   ========================================================================== */

.lv-choice {
  min-inline-size: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

/* ── the text row ─────────────────────────────────────────────────────────── */

/* The row's name is spoken, and SHOWN only where a row could be mistaken for
   another: two rows of plain words side by side ("300 mm 600 mm" over "Gummi
   Træ"). A lone row, a colour row (it names its chosen colour) and a one-value
   fact explain themselves, and the renderer keeps their legend visually
   hidden, as the reference does. */
.lv-choice--text .lv-choice__legend {
  display: block;
  padding: 0;
  margin-block-end: var(--lv-space-1);
  font: var(--lv-weight-regular) var(--lv-text-xs) / 1.3 var(--lv-font-ui);
  color: var(--lv-text-tertiary);
}

.lv-choice--text .lv-choice__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--lv-space-1) var(--lv-space-4);
}

.lv-choice--text .lv-choice__opt {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--lv-space-2);
  min-block-size: 44px;
  font: var(--lv-weight-regular) var(--lv-text-sm) / 1.2 var(--lv-font-ui);
  color: var(--lv-text-secondary);
  cursor: pointer;
  transition: color var(--lv-dur-state) var(--lv-ease);
}

.lv-choice--text .lv-choice__opt:hover { color: var(--lv-text-primary); }

/* The radio is the control; it is visually withdrawn but stays in the tab
   order and in the accessibility tree, so arrow keys move through the row. */
.lv-choice__input {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  margin: 0;
  opacity: 0;
  pointer-events: none;
}

.lv-choice--text .lv-choice__label {
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.35em;
  text-decoration-color: transparent;
  transition: text-decoration-color var(--lv-dur-state) var(--lv-ease);
}

.lv-choice--text .lv-choice__opt:has(.lv-choice__input:checked) {
  color: var(--lv-text-primary);
  font-weight: var(--lv-weight-medium);
}

.lv-choice--text .lv-choice__opt:has(.lv-choice__input:checked) .lv-choice__label {
  text-decoration-color: currentColor;
}

.lv-choice--text .lv-choice__opt:has(.lv-choice__input:focus-visible) {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

.lv-choice--text .lv-choice__opt.is-out {
  color: var(--lv-text-tertiary);
  cursor: not-allowed;
}

.lv-choice--text .lv-choice__opt.is-out .lv-choice__label {
  text-decoration-line: line-through;
  text-decoration-color: currentColor;
}

/* One value: the reference's "ONE SIZE" — a fact set as the chosen state. */
.lv-choice--text .lv-choice__single {
  margin: 0;
  font: var(--lv-weight-medium) var(--lv-text-sm) / 1.2 var(--lv-font-ui);
  color: var(--lv-text-primary);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.35em;
}

/* Swatches: a small square, the name only beside the chosen one. */
.lv-choice__swatch {
  display: inline-block;
  inline-size: 14px;
  block-size: 14px;
  background: var(--lv-choice-swatch, var(--lv-surface-sunken));
  box-shadow: inset 0 0 0 1px var(--lv-line-strong);
}

.lv-choice--text.is-swatches .lv-choice__row { gap: var(--lv-space-1) var(--lv-space-3); }

.lv-choice--text.is-swatches .lv-choice__opt .lv-choice__swatch {
  outline: 1px solid transparent;
  outline-offset: 3px;
  transition: outline-color var(--lv-dur-state) var(--lv-ease);
}

.lv-choice--text.is-swatches .lv-choice__opt:has(.lv-choice__input:checked) .lv-choice__swatch {
  outline-color: var(--lv-text-primary);
}

/* The name of an unchosen colour stays in the accessible name and leaves the
   visual row; the chosen one reads beside its square. Same clip as `.lv-vh`. */
.lv-choice--text.is-swatches .lv-choice__opt:not(:has(.lv-choice__input:checked)) .lv-choice__label {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.lv-choice--text.is-swatches .lv-choice__opt.is-out .lv-choice__swatch {
  background:
    linear-gradient(to top right, transparent calc(50% - 0.5px), var(--lv-text-tertiary) 50%, transparent calc(50% + 0.5px)),
    var(--lv-choice-swatch, var(--lv-surface-sunken));
  opacity: 0.6;
}

/* ── the list ─────────────────────────────────────────────────────────────── */

.lv-choice--list .lv-choice__legend {
  display: block;
  margin-block-end: var(--lv-space-2);
  padding: 0;
  font: var(--lv-weight-medium) var(--lv-text-sm) / 1.3 var(--lv-font-ui);
  color: var(--lv-text-primary);
}

.lv-choice--list .lv-choice__list {
  display: grid;
  border-block-start: 1px solid var(--lv-line);
}

.lv-choice--list .lv-choice__opt {
  display: flex;
  align-items: center;
  gap: var(--lv-space-3);
  min-block-size: 48px;
  padding-block: var(--lv-space-2);
  border-block-end: 1px solid var(--lv-line);
  font: var(--lv-weight-regular) var(--lv-text-sm) / 1.3 var(--lv-font-ui);
  font-variant-numeric: tabular-nums;
  color: var(--lv-text-secondary);
  cursor: pointer;
  transition: color var(--lv-dur-state) var(--lv-ease);
}

.lv-choice--list .lv-choice__opt:hover,
.lv-choice--list .lv-choice__opt:has(.lv-choice__radio:checked) {
  color: var(--lv-text-primary);
}

.lv-choice--list .lv-choice__radio {
  flex: none;
  inline-size: 16px;
  block-size: 16px;
  margin: 0;
  accent-color: var(--lv-text-primary);
}

.lv-choice--list .lv-choice__label { flex: 1 1 auto; min-inline-size: 0; }

.lv-choice--list .lv-choice__out {
  flex: none;
  font-size: var(--lv-text-xs);
  color: var(--lv-text-tertiary);
}

.lv-choice--list .lv-choice__opt.is-out {
  color: var(--lv-text-tertiary);
  cursor: not-allowed;
}

.lv-choice--list .lv-choice__opt.is-out .lv-choice__label { text-decoration: line-through; }

.lv-choice--list .lv-choice__single {
  margin: 0;
  padding-block: var(--lv-space-3);
  border-block-end: 1px solid var(--lv-line);
  font: var(--lv-weight-regular) var(--lv-text-sm) / 1.3 var(--lv-font-ui);
  color: var(--lv-text-primary);
}

@media (prefers-reduced-motion: reduce) {
  .lv-choice--text .lv-choice__opt,
  .lv-choice--text .lv-choice__label,
  .lv-choice--text.is-swatches .lv-choice__opt .lv-choice__swatch,
  .lv-choice--list .lv-choice__opt { transition: none; }
}
/* components/locate.map/renderers/map.css */
/* Shared by all three locate.map renderers. Class names are BEM-prefixed
   because these rules are global, not Astro-scoped. */

.lv-map {
  container-type: inline-size;
  padding-block: var(--lv-space-8);
}

/* ── tone: 'dark' — the map as its own lit room ──────────────────────────────

   THE DEFECT THIS CLOSES. `restaurant` is the one theme that hands this intent
   a brand band (`sections: { 'locate.map': { tone: 'band' } }`), and the audit
   of 2026-09-10 measured the result at 1.10–1.14:1 across every text node in
   the section — the headline, the address lines, the hours, the notice. The
   section had no ground of its own, so it took whatever the shell painted and
   whatever ink the shell re-pointed; when the two disagreed there was nothing
   in this file to hold the pair together.

   `locate.practical-info` and `assert.statement` already answer this and their
   answer is the same one: a section that PAINTS ITS OWN GROUND also re-points
   its own ink, so the pair travels together and no shell can split it. Both
   read off `--lv-brand-strong` / `--lv-text-on-brand` rather than off
   `--lv-text-primary`, because that pair is the ramp's gated, mode-invariant
   one (`packages/themes/src/derive.mjs`) — it is measured by the contrast gate
   as on-brand-vs-ramp and it does not flip under the site's dark mode.

   THE ROLES, not the colours. Every child of this section paints with a text
   role, so re-pointing the roles here reaches the address list, the marker
   entries, the notice and the empty state at any specificity, without this
   file naming one of them. Same list, same order, same reasons as
   `.lv-practical--dark`: the card has ONE ink and separates by size, never by
   an opacity tier that the ramp would eat. */
.lv-map--dark {
  padding-inline: var(--lv-space-6);
  border-radius: var(--lv-radius-lg);
  background: var(--lv-brand-strong);
  color: var(--lv-text-on-brand);
  --lv-text-primary: var(--lv-text-on-brand);
  --lv-text-secondary: var(--lv-text-on-brand);
  --lv-text-tertiary: var(--lv-text-on-brand);
  --lv-text-link: var(--lv-text-on-brand);
  --lv-ink-accent: var(--lv-text-on-brand);
  --lv-icon-quiet: var(--lv-text-on-brand);
  /* The surface and canvas roles go to the band's own dark end for the same
     reason the ink does: `.lv-map__frame` paints `--lv-surface-sunken`,
     `.lv-map__empty` paints `--lv-surface-raised` and
     `.lv-map__frame--overlay` paints `--lv-canvas-deep`. Left alone, each of
     the three would paint the PAGE's light sheet inside a dark card. */
  --lv-surface: var(--lv-brand-strong);
  --lv-surface-raised: var(--lv-brand-strong);
  --lv-surface-sunken: var(--lv-brand-strong);
  --lv-canvas: var(--lv-brand-strong);
  --lv-canvas-deep: var(--lv-brand-strong);
  --lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);
  --lv-line-strong: color-mix(in oklab, var(--lv-text-on-brand) 52%, transparent);
}

.lv-map__head {
  max-width: var(--lv-measure);
  margin-block-end: var(--lv-space-6);
}

.lv-map__eyebrow {
  margin: 0 0 var(--lv-space-2);
  font: var(--lv-weight-semibold) var(--lv-text-2xs) / 1 var(--lv-font-ui);
  letter-spacing: var(--lv-tracking-eyebrow);
  text-transform: uppercase;
  color: var(--lv-text-tertiary);
}

.lv-map__title {
  margin: 0;
  font-family: var(--lv-font-ui);
  font-size: var(--lv-text-2xl);
  font-weight: var(--lv-weight-heading);
  letter-spacing: var(--lv-tracking-heading);
  line-height: var(--lv-leading-tight);
  color: var(--lv-text-primary);
}

.lv-map__desc {
  margin: var(--lv-space-3) 0 0;
  color: var(--lv-text-secondary);
  line-height: var(--lv-leading-normal);
}

/* Map left, addresses right — the list is the part that has to stay readable
   when the map fails to load, so it is never overlaid on it. */
.lv-map__body {
  display: grid;
  gap: var(--lv-space-6);
  grid-template-columns: minmax(0, 1fr);
}

@container (min-width: 780px) {
  .lv-map__body {
    grid-template-columns: minmax(0, 3fr) minmax(16rem, 2fr);
    align-items: start;
  }
}

.lv-map__frame {
  block-size: var(--lv-map-height);
  border-radius: var(--lv-radius-lg);
  border: 1px solid var(--lv-line);
  background: var(--lv-surface-sunken);
  /* §1.5 framing: the radius is only real if it clips. Google's map canvas is
     a square div mounted INSIDE this frame — without this, the tiles paint
     straight through the rounded corners and the frame reads as a sticker on
     top of the map rather than a frame around it. */
  overflow: hidden;
  box-shadow: var(--lv-lift-1);
}

.lv-map__list {
  display: flex;
  flex-direction: column;
  gap: var(--lv-space-5);
  margin: 0;
  padding: 0;
  list-style: none;
}

.lv-map__entry {
  padding-block-end: var(--lv-space-5);
  border-block-end: 1px solid var(--lv-line);
}

.lv-map__entry:last-child {
  padding-block-end: 0;
  border-block-end: 0;
}

.lv-map__entry-title {
  margin: 0 0 var(--lv-space-2);
  font-size: var(--lv-text-md);
  font-weight: var(--lv-weight-semibold);
  color: var(--lv-text-primary);
}

.lv-map__entry-line,
.lv-map__entry-hours {
  margin: 0;
  color: var(--lv-text-secondary);
  font-size: var(--lv-text-sm);
  line-height: var(--lv-leading-normal);
}

.lv-map__entry-hours {
  font-variant-numeric: tabular-nums;
  color: var(--lv-text-tertiary);
}

/* §1.1 link grammar: hairline underline at rest, inked and thickened on
   hover — never colour-only, never appearing-from-nothing. */
.lv-map__entry-link {
  display: inline-block;
  margin-block-start: var(--lv-space-2);
  color: var(--lv-text-link);
  font-size: var(--lv-text-sm);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: color-mix(in oklab, var(--lv-text-link) 45%, transparent);
  transition: text-decoration-color var(--lv-dur-state) var(--lv-ease);
}

.lv-map__entry-link:hover {
  text-decoration-thickness: 2px;
  text-decoration-color: var(--lv-text-link);
}

.lv-map__entry-link:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}

@media (prefers-reduced-motion: reduce) {
  .lv-map__entry-link { transition: none; }
}

/* The empty state's one CTA, inverted on the dark ground: the card's own ink
   becomes the button's fill, so the pair is the same measured
   on-brand-vs-ramp pair read backwards. Same override, same reason as
   `.lv-practical--dark .lv-practical__cta` — a theme whose `solid` button
   device is transparent or underlined has no figure at all on a brand-strong
   ground, and this is the one place in the component where a button must
   still read as a button. */
.lv-map--dark .lv-map__empty .lv-btn--solid {
  background: var(--lv-text-on-brand);
  color: var(--lv-brand-strong);
  box-shadow: none;
}

.lv-map--dark .lv-map__empty .lv-btn--solid:hover {
  background: color-mix(in oklab, var(--lv-text-on-brand) 92%, var(--lv-brand-strong));
  color: var(--lv-brand-strong);
}

.lv-map__empty {
  display: flex;
  flex-direction: column;
  align-items: start;
  gap: var(--lv-space-3);
  max-width: 48ch;
  padding: var(--lv-space-7);
  border: 1px dashed var(--lv-line-strong);
  border-radius: var(--lv-radius-lg);
  background: var(--lv-surface-raised);
}

.lv-map__empty-title {
  margin: 0;
  font-size: var(--lv-text-md);
  font-weight: var(--lv-weight-semibold);
  color: var(--lv-text-primary);
}

.lv-map__empty-body {
  margin: 0;
  color: var(--lv-text-secondary);
  line-height: var(--lv-leading-normal);
}

.lv-map__frame--overlay {
  background: var(--lv-canvas-deep);
}

.lv-map__notice {
  margin: 0;
  padding: var(--lv-space-5);
  border: 1px dashed var(--lv-line-strong);
  border-radius: var(--lv-radius-lg);
  color: var(--lv-text-secondary);
  font-size: var(--lv-text-sm);
}

.lv-map--editor {
  min-height: 100dvh;
  padding: 0;
}

.lv-map--editor .lv-map__body,
.lv-map--editor .lv-map__frame {
  width: 100%;
  min-height: 100dvh;
  border: 0;
  border-radius: 0;
}

/* ══ «Kort» — the `pins` renderer (2026-09-30) ═══════════════════════════════

   A card first, a map second. Every rule below is scoped to `.lv-map--kort`
   (or to a class only `pins.astro` emits), so the `illustrated` and `canvas`
   renderers above keep their own grammar untouched.

   THE LEVERS. The basemap is drawn in the site's own colours: the map island
   reads these custom properties back as sRGB and builds the vector style from
   them. They are derived from the theme's roles, so every theme (and
   `tone: dark`, which re-points the roles) gets a matching map with no theme
   selecting a class of ours — a theme that wants a different map sets a
   lever. The pin is the brand; everything else is quiet. */
.lv-map--kort {
  --lv-map-earth: color-mix(in oklab, var(--lv-surface) 94%, var(--lv-text-primary));
  /* Water keeps a trace of the brand but is pulled to a muted cool hue, so it
     never reads as a park in a green-brand theme or in `tone: dark` (review
     minor 3). Parks mix toward the ok-green role, water toward blue. */
  --lv-map-water: color-mix(in oklab, var(--lv-surface) 78%, color-mix(in oklab, var(--lv-brand) 30%, oklch(0.6 0.09 235)));
  --lv-map-park: color-mix(in oklab, var(--lv-surface) 88%, var(--lv-ok-text));
  --lv-map-road: var(--lv-surface-raised);
  --lv-map-road-casing: color-mix(in oklab, var(--lv-line) 70%, var(--lv-text-primary) 12%);
  --lv-map-building: color-mix(in oklab, var(--lv-surface) 86%, var(--lv-text-primary));
  --lv-map-label: var(--lv-text-secondary);
  --lv-map-halo: var(--lv-surface);
  --lv-map-pin: var(--lv-brand);
  --lv-map-pin-ink: var(--lv-text-on-brand);
  --lv-map-card: var(--lv-surface-raised);
}

/* On the dark band the card must still read as a card: a step lighter than
   the band, ink unchanged (the on-brand pair the contrast gate measures). */
.lv-map--kort.lv-map--dark {
  --lv-map-card: color-mix(in oklab, var(--lv-brand-strong) 90%, var(--lv-text-on-brand));
  --lv-map-pin: var(--lv-text-on-brand);
  --lv-map-pin-ink: var(--lv-brand-strong);
  --lv-map-road: color-mix(in oklab, var(--lv-brand-strong) 78%, var(--lv-text-on-brand));
  --lv-map-road-casing: color-mix(in oklab, var(--lv-brand-strong) 88%, var(--lv-text-on-brand));
  /* The band re-points --lv-surface to the brand, so the light-tone water
     would be the band's own hue again: water goes darker and cooler instead. */
  --lv-map-water: color-mix(in oklab, var(--lv-brand-strong) 50%, oklch(0.3 0.08 245));
  padding-block: var(--lv-space-8);
}

.lv-map__grid {
  display: grid;
  gap: var(--lv-space-6);
  grid-template-columns: minmax(0, 1fr);
}

/* Split (default): cards left, map right, from 900 px of SECTION width. Below
   that the card comes first — the answer before the picture. */
@container (min-width: 900px) {
  .lv-map--kort:not(.lv-map--stacked):not(.lv-map--nomap) .lv-map__grid {
    grid-template-columns: minmax(300px, 5fr) minmax(0, 7fr);
    align-items: stretch;
  }
  .lv-map--kort:not(.lv-map--stacked):not(.lv-map--nomap) .lv-map__view { order: 2; }
  .lv-map--kort:not(.lv-map--stacked):not(.lv-map--nomap) .lv-map__places { order: 1; }
  /* Several addresses: the list is never capped (a cap clipped the second
     address mid-card in themes with large type, and a scroll box inside the
     page hides that there is more). The map stays beside the list instead —
     sticky in its column, at its own height — so every pin stays in view
     while the visitor reads down the addresses. */
  .lv-map--kort.lv-map--multi:not(.lv-map--stacked) .lv-map__view {
    align-self: start;
    position: sticky;
    inset-block-start: var(--lv-space-5);
  }
}

.lv-map__view { display: flex; flex-direction: column; gap: var(--lv-space-2); min-inline-size: 0; order: 2; }
.lv-map__places { display: flex; flex-direction: column; gap: var(--lv-space-3); min-inline-size: 0; order: 1; }

/* Stacked: the map across the top, the cards beneath in a grid. */
.lv-map--stacked .lv-map__view { order: 1; }
.lv-map--stacked .lv-map__places {
  order: 2;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  align-items: start;
}

/* No coordinates anywhere: the card alone, at a readable width. */
.lv-map--nomap .lv-map__places { max-inline-size: 36rem; }

/* ── The card ──────────────────────────────────────────────────────────────── */
.lv-map__card {
  display: flex;
  flex-direction: column;
  gap: var(--lv-space-2);
  padding: var(--lv-space-6);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius-lg);
  background: var(--lv-map-card);
  color: var(--lv-text-primary);
}

.lv-map--kort:not(.lv-map--multi) .lv-map__card { block-size: 100%; }

.lv-map__badge {
  align-self: flex-start;
  font: var(--lv-weight-semibold) var(--lv-text-2xs) / 1 var(--lv-font-ui);
  letter-spacing: var(--lv-tracking-eyebrow);
  text-transform: uppercase;
  color: var(--lv-text-tertiary);
}

.lv-map__name {
  margin: 0;
  font-family: var(--lv-font-ui);
  font-size: var(--lv-text-lg);
  font-weight: var(--lv-weight-heading);
  letter-spacing: var(--lv-tracking-heading);
  line-height: var(--lv-leading-tight);
  color: var(--lv-text-primary);
  text-wrap: balance;
}

.lv-map__address {
  font-style: normal;
  color: var(--lv-text-secondary);
  line-height: var(--lv-leading-normal);
}

/* The live chip. Its TEXT is always the primary ink (measured pair); the state
   lives in the dot, and in the words themselves. */
.lv-map__status {
  display: inline-flex;
  align-items: center;
  gap: var(--lv-space-2);
  align-self: flex-start;
  margin: var(--lv-space-1) 0 0;
  padding: var(--lv-space-1) var(--lv-space-3);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius-pill);
  font-size: var(--lv-text-sm);
  font-weight: var(--lv-weight-medium);
  color: var(--lv-text-primary);
  font-variant-numeric: tabular-nums;
}
.lv-map__status[hidden] { display: none; }
.lv-map__dot {
  inline-size: 0.5rem;
  block-size: 0.5rem;
  border-radius: 50%;
  background: var(--lv-text-tertiary);
  flex: none;
}
.lv-map__status[data-state='open'] .lv-map__dot { background: var(--lv-ok-text); }
.lv-map__status[data-state='closing'] .lv-map__dot { background: var(--lv-warn-text); }
.lv-map--dark .lv-map__status .lv-map__dot { background: var(--lv-text-on-brand); }
.lv-map--dark .lv-map__status[data-state='closed'] .lv-map__dot { background: transparent; box-shadow: inset 0 0 0 1.5px var(--lv-text-on-brand); }

.lv-map__detail { display: flex; flex-direction: column; gap: var(--lv-space-4); flex: 1; }
.lv-map--kort:not(.lv-map--multi) .lv-map__detail { margin-block-start: var(--lv-space-3); }

.lv-map__note {
  margin: 0;
  color: var(--lv-text-secondary);
  font-size: var(--lv-text-sm);
  line-height: var(--lv-leading-normal);
}

.lv-map__hours { display: flex; flex-direction: column; gap: var(--lv-space-2); }
.lv-map__hours-table {
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: var(--lv-space-5);
  row-gap: var(--lv-space-1);
  margin: 0;
  font-size: var(--lv-text-sm);
}
.lv-map__hours-row { display: contents; }
.lv-map__hours-row dt { color: var(--lv-text-secondary); }
.lv-map__hours-row dd {
  margin: 0;
  color: var(--lv-text-primary);
  font-variant-numeric: tabular-nums;
}
.lv-map__hours-row.is-today dt,
.lv-map__hours-row.is-today dd { font-weight: var(--lv-weight-semibold); color: var(--lv-text-primary); }
.lv-map__hours-note { margin: 0; font-size: var(--lv-text-xs); color: var(--lv-text-tertiary); }

.lv-map__phone { margin: 0; font-size: var(--lv-text-sm); }
.lv-map__phone a {
  display: inline-flex;
  align-items: center;
  min-block-size: 44px;
  color: var(--lv-text-link);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: color-mix(in oklab, var(--lv-text-link) 45%, transparent);
}
.lv-map__phone a:hover { text-decoration-thickness: 2px; text-decoration-color: var(--lv-text-link); }
.lv-map__num { font-variant-numeric: tabular-nums; margin-inline-start: 0.25em; }

.lv-map__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lv-space-3);
  margin-block-start: auto;
  padding-block-start: var(--lv-space-2);
}
.lv-map__action { min-block-size: 44px; gap: var(--lv-space-2); }
.lv-map__action svg { flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

/* On the dark band the two buttons invert against the band (the same
   on-brand pair read backwards), so no theme's button device can vanish on
   `--lv-brand-strong`. */
.lv-map--dark .lv-map__action.lv-btn--primary {
  background: var(--lv-text-on-brand);
  color: var(--lv-brand-strong);
  box-shadow: none;
}
.lv-map--dark .lv-map__action.lv-btn--primary::before,
.lv-map--dark .lv-map__action.lv-btn--primary::after { display: none; }
.lv-map--dark .lv-map__action.lv-btn--solid {
  background: transparent;
  color: var(--lv-text-on-brand);
  box-shadow: inset 0 0 0 1px var(--lv-text-on-brand);
}

.lv-map__copy-row { margin: 0; display: flex; align-items: center; gap: var(--lv-space-3); min-block-size: 0; }
.lv-map__copy {
  min-block-size: 44px;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: var(--lv-text-sm);
  color: var(--lv-text-secondary);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  cursor: pointer;
}
.lv-map__copy[hidden] { display: none; }
.lv-map__copy:hover { color: var(--lv-text-primary); }
.lv-map__copied { font-size: var(--lv-text-sm); color: var(--lv-text-secondary); }

/* ── Several locations: an exclusive accordion that drives the map ────────── */
.lv-map__card--pick { padding: 0; gap: 0; }
.lv-map__summary {
  display: flex;
  align-items: flex-start;
  gap: var(--lv-space-3);
  padding: var(--lv-space-5) var(--lv-space-5) var(--lv-space-4);
  min-block-size: 44px;
  list-style: none;
  cursor: pointer;
  border-radius: var(--lv-radius-lg);
}
.lv-map__summary::-webkit-details-marker { display: none; }
.lv-map__summary-text { display: flex; flex-direction: column; gap: var(--lv-space-1); flex: 1; min-inline-size: 0; }
.lv-map__chevron {
  flex: none;
  margin-block-start: 0.2rem;
  fill: none;
  stroke: var(--lv-text-secondary);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform var(--lv-dur-state) var(--lv-ease);
}
.lv-map__card--pick[open] .lv-map__chevron { transform: rotate(180deg); }
.lv-map__card--pick .lv-map__detail { padding: 0 var(--lv-space-5) var(--lv-space-5); }
.lv-map__card--pick[open] { border-color: var(--lv-line-strong); }
.lv-map__card--pick .lv-map__name { font-size: var(--lv-text-md); }

/* ── The map frame ─────────────────────────────────────────────────────────── */
.lv-map__stage {
  position: relative;
  block-size: clamp(240px, 68cqi, 360px);
  border: 1px solid var(--lv-line);
  border-radius: var(--lv-radius-lg);
  overflow: hidden;
  background: var(--lv-map-earth);
  isolation: isolate;
}
@container (min-width: 900px) {
  .lv-map--kort:not(.lv-map--stacked) .lv-map__stage { block-size: var(--lv-map-height); }
}
.lv-map--stacked .lv-map__stage { block-size: clamp(260px, 50cqi, var(--lv-map-height)); }

/* The poster: a few token-coloured streets, a stretch of water and the pin —
   enough to read as "a map" before the live one arrives, and the honest
   final state when it cannot. */
.lv-map__poster {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background:
    radial-gradient(ellipse 38% 30% at 88% 92%, var(--lv-map-water) 0 98%, transparent 100%),
    linear-gradient(112deg, transparent calc(46% - 5px), var(--lv-map-road-casing) calc(46% - 5px) calc(46% - 4px), var(--lv-map-road) calc(46% - 4px) calc(46% + 4px), var(--lv-map-road-casing) calc(46% + 4px) calc(46% + 5px), transparent calc(46% + 5px)),
    linear-gradient(8deg, transparent calc(58% - 3px), var(--lv-map-road) calc(58% - 3px) calc(58% + 3px), transparent calc(58% + 3px)),
    repeating-linear-gradient(0deg, transparent 0 55px, color-mix(in oklab, var(--lv-map-road-casing) 55%, transparent) 55px 56px),
    repeating-linear-gradient(90deg, transparent 0 71px, color-mix(in oklab, var(--lv-map-road-casing) 55%, transparent) 71px 72px),
    radial-gradient(ellipse 22% 18% at 16% 20%, var(--lv-map-park) 0 98%, transparent 100%),
    var(--lv-map-earth);
}
.lv-map__poster-pin { transform: translateY(-22px); }

.lv-map__pin-body { fill: var(--lv-map-pin); stroke: var(--lv-map-halo); stroke-width: 2; }
.lv-map__pin-core { fill: var(--lv-map-pin-ink); }
.lv-map__pin-shadow { fill: color-mix(in oklab, var(--lv-text-primary) 28%, transparent); }

/* `.lv-map__stage >` on purpose: MapLibre's own stylesheet (loaded later)
   gives its container `.maplibregl-map { position: relative }`, which would
   collapse this host to zero height and hide the live map behind nothing. */
.lv-map__stage > .lv-map__canvas {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 240ms var(--lv-ease);
}
.lv-map__stage.is-live .lv-map__canvas { opacity: 1; }
.lv-map__stage.is-live .lv-map__poster-link,
.lv-map__stage.is-live .lv-map__load { display: none; }

.lv-map__poster-link,
.lv-map__load {
  position: absolute;
  inset-block-end: var(--lv-space-4);
  inset-inline-start: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  min-block-size: 44px;
  padding-inline: var(--lv-space-5);
  border: 1px solid var(--lv-line-strong);
  border-radius: var(--lv-radius-pill);
  background: var(--lv-surface-raised);
  color: var(--lv-text-primary);
  font: var(--lv-weight-semibold) var(--lv-text-sm) / 1 var(--lv-font-ui);
  text-decoration: none;
  box-shadow: var(--lv-lift-1);
  cursor: pointer;
  white-space: nowrap;
}
.lv-map__load { inset-block-end: auto; inset-block-start: var(--lv-space-4); }
.lv-map__load[hidden] { display: none; }
.lv-map__poster-link:hover,
.lv-map__load:hover { border-color: var(--lv-text-primary); }

/* Our own zoom buttons, OUTSIDE the canvas (which is aria-hidden): 44 px,
   solid, labelled. Bottom-right (review minor 4): at the top they covered a
   pin that fitBounds put near the top edge, and the pin's town label. */
.lv-map__zoom {
  position: absolute;
  inset-block-end: var(--lv-space-3);
  inset-inline-end: var(--lv-space-3);
  z-index: 2;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--lv-line-strong);
  border-radius: var(--lv-radius-md);
  background: var(--lv-surface-raised);
  box-shadow: var(--lv-lift-1);
  overflow: hidden;
}
.lv-map__zoom[hidden] { display: none; }
.lv-map__zoom-btn {
  display: grid;
  place-items: center;
  inline-size: 44px;
  block-size: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--lv-text-primary);
  cursor: pointer;
}
.lv-map__zoom-btn + .lv-map__zoom-btn { border-block-start: 1px solid var(--lv-line); }
.lv-map__zoom-btn svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.lv-map__zoom-btn:hover { background: color-mix(in oklab, var(--lv-surface-raised) 88%, var(--lv-text-primary)); }

/* Dark band: the frame's own controls stay light-on-dark legible. */
.lv-map--dark .lv-map__poster-link,
.lv-map--dark .lv-map__load,
.lv-map--dark .lv-map__zoom { background: var(--lv-map-card); }

/* Live pins. The drop-in is the one entrance motion: 240 ms, the system's
   one easing, no bounce — and none at all under reduced motion (the script
   never adds `is-dropping` then). */
.lv-map__pin { inline-size: 32px; block-size: 44px; cursor: pointer; }
.lv-map__pin svg { display: block; overflow: visible; transition: transform var(--lv-dur-state) var(--lv-ease); transform-origin: 50% 100%; }
.lv-map__pin.is-selected svg { transform: scale(1.15); }
.lv-map__pin.is-selected .lv-map__pin-body { stroke-width: 3; }
.lv-map__pin.is-dropping svg { animation: lv-map-pin-drop 240ms var(--lv-ease) var(--lv-pin-delay, 0ms) both; }
@keyframes lv-map-pin-drop {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: none; }
}

.lv-map__credit {
  margin: 0;
  font-size: var(--lv-text-xs);
  color: var(--lv-text-tertiary);
}
.lv-map__credit a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* Focus: every control the visitor can reach. */
.lv-map__summary:focus-visible,
.lv-map__copy:focus-visible,
.lv-map__phone a:focus-visible,
.lv-map__poster-link:focus-visible,
.lv-map__load:focus-visible,
.lv-map__zoom-btn:focus-visible,
.lv-map__credit a:focus-visible {
  outline: var(--lv-focus-width) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset);
}
.lv-map__zoom-btn:focus-visible { outline-offset: -3px; }

@media (prefers-reduced-motion: reduce) {
  .lv-map__stage > .lv-map__canvas,
  .lv-map__chevron,
  .lv-map__pin svg { transition: none; }
  .lv-map__pin.is-dropping svg { animation: none; }
}

/* No address resolved (none saved yet, or the chosen one was deleted): the
   owner sees the empty state in the builder and every preview; a VISITOR sees
   no section at all — "tilføj jeres adresse i administrationen" is not a
   sentence for a customer's customer. Published pages never carry
   `data-lv-preview` (render.mjs `documentHtml`). */
html:not([data-lv-preview]) .lv-map--kort.lv-map--empty { display: none; }
/* components/prove.chart/renderers/opslag.css */
/**
 * prove.chart · `opslag` ("Redaktionelt opslag") — the journal spread.
 *
 * Un-scoped, `.lv-chops*`-namespaced, theme tokens only. The narrative column
 * reads first; the chart stands on a plate beside it from 56rem.
 */

.lv-chops__row {
  display: grid;
  gap: var(--lv-space-6);
  align-items: start;
}

@container (min-width: 56rem) {
  .lv-chops__row { grid-template-columns: minmax(16rem, 5fr) minmax(0, 7fr); gap: var(--lv-space-8); }
}

.lv-chops__essay {
  display: grid;
  gap: var(--lv-space-4);
  max-width: var(--lv-measure);
}

/* The drawn rule: short, under the headline, the spread's one worked detail.
   Micro HIGH draws it (svg-line-draw); otherwise it is simply a rule. */
/* The ink is the ACCENT ROLE, not the raw brand colour: this rule sits on
   whatever ground the theme places the section on, and `--lv-brand-strong`
   on a banded ground is the 1.00:1 measurement `styles/section.css:60-76`
   documents. Same fallback shape `prove.press` and `prove.dataset` use. */
.lv-chops__rule {
  width: 7.5rem;
  height: 2px;
  color: var(--lv-ink-accent, var(--lv-brand-strong));
}

.lv-chops__lede { margin: 0; }

.lv-chops__notes {
  display: grid;
  gap: var(--lv-space-2);
  margin: var(--lv-space-2) 0 0;
  padding: 0;
  list-style: none;
  counter-reset: lv-chops-note;
}

.lv-chops__note {
  position: relative;
  padding-block-start: var(--lv-space-2);
  padding-inline-start: var(--lv-space-6);
  border-block-start: 1px solid var(--lv-line);
  font-size: var(--lv-text-xs);
  color: var(--lv-text-tertiary);
  counter-increment: lv-chops-note;
}

.lv-chops__note::before {
  content: counter(lv-chops-note, decimal-leading-zero);
  position: absolute;
  inset-inline-start: 0;
  font-family: var(--lv-font-mono);
  color: var(--lv-text-tertiary);
  font-feature-settings: 'tnum' 1;
}

.lv-chops__plate {
  padding: clamp(var(--lv-space-4), 3cqi, var(--lv-space-6));
  border-radius: var(--lv-radius-lg);
  background: var(--lv-surface-raised);
  box-shadow: inset 0 0 0 1px var(--lv-line);
}
/* components/prove.chart/renderers/statement.css */
/**
 * prove.chart · `statement` ("Udsagnet") — the promoted figure.
 *
 * Un-scoped, `.lv-chstat*`-namespaced, theme tokens only. The figure is the
 * one oversized element; everything else keeps the chart plane's quiet.
 */

.lv-chstat { display: grid; gap: var(--lv-space-5); }

.lv-chstat__lead {
  display: grid;
  gap: var(--lv-space-2);
  justify-items: start;
  margin: 0;
  padding-block-end: var(--lv-space-4);
  border-block-end: 1px solid var(--lv-line);
}

.lv-chstat__figure {
  font-size: clamp(2.5rem, 8cqi, 4.5rem);
  font-weight: var(--lv-weight-bold);
  line-height: 1;
  color: var(--lv-text-primary);
  font-feature-settings: 'tnum' 1;
  letter-spacing: -0.02em;
}

.lv-chstat__caption {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--lv-space-2) var(--lv-space-4);
}

.lv-chstat__label {
  font-size: var(--lv-text-sm);
  color: var(--lv-text-secondary);
}

.lv-chstat__delta {
  font-family: var(--lv-font-mono);
  font-size: var(--lv-text-xs);
  color: var(--lv-text-tertiary);
  font-feature-settings: 'tnum' 1;
}

/* Direction is also written in the text ("+ / − / ± siden …") — the color is
   reinforcement, never the only encoding. */
.lv-chstat__delta--up { color: var(--lv-text-secondary); }
.lv-chstat__delta--down { color: var(--lv-text-secondary); }
/* components/prove.people/renderers/linked.css */
/* ── prove.people · the linked portrait index, shared skeleton ───────────────
 *
 * ONE implementation of `section.prove.people-linked-portrait-index.v1`, worn
 * four ways. The four route-family renderers (`people.astro`,
 * `people-editorial.astro`, `people-portfolio.astro`, `people-product.astro`)
 * import this file and add only what makes their family's argument; the
 * anatomy, the selection mechanism, the keyboard contract and the degrade
 * ladder live here once (.impeccable.md §5.7, "one of everything").
 *
 * THE MECHANISM — a native radio group, and nothing else.
 * `adapter.static-linked-portrait-index.v1` is explicit: "Implement linked
 * portrait selection with semantic radio inputs and labels in static HTML/CSS;
 * do not add a runtime dependency or require JavaScript for identity, keyboard
 * access or the mobile fallback." So the selection state IS `:checked` on a
 * real `<input type="radio">`, the trigger IS its `<label>`, and the linkage
 * from index to stage is one `:has()` rule. The browser supplies, for free and
 * correctly: one tab stop for the whole group (roving tabindex, natively),
 * arrow-key traversal that also selects, `Enter`/`Space`, the "radio button 3
 * of 5" announcement, and `:focus-visible`. Nothing here re-implements any of
 * it in script — the one client helper (`lib/linked-keys.js`) adds `Home`/`End`,
 * which no browser gives a radio group, and stops.
 *
 * THE DEGRADE LADDER, from the bottom up. Each rung is a superset of the one
 * below it and every rung is a design, not a ruin:
 *
 *   1. no CSS at all      an ordered list of people; every name, role, bio and
 *                         contact link readable in document order.
 *   2. no `:has()`        the STACKED LIST (`adapter.static-stacked-list.v1`):
 *                         every member with their portrait inline, no
 *                         selection, and — the correction to the first draft —
 *                         no radio either: that adapter forbids "inert chrome",
 *                         and a control that selects nothing is exactly that.
 *                         This is also what every viewport below the 46rem
 *                         container query gets, which is the pattern's own
 *                         `responsive` clause ("below 700px the section becomes
 *                         a stacked list with inline portraits; every member is
 *                         visible without selection").
 *   3. `:has()` + width   the LINKED layout: stage pinned in its own column,
 *                         index beside it, selection synchronising the two, the
 *                         radio group drawn and operable.
 *   4. no-preference      the family's one settle-on-entry, declared per family
 *                         in each renderer's own style block on a `view()`
 *                         timeline — that is what makes `runtime: 'css-view'`
 *                         true rather than merely declared.
 *
 * Nothing on rungs 3–4 carries content of its own, so nothing is lost by
 * standing on a lower rung. There is no `opacity: 0` and no
 * `visibility: hidden` anywhere in this file: hiding is `display: none` on a
 * plate whose every field is also reachable in the stacked rung and in the
 * `expanded` state, never a fade a stalled runtime could leave stuck.
 *
 * WHY THE PLATE LIVES INSIDE THE `<li>`. The obvious build — a stage element
 * beside the index — needs one CSS rule per member position to link entry N to
 * plate N (`:has(:nth-child(N) :checked) … :nth-child(N)`), i.e. a hard cap on
 * how many people a customer may add. Keeping each member's plate inside their
 * own `<li>` and lifting it into the stage column with `position: absolute`
 * makes the link a single rule for any number of members — and it is also what
 * makes rung 2 fall out for free: drop the absolute positioning and each plate
 * is already sitting in its own member's row.
 *
 * POINTER PREVIEW IS POINTER-ONLY. Hover preview lives inside
 * `@media (hover: hover) and (pointer: fine)`. On a touch screen a `:hover`
 * that latches after a tap would leave the stage showing a member the visitor
 * did not choose; the pattern's touch clause ("tap selects directly; no
 * hover-only content") is only true if the hover rules are not there at all.
 * Focus preview is ungated — a keyboard exists on every pointer type.
 *
 * BUILDER PROTOCOL v2. The canvas applies a declared state as
 * `data-lv-state="<state>"` on the placement root plus an `lv:state` event
 * (packages/builder-protocol/src/commands.ts) — never a remount. Every state
 * this component declares therefore has a CSS consequence keyed off that
 * attribute at the end of this file, so builder-driven states render with no
 * behavior chunk loaded at all. `expanded` is the one that matters: it opens
 * every member's plate at once, which is how an operator reaches the bio and
 * contact anchors of a member who is not the selected one.
 */

.lv-people {
  /* Per-family overrides live in each renderer's scoped style block. */
  --lv-people-stage: 19rem;
  --lv-people-stage-floor: 30rem;
  --lv-people-plate-ratio: 4 / 5;
  --lv-people-gutter: var(--lv-space-7);
}

/* ── The group ─────────────────────────────────────────────────────────────
   A real `<fieldset>`: the browser groups the radios by their shared `name`
   and the `<legend>` names the choice. No `role="radiogroup"` override — the
   native grouping is already correct, and an ARIA role on a fieldset that
   also contains the plates would claim a child structure the markup does not
   have. */

.lv-people__linked {
  min-inline-size: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.lv-people__legend {
  /* Rung 2 has no selection to explain, so the instruction only appears with
     the linked layout that makes it true. */
  display: none;
  padding: 0;
  color: var(--lv-text-tertiary);
  font-size: var(--lv-text-xs);
  letter-spacing: var(--lv-tracking-eyebrow);
  text-transform: uppercase;
}

.lv-people__index {
  display: grid;
  gap: var(--lv-space-6);
  margin: 0;
  padding: 0;
  list-style: none;
}

.lv-people__entry {
  display: grid;
  gap: var(--lv-space-3);
  min-inline-size: 0;
}

/* ── The pick: the whole row is the label ──────────────────────────────────
   44px minimum block size on the label itself, not on a nested hit area, so
   the tap target is the row the eye reads (.impeccable.md §0, "Hit targets
   ≥ 44×44 CSS px on touch" — binds without exception). */

.lv-people__pick {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: baseline;
  gap: var(--lv-space-1) var(--lv-space-3);
  min-block-size: 44px;
  margin: 0;
  padding-block: var(--lv-space-2);
  align-content: center;
}

label.lv-people__pick {
  cursor: pointer;
}

/* The control is DRAWN, not hidden — but only on the rung where it decides
   something. A visually-hidden radio moves the focus ring somewhere the eye is
   not; `appearance: none` on a control that stays in the layout keeps the ring
   on the thing the arrow keys actually move, which is the whole reason this is
   a radio group and not a div with a click handler. On the stacked rung the
   control is `display: none`: every plate is already open there, so a radio
   would be chrome for a decision nobody is being asked to make (and one more
   tab stop per member on the smallest screen). */
.lv-people__radio {
  display: none;
  inline-size: 0.7rem;
  block-size: 0.7rem;
  margin: 0;
  padding: 0;
  border: 1px solid var(--lv-line-strong);
  border-radius: var(--lv-radius-pill);
  background: var(--lv-surface);
  appearance: none;
  translate: 0 0.12em;
  transition: background-color var(--lv-dur-fast) var(--lv-ease),
              border-color var(--lv-dur-fast) var(--lv-ease);
}

.lv-people__radio:checked {
  border-color: var(--lv-brand-strong);
  background: var(--lv-brand-strong);
}

/* The focus ring is on the CONTROL, never on a `:has()` ancestor — the row
   emphasis further down is additive to it, never a replacement. */
.lv-people__radio:focus-visible {
  outline: var(--lv-focus-width, 2px) solid var(--lv-brand-strong);
  outline-offset: 3px;
}

.lv-people__code {
  color: var(--lv-text-tertiary);
  font-family: var(--lv-font-mono);
  font-size: var(--lv-text-xs);
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--lv-tracking-num);
}

.lv-people__ident {
  display: grid;
  gap: var(--lv-space-1);
  min-inline-size: 0;
}

.lv-people__name {
  color: var(--lv-text-primary);
  font-size: var(--lv-text-md);
  font-weight: var(--lv-weight-semibold);
}

.lv-people__role {
  color: var(--lv-text-secondary);
  font-size: var(--lv-text-sm);
}

/* ── The plate: portrait, identity, bio, contact ───────────────────────────
   In the stacked rung it is an inline portrait beside the member's own text.
   In the linked rung it becomes the stage. Same element, same anchors. */

.lv-people__plate {
  display: grid;
  grid-template-columns: minmax(0, 6.5rem) minmax(0, 1fr);
  gap: var(--lv-space-2) var(--lv-space-4);
  margin: 0;
  align-items: start;
}

.lv-people__portrait,
.lv-people__mark {
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: var(--lv-people-plate-ratio);
  border-radius: var(--lv-radius-md);
  background: var(--lv-surface-sunken);
  object-fit: cover;
}

/* B14 — the designed no-photo state. Brand ink on brand-soft, the pair that
   travels WITH the element (see the --lv-ink-accent note in section.css: an
   accent carrying its own background must not use the re-pointable role).
   Never a stock face, never a grey rectangle. */
.lv-people__mark {
  display: grid;
  place-items: center;
  background: var(--lv-brand-soft);
  color: var(--lv-brand-strong);
  font-size: var(--lv-text-xl);
  font-weight: var(--lv-weight-bold);
  letter-spacing: 0.04em;
  user-select: none;
}

.lv-people__plate-body {
  display: grid;
  gap: var(--lv-space-2);
  min-inline-size: 0;
}

/* The stage's identity block mirrors the index entry, so it is `aria-hidden`
   in the markup (the radio's own label already announces name and role) and
   suppressed entirely on the stacked rung where the pick row sits directly
   above it. The pattern requires the active member's identity to be "mirrored
   in both at all times" — visually, once the two zones are genuinely apart. It
   carries no `data-edit`: one anchor per path, on the index entry, which is
   the element visible in every state. */
.lv-people__plate-meta {
  display: none;
  gap: var(--lv-space-1);
}

.lv-people__bio {
  max-inline-size: var(--lv-measure);
  margin: 0;
  color: var(--lv-text-secondary);
}

.lv-people__contact {
  display: flex;
  flex-wrap: wrap;
  gap: 0 var(--lv-space-4);
  margin: 0;
  font-size: var(--lv-text-sm);
}

.lv-people__contact a {
  display: inline-flex;
  align-items: center;
  min-block-size: 44px;
}

/* ── Solo floor (§1.6): one person is a band, not a group of one ───────────
   A radio group offering a single choice is chrome for a decision nobody has;
   the renderers drop the control entirely and this widens what is left. */

.lv-people--solo .lv-people__plate {
  grid-template-columns: minmax(0, 12rem) minmax(0, 1fr);
  gap: var(--lv-space-3) var(--lv-space-6);
}

/* With no index there is no pick row, so the plate's identity block stops
   being a mirror and becomes the only one — visible, and the element that
   carries the name and role anchors. */
.lv-people--solo .lv-people__plate-meta {
  display: grid;
}

.lv-people--solo .lv-people__plate-meta .lv-people__name {
  font-size: var(--lv-text-lg);
}

/* ── Density — the index's grain, not a different anatomy ──────────────────
   `list` is one member per row. `grid` wraps the index into columns beside the
   stage. `compact` sets the role on the name's own line and tightens the
   rhythm. All three keep every anchor and every degrade rung. */

.lv-people--grid .lv-people__index {
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
}

.lv-people--compact .lv-people__index {
  gap: var(--lv-space-4);
}

.lv-people--compact .lv-people__ident {
  grid-auto-flow: column;
  grid-auto-columns: max-content;
  align-items: baseline;
  gap: var(--lv-space-2);
}

.lv-people--compact .lv-people__role::before {
  content: '· ';
}

/* ══ THE LINKED LAYOUT — rung 3 ════════════════════════════════════════════
   Gated on BOTH `:has()` support and the container's width, because the
   linked layout is the only thing here that can fail: without `:has()` the
   selection rules below never match and every plate would sit absolutely
   positioned on top of every other. Under the `@supports` gate the stacked
   rung stays. */

@supports selector(:has(*)) {
  @container (min-width: 46rem) {
    .lv-people__legend {
      display: block;
      margin-block-end: var(--lv-space-4);
    }

    .lv-people__radio {
      display: inline-block;
    }

    /* `align-content: start` — without it this is CSS Grid's own default
       (`normal`, which computes to `stretch` for a grid container): the
       floor above exists so the absolutely-positioned stage always has
       somewhere tall enough to stand even when the roster is short, but a
       roster of three or four names is normally only ONE grid row (`grid`
       density fits them all in one `auto-fit` row at this container width),
       and `stretch` was pulling that single row open to the FULL
       `--lv-people-stage-floor` height — then `.lv-people__pick`'s own
       `align-content: center` centred each name inside its now much-too-tall
       cell. Measured as "the name row floats at mid-height, big empty gap"
       on every theme this pass reviewed (`artsy`, `comparison`, `couture`,
       `funsite`, `raw` and more): the stage stood correctly: the roster beside
       it did not. `start` keeps row tracks at their own content height —
       exactly the "tight enough that four names read as a team" the family
       comment above already asks for — and does not touch the stage's own
       `position: absolute`, which was never part of this grid's row sizing
       to begin with. */
    .lv-people__index {
      position: relative;
      min-block-size: var(--lv-people-stage-floor);
      padding-inline-start: calc(var(--lv-people-stage) + var(--lv-people-gutter));
      gap: 0;
      align-content: start;
    }

    .lv-people--grid .lv-people__index {
      column-gap: var(--lv-space-6);
    }

    .lv-people__entry {
      gap: 0;
      border-block-start: 1px solid var(--lv-line);
    }

    .lv-people--list .lv-people__entry:last-child,
    .lv-people--compact .lv-people__entry:last-child {
      border-block-end: 1px solid var(--lv-line);
    }

    /* The stage. One column, pinned to the top of the index's own box, which
       is why the index carries a floor height: the stage must have somewhere
       to stand even when three members make a short list. */
    .lv-people__plate {
      position: absolute;
      inset-block-start: 0;
      inset-inline-start: 0;
      inline-size: var(--lv-people-stage);
      grid-template-columns: minmax(0, 1fr);
      gap: var(--lv-space-4);
    }

    .lv-people__plate-meta {
      display: grid;
    }

    /* ── SELECTION, in five rules ──────────────────────────────────────────
       Read top to bottom; each later rule is deliberately more specific or
       later in source order than the one it overrides, so the outcome is
       decided by the cascade rather than by `!important`.

         1  nothing shows                                        (0,3,0)
         2  … except the committed selection                     (0,5,0)
         3  … which a keyboard focus preview replaces            (0,5,0), later
         4  … and, on a fine pointer only, hover replaces that   (0,5,0), later
         5  … with every other plate closed while hovering       (0,6,0)

       `interruption` (declared in def.ts) is a property of this being pure
       CSS state: a new selection is the new match on the next style
       recalculation. There is no in-flight transition to abandon, and the
       stage can never show two members blended. */
    .lv-people__index .lv-people__entry .lv-people__plate {
      display: none;
    }

    .lv-people__index .lv-people__entry:has(.lv-people__radio:checked) .lv-people__plate {
      display: grid;
    }

    .lv-people__index:has(.lv-people__radio:focus-visible) .lv-people__entry .lv-people__plate {
      display: none;
    }

    .lv-people__index .lv-people__entry:has(.lv-people__radio:focus-visible) .lv-people__plate {
      display: grid;
    }

    @media (hover: hover) and (pointer: fine) {
      .lv-people__index:has(.lv-people__entry:hover) .lv-people__entry .lv-people__plate {
        display: none;
      }

      .lv-people__index .lv-people__entry:hover .lv-people__plate {
        display: grid;
      }

      .lv-people__entry:hover .lv-people__name {
        color: var(--lv-text-primary);
      }
    }

    /* Row emphasis — additive to the control's own focus ring, never a
       replacement for it. */
    .lv-people__entry:has(.lv-people__radio:checked) .lv-people__name {
      color: var(--lv-text-primary);
    }

    .lv-people__entry:not(:has(.lv-people__radio:checked)) .lv-people__name {
      color: var(--lv-text-secondary);
    }

    /* One person, one plate: the solo band keeps its portrait open — there is
       no index to link it to. Placed inside the linked block so it overrides
       rule 1 rather than the stacked rung's own layout. */
    .lv-people--solo .lv-people__index {
      min-block-size: 0;
      padding-inline-start: 0;
    }

    .lv-people--solo .lv-people__index .lv-people__entry .lv-people__plate {
      display: grid;
      position: static;
      inline-size: auto;
      grid-template-columns: minmax(0, 12rem) minmax(0, 1fr);
    }
  }
}

/* ══ BUILDER-DRIVEN STATES — protocol v2 ═══════════════════════════════════
   `setState` writes `data-lv-state` on the placement root and fires
   `lv:state`; no behavior chunk is required for any of these to render. Each
   name below is one of the strings def.ts declares in
   `designBindings.interaction.states`.

   `idle` and `selected` need no rule: the server markup already commits the
   first member, which is what the resting state IS.

   These rules sit after the linked block on purpose — `expanded` carries six
   compound selectors so it also outranks the pointer-preview rule (0,6,0)
   above; without that, hovering the canvas would close plates the operator
   asked to have open. */

.lv-people[data-lv-state='hover-preview'] .lv-people__entry:has(.lv-people__radio:checked) .lv-people__name {
  color: var(--lv-text-primary);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}

.lv-people[data-lv-state='focus-visible'] .lv-people__entry:has(.lv-people__radio:checked) .lv-people__pick {
  outline: var(--lv-focus-width, 2px) solid var(--lv-brand-strong);
  outline-offset: 2px;
  border-radius: var(--lv-radius-sm);
}

.lv-people[data-lv-state='expanded'] .lv-people__linked .lv-people__index .lv-people__entry .lv-people__plate {
  display: grid;
  position: static;
  inline-size: auto;
  grid-template-columns: minmax(0, 6.5rem) minmax(0, 1fr);
}

.lv-people[data-lv-state='expanded'] .lv-people__linked .lv-people__index {
  padding-inline-start: 0;
  min-block-size: 0;
  gap: var(--lv-space-6);
}

.lv-people[data-lv-state='expanded'] .lv-people__linked .lv-people__index .lv-people__entry {
  gap: var(--lv-space-3);
}
/* components/act.apply/renderers/apply.astro */
.lv-apply.astro-peuzzxfq{max-width:var(--lv-apply-w, 34rem)}.lv-apply-sec--w-narrow.astro-peuzzxfq{--lv-apply-w: 26rem}.lv-apply-sec--w-prose.astro-peuzzxfq{--lv-apply-w: 34rem}.lv-apply-sec--w-wide.astro-peuzzxfq{--lv-apply-w: 46rem}.lv-apply-sec--center.astro-peuzzxfq .lv-apply.astro-peuzzxfq{margin-inline:auto}.lv-apply-sec--center.astro-peuzzxfq .lv-sec__head.astro-peuzzxfq{margin-inline:auto;text-align:center}.lv-apply-sec--card.astro-peuzzxfq{background:var(--lv-surface-sunken);padding-inline:var(--lv-space-5)}.lv-apply-sec--card.astro-peuzzxfq .lv-apply.astro-peuzzxfq{padding:clamp(var(--lv-space-6),4cqi,var(--lv-space-7));border-radius:var(--lv-radius-lg);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line),var(--lv-lift-2)}.lv-apply__deadline.astro-peuzzxfq{margin-block-start:var(--lv-space-3);font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-apply__row.astro-peuzzxfq{display:grid;gap:var(--lv-space-2);margin:0;max-width:none}.lv-apply__row.astro-peuzzxfq .lv-form__label.astro-peuzzxfq{margin:0}.lv-apply__hint.astro-peuzzxfq{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}
/* components/act.chat/renderers/entry.astro */
.lv-chat.astro-evqvf6nv{container-type:inline-size}.lv-chat__grid.astro-evqvf6nv{display:grid;gap:var(--lv-space-6);align-items:start}@container (min-width: 46rem){.lv-chat__grid.astro-evqvf6nv{grid-template-columns:minmax(0,3fr) minmax(18rem,2fr)}}.lv-chat__pitch.astro-evqvf6nv{margin-block-end:0}.lv-chat__plate.astro-evqvf6nv{display:grid;gap:var(--lv-space-4);padding:var(--lv-space-6);border-radius:var(--lv-radius-md);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-chat__state.astro-evqvf6nv{display:flex;align-items:center;gap:var(--lv-space-2);margin:0;font:var(--lv-weight-bold) var(--lv-text-2xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-tertiary)}.lv-chat__note.astro-evqvf6nv{margin:0;font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-chat__actions.astro-evqvf6nv{margin:0}.lv-chat__state.astro-evqvf6nv .lv-dot.astro-evqvf6nv{background:var(--lv-line-strong)}.lv-chat--open.astro-evqvf6nv .lv-chat__state.astro-evqvf6nv{color:var(--lv-ok-text)}.lv-chat--open.astro-evqvf6nv .lv-dot.astro-evqvf6nv{background:currentColor}.lv-chat--assistant-only.astro-evqvf6nv .lv-chat__state.astro-evqvf6nv{color:var(--lv-warn-text)}.lv-chat--assistant-only.astro-evqvf6nv .lv-dot.astro-evqvf6nv{background:currentColor}.lv-chat--dark.astro-evqvf6nv{background:var(--lv-brand-strong);padding-inline:var(--lv-space-5)}.lv-chat--dark.astro-evqvf6nv .lv-chat__pitch.astro-evqvf6nv{color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand);--lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);--lv-line-strong: color-mix(in oklab, var(--lv-text-on-brand) 52%, transparent)}.lv-chat--dark.astro-evqvf6nv .lv-chat__plate.astro-evqvf6nv{box-shadow:var(--lv-lift-3)}
/* components/act.comment/renderers/comments.astro */
.lv-comments.astro-2g6uqoxq{max-width:44rem;margin-block-end:var(--lv-space-7)}.lv-comments__item.astro-2g6uqoxq{display:grid;gap:var(--lv-space-2)}.lv-comments__meta.astro-2g6uqoxq{display:flex;gap:var(--lv-space-3);margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-comments__body.astro-2g6uqoxq{margin:0;color:var(--lv-text-primary)}.lv-comments__form.astro-2g6uqoxq{max-width:44rem}.lv-comments__notice.astro-2g6uqoxq{margin-block-end:var(--lv-space-3)}.lv-comments__row.astro-2g6uqoxq{display:grid;margin:0;max-width:none}.lv-comments__row.astro-2g6uqoxq textarea.astro-2g6uqoxq{padding-block:var(--lv-space-3);resize:vertical;font-family:inherit}
/* components/act.commit/renderers/commit-band.astro */
.lv-cta-band.astro-kbe26coo{position:relative;isolation:isolate;overflow:hidden;background:var(--lv-band-tone);color:var(--lv-text-on-brand);--lv-focus-ring: var(--lv-text-on-brand);--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-cta-band--bleed.astro-kbe26coo{padding-block:var(--lv-space-9);padding-inline:var(--lv-gutter)}.lv-cta-band--inline.astro-kbe26coo,.lv-cta-band--card.astro-kbe26coo{padding-block:var(--lv-space-8);padding-inline:var(--lv-space-6);border-radius:var(--lv-radius-lg)}.lv-cta-band__ground.astro-kbe26coo{position:absolute;inset:0;z-index:-1;pointer-events:none}.lv-cta-band__photo.astro-kbe26coo{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover}.lv-cta-band__ground.astro-kbe26coo:has(.lv-cta-band__photo)::after{content:"";position:absolute;inset:0;background:rgb(var(--lv-glass-under) / 0.72)}.lv-cta-band__light.astro-kbe26coo{position:absolute;z-index:1;inset:-20% -25%;background:radial-gradient(38% 60% at 18% 78%,var(--lv-brand-strong) 0%,transparent 70%),radial-gradient(34% 56% at 52% 96%,var(--lv-ramp-terminal) 0%,transparent 70%),radial-gradient(40% 62% at 84% 82%,var(--lv-brand-strong) 0%,transparent 70%);filter:blur(var(--lv-bloom-blur));opacity:0.55}.lv-cta-band__inner.astro-kbe26coo{display:grid;justify-items:center;gap:var(--lv-space-5);text-align:center}.lv-cta-band__zone.astro-kbe26coo{display:contents}.lv-cta-band__eyebrow.astro-kbe26coo{color:inherit}.lv-cta-band__title.astro-kbe26coo{max-inline-size:var(--lv-measure);margin:0;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:clamp(var(--lv-text-xl),6cqi,var(--lv-text-2xl));line-height:1.05;letter-spacing:var(--lv-display-tracking);text-wrap:balance;color:inherit}.lv-cta-band__lede.astro-kbe26coo{max-inline-size:var(--lv-measure);margin:0;font-size:var(--lv-text-md);color:inherit}.lv-cta-band__actions.astro-kbe26coo{justify-content:center;margin-block-start:var(--lv-space-3)}@container (max-width: 30rem){.lv-cta-band__actions.astro-kbe26coo{flex-direction:column;align-items:stretch;inline-size:100%}}.lv-cta-band__host.astro-kbe26coo{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--lv-space-2) var(--lv-space-3);margin:0;font-size:var(--lv-text-sm);color:inherit}.lv-cta-band__phone.astro-kbe26coo{display:inline-flex;align-items:center;min-block-size:44px;font-family:var(--lv-font-mono);font-feature-settings:"tnum" 1;color:inherit}.lv-cta-band__legal.astro-kbe26coo{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--lv-space-1) var(--lv-space-4);margin:0;padding-block-start:var(--lv-space-4);padding-inline:0;list-style:none;font-size:var(--lv-text-2xs);letter-spacing:var(--lv-tracking-eyebrow);color:inherit}.lv-cta-band__legal.astro-kbe26coo a.astro-kbe26coo{display:inline-flex;align-items:center;min-block-size:44px;color:inherit;text-decoration:underline;text-underline-offset:3px}@keyframes lv-cta-band-drift{from{translate:-3% 0;opacity:0.45}to{translate:3% 0;opacity:0.85}}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-cta-band__light.astro-kbe26coo{animation:lv-cta-band-drift linear both;animation-timeline:view();animation-range:cover 0% cover 100%}}}[data-lv-state="poster"] .lv-cta-band__light.astro-kbe26coo{animation:none;translate:0 0;opacity:0.55}[data-lv-state="looping"] .lv-cta-band__light.astro-kbe26coo{animation:none;translate:3% 0;opacity:0.85}[data-lv-state="paused-offscreen"] .lv-cta-band__light.astro-kbe26coo{animation:none;translate:-3% 0;opacity:0.45}
/* components/act.commit/renderers/commit.astro */
.lv-commit.astro-uj5qugmz{position:relative}.lv-commit--inline.astro-uj5qugmz{padding-block:var(--lv-space-6)}.lv-commit__inner.astro-uj5qugmz{display:grid;gap:var(--lv-space-5)}.lv-commit__panel.astro-uj5qugmz{position:relative;isolation:isolate;overflow:hidden;display:grid;gap:var(--lv-space-6);padding:var(--lv-space-7) var(--lv-space-6) var(--lv-space-6);border-radius:var(--lv-radius-lg);background:var(--lv-band-tone);color:var(--lv-text-on-brand);box-shadow:var(--lv-lift-2);--lv-focus-ring: var(--lv-text-on-brand);--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-commit--inline.astro-uj5qugmz .lv-commit__panel.astro-uj5qugmz{padding:var(--lv-space-6) var(--lv-space-5);border-radius:var(--lv-radius-md)}.lv-commit--card.astro-uj5qugmz .lv-commit__inner.astro-uj5qugmz{max-inline-size:56rem;margin-inline:auto}.lv-commit--footer.astro-uj5qugmz{padding-block-end:0}.lv-commit--footer.astro-uj5qugmz .lv-commit__panel.astro-uj5qugmz{border-end-start-radius:0;border-end-end-radius:0}.lv-commit__bg.astro-uj5qugmz{position:absolute;inset:0;z-index:-1}.lv-commit__bg.astro-uj5qugmz img.astro-uj5qugmz{inline-size:100%;block-size:100%;object-fit:cover}.lv-commit__bg.astro-uj5qugmz::after{content:"";position:absolute;inset:0;background:rgb(var(--lv-glass-under) / 0.72)}.lv-commit__head.astro-uj5qugmz{padding-block-start:var(--lv-space-5)}.lv-commit__head.astro-uj5qugmz .lv-sec__eyebrow.astro-uj5qugmz{color:var(--lv-text-on-brand)}.lv-commit__head.astro-uj5qugmz .lv-sec__lede.astro-uj5qugmz{color:var(--lv-text-on-brand)}.lv-commit__title.astro-uj5qugmz{margin:0;font-size:clamp(var(--lv-text-lg),3.4cqi,var(--lv-text-xl));letter-spacing:var(--lv-display-tracking);text-wrap:balance;color:inherit}.lv-commit__rail.astro-uj5qugmz{display:grid;gap:var(--lv-space-5);align-content:start}.lv-commit__zone--foot.astro-uj5qugmz{display:flex;flex-direction:column;gap:var(--lv-space-4)}.lv-commit__person.astro-uj5qugmz{display:flex;align-items:center;gap:var(--lv-space-4)}.lv-commit__person-text.astro-uj5qugmz{display:grid;gap:2px;margin:0;font-size:var(--lv-text-sm);color:inherit}.lv-commit__phone.astro-uj5qugmz{display:inline-flex;align-items:center;min-block-size:44px;font-family:var(--lv-font-mono);font-feature-settings:"tnum" 1;color:inherit}.lv-commit__legal.astro-uj5qugmz{display:flex;flex-wrap:wrap;gap:var(--lv-space-2) var(--lv-space-5);margin:0;padding:0;list-style:none;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-commit__legal.astro-uj5qugmz a.astro-uj5qugmz{display:inline-flex;align-items:center;min-block-size:44px;color:inherit;text-decoration:underline;text-underline-offset:3px}@container (min-width: 52rem){.lv-commit__panel.astro-uj5qugmz{grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:var(--lv-space-8) var(--lv-space-7);gap:var(--lv-space-8)}.lv-commit--inline.astro-uj5qugmz .lv-commit__panel.astro-uj5qugmz{padding:var(--lv-space-6) var(--lv-space-6)}.lv-commit__rail.astro-uj5qugmz{justify-items:start}}@keyframes lv-commit-scribe{from{scale:0.35 1}to{scale:1 1}}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-commit__head.astro-uj5qugmz::before{transform-origin:0 50%;animation:lv-commit-scribe linear both;animation-timeline:view();animation-range:entry 25% entry 100%}}}[data-lv-state="poster"] .lv-commit__head.astro-uj5qugmz::before{animation:none;scale:1 1}[data-lv-state="looping"] .lv-commit__head.astro-uj5qugmz::before{animation:none;scale:0.68 1}[data-lv-state="paused-offscreen"] .lv-commit__head.astro-uj5qugmz::before{animation:none;scale:0.35 1}
/* components/act.conversion-panel/renderers/panel-halves.astro */
.lv-cph.astro-x2yh4ead{padding:0;max-inline-size:none}.lv-cph__grid.astro-x2yh4ead{display:grid;grid-template-columns:minmax(0,1fr)}@container (min-width: 56rem){.lv-cph__grid.astro-x2yh4ead{grid-template-columns:repeat(2,minmax(0,1fr))}.lv-cph--form-left.astro-x2yh4ead .lv-cph__offer.astro-x2yh4ead{order:2}}.lv-cph__offer.astro-x2yh4ead{display:grid;grid-template-rows:1fr auto;gap:var(--lv-space-6);min-block-size:min(60svh,34rem);padding:var(--lv-space-8) var(--lv-space-5) var(--lv-space-6);background:var(--lv-surface-sunken)}@container (min-width: 56rem){.lv-cph__offer.astro-x2yh4ead{min-block-size:40rem;padding:var(--lv-space-9) var(--lv-space-8) var(--lv-space-7)}}.lv-cph__head.astro-x2yh4ead{align-self:center;max-inline-size:36rem}.lv-cph__title.astro-x2yh4ead{margin:var(--lv-space-3) 0 0;font-size:var(--lv-hero-display, clamp(var(--lv-text-2xl), 5.4cqi, 3.5rem));line-height:1;color:var(--lv-text-primary);text-wrap:balance;hyphens:auto;overflow-wrap:anywhere}.lv-cph__pitch.astro-x2yh4ead{max-inline-size:30rem;margin:var(--lv-space-5) 0 0;font-size:var(--lv-text-lg);line-height:var(--lv-leading-snug);color:var(--lv-text-primary)}.lv-cph__quote.astro-x2yh4ead{align-self:end;max-inline-size:30rem}.lv-cph__quote.astro-x2yh4ead .lv-quote__text.astro-x2yh4ead::before{content:"« "}.lv-cph__quote.astro-x2yh4ead .lv-quote__text.astro-x2yh4ead::after{content:" »"}.lv-cph__facts.astro-x2yh4ead{align-self:end;margin:0;max-inline-size:26rem}.lv-cph__fact.astro-x2yh4ead{display:flex;align-items:baseline;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-2);border-block-start:1px solid var(--lv-line);font-size:var(--lv-text-sm)}.lv-cph__fact.astro-x2yh4ead dt.astro-x2yh4ead{margin:0;color:var(--lv-text-secondary)}.lv-cph__fact.astro-x2yh4ead dd.astro-x2yh4ead{margin:0;color:var(--lv-text-primary)}.lv-cph__fact.astro-x2yh4ead dd.astro-x2yh4ead a.astro-x2yh4ead{color:inherit;text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:0.16em}.lv-cph__fact.astro-x2yh4ead dd.astro-x2yh4ead a.astro-x2yh4ead:hover{text-decoration-thickness:2px}.lv-cph--dark.astro-x2yh4ead .lv-cph__offer.astro-x2yh4ead,.lv-cph--dark.astro-x2yh4ead .lv-cph__proof.astro-x2yh4ead{background:var(--lv-brand-strong);color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand);--lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);--lv-line-strong: color-mix(in oklab, var(--lv-text-on-brand) 52%, transparent)}.lv-cph__formside.astro-x2yh4ead{display:grid;align-items:center;padding:var(--lv-space-7) var(--lv-space-5);background:var(--lv-surface)}@container (min-width: 56rem){.lv-cph__formside.astro-x2yh4ead{padding:var(--lv-space-8)}}.lv-cph__card.astro-x2yh4ead{inline-size:100%;max-inline-size:36rem;container:lv-cph-form / inline-size}.lv-cph__form.astro-x2yh4ead{max-width:none}.lv-cph__formhead.astro-x2yh4ead{margin:0 0 var(--lv-space-5);font-size:var(--lv-text-xl);font-weight:var(--lv-weight-semibold);line-height:var(--lv-leading-snug);color:var(--lv-text-primary)}.lv-cph__fields.astro-x2yh4ead{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lv-space-4)}@container lv-cph-form (min-width: 28rem){.lv-cph__fields.astro-x2yh4ead{grid-template-columns:repeat(2,minmax(0,1fr))}.lv-cph__row.astro-x2yh4ead{grid-column:1 / -1}.lv-cph__row--half.astro-x2yh4ead{grid-column:auto}}.lv-cph__row.astro-x2yh4ead{display:grid;margin:0;max-width:none}.lv-cph__row.astro-x2yh4ead .lv-field.astro-x2yh4ead{align-items:stretch}.lv-cph__row.astro-x2yh4ead textarea.astro-x2yh4ead{padding-block:var(--lv-space-3);resize:vertical;font-family:inherit}.lv-cph__form.astro-x2yh4ead .lv-form__consent.astro-x2yh4ead{margin-block-start:var(--lv-space-5)}.lv-cph__submitrow.astro-x2yh4ead{margin:var(--lv-space-5) 0 0;max-width:none}.lv-cph__submit.astro-x2yh4ead{inline-size:100%;min-block-size:52px;justify-content:center}.lv-cph__proof.astro-x2yh4ead{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-3) var(--lv-space-6);margin:0;padding:var(--lv-space-5);list-style:none;border-block-start:1px solid var(--lv-line);font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-cph__marklink.astro-x2yh4ead{display:inline-flex;align-items:center;gap:var(--lv-space-2);color:inherit;text-decoration:none}.lv-cph__markimg.astro-x2yh4ead{block-size:1.75rem;inline-size:auto;filter:grayscale(1);opacity:0.72}.lv-cph--dark.astro-x2yh4ead .lv-cph__markimg.astro-x2yh4ead{filter:grayscale(1) brightness(0) invert(1);opacity:0.72}
/* components/act.conversion-panel/renderers/panel.astro */
.lv-cpanel__grid.astro-wwybjvo6{display:grid;gap:var(--lv-space-6);align-items:center}@container (min-width: 46rem){.lv-cpanel__grid.astro-wwybjvo6{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.lv-cpanel--form-left.astro-wwybjvo6 .lv-cpanel__grid.astro-wwybjvo6>.lv-cpanel__pitch.astro-wwybjvo6{order:2}}.lv-cpanel__quote.astro-wwybjvo6{margin-block-start:var(--lv-space-5)}.lv-cpanel__quote.astro-wwybjvo6 .lv-quote__text.astro-wwybjvo6::before{content:"« ";color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-cpanel__quote.astro-wwybjvo6 .lv-quote__text.astro-wwybjvo6::after{content:" »";color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-cpanel__facts.astro-wwybjvo6{margin:var(--lv-space-5) 0 0;max-inline-size:26rem}.lv-cpanel__fact.astro-wwybjvo6{display:flex;align-items:baseline;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-3);border-block-start:1px solid var(--lv-line)}.lv-cpanel__fact.astro-wwybjvo6 dt.astro-wwybjvo6{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-cpanel__fact.astro-wwybjvo6 dd.astro-wwybjvo6{margin:0}.lv-cpanel__fact.astro-wwybjvo6 dd.astro-wwybjvo6 a.astro-wwybjvo6{color:var(--lv-text-primary);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:0.16em;transition:text-decoration-thickness var(--lv-dur-fast) var(--lv-ease)}.lv-cpanel__fact.astro-wwybjvo6 dd.astro-wwybjvo6 a.astro-wwybjvo6:hover{text-decoration-thickness:2px}.lv-cpanel__card.astro-wwybjvo6{padding:var(--lv-space-6);border-radius:var(--lv-radius-lg);background:var(--lv-surface-raised);box-shadow:var(--lv-lift-2)}.lv-cpanel__form.astro-wwybjvo6{max-width:none}.lv-cpanel__formhead.astro-wwybjvo6{margin:0;font-size:var(--lv-text-lg);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-cpanel__row.astro-wwybjvo6{display:grid;margin:0;max-width:none}.lv-cpanel__row.astro-wwybjvo6 .lv-field.astro-wwybjvo6{align-items:stretch}.lv-cpanel__row.astro-wwybjvo6 textarea.astro-wwybjvo6{padding-block:var(--lv-space-3);resize:vertical;font-family:inherit}.lv-cpanel__proof.astro-wwybjvo6{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-3) 0;margin:var(--lv-space-7) 0 0;padding:var(--lv-space-5) 0 0;list-style:none;border-block-start:1px solid var(--lv-line)}.lv-cpanel__mark.astro-wwybjvo6{display:inline-flex;align-items:center;padding-inline:var(--lv-space-5);border-inline-start:1px solid var(--lv-line);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);color:var(--lv-text-tertiary)}.lv-cpanel__mark.astro-wwybjvo6:first-child{border-inline-start:0;padding-inline-start:0}.lv-cpanel__marklink.astro-wwybjvo6{display:inline-flex;align-items:center;gap:var(--lv-space-2);color:inherit;text-decoration:none}.lv-cpanel__marklink.astro-wwybjvo6[href]:hover .lv-cpanel__markimg.astro-wwybjvo6{opacity:1}.lv-cpanel__markimg.astro-wwybjvo6{block-size:1.75rem;inline-size:auto;filter:grayscale(1);opacity:0.72}.lv-cpanel--dark.astro-wwybjvo6{background:var(--lv-brand-strong);padding-inline:var(--lv-space-5);padding-block:var(--lv-space-7)}.lv-cpanel--dark.astro-wwybjvo6 .lv-cpanel__pitch.astro-wwybjvo6,.lv-cpanel--dark.astro-wwybjvo6 .lv-cpanel__proof.astro-wwybjvo6{color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand);--lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);--lv-line-strong: color-mix(in oklab, var(--lv-text-on-brand) 52%, transparent)}.lv-cpanel--dark.astro-wwybjvo6 .lv-cpanel__card.astro-wwybjvo6{box-shadow:var(--lv-lift-3)}.lv-cpanel--dark.astro-wwybjvo6 .lv-cpanel__markimg.astro-wwybjvo6{filter:grayscale(1) brightness(0) invert(1);opacity:0.72}
/* components/act.enquire/renderers/form.astro */
.lv-enq__suggestions.astro-iyeqqpku{margin-block-end:var(--lv-space-5)}.lv-enq__form.astro-iyeqqpku{max-width:var(--lv-enq-w, 34rem)}.lv-enq--w-narrow.astro-iyeqqpku{--lv-enq-w: 26rem}.lv-enq--w-prose.astro-iyeqqpku{--lv-enq-w: 34rem}.lv-enq--w-wide.astro-iyeqqpku{--lv-enq-w: 46rem}.lv-enq--center.astro-iyeqqpku .lv-enq__form.astro-iyeqqpku{margin-inline:auto}.lv-enq--center.astro-iyeqqpku .lv-sec__head.astro-iyeqqpku{margin-inline:auto;text-align:center}.lv-enq--center.astro-iyeqqpku .lv-enq__suggestions.astro-iyeqqpku{justify-content:center}.lv-enq--card.astro-iyeqqpku{background:var(--lv-surface-sunken);padding-inline:var(--lv-space-5)}.lv-enq--card.astro-iyeqqpku .lv-enq__form.astro-iyeqqpku{padding:clamp(var(--lv-space-6),4cqi,var(--lv-space-7));border-radius:var(--lv-radius-lg);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line),var(--lv-lift-2)}.lv-enq__row.astro-iyeqqpku{display:grid;margin:0;max-width:none}.lv-enq__help.astro-iyeqqpku{margin-block:calc(-1 * var(--lv-space-1)) var(--lv-space-2);font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-enq__row.astro-iyeqqpku .lv-field.astro-iyeqqpku{align-items:stretch}.lv-enq__row.astro-iyeqqpku textarea.astro-iyeqqpku{padding-block:var(--lv-space-3);resize:vertical;font-family:inherit}.lv-enq__lede--standalone.astro-iyeqqpku,.lv-enq__consent--standalone.astro-iyeqqpku{max-width:var(--lv-measure)}.lv-enq--split.astro-iyeqqpku .lv-sec__inner.astro-iyeqqpku{display:flex;flex-direction:column;gap:var(--lv-space-7)}@container (min-width: 48rem){.lv-enq--split.astro-iyeqqpku .lv-sec__inner.astro-iyeqqpku{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:var(--lv-space-8)}.lv-enq--split.astro-iyeqqpku .lv-enq__zone--foot.astro-iyeqqpku{grid-column:1 / -1}}
/* components/act.order-confirmation/renderers/confirmation.astro */
.lv-confirm.astro-m7o3l3tq{display:grid;gap:var(--lv-space-4);max-width:var(--lv-measure)}.lv-confirm__title.astro-m7o3l3tq{margin:0;font-family:var(--lv-font-ui);font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-heading);letter-spacing:var(--lv-tracking-heading);color:var(--lv-text-primary)}.lv-confirm__lede.astro-m7o3l3tq{margin:0;color:var(--lv-text-secondary);line-height:var(--lv-leading-normal)}.lv-confirm__status.astro-m7o3l3tq{margin:0;color:var(--lv-text-tertiary)}.lv-confirm__summary.astro-m7o3l3tq{display:grid;gap:var(--lv-space-2);margin:0;padding:var(--lv-space-5);border-radius:var(--lv-radius-md);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-confirm__row.astro-m7o3l3tq{display:flex;justify-content:space-between;gap:var(--lv-space-4);margin:0}.lv-confirm__row--total.astro-m7o3l3tq{padding-block-start:var(--lv-space-2);border-block-start:1px solid var(--lv-line-strong);font-weight:var(--lv-weight-semibold)}.lv-confirm__lines.astro-m7o3l3tq{display:grid;gap:var(--lv-space-1);margin:var(--lv-space-2) 0;padding:0;list-style:none}.lv-confirm__receipt.astro-m7o3l3tq{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-confirm__actions.astro-m7o3l3tq{display:flex;flex-wrap:wrap;gap:var(--lv-space-3);margin:0}.lv-confirm__actions.astro-m7o3l3tq .astro-m7o3l3tq[hidden]{display:none}@media print{.lv-confirm__actions.astro-m7o3l3tq{display:none}}
/* components/act.qualify/renderers/questionnaire.astro */
.lv-qual__row--split.astro-lsy7l7r4{display:grid;gap:var(--lv-space-6);align-items:start}@container (min-width: 52rem){.lv-qual__row--split.astro-lsy7l7r4{grid-template-columns:minmax(0,7fr) minmax(15rem,5fr);gap:var(--lv-space-8)}}.lv-qual__main.astro-lsy7l7r4>form.astro-lsy7l7r4{padding:clamp(var(--lv-space-5),4cqi,var(--lv-space-7));border-radius:var(--lv-radius-lg);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line),var(--lv-lift-1)}.lv-qual__proof.astro-lsy7l7r4{margin:0;padding-block-start:var(--lv-space-3);border-block-start:1px solid var(--lv-line-strong)}.lv-qual__proof.astro-lsy7l7r4 .lv-quote__text.astro-lsy7l7r4::before{content:"« ";color:var(--lv-text-tertiary)}.lv-qual__proof.astro-lsy7l7r4 .lv-quote__text.astro-lsy7l7r4::after{content:" »";color:var(--lv-text-tertiary)}.lv-qual__form.astro-lsy7l7r4{max-width:38rem}.lv-qual__step.astro-lsy7l7r4{border:0;margin:0;padding:0}.lv-qual__step.astro-lsy7l7r4 legend.astro-lsy7l7r4{padding:0;margin-block-end:var(--lv-space-4)}.lv-qual__questions.astro-lsy7l7r4{display:grid;gap:var(--lv-space-4)}.lv-qual__q.astro-lsy7l7r4{display:grid;margin:0;max-width:none}.lv-qual__opt.astro-lsy7l7r4{cursor:pointer}.lv-qual__opt.astro-lsy7l7r4:has(input:checked){background:var(--lv-brand-soft);box-shadow:inset 0 0 0 1px var(--lv-brand)}
/* components/act.request-quote/renderers/quote.astro */
.lv-quote.astro-56mo3ier{display:grid;gap:var(--lv-space-6);max-width:44rem}.lv-rq__sla.astro-56mo3ier{margin-block-start:var(--lv-space-3);font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-quote__line.astro-56mo3ier{display:grid;gap:var(--lv-space-2) var(--lv-space-4);align-items:center}.lv-quote__line.astro-56mo3ier label.astro-56mo3ier{margin:0}.lv-quote__qty.astro-56mo3ier{display:flex;align-items:center;gap:var(--lv-space-2)}.lv-quote__qty.astro-56mo3ier .lv-field.astro-56mo3ier{inline-size:7rem}.lv-quote__unit.astro-56mo3ier{font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-quote__contact.astro-56mo3ier{max-width:none}.lv-quote__field.astro-56mo3ier{display:grid;margin:0;max-width:none}@container (min-width: 40rem){.lv-quote__line.astro-56mo3ier{grid-template-columns:minmax(0,1fr) auto}.lv-quote__contact.astro-56mo3ier{grid-template-columns:repeat(2,minmax(0,1fr))}}.lv-rq--card.astro-56mo3ier{padding-inline:var(--lv-space-5)}.lv-rq--card.astro-56mo3ier .lv-rq__inner.astro-56mo3ier{padding:clamp(var(--lv-space-6),5cqi,var(--lv-space-8));border-radius:var(--lv-radius-lg);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line),var(--lv-lift-2)}.lv-rq--band.astro-56mo3ier{position:relative;overflow:hidden;padding-inline:var(--lv-space-5);background:var(--lv-brand-strong);color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: color-mix(in oklab, var(--lv-text-on-brand) 78%, transparent);--lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);--lv-line-strong: color-mix(in oklab, var(--lv-text-on-brand) 52%, transparent)}.lv-rq--band.astro-56mo3ier::before{content:"";position:absolute;inset-block-start:-30%;inset-inline-end:-12%;inline-size:55%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,color-mix(in oklab,var(--lv-text-on-brand) 14%,transparent) 0%,transparent 65%);animation:lv-rq-drift 26s var(--lv-ease) infinite alternate;pointer-events:none}.lv-rq--band.astro-56mo3ier .lv-rq__inner.astro-56mo3ier{position:relative}@keyframes lv-rq-drift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-14%,10%,0) scale(1.15)}}@media (prefers-reduced-motion: reduce){.lv-rq--band.astro-56mo3ier::before{animation:none}}
/* components/act.schedule/renderers/booking.astro */
.lv-booking__row--split.astro-q7vlq4ck{display:grid;gap:var(--lv-space-6);align-items:start}@container (min-width: 52rem){.lv-booking__row--split.astro-q7vlq4ck{grid-template-columns:minmax(0,7fr) minmax(15rem,5fr);gap:var(--lv-space-8)}}.lv-booking__proof.astro-q7vlq4ck{margin:0;padding-block-start:var(--lv-space-3);border-block-start:1px solid var(--lv-line-strong)}.lv-booking__proof.astro-q7vlq4ck .lv-quote__text.astro-q7vlq4ck::before{content:"« ";color:var(--lv-text-tertiary)}.lv-booking__proof.astro-q7vlq4ck .lv-quote__text.astro-q7vlq4ck::after{content:" »";color:var(--lv-text-tertiary)}.lv-booking.astro-q7vlq4ck{max-width:40rem}.lv-booking__deposit.astro-q7vlq4ck{margin-block-end:var(--lv-space-5)}.lv-booking__group.astro-q7vlq4ck{border:0;margin:0;padding:0}.lv-booking__group.astro-q7vlq4ck legend.astro-q7vlq4ck{padding:0;margin-block-end:var(--lv-space-2)}.lv-booking__opt.astro-q7vlq4ck{cursor:pointer}.lv-booking__opt.astro-q7vlq4ck:has(input:checked){background:var(--lv-brand-soft);box-shadow:inset 0 0 0 1px var(--lv-brand)}.lv-booking__party.astro-q7vlq4ck{display:grid;margin:0;max-width:12rem}
/* components/act.schedule/renderers/indlejret.astro */
.lv-booking__row--split.astro-gnx2osg4{display:grid;gap:var(--lv-space-6);align-items:start}@container (min-width: 52rem){.lv-booking__row--split.astro-gnx2osg4{grid-template-columns:minmax(0,7fr) minmax(15rem,5fr);gap:var(--lv-space-8)}}.lv-booking__proof.astro-gnx2osg4{margin:0;padding-block-start:var(--lv-space-3);border-block-start:1px solid var(--lv-line-strong)}.lv-booking__proof.astro-gnx2osg4 .lv-quote__text.astro-gnx2osg4::before{content:"« ";color:var(--lv-text-tertiary)}.lv-booking__proof.astro-gnx2osg4 .lv-quote__text.astro-gnx2osg4::after{content:" »";color:var(--lv-text-tertiary)}.lv-booking.astro-gnx2osg4{max-width:40rem}.lv-booking__deposit.astro-gnx2osg4{margin-block-end:var(--lv-space-5)}.lv-booking__group.astro-gnx2osg4{border:0;margin:0;padding:0}.lv-booking__group.astro-gnx2osg4 legend.astro-gnx2osg4{padding:0;margin-block-end:var(--lv-space-2)}.lv-booking__opt.astro-gnx2osg4{cursor:pointer}.lv-booking__opt.astro-gnx2osg4:has(input:checked){background:var(--lv-brand-soft);box-shadow:inset 0 0 0 1px var(--lv-brand)}.lv-booking__party.astro-gnx2osg4{display:grid;margin:0;max-width:12rem}.lv-bin.astro-gnx2osg4 .lv-sec__inner.astro-gnx2osg4{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lv-space-6);align-items:start}.lv-bin.astro-gnx2osg4 .lv-booking__row.astro-gnx2osg4,.lv-bin.astro-gnx2osg4 .astro-gnx2osg4[data-lv-form-shell]{min-inline-size:0}@container (min-width: 56rem){.lv-bin.astro-gnx2osg4 .lv-sec__inner.astro-gnx2osg4{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--lv-space-8)}.lv-bin.astro-gnx2osg4 .lv-sec__head.astro-gnx2osg4,.lv-bin.astro-gnx2osg4 .lv-booking__deposit.astro-gnx2osg4{grid-column:1}.lv-bin.astro-gnx2osg4 .lv-booking__row.astro-gnx2osg4{grid-column:2;grid-row:1 / span 3}.lv-bin.astro-gnx2osg4 .lv-booking__row--split.astro-gnx2osg4{grid-template-columns:minmax(0,1fr)}}
/* components/act.search/renderers/search-console.astro */
.lv-srch__inner.astro-7v3agy4f{display:grid;gap:var(--lv-space-6)}.lv-srch__head.astro-7v3agy4f{margin-block-end:0}.lv-srch__console.astro-7v3agy4f{display:grid;gap:var(--lv-space-5);min-inline-size:0}.lv-srch__tabs.astro-7v3agy4f{display:flex;flex-wrap:wrap;gap:var(--lv-space-3) var(--lv-space-5);margin:0;padding:0;border:0;min-inline-size:0}.lv-srch__tab.astro-7v3agy4f{display:grid;justify-items:center;gap:var(--lv-space-2);min-inline-size:3.5rem;cursor:pointer;font:var(--lv-weight-medium) var(--lv-text-sm) / 1.2 var(--lv-font-ui);color:var(--lv-text-primary)}.lv-srch__tile.astro-7v3agy4f{display:grid;place-items:center;inline-size:3.5rem;block-size:3.5rem;border:1px solid var(--lv-line-control);border-radius:var(--lv-radius-md);background:var(--lv-surface);color:var(--lv-text-primary);box-shadow:var(--lv-lift-1);transition:background-color var(--lv-dur-state, 200ms) var(--lv-ease, cubic-bezier(0.22, 1, 0.36, 1)),color var(--lv-dur-state, 200ms) var(--lv-ease, cubic-bezier(0.22, 1, 0.36, 1)),transform var(--lv-dur-state, 200ms) var(--lv-ease, cubic-bezier(0.22, 1, 0.36, 1))}.lv-srch__tile.astro-7v3agy4f svg{inline-size:1.4rem;block-size:1.4rem}.lv-srch__tab.astro-7v3agy4f:hover .lv-srch__tile.astro-7v3agy4f{transform:translateY(-1px)}.lv-srch__tab.astro-7v3agy4f:has(.lv-srch__radio:checked) .lv-srch__tile.astro-7v3agy4f{border-color:var(--lv-brand-strong);background:var(--lv-brand-strong);color:var(--lv-text-on-brand)}.lv-srch__tab.astro-7v3agy4f:has(.lv-srch__radio:focus-visible) .lv-srch__tile.astro-7v3agy4f{outline:var(--lv-focus-width, 2px) solid var(--lv-focus-ring, currentColor);outline-offset:var(--lv-focus-offset, 2px)}.lv-srch__tab.astro-7v3agy4f:active .lv-srch__tile.astro-7v3agy4f{transform:scale(0.97)}@container (max-width: 40rem){.lv-srch__tabs.astro-7v3agy4f{display:grid;grid-template-columns:repeat(auto-fill,minmax(4.75rem,1fr));gap:var(--lv-space-3) var(--lv-space-2)}.lv-srch__tab.astro-7v3agy4f{min-inline-size:0;text-align:center;font-size:var(--lv-text-xs)}.lv-srch__tab-label.astro-7v3agy4f{max-inline-size:100%;overflow-wrap:break-word}}.lv-srch__panel.astro-7v3agy4f{display:grid;gap:var(--lv-space-3);margin:0;min-inline-size:0}.lv-srch__panel.astro-7v3agy4f:not(:first-of-type){display:none}@supports selector(:has(*)){.lv-srch.astro-7v3agy4f:has(.lv-srch__radio:checked) .lv-srch__panel.astro-7v3agy4f{display:none}.lv-srch.astro-7v3agy4f:has(.lv-srch__tab:nth-of-type(1) .lv-srch__radio:checked) .lv-srch__panel.astro-7v3agy4f:nth-of-type(1),.lv-srch.astro-7v3agy4f:has(.lv-srch__tab:nth-of-type(2) .lv-srch__radio:checked) .lv-srch__panel.astro-7v3agy4f:nth-of-type(2),.lv-srch.astro-7v3agy4f:has(.lv-srch__tab:nth-of-type(3) .lv-srch__radio:checked) .lv-srch__panel.astro-7v3agy4f:nth-of-type(3),.lv-srch.astro-7v3agy4f:has(.lv-srch__tab:nth-of-type(4) .lv-srch__radio:checked) .lv-srch__panel.astro-7v3agy4f:nth-of-type(4),.lv-srch.astro-7v3agy4f:has(.lv-srch__tab:nth-of-type(5) .lv-srch__radio:checked) .lv-srch__panel.astro-7v3agy4f:nth-of-type(5),.lv-srch.astro-7v3agy4f:has(.lv-srch__tab:nth-of-type(6) .lv-srch__radio:checked) .lv-srch__panel.astro-7v3agy4f:nth-of-type(6){display:grid}}.lv-srch__toggles.astro-7v3agy4f{display:flex;flex-wrap:wrap;gap:var(--lv-space-1) var(--lv-space-5)}.lv-srch__toggle.astro-7v3agy4f{position:relative;display:inline-flex;align-items:center}.lv-srch__toggle-select.astro-7v3agy4f{min-block-size:44px;margin:0;padding:0 var(--lv-space-5) 0 0;border:0;background:transparent;font:var(--lv-weight-medium) var(--lv-text-sm) / 1.2 var(--lv-font-ui);color:var(--lv-text-primary);cursor:pointer;-webkit-appearance:none;appearance:none}.lv-srch__toggle-select.astro-7v3agy4f:focus-visible{outline:var(--lv-focus-width, 2px) solid var(--lv-focus-ring, currentColor);outline-offset:2px}.lv-srch__chevron.astro-7v3agy4f{position:absolute;inset-inline-end:0;inline-size:0.9rem;block-size:0.9rem;fill:none;stroke:currentColor;stroke-width:1.6;color:var(--lv-text-secondary);pointer-events:none}.lv-srch__bar.astro-7v3agy4f{display:grid;min-inline-size:0;padding:var(--lv-space-2);border:1px solid var(--lv-line-control);border-radius:var(--lv-radius-md);background:var(--lv-surface);box-shadow:var(--lv-lift-2)}.lv-srch--card.astro-7v3agy4f .lv-srch__console.astro-7v3agy4f{max-inline-size:34rem}.lv-srch__cell.astro-7v3agy4f{position:relative;display:grid;align-content:center;gap:2px;min-inline-size:0;min-block-size:3.5rem;padding:var(--lv-space-2) var(--lv-space-3);border-radius:var(--lv-radius-sm)}.lv-srch__cell.astro-7v3agy4f+.lv-srch__cell.astro-7v3agy4f{box-shadow:0 -1px 0 var(--lv-line)}.lv-srch__cell.astro-7v3agy4f:focus-within{outline:var(--lv-focus-width, 2px) solid var(--lv-focus-ring, currentColor);outline-offset:calc(-1 * var(--lv-focus-width, 2px))}.lv-srch__label.astro-7v3agy4f{font:var(--lv-weight-medium) var(--lv-text-xs) / 1.2 var(--lv-font-ui);color:var(--lv-text-secondary);cursor:pointer}.lv-srch__control.astro-7v3agy4f{inline-size:100%;min-inline-size:0;margin:0;padding:0;border:0;background:transparent;outline:none;font:var(--lv-weight-regular) var(--lv-text-md) / 1.4 var(--lv-font-ui);color:var(--lv-text-primary);-webkit-appearance:none;appearance:none}.lv-srch__control.astro-7v3agy4f::placeholder{color:var(--lv-text-tertiary);opacity:1}.lv-srch__control.astro-7v3agy4f.lv-num{font-family:var(--lv-font-mono);font-feature-settings:"tnum" 1}select.astro-7v3agy4f.lv-srch__control{padding-inline-end:var(--lv-space-5);cursor:pointer}.lv-srch__cell.astro-7v3agy4f .lv-srch__chevron.astro-7v3agy4f{inset-inline-end:var(--lv-space-3);inset-block-end:calc(var(--lv-space-2) + 0.3rem)}.lv-srch__submit.astro-7v3agy4f{margin-block-start:var(--lv-space-2)}@container (min-width: 64rem){.lv-srch--bar.astro-7v3agy4f .lv-srch__bar.astro-7v3agy4f{display:flex;align-items:stretch;gap:0}.lv-srch--bar.astro-7v3agy4f .lv-srch__cell.astro-7v3agy4f{flex:1 1 0}.lv-srch--bar.astro-7v3agy4f .lv-srch__cell--text.astro-7v3agy4f{flex:1.6 1 0}.lv-srch--bar.astro-7v3agy4f .lv-srch__cell.astro-7v3agy4f+.lv-srch__cell.astro-7v3agy4f{box-shadow:-1px 0 0 var(--lv-line)}.lv-srch--bar.astro-7v3agy4f .lv-srch__submit.astro-7v3agy4f{flex:none;align-self:stretch;margin-block-start:0;margin-inline-start:var(--lv-space-2)}}@media (prefers-reduced-motion: reduce){.lv-srch__tile.astro-7v3agy4f{transition:none}.lv-srch__tab.astro-7v3agy4f:hover .lv-srch__tile.astro-7v3agy4f,.lv-srch__tab.astro-7v3agy4f:active .lv-srch__tile.astro-7v3agy4f{transform:none}}
/* components/act.share/renderers/share.astro */
.lv-share.astro-ltwyvqdk{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-3);padding-block:var(--lv-space-4);border-block:1px solid var(--lv-line)}.lv-share__label.astro-ltwyvqdk{font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-tertiary)}
/* components/act.subscribe/renderers/subscribe-colophon.astro */
.lv-sub-col__column.astro-o4lfb76u{display:grid;justify-items:center;gap:var(--lv-space-4);max-inline-size:22rem;margin-inline:auto;text-align:center}.lv-sub-col--sidebar.astro-o4lfb76u .lv-sub-col__column.astro-o4lfb76u{max-inline-size:18rem}.lv-sub-col__copy.astro-o4lfb76u{display:grid;justify-items:center;gap:var(--lv-space-2)}.lv-sub-col__label.astro-o4lfb76u,.lv-sub-col__eyebrow.astro-o4lfb76u{margin:0;font:var(--lv-btn-font, var(--lv-weight-medium) var(--lv-text-xs) / 1 var(--lv-font-ui));font-size:var(--lv-text-2xs, var(--lv-text-xs));line-height:var(--lv-leading-snug);letter-spacing:max(0.2em,var(--lv-btn-tracking, 0.2em));text-transform:uppercase;text-wrap:balance;color:var(--lv-text-primary)}.lv-sub-col__eyebrow.astro-o4lfb76u{color:var(--lv-text-secondary)}.lv-sub-col__promise.astro-o4lfb76u{margin:0;max-inline-size:40ch;font-size:var(--lv-text-sm);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary);text-wrap:pretty}.lv-sub-col__shell.astro-o4lfb76u,.lv-sub-col__form.astro-o4lfb76u{display:grid;gap:var(--lv-space-2);inline-size:100%}.lv-sub-col__row.astro-o4lfb76u{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--lv-space-2)}.lv-sub-col__field.astro-o4lfb76u{border-radius:var(--lv-radius-sm);box-shadow:inset 0 0 0 1px var(--lv-line-strong);text-align:start}.lv-sub-col__field.astro-o4lfb76u input.astro-o4lfb76u{font-size:var(--lv-text-sm)}.lv-sub-col__field.astro-o4lfb76u input.astro-o4lfb76u::placeholder{color:var(--lv-text-secondary);opacity:1}.lv-sub-col__submit.astro-o4lfb76u{min-block-size:var(--lv-field-height, 44px)}.lv-sub-col__privacy.astro-o4lfb76u{color:inherit;text-decoration:underline;text-underline-offset:0.15em}.lv-sub-col__consent.astro-o4lfb76u{margin:0;font-size:var(--lv-text-2xs, var(--lv-text-xs));line-height:var(--lv-leading-snug);color:var(--lv-text-secondary);text-wrap:pretty}@container (max-width: 18rem){.lv-sub-col__row.astro-o4lfb76u{grid-template-columns:minmax(0,1fr)}}
/* components/act.subscribe/renderers/subscribe.astro */
.lv-sub--card.astro-qe2sqeib{padding-inline:var(--lv-space-5)}.lv-sub--card.astro-qe2sqeib .lv-sub__inner.astro-qe2sqeib{padding:clamp(var(--lv-space-6),4cqi,var(--lv-space-7));border-radius:var(--lv-radius-lg);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line),var(--lv-lift-1)}.lv-sub--banner.astro-qe2sqeib{background:var(--lv-surface-sunken);padding-inline:var(--lv-space-5)}.lv-sub__inner.astro-qe2sqeib{display:grid;gap:var(--lv-space-5);align-items:center}.lv-sub__copy.astro-qe2sqeib{display:grid;gap:var(--lv-space-2)}.lv-sub__form-shell.astro-qe2sqeib{display:grid;gap:var(--lv-space-3);max-width:30rem}.lv-sub__form.astro-qe2sqeib{display:grid;gap:var(--lv-space-2)}.lv-sub__row.astro-qe2sqeib{display:flex;flex-wrap:wrap;gap:var(--lv-space-3)}.lv-sub__row.astro-qe2sqeib .lv-field.astro-qe2sqeib{flex:1 1 14rem}@container (min-width: 52rem){.lv-sub--banner.astro-qe2sqeib .lv-sub__inner.astro-qe2sqeib,.lv-sub--inline.astro-qe2sqeib .lv-sub__inner.astro-qe2sqeib{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.lvt-shell:has(> .lv-sub--line){padding-block:0}.lv-sub--line.astro-qe2sqeib{position:relative;padding-block:var(--lv-space-6);background:var(--lv-surface-sunken);box-shadow:0 0 0 100vmax var(--lv-surface-sunken);clip-path:inset(0 -100vmax)}.lv-sub--line.astro-qe2sqeib::before{content:"";position:absolute;inset:0 -100vmax auto;block-size:1px;background:var(--lv-line)}.lv-sub--line.astro-qe2sqeib .lv-sub__inner.astro-qe2sqeib{gap:var(--lv-space-4)}.lv-sub--line.astro-qe2sqeib .lv-sub__copy.astro-qe2sqeib{gap:var(--lv-space-1)}.lv-sub--line.astro-qe2sqeib .lv-sub__promise.astro-qe2sqeib{margin:0;max-inline-size:48ch;font-size:var(--lv-text-sm);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary);text-wrap:pretty}.lv-sub--line.astro-qe2sqeib .lv-sub__form-shell.astro-qe2sqeib{inline-size:100%}@container (min-width: 52rem){.lv-sub--line.astro-qe2sqeib .lv-sub__inner.astro-qe2sqeib{grid-template-columns:minmax(0,1fr) minmax(0,30rem);column-gap:var(--lv-space-7)}.lv-sub--line.astro-qe2sqeib .lv-sub__form-shell.astro-qe2sqeib{justify-self:end}}.lv-form__consent.astro-qe2sqeib .lv-sub__privacy.astro-qe2sqeib{color:inherit;text-decoration:underline;text-underline-offset:0.15em}
/* components/act.transact/renderers/cart.astro */
.lv-cart.astro-b4hgcvhr{display:grid;gap:var(--lv-space-5);max-width:40rem}.lv-cart__filled.astro-b4hgcvhr:not([hidden]){display:grid;gap:var(--lv-space-5)}.lv-cart__filled.astro-b4hgcvhr>p.astro-b4hgcvhr{margin:0}.lv-cart__lines.astro-b4hgcvhr{display:grid;gap:var(--lv-space-3);margin:0;padding:0;list-style:none}.lv-cart.astro-b4hgcvhr .lv-cart__line{display:grid;grid-template-columns:48px minmax(0,1fr) 4rem minmax(7.5rem,max-content) auto;gap:var(--lv-space-3);align-items:center;padding-block-end:var(--lv-space-3);border-block-end:1px solid var(--lv-line)}.lv-cart.astro-b4hgcvhr .lv-cart__name a{color:var(--lv-text-primary);text-decoration:none}.lv-cart.astro-b4hgcvhr .lv-cart__name a:hover{text-decoration:underline}.lv-cart.astro-b4hgcvhr .lv-cart__name a:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-cart.astro-b4hgcvhr .lv-cart__qty{inline-size:100%;min-inline-size:0;padding:var(--lv-space-2);border:0;font:inherit;border-radius:var(--lv-radius-sm);box-shadow:inset 0 0 0 1px var(--lv-line-strong);background:var(--lv-surface);color:var(--lv-text-primary);text-align:center}.lv-cart.astro-b4hgcvhr .lv-cart__qty:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-cart.astro-b4hgcvhr .lv-cart__price{text-align:end;color:var(--lv-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.lv-cart.astro-b4hgcvhr .lv-cart__remove{padding:var(--lv-space-2) var(--lv-space-3);border:0;border-radius:var(--lv-radius-sm);background:transparent;color:var(--lv-text-tertiary);font-size:var(--lv-text-xs);cursor:pointer;min-block-size:44px}.lv-cart.astro-b4hgcvhr .lv-cart__remove:hover{color:var(--lv-text-primary);background:var(--lv-surface-sunken)}.lv-cart.astro-b4hgcvhr .lv-cart__remove:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}@media (max-width: 30rem){.lv-cart.astro-b4hgcvhr .lv-cart__line{grid-template-columns:40px minmax(0,1fr) 3.5rem auto;gap:var(--lv-space-2)}.lv-cart.astro-b4hgcvhr .lv-cart__price{grid-column:2;grid-row:2;text-align:start}.lv-cart.astro-b4hgcvhr .lv-cart__thumb{inline-size:40px;block-size:40px}}.lv-cart.astro-b4hgcvhr .lv-cart__thumb{inline-size:48px;block-size:48px;border-radius:var(--lv-radius-sm);object-fit:cover;background:var(--lv-surface-sunken);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-cart.astro-b4hgcvhr .lv-cart__name{display:grid;gap:2px;min-inline-size:0;overflow-wrap:anywhere}.lv-cart.astro-b4hgcvhr .lv-cart__variant{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-cart.astro-b4hgcvhr .lv-cart__warn{font-size:var(--lv-text-xs);color:var(--lv-bad-text, var(--lv-text-primary))}.lv-cart__pair.astro-b4hgcvhr{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:var(--lv-space-4)}.lv-cart__nudge.astro-b4hgcvhr{margin:0;padding:var(--lv-space-3) var(--lv-space-4);border-radius:var(--lv-radius-md);background:var(--lv-brand-soft, var(--lv-surface-sunken));color:var(--lv-text-primary);font-size:var(--lv-text-sm)}.lv-cart__nudge.astro-b4hgcvhr[hidden]{display:none}.lv-cart__accept.astro-b4hgcvhr{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:var(--lv-space-3);font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-cart__check.astro-b4hgcvhr{inline-size:22px;block-size:22px;margin:1px 0 0;accent-color:var(--lv-brand)}.lv-cart__check.astro-b4hgcvhr:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-cart__accept.astro-b4hgcvhr label.astro-b4hgcvhr{cursor:pointer}.lv-cart__accept.astro-b4hgcvhr a.astro-b4hgcvhr{color:var(--lv-text-link, var(--lv-brand));text-underline-offset:0.2em}.lv-cart__accept.astro-b4hgcvhr a.astro-b4hgcvhr:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-cart__totals.astro-b4hgcvhr{display:grid;gap:var(--lv-space-2);margin:0;padding-block-start:var(--lv-space-3);border-block-start:1px solid var(--lv-line)}.lv-cart__totalrow.astro-b4hgcvhr{display:flex;justify-content:space-between;gap:var(--lv-space-4);margin:0;color:var(--lv-text-secondary)}.lv-cart__amount.astro-b4hgcvhr{font-variant-numeric:tabular-nums;white-space:nowrap}.lv-cart.astro-b4hgcvhr .lv-cart__qty{font-variant-numeric:tabular-nums}.lv-cart__totalrow--included.astro-b4hgcvhr{font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-cart__totalrow--total.astro-b4hgcvhr{padding-block-start:var(--lv-space-2);border-block-start:1px solid var(--lv-line-strong);font-size:var(--lv-text-lg);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-cart__field.astro-b4hgcvhr{display:grid;gap:var(--lv-space-2)}.lv-cart__totalrow.astro-b4hgcvhr[hidden],.lv-cart__field.astro-b4hgcvhr[hidden]{display:none}.lv-cart__terms.astro-b4hgcvhr{display:grid;gap:var(--lv-space-1);margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-cart__demo.astro-b4hgcvhr{margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-cart__pickup.astro-b4hgcvhr:not([hidden]){display:grid;gap:var(--lv-space-3);min-inline-size:0;margin:0;padding:0;border:0}.lv-cart__pickup.astro-b4hgcvhr>legend.astro-b4hgcvhr{padding:0;margin-block-end:var(--lv-space-2)}.lv-cart__pickup-search.astro-b4hgcvhr{display:grid;grid-template-columns:minmax(0,12rem) auto;align-items:end;gap:var(--lv-space-3)}.lv-cart__pickup-ziplabel.astro-b4hgcvhr{font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-cart__pickup-search.astro-b4hgcvhr .lv-btn.astro-b4hgcvhr{min-block-size:44px}@media (max-width: 30rem){.lv-cart__pickup-search.astro-b4hgcvhr{grid-template-columns:minmax(0,1fr)}}.lv-cart__pickup-status.astro-b4hgcvhr{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-cart__pickup-status.astro-b4hgcvhr[data-tone=warn]{color:var(--lv-warn-text, var(--lv-text-primary))}.lv-cart__pickup-status.astro-b4hgcvhr[hidden]{display:none}.lv-cart__pickup-list.astro-b4hgcvhr{display:grid;border-block-start:1px solid var(--lv-line)}.lv-cart__pickup-list.astro-b4hgcvhr:empty{display:none}.lv-cart.astro-b4hgcvhr .lv-cart__pickup-option{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:var(--lv-space-3);min-block-size:44px;padding:var(--lv-space-3) var(--lv-space-2);border-block-end:1px solid var(--lv-line);cursor:pointer}.lv-cart.astro-b4hgcvhr .lv-cart__pickup-option:has(input:checked){background:var(--lv-surface-sunken)}.lv-cart.astro-b4hgcvhr .lv-cart__pickup-option:has(input:checked) .lv-cart__pickup-name{font-weight:var(--lv-weight-semibold)}.lv-cart.astro-b4hgcvhr .lv-cart__pickup-option input{inline-size:20px;block-size:20px;margin:2px 0 0;accent-color:var(--lv-brand)}.lv-cart.astro-b4hgcvhr .lv-cart__pickup-option input:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-cart.astro-b4hgcvhr .lv-cart__pickup-text{display:grid;gap:2px;min-inline-size:0;overflow-wrap:anywhere}.lv-cart.astro-b4hgcvhr .lv-cart__pickup-name{color:var(--lv-text-primary)}.lv-cart.astro-b4hgcvhr .lv-cart__pickup-addr{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-cart.astro-b4hgcvhr .lv-cart__pickup-dist{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap}.lv-cart__giftcard.astro-b4hgcvhr:not([hidden]){display:grid;gap:var(--lv-space-3);min-inline-size:0;margin:0;padding:0;border:0}.lv-cart__giftcard.astro-b4hgcvhr>legend.astro-b4hgcvhr{padding:0;margin-block-end:var(--lv-space-2)}.lv-cart__giftcard-entry.astro-b4hgcvhr{display:grid;grid-template-columns:minmax(0,16rem) auto;align-items:end;gap:var(--lv-space-3)}.lv-cart__giftcard-codelabel.astro-b4hgcvhr{font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-cart__giftcard-entry.astro-b4hgcvhr input.astro-b4hgcvhr{text-transform:uppercase}.lv-cart__giftcard-entry.astro-b4hgcvhr .lv-btn.astro-b4hgcvhr{min-block-size:44px}.lv-cart__giftcard.astro-b4hgcvhr[aria-busy=true] .lv-cart__giftcard-entry.astro-b4hgcvhr .lv-btn.astro-b4hgcvhr{cursor:progress}@media (max-width: 30rem){.lv-cart__giftcard-entry.astro-b4hgcvhr{grid-template-columns:minmax(0,1fr)}}.lv-cart__giftcard-status.astro-b4hgcvhr{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-cart__giftcard-status.astro-b4hgcvhr[data-tone=warn]{color:var(--lv-warn-text, var(--lv-text-primary))}.lv-cart__giftcard-status.astro-b4hgcvhr[hidden]{display:none}.lv-cart__giftcard-list.astro-b4hgcvhr{display:grid;margin:0;padding:0;list-style:none;border-block-start:1px solid var(--lv-line)}.lv-cart__giftcard-list.astro-b4hgcvhr:empty{display:none}.lv-cart.astro-b4hgcvhr .lv-cart__giftcard-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--lv-space-3);min-block-size:44px;padding-inline-start:var(--lv-space-2);border-block-end:1px solid var(--lv-line)}.lv-cart.astro-b4hgcvhr .lv-cart__giftcard-name{color:var(--lv-text-primary);overflow-wrap:anywhere}.lv-cart.astro-b4hgcvhr .lv-cart__giftcard-cover{color:var(--lv-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.lv-cart.astro-b4hgcvhr .lv-cart__totalrow--giftcard{display:flex;justify-content:space-between;gap:var(--lv-space-4);margin:0;color:var(--lv-text-secondary)}.lv-cart.astro-b4hgcvhr .lv-cart__totalrow--giftcard dd{margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}.lv-cart__totalrow--due.astro-b4hgcvhr{padding-block-start:var(--lv-space-2);border-block-start:1px solid var(--lv-line-strong);font-size:var(--lv-text-lg);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-cart__giftcard-covered.astro-b4hgcvhr{margin:0;padding:var(--lv-space-3) var(--lv-space-4);border-radius:var(--lv-radius-md);background:var(--lv-ok-surface);color:var(--lv-ok-text);font-size:var(--lv-text-sm)}.lv-cart__giftcard-covered.astro-b4hgcvhr[hidden]{display:none}.lv-cart__status.astro-b4hgcvhr[data-tone=warn]{padding:var(--lv-space-4);border-radius:var(--lv-radius-md);background:var(--lv-warn-surface);color:var(--lv-warn-text)}.lv-cart__status.astro-b4hgcvhr[data-tone=bad]{padding:var(--lv-space-4);border-radius:var(--lv-radius-md);background:var(--lv-bad-surface);color:var(--lv-bad-text)}
/* components/assert.personal-note/renderers/note.astro */
.lv-pnote.astro-6zfqlbxp{max-width:var(--lv-measure)}.lv-pnote__by.astro-6zfqlbxp{display:flex;align-items:center;gap:var(--lv-space-4);margin-block-start:var(--lv-space-6);padding-block-start:var(--lv-space-5);border-block-start:1px solid var(--lv-line)}.lv-pnote__portrait.astro-6zfqlbxp{--tick: 0.5rem;display:inline-flex;flex:none;padding:3px;background:linear-gradient(var(--lv-line-strong),var(--lv-line-strong)) left top / var(--tick) 1px no-repeat,linear-gradient(var(--lv-line-strong),var(--lv-line-strong)) left top / 1px var(--tick) no-repeat,linear-gradient(var(--lv-line-strong),var(--lv-line-strong)) right top / var(--tick) 1px no-repeat,linear-gradient(var(--lv-line-strong),var(--lv-line-strong)) right top / 1px var(--tick) no-repeat,linear-gradient(var(--lv-line-strong),var(--lv-line-strong)) left bottom / var(--tick) 1px no-repeat,linear-gradient(var(--lv-line-strong),var(--lv-line-strong)) left bottom / 1px var(--tick) no-repeat,linear-gradient(var(--lv-line-strong),var(--lv-line-strong)) right bottom / var(--tick) 1px no-repeat,linear-gradient(var(--lv-line-strong),var(--lv-line-strong)) right bottom / 1px var(--tick) no-repeat}.lv-pnote__portrait.astro-6zfqlbxp .lv-portrait.astro-6zfqlbxp{border-radius:var(--lv-radius-sm)}.lv-pnote__initials.astro-6zfqlbxp{display:grid;place-items:center;font:var(--lv-weight-bold) var(--lv-text-sm) / 1 var(--lv-font-mono);letter-spacing:0.04em;color:var(--lv-text-secondary);background:var(--lv-surface-sunken)}.lv-pnote__name.astro-6zfqlbxp{display:grid;gap:2px;margin:0;font-size:var(--lv-text-sm)}.lv-pnote__sig.astro-6zfqlbxp{margin-inline-start:auto;block-size:3rem;inline-size:auto;opacity:0.8}
/* components/assert.quotation/renderers/quotation-hanging.astro */
.lv-quoth__figure.astro-byolmsj3{display:grid;justify-items:start;gap:var(--lv-space-7);max-inline-size:30ch;margin:0;font-size:var(--lv-text-2xl)}.lv-quoth--center.astro-byolmsj3 .lv-quoth__figure.astro-byolmsj3{margin-inline:auto}.lv-quoth__quote.astro-byolmsj3{margin:0}.lv-quoth__text.astro-byolmsj3{position:relative;margin:0;max-inline-size:none;font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-heading, var(--lv-weight-regular));line-height:var(--lv-leading-snug);letter-spacing:var(--lv-display-tracking, var(--lv-tracking-heading));color:var(--lv-text-primary);text-wrap:pretty}.lv-quoth__text.astro-byolmsj3::before{content:"“";position:absolute;inset-block-start:0.1em;inset-inline-end:calc(100% + 0.45em);font-size:0.6em;line-height:1;color:var(--lv-text-secondary)}@container (max-width: 55.99rem){.lv-quoth__text.astro-byolmsj3::before{position:static;display:inline-block;margin-inline-end:0.3em;vertical-align:0.35em}}.lv-quoth__by.astro-byolmsj3{display:grid;gap:var(--lv-space-1);font-size:var(--lv-text-xs);line-height:var(--lv-leading-snug)}.lv-quoth__author.astro-byolmsj3{font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-quoth__source.astro-byolmsj3{font-style:normal;color:var(--lv-text-secondary)}.lv-quoth__source.astro-byolmsj3 a.astro-byolmsj3{color:inherit;text-decoration-thickness:1px;text-underline-offset:0.25em}@container (max-width: 40rem){.lv-quoth__text.astro-byolmsj3{font-size:var(--lv-text-xl)}}
/* components/assert.quotation/renderers/quotation-italic.astro */
.lv-quoti__figure.astro-xlhoqlaq{display:grid;gap:var(--lv-space-5);max-inline-size:36ch;margin:0;font-size:var(--lv-text-2xl)}.lv-quoti--center.astro-xlhoqlaq .lv-quoti__figure.astro-xlhoqlaq{justify-items:center;margin-inline:auto;text-align:center}.lv-quoti__quote.astro-xlhoqlaq{margin:0}.lv-quoti__text.astro-xlhoqlaq{margin:0;max-inline-size:none;font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-2xl);font-style:italic;font-weight:var(--lv-weight-heading, var(--lv-weight-regular));line-height:1.2;letter-spacing:var(--lv-display-tracking, var(--lv-tracking-heading));color:var(--lv-text-secondary);text-wrap:balance}.lv-quoti__text.astro-xlhoqlaq::before{content:"»"}.lv-quoti__text.astro-xlhoqlaq::after{content:"«"}.lv-quoti__by.astro-xlhoqlaq{position:relative;display:grid;gap:var(--lv-space-1);padding-block-start:var(--lv-space-4);font:var(--lv-weight-medium) var(--lv-text-xs) / 1.5 var(--lv-font-ui);letter-spacing:0.18em;text-transform:uppercase;color:var(--lv-text-primary)}.lv-quoti__by.astro-xlhoqlaq::before{content:"";position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:2.5rem;block-size:1px;background:var(--lv-line-strong)}.lv-quoti--center.astro-xlhoqlaq .lv-quoti__by.astro-xlhoqlaq{justify-items:center}.lv-quoti--center.astro-xlhoqlaq .lv-quoti__by.astro-xlhoqlaq::before{inset-inline-start:50%;translate:-50% 0}.lv-quoti__source.astro-xlhoqlaq{font-style:normal;font-weight:var(--lv-weight-regular);color:var(--lv-text-secondary)}.lv-quoti__source.astro-xlhoqlaq a.astro-xlhoqlaq{color:inherit;text-decoration-thickness:1px;text-underline-offset:0.35em}@container (max-width: 40rem){.lv-quoti__text.astro-xlhoqlaq{font-size:var(--lv-text-xl)}}
/* components/assert.quotation/renderers/quotation.astro */
.lv-quot__figure.astro-oiqfdzcn{display:grid;gap:var(--lv-space-4);max-inline-size:40ch;margin:0;font-size:var(--lv-text-2xl)}.lv-quot--center.astro-oiqfdzcn .lv-quot__figure.astro-oiqfdzcn{justify-items:center;margin-inline:auto;text-align:center}.lv-quot__quote.astro-oiqfdzcn{margin:0}.lv-quot__text.astro-oiqfdzcn{margin:0;max-inline-size:none;font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-heading, var(--lv-weight-regular));line-height:1.3;letter-spacing:var(--lv-display-tracking, var(--lv-tracking-heading));color:var(--lv-text-primary);text-wrap:balance}.lv-quot__text.astro-oiqfdzcn::before{content:"»"}.lv-quot__text.astro-oiqfdzcn::after{content:"«"}.lv-quot__by.astro-oiqfdzcn{display:flex;flex-wrap:wrap;justify-content:inherit;gap:0 0.35em;font:var(--lv-weight-medium) var(--lv-text-sm) / var(--lv-leading-snug) var(--lv-font-ui);color:var(--lv-text-primary)}.lv-quot--center.astro-oiqfdzcn .lv-quot__by.astro-oiqfdzcn{justify-content:center}.lv-quot__author.astro-oiqfdzcn{text-transform:var(--lv-display-case, none);font-variant-caps:var(--lv-display-variant, normal);letter-spacing:var(--lv-tracking-eyebrow, 0)}.lv-quot__source.astro-oiqfdzcn{font-style:normal;font-weight:var(--lv-weight-regular);color:var(--lv-text-secondary)}.lv-quot__source.astro-oiqfdzcn::before{content:", ";margin-inline-start:-0.35em}.lv-quot__source.astro-oiqfdzcn a.astro-oiqfdzcn{color:inherit;text-decoration-thickness:1px;text-underline-offset:0.25em}@container (max-width: 40rem){.lv-quot__text.astro-oiqfdzcn{font-size:var(--lv-text-xl)}}
/* components/assert.statement/renderers/statement-centred.astro */
.lv-stmt-c__body.astro-khs3vzho{display:grid;justify-items:center;max-inline-size:60rem;margin-inline:auto;text-align:center}.lv-stmt-c__card.astro-khs3vzho{padding:var(--lv-space-7)}.lv-stmt-c__kicker.astro-khs3vzho,.lv-stmt-c__text.astro-khs3vzho{margin:0;max-inline-size:none;font-family:var(--lv-display-family, inherit);font-size:clamp(var(--lv-text-xl),5.2cqi,var(--lv-text-2xl));font-weight:var(--lv-weight-heading, var(--lv-weight-regular));line-height:var(--lv-leading-tight);color:var(--lv-text-primary);text-wrap:balance}.lv-stmt-c__kicker.astro-khs3vzho{text-transform:uppercase;letter-spacing:0.06em;font-variant-caps:normal}.lv-stmt-c__text.astro-khs3vzho{letter-spacing:var(--lv-display-tracking, var(--lv-tracking-heading))}.lv-stmt-c__text.astro-khs3vzho .lv-stmt-c__em{font-style:italic;font-weight:inherit;color:inherit}.lv-stmt-c__support.astro-khs3vzho{margin:var(--lv-space-5) 0 0;max-inline-size:44rem;font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-lg);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary);text-wrap:pretty}.lv-stmt-c__sig.astro-khs3vzho{margin:var(--lv-space-6) 0 0;padding-block-start:var(--lv-space-3);position:relative;font:var(--lv-weight-medium) var(--lv-text-sm) / var(--lv-leading-snug) var(--lv-font-ui);color:var(--lv-text-secondary)}.lv-stmt-c__sig.astro-khs3vzho::before{content:"";position:absolute;inset-block-start:0;inset-inline-start:50%;inline-size:2rem;block-size:1px;translate:-50% 0;background:var(--lv-line-strong)}@container (max-width: 30rem){.lv-stmt-c__kicker.astro-khs3vzho,.lv-stmt-c__text.astro-khs3vzho{font-size:var(--lv-text-xl)}.lv-stmt-c__support.astro-khs3vzho{font-size:var(--lv-text-md)}}.lv-stmt-c--band.astro-khs3vzho,.lv-stmt-c__card--dark.astro-khs3vzho{background:var(--lv-brand-strong);color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand);--lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);--lv-line-strong: color-mix(in oklab, var(--lv-text-on-brand) 52%, transparent)}.lv-stmt-c--band.astro-khs3vzho{padding-inline:var(--lv-space-5)}.lv-stmt-c__card--dark.astro-khs3vzho{box-shadow:var(--lv-lift-3)}
/* components/assert.statement/renderers/statement-oversize.astro */
.lv-stmt-o.astro-so6eu7q7{--lv-stmt-o-col: min(var(--lv-container-max, 72rem), 100% - 2 * var(--lv-gutter, var(--lv-space-5)));display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lv-space-4);overflow:clip}.lv-stmt-o__column.astro-so6eu7q7{padding-inline:calc((100% - var(--lv-stmt-o-col)) / 2)}.lv-stmt-o.astro-so6eu7q7 .lv-sec__eyebrow.astro-so6eu7q7{margin:0}.lv-stmt-o__line.astro-so6eu7q7{margin:0;max-inline-size:none;padding-inline-start:calc((100% - var(--lv-stmt-o-col)) / 2);font-family:var(--lv-display-family, inherit);font-size:max(var(--lv-text-2xl),12cqi);font-weight:var(--lv-weight-heading, var(--lv-weight-regular));line-height:1;letter-spacing:-0.01em;text-transform:uppercase;white-space:nowrap;overflow-wrap:normal;hyphens:none;color:var(--lv-text-primary)}.lv-stmt-o--long.astro-so6eu7q7 .lv-stmt-o__line.astro-so6eu7q7{padding-inline:calc((100% - var(--lv-stmt-o-col)) / 2);font-size:max(var(--lv-text-2xl),min(6cqi,5.5rem));line-height:1.02;white-space:normal;text-wrap:balance}.lv-stmt-o__line.astro-so6eu7q7 .lv-stmt-o__em{font-weight:inherit;color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-stmt-o__foot.astro-so6eu7q7{display:grid;gap:var(--lv-space-3);margin-block-start:var(--lv-space-3)}.lv-stmt-o__support.astro-so6eu7q7{margin:0;max-inline-size:var(--lv-measure);font-size:var(--lv-text-md);color:var(--lv-text-secondary);text-wrap:pretty}.lv-stmt-o__sig.astro-so6eu7q7{margin:0;font:var(--lv-weight-medium) var(--lv-text-sm) / var(--lv-leading-snug) var(--lv-font-ui);color:var(--lv-text-secondary)}.lv-stmt-o--band.astro-so6eu7q7{background:var(--lv-panel-dark);color:var(--lv-panel-dark-ink);--lv-text-primary: var(--lv-panel-dark-ink);--lv-text-secondary: var(--lv-panel-dark-ink);--lv-text-tertiary: var(--lv-panel-dark-ink);--lv-ink-accent: var(--lv-panel-dark-ink)}
/* components/assert.statement/renderers/statement.astro */
.lv-statement.astro-oxl7uqcw{max-width:46rem}.lv-statement--card.astro-oxl7uqcw{padding:var(--lv-space-7)}.lv-statement__text.astro-oxl7uqcw{margin:0;max-width:none;font-family:var(--lv-display-family, inherit);font-size:clamp(var(--lv-text-xl),5.2cqi,var(--lv-text-2xl));font-weight:var(--lv-weight-heading, var(--lv-weight-semibold));line-height:var(--lv-leading-tight);letter-spacing:var(--lv-display-tracking, var(--lv-tracking-heading));color:var(--lv-text-primary);text-wrap:balance}.lv-statement__accent.astro-oxl7uqcw{color:var(--lv-ink-accent, var(--lv-brand-strong));font-weight:var(--lv-weight-bold);font-style:italic}.lv-statement__support.astro-oxl7uqcw{margin:var(--lv-space-5) 0 0;max-width:var(--lv-measure);font-size:var(--lv-text-md);color:var(--lv-text-secondary);text-wrap:pretty}.lv-statement__sig.astro-oxl7uqcw{margin:var(--lv-space-6) 0 0;padding-block-start:var(--lv-space-3);position:relative;font:var(--lv-weight-medium) var(--lv-text-sm) / var(--lv-leading-snug) var(--lv-font-ui);color:var(--lv-text-tertiary)}.lv-statement__sig.astro-oxl7uqcw::before{content:"";position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:2rem;block-size:1px;background:var(--lv-line-strong)}.lv-stmt-sec--dark.astro-oxl7uqcw{background:var(--lv-panel-dark, var(--lv-brand-strong));padding-inline:var(--lv-space-5);color:var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-text-primary: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-text-secondary: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-text-tertiary: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-ink-accent: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-line: color-mix(in oklab, var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 32%, transparent);--lv-line-strong: color-mix(in oklab, var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 52%, transparent)}.lv-statement--card-dark.astro-oxl7uqcw{background:var(--lv-panel-dark, var(--lv-brand-strong));box-shadow:var(--lv-lift-3);color:var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-text-primary: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-text-secondary: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-text-tertiary: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-ink-accent: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-line: color-mix(in oklab, var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 32%, transparent);--lv-line-strong: color-mix(in oklab, var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 52%, transparent)}
/* components/assert.value-map/renderers/map.astro */
.lv-vmap.astro-ohpcfcrl{position:relative;display:grid;gap:var(--lv-space-4)}.lv-vmap__statement.astro-ohpcfcrl{max-width:var(--lv-measure);margin:0 0 var(--lv-space-6);font-size:var(--lv-text-lg);font-weight:var(--lv-weight-medium);line-height:var(--lv-leading-snug);color:var(--lv-text-primary);text-wrap:pretty}.lv-vmap__cell.astro-ohpcfcrl.is-customer{background:var(--lv-surface-sunken)}.lv-vmap__points.astro-ohpcfcrl{display:grid;gap:var(--lv-space-2);margin:0;padding-inline-start:var(--lv-space-5);color:var(--lv-text-secondary)}.lv-vmap--vp-canvas.astro-ohpcfcrl .lv-vmap__points.astro-ohpcfcrl{padding-inline-start:0;list-style:none}.lv-vmap--vp-canvas.astro-ohpcfcrl .lv-vmap__points.astro-ohpcfcrl>li.astro-ohpcfcrl{position:relative;padding-inline-start:var(--lv-space-5)}.lv-vmap--vp-canvas.astro-ohpcfcrl .lv-vmap__points.astro-ohpcfcrl>li.astro-ohpcfcrl::before{content:"";position:absolute;inset-inline-start:0}.lv-vmap--vp-canvas.astro-ohpcfcrl .is-offer.astro-ohpcfcrl .lv-vmap__points.astro-ohpcfcrl>li.astro-ohpcfcrl::before{inset-block-start:0.3em;inline-size:0.62em;block-size:0.36em;background:linear-gradient(var(--lv-ink-accent, var(--lv-brand-strong)),var(--lv-ink-accent, var(--lv-brand-strong))) left / 2px 100% no-repeat,linear-gradient(var(--lv-ink-accent, var(--lv-brand-strong)),var(--lv-ink-accent, var(--lv-brand-strong))) bottom / 100% 2px no-repeat;transform:rotate(-50deg)}.lv-vmap--vp-canvas.astro-ohpcfcrl .is-customer.astro-ohpcfcrl .lv-vmap__points.astro-ohpcfcrl>li.astro-ohpcfcrl::before{inset-block-start:0.62em;inline-size:0.55em;block-size:2px;background:var(--lv-line-strong)}@container (min-width: 46rem){.lv-vmap--vp-canvas.astro-ohpcfcrl{grid-template-columns:repeat(2,minmax(0,1fr))}.lv-vmap--bmc.astro-ohpcfcrl{grid-template-columns:repeat(3,minmax(0,1fr))}}.lv-vmap--grouped.astro-ohpcfcrl{gap:var(--lv-space-3)}@container (min-width: 46rem){.lv-vmap--grouped.astro-ohpcfcrl{grid-auto-flow:row dense;align-items:start;gap:var(--lv-space-3) var(--lv-space-6)}.lv-vmap--grouped.astro-ohpcfcrl .lv-vmap__side--customer.astro-ohpcfcrl,.lv-vmap--grouped.astro-ohpcfcrl .lv-vmap__group--customer.astro-ohpcfcrl,.lv-vmap--grouped.astro-ohpcfcrl .lv-vmap__cell.astro-ohpcfcrl.is-customer{grid-column:1}.lv-vmap--grouped.astro-ohpcfcrl .lv-vmap__side--offer.astro-ohpcfcrl,.lv-vmap--grouped.astro-ohpcfcrl .lv-vmap__group--offer.astro-ohpcfcrl,.lv-vmap--grouped.astro-ohpcfcrl .lv-vmap__cell.astro-ohpcfcrl.is-offer{grid-column:2}}.lv-vmap__side.astro-ohpcfcrl{margin:0;padding-block-end:var(--lv-space-2);font:var(--lv-weight-bold) var(--lv-text-sm) / 1 var(--lv-font-mono);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);font-variant-caps:var(--lv-display-variant, normal)}.lv-vmap__side--customer.astro-ohpcfcrl{color:var(--lv-text-tertiary)}.lv-vmap__side--offer.astro-ohpcfcrl{color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-vmap__group.astro-ohpcfcrl{display:flex;align-items:baseline;gap:var(--lv-space-2);margin:var(--lv-space-4) 0 0;padding-block-end:var(--lv-space-2);border-block-end:1px solid var(--lv-line);font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);color:var(--lv-text-tertiary)}.lv-vmap__group.astro-ohpcfcrl:first-of-type{margin-block-start:0}.lv-vmap__count.astro-ohpcfcrl{display:inline-grid;place-items:center;min-inline-size:1.25rem;block-size:1.25rem;padding-inline:0.35rem;border-radius:var(--lv-radius-pill);background:var(--lv-surface-raised);color:var(--lv-text-secondary);font:var(--lv-weight-bold) var(--lv-text-2xs) / 1 var(--lv-font-mono);font-feature-settings:"tnum" 1}.lv-vmap__cell--grouped.astro-ohpcfcrl{padding-block-start:var(--lv-space-4)}.lv-vmap__connector.astro-ohpcfcrl{display:none}@container (min-width: 46rem){.lv-vmap--vp-canvas.astro-ohpcfcrl .lv-vmap__connector.astro-ohpcfcrl{display:block;position:absolute;inset-block-start:var(--lv-space-6);inset-inline-start:50%;z-index:1;transform:translateX(-50%)}}.lv-vmap__dot.astro-ohpcfcrl{display:block;inline-size:10px;block-size:10px;border-radius:50%;background:var(--lv-surface);box-shadow:0 0 0 3px var(--lv-ink-accent, var(--lv-brand-strong))}
/* components/browse.category-content/renderers/content.astro */
.lv-ccontent__grid.astro-b3btk4lh{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lv-space-6) var(--lv-space-8);align-items:start;padding-block-start:var(--lv-space-6);border-block-start:1px solid var(--lv-line)}@media (min-width: 900px){.lv-ccontent__grid.astro-b3btk4lh.has-aside{grid-template-columns:minmax(0,1fr) minmax(15rem,22rem)}.lv-ccontent__grid.astro-b3btk4lh.has-aside>.lv-ccontent__title.astro-b3btk4lh{grid-column:1 / -1}.lv-ccontent__grid.astro-b3btk4lh.has-aside>.lv-ccontent__aside.astro-b3btk4lh{grid-column:2;grid-row:2 / span 3}.lv-ccontent__grid.astro-b3btk4lh.has-aside>.astro-b3btk4lh:not(.lv-ccontent__aside,.lv-ccontent__title){grid-column:1}}.lv-ccontent__title.astro-b3btk4lh{margin:0;font-family:var(--lv-display-family, var(--lv-font-ui));font-size:var(--lv-text-lg);font-weight:var(--lv-weight-heading);letter-spacing:var(--lv-tracking-heading, 0);line-height:var(--lv-leading-tight);color:var(--lv-text-primary);text-wrap:balance}.lv-ccontent__h3.astro-b3btk4lh{margin:0 0 var(--lv-space-2);font-family:var(--lv-font-ui);font-size:var(--lv-text-md);font-weight:var(--lv-weight-semibold);line-height:var(--lv-leading-snug);color:var(--lv-text-primary)}.lv-ccontent__guide.astro-b3btk4lh{color:var(--lv-text-secondary)}.lv-ccontent__lede.astro-b3btk4lh{color:var(--lv-text-primary)}.lv-ccontent__section.astro-b3btk4lh+.lv-ccontent__section.astro-b3btk4lh,.lv-ccontent__fold.astro-b3btk4lh>.lv-ccontent__section.astro-b3btk4lh{margin-block-start:var(--lv-space-5)}.lv-ccontent__section.astro-b3btk4lh>.astro-b3btk4lh:last-child{margin-block-end:0}.lv-ccontent__fold.astro-b3btk4lh{margin-block-start:var(--lv-space-3)}.lv-ccontent__more.astro-b3btk4lh{display:inline-flex;align-items:center;min-block-size:44px;list-style:none;cursor:pointer;color:var(--lv-text-link, var(--lv-text-primary));font-weight:var(--lv-weight-medium);text-decoration:underline;text-underline-offset:0.2em}.lv-ccontent__more.astro-b3btk4lh::-webkit-details-marker{display:none}.lv-ccontent__fold.astro-b3btk4lh[open]>.lv-ccontent__more.astro-b3btk4lh{display:none}.lv-ccontent__overview.astro-b3btk4lh{margin:0;border-block-start:1px solid var(--lv-line)}.lv-ccontent__row.astro-b3btk4lh{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:var(--lv-space-3);padding-block:var(--lv-space-2);border-block-end:1px solid var(--lv-line);font-size:var(--lv-text-sm);line-height:var(--lv-leading-snug)}.lv-ccontent__row--list.astro-b3btk4lh{grid-template-columns:minmax(0,1fr);gap:var(--lv-space-1)}.lv-ccontent__row.astro-b3btk4lh dt.astro-b3btk4lh{color:var(--lv-text-tertiary)}.lv-ccontent__row.astro-b3btk4lh dd.astro-b3btk4lh{margin:0;color:var(--lv-text-primary)}.lv-ccontent__num.astro-b3btk4lh{text-align:end;font-variant-numeric:tabular-nums lining-nums}.lv-ccontent__names.astro-b3btk4lh{display:flex;flex-wrap:wrap;gap:var(--lv-space-1) var(--lv-space-3);margin:0;padding:0;list-style:none}.lv-ccontent__names.astro-b3btk4lh a.astro-b3btk4lh{color:var(--lv-text-link)}.lv-ccontent__count.astro-b3btk4lh{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary);font-variant-numeric:tabular-nums lining-nums}.lv-ccontent__faq.astro-b3btk4lh{max-inline-size:var(--lv-measure)}.lv-ccontent__qa.astro-b3btk4lh{border-block-start:1px solid var(--lv-line)}.lv-ccontent__item.astro-b3btk4lh{border-block-end:1px solid var(--lv-line)}.lv-ccontent__q.astro-b3btk4lh{display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-3);min-block-size:44px;padding-block:var(--lv-space-2);list-style:none;cursor:pointer;font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-ccontent__q.astro-b3btk4lh::-webkit-details-marker{display:none}.lv-ccontent__chev.astro-b3btk4lh{flex:none;color:var(--lv-text-secondary)}.lv-ccontent__item.astro-b3btk4lh[open] .lv-ccontent__chev.astro-b3btk4lh{transform:rotate(180deg)}.lv-ccontent__a.astro-b3btk4lh{margin:0;padding-block:0 var(--lv-space-4);color:var(--lv-text-secondary);line-height:var(--lv-leading-normal)}.lv-ccontent__a.astro-b3btk4lh a.astro-b3btk4lh{color:var(--lv-text-link)}.lv-ccontent.astro-b3btk4lh .astro-b3btk4lh:is(.lv-ccontent__more,.lv-ccontent__q,.lv-chip,a):focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}
/* components/browse.category-tiles/renderers/tiles.astro */
.lv-ctiles.astro-pckdmrku{--lv-ctile-min: 8.75rem}.lv-ctiles--lead.astro-pckdmrku{padding-block-end:var(--lv-space-3)}.lv-ctiles.astro-pckdmrku .lv-crumbs{margin-block-end:var(--lv-space-4)}.lv-ctiles.astro-pckdmrku .lv-crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-1) var(--lv-space-2);margin:0;padding:0;list-style:none;font-size:var(--lv-text-xs);line-height:1.5;color:var(--lv-text-tertiary)}.lv-ctiles.astro-pckdmrku .lv-crumbs li:not(:last-child)::after{content:"›";margin-inline-start:var(--lv-space-2)}.lv-ctiles.astro-pckdmrku .lv-crumbs a{color:var(--lv-text-secondary);text-decoration:none}.lv-ctiles.astro-pckdmrku .lv-crumbs a:hover{color:var(--lv-text-primary);text-decoration:underline;text-underline-offset:0.2em}.lv-ctiles.astro-pckdmrku .lv-crumbs a:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-ctiles.astro-pckdmrku .lv-crumbs [aria-current]{color:var(--lv-text-primary);font-weight:var(--lv-weight-medium)}.lv-ctiles__head.astro-pckdmrku{margin-block-end:var(--lv-space-5)}.lv-ctiles__title.astro-pckdmrku{font-family:var(--lv-display-family, var(--lv-font-ui));font-size:var(--lv-text-xl);font-weight:var(--lv-weight-heading);letter-spacing:var(--lv-tracking-heading);line-height:var(--lv-leading-tight)}.lv-ctiles__intro.astro-pckdmrku{max-inline-size:62ch}.lv-ctiles__wrap.astro-pckdmrku{scroll-margin-block-start:var(--lv-space-9)}.lv-ctiles__list.astro-pckdmrku{position:relative;display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--lv-ctile-min),1fr));gap:var(--lv-space-3);margin:0;padding:0;list-style:none}.lv-ctiles__item.astro-pckdmrku{min-inline-size:0}.lv-ctile.astro-pckdmrku{display:grid;grid-template-rows:auto 1fr auto;gap:var(--lv-space-2);block-size:100%;padding:var(--lv-space-2) var(--lv-space-2) var(--lv-space-3);border:1px solid var(--lv-line);border-radius:var(--lv-radius-md);background:var(--lv-surface);color:var(--lv-text-primary);text-decoration:none;transition:border-color var(--lv-dur-state) var(--lv-ease),box-shadow var(--lv-dur-state) var(--lv-ease)}.lv-ctile.astro-pckdmrku:hover{border-color:var(--lv-line-strong);box-shadow:var(--lv-lift-1)}.lv-ctile.astro-pckdmrku:hover .lv-ctile__label.astro-pckdmrku{text-decoration:underline;text-underline-offset:0.2em}.lv-ctile.astro-pckdmrku:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-ctile.astro-pckdmrku:active{transform:scale(0.98)}.lv-ctile__media.astro-pckdmrku{display:grid;place-items:center;aspect-ratio:4 / 3;overflow:hidden;border-radius:calc(var(--lv-radius-md) - 6px);background:var(--lv-surface-sunken)}.lv-ctile__media.astro-pckdmrku img.astro-pckdmrku{inline-size:100%;block-size:100%;padding:8%;object-fit:contain;transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-ctile.astro-pckdmrku:hover .lv-ctile__media.astro-pckdmrku img.astro-pckdmrku{transform:scale(1.05)}.lv-ctile__glyph.astro-pckdmrku{font-family:var(--lv-display-family, var(--lv-font-ui));font-size:var(--lv-text-lg);font-weight:var(--lv-weight-heading);letter-spacing:var(--lv-tracking-heading);color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-ctile--sets.astro-pckdmrku .lv-ctile__media.astro-pckdmrku,.lv-ctile--merch.astro-pckdmrku .lv-ctile__media.astro-pckdmrku:not(:has(img)){background:var(--lv-brand-soft)}.lv-ctile__label.astro-pckdmrku{padding-inline:var(--lv-space-1);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold);line-height:1.3;overflow-wrap:anywhere;hyphens:auto}.lv-ctile__count.astro-pckdmrku{padding-inline:var(--lv-space-1);font:var(--lv-weight-regular) var(--lv-text-xs) / 1 var(--lv-font-ui);font-variant-numeric:tabular-nums;font-variant-numeric:tabular-nums;color:var(--lv-text-tertiary)}.lv-ctiles--chips.astro-pckdmrku .lv-ctiles__list.astro-pckdmrku{display:flex;flex-wrap:wrap;gap:var(--lv-space-2)}.lv-ctiles--chips.astro-pckdmrku .lv-ctile.astro-pckdmrku{display:inline-flex;align-items:center;gap:var(--lv-space-2);block-size:auto;min-block-size:40px;padding:0 var(--lv-space-4);border-radius:var(--lv-radius-pill)}.lv-ctiles--chips.astro-pckdmrku .lv-ctile__label.astro-pckdmrku,.lv-ctiles--chips.astro-pckdmrku .lv-ctile__count.astro-pckdmrku{padding:0}@container (max-width: 39.99rem){.lv-ctiles--tiles.astro-pckdmrku .lv-ctiles__list.astro-pckdmrku{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:7.75rem;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scroll-padding-inline:var(--lv-space-1);padding-block-end:var(--lv-space-2);scrollbar-width:thin}.lv-ctiles--tiles.astro-pckdmrku .lv-ctiles__item.astro-pckdmrku{scroll-snap-align:start}.lv-ctiles--chips.astro-pckdmrku .lv-ctiles__list.astro-pckdmrku{flex-wrap:nowrap;overflow-x:auto;padding-block-end:var(--lv-space-2)}.lv-ctiles--chips.astro-pckdmrku .lv-ctiles__item.astro-pckdmrku{flex:none}.lv-ctiles__title.astro-pckdmrku{font-size:var(--lv-text-lg)}}@media (pointer: coarse){.lv-ctiles--chips.astro-pckdmrku .lv-ctile.astro-pckdmrku{min-block-size:44px}}@media (prefers-reduced-motion: reduce){.lv-ctile.astro-pckdmrku,.lv-ctile__media.astro-pckdmrku img.astro-pckdmrku{transition:none}.lv-ctile.astro-pckdmrku:hover .lv-ctile__media.astro-pckdmrku img.astro-pckdmrku{transform:none}.lv-ctile.astro-pckdmrku:active{transform:none}}
/* components/browse.collection-index/renderers/index.astro */
.lv-cidx.astro-ub4wxtpc .lv-crumbs{margin-block-end:var(--lv-space-4)}.lv-cidx.astro-ub4wxtpc .lv-crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-1) var(--lv-space-2);margin:0;padding:0;list-style:none;font-size:var(--lv-text-xs);line-height:1.5;color:var(--lv-text-tertiary)}.lv-cidx.astro-ub4wxtpc .lv-crumbs li:not(:last-child)::after{content:"›";margin-inline-start:var(--lv-space-2)}.lv-cidx.astro-ub4wxtpc .lv-crumbs a{color:var(--lv-text-secondary);text-decoration:none}.lv-cidx.astro-ub4wxtpc .lv-crumbs a:hover{color:var(--lv-text-primary);text-decoration:underline;text-underline-offset:0.2em}.lv-cidx.astro-ub4wxtpc .lv-crumbs a:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-cidx.astro-ub4wxtpc .lv-crumbs [aria-current]{color:var(--lv-text-primary);font-weight:var(--lv-weight-medium)}.lv-cidx__head.astro-ub4wxtpc{margin-block-end:var(--lv-space-5)}.lv-cidx__title.astro-ub4wxtpc{font-family:var(--lv-display-family, var(--lv-font-ui));font-size:var(--lv-text-xl);font-weight:var(--lv-weight-heading);letter-spacing:var(--lv-tracking-heading)}.lv-cidx__total.astro-ub4wxtpc{margin:var(--lv-space-2) 0 0;color:var(--lv-text-secondary);font-size:var(--lv-text-sm)}.lv-cidx__total-n.astro-ub4wxtpc{font-family:var(--lv-font-ui);font-variant-numeric:tabular-nums;font-weight:var(--lv-weight-bold);color:var(--lv-text-primary)}.lv-cidx__tools.astro-ub4wxtpc{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--lv-space-3) var(--lv-space-5);padding-block:var(--lv-space-3);margin-block-end:var(--lv-space-5);border-block:1px solid var(--lv-line)}.lv-cidx__letters.astro-ub4wxtpc{min-inline-size:0;max-inline-size:100%}.lv-cidx__letters.astro-ub4wxtpc ul.astro-ub4wxtpc{position:relative;display:flex;flex-wrap:wrap;gap:2px;margin:0;padding:0;list-style:none}.lv-cidx__letters.astro-ub4wxtpc .astro-ub4wxtpc:is(a,span){display:inline-grid;place-items:center;min-inline-size:2.25rem;block-size:2.25rem;border-radius:var(--lv-radius-sm);font:var(--lv-weight-bold) var(--lv-text-sm) / 1 var(--lv-font-ui);font-variant-numeric:tabular-nums}.lv-cidx__letters.astro-ub4wxtpc a.astro-ub4wxtpc{color:var(--lv-text-primary);text-decoration:none}.lv-cidx__letters.astro-ub4wxtpc a.astro-ub4wxtpc:hover{background:var(--lv-brand-soft);color:var(--lv-brand-strong)}.lv-cidx__letters.astro-ub4wxtpc a.astro-ub4wxtpc:focus-visible,.lv-cidx__list.astro-ub4wxtpc a.astro-ub4wxtpc:focus-visible,.lv-cidx__find.astro-ub4wxtpc input.astro-ub4wxtpc:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-cidx__letters.astro-ub4wxtpc span.astro-ub4wxtpc{color:var(--lv-text-tertiary);opacity:0.55}@media (pointer: coarse){.lv-cidx__letters.astro-ub4wxtpc .astro-ub4wxtpc:is(a,span){min-inline-size:2.75rem;block-size:2.75rem}}.lv-cidx__find.astro-ub4wxtpc{display:flex;align-items:center;gap:var(--lv-space-2)}.lv-cidx__find.astro-ub4wxtpc[hidden]{display:none}.lv-cidx__find.astro-ub4wxtpc label.astro-ub4wxtpc{font-size:var(--lv-text-sm);color:var(--lv-text-secondary);white-space:nowrap}.lv-cidx__find.astro-ub4wxtpc input.astro-ub4wxtpc{inline-size:15rem;max-inline-size:100%;min-block-size:44px;padding-inline:var(--lv-space-3);border:1px solid var(--lv-line-control);border-radius:var(--lv-radius-pill);background:var(--lv-surface);color:var(--lv-text-primary);font:inherit}.lv-cidx__index.astro-ub4wxtpc{display:grid;gap:var(--lv-space-6)}.lv-cidx__group.astro-ub4wxtpc{display:grid;grid-template-columns:3.5rem minmax(0,1fr);gap:var(--lv-space-4);scroll-margin-block-start:var(--lv-space-9)}.lv-cidx__group.astro-ub4wxtpc[hidden]{display:none}.lv-cidx__letter.astro-ub4wxtpc{margin:0;font-family:var(--lv-display-family, var(--lv-font-ui));font-size:var(--lv-text-xl);font-weight:var(--lv-weight-heading);line-height:1;color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-cidx__list.astro-ub4wxtpc{margin:0;padding:0;list-style:none;columns:15rem 4;column-gap:var(--lv-space-6)}.lv-cidx__list.astro-ub4wxtpc li.astro-ub4wxtpc{display:flex;align-items:baseline;justify-content:space-between;gap:var(--lv-space-3);break-inside:avoid;padding-block:var(--lv-space-2);border-block-end:1px solid var(--lv-line)}.lv-cidx__list.astro-ub4wxtpc li.astro-ub4wxtpc[hidden]{display:none}.lv-cidx__list.astro-ub4wxtpc a.astro-ub4wxtpc{color:var(--lv-text-primary);text-decoration:none;font-weight:var(--lv-weight-medium);overflow-wrap:anywhere}.lv-cidx__list.astro-ub4wxtpc a.astro-ub4wxtpc:hover{text-decoration:underline;text-underline-offset:0.2em}.lv-cidx__count.astro-ub4wxtpc{flex:none;font:var(--lv-weight-regular) var(--lv-text-xs) / 1 var(--lv-font-ui);font-variant-numeric:tabular-nums;color:var(--lv-text-tertiary)}.lv-cidx__none.astro-ub4wxtpc{margin:0;color:var(--lv-text-secondary)}.lv-cidx__none.astro-ub4wxtpc[hidden]{display:none}@container (max-width: 39.99rem){.lv-cidx__group.astro-ub4wxtpc{grid-template-columns:1fr;gap:var(--lv-space-2)}.lv-cidx__letters.astro-ub4wxtpc{flex:1 1 100%}.lv-cidx__letters.astro-ub4wxtpc ul.astro-ub4wxtpc{flex-wrap:nowrap;overflow-x:auto;padding-block-end:var(--lv-space-1)}.lv-cidx__find.astro-ub4wxtpc{flex:1 1 100%;min-inline-size:0}.lv-cidx__find.astro-ub4wxtpc input.astro-ub4wxtpc{flex:1 1 0;min-inline-size:0;inline-size:100%}.lv-cidx__list.astro-ub4wxtpc li.astro-ub4wxtpc{min-block-size:44px;align-items:center}}
/* components/browse.content-set/renderers/list-disclosure.astro */
.lv-cdir__list.astro-c47maeqc{display:grid;grid-template-columns:minmax(0,1fr);column-gap:var(--lv-space-7);align-items:start;margin:0;padding:0;list-style:none}@container (min-width: 40rem){.lv-cdir__list.astro-c47maeqc{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (min-width: 64rem){.lv-cdir__list.astro-c47maeqc{grid-template-columns:repeat(3,minmax(0,1fr))}}.lv-cdir__row.astro-c47maeqc{border-block-end:1px solid var(--lv-line)}.lv-cdir__summary.astro-c47maeqc{display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-3);min-block-size:44px;padding-block:var(--lv-space-3);cursor:pointer;list-style:none}.lv-cdir__summary.astro-c47maeqc::-webkit-details-marker{display:none}.lv-cdir__summary.astro-c47maeqc:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-cdir__head.astro-c47maeqc{display:grid;gap:var(--lv-space-1);min-inline-size:0}.lv-cdir__rank.astro-c47maeqc{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-cdir__name.astro-c47maeqc{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold);line-height:var(--lv-leading-snug);color:var(--lv-text-primary);overflow-wrap:anywhere}.lv-cdir__tags.astro-c47maeqc{font-size:var(--lv-text-2xs, var(--lv-text-xs));font-weight:var(--lv-weight-bold);letter-spacing:var(--lv-tracking-label);text-transform:uppercase;color:var(--lv-text-link)}.lv-cdir__chevron.astro-c47maeqc{flex:none;inline-size:1rem;block-size:1rem;color:var(--lv-text-primary);transition:transform var(--lv-dur-state) var(--lv-ease)}.lv-cdir__details.astro-c47maeqc[open] .lv-cdir__chevron.astro-c47maeqc{transform:rotate(180deg)}.lv-cdir__body.astro-c47maeqc{display:grid;gap:var(--lv-space-2);padding-block:0 var(--lv-space-4)}.lv-cdir__link.astro-c47maeqc{display:inline-flex;align-items:center;gap:var(--lv-space-2);justify-self:start;min-block-size:24px;font-size:var(--lv-text-sm);color:var(--lv-text-link);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:0.18em}.lv-cdir__link.astro-c47maeqc:hover{text-decoration-thickness:2px}.lv-cdir__arrow.astro-c47maeqc{flex:none;inline-size:1.2em;block-size:0.8em}.lv-cdir__why.astro-c47maeqc{margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-cset__cats.astro-c47maeqc{margin-block-end:var(--lv-space-5)}.lv-cset__catbtn.astro-c47maeqc[aria-pressed=true]{background:var(--lv-brand-soft);color:var(--lv-brand-strong);box-shadow:inset 0 0 0 1px var(--lv-brand-strong);font-weight:var(--lv-weight-semibold)}.lv-cset__search.astro-c47maeqc{max-inline-size:22rem;margin-block-end:var(--lv-space-5)}.lv-cset__letter.astro-c47maeqc{grid-column:1 / -1;margin:var(--lv-space-6) 0 var(--lv-space-2);font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);color:var(--lv-text-tertiary)}.lv-cset__letter.astro-c47maeqc:first-child{margin-block-start:0}.lv-cset__item.astro-c47maeqc[hidden],.lv-cset__letter.astro-c47maeqc[hidden]{display:none!important}.lv-cset__empty-filtered.astro-c47maeqc{margin-block-start:var(--lv-space-5);padding:var(--lv-space-6);text-align:center;border:1px dashed var(--lv-line-strong);border-radius:var(--lv-radius-lg);color:var(--lv-text-tertiary);font-size:var(--lv-text-sm)}@media (prefers-reduced-motion: reduce){.lv-cdir__chevron.astro-c47maeqc{transition:none}}
/* components/browse.content-set/renderers/list-field.astro */
.lv-cfld__list.astro-josjqtvf{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lv-space-7) var(--lv-space-5);margin:0;padding:0;list-style:none}@container (min-width: 37.5rem){.lv-cfld__list.astro-josjqtvf{grid-template-columns:repeat(var(--lv-cset-cols-md, 2),minmax(0,1fr))}}@container (min-width: 60rem){.lv-cfld__list.astro-josjqtvf{grid-template-columns:repeat(var(--lv-cset-cols, 3),minmax(0,1fr))}}.lv-cfld__tile.astro-josjqtvf{position:relative;display:grid;align-content:start;gap:var(--lv-space-3)}.lv-cfld__media.astro-josjqtvf{aspect-ratio:4 / 5;overflow:hidden;background:var(--lv-surface-sunken)}.lv-cfld__media.astro-josjqtvf img.astro-josjqtvf{display:block;inline-size:100%;block-size:100%;object-fit:cover;transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-cfld__caption.astro-josjqtvf{display:grid;gap:var(--lv-space-1);transition:opacity var(--lv-dur-state) var(--lv-ease)}.lv-cfld__title.astro-josjqtvf{margin:0;font-family:inherit;font-size:var(--lv-text-md);font-weight:var(--lv-weight-regular);line-height:var(--lv-leading-snug);color:var(--lv-text-tertiary);overflow-wrap:anywhere;transition:color var(--lv-dur-state) var(--lv-ease)}.lv-cfld__title.astro-josjqtvf a.astro-josjqtvf{color:inherit;text-decoration:none}.lv-cset__cover.astro-josjqtvf::after{content:"";position:absolute;inset:0;z-index:1}.lv-cfld__rank.astro-josjqtvf,.lv-cfld__why.astro-josjqtvf{margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-cfld__tile.astro-josjqtvf:has(a:hover) .lv-cfld__title.astro-josjqtvf,.lv-cfld__tile.astro-josjqtvf:has(a:focus-visible) .lv-cfld__title.astro-josjqtvf{color:var(--lv-text-primary)}.lv-cfld__tile.astro-josjqtvf:has(a:hover) .lv-cfld__media.astro-josjqtvf img.astro-josjqtvf,.lv-cfld__tile.astro-josjqtvf:has(a:focus-visible) .lv-cfld__media.astro-josjqtvf img.astro-josjqtvf{transform:scale(1.02)}@supports selector(:has(*)){.lv-cfld__tile.astro-josjqtvf:has(.lv-cset__cover:focus-visible){outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-cfld__tile.astro-josjqtvf .lv-cset__cover.astro-josjqtvf:focus-visible{outline:none}}.lv-cfld--text-hidden.astro-josjqtvf .lv-cfld__tile.astro-josjqtvf:has(img){gap:0}.lv-cfld--text-hidden.astro-josjqtvf .lv-cfld__tile.astro-josjqtvf:has(img) .lv-cfld__caption.astro-josjqtvf{position:static;block-size:0;margin:0;padding:0;overflow:hidden}.lv-cfld--text-hover.astro-josjqtvf .lv-cfld__tile.astro-josjqtvf:has(img) .lv-cfld__caption.astro-josjqtvf{opacity:0}.lv-cfld--text-hover.astro-josjqtvf .lv-cfld__tile.astro-josjqtvf:hover .lv-cfld__caption.astro-josjqtvf,.lv-cfld--text-hover.astro-josjqtvf .lv-cfld__tile.astro-josjqtvf:focus-within .lv-cfld__caption.astro-josjqtvf{opacity:1}@media (hover: none){.lv-cfld--text-hover.astro-josjqtvf .lv-cfld__tile.astro-josjqtvf .lv-cfld__caption.astro-josjqtvf{opacity:1}}.lv-cset__cats.astro-josjqtvf{margin-block-end:var(--lv-space-5)}.lv-cset__catbtn.astro-josjqtvf[aria-pressed=true]{background:var(--lv-brand-soft);color:var(--lv-brand-strong);box-shadow:inset 0 0 0 1px var(--lv-brand-strong);font-weight:var(--lv-weight-semibold)}.lv-cset__search.astro-josjqtvf{max-inline-size:22rem;margin-block-end:var(--lv-space-5)}.lv-cset__letter.astro-josjqtvf{grid-column:1 / -1;margin:var(--lv-space-6) 0 0;font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);color:var(--lv-text-tertiary)}.lv-cset__letter.astro-josjqtvf:first-child{margin-block-start:0}.lv-cset__item.astro-josjqtvf[hidden],.lv-cset__letter.astro-josjqtvf[hidden]{display:none!important}.lv-cset__empty-filtered.astro-josjqtvf{margin-block-start:var(--lv-space-5);padding:var(--lv-space-6);text-align:center;border:1px dashed var(--lv-line-strong);color:var(--lv-text-tertiary);font-size:var(--lv-text-sm)}@media (prefers-reduced-motion: reduce){.lv-cfld__media.astro-josjqtvf img.astro-josjqtvf{transition:none}.lv-cfld__tile.astro-josjqtvf:has(a:hover) .lv-cfld__media.astro-josjqtvf img.astro-josjqtvf,.lv-cfld__tile.astro-josjqtvf:has(a:focus-visible) .lv-cfld__media.astro-josjqtvf img.astro-josjqtvf{transform:none}}
/* components/browse.content-set/renderers/list-outlined.astro */
@container (min-width: 36rem){.lv-cout__list.astro-yxrkpttx{grid-template-columns:repeat(var(--lv-cset-cols-md, 2),minmax(0,1fr))}.lv-cout--lead.astro-yxrkpttx .lv-cout__card.astro-yxrkpttx:first-child{grid-column:1 / -1}.lv-cout--lead.astro-yxrkpttx .lv-cout__card.astro-yxrkpttx:first-child .lv-cout__media.astro-yxrkpttx{aspect-ratio:21 / 9}}@container (min-width: 56rem){.lv-cout__list.astro-yxrkpttx{grid-template-columns:repeat(var(--lv-cset-cols, 3),minmax(0,1fr))}}.lv-cout__list.astro-yxrkpttx>.lv-cout__card.astro-yxrkpttx:only-child{grid-column:1 / -1}.lv-cout__card.astro-yxrkpttx{position:relative;display:grid;grid-template-rows:auto 1fr auto;gap:var(--lv-space-4);container:lv-cout-card / inline-size}.lv-cout__card--bare.astro-yxrkpttx{grid-template-rows:1fr auto}.lv-cout--framed.astro-yxrkpttx .lv-cout__card.astro-yxrkpttx{padding:var(--lv-space-5);border-radius:var(--lv-radius-md);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-cout__media.astro-yxrkpttx{aspect-ratio:16 / 9;border-radius:var(--lv-radius-sm)}.lv-cout__text.astro-yxrkpttx{display:grid;align-content:start;gap:var(--lv-space-3)}@container lv-cout-card (min-width: 30rem){.lv-cout__text.astro-yxrkpttx{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);column-gap:var(--lv-space-5)}.lv-cout__rank.astro-yxrkpttx{grid-column:1 / -1}}.lv-cout__rank.astro-yxrkpttx{margin:0;font-size:var(--lv-text-xs);font-weight:var(--lv-weight-bold);color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-cout__title.astro-yxrkpttx{margin:0;font-size:var(--lv-text-xl);font-weight:var(--lv-weight-regular);line-height:var(--lv-leading-tight);color:var(--lv-ink-accent, var(--lv-brand-strong));text-wrap:balance;hyphens:auto;overflow-wrap:anywhere}.lv-cout__title.astro-yxrkpttx a.astro-yxrkpttx{color:inherit;text-decoration:none}.lv-cset__cover.astro-yxrkpttx::after{content:"";position:absolute;inset:0;z-index:1}.lv-cout__side.astro-yxrkpttx{display:grid;align-content:start;gap:var(--lv-space-2)}.lv-cout__summary.astro-yxrkpttx{margin:0;font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal);color:var(--lv-text-primary);hyphens:auto;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;line-clamp:6;overflow:hidden}.lv-cout__why.astro-yxrkpttx{margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-cout__foot.astro-yxrkpttx{display:flex;align-items:baseline;justify-content:space-between;gap:var(--lv-space-4);max-width:none;margin:0;font-size:var(--lv-text-xs)}.lv-cout__more.astro-yxrkpttx{display:inline-flex;align-items:center;gap:var(--lv-space-2);color:var(--lv-ink-accent, var(--lv-brand-strong));white-space:nowrap}.lv-cout__arrow.astro-yxrkpttx{flex:none;inline-size:1.4em;block-size:0.9em;transition:transform var(--lv-dur-state) var(--lv-ease)}.lv-cout__meta.astro-yxrkpttx{color:var(--lv-text-tertiary);text-align:end}.lv-cout__card.astro-yxrkpttx:has(a:hover) .lv-cout__arrow.astro-yxrkpttx,.lv-cout__card.astro-yxrkpttx:has(a:focus-visible) .lv-cout__arrow.astro-yxrkpttx{transform:translateX(4px)}@supports selector(:has(*)){.lv-cout__card.astro-yxrkpttx:has(.lv-cset__cover:focus-visible){outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-cout__card.astro-yxrkpttx .lv-cset__cover.astro-yxrkpttx:focus-visible{outline:none}}.lv-cout--text-hidden.astro-yxrkpttx .lv-cout__card.astro-yxrkpttx:has(.lv-cout__media){grid-template-rows:auto;gap:0}.lv-cout--text-hidden.astro-yxrkpttx .lv-cout__card.astro-yxrkpttx:has(.lv-cout__media) .astro-yxrkpttx:is(.lv-cout__text,.lv-cout__foot){position:static;block-size:0;margin:0;padding:0;overflow:hidden}.lv-cset__cats.astro-yxrkpttx{margin-block-end:var(--lv-space-5)}.lv-cset__catbtn.astro-yxrkpttx[aria-pressed=true]{background:var(--lv-brand-soft);color:var(--lv-brand-strong);box-shadow:inset 0 0 0 1px var(--lv-brand-strong);font-weight:var(--lv-weight-semibold)}.lv-cset__search.astro-yxrkpttx{max-inline-size:22rem;margin-block-end:var(--lv-space-5)}.lv-cset__letter.astro-yxrkpttx{grid-column:1 / -1;margin:var(--lv-space-6) 0 var(--lv-space-2);padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line);font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);color:var(--lv-text-tertiary)}.lv-cset__letter.astro-yxrkpttx:first-child{margin-block-start:0;padding-block-start:0;border-block-start:0}.lv-cset__item.astro-yxrkpttx[hidden],.lv-cset__letter.astro-yxrkpttx[hidden]{display:none!important}.lv-cset__empty-filtered.astro-yxrkpttx{margin-block-start:var(--lv-space-5);padding:var(--lv-space-6);text-align:center;border:1px dashed var(--lv-line-strong);border-radius:var(--lv-radius-lg);color:var(--lv-text-tertiary);font-size:var(--lv-text-sm)}@media (prefers-reduced-motion: reduce){.lv-cout__arrow.astro-yxrkpttx{transition:none}}
/* components/browse.content-set/renderers/list-regions.astro */
.lv-crow__list.astro-g2wvlmiu{margin:0;padding:0;list-style:none;border-block-end:1px solid var(--lv-line)}.lv-crow__row.astro-g2wvlmiu{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"media" "words" "details";gap:var(--lv-space-4);padding-block:var(--lv-space-5) var(--lv-space-6);border-block-start:1px solid var(--lv-line)}.lv-crow__words.astro-g2wvlmiu{grid-area:words;display:grid;align-content:start;gap:var(--lv-space-3)}.lv-crow__details.astro-g2wvlmiu{grid-area:details}.lv-crow__media.astro-g2wvlmiu{grid-area:media}@container (min-width: 56rem){.lv-crow__row.astro-g2wvlmiu{grid-template-columns:minmax(0,5fr) minmax(0,3fr) minmax(0,4fr);grid-template-areas:"words details media";column-gap:var(--lv-space-7);padding-block:var(--lv-space-5)}}.lv-crow__rank.astro-g2wvlmiu{margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-crow__title.astro-g2wvlmiu{margin:0;font-size:var(--lv-text-lg);line-height:var(--lv-leading-snug);overflow-wrap:anywhere}.lv-crow__title.astro-g2wvlmiu a.astro-g2wvlmiu{color:var(--lv-text-primary);text-decoration:none}.lv-crow__title.astro-g2wvlmiu a.astro-g2wvlmiu:hover span.astro-g2wvlmiu{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.18em}.lv-cset__cover.astro-g2wvlmiu::after{content:"";position:absolute;inset:0;z-index:1}.lv-crow__summary.astro-g2wvlmiu{max-inline-size:var(--lv-measure);margin:0;font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary);hyphens:auto;overflow-wrap:anywhere}.lv-crow__why.astro-g2wvlmiu{margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-crow__more.astro-g2wvlmiu{display:inline-flex;align-items:center;gap:var(--lv-space-2);justify-self:start;font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);color:var(--lv-text-primary)}.lv-crow__arrow.astro-g2wvlmiu{flex:none;inline-size:1.2em;block-size:0.8em;transition:transform var(--lv-dur-state) var(--lv-ease)}.lv-crow__detail.astro-g2wvlmiu{position:relative;margin:0;padding-inline-start:var(--lv-space-4);font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary);overflow-wrap:anywhere}.lv-crow__detail.astro-g2wvlmiu::before{content:"";position:absolute;inset-inline-start:0;inset-block-start:0.62em;inline-size:5px;block-size:5px;background:currentColor}.lv-crow__media.astro-g2wvlmiu{aspect-ratio:4 / 3;overflow:hidden;background:var(--lv-surface-sunken)}.lv-crow__media.astro-g2wvlmiu img.astro-g2wvlmiu{display:block;inline-size:100%;block-size:100%;object-fit:cover;transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-crow__row.astro-g2wvlmiu:has(a:hover) .lv-crow__media.astro-g2wvlmiu img.astro-g2wvlmiu,.lv-crow__row.astro-g2wvlmiu:has(a:focus-visible) .lv-crow__media.astro-g2wvlmiu img.astro-g2wvlmiu{transform:scale(1.03)}.lv-crow__row.astro-g2wvlmiu:has(a:hover) .lv-crow__arrow.astro-g2wvlmiu,.lv-crow__row.astro-g2wvlmiu:has(a:focus-visible) .lv-crow__arrow.astro-g2wvlmiu{transform:translateX(4px)}@supports selector(:has(*)){.lv-crow__row.astro-g2wvlmiu:has(.lv-cset__cover:focus-visible){outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-crow__row.astro-g2wvlmiu .lv-cset__cover.astro-g2wvlmiu:focus-visible{outline:none}}.lv-cset__cats.astro-g2wvlmiu{margin-block-end:var(--lv-space-5)}.lv-cset__catbtn.astro-g2wvlmiu[aria-pressed=true]{background:var(--lv-brand-soft);color:var(--lv-brand-strong);box-shadow:inset 0 0 0 1px var(--lv-brand-strong);font-weight:var(--lv-weight-semibold)}.lv-cset__search.astro-g2wvlmiu{max-inline-size:22rem;margin-block-end:var(--lv-space-5)}.lv-cset__letter.astro-g2wvlmiu{padding-block:var(--lv-space-5) var(--lv-space-2);border-block-start:1px solid var(--lv-line);font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);color:var(--lv-text-tertiary)}.lv-cset__item.astro-g2wvlmiu[hidden],.lv-cset__letter.astro-g2wvlmiu[hidden]{display:none!important}.lv-cset__empty-filtered.astro-g2wvlmiu{margin-block-start:var(--lv-space-5);padding:var(--lv-space-6);text-align:center;border:1px dashed var(--lv-line-strong);color:var(--lv-text-tertiary);font-size:var(--lv-text-sm)}@media (prefers-reduced-motion: reduce){.lv-crow__media.astro-g2wvlmiu img.astro-g2wvlmiu,.lv-crow__arrow.astro-g2wvlmiu{transition:none}.lv-crow__row.astro-g2wvlmiu:has(a:hover) .lv-crow__media.astro-g2wvlmiu img.astro-g2wvlmiu,.lv-crow__row.astro-g2wvlmiu:has(a:focus-visible) .lv-crow__media.astro-g2wvlmiu img.astro-g2wvlmiu,.lv-crow__row.astro-g2wvlmiu:has(a:hover) .lv-crow__arrow.astro-g2wvlmiu,.lv-crow__row.astro-g2wvlmiu:has(a:focus-visible) .lv-crow__arrow.astro-g2wvlmiu{transform:none}}
/* components/browse.content-set/renderers/list.astro */
@container (min-width: 36rem){.lv-cset__list.astro-ohstvpyc{grid-template-columns:repeat(var(--lv-cset-cols-md, 2),minmax(0,1fr))}}@container (min-width: 56rem){.lv-cset__list.astro-ohstvpyc{grid-template-columns:repeat(var(--lv-cset-cols, 3),minmax(0,1fr))}}.lv-cset__item.astro-ohstvpyc{position:relative}.lv-cset__cover.astro-ohstvpyc::after{content:"";position:absolute;inset:0;z-index:1}.lv-cset--plain.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc{gap:var(--lv-space-3)}.lv-cset__media.astro-ohstvpyc{display:block}.lv-cset.astro-ohstvpyc:not(.lv-cset--listed) .lv-cset__text.astro-ohstvpyc .lv-card__body.astro-ohstvpyc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}.lv-cset__list.astro-ohstvpyc>.lv-cset__item.astro-ohstvpyc:only-child{grid-column:1 / -1}.lv-cset--cards.astro-ohstvpyc:not(.lv-cset--listed) .lv-cset__item.astro-ohstvpyc:only-child .lv-cset__media.astro-ohstvpyc{aspect-ratio:21 / 9}@container (min-width: 36rem){.lv-cset--listed.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc{display:grid;grid-template-columns:minmax(0,16rem) minmax(0,1fr);column-gap:var(--lv-space-5);align-items:start}.lv-cset--listed.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc .lv-cset__media.astro-ohstvpyc{grid-row:1 / span 3}.lv-cset--listed.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc .lv-cset__rank.astro-ohstvpyc{grid-column:2}.lv-cset--listed.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc .lv-cset__text.astro-ohstvpyc{grid-column:2}.lv-cset--listed.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:not(:has(.lv-cset__media)) .lv-cset__text.astro-ohstvpyc{grid-column:1 / -1}}.lv-cset--text-hidden.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:has(.lv-cset__media) .lv-cset__text.astro-ohstvpyc{position:static;block-size:0;margin:0;padding:0;overflow:hidden}.lv-cset--text-hidden.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:has(.lv-cset__media){gap:0}.lv-cset--text-hidden.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:has(.lv-cset__media) .lv-cset__rank.astro-ohstvpyc{display:none}.lv-cset--text-hidden.astro-ohstvpyc.lv-cset--cards .lv-cset__item.astro-ohstvpyc:has(.lv-cset__media){padding:0}.lv-cset--text-hidden.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:has(.lv-cset__media) .lv-cset__media.astro-ohstvpyc{border-radius:inherit}.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:has(.lv-cset__media){display:grid;grid-template-columns:minmax(0,1fr);padding:0;overflow:hidden}.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:has(.lv-cset__media) .lv-cset__media.astro-ohstvpyc{grid-area:1 / 1;aspect-ratio:4 / 3;border-radius:inherit}.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:has(.lv-cset__media) .lv-cset__rank.astro-ohstvpyc{position:absolute;inset-block-start:var(--lv-space-3);inset-inline-start:var(--lv-space-4);z-index:2;color:var(--lv-ink-on-dark, oklch(97% 0.004 90))}.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:has(.lv-cset__media) .lv-cset__text.astro-ohstvpyc{grid-area:1 / 1;align-self:end;position:static;isolation:isolate;display:grid;gap:var(--lv-space-1);max-block-size:100%;box-sizing:border-box;padding:var(--lv-space-6) var(--lv-space-4) var(--lv-space-4);background:linear-gradient(to top,oklch(14% 0.01 260 / 0.82),oklch(14% 0.01 260 / 0.45) 55%,transparent);color:var(--lv-ink-on-dark, oklch(97% 0.004 90));opacity:0;transition:opacity var(--lv-dur-state) var(--lv-ease)}.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:has(.lv-cset__media) .lv-cset__text.astro-ohstvpyc>.astro-ohstvpyc:not(h3){translate:0 var(--lv-space-2);transition:translate var(--lv-dur-state) var(--lv-ease)}.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc .lv-cset__text.astro-ohstvpyc .astro-ohstvpyc:is(.lv-card__title,.lv-card__body){display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc .lv-cset__text.astro-ohstvpyc .astro-ohstvpyc:is(.lv-card__meta,.lv-cset__why){display:none}.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc .lv-cset__text.astro-ohstvpyc .astro-ohstvpyc:is(.lv-card__title,.lv-card__body),.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc .lv-cset__text.astro-ohstvpyc a.astro-ohstvpyc{color:inherit}.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc .lv-cset__text.astro-ohstvpyc .lv-card__body.astro-ohstvpyc{font-size:var(--lv-text-sm)}.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:hover .lv-cset__text.astro-ohstvpyc,.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:focus-within .lv-cset__text.astro-ohstvpyc{opacity:1}.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:hover .lv-cset__text.astro-ohstvpyc>.astro-ohstvpyc:not(h3),.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:focus-within .lv-cset__text.astro-ohstvpyc>.astro-ohstvpyc:not(h3){translate:0 0}@media (hover: none){.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc .lv-cset__text.astro-ohstvpyc{opacity:1}.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc .lv-cset__text.astro-ohstvpyc>.astro-ohstvpyc:not(h3){translate:0 0}}@media (prefers-reduced-motion: reduce){.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc .lv-cset__text.astro-ohstvpyc{transition:opacity var(--lv-dur-instant) linear}.lv-cset--text-hover.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc .lv-cset__text.astro-ohstvpyc>.astro-ohstvpyc:not(h3){translate:0 0;transition:none}}.lv-cset--cards.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc{transition:transform var(--lv-dur-state) var(--lv-ease),box-shadow var(--lv-dur-state) var(--lv-ease)}.lv-cset--cards.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:has(a:hover){transform:translateY(-6px);box-shadow:inset 0 0 0 1px var(--lv-line),var(--lv-lift-2)}.lv-cset--cards.astro-ohstvpyc .lv-cset__item.astro-ohstvpyc:has(a:active){transform:translateY(-3px)}.lv-cset__item.astro-ohstvpyc .lv-media.astro-ohstvpyc img.astro-ohstvpyc{transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-cset__item.astro-ohstvpyc:has(a:hover) .lv-media.astro-ohstvpyc img.astro-ohstvpyc{transform:scale(1.045)}.lv-cset__rank.astro-ohstvpyc{margin:0;font-size:var(--lv-text-xs);font-weight:var(--lv-weight-bold);color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-cset__text.astro-ohstvpyc{display:grid;gap:var(--lv-space-2)}.lv-cset__item.astro-ohstvpyc a.astro-ohstvpyc{color:var(--lv-text-primary);text-decoration:none}.lv-cset__item.astro-ohstvpyc .lv-cset__text.astro-ohstvpyc a.astro-ohstvpyc:hover{text-decoration:underline}.lv-cset__why.astro-ohstvpyc{margin:var(--lv-space-2) 0 0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-cset__cats.astro-ohstvpyc{margin-block-end:var(--lv-space-5)}.lv-cset__catbtn.astro-ohstvpyc[aria-pressed=true]{background:var(--lv-brand-soft);color:var(--lv-brand-strong);box-shadow:inset 0 0 0 1px var(--lv-brand-strong);font-weight:var(--lv-weight-semibold)}.lv-cset__search.astro-ohstvpyc{max-inline-size:22rem;margin-block-end:var(--lv-space-5)}.lv-cset__letter.astro-ohstvpyc{grid-column:1 / -1;margin:var(--lv-space-6) 0 var(--lv-space-2);padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line);font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);color:var(--lv-text-tertiary)}.lv-cset__letter.astro-ohstvpyc:first-child{margin-block-start:0;padding-block-start:0;border-block-start:0}.lv-cset__item.astro-ohstvpyc[hidden],.lv-cset__letter.astro-ohstvpyc[hidden]{display:none!important}.lv-cset__empty-filtered.astro-ohstvpyc{margin-block-start:var(--lv-space-5);padding:var(--lv-space-6);text-align:center;border:1px dashed var(--lv-line-strong);border-radius:var(--lv-radius-lg);color:var(--lv-text-tertiary);font-size:var(--lv-text-sm)}
/* components/browse.content-set/renderers/ordinal-index.astro */
.lv-cidx__list.astro-ztmseqdy{margin:0;padding:0;list-style:none;border-block-end:1px solid var(--lv-line)}.lv-cidx__row.astro-ztmseqdy{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--lv-space-5);row-gap:var(--lv-space-2);align-items:baseline;padding-block:var(--lv-space-5);border-block-start:1px solid var(--lv-line)}@container (min-width: 46rem){.lv-cidx__row.astro-ztmseqdy{grid-template-columns:auto minmax(0,1fr) auto;column-gap:var(--lv-space-7)}}.lv-cidx__num.astro-ztmseqdy{align-self:start;font-size:clamp(1.6rem,1.1rem + 1.8cqi,2.5rem);font-weight:300;line-height:1;letter-spacing:-0.02em;color:var(--lv-text-tertiary);transition:color var(--lv-dur-state) var(--lv-ease)}.lv-cidx__row.astro-ztmseqdy:has(a:hover) .lv-cidx__num.astro-ztmseqdy,.lv-cidx__row.astro-ztmseqdy:has(a:focus-visible) .lv-cidx__num.astro-ztmseqdy{color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-cidx__body.astro-ztmseqdy{min-inline-size:0}.lv-cidx__title.astro-ztmseqdy{margin:0;font-size:var(--lv-text-md);line-height:var(--lv-leading-snug)}.lv-cidx__title.astro-ztmseqdy a.astro-ztmseqdy{display:inline-flex;align-items:baseline;gap:var(--lv-space-2);min-block-size:24px;color:var(--lv-text-primary);text-decoration:none}.lv-cidx__title.astro-ztmseqdy a.astro-ztmseqdy:hover span.astro-ztmseqdy{text-decoration:underline}.lv-cidx__arrow.astro-ztmseqdy{flex:none;inline-size:0.8em;block-size:0.8em;color:var(--lv-ink-accent, var(--lv-brand-strong));transition:transform var(--lv-dur-state) var(--lv-ease)}.lv-cidx__row.astro-ztmseqdy:has(a:hover) .lv-cidx__arrow.astro-ztmseqdy,.lv-cidx__row.astro-ztmseqdy:has(a:focus-visible) .lv-cidx__arrow.astro-ztmseqdy{transform:translateX(3px)}.lv-cidx__summary.astro-ztmseqdy{max-width:var(--lv-measure);margin:var(--lv-space-2) 0 0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-cidx__why.astro-ztmseqdy{margin:var(--lv-space-2) 0 0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-cidx__meta.astro-ztmseqdy{grid-column:2;margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary);font-variant-numeric:tabular-nums}@container (min-width: 46rem){.lv-cidx__meta.astro-ztmseqdy{grid-column:auto;text-align:end}}
/* components/browse.content-set/renderers/ordinal-register.astro */
.lv-creg__list.astro-vk2wrp6c{margin:0;padding:0;list-style:none}.lv-creg__row.astro-vk2wrp6c{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--lv-space-5);align-items:start}.lv-creg--ruled.astro-vk2wrp6c .lv-creg__list.astro-vk2wrp6c{border-block-end:1px solid var(--lv-line)}.lv-creg--ruled.astro-vk2wrp6c .lv-creg__row.astro-vk2wrp6c{padding-block:var(--lv-space-5);border-block-start:1px solid var(--lv-line)}@container (min-width: 46rem){.lv-creg--ruled.astro-vk2wrp6c .lv-creg__row.astro-vk2wrp6c{column-gap:var(--lv-space-7);padding-block:var(--lv-space-6)}}.lv-creg--ruled.astro-vk2wrp6c .lv-creg__num.astro-vk2wrp6c{font-size:clamp(1.6rem,1.1rem + 1.8cqi,2.5rem);font-weight:300;line-height:1;letter-spacing:-0.02em}.lv-creg--grid.astro-vk2wrp6c .lv-creg__list.astro-vk2wrp6c{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lv-space-7) var(--lv-space-6)}@container (min-width: 36rem){.lv-creg--grid.astro-vk2wrp6c .lv-creg__list.astro-vk2wrp6c{grid-template-columns:repeat(var(--lv-creg-cols-md, 2),minmax(0,1fr))}}@container (min-width: 56rem){.lv-creg--grid.astro-vk2wrp6c .lv-creg__list.astro-vk2wrp6c{grid-template-columns:repeat(var(--lv-creg-cols, 3),minmax(0,1fr))}}.lv-creg--grid.astro-vk2wrp6c .lv-creg__row.astro-vk2wrp6c{grid-template-columns:minmax(0,1fr);align-content:start;row-gap:var(--lv-space-3)}.lv-creg--grid.astro-vk2wrp6c .lv-creg__num.astro-vk2wrp6c{font-size:var(--lv-text-sm);line-height:1}.lv-creg__num.astro-vk2wrp6c{color:var(--lv-text-tertiary);transition:color var(--lv-dur-state) var(--lv-ease)}.lv-creg__row.astro-vk2wrp6c:has(a:hover) .lv-creg__num.astro-vk2wrp6c,.lv-creg__row.astro-vk2wrp6c:has(a:focus-visible) .lv-creg__num.astro-vk2wrp6c{color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-creg__body.astro-vk2wrp6c{display:grid;gap:var(--lv-space-2);min-inline-size:0}.lv-creg__meta.astro-vk2wrp6c{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary);font-variant-numeric:tabular-nums}.lv-creg__title.astro-vk2wrp6c{margin:0;font-size:var(--lv-text-lg);font-weight:var(--lv-weight-heading, var(--lv-weight-semibold));line-height:var(--lv-leading-snug);text-wrap:balance;hyphens:auto;overflow-wrap:anywhere}.lv-creg__title.astro-vk2wrp6c a.astro-vk2wrp6c{display:inline-block;min-block-size:24px;color:var(--lv-text-primary);text-decoration:none}.lv-creg__title.astro-vk2wrp6c a.astro-vk2wrp6c:hover span.astro-vk2wrp6c{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.18em}.lv-creg__cover.astro-vk2wrp6c::after{content:"";position:absolute;inset:0;z-index:1}@supports selector(:has(*)){.lv-creg__row.astro-vk2wrp6c:has(.lv-creg__cover:focus-visible){outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-creg__cover.astro-vk2wrp6c:focus-visible{outline:none}}.lv-creg__summary.astro-vk2wrp6c{max-width:var(--lv-measure);margin:0;font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-creg__why.astro-vk2wrp6c{margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-creg__more.astro-vk2wrp6c{display:inline-flex;align-items:center;gap:var(--lv-space-2);justify-self:start;margin-block-start:var(--lv-space-2);font-size:var(--lv-text-sm);color:var(--lv-text-primary)}.lv-creg__arrow.astro-vk2wrp6c{flex:none;inline-size:1.25em;block-size:0.85em;color:var(--lv-ink-accent, var(--lv-brand-strong));transition:transform var(--lv-dur-state) var(--lv-ease)}.lv-creg__row.astro-vk2wrp6c:has(a:hover) .lv-creg__arrow.astro-vk2wrp6c,.lv-creg__row.astro-vk2wrp6c:has(a:focus-visible) .lv-creg__arrow.astro-vk2wrp6c{transform:translateX(4px)}@media (prefers-reduced-motion: reduce){.lv-creg__arrow.astro-vk2wrp6c,.lv-creg__num.astro-vk2wrp6c{transition:none}}
/* components/browse.downloads/renderers/files.astro */
.lv-files.astro-mergjue3{max-width:48rem}.lv-files__row.astro-mergjue3{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--lv-space-1) var(--lv-space-4);align-items:center}.lv-files__link.astro-mergjue3{display:flex;align-items:center;gap:var(--lv-space-3);min-block-size:44px;color:var(--lv-text-primary);text-decoration:none}.lv-files__link.astro-mergjue3:hover .lv-files__title.astro-mergjue3{text-decoration:underline}.lv-files__type.astro-mergjue3{flex:none;padding:2px var(--lv-space-2);border-radius:var(--lv-radius-sm);background:var(--lv-surface-sunken);font-size:var(--lv-text-2xs);color:var(--lv-text-tertiary);text-transform:uppercase}.lv-files__meta.astro-mergjue3{display:flex;gap:var(--lv-space-3);margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}
/* components/browse.entity-set/renderers/entities.astro */
.lv-grid.astro-npmx6avb{display:flex;flex-wrap:wrap;justify-content:center}.lv-ent.astro-npmx6avb{flex:1 1 min(17rem,100%)}@container (min-width: 56rem){.lv-ent.astro-npmx6avb{max-inline-size:calc((100% - 2 * var(--lv-space-5)) / 3)}.lv-ent.astro-npmx6avb:first-child:nth-last-child(2),.lv-ent.astro-npmx6avb:first-child:nth-last-child(2)~.lv-ent.astro-npmx6avb{max-inline-size:calc((100% - var(--lv-space-5)) / 2)}}.lv-ent.astro-npmx6avb:only-child{max-inline-size:none;flex-basis:100%}.lv-ent.astro-npmx6avb:only-child .lv-media.astro-npmx6avb{aspect-ratio:21 / 9}.lv-ent.astro-npmx6avb{transition:transform var(--lv-dur-state) var(--lv-ease),box-shadow var(--lv-dur-state) var(--lv-ease)}.lv-ent.astro-npmx6avb:has(a:hover){transform:translateY(-6px);box-shadow:inset 0 0 0 1px var(--lv-line),var(--lv-lift-2)}.lv-ent.astro-npmx6avb:has(a:active){transform:translateY(-3px)}.lv-ent.astro-npmx6avb .lv-media.astro-npmx6avb img.astro-npmx6avb{transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-ent.astro-npmx6avb:has(a:hover) .lv-media.astro-npmx6avb img.astro-npmx6avb{transform:scale(1.045)}.lv-ent__top.astro-npmx6avb{display:flex;align-items:center;gap:var(--lv-space-3);margin:0}.lv-ent__score.astro-npmx6avb{font-size:var(--lv-text-lg);font-weight:var(--lv-weight-semibold);color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-ent__of.astro-npmx6avb{font-size:var(--lv-text-xs);font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-ent.astro-npmx6avb a.astro-npmx6avb{color:var(--lv-text-primary);text-decoration:none}.lv-ent.astro-npmx6avb a.astro-npmx6avb:hover{text-decoration:underline}
/* components/browse.feature-one/renderers/feature.astro */
.lv-feature__shell.astro-fnbrv26q{border-radius:var(--lv-radius-lg)}.lv-feature__badge.astro-fnbrv26q{margin-block-end:var(--lv-space-2)}.lv-feature__price.astro-fnbrv26q{margin:var(--lv-space-4) 0 0;font-size:var(--lv-text-xl);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-feature__facts.astro-fnbrv26q{margin-block-start:var(--lv-space-5);font-size:var(--lv-text-sm)}.lv-feature__actions.astro-fnbrv26q{margin-block-start:var(--lv-space-6)}.lv-feature__plate.astro-fnbrv26q{display:grid;place-items:center;aspect-ratio:1;border-radius:var(--lv-radius-md);background-color:var(--lv-surface-sunken);background-image:repeating-linear-gradient(90deg,transparent 0 78px,color-mix(in oklab,currentColor 5%,transparent) 78px 80px);color:var(--lv-text-primary);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-feature__plate-art.astro-fnbrv26q{display:grid;opacity:0.55}.lv-feature__plate-art.astro-fnbrv26q svg{inline-size:clamp(4.5rem,16cqi,7.5rem);block-size:auto;stroke-width:1.2}
/* components/browse.image-set/renderers/gallery-bar.astro */
.lv-gallery__filters.astro-iwzd2h6t{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--lv-space-3);margin-block-end:var(--lv-space-5)}.lv-gallery__filter.astro-iwzd2h6t[aria-pressed=true]{background:var(--lv-brand-soft);color:var(--lv-brand-strong);box-shadow:inset 0 0 0 1px var(--lv-brand-strong);font-weight:var(--lv-weight-semibold)}.lv-gallery__count.astro-iwzd2h6t{margin:0;font-size:var(--lv-text-xs);font-variant-numeric:tabular-nums;color:var(--lv-text-tertiary)}.lv-gallery__none.astro-iwzd2h6t{margin:0;padding-block:var(--lv-space-6);font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-gallery__item.astro-iwzd2h6t[hidden],.lv-gallery__none.astro-iwzd2h6t[hidden]{display:none}.lv-gallery__list.astro-iwzd2h6t{--lv-wall-gap: calc(var(--lv-space-2) + 2px);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lv-wall-gap);margin:0;padding:0;list-style:none}@container (min-width: 56.25rem){.lv-gallery__list.astro-iwzd2h6t{grid-template-columns:repeat(6,minmax(0,1fr))}.lv-gallery__item.astro-iwzd2h6t{grid-column:span var(--lv-wall-span, 3)}}.lv-gallery__item.astro-iwzd2h6t{position:relative;min-inline-size:0}.lv-gallery__fig.astro-iwzd2h6t{margin:0;position:relative}.lv-gallery__fig.astro-iwzd2h6t .lv-media.astro-iwzd2h6t{position:relative;overflow:hidden;aspect-ratio:16 / 10;background:var(--lv-surface-sunken)}.lv-gallery__fig.astro-iwzd2h6t .lv-media.astro-iwzd2h6t img.astro-iwzd2h6t{display:block;inline-size:100%;block-size:100%;object-fit:cover;transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-gallery__cap.astro-iwzd2h6t{margin:0}.lv-bar.astro-iwzd2h6t{position:absolute;inset-inline:0;inset-block-end:0;z-index:2;display:block;min-block-size:30px;padding:calc(var(--lv-space-1) * 1.5) var(--lv-space-4);overflow:hidden;background:color-mix(in oklab,var(--lv-text-primary) 92%,transparent);color:var(--lv-surface);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);line-height:1.4;text-align:center;text-overflow:ellipsis;white-space:nowrap;transition:background-color var(--lv-dur-state) var(--lv-ease)}@container (min-width: 56.25rem){.is-group-end.astro-iwzd2h6t .lv-bar.astro-iwzd2h6t{inset-inline-start:auto;inset-inline-end:0;inline-size:calc(var(--lv-wall-bar) * 100% + (var(--lv-wall-bar) - 1) * var(--lv-wall-gap))}}.lv-gallery__item.astro-iwzd2h6t:hover .lv-bar.astro-iwzd2h6t,.lv-gallery__item.astro-iwzd2h6t:focus-within .lv-bar.astro-iwzd2h6t{background:var(--lv-text-primary)}.lv-gallery__item.astro-iwzd2h6t:hover .lv-media.astro-iwzd2h6t img.astro-iwzd2h6t,.lv-gallery__item.astro-iwzd2h6t:focus-within .lv-media.astro-iwzd2h6t img.astro-iwzd2h6t{transform:scale(1.02)}.lv-gallery--cap-none.astro-iwzd2h6t .lv-bar.astro-iwzd2h6t{display:none}.lv-gallery__expand.astro-iwzd2h6t{display:none}.astro-iwzd2h6t[data-lv-ready] .lv-gallery__expand.astro-iwzd2h6t{display:block;position:absolute;inset:0;z-index:1;border:0;margin:0;padding:0;background:transparent;cursor:zoom-in}.lv-gallery__expand.astro-iwzd2h6t:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-focus-width) * -1)}@media (prefers-reduced-motion: reduce){.lv-gallery__fig.astro-iwzd2h6t .lv-media.astro-iwzd2h6t img.astro-iwzd2h6t,.lv-bar.astro-iwzd2h6t{transition-duration:0.01ms}.lv-gallery__item.astro-iwzd2h6t:hover .lv-media.astro-iwzd2h6t img.astro-iwzd2h6t,.lv-gallery__item.astro-iwzd2h6t:focus-within .lv-media.astro-iwzd2h6t img.astro-iwzd2h6t{transform:none}}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-gallery--bar.astro-iwzd2h6t .lv-gallery__fig.astro-iwzd2h6t .lv-media.astro-iwzd2h6t::after{content:"";position:absolute;inset:0;background:var(--lv-surface-sunken);transform-origin:top center;pointer-events:none;animation:lv-bar-wipe linear both;animation-timeline:view();animation-range:entry 0% entry 100%}@keyframes lv-bar-wipe{from{transform:scaleY(1)}to{transform:scaleY(0)}}}}
/* components/browse.image-set/renderers/gallery-cinematic.astro */
.lv-gallery__filters.astro-ffpman4s{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--lv-space-3);margin-block-end:var(--lv-space-5)}.lv-gallery__filter.astro-ffpman4s[aria-pressed=true]{background:var(--lv-brand-soft);color:var(--lv-brand-strong);box-shadow:inset 0 0 0 1px var(--lv-brand-strong);font-weight:var(--lv-weight-semibold)}.lv-gallery__count.astro-ffpman4s{margin:0;font-size:var(--lv-text-xs);font-variant-numeric:tabular-nums;color:var(--lv-text-tertiary)}.lv-gallery__none.astro-ffpman4s{margin:0;padding-block:var(--lv-space-6);font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-gallery__item.astro-ffpman4s[hidden],.lv-gallery__none.astro-ffpman4s[hidden]{display:none}.lv-gallery__list.astro-ffpman4s{margin:0;padding:0;list-style:none;display:grid;gap:var(--lv-space-5);grid-template-columns:repeat(auto-fit,minmax(min(17rem,100%),1fr))}.lv-gallery__fig.astro-ffpman4s{margin:0;position:relative}.lv-gallery__fig.astro-ffpman4s .lv-media.astro-ffpman4s{position:relative}.lv-media.astro-ffpman4s{aspect-ratio:4 / 3}.lv-gallery__fig.astro-ffpman4s .lv-media.astro-ffpman4s{overflow:hidden;border-radius:var(--lv-radius-sm);background:var(--lv-surface-sunken);box-shadow:inset 0 0 0 1px var(--lv-line);transition:box-shadow var(--lv-dur-fast) var(--lv-ease)}.lv-gallery__fig.astro-ffpman4s:hover .lv-media.astro-ffpman4s,.lv-gallery__fig.astro-ffpman4s:focus-within .lv-media.astro-ffpman4s{box-shadow:inset 0 0 0 1px var(--lv-brand-strong)}.lv-gallery__fig.astro-ffpman4s .lv-media.astro-ffpman4s img.astro-ffpman4s{inline-size:100%;block-size:100%;object-fit:cover;transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-gallery__fig.astro-ffpman4s:hover .lv-media.astro-ffpman4s img.astro-ffpman4s,.lv-gallery__fig.astro-ffpman4s:focus-within .lv-media.astro-ffpman4s img.astro-ffpman4s{transform:scale(1.03)}.lv-gallery__ordinal.astro-ffpman4s{position:absolute;inset-block-start:var(--lv-space-3);inset-inline-start:var(--lv-space-3);z-index:1;font-size:var(--lv-text-xs);font-variant-numeric:tabular-nums;letter-spacing:var(--lv-tracking-label);color:var(--lv-text-on-brand);mix-blend-mode:difference;transition:color var(--lv-dur-fast) var(--lv-ease)}.lv-gallery__cap.astro-ffpman4s{display:block;margin-block-start:var(--lv-space-3);font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-label);color:var(--lv-text-tertiary)}.lv-gallery--cap-none.astro-ffpman4s .lv-gallery__cap.astro-ffpman4s span.astro-ffpman4s:not(.lv-vh){display:none}.lv-gallery--cap-overlay.astro-ffpman4s .lv-gallery__cap.astro-ffpman4s,.lv-gallery--cap-scrim.astro-ffpman4s .lv-gallery__cap.astro-ffpman4s{position:absolute;inset:auto 0 0 0;margin:0;padding:var(--lv-space-6) var(--lv-space-3) var(--lv-space-3);background:linear-gradient(to top,rgb(var(--lv-glass-under) / 0.78) 0%,rgb(var(--lv-glass-under) / 0) 100%);color:var(--lv-text-on-brand)}.lv-gallery__expand.astro-ffpman4s{display:none}.astro-ffpman4s[data-lv-ready] .lv-gallery__expand.astro-ffpman4s{display:block;position:absolute;inset:0;z-index:2;border:0;margin:0;padding:0;background:transparent;cursor:zoom-in}.lv-gallery__expand.astro-ffpman4s:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-focus-width) * -1)}@container (min-width: 46rem){.lv-gallery--bento.astro-ffpman4s .lv-gallery__list.astro-ffpman4s{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:12rem}.lv-gallery--bento.astro-ffpman4s .lv-media.astro-ffpman4s{block-size:100%;aspect-ratio:auto}.lv-gallery--bento.astro-ffpman4s .lv-gallery__fig.astro-ffpman4s{block-size:100%}.lv-gallery--bento.astro-ffpman4s .is-2x1.astro-ffpman4s{grid-column:span 2}.lv-gallery--bento.astro-ffpman4s .is-2x2.astro-ffpman4s{grid-column:span 2;grid-row:span 2}.lv-gallery--bento.astro-ffpman4s .lv-gallery__item.astro-ffpman4s:only-child{grid-column:1 / -1;grid-row:span 2}.lv-gallery--bento.astro-ffpman4s .lv-gallery__item.astro-ffpman4s:first-child:nth-last-child(2),.lv-gallery--bento.astro-ffpman4s .lv-gallery__item.astro-ffpman4s:first-child:nth-last-child(2)~.lv-gallery__item.astro-ffpman4s{grid-column:span 2;grid-row:span 2}}.lv-gallery--masonry.astro-ffpman4s .lv-gallery__list.astro-ffpman4s{display:block;columns:1;column-gap:var(--lv-space-5)}@container (min-width: 33rem){.lv-gallery--masonry.astro-ffpman4s .lv-gallery__list.astro-ffpman4s{columns:2}}@container (min-width: 50rem){.lv-gallery--masonry.astro-ffpman4s .lv-gallery__list.astro-ffpman4s{columns:3}}.lv-gallery--masonry.astro-ffpman4s .lv-gallery__item.astro-ffpman4s{break-inside:avoid;margin-block-end:var(--lv-space-5)}.lv-gallery--masonry.astro-ffpman4s .lv-media.astro-ffpman4s{aspect-ratio:auto}.lv-gallery--masonry.astro-ffpman4s .lv-gallery__list.astro-ffpman4s:has(> .lv-gallery__item:first-child:nth-last-child(1)){columns:1}.lv-gallery--rail.astro-ffpman4s .lv-gallery__list.astro-ffpman4s{grid-auto-flow:column;grid-auto-columns:minmax(min(18rem,80%),1fr);grid-template-columns:none;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:var(--lv-space-4)}.lv-gallery--rail.astro-ffpman4s .lv-gallery__item.astro-ffpman4s{scroll-snap-align:start}.lv-gallery--grid.astro-ffpman4s .lv-gallery__item.astro-ffpman4s:only-child,.lv-gallery--rail.astro-ffpman4s .lv-gallery__item.astro-ffpman4s:only-child{grid-column:1 / -1}.lv-gallery--grid.astro-ffpman4s .lv-gallery__item.astro-ffpman4s:only-child .lv-media.astro-ffpman4s,.lv-gallery--rail.astro-ffpman4s .lv-gallery__item.astro-ffpman4s:only-child .lv-media.astro-ffpman4s{aspect-ratio:21 / 9}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-gallery--frame.astro-ffpman4s .lv-gallery__item.astro-ffpman4s{animation:lv-gallery-frame linear both;animation-timeline:view();animation-range:entry 8% entry 62%}@keyframes lv-gallery-frame{from{scale:0.985}to{scale:1}}}}
/* components/browse.image-set/renderers/gallery-filtered.astro */
.lv-gallery__filters.astro-xnk36krw{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--lv-space-3);margin-block-end:var(--lv-space-6)}.lv-gallery__rail.astro-xnk36krw{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-block-end:var(--lv-space-1)}.lv-gallery__rail.astro-xnk36krw .lv-chip.astro-xnk36krw{scroll-snap-align:start;flex:0 0 auto;min-block-size:44px;display:inline-flex;align-items:center}.lv-gallery__filter.astro-xnk36krw[aria-pressed=true]{background:var(--lv-brand-soft);color:var(--lv-brand-strong);box-shadow:inset 0 0 0 1px var(--lv-brand-strong);font-weight:var(--lv-weight-semibold)}.lv-gallery__count.astro-xnk36krw{margin:0;font-size:var(--lv-text-xs);font-variant-numeric:tabular-nums;letter-spacing:var(--lv-tracking-label);color:var(--lv-text-tertiary)}.lv-gallery__none.astro-xnk36krw{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-3);margin:0;padding-block:var(--lv-space-6);font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-gallery__reset.astro-xnk36krw{min-block-size:44px;border:0;padding-inline:var(--lv-space-3);background:transparent;color:var(--lv-brand-strong);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.lv-gallery__item.astro-xnk36krw[hidden],.lv-gallery__none.astro-xnk36krw[hidden]{display:none}.lv-gallery__list.astro-xnk36krw{margin:0;padding:0;list-style:none;display:grid;gap:var(--lv-space-4);grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr))}.lv-gallery__fig.astro-xnk36krw{margin:0;position:relative}.lv-gallery__fig.astro-xnk36krw .lv-media.astro-xnk36krw{position:relative;overflow:hidden;border-radius:var(--lv-radius-sm);background:var(--lv-surface-sunken);aspect-ratio:4 / 3}.lv-gallery__fig.astro-xnk36krw .lv-media.astro-xnk36krw img.astro-xnk36krw{inline-size:100%;block-size:100%;object-fit:cover;transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-gallery__fig.astro-xnk36krw:hover .lv-media.astro-xnk36krw img.astro-xnk36krw,.lv-gallery__fig.astro-xnk36krw:focus-within .lv-media.astro-xnk36krw img.astro-xnk36krw{transform:scale(1.04)}.lv-gallery__item.astro-xnk36krw:only-child{grid-column:1 / -1}.lv-gallery__item.astro-xnk36krw:only-child .lv-media.astro-xnk36krw{aspect-ratio:21 / 9}.lv-gallery__cap.astro-xnk36krw{display:block;margin-block-start:var(--lv-space-2);font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-gallery--cap-none.astro-xnk36krw .lv-gallery__cap.astro-xnk36krw span.astro-xnk36krw:not(.lv-vh){display:none}.lv-gallery--cap-overlay.astro-xnk36krw .lv-gallery__cap.astro-xnk36krw,.lv-gallery--cap-scrim.astro-xnk36krw .lv-gallery__cap.astro-xnk36krw{position:absolute;inset:auto 0 0 0;margin:0;padding:var(--lv-space-6) var(--lv-space-3) var(--lv-space-3);background:linear-gradient(to top,rgb(var(--lv-glass-under) / 0.78) 0%,rgb(var(--lv-glass-under) / 0) 100%);color:var(--lv-text-on-brand)}.lv-gallery__expand.astro-xnk36krw{display:none}.astro-xnk36krw[data-lv-ready] .lv-gallery__expand.astro-xnk36krw{display:block;position:absolute;inset:0;z-index:1;border:0;margin:0;padding:0;background:transparent;cursor:zoom-in}.lv-gallery__expand.astro-xnk36krw:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-focus-width) * -1)}.lv-gallery__expand-icon.astro-xnk36krw{position:absolute;inset-block-end:var(--lv-space-2);inset-inline-end:var(--lv-space-2);display:grid;place-items:center;inline-size:44px;block-size:44px;border-radius:var(--lv-radius-pill);background:var(--lv-surface);box-shadow:var(--lv-lift-2);color:var(--lv-text-primary);transition:background-color var(--lv-dur-fast) var(--lv-ease),color var(--lv-dur-fast) var(--lv-ease)}.lv-gallery__fig.astro-xnk36krw:hover .lv-gallery__expand-icon.astro-xnk36krw,.lv-gallery__expand.astro-xnk36krw:focus-visible .lv-gallery__expand-icon.astro-xnk36krw{background:var(--lv-brand-strong);color:var(--lv-text-on-brand)}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-gallery--board.astro-xnk36krw .lv-gallery__item.astro-xnk36krw{animation:lv-gallery-board linear both;animation-timeline:view();animation-range:entry 6% entry 58%}@keyframes lv-gallery-board{from{scale:0.98}to{scale:1}}}}
/* components/browse.image-set/renderers/gallery-focus-rail.astro */
.lv-gallery__filters.astro-7zqaum2l{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--lv-space-3);margin-block-end:var(--lv-space-5)}.lv-gallery__filter.astro-7zqaum2l[aria-pressed=true]{background:var(--lv-brand-soft);color:var(--lv-brand-strong);box-shadow:inset 0 0 0 1px var(--lv-brand-strong);font-weight:var(--lv-weight-semibold)}.lv-gallery__count.astro-7zqaum2l{margin:0;font-size:var(--lv-text-xs);font-variant-numeric:tabular-nums;color:var(--lv-text-tertiary)}.lv-gallery__none.astro-7zqaum2l{margin:0;padding-block:var(--lv-space-6);font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-gallery__item.astro-7zqaum2l[hidden],.lv-gallery__none.astro-7zqaum2l[hidden]{display:none}.lv-gallery__list.astro-7zqaum2l{margin:0;padding:0;list-style:none;display:grid;grid-auto-flow:column;grid-auto-columns:min(78%,20rem);gap:var(--lv-space-4);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:50%;padding-block-end:var(--lv-space-3)}@container (min-width: 46rem){.lv-gallery__list.astro-7zqaum2l{grid-auto-columns:min(52%,26rem)}}.lv-gallery__item.astro-7zqaum2l{scroll-snap-align:center}.lv-gallery__list.astro-7zqaum2l:has(> .lv-gallery__item:first-child:nth-last-child(-n + 3)){grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr));overflow-x:visible;scroll-snap-type:none;scroll-padding-inline:0}.lv-gallery__fig.astro-7zqaum2l{margin:0;position:relative}.lv-gallery__fig.astro-7zqaum2l .lv-media.astro-7zqaum2l{position:relative;overflow:hidden;border-radius:var(--lv-radius-sm);background:var(--lv-surface-sunken);aspect-ratio:4 / 3}.lv-gallery--masonry.astro-7zqaum2l .lv-media.astro-7zqaum2l{aspect-ratio:3 / 4}.lv-gallery--bento.astro-7zqaum2l .lv-media.astro-7zqaum2l{aspect-ratio:16 / 9}.lv-gallery__fig.astro-7zqaum2l .lv-media.astro-7zqaum2l img.astro-7zqaum2l{inline-size:100%;block-size:100%;object-fit:cover}.lv-gallery__cap.astro-7zqaum2l{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-2);margin-block-start:var(--lv-space-2);font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-gallery__index.astro-7zqaum2l{font-variant-numeric:tabular-nums;letter-spacing:var(--lv-tracking-label);color:var(--lv-text-quaternary, var(--lv-text-tertiary))}.lv-gallery--cap-none.astro-7zqaum2l .lv-gallery__cap.astro-7zqaum2l span.astro-7zqaum2l:not(.lv-vh):not(.lv-gallery__index){display:none}.lv-gallery__progress.astro-7zqaum2l{display:none}.lv-gallery__expand.astro-7zqaum2l{display:none}.astro-7zqaum2l[data-lv-ready] .lv-gallery__expand.astro-7zqaum2l{display:block;position:absolute;inset:0;z-index:1;border:0;margin:0;padding:0;background:transparent;cursor:zoom-in}.lv-gallery__expand.astro-7zqaum2l:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-focus-width) * -1)}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view(inline)){.lv-gallery--passing.astro-7zqaum2l .lv-gallery__list.astro-7zqaum2l:has(> .lv-gallery__item:nth-child(4)) .lv-gallery__fig.astro-7zqaum2l{animation:lv-gallery-grade linear both;animation-timeline:view(inline)}@keyframes lv-gallery-grade{0%,100%{opacity:0.62;filter:saturate(0.55)}42%,58%{opacity:1;filter:none}}}@supports (timeline-scope: --lv-gallery-rail){.lv-gallery--passing.astro-7zqaum2l .lv-sec__inner.astro-7zqaum2l{timeline-scope:--lv-gallery-rail}.lv-gallery--passing.astro-7zqaum2l .lv-gallery__list.astro-7zqaum2l{scroll-timeline:--lv-gallery-rail inline}.lv-gallery--passing.astro-7zqaum2l .lv-gallery__list.astro-7zqaum2l:has(> .lv-gallery__item:nth-child(4))~.lv-gallery__progress.astro-7zqaum2l{display:block;block-size:2px;margin-block-start:var(--lv-space-3);background:var(--lv-line)}.lv-gallery--passing.astro-7zqaum2l .lv-gallery__list.astro-7zqaum2l:has(> .lv-gallery__item:nth-child(4))~.lv-gallery__progress.astro-7zqaum2l .lv-gallery__progress-bar.astro-7zqaum2l{display:block;block-size:100%;background:var(--lv-brand-strong);transform-origin:left center;animation:lv-gallery-progress linear both;animation-timeline:--lv-gallery-rail}@keyframes lv-gallery-progress{from{scale:0.02 1}to{scale:1 1}}}}
/* components/browse.image-set/renderers/gallery-paper.astro */
.lv-gallery__filters.astro-cskxuoyb{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--lv-space-3);margin-block-end:var(--lv-space-5)}.lv-gallery__filter.astro-cskxuoyb[aria-pressed=true]{background:var(--lv-brand-soft);color:var(--lv-brand-strong);box-shadow:inset 0 0 0 1px var(--lv-brand-strong);font-weight:var(--lv-weight-semibold)}.lv-gallery__count.astro-cskxuoyb{margin:0;font-size:var(--lv-text-xs);font-variant-numeric:tabular-nums;color:var(--lv-text-tertiary)}.lv-gallery__none.astro-cskxuoyb{margin:0;padding-block:var(--lv-space-6);font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-gallery__item.astro-cskxuoyb[hidden],.lv-gallery__none.astro-cskxuoyb[hidden]{display:none}.lv-gallery__list.astro-cskxuoyb{margin:0;padding:0;list-style:none}.lv-gallery__fig.astro-cskxuoyb{margin:0;position:relative}.lv-gallery__fig.astro-cskxuoyb .lv-media.astro-cskxuoyb{position:relative;overflow:hidden;background:var(--lv-surface-sunken)}.lv-gallery__fig.astro-cskxuoyb .lv-media.astro-cskxuoyb img.astro-cskxuoyb{display:block;inline-size:100%;block-size:100%;object-fit:cover}.lv-gallery--cap-none.astro-cskxuoyb .lv-gallery__cap.astro-cskxuoyb span.astro-cskxuoyb:not(.lv-vh){display:none}.lv-gallery__expand.astro-cskxuoyb{display:none}.astro-cskxuoyb[data-lv-ready] .lv-gallery__expand.astro-cskxuoyb{display:block;position:absolute;inset:0;z-index:1;border:0;margin:0;padding:0;background:transparent;cursor:zoom-in}.lv-gallery__expand.astro-cskxuoyb:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-focus-width) * -1)}.lv-paper__label.astro-cskxuoyb{font-size:var(--lv-text-xs);letter-spacing:0.18em;line-height:2;text-transform:uppercase}.lv-paper--collage.astro-cskxuoyb .lv-gallery__fig.astro-cskxuoyb{block-size:100%;padding:calc(var(--lv-space-1) * 1.5);background:var(--lv-surface);box-shadow:0 1px 2px rgb(var(--lv-glass-under) / 0.12),0 12px 28px -12px rgb(var(--lv-glass-under) / 0.3);transition:transform var(--lv-dur-state) var(--lv-ease),box-shadow var(--lv-dur-state) var(--lv-ease)}.lv-paper--collage.astro-cskxuoyb .lv-gallery__fig.astro-cskxuoyb .lv-media.astro-cskxuoyb{block-size:100%}.lv-paper--collage.astro-cskxuoyb .lv-gallery__cap.astro-cskxuoyb{display:contents}.lv-paper--collage.astro-cskxuoyb .lv-gallery__list.astro-cskxuoyb{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--lv-space-5)}.lv-paper--collage.astro-cskxuoyb .lv-gallery__item.astro-cskxuoyb{aspect-ratio:4 / 5}.lv-paper--collage.astro-cskxuoyb .lv-gallery__item.astro-cskxuoyb:nth-child(even){margin-block-start:var(--lv-space-7)}@container (max-width: 37.499rem){.lv-paper--collage.astro-cskxuoyb .lv-gallery__list.astro-cskxuoyb{grid-template-columns:minmax(0,1fr)}.lv-paper--collage.astro-cskxuoyb .lv-gallery__item.astro-cskxuoyb{aspect-ratio:3 / 2}.lv-paper--collage.astro-cskxuoyb .lv-gallery__item.astro-cskxuoyb:nth-child(even){margin-block-start:0}}@container (min-width: 56.25rem){.lv-paper--collage.astro-cskxuoyb .lv-paper__stage.astro-cskxuoyb{position:relative}.lv-paper--collage.astro-cskxuoyb .lv-gallery__list.astro-cskxuoyb{position:relative;display:block;aspect-ratio:16 / calc(10 * var(--lv-paper-depth, 1))}.lv-paper--collage.astro-cskxuoyb .lv-gallery__item.astro-cskxuoyb,.lv-paper--collage.astro-cskxuoyb .lv-gallery__item.astro-cskxuoyb:nth-child(even){position:absolute;inset-inline-start:var(--lv-paper-x);inset-block-start:var(--lv-paper-y);inline-size:var(--lv-paper-w);block-size:var(--lv-paper-h);z-index:var(--lv-paper-z);margin:0;aspect-ratio:auto}.lv-paper--collage.astro-cskxuoyb .lv-gallery__item.astro-cskxuoyb:hover,.lv-paper--collage.astro-cskxuoyb .lv-gallery__item.astro-cskxuoyb:focus-within{z-index:10}.lv-paper--collage.astro-cskxuoyb .lv-gallery__item.astro-cskxuoyb:hover .lv-gallery__fig.astro-cskxuoyb{transform:translateY(calc(var(--lv-space-1) * -1));box-shadow:0 2px 4px rgb(var(--lv-glass-under) / 0.14),0 20px 40px -14px rgb(var(--lv-glass-under) / 0.38)}.lv-paper--side-label.astro-cskxuoyb .lv-paper__inner.astro-cskxuoyb{display:grid}.lv-paper--side-label.astro-cskxuoyb .lv-paper__head.astro-cskxuoyb,.lv-paper--side-label.astro-cskxuoyb .lv-paper__stage.astro-cskxuoyb{grid-area:1 / 1}.lv-paper--side-label.astro-cskxuoyb .lv-paper__head.astro-cskxuoyb{position:relative;z-index:11;align-self:start;max-inline-size:12%;margin:var(--lv-space-7) 0 0;padding:0}.lv-paper--side-label.astro-cskxuoyb .lv-paper__head.astro-cskxuoyb::before{content:none}.lv-paper--side-label.astro-cskxuoyb .lv-paper__head.astro-cskxuoyb::after{content:"";display:block;inline-size:var(--lv-space-8);block-size:1px;margin-block-start:var(--lv-space-4);background:var(--lv-line-strong)}}.lv-paper--collage.astro-cskxuoyb .lv-gallery__expand.astro-cskxuoyb:focus-visible{outline-offset:calc(var(--lv-space-1) * 1.5 + var(--lv-focus-width))}.lv-paper--carousel.astro-cskxuoyb{padding-inline:0}.lv-paper--carousel.astro-cskxuoyb .lv-paper__head.astro-cskxuoyb{padding-inline:var(--lv-gutter)}.lv-paper--carousel.astro-cskxuoyb .lv-paper__stage.astro-cskxuoyb{position:relative;--lv-paper-plate: min(72cqi, 18rem)}@container (min-width: 46rem){.lv-paper--carousel.astro-cskxuoyb .lv-paper__stage.astro-cskxuoyb{--lv-paper-plate: clamp(16rem, 24cqi, 22rem)}}.lv-paper--carousel.astro-cskxuoyb .lv-gallery__list.astro-cskxuoyb{display:grid;grid-auto-flow:column;grid-auto-columns:var(--lv-paper-plate);gap:var(--lv-space-5);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding-inline:calc((100% - var(--lv-paper-plate)) / 2);padding-block-end:var(--lv-space-3);scrollbar-width:none}@container (min-width: 46rem){.lv-paper--carousel.astro-cskxuoyb .lv-gallery__list.astro-cskxuoyb{gap:var(--lv-space-7)}}.lv-paper--carousel.astro-cskxuoyb .lv-gallery__item.astro-cskxuoyb{scroll-snap-align:center}.lv-paper--carousel.astro-cskxuoyb:not(.lv-paper--stepping) .lv-gallery__list.astro-cskxuoyb{grid-auto-flow:row;grid-template-columns:repeat(auto-fit,var(--lv-paper-plate));justify-content:center;padding-inline:0;overflow-x:visible;scroll-snap-type:none}.lv-paper--carousel.astro-cskxuoyb .lv-gallery__fig.astro-cskxuoyb .lv-media.astro-cskxuoyb{aspect-ratio:4 / 5}.lv-paper--carousel.astro-cskxuoyb .lv-gallery__cap.astro-cskxuoyb{display:flex;flex-direction:column;align-items:center;gap:var(--lv-space-2);margin-block-start:var(--lv-space-5);text-align:center}.lv-paper__caption.astro-cskxuoyb{display:contents}.lv-paper__title.astro-cskxuoyb{font-size:var(--lv-text-xs);font-weight:var(--lv-weight-medium);letter-spacing:0.24em;line-height:1.6;text-transform:uppercase;color:var(--lv-text-secondary)}.lv-paper__place.astro-cskxuoyb{font-family:var(--lv-display-family);font-style:italic;font-size:var(--lv-text-md);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary)}.lv-paper__open.astro-cskxuoyb{display:none}.astro-cskxuoyb[data-lv-ready] .lv-paper__open.astro-cskxuoyb{display:inline-flex;flex-direction:column;align-items:center;gap:var(--lv-space-3);min-block-size:44px;margin-block-start:var(--lv-space-2);padding:var(--lv-space-2) 0 0;border:0;background:transparent;font:inherit;font-size:var(--lv-text-2xs, var(--lv-text-xs));letter-spacing:0.24em;text-transform:uppercase;color:var(--lv-text-tertiary);cursor:zoom-in}.astro-cskxuoyb[data-lv-ready] .lv-paper__open.astro-cskxuoyb::before{content:"";order:2;inline-size:calc(var(--lv-space-6) + var(--lv-space-2));block-size:1px;background:var(--lv-line-strong);transition:inline-size var(--lv-dur-state) var(--lv-ease)}.astro-cskxuoyb[data-lv-ready] .lv-paper__open.astro-cskxuoyb::after{content:"";position:absolute;inset:0}.lv-paper__open.astro-cskxuoyb:hover::before,.lv-paper__open.astro-cskxuoyb:focus-visible::before{inline-size:var(--lv-space-8)}.lv-paper__open.astro-cskxuoyb:hover{color:var(--lv-text-primary)}.lv-paper__open.astro-cskxuoyb:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-paper__steps.astro-cskxuoyb{display:none}.astro-cskxuoyb[data-lv-ready] .lv-paper__steps.astro-cskxuoyb{display:flex;justify-content:space-between;position:absolute;inset-inline:var(--lv-space-5);inset-block-start:calc(var(--lv-paper-plate) * 1.25 / 2 - 30px);pointer-events:none}.lv-paper__step.astro-cskxuoyb{display:grid;place-items:center;inline-size:60px;block-size:60px;border:1px solid var(--lv-line-strong);border-radius:var(--lv-radius-pill);background:var(--lv-surface);color:var(--lv-text-secondary);cursor:pointer;pointer-events:auto;transition:background-color var(--lv-dur-fast) var(--lv-ease),color var(--lv-dur-fast) var(--lv-ease)}.lv-paper__step.astro-cskxuoyb:hover:not(:disabled){background:color-mix(in oklab,var(--lv-text-primary) 6%,var(--lv-surface));color:var(--lv-text-primary)}.lv-paper__step.astro-cskxuoyb:disabled{cursor:default;opacity:0.4}.lv-paper__step.astro-cskxuoyb:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-paper__at.astro-cskxuoyb{display:none}.astro-cskxuoyb[data-lv-ready] .lv-paper__at.astro-cskxuoyb{display:block;max-inline-size:none;margin:var(--lv-space-5) 0 0;text-align:center;font-size:var(--lv-text-xs);font-variant-numeric:tabular-nums;letter-spacing:0.24em;color:var(--lv-text-tertiary)}@container (max-width: 37.499rem){.astro-cskxuoyb[data-lv-ready] .lv-paper__steps.astro-cskxuoyb{display:none}}@media (prefers-reduced-motion: reduce){.lv-paper--collage.astro-cskxuoyb .lv-gallery__fig.astro-cskxuoyb,.lv-paper__open.astro-cskxuoyb::before,.lv-paper__step.astro-cskxuoyb{transition-duration:0.01ms}}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-paper--collage.astro-cskxuoyb .lv-gallery__item.astro-cskxuoyb{animation:lv-paper-settle linear both;animation-timeline:view();animation-range:entry 0% entry 80%}.lv-paper--stepping.astro-cskxuoyb .lv-gallery__item.astro-cskxuoyb{animation:lv-paper-grade linear both;animation-timeline:view(inline)}@keyframes lv-paper-settle{from{transform:translateY(24px) rotate(var(--lv-paper-turn, 0deg))}to{transform:none}}@keyframes lv-paper-grade{0%{filter:saturate(0.55)}45%{filter:saturate(1)}55%{filter:saturate(1)}100%{filter:saturate(0.55)}}}}
/* components/browse.image-set/renderers/gallery-plates.astro */
.lv-gallery__filters.astro-bwnlgrd3{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--lv-space-3);margin-block-end:var(--lv-space-5)}.lv-gallery__filter.astro-bwnlgrd3[aria-pressed=true]{background:var(--lv-brand-soft);color:var(--lv-brand-strong);box-shadow:inset 0 0 0 1px var(--lv-brand-strong);font-weight:var(--lv-weight-semibold)}.lv-gallery__count.astro-bwnlgrd3{margin:0;font-size:var(--lv-text-xs);font-variant-numeric:tabular-nums;color:var(--lv-text-tertiary)}.lv-gallery__none.astro-bwnlgrd3{margin:0;padding-block:var(--lv-space-6);font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-gallery__item.astro-bwnlgrd3[hidden],.lv-gallery__none.astro-bwnlgrd3[hidden]{display:none}.lv-gallery__list.astro-bwnlgrd3{--lv-plate-gap: var(--lv-space-7);display:flex;flex-wrap:wrap;justify-content:center;gap:var(--lv-space-6) var(--lv-plate-gap);margin:0;padding:0;list-style:none}.lv-gallery__item.astro-bwnlgrd3{flex:0 0 80%;min-inline-size:0}@container (min-width: 40rem){.lv-gallery__item.astro-bwnlgrd3{flex-basis:calc((100% - var(--lv-plate-gap)) / 2)}}@container (min-width: 60rem){.lv-gallery__item.astro-bwnlgrd3{flex-basis:calc((100% - (var(--lv-plate-count) - 1) * var(--lv-plate-gap)) * var(--lv-plate-share))}}.lv-gallery__fig.astro-bwnlgrd3{margin:0;position:relative}.lv-gallery__fig.astro-bwnlgrd3 .lv-media.astro-bwnlgrd3{position:relative;overflow:hidden;border-radius:var(--lv-radius-sm);background:var(--lv-surface-sunken);aspect-ratio:1}.is-wide.astro-bwnlgrd3 .lv-media.astro-bwnlgrd3{aspect-ratio:3 / 2}@container (max-width: 59.999rem){.lv-gallery__fig.astro-bwnlgrd3 .lv-media.astro-bwnlgrd3,.is-wide.astro-bwnlgrd3 .lv-media.astro-bwnlgrd3{aspect-ratio:3 / 2}}.lv-gallery__fig.astro-bwnlgrd3 .lv-media.astro-bwnlgrd3 img.astro-bwnlgrd3{display:block;inline-size:100%;block-size:100%;object-fit:cover}.lv-gallery__item.astro-bwnlgrd3:only-child{flex-basis:100%}.lv-gallery__item.astro-bwnlgrd3:only-child .lv-media.astro-bwnlgrd3{aspect-ratio:auto}.lv-gallery__item.astro-bwnlgrd3:only-child .lv-media.astro-bwnlgrd3 img.astro-bwnlgrd3{block-size:auto;max-block-size:calc(var(--lv-stage-vh, 100svh) * 0.66)}.lv-gallery__cap.astro-bwnlgrd3{display:block;margin-block-start:var(--lv-space-3);font-family:var(--lv-font-ui);font-size:var(--lv-text-lg);line-height:var(--lv-leading-snug);text-align:center;color:var(--lv-text-primary)}.lv-gallery__cap.astro-bwnlgrd3:not(:has(> span:not(.lv-vh))){margin:0}.lv-gallery--cap-none.astro-bwnlgrd3 .lv-gallery__cap.astro-bwnlgrd3 span.astro-bwnlgrd3:not(.lv-vh){display:none}.lv-gallery__expand.astro-bwnlgrd3{display:none}.astro-bwnlgrd3[data-lv-ready] .lv-gallery__expand.astro-bwnlgrd3{display:block;position:absolute;inset:0;z-index:1;border:0;margin:0;padding:0;background:transparent;cursor:zoom-in}.lv-gallery__expand.astro-bwnlgrd3:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-focus-width) * -1)}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-gallery--plates.astro-bwnlgrd3 .lv-gallery__item.astro-bwnlgrd3{animation:lv-plates-settle linear both;animation-timeline:view();animation-range:entry 8% entry 62%}@keyframes lv-plates-settle{from{scale:0.985}to{scale:1}}}}
/* components/browse.image-set/renderers/gallery.astro */
.lv-gallery__filters.astro-vqv3q2am{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--lv-space-3);margin-block-end:var(--lv-space-5)}.lv-gallery__filter.astro-vqv3q2am[aria-pressed=true]{background:var(--lv-brand-soft);color:var(--lv-brand-strong);box-shadow:inset 0 0 0 1px var(--lv-brand-strong);font-weight:var(--lv-weight-semibold)}.lv-gallery__count.astro-vqv3q2am{margin:0;font-size:var(--lv-text-xs);font-variant-numeric:tabular-nums;color:var(--lv-text-tertiary)}.lv-gallery__none.astro-vqv3q2am{margin:0;padding-block:var(--lv-space-6);font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-gallery__item.astro-vqv3q2am[hidden],.lv-gallery__none.astro-vqv3q2am[hidden]{display:none}.lv-gallery__list.astro-vqv3q2am{margin:0;padding:0;list-style:none;display:grid;gap:var(--lv-space-4);grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr))}.lv-gallery--grid.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am{grid-template-columns:minmax(0,1fr)}@container (min-width: 30rem){.lv-gallery--grid.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (min-width: 48rem){.lv-gallery--grid.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am{grid-template-columns:repeat(3,minmax(0,1fr))}.lv-gallery--grid.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am:has(> .lv-gallery__item:first-child:nth-last-child(2)){grid-template-columns:repeat(2,minmax(0,1fr))}.lv-gallery--grid.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am:nth-child(3n + 1):last-child:not(:only-child){grid-column:2}}.lv-gallery--grid.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am:only-child{grid-column:1 / -1}.lv-gallery--grid.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am:only-child .lv-media.astro-vqv3q2am{aspect-ratio:21 / 9}.lv-gallery__fig.astro-vqv3q2am{margin:0;position:relative}.lv-gallery__fig.astro-vqv3q2am .lv-media.astro-vqv3q2am{position:relative}.lv-gallery--grid.astro-vqv3q2am .lv-media.astro-vqv3q2am{aspect-ratio:4 / 3}.lv-gallery--masonry.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am{display:block;columns:1;column-gap:var(--lv-space-4)}@container (min-width: 33rem){.lv-gallery--masonry.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am{columns:2}}@container (min-width: 50rem){.lv-gallery--masonry.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am{columns:3}}.lv-gallery--masonry.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am{break-inside:avoid;margin-block-end:var(--lv-space-4)}.lv-gallery--masonry.astro-vqv3q2am .lv-media.astro-vqv3q2am{aspect-ratio:auto}@container (min-width: 33rem){.lv-gallery--masonry.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am:has(> .lv-gallery__item:first-child:nth-last-child(-n + 4)){columns:2}}.lv-gallery--masonry.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am:has(> .lv-gallery__item:first-child:nth-last-child(1)){columns:1}.lv-gallery--masonry.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am:only-child .lv-media.astro-vqv3q2am{aspect-ratio:21 / 9}.lv-gallery--rail.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am{grid-auto-flow:column;grid-auto-columns:minmax(min(16rem,78%),1fr);grid-template-columns:none;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:var(--lv-space-4);padding-block-end:var(--lv-space-3)}.lv-gallery--rail.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am{scroll-snap-align:start}.lv-gallery--rail.astro-vqv3q2am .lv-media.astro-vqv3q2am{aspect-ratio:4 / 3}.lv-gallery--rail.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am:has(> .lv-gallery__item:first-child:nth-last-child(-n + 3)){grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr));overflow-x:visible;scroll-snap-type:none}@container (min-width: 46rem){.lv-gallery--maison.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--lv-space-5);row-gap:var(--lv-space-9);align-items:start;counter-reset:lv-maison}.lv-gallery--maison.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am{grid-column:1 / -1}.lv-gallery--maison.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am:nth-child(6n + 1){grid-column:1 / span 7}.lv-gallery--maison.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am:nth-child(6n + 2){grid-column:9 / span 4;margin-block-start:var(--lv-space-9)}.lv-gallery--maison.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am:nth-child(6n + 3){grid-column:1 / span 12}.lv-gallery--maison.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am:nth-child(6n + 4){grid-column:2 / span 4}.lv-gallery--maison.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am:nth-child(6n + 5){grid-column:7 / span 6;margin-block-start:var(--lv-space-9)}.lv-gallery--maison.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am:nth-child(6n + 6){grid-column:3 / span 8}.lv-gallery--maison.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am:has(> .lv-gallery__item:first-child:nth-last-child(-n + 2)){grid-template-columns:repeat(auto-fit,minmax(min(20rem,100%),1fr));row-gap:var(--lv-space-6)}.lv-gallery--maison.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am:has(> .lv-gallery__item:first-child:nth-last-child(-n + 2))>.lv-gallery__item.astro-vqv3q2am{grid-column:auto;margin-block-start:0}.lv-gallery--maison.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am:has(> .lv-gallery__item[hidden]){grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--lv-space-6)}.lv-gallery--maison.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am:has(> .lv-gallery__item[hidden])>.lv-gallery__item.astro-vqv3q2am{grid-column:auto;margin-block-start:0}}.lv-gallery--maison.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am{row-gap:var(--lv-space-7)}.lv-gallery--maison.astro-vqv3q2am .lv-media.astro-vqv3q2am{aspect-ratio:auto}.lv-gallery--maison.astro-vqv3q2am .lv-gallery__fig.astro-vqv3q2am{inline-size:fit-content;max-inline-size:100%;margin-inline:auto}.lv-gallery--maison.astro-vqv3q2am .lv-media.astro-vqv3q2am{inline-size:fit-content;max-inline-size:100%}.lv-gallery--maison.astro-vqv3q2am .lv-media.astro-vqv3q2am img.astro-vqv3q2am{inline-size:auto;block-size:auto;max-inline-size:100%;max-block-size:calc(var(--lv-stage-vh, 100svh) * 0.82)}.lv-gallery--maison.astro-vqv3q2am.lv-gallery--cap-below .lv-gallery__item.astro-vqv3q2am{counter-increment:lv-maison}.lv-gallery--maison.astro-vqv3q2am.lv-gallery--cap-below .lv-gallery__cap.astro-vqv3q2am{display:flex;gap:var(--lv-space-3);align-items:baseline;margin-block-start:var(--lv-space-3)}.lv-gallery--maison.astro-vqv3q2am.lv-gallery--cap-below .lv-gallery__cap.astro-vqv3q2am::before{content:counter(lv-maison,decimal-leading-zero);flex:none;font-variant-numeric:tabular-nums;letter-spacing:var(--lv-tracking-num);color:var(--lv-text-tertiary)}.lv-gallery__cap.astro-vqv3q2am{display:block;margin-block-start:var(--lv-space-2);font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-gallery--cap-none.astro-vqv3q2am .lv-gallery__cap.astro-vqv3q2am span.astro-vqv3q2am:not(.lv-vh){display:none}.lv-gallery--cap-overlay.astro-vqv3q2am .lv-gallery__cap.astro-vqv3q2am{position:absolute;inset-block-end:var(--lv-space-2);inset-inline-start:var(--lv-space-2);margin:0;padding:2px var(--lv-space-3);border-radius:var(--lv-radius-pill);background:var(--lv-surface);color:var(--lv-text-primary)}.lv-gallery--cap-scrim.astro-vqv3q2am .lv-gallery__cap.astro-vqv3q2am{position:absolute;inset:auto 0 0 0;margin:0;padding:var(--lv-space-6) var(--lv-space-3) var(--lv-space-3);background:linear-gradient(to top,rgb(var(--lv-glass-under) / 0.78) 0%,rgb(var(--lv-glass-under) / 0) 100%);color:var(--lv-text-on-brand);font-weight:var(--lv-weight-medium)}@media (prefers-reduced-motion: no-preference){@media (hover: hover){.lv-gallery--cap-scrim.astro-vqv3q2am .lv-gallery__cap.astro-vqv3q2am{opacity:0;transition:opacity var(--lv-dur-state) var(--lv-ease)}.lv-gallery--cap-scrim.astro-vqv3q2am .lv-gallery__fig.astro-vqv3q2am:hover .lv-gallery__cap.astro-vqv3q2am,.lv-gallery--cap-scrim.astro-vqv3q2am .lv-gallery__fig.astro-vqv3q2am:focus-within .lv-gallery__cap.astro-vqv3q2am{opacity:1}}}.lv-gallery__fig.astro-vqv3q2am .lv-media.astro-vqv3q2am img.astro-vqv3q2am{transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-gallery__fig.astro-vqv3q2am:hover .lv-media.astro-vqv3q2am img.astro-vqv3q2am,.lv-gallery__fig.astro-vqv3q2am:focus-within .lv-media.astro-vqv3q2am img.astro-vqv3q2am{transform:scale(1.045)}@container (min-width: 46rem){.lv-gallery--bento.astro-vqv3q2am .lv-gallery__list.astro-vqv3q2am{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:12rem}.lv-gallery--bento.astro-vqv3q2am .lv-media.astro-vqv3q2am{block-size:100%;aspect-ratio:auto}.lv-gallery--bento.astro-vqv3q2am .lv-gallery__fig.astro-vqv3q2am{block-size:100%}.lv-gallery--bento.astro-vqv3q2am .is-2x1.astro-vqv3q2am{grid-column:span 2}.lv-gallery--bento.astro-vqv3q2am .is-2x2.astro-vqv3q2am{grid-column:span 2;grid-row:span 2}.lv-gallery--bento.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am:only-child{grid-column:1 / -1;grid-row:span 2}.lv-gallery--bento.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am:first-child:nth-last-child(2),.lv-gallery--bento.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am:first-child:nth-last-child(2)~.lv-gallery__item.astro-vqv3q2am{grid-column:span 2;grid-row:span 2}}.lv-gallery__expand.astro-vqv3q2am{display:none}.astro-vqv3q2am[data-lv-ready] .lv-gallery__expand.astro-vqv3q2am{display:block;position:absolute;inset:0;z-index:1;border:0;margin:0;padding:0;background:transparent;cursor:zoom-in}.lv-gallery__expand.astro-vqv3q2am:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-focus-width) * -1)}.lv-gallery__expand-icon.astro-vqv3q2am{position:absolute;inset-block-end:var(--lv-space-2);inset-inline-end:var(--lv-space-2);display:grid;place-items:center;inline-size:44px;block-size:44px;border-radius:var(--lv-radius-pill);background:var(--lv-surface);box-shadow:var(--lv-lift-2);color:var(--lv-text-primary);transition:background-color var(--lv-dur-fast) var(--lv-ease),color var(--lv-dur-fast) var(--lv-ease),transform var(--lv-dur-fast) var(--lv-ease)}.lv-gallery__fig.astro-vqv3q2am:hover .lv-gallery__expand-icon.astro-vqv3q2am,.lv-gallery__expand.astro-vqv3q2am:focus-visible .lv-gallery__expand-icon.astro-vqv3q2am{background:var(--lv-brand-strong);color:var(--lv-text-on-brand);transform:translateY(-1px)}.lv-gallery__expand.astro-vqv3q2am:active .lv-gallery__expand-icon.astro-vqv3q2am{transform:translateY(0) scale(0.94)}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-gallery--album.astro-vqv3q2am .lv-gallery__item.astro-vqv3q2am{animation:lv-gallery-settle linear both;animation-timeline:view();animation-range:entry 8% entry 62%}@keyframes lv-gallery-settle{from{scale:0.985}to{scale:1}}}}
/* components/browse.jobs/renderers/jobs.astro */
.lv-jobs.astro-lrvbhrph{max-width:52rem}.lv-jobs__row.astro-lrvbhrph{display:grid;gap:var(--lv-space-1)}.lv-jobs__row.astro-lrvbhrph a.astro-lrvbhrph{color:var(--lv-text-primary);text-decoration:none}.lv-jobs__row.astro-lrvbhrph a.astro-lrvbhrph:hover{text-decoration:underline}.lv-jobs__meta.astro-lrvbhrph{display:flex;flex-wrap:wrap;gap:var(--lv-space-2) var(--lv-space-4);margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-jobs__note.astro-lrvbhrph{max-width:var(--lv-measure);margin-block-start:var(--lv-space-5);font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}
/* components/browse.locations/renderers/locations.astro */
.lv-locs.astro-z4skted2{display:grid;gap:var(--lv-space-5)}.lv-locs__search.astro-z4skted2{max-width:26rem}.lv-locs__list.astro-z4skted2{display:grid;gap:var(--lv-space-4);margin:0;padding:0;list-style:none}@container (min-width: 46rem){.lv-locs__list.astro-z4skted2{display:flex;flex-wrap:wrap;justify-content:center}.lv-locs__list.astro-z4skted2 .lv-map__entry{flex:1 1 min(16rem,100%);max-inline-size:calc((100% - 2 * var(--lv-space-4)) / 3)}}
/* components/browse.narrow/renderers/narrow-bar.astro */
.lv-nbar-shell.astro-y2yobk56{container-type:inline-size;block-size:100%}.lv-nbar.astro-y2yobk56{font:var(--lv-weight-regular) var(--lv-text-sm) / 1.3 var(--lv-font-ui);color:var(--lv-text-primary)}.lv-nbar__line.astro-y2yobk56{position:relative;border-block-end:1px solid var(--lv-line)}.lv-nbar__toggle.astro-y2yobk56{display:inline-flex;align-items:center;gap:var(--lv-space-2);min-block-size:44px;cursor:pointer;list-style:none}.lv-nbar__toggle.astro-y2yobk56::-webkit-details-marker{display:none}.lv-nbar__toggle.astro-y2yobk56::after{content:"";inline-size:9px;block-size:9px;background:linear-gradient(currentColor,currentColor) center / 100% 1px no-repeat,linear-gradient(currentColor,currentColor) center / 1px 100% no-repeat;transition:background-size var(--lv-dur-state) var(--lv-ease)}.lv-nbar__drawer.astro-y2yobk56[open]>.lv-nbar__toggle.astro-y2yobk56::after{background-size:100% 1px,1px 0}.lv-nbar__toggle.astro-y2yobk56:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-nbar__panel.astro-y2yobk56{display:grid;gap:var(--lv-space-5);padding-block:var(--lv-space-3) var(--lv-space-5)}.lv-nbar__search.astro-y2yobk56,.lv-nbar__field.astro-y2yobk56{display:block}.lv-nbar__search.astro-y2yobk56 input.astro-y2yobk56,.lv-nbar__field.astro-y2yobk56 input.astro-y2yobk56,.lv-nbar__sort.astro-y2yobk56 select.astro-y2yobk56{inline-size:100%;min-block-size:40px;padding:0;border:0;border-block-end:1px solid var(--lv-line-control);border-radius:0;background:transparent;color:var(--lv-text-primary);font:inherit}.lv-nbar__search.astro-y2yobk56{max-inline-size:22rem}.lv-nbar__search.astro-y2yobk56 input.astro-y2yobk56:focus-visible,.lv-nbar__field.astro-y2yobk56 input.astro-y2yobk56:focus-visible,.lv-nbar__sort.astro-y2yobk56 select.astro-y2yobk56:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-nbar__facets.astro-y2yobk56{display:grid;gap:var(--lv-space-4)}.lv-nbar__facet.astro-y2yobk56{min-inline-size:0;margin:0;padding:0;border:0}.lv-nbar__legend.astro-y2yobk56{padding:0;margin-block-end:var(--lv-space-1);font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-nbar__values.astro-y2yobk56{display:flex;flex-wrap:wrap;gap:0 var(--lv-space-5)}.lv-nbar__value.astro-y2yobk56{position:relative;display:inline-flex;align-items:baseline;gap:var(--lv-space-1);min-block-size:44px;align-content:center;padding-block:var(--lv-space-3);color:var(--lv-text-secondary);cursor:pointer;transition:color var(--lv-dur-state) var(--lv-ease)}.lv-nbar__value.astro-y2yobk56:hover{color:var(--lv-text-primary)}.lv-nbar__check.astro-y2yobk56{position:absolute;inline-size:1px;block-size:1px;margin:0;opacity:0;pointer-events:none}.lv-nbar__word.astro-y2yobk56{text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:0.35em;text-decoration-color:transparent;transition:text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-nbar__value.astro-y2yobk56:has(.lv-nbar__check:checked){color:var(--lv-text-primary);font-weight:var(--lv-weight-medium)}.lv-nbar__value.astro-y2yobk56:has(.lv-nbar__check:checked) .lv-nbar__word.astro-y2yobk56{text-decoration-color:currentColor}.lv-nbar__value.astro-y2yobk56:has(.lv-nbar__check:focus-visible){outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-nbar__count.astro-y2yobk56{font-size:var(--lv-text-xs);font-variant-numeric:tabular-nums;color:var(--lv-text-tertiary)}.lv-nbar__range.astro-y2yobk56{display:flex;align-items:center;gap:var(--lv-space-3);max-inline-size:16rem}.lv-nbar__field.astro-y2yobk56{flex:1 1 0;min-inline-size:0}.lv-nbar__field.astro-y2yobk56 input.astro-y2yobk56{font-variant-numeric:tabular-nums}.lv-nbar__sep.astro-y2yobk56{color:var(--lv-text-tertiary)}.lv-nbar__actions.astro-y2yobk56{display:flex;flex-wrap:wrap;gap:var(--lv-space-5)}.lv-nbar__action.astro-y2yobk56{min-block-size:44px;padding:0;border:0;background:transparent;color:var(--lv-text-primary);font:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.35em;cursor:pointer}.lv-nbar__action--quiet.astro-y2yobk56{color:var(--lv-text-secondary);text-decoration-color:transparent}.lv-nbar__action--quiet.astro-y2yobk56:hover{text-decoration-color:currentColor}.lv-nbar__action.astro-y2yobk56:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-nbar__sort.astro-y2yobk56{position:absolute;inset-block-start:0;inset-inline-end:0;display:inline-flex;align-items:center;gap:var(--lv-space-2);margin:0;min-block-size:44px}.lv-nbar__sort-label.astro-y2yobk56{color:var(--lv-text-secondary)}.lv-nbar__sort.astro-y2yobk56 select.astro-y2yobk56{inline-size:auto;min-block-size:32px;border-block-end-color:transparent;cursor:pointer}.lv-nbar__sort.astro-y2yobk56 select.astro-y2yobk56:hover{border-block-end-color:var(--lv-line-control)}@container (min-width: 52rem){.lv-nbar--above.astro-y2yobk56 .lv-nbar__facets.astro-y2yobk56{grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--lv-space-6)}}.lv-nbar--sidebar.astro-y2yobk56 .lv-nbar__line.astro-y2yobk56{border-block-end:0}@media (min-width: 60rem){.lv-nbar--sidebar.astro-y2yobk56{position:sticky;inset-block-start:var(--lv-space-5)}}@media (prefers-reduced-motion: reduce){.lv-nbar__toggle.astro-y2yobk56::after,.lv-nbar__value.astro-y2yobk56,.lv-nbar__word.astro-y2yobk56{transition:none}}
/* components/browse.narrow/renderers/narrow.astro */
.lv-narrow-shell.astro-d7os52sd{container-type:inline-size;block-size:100%}.lv-narrow.astro-d7os52sd{display:grid;gap:var(--lv-space-4);padding:var(--lv-space-5);border-radius:var(--lv-radius-md);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-narrow__heading.astro-d7os52sd{margin:0}.lv-narrow__facet.astro-d7os52sd{border:0;margin:0;padding:0}.lv-narrow__facet.astro-d7os52sd legend.astro-d7os52sd{padding:0;margin-block-end:var(--lv-space-2)}.lv-narrow__value.astro-d7os52sd{cursor:pointer}.lv-narrow__value.astro-d7os52sd:has(input:checked){background:var(--lv-brand-soft);box-shadow:inset 0 0 0 1px var(--lv-brand)}.lv-narrow__facets.astro-d7os52sd{display:grid;gap:var(--lv-space-4)}.lv-narrow__range.astro-d7os52sd{display:flex;align-items:center;gap:var(--lv-space-2);max-inline-size:16rem}.lv-narrow__range-field.astro-d7os52sd{flex:1 1 0;min-inline-size:0}.lv-narrow__range-field.astro-d7os52sd input.astro-d7os52sd{inline-size:100%;font-variant-numeric:tabular-nums;font-family:var(--lv-font-mono)}.lv-narrow__range-sep.astro-d7os52sd{flex:none;color:var(--lv-text-tertiary)}.lv-narrow__sort.astro-d7os52sd{display:grid;gap:var(--lv-space-2);margin:0}.lv-narrow__sort.astro-d7os52sd select.astro-d7os52sd{min-block-size:var(--lv-field-height);padding-inline:var(--lv-field-padding-x);border-radius:var(--lv-field-radius);border:1px solid var(--lv-field-border);background:var(--lv-field-bg);color:var(--lv-text-primary);font:inherit}.lv-narrow__actions.astro-d7os52sd{display:flex;flex-wrap:wrap;gap:var(--lv-space-3)}@container (min-width: 52rem){.lv-narrow--above.astro-d7os52sd{grid-template-columns:repeat(auto-fit,minmax(min(14rem,100%),1fr));align-items:end}.lv-narrow--above.astro-d7os52sd .lv-narrow__heading.astro-d7os52sd{grid-column:1 / -1}.lv-narrow--above.astro-d7os52sd .lv-narrow__facets.astro-d7os52sd{grid-column:1 / -1;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}}@media (min-width: 60rem){.lv-narrow--sidebar.astro-d7os52sd{position:sticky;inset-block-start:var(--lv-space-5)}}
/* components/browse.product-content/renderers/content.astro */
.lv-pcontent__grid.astro-6iienvtk{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lv-space-7) var(--lv-space-8);align-items:start}@media (min-width: 900px){.lv-pcontent__grid.astro-6iienvtk.has-aside{grid-template-columns:minmax(0,1fr) minmax(15rem,22rem)}.lv-pcontent__grid.astro-6iienvtk.has-aside>.lv-pcontent__aside.astro-6iienvtk{grid-column:2;grid-row:1 / span 3}.lv-pcontent__grid.astro-6iienvtk.has-aside>.astro-6iienvtk:not(.lv-pcontent__aside){grid-column:1}}.lv-pcontent__main.astro-6iienvtk{display:grid;gap:var(--lv-space-6)}.lv-pcontent__block.astro-6iienvtk{display:grid;gap:var(--lv-space-3)}.lv-pcontent__section.astro-6iienvtk>.astro-6iienvtk:last-child{margin-block-end:0}.lv-pcontent__h2.astro-6iienvtk{margin:0;font-family:var(--lv-display-family, var(--lv-font-ui));font-size:var(--lv-text-lg);font-weight:var(--lv-weight-heading);letter-spacing:var(--lv-tracking-heading, 0);line-height:var(--lv-leading-tight);color:var(--lv-text-primary);text-wrap:balance}.lv-pcontent__h2--aside.astro-6iienvtk,.lv-pcontent__h2--small.astro-6iienvtk{font-size:var(--lv-text-md)}.lv-pcontent__h3.astro-6iienvtk{margin:var(--lv-space-4) 0 var(--lv-space-2);font-family:var(--lv-font-ui);font-size:var(--lv-text-md);font-weight:var(--lv-weight-semibold);line-height:var(--lv-leading-snug);color:var(--lv-text-primary)}.lv-pcontent__section.astro-6iienvtk:first-child>.lv-pcontent__h3.astro-6iienvtk:first-child{margin-block-start:0}.lv-pcontent__list.astro-6iienvtk{padding-inline-start:var(--lv-space-5)}.lv-pcontent__list.astro-6iienvtk li.astro-6iienvtk+li.astro-6iienvtk{margin-block-start:var(--lv-space-1)}.lv-pcontent__aside.astro-6iienvtk{display:grid;gap:var(--lv-space-3);align-content:start}.lv-pcontent__facts.astro-6iienvtk{margin:0;border-block-start:1px solid var(--lv-line)}.lv-pcontent__fact.astro-6iienvtk{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:var(--lv-space-3);padding-block:var(--lv-space-2);border-block-end:1px solid var(--lv-line);font-size:var(--lv-text-sm);line-height:var(--lv-leading-snug)}.lv-pcontent__fact.astro-6iienvtk dt.astro-6iienvtk{color:var(--lv-text-tertiary)}.lv-pcontent__fact.astro-6iienvtk dd.astro-6iienvtk{margin:0;color:var(--lv-text-primary);font-variant-numeric:tabular-nums lining-nums;text-align:end;overflow-wrap:anywhere}.lv-pcontent__contents.astro-6iienvtk{margin:0;padding-inline-start:var(--lv-space-5);font-size:var(--lv-text-sm);color:var(--lv-text-primary);line-height:var(--lv-leading-normal)}.lv-pcontent__faq.astro-6iienvtk{display:grid;gap:var(--lv-space-3);max-inline-size:var(--lv-measure)}.lv-pcontent__qa.astro-6iienvtk{border-block-start:1px solid var(--lv-line)}.lv-pcontent__item.astro-6iienvtk{border-block-end:1px solid var(--lv-line)}.lv-pcontent__q.astro-6iienvtk{display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-3);min-block-size:44px;padding-block:var(--lv-space-2);list-style:none;cursor:pointer;font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-pcontent__q.astro-6iienvtk::-webkit-details-marker{display:none}.lv-pcontent__chev.astro-6iienvtk{flex:none;color:var(--lv-text-secondary)}.lv-pcontent__item.astro-6iienvtk[open] .lv-pcontent__chev.astro-6iienvtk{transform:rotate(180deg)}.lv-pcontent__a.astro-6iienvtk{margin:0;padding-block:0 var(--lv-space-4);color:var(--lv-text-secondary);line-height:var(--lv-leading-normal)}.lv-pcontent__a.astro-6iienvtk a.astro-6iienvtk{color:var(--lv-text-link)}.lv-pcontent__links.astro-6iienvtk{display:grid;gap:var(--lv-space-3)}.lv-pcontent.astro-6iienvtk .astro-6iienvtk:is(.lv-pcontent__q,.lv-chip,a):focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}
/* components/browse.product-detail/renderers/detail-buybox.astro */
.lv-buybox.astro-tmseez47{display:grid;gap:var(--lv-space-5);inline-size:100%;max-inline-size:26rem;margin-inline:auto}.lv-buybox__head.astro-tmseez47{display:grid;gap:var(--lv-space-1);justify-items:center;text-align:center}.lv-buybox__name.astro-tmseez47{margin:0;font:var(--lv-weight-regular) var(--lv-text-md) / var(--lv-leading-snug) var(--lv-font-ui);letter-spacing:normal;text-transform:none;text-wrap:balance;color:var(--lv-text-primary)}.lv-buybox__price.astro-tmseez47{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:var(--lv-space-2);margin:0;font:var(--lv-weight-regular) var(--lv-text-md) / var(--lv-leading-snug) var(--lv-font-ui);font-variant-numeric:tabular-nums;color:var(--lv-text-primary)}.lv-buybox__vat.astro-tmseez47{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-buybox__choices.astro-tmseez47{display:grid;gap:var(--lv-space-2)}.lv-buybox__compare.astro-tmseez47{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-buybox__compare.astro-tmseez47[hidden]{display:none}.lv-buybox__stock.astro-tmseez47{margin:0;text-align:center;font-size:var(--lv-text-xs);color:var(--lv-text-secondary)}.lv-buybox__stock.astro-tmseez47[data-state=low]{color:var(--lv-text-primary)}.lv-buybox__cartlink.astro-tmseez47{justify-self:center;display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-sm);color:var(--lv-text-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.3em}.lv-buybox__cartlink.astro-tmseez47[hidden]{display:none}.lv-buybox__cartlink.astro-tmseez47:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-buybox.astro-tmseez47 .lv-choice__opt.astro-tmseez47.is-unavailable .lv-choice__label.astro-tmseez47{text-decoration:line-through;color:var(--lv-text-tertiary)}.lv-buybox__out.astro-tmseez47{color:var(--lv-text-tertiary);font-weight:var(--lv-weight-regular)}.lv-buybox__action.astro-tmseez47{display:grid;grid-template-columns:4.75rem minmax(0,1fr);align-items:stretch;gap:var(--lv-space-2)}.lv-buybox__qty.astro-tmseez47{inline-size:4.75rem;padding-inline:var(--lv-space-2)}.lv-buybox__qty.astro-tmseez47 input.astro-tmseez47{text-align:center;font-variant-numeric:tabular-nums}.lv-buybox__add.astro-tmseez47{display:grid;grid-column:1 / -1;inline-size:100%;font-size:var(--lv-text-sm);font-weight:var(--lv-weight-regular)}.lv-buybox__qty.astro-tmseez47+.lv-buybox__add.astro-tmseez47{grid-column:2}.lv-buybox__action.astro-tmseez47>.astro-tmseez47:is(.lv-buybox__cartlink,[data-lv-pdetail-status]){grid-column:1 / -1}.lv-buybox__add.astro-tmseez47>span.astro-tmseez47{grid-area:1 / 1;transition:opacity var(--lv-dur-state) var(--lv-ease)}.lv-buybox__done.astro-tmseez47{opacity:0}.lv-buybox__add.astro-tmseez47[data-added] .lv-buybox__rest.astro-tmseez47{opacity:0}.lv-buybox__add.astro-tmseez47[data-added] .lv-buybox__done.astro-tmseez47{opacity:1}.lv-buybox__desc.astro-tmseez47{font-size:var(--lv-text-sm);font-family:var(--lv-font-ui)}.lv-buybox__facts.astro-tmseez47{display:grid;gap:var(--lv-space-2);margin:0;font-size:var(--lv-text-xs)}.lv-buybox__fact.astro-tmseez47{display:grid;grid-template-columns:minmax(7rem,max-content) 1fr;gap:var(--lv-space-4)}.lv-buybox__fact.astro-tmseez47 dt.astro-tmseez47{color:var(--lv-text-tertiary)}.lv-buybox__fact.astro-tmseez47 dd.astro-tmseez47{margin:0;color:var(--lv-text-primary)}.lv-buybox__panels.astro-tmseez47{display:grid}.lv-buybox__summary.astro-tmseez47{display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-4);min-block-size:44px;font-size:var(--lv-text-xs);color:var(--lv-text-primary);cursor:pointer;list-style:none}.lv-buybox__summary.astro-tmseez47::-webkit-details-marker{display:none}.lv-buybox__summary.astro-tmseez47::after{content:"";flex:none;inline-size:6px;block-size:6px;margin-inline-end:2px;border-inline-end:1px solid currentColor;border-block-end:1px solid currentColor;transform:rotate(-45deg);transition:transform var(--lv-dur-state) var(--lv-ease)}.lv-buybox__panel.astro-tmseez47[open] .lv-buybox__summary.astro-tmseez47::after{transform:rotate(45deg)}.lv-buybox__panel-body.astro-tmseez47{padding-block:0 var(--lv-space-4);font-size:var(--lv-text-xs);color:var(--lv-text-secondary)}@media (prefers-reduced-motion: reduce){.lv-buybox__add.astro-tmseez47>span.astro-tmseez47,.lv-buybox__summary.astro-tmseez47::after{transition:none}}.lv-buybox__rating.astro-tmseez47{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-buybox__rating.astro-tmseez47{display:inline-flex;align-items:center;gap:var(--lv-space-1)}.lv-buybox__star.astro-tmseez47{color:var(--lv-brand);flex:none}
/* components/browse.product-detail/renderers/detail-label.astro */
.lv-plabel.astro-icpaqa7s{display:grid;gap:var(--lv-space-5);inline-size:100%;max-inline-size:34rem;margin-inline:auto}.lv-plabel__name.astro-icpaqa7s{margin:0;font-family:var(--lv-display-family, var(--lv-font-ui));font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-regular);line-height:var(--lv-leading-tight);letter-spacing:normal;text-transform:none;text-wrap:balance;color:var(--lv-text-primary)}.lv-plabel__desc.astro-icpaqa7s{margin:0;font-size:var(--lv-text-sm);font-family:var(--lv-font-ui)}.lv-plabel__choices.astro-icpaqa7s{display:grid;gap:var(--lv-space-4)}.lv-plabel__price.astro-icpaqa7s{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-2);margin:0;font:var(--lv-weight-regular) var(--lv-text-lg) / 1.2 var(--lv-font-ui);font-variant-numeric:tabular-nums;color:var(--lv-text-primary)}.lv-plabel__vat.astro-icpaqa7s{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-plabel__action.astro-icpaqa7s{display:flex;align-items:stretch;gap:var(--lv-space-2)}.lv-plabel__qty.astro-icpaqa7s{flex:none;inline-size:4.75rem;padding-inline:var(--lv-space-2)}.lv-plabel__qty.astro-icpaqa7s input.astro-icpaqa7s{text-align:center;font-variant-numeric:tabular-nums}.lv-plabel__add.astro-icpaqa7s{flex:1 1 auto;justify-content:space-between;gap:var(--lv-space-3);font-weight:var(--lv-weight-regular)}.lv-plabel__labels.astro-icpaqa7s{display:grid;text-align:start}.lv-plabel__labels.astro-icpaqa7s>span.astro-icpaqa7s{grid-area:1 / 1;transition:opacity var(--lv-dur-state) var(--lv-ease)}.lv-plabel__done.astro-icpaqa7s{opacity:0}.lv-plabel__add.astro-icpaqa7s[data-added] .lv-plabel__rest.astro-icpaqa7s{opacity:0}.lv-plabel__add.astro-icpaqa7s[data-added] .lv-plabel__done.astro-icpaqa7s{opacity:1}.lv-plabel__arrow.astro-icpaqa7s{flex:none;transition:transform var(--lv-dur-state) var(--lv-ease)}.lv-plabel__add.astro-icpaqa7s:hover .lv-plabel__arrow.astro-icpaqa7s{transform:translateX(3px)}.lv-plabel__facts.astro-icpaqa7s{display:grid;margin:0;border-block-start:1px solid var(--lv-line)}.lv-plabel__fact.astro-icpaqa7s{display:grid;grid-template-columns:minmax(8rem,2fr) 3fr;gap:var(--lv-space-4);padding-block:var(--lv-space-3);border-block-end:1px solid var(--lv-line);font-size:var(--lv-text-sm);line-height:var(--lv-leading-snug)}.lv-plabel__fact.astro-icpaqa7s dt.astro-icpaqa7s{font-weight:var(--lv-weight-medium);color:var(--lv-text-primary);overflow-wrap:anywhere}.lv-plabel__fact.astro-icpaqa7s dd.astro-icpaqa7s{margin:0;color:var(--lv-text-secondary)}@container (max-width: 30rem){.lv-plabel__fact.astro-icpaqa7s{grid-template-columns:minmax(0,1fr);gap:var(--lv-space-1)}}.lv-plabel__panels.astro-icpaqa7s{display:grid}.lv-plabel__panel.astro-icpaqa7s{border-block-end:1px solid var(--lv-line)}.lv-plabel__facts.astro-icpaqa7s+.lv-plabel__panels.astro-icpaqa7s .lv-plabel__panel.astro-icpaqa7s:first-child,.lv-plabel__panels.astro-icpaqa7s:first-child .lv-plabel__panel.astro-icpaqa7s:first-child{border-block-start:0}.lv-plabel__summary.astro-icpaqa7s{display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-4);min-block-size:48px;font:var(--lv-weight-medium) var(--lv-text-sm) / 1.3 var(--lv-font-ui);color:var(--lv-text-primary);cursor:pointer;list-style:none}.lv-plabel__summary.astro-icpaqa7s::-webkit-details-marker{display:none}.lv-plabel__summary.astro-icpaqa7s::after{content:"";flex:none;inline-size:11px;block-size:11px;background:linear-gradient(currentColor,currentColor) center / 100% 1px no-repeat,linear-gradient(currentColor,currentColor) center / 1px 100% no-repeat;transition:background-size var(--lv-dur-state) var(--lv-ease)}.lv-plabel__panel.astro-icpaqa7s[open] .lv-plabel__summary.astro-icpaqa7s::after{background-size:100% 1px,1px 0}.lv-plabel__panel-body.astro-icpaqa7s{padding-block:0 var(--lv-space-4);font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}@media (prefers-reduced-motion: reduce){.lv-plabel__labels.astro-icpaqa7s>span.astro-icpaqa7s,.lv-plabel__arrow.astro-icpaqa7s,.lv-plabel__summary.astro-icpaqa7s::after{transition:none}.lv-plabel__add.astro-icpaqa7s:hover .lv-plabel__arrow.astro-icpaqa7s{transform:none}}.lv-plabel__compare.astro-icpaqa7s{font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-plabel__compare.astro-icpaqa7s[hidden]{display:none}.lv-plabel__stock.astro-icpaqa7s{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-plabel__stock.astro-icpaqa7s[data-state=low]{color:var(--lv-text-primary)}.lv-plabel__cartlink.astro-icpaqa7s{display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-sm);color:var(--lv-text-primary);text-decoration:underline;text-underline-offset:0.3em}.lv-plabel__cartlink.astro-icpaqa7s[hidden]{display:none}.lv-plabel__cartlink.astro-icpaqa7s:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-plabel.astro-icpaqa7s .lv-choice__opt.astro-icpaqa7s.is-unavailable .lv-choice__label.astro-icpaqa7s{text-decoration:line-through;color:var(--lv-text-tertiary)}.lv-plabel__rating.astro-icpaqa7s{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-plabel__rating.astro-icpaqa7s{display:inline-flex;align-items:center;gap:var(--lv-space-1)}.lv-plabel__star.astro-icpaqa7s{color:var(--lv-brand);flex:none}
/* components/browse.product-detail/renderers/detail.astro */
.lv-pdetail.astro-hzavdqx2{display:grid;gap:var(--lv-space-4);max-width:var(--lv-measure)}.lv-pdetail__title.astro-hzavdqx2{margin:0;font-family:var(--lv-display-family, var(--lv-font-ui));font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-heading);letter-spacing:var(--lv-tracking-heading);color:var(--lv-text-primary)}.lv-pdetail__breadcrumbs.astro-hzavdqx2 ol.astro-hzavdqx2{display:flex;flex-wrap:wrap;gap:var(--lv-space-1);margin:0;padding:0;list-style:none;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-pdetail__breadcrumbs.astro-hzavdqx2 li.astro-hzavdqx2:not(:last-child)::after{content:"›";margin-inline-start:var(--lv-space-1)}.lv-pdetail__breadcrumbs.astro-hzavdqx2 a.astro-hzavdqx2{color:inherit;text-decoration:none}.lv-pdetail__breadcrumbs.astro-hzavdqx2 a.astro-hzavdqx2:hover{text-decoration:underline;text-underline-offset:0.2em}.lv-pdetail__breadcrumbs.astro-hzavdqx2 a.astro-hzavdqx2:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-pdetail__desc.astro-hzavdqx2{max-inline-size:var(--lv-measure);margin:0;font-family:var(--lv-font-ui);color:var(--lv-text-secondary);line-height:var(--lv-leading-normal);white-space:pre-wrap}.lv-pdetail__description-block.astro-hzavdqx2{display:grid;gap:var(--lv-space-2);margin-block-start:var(--lv-space-4);padding-block-start:var(--lv-space-5);border-block-start:1px solid var(--lv-line)}.lv-pdetail__description-toggle.astro-hzavdqx2{display:none;justify-self:start;min-block-size:44px;padding:0;border:0;background:transparent;color:var(--lv-text-link, var(--lv-brand));font:inherit;font-weight:var(--lv-weight-medium);text-decoration:underline;text-underline-offset:0.2em;cursor:pointer}.lv-pdetail__description-toggle.astro-hzavdqx2:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-pdetail__price.astro-hzavdqx2{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--lv-space-2);margin:0;font-size:var(--lv-text-xl);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary);font-variant-numeric:tabular-nums}.lv-pdetail__compare.astro-hzavdqx2{font-size:var(--lv-text-md);font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-pdetail__compare.astro-hzavdqx2[hidden]{display:none}.lv-pdetail__stockline.astro-hzavdqx2{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-pdetail__stockline.astro-hzavdqx2[data-state=low]{color:var(--lv-warn-text, var(--lv-text-primary));font-weight:var(--lv-weight-medium)}.lv-pdetail__stockline.astro-hzavdqx2[data-state=out]{color:var(--lv-text-tertiary)}.lv-pdetail__value.astro-hzavdqx2.is-unavailable>span.astro-hzavdqx2:not(.lv-vh):not(.lv-pdetail__out){text-decoration:line-through;color:var(--lv-text-tertiary)}.lv-pdetail__cartlink.astro-hzavdqx2{margin-inline-start:var(--lv-space-2);color:var(--lv-text-link, var(--lv-brand));font-weight:var(--lv-weight-medium);text-underline-offset:0.2em}.lv-pdetail__cartlink.astro-hzavdqx2[hidden]{display:none}.lv-pdetail__cartlink.astro-hzavdqx2:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-pdetail__vat.astro-hzavdqx2{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);color:var(--lv-text-tertiary)}.lv-pdetail__stock.astro-hzavdqx2{margin:0;font-weight:var(--lv-weight-medium);color:var(--lv-text-secondary)}.lv-pdetail__promises.astro-hzavdqx2{display:grid;gap:var(--lv-space-2);margin:var(--lv-space-2) 0 0;padding:var(--lv-space-3) 0;border-block:1px solid var(--lv-line);list-style:none;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-pdetail__promises.astro-hzavdqx2 li.astro-hzavdqx2{display:flex;justify-content:space-between;gap:var(--lv-space-4)}.lv-pdetail__promises.astro-hzavdqx2 li.astro-hzavdqx2>span.astro-hzavdqx2:first-child{min-inline-size:0}.lv-pdetail__promises.astro-hzavdqx2 li.astro-hzavdqx2>span.astro-hzavdqx2:last-child{flex:none;white-space:nowrap;color:var(--lv-text-primary);font-variant-numeric:tabular-nums}.lv-pdetail__form.astro-hzavdqx2{display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--lv-space-3);margin-block-start:var(--lv-space-2)}.lv-pdetail__qty-field.astro-hzavdqx2{inline-size:5.5rem}.lv-pdetail__qty-field.astro-hzavdqx2 input.astro-hzavdqx2{inline-size:100%;text-align:center;font-variant-numeric:tabular-nums}.lv-pdetail__choices.astro-hzavdqx2{display:grid;gap:var(--lv-space-4)}.lv-pdetail__choice.astro-hzavdqx2{border:0;margin:0;padding:0;min-inline-size:0}.lv-pdetail__choice.astro-hzavdqx2 legend.astro-hzavdqx2{padding:0;margin-block-end:var(--lv-space-2)}.lv-pdetail__value.astro-hzavdqx2{position:relative;cursor:pointer}.lv-pdetail__value.astro-hzavdqx2>input.astro-hzavdqx2[type=radio]{position:absolute;inset:0;inline-size:100%;block-size:100%;margin:0;opacity:0;cursor:inherit}.lv-pdetail__value.astro-hzavdqx2:has(input:checked){background:var(--lv-brand-soft);box-shadow:inset 0 0 0 2px var(--lv-brand)}.lv-pdetail__value.astro-hzavdqx2:has(input:focus-visible){outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-pdetail__value.astro-hzavdqx2.is-out{cursor:not-allowed;color:var(--lv-text-tertiary)}.lv-pdetail__value.astro-hzavdqx2.is-out>span.astro-hzavdqx2:not(.lv-vh):not(.lv-pdetail__out){text-decoration:line-through}.lv-pdetail__swatch.astro-hzavdqx2{inline-size:16px;block-size:16px;border-radius:var(--lv-radius-pill);background:var(--lv-choice-swatch, var(--lv-surface-sunken));box-shadow:inset 0 0 0 1px var(--lv-line-strong)}.lv-pdetail__out.astro-hzavdqx2{font-size:var(--lv-text-2xs);text-transform:uppercase;letter-spacing:var(--lv-tracking-label)}.lv-pdetail__facts.astro-hzavdqx2{padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-pdetail__fact.astro-hzavdqx2{display:contents}.lv-pdetail__panels.astro-hzavdqx2{border-block-start:1px solid var(--lv-line)}.lv-pdetail__panel.astro-hzavdqx2{border-block-end:1px solid var(--lv-line)}.lv-pdetail__summary.astro-hzavdqx2{display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-4);min-block-size:48px;cursor:pointer;font-weight:var(--lv-weight-medium);color:var(--lv-text-primary);list-style:none}.lv-pdetail__summary.astro-hzavdqx2::-webkit-details-marker{display:none}.lv-pdetail__summary.astro-hzavdqx2::after{content:"";flex:none;inline-size:8px;block-size:8px;border-inline-end:1.5px solid var(--lv-icon-quiet);border-block-end:1.5px solid var(--lv-icon-quiet);transform:rotate(45deg);transition:transform var(--lv-dur-state) var(--lv-ease)}.lv-pdetail__panel.astro-hzavdqx2[open] .lv-pdetail__summary.astro-hzavdqx2::after{transform:rotate(-135deg)}.lv-pdetail__panel-body.astro-hzavdqx2{padding-block-end:var(--lv-space-4)}@media (prefers-reduced-motion: reduce){.lv-pdetail__summary.astro-hzavdqx2::after{transition:none}}.lv-pdetail__status.astro-hzavdqx2{margin:0;inline-size:100%;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-pdetail__rating.astro-hzavdqx2{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-pdetail__rating.astro-hzavdqx2{display:inline-flex;align-items:center;gap:var(--lv-space-1)}.lv-pdetail__star.astro-hzavdqx2{color:var(--lv-brand);flex:none}.lv-pdetail__sticky.astro-hzavdqx2{display:none}@media (max-width: 48rem){.lv-pdetail__desc.astro-hzavdqx2.is-collapsed{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:7}.lv-pdetail__description-toggle.astro-hzavdqx2{display:inline-flex;align-items:center}.lv-pdetail__sticky.astro-hzavdqx2:not([hidden]){position:fixed;z-index:var(--lv-z-sticky);inset-inline:0;inset-block-end:0;display:grid;grid-template-columns:minmax(0,auto) minmax(10rem,1fr);align-items:center;gap:var(--lv-space-3);padding:var(--lv-space-3) max(var(--lv-space-4),env(safe-area-inset-right)) max(var(--lv-space-3),env(safe-area-inset-bottom)) max(var(--lv-space-4),env(safe-area-inset-left));border-block-start:1px solid var(--lv-line);background:var(--lv-surface);box-shadow:var(--lv-lift-2)}.lv-pdetail__sticky-price.astro-hzavdqx2{font-family:var(--lv-font-ui);font-weight:var(--lv-weight-semibold);font-variant-numeric:tabular-nums}body:has(dialog[open]) .lv-pdetail__sticky.astro-hzavdqx2,body:has(> [data-lv-builder-ui]) .lv-pdetail__sticky.astro-hzavdqx2{display:none}}
/* components/browse.product-media/renderers/media-stack.astro */
.lv-pstack.astro-qpqmvehf{display:grid;gap:var(--lv-space-3);min-inline-size:0}.lv-pmedia__empty.astro-qpqmvehf{display:grid;place-content:center;justify-items:center;gap:var(--lv-space-3);aspect-ratio:1;min-inline-size:0;border-radius:var(--lv-radius-md);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line);color:var(--lv-text-secondary)}.lv-pmedia__empty-icon.astro-qpqmvehf{display:grid;opacity:0.55}.lv-pmedia__empty-cap.astro-qpqmvehf{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-pstack__port.astro-qpqmvehf{min-inline-size:0}.lv-pstack__port.astro-qpqmvehf:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-pstack__track.astro-qpqmvehf{display:flex;margin:0;padding:0;list-style:none;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}.lv-pstack__track.astro-qpqmvehf::-webkit-scrollbar{display:none}.lv-pstack__frame.astro-qpqmvehf{position:relative;flex:0 0 100%;aspect-ratio:4 / 5;overflow:hidden;scroll-snap-align:start;background:var(--lv-surface-sunken)}.lv-pstack__frame.astro-qpqmvehf img.astro-qpqmvehf{display:block;inline-size:100%;block-size:100%;box-sizing:border-box;padding:clamp(var(--lv-space-3),4%,var(--lv-space-6));object-fit:scale-down;transform-origin:var(--lv-pstack-x, 50%) var(--lv-pstack-y, 50%);transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-pstack__bar.astro-qpqmvehf{display:flex;align-items:center;justify-content:center;gap:var(--lv-space-3)}.lv-pstack__count.astro-qpqmvehf{margin:0;min-inline-size:6ch;font-size:var(--lv-text-xs);font-variant-numeric:tabular-nums;text-align:center;color:var(--lv-text-secondary)}.lv-pstack__step.astro-qpqmvehf{display:inline-grid;place-items:center;inline-size:44px;block-size:44px;padding:0;border:0;background:transparent;color:var(--lv-text-primary);cursor:pointer}.lv-pstack__step.astro-qpqmvehf[hidden]{display:none}.lv-pstack__step.astro-qpqmvehf:disabled{color:var(--lv-text-tertiary);cursor:default}.lv-pstack__step.astro-qpqmvehf:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-focus-width) * -1)}@media (pointer: coarse){.lv-pstack__step.astro-qpqmvehf{display:none}}@media (min-width: 901px){.lvt-split__item .lv-pstack__track.astro-qpqmvehf{display:grid;overflow:visible;scroll-snap-type:none}.lvt-split__item .lv-pstack__frame.astro-qpqmvehf{aspect-ratio:auto}.lvt-split__item .lv-pstack__frame.astro-qpqmvehf img.astro-qpqmvehf{block-size:auto}.lvt-split__item .lv-pstack__bar.astro-qpqmvehf{display:none}.lvt-split__item .lv-pstack__port.astro-qpqmvehf:focus-visible{outline-offset:calc(var(--lv-focus-width) * -1)}}@media (hover: hover) and (pointer: fine){.lv-pstack--zoom-inner.astro-qpqmvehf .lv-pstack__frame.astro-qpqmvehf:hover img.astro-qpqmvehf{transform:scale(1.8);cursor:zoom-in}}.lv-pstack__open.astro-qpqmvehf{position:absolute;inset:0;padding:0;border:0;background:transparent;cursor:zoom-in}.lv-pstack__open.astro-qpqmvehf:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-focus-width) * -1)}@media (prefers-reduced-motion: reduce){.lv-pstack__frame.astro-qpqmvehf img.astro-qpqmvehf{transition:none}.lv-pstack--zoom-inner.astro-qpqmvehf .lv-pstack__frame.astro-qpqmvehf:hover img.astro-qpqmvehf{transform:none}}
/* components/browse.product-media/renderers/media.astro */
.lv-pmedia.astro-ab2mx46a{display:grid;gap:var(--lv-space-3)}.lv-pmedia__empty.astro-ab2mx46a{display:grid;place-content:center;justify-items:center;gap:var(--lv-space-3);aspect-ratio:1;min-inline-size:0;border-radius:var(--lv-radius-md);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line);color:var(--lv-text-secondary)}.lv-pmedia__empty-icon.astro-ab2mx46a{display:grid;opacity:0.55}.lv-pmedia__empty-cap.astro-ab2mx46a{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-pmedia__stage.astro-ab2mx46a{position:relative;display:grid;overflow:hidden;border-radius:var(--lv-radius-md);background:var(--lv-surface-sunken);aspect-ratio:1}.lv-pmedia__frame.astro-ab2mx46a{grid-area:1 / 1;margin:0;opacity:0;pointer-events:none}.lv-pmedia--stage-square.astro-ab2mx46a .lv-pmedia__stage.astro-ab2mx46a{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.lv-pmedia--stage-square.astro-ab2mx46a .lv-pmedia__frame.astro-ab2mx46a{min-block-size:0}.lv-pmedia--stage-square.astro-ab2mx46a .lv-pmedia__stage.astro-ab2mx46a{background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-pmedia__frame.astro-ab2mx46a:has(.lv-pmedia__radio:checked){opacity:1;pointer-events:auto}.lv-pmedia--stage-natural.astro-ab2mx46a .lv-pmedia__stage.astro-ab2mx46a{aspect-ratio:auto}.lv-pmedia--stage-natural.astro-ab2mx46a .lv-pmedia__frame.astro-ab2mx46a{align-self:center}.lv-pmedia--stage-natural.astro-ab2mx46a .lv-pmedia__stage.astro-ab2mx46a{background:transparent}.lv-pmedia--stage-natural.astro-ab2mx46a .lv-pmedia__frame.astro-ab2mx46a img.astro-ab2mx46a{block-size:auto;max-block-size:calc(var(--lv-stage-vh, 100svh) * 0.72);object-fit:contain}.lv-pmedia__frame.astro-ab2mx46a img.astro-ab2mx46a{display:block;inline-size:100%;block-size:100%;box-sizing:border-box;padding:clamp(var(--lv-space-3),4%,var(--lv-space-6));object-fit:scale-down;transform-origin:var(--lv-pmedia-x, 50%) var(--lv-pmedia-y, 50%);transition:transform var(--lv-dur-panel) var(--lv-ease)}@media (hover: hover) and (pointer: fine){.lv-pmedia--zoom-inner.astro-ab2mx46a .lv-pmedia__frame.astro-ab2mx46a:hover img.astro-ab2mx46a{transform:scale(2)}}.lv-pmedia__hint.astro-ab2mx46a{position:absolute;inset-block-end:var(--lv-space-3);inset-inline-start:var(--lv-space-3);margin:0;padding:2px var(--lv-space-3);border-radius:var(--lv-radius-pill);background:var(--lv-surface);font-size:var(--lv-text-2xs);color:var(--lv-text-tertiary)}@media (hover: none){.lv-pmedia__hint.astro-ab2mx46a{display:none}}.lv-pmedia__expand.astro-ab2mx46a{position:absolute;inset:0;z-index:1;border:0;margin:0;padding:0;background:transparent;cursor:zoom-in}.lv-pmedia__expand.astro-ab2mx46a:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-focus-width) * -1)}.lv-pmedia__expand-icon.astro-ab2mx46a{position:absolute;inset-block-end:var(--lv-space-3);inset-inline-end:var(--lv-space-3);display:grid;place-items:center;inline-size:36px;block-size:36px;border-radius:var(--lv-radius-pill);background:var(--lv-surface);box-shadow:var(--lv-lift-2);color:var(--lv-text-primary);transition:background-color var(--lv-dur-fast) var(--lv-ease),color var(--lv-dur-fast) var(--lv-ease),transform var(--lv-dur-fast) var(--lv-ease)}.lv-pmedia__expand.astro-ab2mx46a:hover .lv-pmedia__expand-icon.astro-ab2mx46a,.lv-pmedia__expand.astro-ab2mx46a:focus-visible .lv-pmedia__expand-icon.astro-ab2mx46a{background:var(--lv-brand-strong);color:var(--lv-text-on-brand);transform:translateY(-1px)}.lv-pmedia__expand.astro-ab2mx46a:active .lv-pmedia__expand-icon.astro-ab2mx46a{transform:translateY(0) scale(0.94)}.lv-pmedia__rail.astro-ab2mx46a{display:flex;gap:var(--lv-space-2);margin:0;padding:0;list-style:none;overflow-x:auto}.lv-pmedia__thumb.astro-ab2mx46a{display:block;inline-size:4.5rem;block-size:4.5rem;border-radius:var(--lv-radius-sm);overflow:hidden;cursor:pointer;box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-pmedia__thumb.astro-ab2mx46a img.astro-ab2mx46a{inline-size:100%;block-size:100%;box-sizing:border-box;padding:var(--lv-space-1);background:var(--lv-surface);object-fit:scale-down}.lv-pmedia__radio.astro-ab2mx46a:checked+img.astro-ab2mx46a{outline:none}@container (min-width: 40rem){.lv-pmedia--rail-start.astro-ab2mx46a{grid-template-columns:4.5rem minmax(0,1fr)}.lv-pmedia--rail-start.astro-ab2mx46a .lv-pmedia__stage.astro-ab2mx46a{grid-column:2;grid-row:1}.lv-pmedia--rail-start.astro-ab2mx46a .lv-pmedia__rail.astro-ab2mx46a{grid-column:1;grid-row:1;flex-direction:column;overflow-x:visible}}@media (prefers-reduced-motion: reduce){.lv-pmedia__frame.astro-ab2mx46a img.astro-ab2mx46a{transition:none}}
/* components/browse.product-set/renderers/cards-cover.astro */
.lv-cover__all.astro-34n2mxnb{margin-block-start:var(--lv-space-3);min-block-size:44px}.lv-cover__all.astro-34n2mxnb:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-cover__was.astro-34n2mxnb{opacity:0.7;margin-inline-end:0.4em}.lv-cover.astro-34n2mxnb{container-type:inline-size;timeline-scope:--lv-cover-rail}.lv-cover__head.astro-34n2mxnb{display:grid;justify-items:center;gap:var(--lv-space-2);max-inline-size:60ch;margin:0 auto var(--lv-space-7);text-align:center}.lv-cover__eyebrow.astro-34n2mxnb{margin:0}.lv-cover__title.astro-34n2mxnb{margin:0}.lv-cover__desc.astro-34n2mxnb{margin:0;font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary);text-wrap:pretty}.lv-cover__detail.astro-34n2mxnb{max-inline-size:60ch;margin:calc(var(--lv-space-4) * -1) auto var(--lv-space-6);text-align:center;font-size:var(--lv-text-sm)}.lv-cover__detail-title.astro-34n2mxnb{margin:0;font-size:inherit;font-weight:var(--lv-weight-medium);color:var(--lv-text-primary)}.lv-cover__detail-note.astro-34n2mxnb{margin:var(--lv-space-1) 0 0;color:var(--lv-text-secondary)}.lv-cover__list.astro-34n2mxnb,.lv-cover__rail.astro-34n2mxnb{--lv-cover-cols: 1}.lv-cover__list.astro-34n2mxnb{display:grid;grid-template-columns:repeat(var(--lv-cover-cols),minmax(0,1fr));gap:calc(var(--lv-space-6) * 2) var(--lv-space-6);margin:0;padding:0;list-style:none}@container (min-width: 26.25rem){.lv-cover__list.astro-34n2mxnb,.lv-cover__rail.astro-34n2mxnb{--lv-cover-cols: 2}}@container (min-width: 56.25rem){.lv-cover__list.astro-34n2mxnb,.lv-cover__rail.astro-34n2mxnb{--lv-cover-cols: var(--lv-cover-wide)}}.lv-cover--grid.astro-34n2mxnb .lv-cover__list.astro-34n2mxnb:has(> li:only-child),.lv-cover--grid.astro-34n2mxnb .lv-cover__list.astro-34n2mxnb:has(> li:first-child:nth-last-child(2)){justify-content:center;grid-template-columns:repeat(auto-fit,minmax(0,calc((100% - (var(--lv-cover-cols) - 1) * var(--lv-space-6)) / var(--lv-cover-cols))))}.lv-cover--carousel.astro-34n2mxnb .lv-cover__list.astro-34n2mxnb{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--lv-cover-cols) - 0.7) * var(--lv-space-6)) / (var(--lv-cover-cols) + 0.3));overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding-block-end:var(--lv-space-3)}.lv-cover--carousel.astro-34n2mxnb .lv-cover__item.astro-34n2mxnb{scroll-snap-align:start}.lv-cover--carousel.astro-34n2mxnb .lv-cover__list.astro-34n2mxnb:has(> li:first-child:nth-last-child(-n + 3)){grid-auto-flow:row;grid-template-columns:repeat(var(--lv-cover-cols),minmax(0,1fr));overflow-x:visible;scroll-snap-type:none}.lv-cover--list.astro-34n2mxnb .lv-cover__list.astro-34n2mxnb{grid-template-columns:minmax(0,1fr);row-gap:var(--lv-space-5)}.lv-cover--list.astro-34n2mxnb .lv-cover__card.astro-34n2mxnb{grid-template-columns:7rem minmax(0,1fr);justify-items:start;text-align:start;column-gap:var(--lv-space-5)}.lv-cover--list.astro-34n2mxnb .lv-cover__well.astro-34n2mxnb{grid-row:span 3}.lv-cover__card.astro-34n2mxnb{position:relative;display:grid;block-size:100%;align-content:start;justify-items:center;gap:var(--lv-space-2);text-align:center}.lv-cover__well.astro-34n2mxnb{display:grid;grid-template:minmax(0,1fr) / minmax(0,1fr);place-items:center;box-sizing:border-box;inline-size:100%;aspect-ratio:1;padding:12%;margin-block-end:var(--lv-space-3);background:var(--lv-surface)}.lv-cover__img.astro-34n2mxnb,.lv-cover__blank.astro-34n2mxnb{display:block;inline-size:auto;block-size:auto;max-inline-size:100%;max-block-size:100%;object-fit:contain;transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-cover__blank.astro-34n2mxnb{inline-size:70%;block-size:90%;background:var(--lv-surface-sunken)}@media (hover: hover) and (pointer: fine){.lv-cover__card.astro-34n2mxnb:hover .lv-cover__img.astro-34n2mxnb{transform:translateY(-4px)}}.lv-cover__category.astro-34n2mxnb{margin:0;font:var(--lv-weight-regular) var(--lv-text-2xs) / 1.3 var(--lv-font-ui);letter-spacing:0.12em;text-transform:uppercase;color:var(--lv-text-primary)}.lv-cover__name.astro-34n2mxnb{margin:0;font-family:var(--lv-display-family, var(--lv-font-ui));font-size:var(--lv-text-lg);font-weight:var(--lv-weight-regular);line-height:1.15;letter-spacing:0.01em;text-transform:uppercase;text-wrap:balance}.lv-cover__line.astro-34n2mxnb{display:block}.lv-cover__link.astro-34n2mxnb{color:var(--lv-text-primary);text-decoration:none}.lv-cover__link.astro-34n2mxnb::after{content:"";position:absolute;inset:0}.lv-cover__link.astro-34n2mxnb:focus-visible{outline:none}.lv-cover__link.astro-34n2mxnb:focus-visible::after{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-cover__price.astro-34n2mxnb,.lv-cover__out.astro-34n2mxnb{margin:auto 0 0;font:var(--lv-weight-regular) var(--lv-text-sm) / 1.3 var(--lv-font-ui);font-variant-numeric:tabular-nums;color:var(--lv-text-primary)}.lv-cover__out.astro-34n2mxnb{color:var(--lv-text-secondary)}.lv-cover__empty.astro-34n2mxnb{margin-inline:auto}.lv-cover__rail.astro-34n2mxnb{display:none}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: scroll()){.lv-cover--carousel.astro-34n2mxnb .lv-cover__list.astro-34n2mxnb{scroll-timeline:--lv-cover-rail inline;scrollbar-width:none}.lv-cover__rail.astro-34n2mxnb{--lv-cover-share: min(1, calc((var(--lv-cover-cols) + 0.3) / var(--lv-cover-count)));position:relative;display:block;block-size:1px;margin-block-start:var(--lv-space-4);overflow:hidden;background:var(--lv-line)}.lv-cover__thumb.astro-34n2mxnb{position:absolute;inset-block:0;inset-inline-start:0;inline-size:calc(var(--lv-cover-share) * 100%);background:var(--lv-text-primary);animation:lv-cover-rail linear both;animation-timeline:--lv-cover-rail}@keyframes lv-cover-rail{from{transform:translateX(0)}to{transform:translateX(calc((1 / var(--lv-cover-share) - 1) * 100%))}}}}@media (prefers-reduced-motion: reduce){.lv-cover__img.astro-34n2mxnb{transition:none}.lv-cover__card.astro-34n2mxnb:hover .lv-cover__img.astro-34n2mxnb{transform:none}}
/* components/browse.product-set/renderers/cards-quiet.astro */
.lv-qcards__all.astro-jlqdkhdx{justify-self:start;margin-block-start:var(--lv-space-3);min-block-size:44px}.lv-qcards__all.astro-jlqdkhdx:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-qcards__was.astro-jlqdkhdx{opacity:0.7;margin-inline-end:0.4em}.lv-qcards.astro-jlqdkhdx{container-type:inline-size;timeline-scope:--lv-qcards-rail}.lv-qcards__head.astro-jlqdkhdx{display:grid;gap:var(--lv-space-1);max-inline-size:var(--lv-measure);margin-block-end:var(--lv-space-5)}.lv-qcards__eyebrow.astro-jlqdkhdx{margin:0}.lv-qcards__title.astro-jlqdkhdx{margin:0}.lv-qcards__desc.astro-jlqdkhdx{margin:var(--lv-space-1) 0 0;font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-qcards__detail.astro-jlqdkhdx{max-inline-size:var(--lv-measure);margin-block-end:var(--lv-space-5);font-size:var(--lv-text-sm)}.lv-qcards__detail-title.astro-jlqdkhdx{margin:0;font-size:inherit;font-weight:var(--lv-weight-medium);color:var(--lv-text-primary)}.lv-qcards__detail-note.astro-jlqdkhdx{margin:var(--lv-space-1) 0 0;color:var(--lv-text-secondary)}.lv-qcards__list.astro-jlqdkhdx,.lv-qcards__rail.astro-jlqdkhdx{--lv-qcards-cols: 2}.lv-qcards__list.astro-jlqdkhdx{display:grid;grid-template-columns:repeat(var(--lv-qcards-cols),minmax(0,1fr));gap:var(--lv-space-6) var(--lv-space-1);margin:0;padding:0;list-style:none}@container (min-width: 48rem){.lv-qcards__list.astro-jlqdkhdx,.lv-qcards__rail.astro-jlqdkhdx{--lv-qcards-cols: var(--lv-qcards-mid)}}@container (min-width: 64rem){.lv-qcards__list.astro-jlqdkhdx,.lv-qcards__rail.astro-jlqdkhdx{--lv-qcards-cols: var(--lv-qcards-wide)}}.lv-qcards--grid.astro-jlqdkhdx .lv-qcards__list.astro-jlqdkhdx:has(> li:only-child),.lv-qcards--grid.astro-jlqdkhdx .lv-qcards__list.astro-jlqdkhdx:has(> li:first-child:nth-last-child(2)){justify-content:center;grid-template-columns:repeat(auto-fit,minmax(0,calc((100% - (var(--lv-qcards-cols) - 1) * var(--lv-space-1)) / var(--lv-qcards-cols))))}.lv-qcards--carousel.astro-jlqdkhdx .lv-qcards__list.astro-jlqdkhdx{position:relative;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--lv-qcards-cols) - 0.7) * var(--lv-space-1)) / (var(--lv-qcards-cols) + 0.3));overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding-block-end:var(--lv-space-3)}.lv-qcards--carousel.astro-jlqdkhdx .lv-qcards__item.astro-jlqdkhdx{scroll-snap-align:start}.lv-qcards--carousel.astro-jlqdkhdx .lv-qcards__list.astro-jlqdkhdx:has(> li:first-child:nth-last-child(-n + 3)){grid-auto-flow:row;grid-template-columns:repeat(var(--lv-qcards-cols),minmax(0,1fr));overflow-x:visible;scroll-snap-type:none}.lv-qcards--list.astro-jlqdkhdx .lv-qcards__list.astro-jlqdkhdx{grid-template-columns:minmax(0,1fr);row-gap:var(--lv-space-3)}.lv-qcards--list.astro-jlqdkhdx .lv-qcards__card.astro-jlqdkhdx{grid-template-columns:5rem minmax(0,1fr);align-items:center;column-gap:var(--lv-space-4)}.lv-qcards__card.astro-jlqdkhdx{display:grid;block-size:100%;gap:var(--lv-space-3)}.lv-qcards__media.astro-jlqdkhdx{position:relative;display:block;overflow:hidden;aspect-ratio:4 / 5;background:var(--lv-surface)}.lv-qcards__img.astro-jlqdkhdx,.lv-qcards__blank.astro-jlqdkhdx{display:block;inline-size:100%;block-size:100%;box-sizing:border-box;padding:clamp(var(--lv-space-3),6%,var(--lv-space-6));object-fit:scale-down}.lv-qcards__img--second.astro-jlqdkhdx{position:absolute;inset:0;opacity:0;transition:opacity var(--lv-dur-panel) var(--lv-ease)}@media (hover: hover) and (pointer: fine){.lv-qcards__card.astro-jlqdkhdx.has-second:hover .lv-qcards__img--second.astro-jlqdkhdx{opacity:1}}.lv-qcards__card.astro-jlqdkhdx.has-second:focus-within .lv-qcards__img--second.astro-jlqdkhdx{opacity:1}.lv-qcards__meta.astro-jlqdkhdx{display:flex;flex-direction:column;gap:var(--lv-space-1);font:var(--lv-weight-regular) var(--lv-text-sm) / var(--lv-leading-snug) var(--lv-font-ui)}.lv-qcards__name.astro-jlqdkhdx{margin:0;font:inherit;letter-spacing:normal;text-transform:none}.lv-qcards__name.astro-jlqdkhdx a.astro-jlqdkhdx{color:var(--lv-text-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.3em;text-decoration-color:transparent;transition:text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-qcards__card.astro-jlqdkhdx:hover .lv-qcards__name.astro-jlqdkhdx a.astro-jlqdkhdx,.lv-qcards__name.astro-jlqdkhdx a.astro-jlqdkhdx:focus-visible{text-decoration-color:currentColor}.lv-qcards__name.astro-jlqdkhdx a.astro-jlqdkhdx:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-qcards__price.astro-jlqdkhdx{margin:auto 0 0;font-family:var(--lv-font-ui);font-variant-numeric:tabular-nums;color:var(--lv-text-primary)}.lv-qcards__out.astro-jlqdkhdx{margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-qcards__empty.astro-jlqdkhdx{margin-inline:auto}.lv-qcards__rail.astro-jlqdkhdx{display:none}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: scroll()){.lv-qcards--carousel.astro-jlqdkhdx .lv-qcards__list.astro-jlqdkhdx{scroll-timeline:--lv-qcards-rail inline;scrollbar-width:none}.lv-qcards__rail.astro-jlqdkhdx{--lv-qcards-share: min(1, calc((var(--lv-qcards-cols) + 0.3) / var(--lv-qcards-count)));position:relative;display:block;block-size:1px;margin-block-start:var(--lv-space-3);overflow:hidden;background:var(--lv-line)}.lv-qcards__thumb.astro-jlqdkhdx{position:absolute;inset-block:0;inset-inline-start:0;inline-size:calc(var(--lv-qcards-share) * 100%);background:var(--lv-text-primary);animation:lv-qcards-rail linear both;animation-timeline:--lv-qcards-rail}@keyframes lv-qcards-rail{from{transform:translateX(0)}to{transform:translateX(calc((1 / var(--lv-qcards-share) - 1) * 100%))}}}}@media (prefers-reduced-motion: reduce){.lv-qcards__img--second.astro-jlqdkhdx{display:none}.lv-qcards__name.astro-jlqdkhdx a.astro-jlqdkhdx{transition:none}}
/* components/browse.product-set/renderers/cards-shelf.astro */
.lv-shelf__all.astro-hxzwdi77{margin-block-start:var(--lv-space-3);min-block-size:44px}.lv-shelf__all.astro-hxzwdi77:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-shelf__was.astro-hxzwdi77{opacity:0.7;margin-inline-end:0.4em}.lv-shelf.astro-hxzwdi77{container-type:inline-size;timeline-scope:--lv-shelf-rail}.lv-shelf__head.astro-hxzwdi77{display:grid;justify-items:center;gap:var(--lv-space-2);max-inline-size:60ch;margin:0 auto var(--lv-space-7);text-align:center}.lv-shelf__eyebrow.astro-hxzwdi77{margin:0}.lv-shelf__title.astro-hxzwdi77{margin:0}.lv-shelf__desc.astro-hxzwdi77{margin:0;font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary);text-wrap:pretty}.lv-shelf__detail.astro-hxzwdi77{max-inline-size:60ch;margin:calc(var(--lv-space-4) * -1) auto var(--lv-space-6);text-align:center;font-size:var(--lv-text-sm)}.lv-shelf__detail-title.astro-hxzwdi77{margin:0;font-size:inherit;font-weight:var(--lv-weight-medium);color:var(--lv-text-primary)}.lv-shelf__detail-note.astro-hxzwdi77{margin:var(--lv-space-1) 0 0;color:var(--lv-text-secondary)}.lv-shelf__list.astro-hxzwdi77{--lv-shelf-cols: 2;display:grid;grid-template-columns:repeat(var(--lv-shelf-cols),minmax(0,1fr));gap:var(--lv-space-7) var(--lv-space-5);margin:0;padding:0;list-style:none}@container (min-width: 48rem){.lv-shelf__list.astro-hxzwdi77{--lv-shelf-cols: var(--lv-shelf-mid)}}@container (min-width: 64rem){.lv-shelf__list.astro-hxzwdi77{--lv-shelf-cols: var(--lv-shelf-wide)}}.lv-shelf--grid.astro-hxzwdi77 .lv-shelf__list.astro-hxzwdi77:has(> li:only-child),.lv-shelf--grid.astro-hxzwdi77 .lv-shelf__list.astro-hxzwdi77:has(> li:first-child:nth-last-child(2)){justify-content:center;grid-template-columns:repeat(auto-fit,minmax(0,calc((100% - (var(--lv-shelf-cols) - 1) * var(--lv-space-5)) / var(--lv-shelf-cols))))}.lv-shelf--carousel.astro-hxzwdi77 .lv-shelf__list.astro-hxzwdi77,.lv-shelf__rail.astro-hxzwdi77{--lv-shelf-visible: 1.3}.lv-shelf--carousel.astro-hxzwdi77 .lv-shelf__list.astro-hxzwdi77{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--lv-shelf-visible) - 1) * var(--lv-space-5)) / var(--lv-shelf-visible));overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding-block-end:var(--lv-space-3)}@container (min-width: 36rem){.lv-shelf--carousel.astro-hxzwdi77 .lv-shelf__list.astro-hxzwdi77,.lv-shelf__rail.astro-hxzwdi77{--lv-shelf-visible: 2.3}}@container (min-width: 64rem){.lv-shelf--carousel.astro-hxzwdi77 .lv-shelf__list.astro-hxzwdi77,.lv-shelf__rail.astro-hxzwdi77{--lv-shelf-visible: 4}}.lv-shelf--carousel.astro-hxzwdi77 .lv-shelf__item.astro-hxzwdi77{scroll-snap-align:start}.lv-shelf--carousel.astro-hxzwdi77 .lv-shelf__list.astro-hxzwdi77:has(> li:first-child:nth-last-child(-n + 3)){grid-auto-flow:row;grid-template-columns:repeat(var(--lv-shelf-cols),minmax(0,1fr));overflow-x:visible;scroll-snap-type:none}.lv-shelf--list.astro-hxzwdi77 .lv-shelf__list.astro-hxzwdi77{grid-template-columns:minmax(0,1fr);row-gap:var(--lv-space-4)}.lv-shelf--list.astro-hxzwdi77 .lv-shelf__card.astro-hxzwdi77{grid-template-columns:6rem minmax(0,1fr);column-gap:var(--lv-space-4)}.lv-shelf--list.astro-hxzwdi77 .lv-shelf__media.astro-hxzwdi77{grid-row:span 4;margin-block-end:0}.lv-shelf--list.astro-hxzwdi77 .lv-shelf__card.astro-hxzwdi77{container-type:normal}.lv-shelf--list.astro-hxzwdi77 .lv-shelf__add.astro-hxzwdi77,.lv-shelf--list.astro-hxzwdi77 .lv-shelf__card.astro-hxzwdi77:hover .lv-shelf__add.astro-hxzwdi77{position:relative;inset:auto;justify-self:start;opacity:1;translate:none}.lv-shelf__card.astro-hxzwdi77{container-type:inline-size;position:relative;display:grid;block-size:100%;align-content:start;gap:var(--lv-space-1)}.lv-shelf__media.astro-hxzwdi77{position:relative;display:grid;place-items:center;aspect-ratio:1;margin-block-end:var(--lv-space-3);overflow:hidden;background:var(--lv-surface)}.lv-shelf__img.astro-hxzwdi77,.lv-shelf__blank.astro-hxzwdi77{grid-area:1 / 1;display:block;inline-size:100%;block-size:100%;box-sizing:border-box;padding:clamp(var(--lv-space-3),6%,var(--lv-space-6));object-fit:scale-down;transition:opacity var(--lv-dur-panel) var(--lv-ease),transform var(--lv-dur-panel) var(--lv-ease)}.lv-shelf__img--second.astro-hxzwdi77{opacity:0}@media (hover: hover) and (pointer: fine){.lv-shelf__card.astro-hxzwdi77.has-second:hover .lv-shelf__img--second.astro-hxzwdi77{opacity:1}.lv-shelf__card.astro-hxzwdi77.has-second:hover .lv-shelf__img.astro-hxzwdi77:not(.lv-shelf__img--second){opacity:0}.lv-shelf--hover-zoom-in.astro-hxzwdi77 .lv-shelf__card.astro-hxzwdi77:hover .lv-shelf__img.astro-hxzwdi77{transform:scale(1.05)}}.lv-shelf__name.astro-hxzwdi77{margin:0;font:var(--lv-weight-medium) var(--lv-text-sm) / var(--lv-leading-snug) var(--lv-font-ui);letter-spacing:normal;text-transform:none}.lv-shelf__link.astro-hxzwdi77{color:var(--lv-text-primary);text-decoration:none}.lv-shelf__link.astro-hxzwdi77::after{content:"";position:absolute;inset:0;z-index:1}.lv-shelf__card.astro-hxzwdi77:hover .lv-shelf__link.astro-hxzwdi77{text-decoration:underline;text-underline-offset:0.25em}.lv-shelf__link.astro-hxzwdi77:focus-visible{outline:none}.lv-shelf__link.astro-hxzwdi77:focus-visible::after{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-shelf__descriptor.astro-hxzwdi77{margin:0;overflow:hidden;font-size:var(--lv-text-sm);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary);text-overflow:ellipsis;white-space:nowrap}.lv-shelf__price.astro-hxzwdi77,.lv-shelf__out.astro-hxzwdi77{margin:auto 0 0;font-family:var(--lv-font-ui);font-size:var(--lv-text-sm);font-variant-numeric:tabular-nums;color:var(--lv-text-primary)}.lv-shelf__out.astro-hxzwdi77{color:var(--lv-text-tertiary)}.lv-shelf__add.astro-hxzwdi77{position:absolute;inset-inline:var(--lv-space-3);inset-block-start:100cqi;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-2);min-block-size:44px;padding-inline:var(--lv-space-4);border:1px solid var(--lv-text-primary);border-radius:var(--lv-radius-sm);background:var(--lv-surface);color:var(--lv-text-primary);font:var(--lv-weight-regular) var(--lv-text-sm) / 1 var(--lv-font-ui);cursor:pointer;translate:0 calc(-100% - var(--lv-space-3));opacity:0;transition:opacity var(--lv-dur-panel) var(--lv-ease),translate var(--lv-dur-panel) var(--lv-ease),background-color var(--lv-dur-state) var(--lv-ease)}.lv-shelf__add.astro-hxzwdi77:hover{background:var(--lv-surface-raised)}.lv-shelf__add.astro-hxzwdi77:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-shelf__add-labels.astro-hxzwdi77{display:grid;text-align:start}.lv-shelf__add-labels.astro-hxzwdi77>span.astro-hxzwdi77{grid-area:1 / 1;transition:opacity var(--lv-dur-state) var(--lv-ease)}.lv-shelf__add-done.astro-hxzwdi77{opacity:0}.lv-shelf__add.astro-hxzwdi77[data-added] .lv-shelf__add-rest.astro-hxzwdi77{opacity:0}.lv-shelf__add.astro-hxzwdi77[data-added] .lv-shelf__add-done.astro-hxzwdi77{opacity:1}@media (hover: hover) and (pointer: fine){.lv-shelf__add.astro-hxzwdi77{translate:0 calc(-100% - var(--lv-space-3) + 8px)}.lv-shelf__card.astro-hxzwdi77:hover .lv-shelf__add.astro-hxzwdi77,.lv-shelf__card.astro-hxzwdi77:focus-within .lv-shelf__add.astro-hxzwdi77{opacity:1;translate:0 calc(-100% - var(--lv-space-3))}}@media (hover: none),(pointer: coarse){.lv-shelf__add.astro-hxzwdi77{opacity:1}}.lv-shelf__card.astro-hxzwdi77:focus-within .lv-shelf__add.astro-hxzwdi77{opacity:1}.lv-shelf__empty.astro-hxzwdi77{margin-inline:auto}.lv-shelf__rail.astro-hxzwdi77{display:none}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: scroll()){.lv-shelf--carousel.astro-hxzwdi77 .lv-shelf__list.astro-hxzwdi77{scroll-timeline:--lv-shelf-rail inline;scrollbar-width:none}.lv-shelf__rail.astro-hxzwdi77{--lv-shelf-share: min(1, calc(var(--lv-shelf-visible) / var(--lv-shelf-count)));position:relative;display:block;block-size:1px;max-inline-size:40rem;margin:var(--lv-space-5) auto 0;overflow:hidden;background:var(--lv-line)}.lv-shelf__thumb.astro-hxzwdi77{position:absolute;inset-block:0;inset-inline-start:0;inline-size:calc(var(--lv-shelf-share) * 100%);background:var(--lv-text-primary);animation:lv-shelf-rail linear both;animation-timeline:--lv-shelf-rail}@keyframes lv-shelf-rail{from{transform:translateX(0)}to{transform:translateX(calc((1 / var(--lv-shelf-share) - 1) * 100%))}}}}@media (prefers-reduced-motion: reduce){.lv-shelf__img.astro-hxzwdi77,.lv-shelf__add.astro-hxzwdi77,.lv-shelf__add-labels.astro-hxzwdi77>span.astro-hxzwdi77{transition:none}.lv-shelf__add.astro-hxzwdi77,.lv-shelf__card.astro-hxzwdi77:hover .lv-shelf__add.astro-hxzwdi77,.lv-shelf__card.astro-hxzwdi77:focus-within .lv-shelf__add.astro-hxzwdi77{translate:0 calc(-100% - var(--lv-space-3))}.lv-shelf--hover-zoom-in.astro-hxzwdi77 .lv-shelf__card.astro-hxzwdi77:hover .lv-shelf__img.astro-hxzwdi77{transform:none}.lv-shelf__img--second.astro-hxzwdi77{display:none}.lv-shelf__card.astro-hxzwdi77.has-second:hover .lv-shelf__img.astro-hxzwdi77:not(.lv-shelf__img--second){opacity:1}}
/* components/browse.product-set/renderers/cards.astro */
.lv-products__all.astro-fgldmnvg{margin-block-start:var(--lv-space-3);min-block-size:44px}.lv-products__all.astro-fgldmnvg:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-products__was.astro-fgldmnvg{color:var(--lv-text-secondary);margin-inline-end:0.4em;font-size:0.9em}.lv-products__from.astro-fgldmnvg{margin-inline-end:0.3em}.lv-products.astro-fgldmnvg{container-type:inline-size;padding-block:var(--lv-space-8)}.lv-products__head.astro-fgldmnvg{max-width:var(--lv-measure);margin-block-end:var(--lv-space-6)}.lv-products__eyebrow.astro-fgldmnvg{margin:0 0 var(--lv-space-2)}.lv-products__title.astro-fgldmnvg{margin:0}.lv-products__desc.astro-fgldmnvg{margin:var(--lv-space-3) 0 0;color:var(--lv-text-secondary);line-height:var(--lv-leading-normal)}.lv-products__detail.astro-fgldmnvg{max-width:var(--lv-measure);margin-block-end:var(--lv-space-6);padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-products__detail-title.astro-fgldmnvg{margin:0;font-size:var(--lv-text-md);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-products__detail-note.astro-fgldmnvg{margin:var(--lv-space-2) 0 0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-products__list.astro-fgldmnvg{margin:0;padding:0;list-style:none;display:grid;gap:var(--lv-space-6);grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}.lv-products--grid.astro-fgldmnvg .lv-products__list.astro-fgldmnvg{display:flex;flex-wrap:wrap;justify-content:center}.lv-products--grid.astro-fgldmnvg .lv-products__item.astro-fgldmnvg{flex:1 1 min(260px,100%)}@container (min-width: 720px){.lv-products--grid.astro-fgldmnvg .lv-products__item.astro-fgldmnvg{flex-basis:calc((100% - (var(--lv-products-columns) - 1) * var(--lv-space-6)) / var(--lv-products-columns));max-inline-size:calc((100% - (var(--lv-products-columns) - 1) * var(--lv-space-6)) / var(--lv-products-columns))}}.lv-products--grid.astro-fgldmnvg .lv-products__list.astro-fgldmnvg:has(> li:only-child) .lv-products__item.astro-fgldmnvg{flex-basis:100%;max-inline-size:100%}@container (min-width: 720px){.lv-products--grid.astro-fgldmnvg:not(.lv-products--meta-over-image) .lv-products__list.astro-fgldmnvg:has(> li:only-child) .lv-products__card.astro-fgldmnvg{flex-direction:row;align-items:center;gap:var(--lv-space-8)}.lv-products--grid.astro-fgldmnvg:not(.lv-products--meta-over-image) .lv-products__list.astro-fgldmnvg:has(> li:only-child) .lv-products__media.astro-fgldmnvg{flex:1 1 58%;aspect-ratio:16 / 10}.lv-products--grid.astro-fgldmnvg:not(.lv-products--meta-over-image) .lv-products__list.astro-fgldmnvg:has(> li:only-child) .lv-products__meta.astro-fgldmnvg{flex:1 1 42%;gap:var(--lv-space-3)}.lv-products--grid.astro-fgldmnvg .lv-products__list.astro-fgldmnvg:has(> li:only-child) .lv-products__name.astro-fgldmnvg{font-size:var(--lv-text-xl)}}.lv-products--list.astro-fgldmnvg .lv-products__list.astro-fgldmnvg{grid-template-columns:minmax(0,1fr)}.lv-products--carousel.astro-fgldmnvg .lv-products__list.astro-fgldmnvg{grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;padding-block-end:var(--lv-space-3)}.lv-products--carousel.astro-fgldmnvg .lv-products__item.astro-fgldmnvg{scroll-snap-align:center}.lv-products--carousel.astro-fgldmnvg .lv-products__list.astro-fgldmnvg:has(> li:first-child:nth-last-child(-n + 3)){grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));overflow-x:visible;scroll-snap-type:none}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view(inline)){.lv-products--carousel.astro-fgldmnvg .lv-products__list.astro-fgldmnvg:has(> li:nth-child(4)) .lv-products__item.astro-fgldmnvg{animation:lv-products-focus linear both;animation-timeline:view(inline)}@keyframes lv-products-focus{0%,100%{opacity:0.55;filter:saturate(0.6)}40%,60%{opacity:1;filter:none}}}}.lv-products__card.astro-fgldmnvg{display:flex;flex-direction:column;gap:var(--lv-space-3);height:100%}.lv-products--list.astro-fgldmnvg .lv-products__card.astro-fgldmnvg{flex-direction:row;align-items:center;gap:var(--lv-space-5);padding-block-end:var(--lv-space-5);border-block-end:1px solid var(--lv-line)}.lv-products__media.astro-fgldmnvg{position:relative;display:block;overflow:hidden;border-radius:var(--lv-radius-md);background:var(--lv-surface);aspect-ratio:1}.lv-products--list.astro-fgldmnvg .lv-products__media.astro-fgldmnvg{flex:0 0 8rem}.lv-products__media.astro-fgldmnvg img.astro-fgldmnvg,.lv-products__media-blank.astro-fgldmnvg{display:block;inline-size:100%;block-size:100%;box-sizing:border-box;padding:clamp(var(--lv-space-3),6%,var(--lv-space-6));object-fit:scale-down;transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-products--hover-zoom-in.astro-fgldmnvg .lv-products__card.astro-fgldmnvg:hover .lv-products__media.astro-fgldmnvg img.astro-fgldmnvg{transform:scale(1.04)}.lv-products__media.astro-fgldmnvg .lv-products__media-second.astro-fgldmnvg{position:absolute;inset:0;opacity:0;transition:opacity var(--lv-dur-panel) var(--lv-ease)}@media (hover: hover) and (pointer: fine){.lv-products--hover-swap-secondary.astro-fgldmnvg .lv-products__card.astro-fgldmnvg:hover .lv-products__media-second.astro-fgldmnvg{opacity:1}}.lv-products--hover-swap-secondary.astro-fgldmnvg .lv-products__card.astro-fgldmnvg:focus-within .lv-products__media-second.astro-fgldmnvg{opacity:1}.lv-products--meta-over-image.astro-fgldmnvg .lv-products__card.astro-fgldmnvg{position:relative}.lv-products--meta-over-image.astro-fgldmnvg .lv-products__meta.astro-fgldmnvg{position:absolute;inset-inline:var(--lv-space-3);inset-block-end:var(--lv-space-3);padding:var(--lv-space-3);border-radius:var(--lv-radius-md);background:var(--lv-surface);box-shadow:var(--lv-lift-2)}.lv-products__price-chip.astro-fgldmnvg{position:absolute;inset-block-end:var(--lv-space-2);inset-inline-start:var(--lv-space-2);display:inline-flex;align-items:baseline;gap:var(--lv-space-2);padding:2px var(--lv-space-3);border-radius:var(--lv-radius-pill);background:var(--lv-surface);box-shadow:var(--lv-lift-1);font-size:var(--lv-text-xs);color:var(--lv-text-primary);font-variant-numeric:tabular-nums}.lv-products__price-chip.astro-fgldmnvg .lv-products__vat.astro-fgldmnvg{font-size:var(--lv-text-2xs)}.lv-products__badge.astro-fgldmnvg{position:absolute;inset-block-start:var(--lv-space-2);inset-inline-start:var(--lv-space-2);padding:2px var(--lv-space-2);border-radius:var(--lv-radius-pill);background:var(--lv-brand);color:var(--lv-text-on-brand);font:var(--lv-weight-semibold) var(--lv-text-2xs) / 1.6 var(--lv-font-mono);font-variant-numeric:tabular-nums}.lv-products__badge--out.astro-fgldmnvg{background:var(--lv-surface-sunken);color:var(--lv-text-secondary);box-shadow:inset 0 0 0 1px var(--lv-line-strong)}.lv-products__meta.astro-fgldmnvg{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--lv-space-2);align-items:start}.lv-products__name.astro-fgldmnvg{margin:0;font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);line-height:var(--lv-leading-snug)}.lv-products__meta.astro-fgldmnvg>.lv-btn.astro-fgldmnvg{margin-block-start:auto}.lv-products__price.astro-fgldmnvg+.lv-btn.astro-fgldmnvg{margin-block-start:0}.lv-products__name.astro-fgldmnvg a.astro-fgldmnvg{color:var(--lv-text-primary);text-decoration:none}.lv-products__name.astro-fgldmnvg a.astro-fgldmnvg:hover{text-decoration:underline}.lv-products__name.astro-fgldmnvg a.astro-fgldmnvg:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-products__price.astro-fgldmnvg{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--lv-space-2);margin:auto 0 0;font-family:var(--lv-font-ui);color:var(--lv-text-primary);font-variant-numeric:tabular-nums}.lv-products__vat.astro-fgldmnvg{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-products__stock-out.astro-fgldmnvg{margin:0;font-size:var(--lv-text-xs);font-weight:var(--lv-weight-medium);color:var(--lv-text-tertiary)}.lv-products__empty.astro-fgldmnvg{display:flex;flex-direction:column;align-items:start;gap:var(--lv-space-3);max-width:48ch;padding:var(--lv-space-7);border:1px dashed var(--lv-line-strong);border-radius:var(--lv-radius-lg);background:var(--lv-surface-raised)}.lv-products__empty-title.astro-fgldmnvg{margin:0;font-size:var(--lv-text-md);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-products__empty-body.astro-fgldmnvg{margin:0;color:var(--lv-text-secondary);line-height:var(--lv-leading-normal)}@media (prefers-reduced-motion: reduce){.lv-products__media.astro-fgldmnvg img.astro-fgldmnvg{transition:none}.lv-products--hover-zoom-in.astro-fgldmnvg .lv-products__card.astro-fgldmnvg:hover .lv-products__media.astro-fgldmnvg img.astro-fgldmnvg{transform:none}.lv-products__media.astro-fgldmnvg .lv-products__media-second.astro-fgldmnvg{display:none}}
/* components/browse.segment-entry/renderers/segments-doors.astro */
.lv-doors.astro-43p2jz5w{padding-inline:0}.lv-doors__head.astro-43p2jz5w{padding-inline:var(--lv-gutter)}.lv-doors__field.astro-43p2jz5w{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin:0;padding:0;list-style:none}@container (min-width: 48rem){.lv-doors__field.astro-43p2jz5w{grid-template-columns:repeat(2,minmax(0,1fr))}.lv-doors__item.astro-43p2jz5w:last-child:nth-child(odd){grid-column:1 / -1}.lv-doors__item.astro-43p2jz5w:last-child:nth-child(odd) .lv-doors__figure.astro-43p2jz5w{aspect-ratio:16 / 9}}.lv-doors__door.astro-43p2jz5w:not([href]){cursor:default}.lv-doors__door.astro-43p2jz5w{position:relative;display:block;color:var(--lv-text-on-brand);text-decoration:none}.lv-doors__figure.astro-43p2jz5w{position:relative;isolation:isolate;margin:0;overflow:hidden;aspect-ratio:4 / 5;max-block-size:var(--lv-stage-vh, 100svh);inline-size:100%;background:var(--lv-surface-sunken)}.lv-doors__figure.astro-43p2jz5w img.astro-43p2jz5w{position:absolute;inset:0;z-index:-2;inline-size:100%;block-size:100%;object-fit:cover}.lv-doors__figure.astro-43p2jz5w::after{content:"";position:absolute;inset:auto 0 0;z-index:-1;block-size:46%;background:linear-gradient(to top,rgb(var(--lv-glass-under) / 0.78),rgb(var(--lv-glass-under) / 0))}.lv-doors__caption.astro-43p2jz5w{position:absolute;inset:auto 0 var(--lv-space-7);display:flex;flex-direction:column;align-items:center;gap:var(--lv-space-2);padding-inline:var(--lv-space-5);text-align:center;color:var(--lv-text-on-brand);text-shadow:0 0 1px rgb(var(--lv-glass-under) / 0.6)}.lv-doors__label.astro-43p2jz5w{font-size:var(--lv-text-lg);font-weight:var(--lv-weight-regular);line-height:var(--lv-leading-snug);text-underline-offset:0.3em}.lv-doors__summary.astro-43p2jz5w{font-size:var(--lv-text-xs)}a.astro-43p2jz5w.lv-doors__door[href]:hover .lv-doors__label.astro-43p2jz5w,a.astro-43p2jz5w.lv-doors__door[href]:focus-visible .lv-doors__label.astro-43p2jz5w{text-decoration:underline;text-decoration-thickness:1px}a.astro-43p2jz5w.lv-doors__door:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-space-1) * -1)}@media (hover: hover) and (prefers-reduced-motion: no-preference){.lv-doors__figure.astro-43p2jz5w img.astro-43p2jz5w{transition:transform var(--lv-dur-panel) var(--lv-ease)}a.astro-43p2jz5w.lv-doors__door[href]:hover .lv-doors__figure.astro-43p2jz5w img.astro-43p2jz5w{transform:scale(1.02)}}
/* components/browse.segment-entry/renderers/segments-editorial.astro */
.lv-segedit__list.astro-kx25stla{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lv-space-7) var(--lv-space-6);margin:0;padding:0;list-style:none}@container (min-width: 36rem){.lv-segedit__list.astro-kx25stla{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (min-width: 56rem){.lv-segedit__list.astro-kx25stla{grid-template-columns:repeat(3,minmax(0,1fr))}}.lv-segedit__link.astro-kx25stla{display:flex;flex-direction:column;gap:var(--lv-space-2);color:inherit;text-decoration:none}.lv-segedit__media.astro-kx25stla{display:block;margin-block-end:var(--lv-space-3);overflow:hidden;border-radius:var(--lv-radius-md);aspect-ratio:3 / 2;background:var(--lv-surface-sunken)}.lv-segedit__media.astro-kx25stla img.astro-kx25stla{display:block;inline-size:100%;block-size:100%;object-fit:cover}.lv-segedit__kicker.astro-kx25stla{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-segedit__title.astro-kx25stla{margin:0;font-family:var(--lv-display-family);font-size:var(--lv-text-lg);font-weight:var(--lv-weight-heading);line-height:var(--lv-leading-snug);color:var(--lv-text-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.25em;text-decoration-color:transparent;transition:text-decoration-color var(--lv-dur-fast) var(--lv-ease)}.lv-segedit__summary.astro-kx25stla{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-segedit__more.astro-kx25stla{display:inline-flex;align-items:center;gap:var(--lv-space-2);min-block-size:24px;margin-block-start:var(--lv-space-2);font-size:var(--lv-text-sm);color:var(--lv-text-primary)}.lv-segedit__arrow.astro-kx25stla{display:inline-block;transition:transform var(--lv-dur-fast) var(--lv-ease)}.lv-segedit__link.astro-kx25stla[href]:hover .lv-segedit__title.astro-kx25stla,.lv-segedit__link.astro-kx25stla[href]:focus-visible .lv-segedit__title.astro-kx25stla{text-decoration-color:currentColor}.lv-segedit__link.astro-kx25stla[href]:hover .lv-segedit__arrow.astro-kx25stla,.lv-segedit__link.astro-kx25stla[href]:focus-visible .lv-segedit__arrow.astro-kx25stla{transform:translateX(4px)}.lv-segedit__link.astro-kx25stla:not([href]){cursor:default}.lv-segedit__link.astro-kx25stla:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-space-2)}@media (prefers-reduced-motion: reduce){.lv-segedit__title.astro-kx25stla,.lv-segedit__arrow.astro-kx25stla{transition-duration:0.01ms}.lv-segedit__link.astro-kx25stla[href]:hover .lv-segedit__arrow.astro-kx25stla,.lv-segedit__link.astro-kx25stla[href]:focus-visible .lv-segedit__arrow.astro-kx25stla{transform:none}}
/* components/browse.segment-entry/renderers/segments-frame.astro */
.lv-segframe.astro-lflbzlcx{padding-inline:0}.lv-segframe__head.astro-lflbzlcx{padding-inline:var(--lv-gutter)}.lv-segframe__stage.astro-lflbzlcx{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-block-size:min(calc(var(--lv-stage-vh, 100svh) * 0.92),60rem);padding:var(--lv-space-8) var(--lv-gutter) var(--lv-space-8);background:rgb(var(--lv-glass-under))}.lv-segframe__photos.astro-lflbzlcx{position:absolute;inset:0;z-index:-1;overflow:hidden}.lv-segframe__photo.astro-lflbzlcx{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover}.lv-segframe__photo.astro-lflbzlcx[data-lv-state-layer]{opacity:0}.lv-segframe__inner.astro-lflbzlcx{inline-size:100%}.lv-segframe__cards.astro-lflbzlcx{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--lv-space-3);align-items:stretch;margin:0;padding:0;list-style:none}.lv-segframe__card.astro-lflbzlcx{--lv-text-primary: var(--lv-brand-strong);--lv-text-secondary: var(--lv-brand-strong);--lv-text-tertiary: var(--lv-brand-strong);--lv-focus-ring: var(--lv-brand-strong);display:grid;align-content:start;gap:var(--lv-space-4);block-size:100%;min-block-size:14rem;padding:var(--lv-space-6);border-radius:var(--lv-radius-sm);background:var(--lv-text-on-brand);color:var(--lv-text-primary);text-decoration:none}.lv-segframe__card.astro-lflbzlcx:not([href]){cursor:default}.lv-segframe__card.astro-lflbzlcx:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-segframe__title.astro-lflbzlcx{font-size:var(--lv-text-xl);font-weight:var(--lv-weight-semibold);line-height:var(--lv-leading-snug);text-transform:none}.lv-segframe__detail.astro-lflbzlcx{display:grid;grid-template-rows:1fr}.lv-segframe__fold.astro-lflbzlcx{display:grid;gap:var(--lv-space-4);min-block-size:0;overflow:hidden}.lv-segframe__summary.astro-lflbzlcx{font-size:var(--lv-text-md);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-segframe__count.astro-lflbzlcx{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-segframe__more.astro-lflbzlcx{justify-self:start;font-weight:var(--lv-weight-medium);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:0.35em}@supports selector(:has(*)){.lv-segframe__item.astro-lflbzlcx:not(:first-child) .lv-segframe__detail.astro-lflbzlcx{grid-template-rows:0fr}.lv-segframe__cards.astro-lflbzlcx:has(.lv-segframe__item:is(:hover,:focus-within)) .lv-segframe__item.astro-lflbzlcx:first-child:not(:hover,:focus-within) .lv-segframe__detail.astro-lflbzlcx{grid-template-rows:0fr}.lv-segframe__cards.astro-lflbzlcx .lv-segframe__item.astro-lflbzlcx:is(:hover,:focus-within) .lv-segframe__detail.astro-lflbzlcx{grid-template-rows:1fr}.lv-segframe__stage.astro-lflbzlcx:has(.lv-segframe__item:nth-child(2):is(:hover,:focus-within)) .lv-segframe__photo--2.astro-lflbzlcx,.lv-segframe__stage.astro-lflbzlcx:has(.lv-segframe__item:nth-child(3):is(:hover,:focus-within)) .lv-segframe__photo--3.astro-lflbzlcx,.lv-segframe__stage.astro-lflbzlcx:has(.lv-segframe__item:nth-child(4):is(:hover,:focus-within)) .lv-segframe__photo--4.astro-lflbzlcx{opacity:1}}@media (prefers-reduced-motion: no-preference){.lv-segframe__photo.astro-lflbzlcx{transition:opacity var(--lv-dur-panel) var(--lv-ease)}.lv-segframe__detail.astro-lflbzlcx{transition:grid-template-rows var(--lv-dur-state) var(--lv-ease)}}@container (max-width: 56.249rem){.lv-segframe__stage.astro-lflbzlcx{min-block-size:0;padding:0;background:none}.lv-segframe__photos.astro-lflbzlcx{position:relative;inset:auto;z-index:0;aspect-ratio:4 / 3;background:rgb(var(--lv-glass-under))}.lv-segframe__inner.astro-lflbzlcx{padding:var(--lv-space-4) 0 0 var(--lv-gutter)}.lv-segframe__cards.astro-lflbzlcx{grid-template-columns:none;grid-auto-columns:78%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding-inline-end:var(--lv-gutter);scrollbar-width:none}.lv-segframe__item.astro-lflbzlcx{scroll-snap-align:start}.lv-segframe__card.astro-lflbzlcx{box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--lv-brand-strong) 18%,transparent)}}
/* components/browse.segment-entry/renderers/segments-index.astro */
.lv-segidx__inner.astro-5rxk7usy{display:grid;grid-template-columns:minmax(0,1fr);row-gap:var(--lv-space-7)}.lv-segidx__head.astro-5rxk7usy{margin:0}.lv-segidx__list.astro-5rxk7usy{margin:0;padding:0;list-style:none}.lv-segidx__item.astro-5rxk7usy{break-inside:avoid}.lv-segidx__link.astro-5rxk7usy{display:inline-flex;align-items:baseline;gap:var(--lv-space-2);min-block-size:44px;padding-block:var(--lv-space-1);font-size:var(--lv-text-md);font-weight:var(--lv-weight-regular);line-height:var(--lv-leading-normal);color:color-mix(in oklab,var(--lv-text-primary) 64%,transparent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.3em;text-decoration-color:transparent;transition:color var(--lv-dur-fast) var(--lv-ease),text-decoration-color var(--lv-dur-fast) var(--lv-ease)}.lv-segidx__link.astro-5rxk7usy[href]:hover,.lv-segidx__link.astro-5rxk7usy[href]:focus-visible{color:var(--lv-text-primary);text-decoration-color:currentColor}.lv-segidx__link.astro-5rxk7usy:not([href]){cursor:default}.lv-segidx__link.astro-5rxk7usy:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-segidx__count.astro-5rxk7usy{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-segidx__picture.astro-5rxk7usy{margin:0;overflow:hidden;aspect-ratio:4 / 5;max-inline-size:26rem;background:var(--lv-surface-sunken)}.lv-segidx__picture.astro-5rxk7usy img.astro-5rxk7usy{display:block;inline-size:100%;block-size:100%;object-fit:cover}@container (min-width: 40rem){.lv-segidx__list.astro-5rxk7usy{columns:2;column-gap:var(--lv-space-7)}}@container (min-width: 60rem){.lv-segidx--pictured.astro-5rxk7usy .lv-segidx__inner.astro-5rxk7usy{grid-template-columns:minmax(0,2fr) minmax(0,1fr);column-gap:var(--lv-space-8)}.lv-segidx--pictured.astro-5rxk7usy .lv-segidx__picture.astro-5rxk7usy{grid-column:2;grid-row:1 / span 2;align-self:start;max-inline-size:none}.lv-segidx--pictured.astro-5rxk7usy .lv-segidx__head.astro-5rxk7usy,.lv-segidx--pictured.astro-5rxk7usy .lv-segidx__list.astro-5rxk7usy{grid-column:1}}@media (prefers-reduced-motion: reduce){.lv-segidx__link.astro-5rxk7usy{transition-duration:0.01ms}}
/* components/browse.segment-entry/renderers/segments-mosaic.astro */
.lv-mosaic-seg.astro-wbvjyyu2{padding-inline:0}.lv-mosaic-seg__head.astro-wbvjyyu2{padding-inline:var(--lv-gutter)}.lv-mosaic-seg__field.astro-wbvjyyu2{--lv-mosaic-seam: calc(var(--lv-space-1) * 1.5);display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:clamp(15rem,62cqi,26rem);gap:var(--lv-mosaic-seam);margin:0;padding:0;list-style:none}@container (min-width: 43.75rem){.lv-mosaic-seg__field.astro-wbvjyyu2{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(16rem,28cqi,26rem)}.lv-mosaic-seg__item.astro-wbvjyyu2{grid-area:var(--lv-mosaic-area)}}.lv-mosaic-seg__plate.astro-wbvjyyu2{position:relative;isolation:isolate;container-type:inline-size;display:block;block-size:100%;overflow:hidden;background:var(--lv-surface-sunken);color:var(--lv-text-on-brand);text-decoration:none}.lv-mosaic-seg__plate.astro-wbvjyyu2 img.astro-wbvjyyu2{position:absolute;inset:0;z-index:-2;inline-size:100%;block-size:100%;object-fit:cover}.lv-mosaic-seg__plate.astro-wbvjyyu2::after{content:"";position:absolute;inset:0 0 auto;z-index:-1;block-size:min(70%,16rem);background:linear-gradient(to bottom,rgb(var(--lv-glass-under) / 0.74),rgb(var(--lv-glass-under) / 0.3) 60%,rgb(var(--lv-glass-under) / 0))}.lv-mosaic-seg__text.astro-wbvjyyu2{display:flex;flex-direction:column;gap:var(--lv-space-2);padding:var(--lv-space-5) var(--lv-space-5) 0;max-inline-size:36rem}.lv-mosaic-seg__label.astro-wbvjyyu2{font-family:var(--lv-display-family);font-size:var(--lv-text-xl);font-weight:var(--lv-weight-light, var(--lv-weight-regular));line-height:1;letter-spacing:0.02em;text-transform:uppercase;hyphens:auto;overflow-wrap:anywhere}@container (min-width: 43.75rem){.lv-mosaic-seg__label.astro-wbvjyyu2{font-size:min(var(--lv-text-2xl),7cqi)}}.lv-mosaic-seg__summary.astro-wbvjyyu2{max-inline-size:34ch;font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal)}@media (hover: hover) and (prefers-reduced-motion: no-preference){.lv-mosaic-seg__summary.astro-wbvjyyu2{opacity:0;transition:opacity var(--lv-dur-state) var(--lv-ease)}.lv-mosaic-seg__plate.astro-wbvjyyu2:hover .lv-mosaic-seg__summary.astro-wbvjyyu2,.lv-mosaic-seg__plate.astro-wbvjyyu2:focus-visible .lv-mosaic-seg__summary.astro-wbvjyyu2{opacity:1}.lv-mosaic-seg__plate.astro-wbvjyyu2 img.astro-wbvjyyu2{transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-mosaic-seg__plate.astro-wbvjyyu2[href]:hover img.astro-wbvjyyu2{transform:scale(1.03)}}.lv-mosaic-seg__plate.astro-wbvjyyu2:not([href]){cursor:default}.lv-mosaic-seg__plate.astro-wbvjyyu2:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-mosaic-seam) * -1)}
/* components/browse.segment-entry/renderers/segments-plates.astro */
.lv-segp__list.astro-5jgc3ozb{--lv-segp-gap: var(--lv-space-7);display:flex;flex-wrap:wrap;justify-content:center;gap:var(--lv-space-7) var(--lv-segp-gap);margin:0;padding:0;list-style:none}.lv-segp__item.astro-5jgc3ozb{flex:0 0 75%;min-inline-size:0}@container (min-width: 40rem){.lv-segp__item.astro-5jgc3ozb{flex-basis:calc((100% - var(--lv-segp-gap)) / 2)}}@container (min-width: 60rem){.lv-segp__item.astro-5jgc3ozb{flex-basis:calc((100% - (var(--lv-segp-count) - 1) * var(--lv-segp-gap)) * var(--lv-segp-share))}}.lv-segp__link.astro-5jgc3ozb{display:flex;flex-direction:column;align-items:center;gap:var(--lv-space-2);color:inherit;text-align:center;text-decoration:none}.lv-segp__plate.astro-5jgc3ozb{display:block;inline-size:100%;overflow:hidden;border-radius:var(--lv-radius-sm);background:var(--lv-surface-sunken);aspect-ratio:1}.is-featured.astro-5jgc3ozb .lv-segp__plate.astro-5jgc3ozb{aspect-ratio:3 / 2}@container (max-width: 59.999rem){.lv-segp__plate.astro-5jgc3ozb,.is-featured.astro-5jgc3ozb .lv-segp__plate.astro-5jgc3ozb{aspect-ratio:3 / 2}}.lv-segp__plate.astro-5jgc3ozb img.astro-5jgc3ozb{display:block;inline-size:100%;block-size:100%;object-fit:cover}.lv-segp__icon.astro-5jgc3ozb{color:var(--lv-text-secondary)}.lv-segp__label.astro-5jgc3ozb{font-family:var(--lv-display-family);font-size:var(--lv-text-lg);font-weight:var(--lv-weight-regular);line-height:var(--lv-leading-snug);color:var(--lv-text-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.25em;text-decoration-color:transparent;transition:text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-segp__link.astro-5jgc3ozb[href]:hover .lv-segp__label.astro-5jgc3ozb,.lv-segp__link.astro-5jgc3ozb[href]:focus-visible .lv-segp__label.astro-5jgc3ozb{text-decoration-color:currentColor}.lv-segp__summary.astro-5jgc3ozb{max-inline-size:32ch;font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-segp__count.astro-5jgc3ozb{font-size:var(--lv-text-2xs, var(--lv-text-xs));letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-tertiary)}.lv-segp__link.astro-5jgc3ozb:not([href]){cursor:default}.lv-segp__link.astro-5jgc3ozb:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-space-2)}@media (prefers-reduced-motion: reduce){.lv-segp__label.astro-5jgc3ozb{transition-duration:0.01ms}}
/* components/browse.segment-entry/renderers/segments-rail.astro */
.lv-segrail__list.astro-r6wyqefb{--lv-segrail-card: 72%;display:grid;grid-auto-flow:column;grid-auto-columns:var(--lv-segrail-card);gap:var(--lv-space-4);margin:calc(var(--lv-space-5) * -1) 0 0;padding:var(--lv-space-5) 0 var(--lv-space-8);list-style:none;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}@container (min-width: 43.75rem){.lv-segrail__list.astro-r6wyqefb{--lv-segrail-card: calc((100% - 2 * var(--lv-space-5)) / 3.2);gap:var(--lv-space-5)}}@container (min-width: 68.75rem){.lv-segrail__list.astro-r6wyqefb{--lv-segrail-card: calc((100% - 3 * var(--lv-space-5)) / 4.2)}}@container (min-width: 43.75rem){.lv-segrail--still.astro-r6wyqefb .lv-segrail__list.astro-r6wyqefb{grid-auto-flow:row;grid-template-columns:repeat(auto-fit,min(100%,20rem));justify-content:center;overflow-x:visible}}.lv-segrail__item.astro-r6wyqefb{scroll-snap-align:start;min-inline-size:0}.lv-segrail__card.astro-r6wyqefb{position:relative;isolation:isolate;display:flex;flex-direction:column;block-size:100%;overflow:hidden;color:inherit;text-decoration:none}.lv-segrail__card.astro-r6wyqefb:not([href]){cursor:default}.lv-segrail__card.astro-r6wyqefb:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-focus-width) * -1)}.lv-segrail__foot.astro-r6wyqefb{display:none}.astro-r6wyqefb[data-lv-ready] .lv-segrail__foot.astro-r6wyqefb{display:flex;justify-content:flex-end;gap:var(--lv-space-3)}.lv-segrail__step.astro-r6wyqefb{display:grid;place-items:center;inline-size:48px;block-size:48px;border:1px solid var(--lv-line-control, var(--lv-line-strong));border-radius:var(--lv-radius-pill);background:var(--lv-surface);color:var(--lv-text-primary);cursor:pointer;transition:background-color var(--lv-dur-fast) var(--lv-ease)}.lv-segrail__step.astro-r6wyqefb:hover:not(:disabled){background:color-mix(in oklab,var(--lv-text-primary) 6%,var(--lv-surface))}.lv-segrail__step.astro-r6wyqefb:disabled{cursor:default;opacity:0.4}.lv-segrail__step.astro-r6wyqefb:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}@container (max-width: 43.749rem){.astro-r6wyqefb[data-lv-ready] .lv-segrail__foot.astro-r6wyqefb{display:none}}.lv-segrail--feature.astro-r6wyqefb .lv-segrail__card.astro-r6wyqefb{min-block-size:22rem;padding:var(--lv-space-6) var(--lv-space-6) 0;border-radius:var(--lv-radius-xl, var(--lv-radius-lg));background:var(--lv-surface);box-shadow:0 24px 48px -28px rgb(var(--lv-glass-under) / 0.32),0 2px 6px rgb(var(--lv-glass-under) / 0.06)}.lv-segrail--feature.astro-r6wyqefb .lv-segrail__text.astro-r6wyqefb{display:grid;gap:var(--lv-space-2)}.lv-segrail--feature.astro-r6wyqefb .lv-segrail__title.astro-r6wyqefb{font-size:var(--lv-text-lg);font-weight:var(--lv-weight-bold);line-height:var(--lv-leading-snug);color:var(--lv-text-primary)}.lv-segrail--feature.astro-r6wyqefb .lv-segrail__summary.astro-r6wyqefb{font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-segrail__count.astro-r6wyqefb{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-segrail__object.astro-r6wyqefb{display:block;flex:1 1 auto;min-block-size:0;block-size:60%;margin-block-start:auto;padding:var(--lv-space-4) 0 var(--lv-space-5)}.lv-segrail__object.astro-r6wyqefb img.astro-r6wyqefb{display:block;inline-size:100%;block-size:100%;max-block-size:13rem;object-fit:contain}.lv-segrail--feature.astro-r6wyqefb .lv-segrail__card.astro-r6wyqefb[href]:hover .lv-segrail__title.astro-r6wyqefb{text-decoration:underline;text-underline-offset:0.2em}.lv-segrail--poster.astro-r6wyqefb .lv-segrail__card.astro-r6wyqefb{aspect-ratio:3 / 4;justify-content:flex-end;border-radius:var(--lv-radius-lg);background:var(--lv-brand-strong);color:var(--lv-text-on-brand)}.lv-segrail__poster.astro-r6wyqefb{position:absolute;inset:0;z-index:-2;inline-size:100%;block-size:100%;object-fit:cover}.lv-segrail--poster.astro-r6wyqefb .lv-segrail__card.astro-r6wyqefb::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgb(var(--lv-glass-under) / 0.88) 0%,rgb(var(--lv-glass-under) / 0.42) 42%,rgb(var(--lv-glass-under) / 0.04) 75%)}.lv-segrail__badge.astro-r6wyqefb{position:absolute;inset-block-start:var(--lv-space-4);inset-inline-start:var(--lv-space-4);padding:2px var(--lv-space-3);border-radius:var(--lv-radius-pill);background:var(--lv-surface);font-size:var(--lv-text-xs);font-weight:var(--lv-weight-semibold);color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-segrail--poster.astro-r6wyqefb .lv-segrail__text.astro-r6wyqefb{display:grid;gap:var(--lv-space-3);padding:0 var(--lv-space-5) var(--lv-space-7);text-align:center}.lv-segrail--poster.astro-r6wyqefb .lv-segrail__title.astro-r6wyqefb{font-size:var(--lv-text-xl);font-weight:var(--lv-weight-bold);line-height:var(--lv-leading-tight);text-wrap:balance}.lv-segrail--poster.astro-r6wyqefb .lv-segrail__summary.astro-r6wyqefb{font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal)}@media (hover: hover) and (prefers-reduced-motion: no-preference){.lv-segrail__poster.astro-r6wyqefb{transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-segrail--poster.astro-r6wyqefb .lv-segrail__card.astro-r6wyqefb[href]:hover .lv-segrail__poster.astro-r6wyqefb{transform:scale(1.03)}}@media (prefers-reduced-motion: reduce){.lv-segrail__step.astro-r6wyqefb{transition-duration:0.01ms}}
/* components/browse.segment-entry/renderers/segments.astro */
.lv-grid.astro-w3beacb4{display:flex;flex-wrap:wrap;justify-content:center}.lv-seg__rich.astro-w3beacb4{flex:1 1 min(17rem,100%)}@container (min-width: 56rem){.lv-seg__rich.astro-w3beacb4{max-inline-size:calc((100% - 2 * var(--lv-space-5)) / 3)}}.lv-seg__card.astro-w3beacb4{text-decoration:none;color:inherit;transition:transform var(--lv-dur-state) var(--lv-ease),box-shadow var(--lv-dur-state) var(--lv-ease)}.lv-seg__card.astro-w3beacb4:hover{box-shadow:inset 0 0 0 1px var(--lv-line-strong),var(--lv-lift-2)}.lv-seg__card.astro-w3beacb4:not([href]){cursor:default}.lv-seg__card.astro-w3beacb4:not([href]):hover{transform:none;box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-seg__card.astro-w3beacb4:not([href]):hover .lv-media.astro-w3beacb4 img.astro-w3beacb4{transform:none}.lv-seg__card.astro-w3beacb4:not([href]) .lv-seg__cardarrow.astro-w3beacb4{display:none}.lv-seg__cardarrow.astro-w3beacb4{display:grid;place-items:center;align-self:flex-end;margin-block-start:auto;inline-size:2.25rem;block-size:2.25rem;border-radius:var(--lv-radius-pill);border:1.5px solid var(--lv-line-strong);color:var(--lv-text-secondary);transition:background-color var(--lv-dur-fast) var(--lv-ease),border-color var(--lv-dur-fast) var(--lv-ease),color var(--lv-dur-fast) var(--lv-ease),transform var(--lv-dur-fast) var(--lv-ease)}.lv-seg__card.astro-w3beacb4:hover .lv-seg__cardarrow.astro-w3beacb4,.lv-seg__card.astro-w3beacb4:focus-visible .lv-seg__cardarrow.astro-w3beacb4{background:var(--lv-brand-strong);border-color:var(--lv-brand-strong);color:var(--lv-text-on-brand);transform:translateX(3px)}.lv-seg__label.astro-w3beacb4{font-weight:var(--lv-weight-semibold)}.lv-seg__icon.astro-w3beacb4{margin-block-end:var(--lv-space-3)}.lv-seg--tiles.astro-w3beacb4 .lv-seg__label.astro-w3beacb4,.lv-seg--cards.astro-w3beacb4 .lv-seg__label.astro-w3beacb4{font-size:var(--lv-text-md)}.lv-seg__count.astro-w3beacb4{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-seg__chip.astro-w3beacb4:not([href]){cursor:default}.lv-seg__chip.astro-w3beacb4:not([href]):hover{background:var(--lv-surface)}.lv-seg__rows.astro-w3beacb4{margin:0;padding:0;list-style:none;max-inline-size:56rem;counter-reset:lv-seg-row;border-block-start:1px solid var(--lv-line)}.lv-seg__row.astro-w3beacb4{counter-increment:lv-seg-row;border-block-end:1px solid var(--lv-line)}.lv-seg__row-link.astro-w3beacb4{display:flex;align-items:center;gap:var(--lv-space-4);padding-block:var(--lv-space-4);color:inherit;text-decoration:none}.lv-seg__row-link.astro-w3beacb4::before{content:counter(lv-seg-row,decimal-leading-zero);flex:none;min-inline-size:2ch;font:var(--lv-weight-bold) var(--lv-text-xl) / 1 var(--lv-font-mono);font-variant-numeric:tabular-nums;letter-spacing:var(--lv-tracking-num);color:var(--lv-line-strong);transition:color var(--lv-dur-fast) var(--lv-ease)}.lv-seg__row-link.astro-w3beacb4[href]:hover::before,.lv-seg__row-link.astro-w3beacb4[href]:focus-visible::before{color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-seg__row-icon.astro-w3beacb4{color:var(--lv-text-secondary)}.lv-seg__row-text.astro-w3beacb4{flex:1;min-inline-size:0}.lv-seg__row-summary.astro-w3beacb4{display:block;margin-block-start:var(--lv-space-1);font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-seg__row-arrow.astro-w3beacb4{flex:none;display:grid;place-items:center;color:var(--lv-text-tertiary);transition:transform var(--lv-dur-fast) var(--lv-ease),color var(--lv-dur-fast) var(--lv-ease)}.lv-seg__row-link.astro-w3beacb4[href]:hover .lv-seg__row-arrow.astro-w3beacb4,.lv-seg__row-link.astro-w3beacb4[href]:focus-visible .lv-seg__row-arrow.astro-w3beacb4{transform:translateX(4px);color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-seg__row-link.astro-w3beacb4[href]:active .lv-seg__row-arrow.astro-w3beacb4{transform:translateX(2px)}.lv-seg__row-link.astro-w3beacb4:not([href]){cursor:default}.lv-seg__row-link.astro-w3beacb4:not([href]) .lv-seg__row-arrow.astro-w3beacb4{display:none}.lv-seg__row-link.astro-w3beacb4:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:2px}.lv-seg__showcase.astro-w3beacb4{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--lv-space-5)}.lv-seg__showcase-item.astro-w3beacb4{grid-column:span 6}.lv-seg__showcase-card.astro-w3beacb4{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:flex-end;aspect-ratio:16 / 11;border-radius:var(--lv-radius-md);text-decoration:none;color:var(--lv-text-on-brand);box-shadow:inset 0 0 0 1px var(--lv-line)}@container (min-width: 53.75rem){.lv-seg__showcase-item.astro-w3beacb4{grid-column:span var(--lv-showcase-span, 6)}.lv-seg__showcase-item.astro-w3beacb4.is-standard .lv-seg__showcase-card.astro-w3beacb4{aspect-ratio:4 / 4.6}.lv-seg__showcase-item.astro-w3beacb4.is-featured .lv-seg__showcase-card.astro-w3beacb4{aspect-ratio:16 / 10.5}.lv-seg__showcase-item.astro-w3beacb4.is-stretched .lv-seg__showcase-card.astro-w3beacb4{aspect-ratio:16 / 10.5}.lv-seg__showcase-item.astro-w3beacb4.is-full-row .lv-seg__showcase-card.astro-w3beacb4{aspect-ratio:21 / 9}}.lv-seg__showcase-media.astro-w3beacb4{position:absolute;inset:0;z-index:-2;border-radius:0}.lv-seg__showcase-card.astro-w3beacb4::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgb(var(--lv-glass-under) / 0.88) 0%,rgb(var(--lv-glass-under) / 0.42) 42%,rgb(var(--lv-glass-under) / 0.04) 75%)}.lv-seg__showcase-body.astro-w3beacb4{display:flex;align-items:flex-end;gap:var(--lv-space-4);inline-size:100%;padding:var(--lv-space-5)}.lv-seg__showcase-text.astro-w3beacb4{flex:1;min-inline-size:0}.lv-seg__showcase-title.astro-w3beacb4{display:block;font-size:var(--lv-text-lg);font-weight:var(--lv-weight-bold);line-height:var(--lv-leading-snug);color:var(--lv-text-on-brand)}.lv-seg__showcase-item.astro-w3beacb4.is-featured .lv-seg__showcase-title.astro-w3beacb4{font-size:var(--lv-text-xl)}.lv-seg__showcase-count.astro-w3beacb4{position:absolute;inset-block-start:var(--lv-space-3);inset-inline-end:var(--lv-space-3);padding:2px var(--lv-space-3);border-radius:var(--lv-radius-pill);background:var(--lv-surface);box-shadow:var(--lv-lift-1);font-size:var(--lv-text-xs);color:var(--lv-text-primary)}.lv-seg__showcase-summary.astro-w3beacb4{display:block;margin-block-start:var(--lv-space-2);max-inline-size:38ch;font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal);color:color-mix(in srgb,var(--lv-text-on-brand) 86%,transparent)}.lv-seg__showcase-arrow.astro-w3beacb4{flex:none;display:grid;place-items:center;inline-size:2.75rem;block-size:2.75rem;border-radius:var(--lv-radius-pill);border:1.5px solid color-mix(in srgb,var(--lv-text-on-brand) 55%,transparent);color:var(--lv-text-on-brand);transition:background-color var(--lv-dur-fast) var(--lv-ease),border-color var(--lv-dur-fast) var(--lv-ease),color var(--lv-dur-fast) var(--lv-ease),transform var(--lv-dur-fast) var(--lv-ease)}.lv-seg__showcase-card.astro-w3beacb4:hover .lv-seg__showcase-arrow.astro-w3beacb4,.lv-seg__showcase-card.astro-w3beacb4:focus-visible .lv-seg__showcase-arrow.astro-w3beacb4{background:var(--lv-brand-strong);border-color:var(--lv-brand-strong);color:var(--lv-text-on-brand);transform:translateX(3px)}.lv-seg__showcase-card.astro-w3beacb4:not([href]){cursor:default}.lv-seg__showcase-card.astro-w3beacb4:not([href]):hover{transform:none;box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-seg__showcase-card.astro-w3beacb4:not([href]):hover .lv-media.astro-w3beacb4 img.astro-w3beacb4{transform:none}.lv-seg__showcase-card.astro-w3beacb4:not([href]) .lv-seg__showcase-arrow.astro-w3beacb4{display:none}.lv-seg__showcase-card.astro-w3beacb4:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-focus-width) * -1)}@media (prefers-reduced-motion: reduce){.lv-seg__card.astro-w3beacb4,.lv-seg__cardarrow.astro-w3beacb4,.lv-seg__showcase-arrow.astro-w3beacb4,.lv-seg__row-link.astro-w3beacb4::before,.lv-seg__row-arrow.astro-w3beacb4{transition:none}}
/* components/browse.shop-catalog/renderers/catalog.astro */
.lv-shopcat.astro-hws5ox6u{--lv-shopcat-rail-width: 15.5rem;--lv-shopcat-gap: var(--lv-space-5);container-type:inline-size;padding-block:var(--lv-space-8);display:grid;gap:var(--lv-space-5)}.lv-shopcat__head.astro-hws5ox6u{display:grid;gap:var(--lv-space-2);max-inline-size:var(--lv-measure)}.lv-shopcat__eyebrow.astro-hws5ox6u{margin:0;font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-secondary)}.lv-shopcat__title.astro-hws5ox6u{margin:0;font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-heading);letter-spacing:var(--lv-tracking-heading);color:var(--lv-text-primary);text-wrap:balance}.lv-shopcat__desc.astro-hws5ox6u{margin:0;color:var(--lv-text-secondary);line-height:var(--lv-leading-normal)}.lv-shopcat__bar.astro-hws5ox6u{display:flex;flex-wrap:wrap;gap:var(--lv-space-3);align-items:center}.lv-shopcat__search.astro-hws5ox6u{position:relative;flex:1 1 18rem;min-inline-size:0}.lv-shopcat__search-icon.astro-hws5ox6u{position:absolute;inset-inline-start:var(--lv-space-3);inset-block-start:50%;transform:translateY(-50%);color:var(--lv-text-tertiary);pointer-events:none}.lv-shopcat__search.astro-hws5ox6u input.astro-hws5ox6u{inline-size:100%;min-block-size:48px;padding-inline:calc(var(--lv-space-3) + 26px) var(--lv-space-3);border:1px solid var(--lv-line-strong);border-radius:var(--lv-radius-md);background:var(--lv-surface);color:var(--lv-text-primary);font:inherit}.lv-shopcat__search.astro-hws5ox6u input.astro-hws5ox6u:focus-visible,.lv-shopcat__sort.astro-hws5ox6u select.astro-hws5ox6u:focus-visible,.lv-shopcat__filter-btn.astro-hws5ox6u:focus-visible,.lv-shopcat__close.astro-hws5ox6u:focus-visible,.lv-shopcat__group.astro-hws5ox6u summary.astro-hws5ox6u:focus-visible,.lv-shopcat__price-range.astro-hws5ox6u input.astro-hws5ox6u:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-shopcat__filter-btn.astro-hws5ox6u{display:none;align-items:center;gap:var(--lv-space-2);min-block-size:48px;padding-inline:var(--lv-space-4);border:1px solid var(--lv-line-strong);border-radius:var(--lv-radius-md);background:var(--lv-surface);color:var(--lv-text-primary);font:inherit;font-weight:var(--lv-weight-semibold);cursor:pointer}.lv-shopcat__filter-count.astro-hws5ox6u:not(:empty)::before{content:"("}.lv-shopcat__filter-count.astro-hws5ox6u:not(:empty)::after{content:")"}.lv-shopcat__sort.astro-hws5ox6u{display:inline-flex;align-items:center;gap:var(--lv-space-2);color:var(--lv-text-secondary);font-size:var(--lv-text-sm)}.lv-shopcat__sort.astro-hws5ox6u select.astro-hws5ox6u{min-block-size:48px;padding-inline:var(--lv-space-3);border:1px solid var(--lv-line-strong);border-radius:var(--lv-radius-md);background:var(--lv-surface);color:var(--lv-text-primary);font:inherit}.lv-shopcat__body.astro-hws5ox6u{display:grid;gap:var(--lv-shopcat-gap);align-items:start}.lv-shopcat__main.astro-hws5ox6u{display:grid;gap:var(--lv-space-4);min-inline-size:0}.lv-shopcat__count.astro-hws5ox6u{margin:0;color:var(--lv-text-secondary);font-size:var(--lv-text-sm)}.lv-shopcat__count-n.astro-hws5ox6u{font-variant-numeric:tabular-nums;color:var(--lv-text-primary);font-weight:var(--lv-weight-semibold)}.lv-shopcat__sheet.astro-hws5ox6u{padding:0;border:0;background:var(--lv-surface);color:var(--lv-text-primary)}.lv-shopcat__rail.astro-hws5ox6u{display:grid;gap:var(--lv-space-2)}.lv-shopcat__sheet-head.astro-hws5ox6u{display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-3)}.lv-shopcat__sheet-title.astro-hws5ox6u{margin:0;font-weight:var(--lv-weight-semibold);font-size:var(--lv-text-md)}.lv-shopcat__close.astro-hws5ox6u{display:inline-grid;place-items:center;inline-size:44px;block-size:44px;border:0;border-radius:var(--lv-radius-pill);background:transparent;color:inherit;cursor:pointer}.lv-shopcat__group.astro-hws5ox6u{border-block-start:1px solid var(--lv-line)}.lv-shopcat__group.astro-hws5ox6u summary.astro-hws5ox6u{display:flex;align-items:center;min-block-size:44px;font-weight:var(--lv-weight-semibold);cursor:pointer;list-style-position:inside}.lv-shopcat__group.astro-hws5ox6u fieldset.astro-hws5ox6u{margin:0 0 var(--lv-space-2);padding:0;border:0;display:grid;max-block-size:18rem;overflow-y:auto}.lv-shopcat__check.astro-hws5ox6u{display:flex;align-items:center;gap:var(--lv-space-2);min-block-size:44px;cursor:pointer;font-size:var(--lv-text-sm);color:var(--lv-text-primary)}.lv-shopcat__check.astro-hws5ox6u input.astro-hws5ox6u{inline-size:1.125rem;block-size:1.125rem;accent-color:var(--lv-brand);flex:none}.lv-shopcat__check--stock.astro-hws5ox6u{font-weight:var(--lv-weight-semibold)}.lv-shopcat__n.astro-hws5ox6u{margin-inline-start:auto;color:var(--lv-text-tertiary);font-variant-numeric:tabular-nums;font-size:var(--lv-text-xs)}.lv-shopcat__price-range.astro-hws5ox6u{display:grid;grid-template-columns:1fr 1fr;gap:var(--lv-space-2);padding-block-end:var(--lv-space-3)}.lv-shopcat__price-range.astro-hws5ox6u label.astro-hws5ox6u{display:grid;gap:var(--lv-space-1);font-size:var(--lv-text-xs);color:var(--lv-text-secondary)}.lv-shopcat__price-range.astro-hws5ox6u input.astro-hws5ox6u{min-block-size:44px;inline-size:100%;padding-inline:var(--lv-space-2);border:1px solid var(--lv-line-strong);border-radius:var(--lv-radius-sm);background:var(--lv-surface);color:var(--lv-text-primary);font:inherit}.lv-shopcat__sheet-foot.astro-hws5ox6u{display:flex;gap:var(--lv-space-3);justify-content:space-between;padding-block-start:var(--lv-space-3);border-block-start:1px solid var(--lv-line)}@container (min-width: 960px){.lv-shopcat--rail.astro-hws5ox6u .lv-shopcat__body.astro-hws5ox6u{grid-template-columns:var(--lv-shopcat-rail-width) minmax(0,1fr)}.lv-shopcat__sheet.astro-hws5ox6u{display:block;position:static;inline-size:auto;max-inline-size:none;max-block-size:none;margin:0}.lv-shopcat__sheet-head.astro-hws5ox6u .lv-shopcat__close.astro-hws5ox6u,.lv-shopcat__show.astro-hws5ox6u{display:none}}@container (max-width: 959.98px){.lv-shopcat--rail.astro-hws5ox6u .lv-shopcat__filter-btn.astro-hws5ox6u{display:inline-flex}.lv-shopcat__sheet.astro-hws5ox6u[open]{position:fixed;inset:auto 0 0 0;inline-size:100%;max-inline-size:100%;max-block-size:85dvh;margin:0;padding:var(--lv-space-4) var(--lv-space-4) calc(var(--lv-space-4) + env(safe-area-inset-bottom));border-radius:var(--lv-radius-lg) var(--lv-radius-lg) 0 0;overflow-y:auto;box-shadow:var(--lv-lift-2)}.lv-shopcat__sheet.astro-hws5ox6u::backdrop{background:color-mix(in oklab,var(--lv-text-primary) 45%,transparent)}.lv-shopcat__sheet-foot.astro-hws5ox6u{position:sticky;inset-block-end:calc(-1 * var(--lv-space-4));background:var(--lv-surface);padding-block-end:var(--lv-space-2)}}.lv-shopcat.astro-hws5ox6u .lv-shopcat__grid{list-style:none;margin:0;padding:0;display:grid;gap:var(--lv-shopcat-gap);grid-template-columns:repeat(auto-fill,minmax(min(calc((100% - var(--lv-shopcat-gap)) / 2),12.5rem),1fr))}.lv-shopcat.astro-hws5ox6u .lv-shopcat__item{min-inline-size:0}.lv-shopcat.astro-hws5ox6u .lv-shopcat__card{display:grid;gap:var(--lv-space-3);align-content:start;block-size:100%}.lv-shopcat.astro-hws5ox6u .lv-shopcat__media{position:relative;display:block;aspect-ratio:1;overflow:hidden;border-radius:var(--lv-radius-md);background:var(--lv-surface-sunken)}.lv-shopcat.astro-hws5ox6u .lv-shopcat__media img{inline-size:100%;block-size:100%;object-fit:contain;transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-shopcat.astro-hws5ox6u .lv-shopcat__card:hover .lv-shopcat__media img{transform:scale(1.03)}.lv-shopcat.astro-hws5ox6u .lv-shopcat__blank{display:block;inline-size:100%;block-size:100%}.lv-shopcat.astro-hws5ox6u .lv-shopcat__badge{position:absolute;inset-block-start:var(--lv-space-2);inset-inline-start:var(--lv-space-2);padding:2px var(--lv-space-2);border-radius:var(--lv-radius-pill);background:var(--lv-surface);color:var(--lv-text-primary);font-size:var(--lv-text-xs);font-weight:var(--lv-weight-semibold)}.lv-shopcat.astro-hws5ox6u .lv-shopcat__meta{display:grid;gap:var(--lv-space-1);align-content:start}.lv-shopcat.astro-hws5ox6u .lv-shopcat__cat{margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-shopcat.astro-hws5ox6u .lv-shopcat__name{margin:0;font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold);line-height:1.35;overflow-wrap:anywhere}.lv-shopcat.astro-hws5ox6u .lv-shopcat__name a{color:var(--lv-text-primary);text-decoration:none}.lv-shopcat.astro-hws5ox6u .lv-shopcat__name a:hover{text-decoration:underline}.lv-shopcat.astro-hws5ox6u .lv-shopcat__name a:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-shopcat.astro-hws5ox6u .lv-shopcat__price{margin:0;color:var(--lv-text-primary);font-variant-numeric:tabular-nums}.lv-shopcat.astro-hws5ox6u .lv-shopcat__amount{font-weight:var(--lv-weight-semibold)}.lv-shopcat.astro-hws5ox6u .lv-shopcat__was{color:var(--lv-text-tertiary);font-size:var(--lv-text-sm)}.lv-shopcat.astro-hws5ox6u .lv-shopcat__from,.lv-shopcat.astro-hws5ox6u .lv-shopcat__vat{color:var(--lv-text-secondary);font-size:var(--lv-text-xs)}.lv-shopcat.astro-hws5ox6u .lv-shopcat__out{margin:var(--lv-space-1) 0 0;color:var(--lv-text-secondary);font-size:var(--lv-text-sm)}.lv-shopcat.astro-hws5ox6u .lv-shopcat__act{justify-self:start;margin-block-start:var(--lv-space-1);min-block-size:44px}.lv-shopcat__none.astro-hws5ox6u,.lv-shopcat__empty.astro-hws5ox6u{display:grid;gap:var(--lv-space-3);justify-items:start;padding:var(--lv-space-6);border-radius:var(--lv-radius-md);background:var(--lv-surface-sunken)}.lv-shopcat__none.astro-hws5ox6u[hidden],.lv-shopcat__error.astro-hws5ox6u[hidden]{display:none}.lv-shopcat__none.astro-hws5ox6u p.astro-hws5ox6u,.lv-shopcat__empty-body.astro-hws5ox6u{margin:0;color:var(--lv-text-secondary)}.lv-shopcat__empty-title.astro-hws5ox6u{margin:0;font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-shopcat__error.astro-hws5ox6u{margin:0;color:var(--lv-bad-text)}.lv-shopcat__more-wrap.astro-hws5ox6u{display:flex;justify-content:center;padding-block-start:var(--lv-space-3)}.lv-shopcat__more.astro-hws5ox6u{min-inline-size:12rem;min-block-size:48px}.lv-shopcat__more.astro-hws5ox6u[hidden]{display:none}.lv-shopcat.astro-hws5ox6u[aria-busy=true] .lv-shopcat__grid{opacity:0.55;transition:opacity var(--lv-dur-panel) var(--lv-ease)}@media (prefers-reduced-motion: reduce){.lv-shopcat.astro-hws5ox6u .lv-shopcat__media img{transition:none}.lv-shopcat.astro-hws5ox6u .lv-shopcat__card:hover .lv-shopcat__media img{transform:none}.lv-shopcat.astro-hws5ox6u[aria-busy=true] .lv-shopcat__grid{transition:none}}.lv-shopcat.astro-hws5ox6u .lv-crumbs,.lv-plpsec.astro-hws5ox6u .lv-crumbs{margin-block-end:var(--lv-space-4)}.lv-shopcat.astro-hws5ox6u .lv-crumbs ol,.lv-plpsec.astro-hws5ox6u .lv-crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-1) var(--lv-space-2);margin:0;padding:0;list-style:none;font-size:var(--lv-text-xs);line-height:1.5;color:var(--lv-text-tertiary)}.lv-shopcat.astro-hws5ox6u .lv-crumbs li:not(:last-child)::after,.lv-plpsec.astro-hws5ox6u .lv-crumbs li:not(:last-child)::after{content:"›";margin-inline-start:var(--lv-space-2)}.lv-shopcat.astro-hws5ox6u .lv-crumbs a,.lv-plpsec.astro-hws5ox6u .lv-crumbs a{color:var(--lv-text-secondary);text-decoration:none}.lv-shopcat.astro-hws5ox6u .lv-crumbs a:hover,.lv-plpsec.astro-hws5ox6u .lv-crumbs a:hover{text-decoration:underline;text-underline-offset:0.2em;color:var(--lv-text-primary)}.lv-shopcat.astro-hws5ox6u .lv-crumbs a:focus-visible,.lv-plpsec.astro-hws5ox6u .lv-crumbs a:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-shopcat.astro-hws5ox6u .lv-crumbs [aria-current],.lv-plpsec.astro-hws5ox6u .lv-crumbs [aria-current]{color:var(--lv-text-primary);font-weight:var(--lv-weight-medium)}.lv-plpsec.astro-hws5ox6u{--lv-plp-rail: 15rem;--lv-plp-gap: var(--lv-space-5)}.lv-plpsec--headless.astro-hws5ox6u{padding-block-start:var(--lv-space-3)}.lv-plpsec__head.astro-hws5ox6u{margin-block-end:var(--lv-space-4)}.lv-plpsec__title.astro-hws5ox6u{font-family:var(--lv-display-family, var(--lv-font-ui));font-size:var(--lv-text-xl);font-weight:var(--lv-weight-heading);letter-spacing:var(--lv-tracking-heading);line-height:var(--lv-leading-tight)}.lv-plpsec__intro.astro-hws5ox6u{max-inline-size:62ch}.lv-plpsec__sibs.astro-hws5ox6u{margin-block-end:var(--lv-space-5)}@media (pointer: fine){.lv-plpsec__sibs.astro-hws5ox6u .lv-chip.astro-hws5ox6u{min-block-size:34px;padding-inline:var(--lv-space-3)}}.lv-plpsec__sibs.astro-hws5ox6u .lv-chip.astro-hws5ox6u[aria-current]{background:var(--lv-brand-soft);color:var(--lv-brand-strong);box-shadow:inset 0 0 0 1px var(--lv-brand);font-weight:var(--lv-weight-semibold)}.lv-plpsec__sibs.astro-hws5ox6u .lv-chip.astro-hws5ox6u:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-plpsec__long.astro-hws5ox6u{margin-block-start:var(--lv-space-8);padding-block-start:var(--lv-space-6);border-block-start:1px solid var(--lv-line);color:var(--lv-text-secondary)}.lv-plpsec__long.astro-hws5ox6u:has(> .lv-plpsec__fold:not([open]))>.lv-plpsec__lead.astro-hws5ox6u{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}.lv-plpsec__lead.astro-hws5ox6u>p.astro-hws5ox6u:last-child{margin-block-end:0}.lv-plpsec__fold.astro-hws5ox6u{margin-block-start:var(--lv-space-4)}.lv-plpsec__fold-btn.astro-hws5ox6u{display:inline-flex;align-items:center;min-block-size:44px;list-style:none;cursor:pointer;color:var(--lv-text-link, var(--lv-text-primary));font-weight:var(--lv-weight-medium);text-decoration:underline;text-underline-offset:0.2em}.lv-plpsec__fold-btn.astro-hws5ox6u::-webkit-details-marker{display:none}.lv-plpsec__fold-btn.astro-hws5ox6u:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-plpsec__fold.astro-hws5ox6u[open]>.lv-plpsec__fold-btn.astro-hws5ox6u{display:none}.lv-plpsec.astro-hws5ox6u .lv-plp{container-type:inline-size;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"count tools" "applied applied" "body body";align-items:center;gap:var(--lv-space-3) var(--lv-space-4)}.lv-plpsec.astro-hws5ox6u .lv-plp__count{grid-area:count;margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-plpsec.astro-hws5ox6u .lv-plp__count-n{font-family:var(--lv-font-ui);font-variant-numeric:tabular-nums;font-weight:var(--lv-weight-bold);color:var(--lv-text-primary);letter-spacing:var(--lv-tracking-num, 0)}.lv-plpsec.astro-hws5ox6u .lv-plp__tools{grid-area:tools;display:flex;align-items:center;gap:var(--lv-space-2)}.lv-plpsec.astro-hws5ox6u .lv-plp__tools-in{display:flex;align-items:center;gap:var(--lv-space-2)}.lv-plpsec.astro-hws5ox6u .lv-plp__filter-btn,.lv-plpsec.astro-hws5ox6u .lv-plp__sort-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--lv-space-2);min-block-size:44px;padding-inline:var(--lv-space-4);border:1px solid var(--lv-line-control);border-radius:var(--lv-radius-pill);background:var(--lv-surface);color:var(--lv-text-primary);font:var(--lv-weight-semibold) var(--lv-text-sm) / 1 var(--lv-font-ui);font-variant-numeric:tabular-nums;cursor:pointer;white-space:nowrap}.lv-plpsec.astro-hws5ox6u .lv-plp__filter-btn{display:none}.lv-plpsec.astro-hws5ox6u .lv-plp__filter-n{display:inline-grid;place-items:center;min-inline-size:1.375rem;block-size:1.375rem;padding-inline:0.3rem;border-radius:var(--lv-radius-pill);background:var(--lv-brand);color:var(--lv-text-on-brand);font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-ui);font-variant-numeric:tabular-nums}.lv-plpsec.astro-hws5ox6u .lv-plp__sort{position:relative}.lv-plpsec.astro-hws5ox6u .lv-plp__sort-btn{list-style:none;font-weight:var(--lv-weight-medium)}.lv-plpsec.astro-hws5ox6u .lv-plp__sort-btn::-webkit-details-marker{display:none}.lv-plpsec.astro-hws5ox6u .lv-plp__sort-label{color:var(--lv-text-secondary)}.lv-plpsec.astro-hws5ox6u .lv-plp__sort-value{font-weight:var(--lv-weight-semibold)}.lv-plpsec.astro-hws5ox6u .lv-plp__chev{flex:none;transition:transform var(--lv-dur-fast) var(--lv-ease)}.lv-plpsec.astro-hws5ox6u .lv-plp__sort[open] .lv-plp__sort-btn .lv-plp__chev,.lv-plpsec.astro-hws5ox6u .lv-plp__facet[open] > .lv-plp__facet-head .lv-plp__chev{transform:rotate(180deg)}.lv-plpsec.astro-hws5ox6u .lv-plp__sort-menu{position:absolute;z-index:var(--lv-z-panel);inset-block-start:calc(100% + var(--lv-space-2));inset-inline-end:0;min-inline-size:15rem;margin:0;padding:var(--lv-space-2);list-style:none;border:1px solid var(--lv-line);border-radius:var(--lv-radius-md);background:var(--lv-surface);box-shadow:var(--lv-lift-2)}.lv-plpsec.astro-hws5ox6u .lv-plp__sort-opt{display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-3);min-block-size:44px;padding-inline:var(--lv-space-3);border-radius:var(--lv-radius-sm);color:var(--lv-text-primary);text-decoration:none;font-size:var(--lv-text-sm)}.lv-plpsec.astro-hws5ox6u .lv-plp__sort-opt:hover{background:var(--lv-surface-sunken)}.lv-plpsec.astro-hws5ox6u .lv-plp__sort-opt.is-current{font-weight:var(--lv-weight-semibold);color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-plpsec.astro-hws5ox6u .lv-plp__check{flex:none}.lv-plpsec.astro-hws5ox6u .lv-plp__applied{grid-area:applied;display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-2) var(--lv-space-3)}.lv-plpsec.astro-hws5ox6u .lv-plp__chips{display:flex;flex-wrap:wrap;gap:var(--lv-space-2);margin:0;padding:0;list-style:none}.lv-plpsec.astro-hws5ox6u .lv-plp__chip{display:inline-flex;align-items:center;gap:var(--lv-space-2);min-block-size:36px;padding-inline:var(--lv-space-3) var(--lv-space-2);border-radius:var(--lv-radius-pill);background:var(--lv-brand-soft);color:var(--lv-brand-strong);font:var(--lv-weight-semibold) var(--lv-text-sm) / 1 var(--lv-font-ui);text-decoration:none;font-variant-numeric:tabular-nums}.lv-plpsec.astro-hws5ox6u .lv-plp__chip:hover{box-shadow:inset 0 0 0 1px var(--lv-brand)}.lv-plpsec.astro-hws5ox6u .lv-plp__clear,.lv-plpsec.astro-hws5ox6u .lv-plp__drawer-clear{color:var(--lv-text-link, var(--lv-text-primary));font-size:var(--lv-text-sm);text-underline-offset:0.2em}.lv-plpsec.astro-hws5ox6u .lv-plp__body{grid-area:body;display:grid;gap:var(--lv-plp-gap);align-items:start;padding-block-start:var(--lv-space-2);border-block-start:1px solid var(--lv-line)}.lv-plpsec.astro-hws5ox6u .lv-plp__main{container-type:inline-size;display:grid;gap:var(--lv-space-6);min-inline-size:0;padding-block-start:var(--lv-space-3)}.lv-plpsec.astro-hws5ox6u .lv-plp__heading{margin:0;font-size:var(--lv-text-lg);font-weight:var(--lv-weight-heading);letter-spacing:var(--lv-tracking-heading);color:var(--lv-text-primary)}.lv-plpsec.astro-hws5ox6u .lv-plp__drawer-head,.lv-plpsec.astro-hws5ox6u .lv-plp__drawer-foot{display:none}.lv-plpsec.astro-hws5ox6u .lv-plp__scrim[hidden]{display:none}.lv-plpsec.astro-hws5ox6u .lv-plp__facet{border-block-end:1px solid var(--lv-line)}.lv-plpsec.astro-hws5ox6u .lv-plp__facet-head{display:flex;align-items:center;gap:var(--lv-space-2);min-block-size:48px;list-style:none;cursor:pointer;font:var(--lv-weight-semibold) var(--lv-text-sm) / 1.2 var(--lv-font-ui);color:var(--lv-text-primary);font-variant-numeric:tabular-nums}.lv-plpsec.astro-hws5ox6u .lv-plp__facet-head::-webkit-details-marker,.lv-plpsec.astro-hws5ox6u .lv-plp__more-btn::-webkit-details-marker{display:none}.lv-plpsec.astro-hws5ox6u .lv-plp__facet-head .lv-plp__chev{margin-inline-start:auto;color:var(--lv-text-tertiary)}.lv-plpsec.astro-hws5ox6u .lv-plp__facet-n{display:inline-grid;place-items:center;min-inline-size:1.25rem;block-size:1.25rem;padding-inline:0.25rem;border-radius:var(--lv-radius-pill);background:var(--lv-brand-soft);color:var(--lv-brand-strong);font:var(--lv-weight-bold) var(--lv-text-2xs, var(--lv-text-xs)) / 1 var(--lv-font-ui);font-variant-numeric:tabular-nums}.lv-plpsec.astro-hws5ox6u .lv-plp__values{display:grid;gap:1px;margin:0 0 var(--lv-space-3);padding:0;list-style:none}.lv-plpsec.astro-hws5ox6u .lv-plp__values--rest{max-block-size:20rem;overflow-y:auto;margin-block-start:var(--lv-space-1);overscroll-behavior:contain}.lv-plpsec.astro-hws5ox6u .lv-plp__value{display:grid;grid-template-columns:1.125rem minmax(0,1fr) auto;align-items:center;gap:var(--lv-space-2);min-block-size:36px;padding-inline:var(--lv-space-1);border-radius:var(--lv-radius-sm);color:var(--lv-text-primary);text-decoration:none;font-size:var(--lv-text-sm);line-height:1.3}.lv-plpsec.astro-hws5ox6u .lv-plp__value:hover{background:var(--lv-surface-sunken)}.lv-plpsec.astro-hws5ox6u .lv-plp__value:hover .lv-plp__vlabel{text-decoration:underline;text-underline-offset:0.2em}.lv-plpsec.astro-hws5ox6u .lv-plp__vlabel{overflow-wrap:anywhere}.lv-plpsec.astro-hws5ox6u .lv-plp__vcount{font:var(--lv-weight-regular) var(--lv-text-xs) / 1 var(--lv-font-ui);font-variant-numeric:tabular-nums;color:var(--lv-text-tertiary)}.lv-plpsec.astro-hws5ox6u .lv-plp__tick{display:grid;place-items:center;inline-size:1.125rem;block-size:1.125rem;border:1.5px solid var(--lv-line-control);border-radius:5px;background:var(--lv-surface);color:transparent}.lv-plpsec.astro-hws5ox6u .lv-plp__tick--radio{border-radius:50%}.lv-plpsec.astro-hws5ox6u .lv-plp__value.is-selected .lv-plp__tick{border-color:var(--lv-brand);background:var(--lv-brand)}.lv-plpsec.astro-hws5ox6u .lv-plp__value.is-selected .lv-plp__tick::after{content:"";inline-size:0.3rem;block-size:0.55rem;margin-block-start:-0.12rem;border:solid var(--lv-text-on-brand);border-width:0 2px 2px 0;transform:rotate(45deg)}.lv-plpsec.astro-hws5ox6u .lv-plp__value.is-selected .lv-plp__tick--radio::after{inline-size:0.4rem;block-size:0.4rem;margin:0;border:0;border-radius:50%;background:var(--lv-text-on-brand);transform:none}.lv-plpsec.astro-hws5ox6u .lv-plp__value.is-selected{font-weight:var(--lv-weight-semibold)}.lv-plpsec.astro-hws5ox6u .lv-plp__more-btn{display:inline-flex;align-items:center;min-block-size:36px;list-style:none;cursor:pointer;color:var(--lv-text-link, var(--lv-text-primary));font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);text-decoration:underline;text-underline-offset:0.2em}.lv-plpsec.astro-hws5ox6u .lv-plp__more[open] > .lv-plp__more-btn{display:none}.lv-plpsec.astro-hws5ox6u .lv-plp__more{margin-block-end:var(--lv-space-3)}.lv-plpsec.astro-hws5ox6u .lv-plp__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--lv-space-6) var(--lv-space-4);margin:0;padding:0;list-style:none}@container (min-width: 34rem){.lv-plpsec.astro-hws5ox6u .lv-plp__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@container (min-width: 46rem){.lv-plpsec.astro-hws5ox6u .lv-plp__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@container (min-width: 64rem){.lv-plpsec.astro-hws5ox6u .lv-plp__grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.lv-plpsec.astro-hws5ox6u .lv-plp__cell{min-inline-size:0}.lv-plpsec.astro-hws5ox6u .lv-pcard{display:flex;flex-direction:column;gap:var(--lv-space-3);block-size:100%}.lv-plpsec.astro-hws5ox6u .lv-pcard__media{position:relative;display:block;aspect-ratio:1;overflow:hidden;border:1px solid var(--lv-line);border-radius:var(--lv-radius-md);background:var(--lv-surface);transition:border-color var(--lv-dur-state) var(--lv-ease)}.lv-plpsec.astro-hws5ox6u .lv-pcard:hover .lv-pcard__media{border-color:var(--lv-line-strong)}.lv-plpsec.astro-hws5ox6u .lv-pcard__media img{inline-size:100%;block-size:100%;padding:7%;object-fit:contain;transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-plpsec.astro-hws5ox6u .lv-pcard:hover .lv-pcard__media img{transform:scale(1.04)}.lv-plpsec.astro-hws5ox6u .lv-pcard--out .lv-pcard__media img{opacity:0.62}.lv-plpsec.astro-hws5ox6u .lv-pcard__blank{display:grid;place-items:center;inline-size:100%;block-size:100%;padding:var(--lv-space-4);background:var(--lv-surface-sunken);color:var(--lv-text-tertiary);font-size:var(--lv-text-xs);text-align:center}.lv-plpsec.astro-hws5ox6u .lv-pcard__badges{position:absolute;inset-block-start:var(--lv-space-2);inset-inline-start:var(--lv-space-2);display:flex;flex-direction:column;align-items:flex-start;gap:var(--lv-space-1)}.lv-plpsec.astro-hws5ox6u .lv-pcard__badge{padding:0.3rem 0.55rem;border-radius:var(--lv-radius-pill);font:var(--lv-weight-bold) var(--lv-text-2xs, var(--lv-text-xs)) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-label, 0.02em);font-variant-numeric:tabular-nums;background:var(--lv-surface);color:var(--lv-text-primary);box-shadow:inset 0 0 0 1px var(--lv-line-strong)}.lv-plpsec.astro-hws5ox6u .lv-pcard__badge--new{background:var(--lv-brand-soft);color:var(--lv-brand-strong);box-shadow:none}.lv-plpsec.astro-hws5ox6u .lv-pcard__badge--pre{background:var(--lv-brand-strong);color:var(--lv-text-on-brand);box-shadow:none}.lv-plpsec.astro-hws5ox6u .lv-pcard__badge--sale{background:var(--lv-bad-surface);color:var(--lv-bad-text);box-shadow:none;font-family:var(--lv-font-ui)}.lv-plpsec.astro-hws5ox6u .lv-pcard__body{display:flex;flex-direction:column;gap:var(--lv-space-1);flex:1 1 auto;min-inline-size:0}.lv-plpsec.astro-hws5ox6u .lv-pcard__cat{margin:0;overflow:hidden;color:var(--lv-text-tertiary);font-size:var(--lv-text-xs);text-overflow:ellipsis;white-space:nowrap}.lv-plpsec.astro-hws5ox6u .lv-pcard__name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;margin:0;min-block-size:2.7em;font-family:var(--lv-font-ui);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold);letter-spacing:0;line-height:1.35;overflow-wrap:anywhere;hyphens:none}.lv-plpsec.astro-hws5ox6u .lv-pcard__name a{color:var(--lv-text-primary);text-decoration:none}.lv-plpsec.astro-hws5ox6u .lv-pcard__name a:hover{text-decoration:underline;text-underline-offset:0.2em}.lv-plpsec.astro-hws5ox6u .lv-pcard__price{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--lv-space-2);margin:var(--lv-space-1) 0 0;color:var(--lv-text-primary)}.lv-plpsec.astro-hws5ox6u .lv-pcard__amount{font:var(--lv-weight-bold) var(--lv-text-md) / 1.2 var(--lv-font-ui);font-variant-numeric:tabular-nums;letter-spacing:-0.01em}.lv-plpsec.astro-hws5ox6u .lv-pcard__from{color:var(--lv-text-secondary);font-size:var(--lv-text-xs)}.lv-plpsec.astro-hws5ox6u .lv-pcard__was{color:var(--lv-text-tertiary);font:var(--lv-weight-regular) var(--lv-text-xs) / 1.2 var(--lv-font-ui);font-variant-numeric:tabular-nums}.lv-plpsec.astro-hws5ox6u .lv-pcard__stock{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--lv-space-2);margin:0;color:var(--lv-text-secondary);font-size:var(--lv-text-xs);line-height:1.45}.lv-plpsec.astro-hws5ox6u .lv-pcard__dot{inline-size:0.5rem;block-size:0.5rem;border-radius:50%;background:var(--lv-line-strong);flex:none}.lv-plpsec.astro-hws5ox6u .lv-pcard__stock[data-state="in"] .lv-pcard__dot{background:var(--lv-ok-text)}.lv-plpsec.astro-hws5ox6u .lv-pcard__stock[data-state="low"] .lv-pcard__dot{background:var(--lv-warn-text)}.lv-plpsec.astro-hws5ox6u .lv-pcard__stock[data-state="preorder"] .lv-pcard__dot,.lv-plpsec.astro-hws5ox6u .lv-pcard__stock[data-state="coming"] .lv-pcard__dot{background:var(--lv-brand)}.lv-plpsec.astro-hws5ox6u .lv-pcard__stock[data-state="in"],.lv-plpsec.astro-hws5ox6u .lv-pcard__stock[data-state="low"],.lv-plpsec.astro-hws5ox6u .lv-pcard__stock[data-state="preorder"]{color:var(--lv-text-primary);font-weight:var(--lv-weight-medium)}.lv-plpsec.astro-hws5ox6u .lv-pcard__release{flex-basis:100%;color:var(--lv-text-secondary);font-weight:var(--lv-weight-regular)}.lv-plpsec.astro-hws5ox6u .lv-pcard__release time{font-family:var(--lv-font-ui);font-variant-numeric:tabular-nums}.lv-plpsec.astro-hws5ox6u .lv-pcard__buy{display:inline-flex;align-items:center;justify-content:center;inline-size:100%;margin-block-start:auto;min-block-size:40px;padding-inline:var(--lv-space-3);border-radius:var(--lv-btn-radius, var(--lv-radius-pill));font:var(--lv-btn-font, var(--lv-weight-bold) var(--lv-text-sm) / 1 var(--lv-font-ui));text-decoration:none;cursor:pointer}.lv-plpsec.astro-hws5ox6u .lv-pcard__buy--add{border:var(--lv-btn-primary-border, 0);background:var(--lv-btn-primary-surface, var(--lv-brand));color:var(--lv-btn-primary-ink, var(--lv-text-on-brand))}.lv-plpsec.astro-hws5ox6u .lv-pcard__buy--add:hover{background:var(--lv-btn-primary-surface-hover, var(--lv-brand-strong))}.lv-plpsec.astro-hws5ox6u .lv-pcard__buy--choose{border:1.5px solid var(--lv-text-primary);background:var(--lv-surface);color:var(--lv-text-primary)}.lv-plpsec.astro-hws5ox6u .lv-pcard__buy--choose:hover{background:var(--lv-text-primary);color:var(--lv-surface)}.lv-plpsec.astro-hws5ox6u .lv-pcard__buy--view{border:1px solid var(--lv-line);background:transparent;color:var(--lv-text-secondary);font-weight:var(--lv-weight-semibold)}.lv-plpsec.astro-hws5ox6u .lv-pcard__buy--view:hover{color:var(--lv-text-primary);border-color:var(--lv-line-strong)}.lv-plpsec.astro-hws5ox6u .lv-pcard__buy:active{transform:scale(0.98)}.lv-plpsec.astro-hws5ox6u .lv-pcard__buy[data-lv-busy]{opacity:0.7}.lv-plpsec.astro-hws5ox6u .lv-plp__pages{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--lv-space-2)}.lv-plpsec.astro-hws5ox6u .lv-plp__nums{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-1);margin:0;padding:0;list-style:none}.lv-plpsec.astro-hws5ox6u .lv-plp__num{display:inline-grid;place-items:center;min-inline-size:44px;block-size:44px;padding-inline:var(--lv-space-2);border-radius:var(--lv-radius-pill);color:var(--lv-text-primary);text-decoration:none;font:var(--lv-weight-medium) var(--lv-text-sm) / 1 var(--lv-font-ui);font-variant-numeric:tabular-nums}.lv-plpsec.astro-hws5ox6u a.lv-plp__num:hover{background:var(--lv-surface-sunken)}.lv-plpsec.astro-hws5ox6u .lv-plp__num.is-current{background:var(--lv-brand-soft);color:var(--lv-brand-strong);font-weight:var(--lv-weight-bold);box-shadow:inset 0 0 0 1px var(--lv-brand)}.lv-plpsec.astro-hws5ox6u .lv-plp__gap{color:var(--lv-text-tertiary);padding-inline:var(--lv-space-1)}.lv-plpsec.astro-hws5ox6u .lv-plp__step{display:inline-flex;align-items:center;gap:var(--lv-space-1);min-block-size:44px;padding-inline:var(--lv-space-3);border-radius:var(--lv-radius-pill);color:var(--lv-text-primary);text-decoration:none;font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold)}.lv-plpsec.astro-hws5ox6u a.lv-plp__step:hover{background:var(--lv-surface-sunken)}.lv-plpsec.astro-hws5ox6u .lv-plp__step.is-off{color:var(--lv-text-tertiary)}.lv-plpsec.astro-hws5ox6u .lv-plp__range{margin:0;text-align:center;color:var(--lv-text-tertiary);font-size:var(--lv-text-xs)}.lv-plpsec.astro-hws5ox6u .lv-plp__none{display:grid;gap:var(--lv-space-3);justify-items:start;padding:var(--lv-space-6);border:1px dashed var(--lv-line-strong);border-radius:var(--lv-radius-lg);background:var(--lv-surface-raised)}.lv-plpsec.astro-hws5ox6u .lv-plp__none-title{margin:0;font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-plpsec.astro-hws5ox6u .lv-plp__none-body{margin:0;color:var(--lv-text-secondary)}.lv-plpsec.astro-hws5ox6u :is(.lv-plp__filter-btn,.lv-plp__sort-btn,.lv-plp__sort-opt,.lv-plp__chip,.lv-plp__clear,.lv-plp__facet-head,.lv-plp__value,.lv-plp__more-btn,.lv-pcard__name a,.lv-pcard__buy,.lv-plp__num,.lv-plp__step,.lv-plp__close,.lv-plp__drawer-clear):focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}@container (min-width: 60rem){.lv-plpsec.astro-hws5ox6u .lv-plp__body:not(.lv-plp__body--solo){grid-template-columns:var(--lv-plp-rail) minmax(0,1fr)}.lv-plpsec.astro-hws5ox6u .lv-plp__facets{padding-block-start:var(--lv-space-1)}}@container (max-width: 59.99rem){.lv-plpsec.astro-hws5ox6u .lv-plp{grid-template-columns:minmax(0,1fr);grid-template-areas:"count" "tools" "applied" "body"}.lv-plpsec.astro-hws5ox6u .lv-plp__tools-in{display:grid;grid-template-columns:1fr 1fr;inline-size:100%}.lv-plpsec.astro-hws5ox6u .lv-plp__tools{min-block-size:44px}.lv-plpsec.astro-hws5ox6u .lv-plp__sort-btn{inline-size:100%}.lv-plpsec.astro-hws5ox6u .lv-plp__sort-menu{inset-inline:auto 0;inline-size:max-content;max-inline-size:min(20rem,90vw)}.lv-plpsec.astro-hws5ox6u[data-js] .lv-plp__filter-btn{display:inline-flex}.lv-plpsec.astro-hws5ox6u:not([data-js]) .lv-plp__tools-in{grid-template-columns:1fr}.lv-plpsec.astro-hws5ox6u[data-js] .lv-plp__facets{position:fixed;z-index:var(--lv-z-overlay);inset-block:0;inset-inline-start:0;display:flex;flex-direction:column;inline-size:min(24rem,92vw);background:var(--lv-surface);box-shadow:var(--lv-lift-3);transform:translateX(-102%);visibility:hidden}.lv-plpsec.astro-hws5ox6u[data-js] .lv-plp.is-drawer .lv-plp__facets{transform:none;visibility:visible}.lv-plpsec.astro-hws5ox6u[data-js] .lv-plp__scrim{position:fixed;z-index:calc(var(--lv-z-overlay) - 1);inset:0;background:var(--lv-overlay-scrim, color-mix(in oklab, var(--lv-text-primary) 45%, transparent))}.lv-plpsec.astro-hws5ox6u[data-js] .lv-plp__drawer-head{display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-3);padding:var(--lv-space-3) var(--lv-space-3) var(--lv-space-3) var(--lv-space-5);border-block-end:1px solid var(--lv-line)}.lv-plpsec.astro-hws5ox6u[data-js] .lv-plp__drawer-title{margin:0;font-weight:var(--lv-weight-heading);font-size:var(--lv-text-md)}.lv-plpsec.astro-hws5ox6u[data-js] .lv-plp__close{display:inline-grid;place-items:center;inline-size:44px;block-size:44px;border:0;border-radius:var(--lv-radius-pill);background:transparent;color:var(--lv-text-primary);cursor:pointer}.lv-plpsec.astro-hws5ox6u[data-js] .lv-plp__facet-list{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding-inline:var(--lv-space-5)}.lv-plpsec.astro-hws5ox6u[data-js] .lv-plp__drawer-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-4);padding:var(--lv-space-3) var(--lv-space-5) calc(var(--lv-space-3) + env(safe-area-inset-bottom));border-block-start:1px solid var(--lv-line)}.lv-plpsec.astro-hws5ox6u[data-js] .lv-plp__apply{flex:1 1 auto;text-decoration:none}.lv-plpsec.astro-hws5ox6u .lv-plp__value{min-block-size:44px}.lv-plpsec.astro-hws5ox6u[data-js] .lv-plp__tools.is-floating .lv-plp__tools-in{position:fixed;z-index:var(--lv-z-sticky);inset-inline:var(--lv-space-4);inset-block-end:calc(var(--lv-space-3) + env(safe-area-inset-bottom));padding:var(--lv-space-1);border-radius:var(--lv-radius-pill);background:var(--lv-surface);box-shadow:var(--lv-lift-3)}.lv-plpsec.astro-hws5ox6u[data-js] .lv-plp__tools.is-floating .lv-plp__sort-menu{inset-block:auto calc(100% + var(--lv-space-2))}.lv-plpsec.astro-hws5ox6u .lv-plp__body{border-block-start:0;padding-block-start:0}}.lv-plpsec.astro-hws5ox6u .lv-plp[aria-busy="true"] .lv-plp__grid{opacity:0.55}@media (pointer: coarse){.lv-plpsec.astro-hws5ox6u .lv-plp__value,.lv-plpsec.astro-hws5ox6u .lv-plp__chip{min-block-size:44px}.lv-plpsec.astro-hws5ox6u .lv-pcard__buy{min-block-size:44px}}@media (prefers-reduced-motion: no-preference){.lv-plpsec.astro-hws5ox6u[data-js] .lv-plp__facets{transition:transform var(--lv-dur-panel) var(--lv-ease),visibility 0s linear var(--lv-dur-panel)}.lv-plpsec.astro-hws5ox6u[data-js] .lv-plp.is-drawer .lv-plp__facets{transition:transform var(--lv-dur-panel) var(--lv-ease),visibility 0s}}@media (prefers-reduced-motion: reduce){.lv-plpsec.astro-hws5ox6u .lv-pcard__media img,.lv-plpsec.astro-hws5ox6u .lv-plp__chev,.lv-plpsec.astro-hws5ox6u .lv-pcard__media{transition:none}.lv-plpsec.astro-hws5ox6u .lv-pcard:hover .lv-pcard__media img{transform:none}}
/* components/browse.showcase-marquee/renderers/marquee-product.astro */
.lv-mq--product.astro-6qmmoc4a .lv-mq__shelf.astro-6qmmoc4a{display:block;margin-block-start:0;padding:var(--lv-space-2) var(--lv-space-3);background:var(--lv-surface-sunken);border-end-start-radius:var(--lv-radius-md);border-end-end-radius:var(--lv-radius-md);color:var(--lv-text-secondary);font-weight:var(--lv-weight-medium)}.lv-mq--product.astro-6qmmoc4a .lv-mq__media.astro-6qmmoc4a{border-end-start-radius:0;border-end-end-radius:0}.lv-mq--product.astro-6qmmoc4a .lv-mq__count.astro-6qmmoc4a b.astro-6qmmoc4a{color:var(--lv-brand-strong)}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: scroll()){.lv-mq--rail.astro-6qmmoc4a .lv-mq__progress.astro-6qmmoc4a{display:block;block-size:2px;background:var(--lv-line);overflow:hidden}.lv-mq--rail.astro-6qmmoc4a .lv-mq__progressbar.astro-6qmmoc4a{background:var(--lv-brand-strong);transform:scaleX(0.18);animation:lv-mq-shelf linear both;animation-timeline:--lv-mq-scroll}@keyframes lv-mq-shelf{from{transform:scaleX(0.18)}to{transform:scaleX(1)}}}}@media (prefers-reduced-motion: no-preference){.lv-mq--drift.astro-6qmmoc4a .lv-mq__track.astro-6qmmoc4a{animation:lv-mq-drift var(--lv-mq-dur, 64s) linear infinite}.lv-mq--drift.astro-6qmmoc4a .lv-mq__frame--reverse.astro-6qmmoc4a .lv-mq__track.astro-6qmmoc4a{animation-direction:reverse}.lv-mq--drift.astro-6qmmoc4a .lv-mq__frame.astro-6qmmoc4a:hover .lv-mq__track.astro-6qmmoc4a,.lv-mq--drift.astro-6qmmoc4a .lv-mq__frame.astro-6qmmoc4a:focus-within .lv-mq__track.astro-6qmmoc4a,.lv-mq--drift.astro-6qmmoc4a:has(.lv-mq__switch:checked) .lv-mq__track.astro-6qmmoc4a{animation-play-state:paused}.lv-mq--drift.astro-6qmmoc4a .lv-mq__viewport.astro-6qmmoc4a{scroll-snap-type:none}.lv-mq--drift.astro-6qmmoc4a .lv-mq__set.astro-6qmmoc4a{padding-inline:0}}.lv-mq--pace-slow.astro-6qmmoc4a{--lv-mq-dur: 64s}.lv-mq--pace-normal.astro-6qmmoc4a{--lv-mq-dur: 40s}@keyframes lv-mq-drift{from{transform:translateX(0)}to{transform:translateX(calc(-50% - var(--lv-space-2)))}}@media (prefers-reduced-motion: reduce){.lv-mq__track.astro-6qmmoc4a{animation:none}.lv-mq__set--clone.astro-6qmmoc4a{display:none}.lv-mq--drift.astro-6qmmoc4a .lv-mq__set.astro-6qmmoc4a{padding-inline:var(--lv-gutter, var(--lv-space-5))}.lv-mq--drift.astro-6qmmoc4a .lv-mq__pause.astro-6qmmoc4a{display:none}}.lv-mq--still.astro-6qmmoc4a .lv-mq__meta.astro-6qmmoc4a{justify-content:space-between}
/* components/browse.showcase-marquee/renderers/marquee-stories.astro */
.lv-mqs__head.astro-qytixd6r{padding-block-end:var(--lv-space-3);margin-block-end:var(--lv-space-5)}.lv-mqs__head.astro-qytixd6r::after{content:"";position:absolute;inset-inline:var(--lv-gutter, var(--lv-space-5));inset-block-end:0;block-size:2px;background:var(--lv-text-primary)}.lv-mqs__card.astro-qytixd6r{inline-size:clamp(13rem,20.5cqi,19.5rem)}@container (max-width: 37.5rem){.lv-mqs__card.astro-qytixd6r{inline-size:72cqi}}.lv-mqs__story.astro-qytixd6r{display:grid;align-content:start;gap:var(--lv-space-3)}.lv-mqs__media.astro-qytixd6r{display:block;aspect-ratio:3 / 4;border-radius:var(--lv-radius-sm)}.lv-mqs__media.astro-qytixd6r img.astro-qytixd6r{display:block;inline-size:100%;block-size:100%;object-fit:cover}.lv-mqs__line.astro-qytixd6r{font-family:var(--lv-font-ui);font-size:var(--lv-text-sm);line-height:var(--lv-leading-snug);letter-spacing:0.02em;text-transform:uppercase;color:var(--lv-text-primary);overflow-wrap:anywhere}.lv-mq__meta.astro-qytixd6r{justify-content:space-between}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: scroll()){.lv-mq--rail.astro-qytixd6r .lv-mq__progress.astro-qytixd6r{display:block;block-size:2px;margin-inline:var(--lv-gutter, var(--lv-space-5));background:var(--lv-line);overflow:hidden}.lv-mq--rail.astro-qytixd6r .lv-mq__progressbar.astro-qytixd6r{background:var(--lv-line-strong);transform:scaleX(0.18);animation:lv-mqs-progress linear both;animation-timeline:--lv-mq-scroll}@keyframes lv-mqs-progress{from{transform:scaleX(0.18)}to{transform:scaleX(1)}}}}@media (prefers-reduced-motion: no-preference){.lv-mq--drift.astro-qytixd6r .lv-mq__track.astro-qytixd6r{animation:lv-mqs-drift var(--lv-mq-dur, 64s) linear infinite}.lv-mq--drift.astro-qytixd6r .lv-mq__frame--reverse.astro-qytixd6r .lv-mq__track.astro-qytixd6r{animation-direction:reverse}.lv-mq--drift.astro-qytixd6r .lv-mq__frame.astro-qytixd6r:hover .lv-mq__track.astro-qytixd6r,.lv-mq--drift.astro-qytixd6r .lv-mq__frame.astro-qytixd6r:focus-within .lv-mq__track.astro-qytixd6r,.lv-mq--drift.astro-qytixd6r:has(.lv-mq__switch:checked) .lv-mq__track.astro-qytixd6r{animation-play-state:paused}.lv-mq--drift.astro-qytixd6r .lv-mq__viewport.astro-qytixd6r{scroll-snap-type:none}.lv-mq--drift.astro-qytixd6r .lv-mq__set.astro-qytixd6r{padding-inline:0}}.lv-mq--pace-slow.astro-qytixd6r{--lv-mq-dur: 64s}.lv-mq--pace-normal.astro-qytixd6r{--lv-mq-dur: 40s}@keyframes lv-mqs-drift{from{transform:translateX(0)}to{transform:translateX(calc(-50% - var(--lv-space-2)))}}@media (prefers-reduced-motion: reduce){.lv-mq__track.astro-qytixd6r{animation:none}.lv-mq__set--clone.astro-qytixd6r{display:none}.lv-mq--drift.astro-qytixd6r .lv-mq__set.astro-qytixd6r{padding-inline:var(--lv-gutter, var(--lv-space-5))}.lv-mq--drift.astro-qytixd6r .lv-mq__pause.astro-qytixd6r{display:none}}.lv-mq--still.astro-qytixd6r .lv-mq__meta.astro-qytixd6r{justify-content:center}
/* components/browse.showcase-marquee/renderers/marquee-workshop.astro */
.lv-mq--workshop.astro-ichqx3uf .lv-mq__media.astro-ichqx3uf{border-radius:var(--lv-radius-sm)}.lv-mq--workshop.astro-ichqx3uf .lv-mq__media.astro-ichqx3uf img.astro-ichqx3uf{filter:none}.lv-mq--workshop.astro-ichqx3uf .lv-mq__record.astro-ichqx3uf{display:flex;align-items:baseline;gap:var(--lv-space-2);margin-block-start:var(--lv-space-2);padding-block-start:var(--lv-space-2);border-block-start:1px solid var(--lv-line-strong)}.lv-mq--workshop.astro-ichqx3uf .lv-mq__ord.astro-ichqx3uf{flex:none;font-family:var(--lv-font-mono);font-feature-settings:"tnum" 1;font-size:var(--lv-text-xs);font-weight:var(--lv-weight-bold);letter-spacing:var(--lv-tracking-num, 0);color:var(--lv-brand-strong)}.lv-mq--workshop.astro-ichqx3uf .lv-mq__datum.astro-ichqx3uf{color:var(--lv-text-secondary);font-weight:var(--lv-weight-medium)}.lv-mq--workshop.astro-ichqx3uf .lv-mq__count.astro-ichqx3uf b.astro-ichqx3uf{letter-spacing:var(--lv-tracking-num, 0);color:var(--lv-brand-strong)}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: scroll()){.lv-mq--rail.astro-ichqx3uf .lv-mq__progress.astro-ichqx3uf{display:block;block-size:3px;margin-inline:var(--lv-gutter, var(--lv-space-5));background:var(--lv-line)}.lv-mq--rail.astro-ichqx3uf .lv-mq__progressbar.astro-ichqx3uf{background:var(--lv-brand-strong);transform:scaleX(0.18);animation:lv-mq-gauge linear both;animation-timeline:--lv-mq-scroll}@keyframes lv-mq-gauge{from{transform:scaleX(0.18)}to{transform:scaleX(1)}}}}.lv-mq--still.astro-ichqx3uf .lv-mq__head.astro-ichqx3uf{text-align:start}.lv-mq--still.astro-ichqx3uf .lv-mq__meta.astro-ichqx3uf{justify-content:flex-start}
/* components/browse.showcase-marquee/renderers/marquee.astro */
.lv-mq__meta.astro-zgnmpw4j{justify-content:space-between}.lv-mq__cap.astro-zgnmpw4j{font-family:var(--lv-font-ui)}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: scroll()){.lv-mq--rail.astro-zgnmpw4j .lv-mq__progress.astro-zgnmpw4j{display:block;block-size:2px;margin-inline:var(--lv-gutter, var(--lv-space-5));background:var(--lv-line);border-radius:2px;overflow:hidden}.lv-mq--rail.astro-zgnmpw4j .lv-mq__progressbar.astro-zgnmpw4j{background:var(--lv-line-strong);transform:scaleX(0.18);animation:lv-mq-progress linear both;animation-timeline:--lv-mq-scroll}@keyframes lv-mq-progress{from{transform:scaleX(0.18)}to{transform:scaleX(1)}}}}@media (prefers-reduced-motion: no-preference){.lv-mq--drift.astro-zgnmpw4j .lv-mq__track.astro-zgnmpw4j{animation:lv-mq-drift var(--lv-mq-dur, 64s) linear infinite}.lv-mq--drift.astro-zgnmpw4j .lv-mq__frame--reverse.astro-zgnmpw4j .lv-mq__track.astro-zgnmpw4j{animation-direction:reverse}.lv-mq--drift.astro-zgnmpw4j .lv-mq__frame.astro-zgnmpw4j:hover .lv-mq__track.astro-zgnmpw4j,.lv-mq--drift.astro-zgnmpw4j .lv-mq__frame.astro-zgnmpw4j:focus-within .lv-mq__track.astro-zgnmpw4j,.lv-mq--drift.astro-zgnmpw4j:has(.lv-mq__switch:checked) .lv-mq__track.astro-zgnmpw4j{animation-play-state:paused}.lv-mq--drift.astro-zgnmpw4j .lv-mq__viewport.astro-zgnmpw4j{scroll-snap-type:none}.lv-mq--drift.astro-zgnmpw4j .lv-mq__set.astro-zgnmpw4j{padding-inline:0}}.lv-mq--pace-slow.astro-zgnmpw4j{--lv-mq-dur: 64s}.lv-mq--pace-normal.astro-zgnmpw4j{--lv-mq-dur: 40s}@keyframes lv-mq-drift{from{transform:translateX(0)}to{transform:translateX(calc(-50% - var(--lv-space-2)))}}@media (prefers-reduced-motion: reduce){.lv-mq__track.astro-zgnmpw4j{animation:none}.lv-mq__set--clone.astro-zgnmpw4j{display:none}.lv-mq--drift.astro-zgnmpw4j .lv-mq__set.astro-zgnmpw4j{padding-inline:var(--lv-gutter, var(--lv-space-5))}.lv-mq--drift.astro-zgnmpw4j .lv-mq__pause.astro-zgnmpw4j{display:none}}.lv-mq--still.astro-zgnmpw4j .lv-mq__head.astro-zgnmpw4j{text-align:center;margin-inline:auto}.lv-mq--still.astro-zgnmpw4j .lv-mq__meta.astro-zgnmpw4j{justify-content:center}
/* components/browse.slider/renderers/slider-cards.astro */
.lv-slider-cards.astro-gsly55hm{--lv-sc-tone-1: var(--lv-slider-tone-1, var(--lv-brand-soft));--lv-sc-tone-2: var(--lv-slider-tone-2, var(--lv-surface-raised));--lv-sc-tone-3: var(--lv-slider-tone-3, var(--lv-brand-strong));--lv-sc-tone-3-ink: var(--lv-slider-tone-3-ink, var(--lv-text-on-brand))}.lv-slider-cards__head.astro-gsly55hm{margin-block-end:var(--lv-space-6);text-align:center}.lv-slider-cards__head.astro-gsly55hm .lv-sec__title.astro-gsly55hm{margin-inline:auto;max-inline-size:22ch}.lv-slider__tabs.astro-gsly55hm{display:flex;flex-wrap:nowrap;justify-content:center;gap:var(--lv-space-3);margin:0 0 var(--lv-space-5);padding:var(--lv-space-1) var(--lv-space-1);border:0;min-inline-size:0;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}.lv-slider__tab.astro-gsly55hm{position:relative;flex:none;display:inline-flex;align-items:center;gap:var(--lv-space-2);overflow:hidden;min-block-size:44px;padding-inline:var(--lv-space-5);border-radius:var(--lv-radius-pill);background:var(--lv-surface-raised);font:var(--lv-weight-bold) var(--lv-text-sm) / 1 var(--lv-font-ui);color:var(--lv-text-primary);cursor:pointer;scroll-snap-align:center;transition:background-color var(--lv-dur-state) var(--lv-ease),color var(--lv-dur-state) var(--lv-ease)}.lv-slider__tab.astro-gsly55hm:hover{background:color-mix(in oklab,var(--lv-surface-raised) 94%,var(--lv-text-primary))}.lv-slider__tab.astro-gsly55hm:has(.lv-slider__radio:checked){background:var(--lv-text-primary);color:var(--lv-surface)}.lv-slider__tab.astro-gsly55hm:has(.lv-slider__radio:focus-visible){outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-slider__tab-fill.astro-gsly55hm{position:absolute;inset:0;transform:scaleX(0);transform-origin:left;background:color-mix(in oklab,var(--lv-surface) 22%,transparent);z-index:0}.lv-slider__tab.astro-gsly55hm>span.astro-gsly55hm:not(.lv-slider__tab-fill){position:relative}.lv-slider__tab-fill.astro-gsly55hm.is-filling{transition-property:transform;transition-timing-function:linear}.lv-slider__frame.astro-gsly55hm{position:relative}.lv-slider-cards--peek.astro-gsly55hm .lv-slider__frame.astro-gsly55hm{padding-inline-end:24px}.lv-slider-cards--peek.astro-gsly55hm .lv-slider__frame.astro-gsly55hm::after{content:"";position:absolute;inset-block:0;inset-inline-end:0;inline-size:calc(24px - var(--lv-space-3));border-start-start-radius:var(--lv-radius-lg);border-end-start-radius:var(--lv-radius-lg);background:var(--lv-sc-peek, var(--lv-sc-tone-2));pointer-events:none}.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(3n+1) .lv-slider__radio:checked){--lv-sc-peek: var(--lv-sc-tone-2)}.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(3n+2) .lv-slider__radio:checked){--lv-sc-peek: var(--lv-sc-tone-3)}.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(3n) .lv-slider__radio:checked){--lv-sc-peek: var(--lv-sc-tone-1)}.lv-slider__stage.astro-gsly55hm{position:relative}.astro-gsly55hm[data-lv-state-layer] .lv-slider__slide.astro-gsly55hm{position:absolute;inset:0;opacity:0;visibility:hidden;translate:24px 0;transition:opacity var(--lv-dur-panel, 420ms) var(--lv-ease),translate var(--lv-dur-panel, 420ms) var(--lv-ease),visibility 0s linear var(--lv-dur-panel, 420ms)}.astro-gsly55hm[data-lv-state-layer] .lv-slider__slide.astro-gsly55hm:first-child{position:relative;opacity:1;visibility:visible;translate:0 0;transition-delay:0s,0s,0s}.astro-gsly55hm[data-lv-slider]:has(.lv-slider__radio:checked) .lv-slider__stage.astro-gsly55hm[data-lv-state-layer] .lv-slider__slide.astro-gsly55hm:first-child{position:absolute;opacity:0;visibility:hidden;translate:24px 0;transition-delay:0s,0s,var(--lv-dur-panel, 420ms)}.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(1) .lv-slider__radio:checked) .lv-slider__stage.astro-gsly55hm[data-lv-state-layer] .lv-slider__slide.astro-gsly55hm:nth-of-type(1),.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(2) .lv-slider__radio:checked) .lv-slider__stage.astro-gsly55hm[data-lv-state-layer] .lv-slider__slide.astro-gsly55hm:nth-of-type(2),.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(3) .lv-slider__radio:checked) .lv-slider__stage.astro-gsly55hm[data-lv-state-layer] .lv-slider__slide.astro-gsly55hm:nth-of-type(3),.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(4) .lv-slider__radio:checked) .lv-slider__stage.astro-gsly55hm[data-lv-state-layer] .lv-slider__slide.astro-gsly55hm:nth-of-type(4),.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(5) .lv-slider__radio:checked) .lv-slider__stage.astro-gsly55hm[data-lv-state-layer] .lv-slider__slide.astro-gsly55hm:nth-of-type(5),.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(6) .lv-slider__radio:checked) .lv-slider__stage.astro-gsly55hm[data-lv-state-layer] .lv-slider__slide.astro-gsly55hm:nth-of-type(6),.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(7) .lv-slider__radio:checked) .lv-slider__stage.astro-gsly55hm[data-lv-state-layer] .lv-slider__slide.astro-gsly55hm:nth-of-type(7),.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(8) .lv-slider__radio:checked) .lv-slider__stage.astro-gsly55hm[data-lv-state-layer] .lv-slider__slide.astro-gsly55hm:nth-of-type(8){position:relative;opacity:1;visibility:visible;translate:0 0;transition-delay:0s,0s,0s}.lv-slider__slide.astro-gsly55hm{display:grid;gap:var(--lv-space-6);align-items:center;padding:var(--lv-space-6);border-radius:var(--lv-radius-lg);color:var(--lv-text-primary)}.lv-slider-cards__tone-1.astro-gsly55hm{background:var(--lv-sc-tone-1)}.lv-slider-cards__tone-2.astro-gsly55hm{background:var(--lv-sc-tone-2)}.lv-slider-cards__tone-3.astro-gsly55hm{background:var(--lv-sc-tone-3);color:var(--lv-sc-tone-3-ink);--lv-text-primary: var(--lv-sc-tone-3-ink);--lv-text-secondary: var(--lv-sc-tone-3-ink)}.lv-slider__media.astro-gsly55hm{display:grid;place-items:center;min-block-size:12rem}.lv-slider__media.astro-gsly55hm img.astro-gsly55hm{max-inline-size:100%;max-block-size:22rem;object-fit:contain}.lv-slider__copy.astro-gsly55hm{display:grid;justify-items:start;gap:var(--lv-space-3);max-inline-size:30rem}.lv-slider-cards__eyebrow.astro-gsly55hm{font:var(--lv-weight-bold) var(--lv-text-sm) / 1.2 var(--lv-font-ui);color:var(--lv-text-primary)}.lv-slider__headline.astro-gsly55hm{margin:0;font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-heading);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-display-tracking, var(--lv-tracking-heading));color:var(--lv-text-primary);text-wrap:balance}.lv-slider__text.astro-gsly55hm{margin:0;max-inline-size:40ch;font-size:var(--lv-text-md);color:var(--lv-text-primary)}.lv-slider-cards__pill.astro-gsly55hm{display:inline-flex;align-items:center;min-block-size:44px;margin-block-start:var(--lv-space-3);padding-inline:var(--lv-space-5);border-radius:var(--lv-radius-pill);background:var(--lv-surface);color:var(--lv-text-primary);font:var(--lv-weight-bold) var(--lv-text-sm) / 1 var(--lv-font-ui);text-decoration:none;transition:translate var(--lv-dur-state) var(--lv-ease)}.lv-slider-cards__tone-3.astro-gsly55hm .lv-slider-cards__pill.astro-gsly55hm{color:var(--lv-sc-tone-3)}.lv-slider-cards__pill.astro-gsly55hm:hover{translate:0 -1px}.lv-slider-cards__pill.astro-gsly55hm:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}@container (min-width: 56rem){.lv-slider__slide.astro-gsly55hm{grid-template-columns:minmax(0,5fr) minmax(0,7fr);padding:var(--lv-space-8) var(--lv-space-8) var(--lv-space-8) var(--lv-space-7);min-block-size:30rem}.lv-slider-cards--peek.astro-gsly55hm .lv-slider__frame.astro-gsly55hm{padding-inline-end:40px}.lv-slider-cards--peek.astro-gsly55hm .lv-slider__frame.astro-gsly55hm::after{inline-size:calc(40px - var(--lv-space-3))}}.lv-slider__arrows.astro-gsly55hm{display:none}.astro-gsly55hm[data-lv-ready] .lv-slider__arrows.astro-gsly55hm{display:flex;position:absolute;inset-inline:0;inset-block-start:50%;transform:translateY(-50%);justify-content:space-between;padding-inline:var(--lv-space-3);pointer-events:none;z-index:2}.lv-slider__arrow.astro-gsly55hm{pointer-events:auto;display:grid;place-items:center;inline-size:44px;block-size:44px;border:0;border-radius:var(--lv-radius-pill);background:var(--lv-surface);color:var(--lv-text-primary);cursor:pointer}.lv-slider-cards__dots.astro-gsly55hm{display:flex;justify-content:center;gap:var(--lv-space-2);margin-block-start:var(--lv-space-5)}.lv-slider-cards__dot.astro-gsly55hm{inline-size:6px;block-size:6px;border-radius:var(--lv-radius-pill);background:var(--lv-line-strong);cursor:pointer;transition:inline-size var(--lv-dur-state) var(--lv-ease),background-color var(--lv-dur-state) var(--lv-ease)}.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(1) .lv-slider__radio:checked) .lv-slider-cards__dot.astro-gsly55hm:nth-of-type(1),.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(2) .lv-slider__radio:checked) .lv-slider-cards__dot.astro-gsly55hm:nth-of-type(2),.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(3) .lv-slider__radio:checked) .lv-slider-cards__dot.astro-gsly55hm:nth-of-type(3),.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(4) .lv-slider__radio:checked) .lv-slider-cards__dot.astro-gsly55hm:nth-of-type(4),.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(5) .lv-slider__radio:checked) .lv-slider-cards__dot.astro-gsly55hm:nth-of-type(5),.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(6) .lv-slider__radio:checked) .lv-slider-cards__dot.astro-gsly55hm:nth-of-type(6),.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(7) .lv-slider__radio:checked) .lv-slider-cards__dot.astro-gsly55hm:nth-of-type(7),.astro-gsly55hm[data-lv-slider]:has(.lv-slider__tab:nth-of-type(8) .lv-slider__radio:checked) .lv-slider-cards__dot.astro-gsly55hm:nth-of-type(8){inline-size:18px;background:var(--lv-text-primary)}@container (max-width: 30rem){.lv-slider__tabs.astro-gsly55hm{justify-content:flex-start}}@media (prefers-reduced-motion: reduce){.lv-slider__slide.astro-gsly55hm,.lv-slider__tab.astro-gsly55hm,.lv-slider__tab-fill.astro-gsly55hm,.lv-slider-cards__dot.astro-gsly55hm,.lv-slider-cards__pill.astro-gsly55hm{transition:none!important}.astro-gsly55hm[data-lv-state-layer] .lv-slider__slide.astro-gsly55hm{translate:0 0}}
/* components/browse.slider/renderers/slider-rail.astro */
.lv-srail.astro-huisyicm{--lv-srail-inset: calc((100% - min(var(--lv-container-max, 72rem), 100% - 2 * var(--lv-gutter, var(--lv-space-5)))) / 2);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lv-space-4)}.lv-srail__column.astro-huisyicm{padding-inline:var(--lv-srail-inset)}.lv-srail.astro-huisyicm .lv-sec__head.astro-huisyicm{margin-block-end:var(--lv-space-2)}.lv-srail__rail.astro-huisyicm{display:flex;gap:var(--lv-space-4);margin:0;padding:0 var(--lv-srail-inset);list-style:none;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--lv-srail-inset);scrollbar-width:none}.lv-srail__rail.astro-huisyicm::-webkit-scrollbar{display:none}.lv-srail__rail.astro-huisyicm:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}@media (prefers-reduced-motion: no-preference){.lv-srail__rail.astro-huisyicm{scroll-behavior:smooth}}.lv-srail__card.astro-huisyicm{flex:0 0 calc((100% - var(--lv-space-4)) / 2);display:grid;grid-template-rows:auto 1fr auto;gap:var(--lv-space-4);min-inline-size:0;padding:var(--lv-space-4);border:1px solid var(--lv-line-strong);scroll-snap-align:start;container-type:inline-size}@container (max-width: 40rem){.lv-srail__card.astro-huisyicm{flex-basis:88%}}.lv-srail__media.astro-huisyicm{position:relative;aspect-ratio:16 / 9;overflow:hidden;background:var(--lv-surface-sunken)}.lv-srail__media.astro-huisyicm img.astro-huisyicm{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover}.lv-srail__words.astro-huisyicm{display:grid;gap:var(--lv-space-3);align-content:start}@container (min-width: 30rem){.lv-srail__words.astro-huisyicm{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:var(--lv-space-5)}}.lv-srail__title.astro-huisyicm{margin:0;font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-xl);font-weight:var(--lv-weight-regular);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-display-tracking, var(--lv-tracking-heading));color:var(--lv-ink-accent, var(--lv-brand-strong));text-wrap:balance}.lv-srail__text.astro-huisyicm{margin:0;font-size:var(--lv-text-sm);line-height:var(--lv-leading-snug);color:var(--lv-text-primary)}.lv-srail__foot.astro-huisyicm{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--lv-space-2) var(--lv-space-4)}.lv-srail__more.astro-huisyicm{display:inline-flex;align-items:center;gap:var(--lv-space-2);min-block-size:44px;font-size:var(--lv-text-sm);color:var(--lv-ink-accent, var(--lv-brand-strong));text-decoration:none}.lv-srail__more.astro-huisyicm svg.astro-huisyicm{transition:translate var(--lv-dur-state) var(--lv-ease)}.lv-srail__more.astro-huisyicm:hover svg.astro-huisyicm{translate:4px 0}.lv-srail__more.astro-huisyicm:hover span.astro-huisyicm{text-decoration:underline;text-underline-offset:0.25em}.lv-srail__meta.astro-huisyicm{font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-srail__arrows.astro-huisyicm{display:none}.astro-huisyicm[data-lv-ready] .lv-srail__arrows.astro-huisyicm{display:flex;justify-content:space-between}.lv-srail__arrow.astro-huisyicm{display:grid;place-items:center;inline-size:56px;block-size:44px;padding:0;border:0;background:transparent;color:var(--lv-text-primary);cursor:pointer;transition:color var(--lv-dur-state) var(--lv-ease),translate var(--lv-dur-state) var(--lv-ease)}.lv-srail__arrow.astro-huisyicm:hover:not(:disabled){color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-srail__arrow.astro-huisyicm:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-srail__arrow.astro-huisyicm:disabled{color:var(--lv-text-tertiary);cursor:default}@media (prefers-reduced-motion: reduce){.lv-srail__more.astro-huisyicm svg.astro-huisyicm,.lv-srail__arrow.astro-huisyicm{transition:none}}
/* components/browse.slider/renderers/slider-scent.astro */
.lv-slider__frame.astro-dmkotpgu{position:relative}.lv-slider__stage.astro-dmkotpgu{position:relative;overflow:hidden;border-radius:var(--lv-radius-3)}.lv-slider--stage.astro-dmkotpgu .lv-slider__stage.astro-dmkotpgu{border-radius:0}.astro-dmkotpgu[data-lv-state-layer] .lv-slider__slide.astro-dmkotpgu{position:absolute;inset:0;opacity:0;visibility:hidden;display:grid;transition:opacity var(--lv-dur-panel, 420ms) var(--lv-ease),visibility 0s linear var(--lv-dur-panel, 420ms)}.astro-dmkotpgu[data-lv-state-layer] .lv-slider__slide.astro-dmkotpgu:first-child{position:relative;opacity:1;visibility:visible;transition-delay:0s,0s}.astro-dmkotpgu[data-lv-slider]:has(.lv-slider__radio:checked) .lv-slider__stage.astro-dmkotpgu[data-lv-state-layer] .lv-slider__slide.astro-dmkotpgu:first-child{position:absolute;opacity:0;visibility:hidden;transition-delay:0s,var(--lv-dur-panel, 420ms)}.astro-dmkotpgu[data-lv-slider]:has(.lv-slider__tab:nth-of-type(1) .lv-slider__radio:checked) .lv-slider__stage.astro-dmkotpgu[data-lv-state-layer] .lv-slider__slide.astro-dmkotpgu:nth-of-type(1),.astro-dmkotpgu[data-lv-slider]:has(.lv-slider__tab:nth-of-type(2) .lv-slider__radio:checked) .lv-slider__stage.astro-dmkotpgu[data-lv-state-layer] .lv-slider__slide.astro-dmkotpgu:nth-of-type(2),.astro-dmkotpgu[data-lv-slider]:has(.lv-slider__tab:nth-of-type(3) .lv-slider__radio:checked) .lv-slider__stage.astro-dmkotpgu[data-lv-state-layer] .lv-slider__slide.astro-dmkotpgu:nth-of-type(3),.astro-dmkotpgu[data-lv-slider]:has(.lv-slider__tab:nth-of-type(4) .lv-slider__radio:checked) .lv-slider__stage.astro-dmkotpgu[data-lv-state-layer] .lv-slider__slide.astro-dmkotpgu:nth-of-type(4),.astro-dmkotpgu[data-lv-slider]:has(.lv-slider__tab:nth-of-type(5) .lv-slider__radio:checked) .lv-slider__stage.astro-dmkotpgu[data-lv-state-layer] .lv-slider__slide.astro-dmkotpgu:nth-of-type(5),.astro-dmkotpgu[data-lv-slider]:has(.lv-slider__tab:nth-of-type(6) .lv-slider__radio:checked) .lv-slider__stage.astro-dmkotpgu[data-lv-state-layer] .lv-slider__slide.astro-dmkotpgu:nth-of-type(6),.astro-dmkotpgu[data-lv-slider]:has(.lv-slider__tab:nth-of-type(7) .lv-slider__radio:checked) .lv-slider__stage.astro-dmkotpgu[data-lv-state-layer] .lv-slider__slide.astro-dmkotpgu:nth-of-type(7),.astro-dmkotpgu[data-lv-slider]:has(.lv-slider__tab:nth-of-type(8) .lv-slider__radio:checked) .lv-slider__stage.astro-dmkotpgu[data-lv-state-layer] .lv-slider__slide.astro-dmkotpgu:nth-of-type(8){position:relative;opacity:1;visibility:visible;transition-delay:0s,0s}.lv-slider__media.astro-dmkotpgu{position:relative;grid-area:1 / 1}.lv-slider__media.astro-dmkotpgu img.astro-dmkotpgu{inline-size:100%;block-size:100%;object-fit:cover}.lv-slider--stage.astro-dmkotpgu .lv-slider__slide.astro-dmkotpgu{aspect-ratio:21 / 9}.lv-slider--stage.astro-dmkotpgu .lv-slider__media.astro-dmkotpgu{inset:0}.lv-slider--stage.astro-dmkotpgu .lv-slider__media.astro-dmkotpgu img.astro-dmkotpgu{position:absolute;inset:0}.lv-slider--stage.astro-dmkotpgu .lv-slider__media.astro-dmkotpgu::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgb(var(--lv-glass-under) / calc(var(--lv-slider-scrim, 0.6) * 0.92)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-slider-scrim, 0.6) * 0.5)) 45%,rgb(var(--lv-glass-under) / calc(var(--lv-slider-scrim, 0.6) * 0.05)) 100%)}.lv-slider--scrim-strong.astro-dmkotpgu{--lv-slider-scrim: 0.82}.lv-slider--stage.astro-dmkotpgu .lv-slider__copy.astro-dmkotpgu{position:relative;grid-area:1 / 1;align-self:end;padding:var(--lv-space-6);max-inline-size:46rem;color:var(--lv-text-on-brand)}.lv-slider--stage.astro-dmkotpgu .lv-slider__headline.astro-dmkotpgu{color:var(--lv-text-on-brand)}.lv-slider--stage.astro-dmkotpgu .lv-slider__text.astro-dmkotpgu{color:var(--lv-text-on-brand)}.lv-slider--stage.astro-dmkotpgu .lv-sec__eyebrow.astro-dmkotpgu{color:var(--lv-text-on-brand)}.lv-slider--card.astro-dmkotpgu .lv-slider__stage.astro-dmkotpgu{max-inline-size:42rem;margin-inline:auto;box-shadow:var(--lv-lift-2)}.lv-slider--card.astro-dmkotpgu .lv-slider__slide.astro-dmkotpgu{aspect-ratio:auto}.lv-slider--card.astro-dmkotpgu .lv-slider__media.astro-dmkotpgu{aspect-ratio:4 / 3}.lv-slider--card.astro-dmkotpgu .lv-slider__copy.astro-dmkotpgu{padding:var(--lv-space-5);background:var(--lv-surface)}.lv-slider__headline.astro-dmkotpgu{margin:0;font-size:var(--lv-text-2xl);line-height:var(--lv-leading-tight);text-wrap:balance}.lv-slider__text.astro-dmkotpgu{margin-block-start:var(--lv-space-2);max-inline-size:46ch;font-size:var(--lv-text-md)}.lv-slider__cta.astro-dmkotpgu{margin-block-start:var(--lv-space-4)}.lv-slider__arrows.astro-dmkotpgu{display:none}.astro-dmkotpgu[data-lv-ready] .lv-slider__arrows.astro-dmkotpgu{display:flex;position:absolute;inset-inline:0;inset-block-start:50%;transform:translateY(-50%);justify-content:space-between;padding-inline:var(--lv-space-3);pointer-events:none;z-index:2}.lv-slider__arrow.astro-dmkotpgu{pointer-events:auto;display:grid;place-items:center;inline-size:44px;block-size:44px;border:0;border-radius:var(--lv-radius-pill);background:var(--lv-surface);color:var(--lv-text-primary);box-shadow:var(--lv-lift-2);cursor:pointer;transition:background-color var(--lv-dur-fast) var(--lv-ease),color var(--lv-dur-fast) var(--lv-ease),transform var(--lv-dur-fast) var(--lv-ease)}.lv-slider__arrow.astro-dmkotpgu:hover{background:var(--lv-brand-strong);color:var(--lv-text-on-brand);transform:translateY(-1px)}.lv-slider__arrow.astro-dmkotpgu:active{transform:translateY(0) scale(0.94)}.lv-slider__tabs.astro-dmkotpgu{display:flex;flex-wrap:nowrap;gap:0 var(--lv-space-6);margin:var(--lv-space-5) 0 0;padding:0;border:0;min-inline-size:0;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}.lv-slider__tab.astro-dmkotpgu{position:relative;flex:none;display:inline-flex;align-items:center;min-block-size:44px;padding-block:var(--lv-space-2);border-block-end:2px solid transparent;font:var(--lv-weight-regular) var(--lv-text-lg) / 1.2 var(--lv-font-ui);color:var(--lv-text-secondary);cursor:pointer;transition:color var(--lv-dur-state) var(--lv-ease),border-color var(--lv-dur-state) var(--lv-ease)}.lv-slider__tab.astro-dmkotpgu:hover{color:var(--lv-text-primary)}.lv-slider__tab.astro-dmkotpgu:has(.lv-slider__radio:checked){color:var(--lv-text-primary);border-block-end-color:currentColor}.lv-slider__tab.astro-dmkotpgu:has(.lv-slider__radio:focus-visible){outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-slider__tab-fill.astro-dmkotpgu{position:absolute;inset-inline:0;inset-block-end:-2px;block-size:2px;transform:scaleX(0);transform-origin:left;background:var(--lv-text-secondary)}.lv-slider__tab-fill.astro-dmkotpgu.is-filling{transition-property:transform;transition-timing-function:linear}.lv-slider--split.astro-dmkotpgu{padding:0}.lv-slider--split.astro-dmkotpgu>.lv-sec__inner.astro-dmkotpgu{display:grid;grid-template-columns:minmax(0,1fr);max-inline-size:none}.lv-slider--split.astro-dmkotpgu .lv-slider-scent__head.astro-dmkotpgu{margin:0;padding:var(--lv-space-7) var(--lv-gutter, var(--lv-space-5)) var(--lv-space-5);text-align:center}.lv-slider--split.astro-dmkotpgu .lv-slider__stage.astro-dmkotpgu{border-radius:0}.lv-slider--split.astro-dmkotpgu .lv-slider__slide.astro-dmkotpgu{aspect-ratio:4 / 5}.lv-slider--split.astro-dmkotpgu .lv-slider__media.astro-dmkotpgu{inset:0}.lv-slider--split.astro-dmkotpgu .lv-slider__media.astro-dmkotpgu img.astro-dmkotpgu{position:absolute;inset:0}.lv-slider--split.astro-dmkotpgu .lv-slider__media.astro-dmkotpgu::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgb(var(--lv-glass-under) / 0.82) 0%,rgb(var(--lv-glass-under) / 0.6) 32%,rgb(var(--lv-glass-under) / 0) 62%)}.lv-slider--split.astro-dmkotpgu .lv-slider__copy.astro-dmkotpgu{position:relative;grid-area:1 / 1;align-self:end;display:grid;justify-items:start;gap:var(--lv-space-2);padding:var(--lv-space-7) var(--lv-space-6);max-inline-size:34rem;color:var(--lv-text-on-brand)}.lv-slider--split.astro-dmkotpgu .lv-slider__copy.astro-dmkotpgu .lv-sec__eyebrow.astro-dmkotpgu{margin:0;font:var(--lv-weight-regular) var(--lv-text-sm) / 1.2 var(--lv-font-ui);letter-spacing:0;text-transform:none;color:var(--lv-text-on-brand)}.lv-slider--split.astro-dmkotpgu .lv-slider__headline.astro-dmkotpgu{font-family:var(--lv-font-ui);font-size:var(--lv-text-xl);font-weight:var(--lv-weight-regular);color:var(--lv-text-on-brand)}.lv-slider--split.astro-dmkotpgu .lv-slider__text.astro-dmkotpgu{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-on-brand)}.lv-slider--split.astro-dmkotpgu .lv-slider__cta.astro-dmkotpgu{margin-block-start:var(--lv-space-3);min-inline-size:min(100%,14rem);gap:var(--lv-space-3);color:var(--lv-text-on-brand);border-color:currentColor}.lv-slider__cta-arrow.astro-dmkotpgu{flex:none;transition:translate var(--lv-dur-state) var(--lv-ease)}.lv-slider__cta.astro-dmkotpgu:hover .lv-slider__cta-arrow.astro-dmkotpgu{translate:3px 0}.lv-slider--split.astro-dmkotpgu .lv-slider__tabs.astro-dmkotpgu{justify-content:flex-start;margin:0;padding:var(--lv-space-5) var(--lv-gutter, var(--lv-space-5)) var(--lv-space-7)}@container (min-width: 56rem){.lv-slider--split.astro-dmkotpgu>.lv-sec__inner.astro-dmkotpgu{grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-rows:1fr auto auto 1fr}.lv-slider--split.astro-dmkotpgu .lv-slider__frame.astro-dmkotpgu{grid-column:1;grid-row:1 / -1}.lv-slider--split.astro-dmkotpgu .lv-slider-scent__head.astro-dmkotpgu{grid-column:2;grid-row:2;padding:0 var(--lv-space-7) var(--lv-space-6);text-align:center}.lv-slider--split.astro-dmkotpgu .lv-slider__tabs.astro-dmkotpgu{grid-column:2;grid-row:3;justify-content:center;padding:0 var(--lv-space-7)}.lv-slider--split.astro-dmkotpgu .lv-slider__copy.astro-dmkotpgu{padding:var(--lv-space-8) var(--lv-space-7)}}.lv-slider--stage.astro-dmkotpgu .lv-slider__tabs.astro-dmkotpgu,.lv-slider--card.astro-dmkotpgu .lv-slider__tabs.astro-dmkotpgu{justify-content:flex-start}@media (prefers-reduced-motion: reduce){.lv-slider__slide.astro-dmkotpgu,.lv-slider__tab.astro-dmkotpgu,.lv-slider__tab-fill.astro-dmkotpgu,.lv-slider__cta-arrow.astro-dmkotpgu{transition:none!important}}
/* components/browse.slider/renderers/slider.astro */
.lv-slider__frame.astro-6vp2lbu6{position:relative}.lv-slider__stage.astro-6vp2lbu6{position:relative;overflow:hidden;border-radius:var(--lv-radius-3)}.lv-slider--stage.astro-6vp2lbu6 .lv-slider__stage.astro-6vp2lbu6{border-radius:0}.astro-6vp2lbu6[data-lv-state-layer] .lv-slider__slide.astro-6vp2lbu6{position:absolute;inset:0;opacity:0;visibility:hidden;display:grid;transition:opacity var(--lv-dur-media, 700ms) var(--lv-ease),visibility 0s linear var(--lv-dur-media, 700ms)}.astro-6vp2lbu6[data-lv-state-layer] .lv-slider__slide.astro-6vp2lbu6:first-child{position:relative;opacity:1;visibility:visible;transition-delay:0s,0s}.astro-6vp2lbu6[data-lv-slider]:has(.lv-slider__radio:checked) .lv-slider__stage.astro-6vp2lbu6[data-lv-state-layer] .lv-slider__slide.astro-6vp2lbu6:first-child{position:absolute;opacity:0;visibility:hidden;transition-delay:0s,var(--lv-dur-media, 700ms)}.astro-6vp2lbu6[data-lv-slider]:has(.lv-slider__tab:nth-of-type(1) .lv-slider__radio:checked) .lv-slider__stage.astro-6vp2lbu6[data-lv-state-layer] .lv-slider__slide.astro-6vp2lbu6:nth-of-type(1),.astro-6vp2lbu6[data-lv-slider]:has(.lv-slider__tab:nth-of-type(2) .lv-slider__radio:checked) .lv-slider__stage.astro-6vp2lbu6[data-lv-state-layer] .lv-slider__slide.astro-6vp2lbu6:nth-of-type(2),.astro-6vp2lbu6[data-lv-slider]:has(.lv-slider__tab:nth-of-type(3) .lv-slider__radio:checked) .lv-slider__stage.astro-6vp2lbu6[data-lv-state-layer] .lv-slider__slide.astro-6vp2lbu6:nth-of-type(3),.astro-6vp2lbu6[data-lv-slider]:has(.lv-slider__tab:nth-of-type(4) .lv-slider__radio:checked) .lv-slider__stage.astro-6vp2lbu6[data-lv-state-layer] .lv-slider__slide.astro-6vp2lbu6:nth-of-type(4),.astro-6vp2lbu6[data-lv-slider]:has(.lv-slider__tab:nth-of-type(5) .lv-slider__radio:checked) .lv-slider__stage.astro-6vp2lbu6[data-lv-state-layer] .lv-slider__slide.astro-6vp2lbu6:nth-of-type(5),.astro-6vp2lbu6[data-lv-slider]:has(.lv-slider__tab:nth-of-type(6) .lv-slider__radio:checked) .lv-slider__stage.astro-6vp2lbu6[data-lv-state-layer] .lv-slider__slide.astro-6vp2lbu6:nth-of-type(6),.astro-6vp2lbu6[data-lv-slider]:has(.lv-slider__tab:nth-of-type(7) .lv-slider__radio:checked) .lv-slider__stage.astro-6vp2lbu6[data-lv-state-layer] .lv-slider__slide.astro-6vp2lbu6:nth-of-type(7),.astro-6vp2lbu6[data-lv-slider]:has(.lv-slider__tab:nth-of-type(8) .lv-slider__radio:checked) .lv-slider__stage.astro-6vp2lbu6[data-lv-state-layer] .lv-slider__slide.astro-6vp2lbu6:nth-of-type(8){position:relative;opacity:1;visibility:visible;transition-delay:0s,0s}.lv-slider__media.astro-6vp2lbu6{position:relative;grid-area:1 / 1}.lv-slider__media.astro-6vp2lbu6 img.astro-6vp2lbu6{inline-size:100%;block-size:100%;object-fit:cover}.lv-slider--stage.astro-6vp2lbu6 .lv-slider__slide.astro-6vp2lbu6{aspect-ratio:21 / 9}.lv-slider--stage.astro-6vp2lbu6 .lv-slider__media.astro-6vp2lbu6{inset:0}.lv-slider--stage.astro-6vp2lbu6 .lv-slider__media.astro-6vp2lbu6 img.astro-6vp2lbu6{position:absolute;inset:0}.lv-slider--stage.astro-6vp2lbu6 .lv-slider__media.astro-6vp2lbu6::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgb(var(--lv-glass-under) / calc(var(--lv-slider-scrim, 0.68) * 0.95)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-slider-scrim, 0.68) * 0.8)) 55%,rgb(var(--lv-glass-under) / calc(var(--lv-slider-scrim, 0.68) * 0.32)) 78%,rgb(var(--lv-glass-under) / calc(var(--lv-slider-scrim, 0.68) * 0.06)) 100%)}.lv-slider--scrim-strong.astro-6vp2lbu6{--lv-slider-scrim: 0.84}.lv-slider--stage.astro-6vp2lbu6 .lv-slider__copy.astro-6vp2lbu6{position:relative;grid-area:1 / 1;align-self:end;padding:var(--lv-space-6);max-inline-size:46rem;color:var(--lv-text-on-brand)}.lv-slider--stage.astro-6vp2lbu6 .lv-slider__headline.astro-6vp2lbu6{color:var(--lv-text-on-brand)}.lv-slider--stage.astro-6vp2lbu6 .lv-slider__text.astro-6vp2lbu6{color:var(--lv-text-on-brand)}.lv-slider--stage.astro-6vp2lbu6 .lv-sec__eyebrow.astro-6vp2lbu6{color:var(--lv-text-on-brand)}.lv-slider--stage.astro-6vp2lbu6 .lv-slider__cta.astro-6vp2lbu6{--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-slider--split.astro-6vp2lbu6 .lv-slider__slide.astro-6vp2lbu6{aspect-ratio:auto;grid-template-columns:1fr;align-items:stretch}.lv-slider--split.astro-6vp2lbu6 .lv-slider__media.astro-6vp2lbu6{aspect-ratio:4 / 3}.lv-slider--split.astro-6vp2lbu6 .lv-slider__copy.astro-6vp2lbu6{padding:var(--lv-space-6) 0}@container (min-width: 46rem){.lv-slider--split.astro-6vp2lbu6 .lv-slider__slide.astro-6vp2lbu6{grid-template-columns:1.1fr 1fr}.lv-slider--split.astro-6vp2lbu6 .lv-slider__media.astro-6vp2lbu6{aspect-ratio:auto}.lv-slider--split.astro-6vp2lbu6 .lv-slider__copy.astro-6vp2lbu6{display:flex;flex-direction:column;justify-content:center;padding:var(--lv-space-7)}}.lv-slider--card.astro-6vp2lbu6 .lv-slider__stage.astro-6vp2lbu6{max-inline-size:42rem;margin-inline:auto;box-shadow:var(--lv-lift-2)}.lv-slider--card.astro-6vp2lbu6 .lv-slider__slide.astro-6vp2lbu6{aspect-ratio:auto}.lv-slider--card.astro-6vp2lbu6 .lv-slider__media.astro-6vp2lbu6{aspect-ratio:4 / 3}.lv-slider--card.astro-6vp2lbu6 .lv-slider__copy.astro-6vp2lbu6{padding:var(--lv-space-5);background:var(--lv-surface)}.lv-slider__headline.astro-6vp2lbu6{margin:0;font-size:var(--lv-text-2xl);line-height:var(--lv-leading-tight);text-wrap:balance}.lv-slider__text.astro-6vp2lbu6{margin-block-start:var(--lv-space-2);max-inline-size:46ch;font-size:var(--lv-text-md)}.lv-slider__cta.astro-6vp2lbu6{margin-block-start:var(--lv-space-4)}.lv-slider__arrows.astro-6vp2lbu6{display:none}.astro-6vp2lbu6[data-lv-ready] .lv-slider__arrows.astro-6vp2lbu6{display:flex;position:absolute;inset-inline:0;inset-block-start:50%;transform:translateY(-50%);justify-content:space-between;padding-inline:var(--lv-space-3);pointer-events:none;z-index:2}.astro-6vp2lbu6[data-lv-ready].lv-slider--stage .lv-slider__arrows.astro-6vp2lbu6{inset-block-start:var(--lv-space-5);transform:none}.lv-slider__arrow.astro-6vp2lbu6{pointer-events:auto;display:grid;place-items:center;inline-size:44px;block-size:44px;border:0;border-radius:var(--lv-radius-pill);background:var(--lv-surface);color:var(--lv-text-primary);box-shadow:var(--lv-lift-2);cursor:pointer;transition:background-color var(--lv-dur-fast) var(--lv-ease),color var(--lv-dur-fast) var(--lv-ease),transform var(--lv-dur-fast) var(--lv-ease)}.lv-slider__arrow.astro-6vp2lbu6:hover{background:var(--lv-brand-strong);color:var(--lv-text-on-brand);transform:translateY(-1px)}.lv-slider__arrow.astro-6vp2lbu6:active{transform:translateY(0) scale(0.94)}.lv-slider__tabs.astro-6vp2lbu6{display:flex;flex-wrap:wrap;gap:var(--lv-space-2);margin:var(--lv-space-4) 0 0;padding:0;border:0}.lv-slider__tab.astro-6vp2lbu6{position:relative;display:inline-flex;align-items:center;overflow:hidden;min-block-size:44px;padding-inline:var(--lv-space-4);border-radius:var(--lv-radius-pill);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line-control);font:var(--lv-weight-medium) var(--lv-text-sm) / 1 var(--lv-font-ui);color:var(--lv-text-primary);cursor:pointer;transition:background-color var(--lv-dur-state) var(--lv-ease),color var(--lv-dur-state) var(--lv-ease)}.lv-slider__tab.astro-6vp2lbu6:has(.lv-slider__radio:checked){background:var(--lv-brand-strong);color:var(--lv-text-on-brand)}.lv-slider__tab.astro-6vp2lbu6:has(.lv-slider__radio:focus-visible){outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-slider__tab.astro-6vp2lbu6:active{transform:scale(0.97)}.lv-slider__tab-fill.astro-6vp2lbu6{position:absolute;inset-block:0;inset-inline-start:0;inline-size:100%;transform:scaleX(0);transform-origin:left;background:color-mix(in srgb,var(--lv-text-on-brand) 32%,transparent);z-index:-1}.lv-slider__tab-fill.astro-6vp2lbu6.is-filling{transition-property:transform;transition-timing-function:linear}@container (max-width: 30rem){.lv-slider__tab.astro-6vp2lbu6 span.astro-6vp2lbu6:not(.lv-slider__tab-fill){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.lv-slider__tab.astro-6vp2lbu6{inline-size:44px;padding-inline:0;justify-content:center}}@media (prefers-reduced-motion: reduce){.lv-slider__slide.astro-6vp2lbu6,.lv-slider__tab-fill.astro-6vp2lbu6{transition:none!important}}
/* components/chrome.breadcrumbs/renderers/trail.astro */
.lv-trail.astro-t2ugo7l2{display:contents}.lv-trail--standalone.astro-t2ugo7l2{display:block;max-width:var(--lv-measure);margin-inline:auto;padding-inline:var(--lv-space-4);padding-block-start:var(--lv-space-4)}.lv-trail__nav.astro-t2ugo7l2{font-family:var(--lv-font-ui);margin-block-end:var(--lv-space-4)}.lv-trail__list.astro-t2ugo7l2{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-2);margin:0;padding:0;list-style:none;font-size:var(--lv-text-xs)}.lv-trail__item.astro-t2ugo7l2{display:inline-flex;align-items:center;gap:var(--lv-space-2);min-width:0}.lv-trail__sep.astro-t2ugo7l2{color:var(--lv-icon-quiet);user-select:none}.lv-trail__link.astro-t2ugo7l2{color:var(--lv-text-secondary);text-decoration:none;border-block-end:1px solid transparent;transition:color var(--lv-dur-state) var(--lv-ease),border-color var(--lv-dur-state) var(--lv-ease)}.lv-trail__link.astro-t2ugo7l2:hover{color:var(--lv-text-link);border-block-end-color:var(--lv-text-link)}.lv-trail__link.astro-t2ugo7l2:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}.lv-trail__current.astro-t2ugo7l2{color:var(--lv-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:28ch}@media (prefers-reduced-motion: reduce){.lv-trail__link.astro-t2ugo7l2{transition:none}}
/* components/chrome.capture-popup/renderers/popup.astro */
.lv-cap.astro-d3l5t3is{--lv-cap-surface: var(--lv-surface-raised);--lv-cap-ink: var(--lv-text-primary);--lv-cap-radius: var(--lv-radius-lg);--lv-cap-lift: var(--lv-lift-3);--lv-cap-scrim: color-mix(in oklab, var(--lv-text-primary) 45%, transparent);--lv-cap-pad: var(--lv-space-7);--lv-cap-edge: max(var(--lv-gutter, 1.25rem), 1rem)}.lv-cap-root.astro-d3l5t3is{display:contents}.lv-cap-stage.astro-d3l5t3is{display:none}.lv-cap.astro-d3l5t3is{box-sizing:border-box;margin:auto;padding:0;border:0;max-inline-size:calc(100vw - 2 * var(--lv-cap-edge));max-block-size:calc(100dvh - 2 * var(--lv-cap-edge));overflow:auto;overscroll-behavior:contain;color:var(--lv-cap-ink);background:var(--lv-cap-surface);border-radius:var(--lv-cap-radius);box-shadow:var(--lv-cap-lift);font-family:var(--lv-font-ui);text-align:start}.lv-cap.astro-d3l5t3is::backdrop{background:var(--lv-cap-scrim, color-mix(in oklab, CanvasText 45%, transparent))}.lv-cap__panel.astro-d3l5t3is{position:relative;display:grid;min-block-size:100%;border-radius:inherit;box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-cap--baand.astro-d3l5t3is .lv-cap__panel.astro-d3l5t3is{box-shadow:inset 0 3px 0 var(--lv-brand),inset 0 0 0 1px var(--lv-line)}.lv-cap__body.astro-d3l5t3is{position:relative;display:grid;align-content:center;gap:var(--lv-space-4);padding:var(--lv-cap-pad)}.lv-cap__content.astro-d3l5t3is{display:grid;gap:var(--lv-space-3)}.lv-cap__close.astro-d3l5t3is{position:absolute;inset-block-start:var(--lv-space-2);inset-inline-end:var(--lv-space-2);z-index:1;display:grid;place-items:center;inline-size:44px;block-size:44px;padding:0;border:0;border-radius:var(--lv-radius-pill, 999px);background:transparent;color:var(--lv-text-secondary);cursor:pointer}.lv-cap__close.astro-d3l5t3is:hover{color:var(--lv-cap-ink);background:var(--lv-surface-sunken)}.lv-cap__close.astro-d3l5t3is:focus-visible,.lv-cap__done-title.astro-d3l5t3is:focus-visible,.lv-cap.astro-d3l5t3is a.astro-d3l5t3is:focus-visible{outline:var(--lv-focus-width, 2px) solid var(--lv-focus-ring, currentColor);outline-offset:var(--lv-focus-offset, 2px)}.lv-cap__eyebrow.astro-d3l5t3is{margin:0;font:var(--lv-weight-bold, 700) var(--lv-text-xs) / 1.2 var(--lv-font-mono, var(--lv-font-ui));letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);font-variant-caps:var(--lv-display-variant, normal);color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-cap__title.astro-d3l5t3is{margin:0;padding-inline-end:var(--lv-space-6);font-family:var(--lv-display-family, var(--lv-font-ui));font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-heading);line-height:var(--lv-leading-tight, 1.15);letter-spacing:var(--lv-display-tracking, var(--lv-tracking-heading, normal));text-transform:var(--lv-display-case, none);font-variant-caps:var(--lv-display-variant, normal);text-wrap:balance;hyphens:auto;overflow-wrap:anywhere;color:var(--lv-cap-ink)}.lv-cap__promise.astro-d3l5t3is{margin:0;max-inline-size:46ch;font-size:var(--lv-text-md, 1rem);line-height:var(--lv-leading-snug, 1.45);color:var(--lv-text-secondary);text-wrap:pretty}.lv-cap__form.astro-d3l5t3is{display:grid;gap:var(--lv-space-2);margin-block-start:var(--lv-space-2)}.lv-cap__label.astro-d3l5t3is{font:var(--lv-weight-medium, 500) var(--lv-text-sm) / 1.2 var(--lv-font-ui);color:var(--lv-text-secondary)}.lv-cap__row.astro-d3l5t3is{display:flex;flex-wrap:wrap;gap:var(--lv-space-2)}.lv-cap__field.astro-d3l5t3is{flex:1 1 12rem;min-inline-size:0}.lv-cap__submit.astro-d3l5t3is{flex:0 0 auto;min-block-size:44px}.lv-cap__error.astro-d3l5t3is{margin:0;font-size:var(--lv-text-sm);color:var(--lv-bad-text)}.lv-cap__consent.astro-d3l5t3is{margin:0;max-inline-size:60ch;font-size:var(--lv-text-xs);line-height:var(--lv-leading-snug, 1.45);color:var(--lv-text-tertiary);text-wrap:pretty}.lv-cap__consent.astro-d3l5t3is a.astro-d3l5t3is{color:inherit;text-decoration:underline;text-underline-offset:0.15em}.lv-cap__done.astro-d3l5t3is{display:grid;gap:var(--lv-space-3);justify-items:start}.lv-cap__done.astro-d3l5t3is[hidden],.lv-cap__content.astro-d3l5t3is[hidden]{display:none}.lv-cap__done-close.astro-d3l5t3is{min-block-size:44px}.lv-cap--kort.astro-d3l5t3is{inline-size:min(32rem,calc(100vw - 2 * var(--lv-cap-edge)));text-align:center}.lv-cap--kort.astro-d3l5t3is .lv-cap__content.astro-d3l5t3is,.lv-cap--kort.astro-d3l5t3is .lv-cap__done.astro-d3l5t3is{justify-items:center}.lv-cap--kort.astro-d3l5t3is .lv-cap__title.astro-d3l5t3is{padding-inline:var(--lv-space-6)}.lv-cap--kort.astro-d3l5t3is .lv-cap__promise.astro-d3l5t3is,.lv-cap--kort.astro-d3l5t3is .lv-cap__consent.astro-d3l5t3is{margin-inline:auto}.lv-cap--kort.astro-d3l5t3is .lv-cap__form.astro-d3l5t3is{inline-size:100%;justify-items:stretch}.lv-cap--kort.astro-d3l5t3is .lv-cap__label.astro-d3l5t3is{text-align:start}.lv-cap--split.astro-d3l5t3is{inline-size:min(52rem,calc(100vw - 2 * var(--lv-cap-edge)))}.lv-cap--split.astro-d3l5t3is .lv-cap__panel.astro-d3l5t3is{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}.lv-cap__media.astro-d3l5t3is{margin:0;min-block-size:22rem;overflow:hidden;border-start-start-radius:var(--lv-cap-radius);border-end-start-radius:var(--lv-cap-radius)}.lv-cap__media.astro-d3l5t3is img.astro-d3l5t3is{display:block;inline-size:100%;block-size:100%;object-fit:cover}.lv-cap__media--brand.astro-d3l5t3is{display:grid;align-content:end;padding:var(--lv-cap-pad);background:linear-gradient(160deg,var(--lv-brand),var(--lv-brand-strong));color:var(--lv-text-on-brand)}.lv-cap__media--brand.astro-d3l5t3is span.astro-d3l5t3is{font-family:var(--lv-display-family, var(--lv-font-ui));font-size:var(--lv-text-3xl, var(--lv-text-2xl));font-weight:var(--lv-weight-heading);line-height:1.05;letter-spacing:var(--lv-display-tracking, normal);text-transform:var(--lv-display-case, none);overflow-wrap:anywhere;hyphens:auto}.lv-cap--baand.astro-d3l5t3is{--lv-cap-pad: var(--lv-space-5);position:fixed;inset:auto var(--lv-cap-edge) var(--lv-cap-edge) auto;z-index:var(--lv-z-overlay, 80);margin:0;inline-size:min(24rem,calc(100vw - 2 * var(--lv-cap-edge)));box-shadow:0 14px 36px -14px color-mix(in oklab,var(--lv-text-primary) 45%,transparent)}.lv-cap--baand.astro-d3l5t3is .lv-cap__title.astro-d3l5t3is{font-size:var(--lv-text-lg)}.lv-cap--baand.astro-d3l5t3is .lv-cap__promise.astro-d3l5t3is{font-size:var(--lv-text-sm)}.lv-cap--baand.astro-d3l5t3is .lv-cap__row.astro-d3l5t3is{flex-direction:column}.lv-cap--baand.astro-d3l5t3is .lv-cap__field.astro-d3l5t3is{flex:none}.lv-cap--baand.astro-d3l5t3is .lv-cap__submit.astro-d3l5t3is{inline-size:100%}@media (max-width: 39.99rem){.lv-cap.astro-d3l5t3is{--lv-cap-pad: var(--lv-space-5);position:fixed;inset:auto 0 0 0;z-index:var(--lv-z-overlay, 80);margin:0;inline-size:100%;max-inline-size:100%;max-block-size:45svh;border-radius:var(--lv-cap-radius) var(--lv-cap-radius) 0 0;box-shadow:0 -10px 30px -14px color-mix(in oklab,var(--lv-text-primary) 45%,transparent);text-align:start}.lv-cap--split.astro-d3l5t3is .lv-cap__panel.astro-d3l5t3is{grid-template-columns:minmax(0,1fr)}.lv-cap__media.astro-d3l5t3is{display:none}.lv-cap--kort.astro-d3l5t3is .lv-cap__content.astro-d3l5t3is,.lv-cap--kort.astro-d3l5t3is .lv-cap__done.astro-d3l5t3is{justify-items:start}.lv-cap--kort.astro-d3l5t3is .lv-cap__title.astro-d3l5t3is{padding-inline:0 var(--lv-space-6)}.lv-cap--kort.astro-d3l5t3is .lv-cap__promise.astro-d3l5t3is,.lv-cap--kort.astro-d3l5t3is .lv-cap__consent.astro-d3l5t3is{margin-inline:0}.lv-cap__title.astro-d3l5t3is{font-size:var(--lv-text-lg)}.lv-cap__promise.astro-d3l5t3is{font-size:var(--lv-text-sm)}.lv-cap__body.astro-d3l5t3is{gap:var(--lv-space-3)}}html:has(.lv-cap[open][data-modal]){overflow:hidden}@media (prefers-reduced-motion: no-preference){.lv-cap.astro-d3l5t3is[open]{transition:opacity var(--lv-dur-panel, 320ms) var(--lv-ease, ease-out),transform var(--lv-dur-panel, 320ms) var(--lv-ease, ease-out)}@starting-style{.lv-cap.astro-d3l5t3is[open]{opacity:0;transform:translateY(0.5rem)}}}@media (prefers-reduced-transparency: reduce){.lv-cap.astro-d3l5t3is{--lv-cap-scrim: color-mix(in oklab, var(--lv-text-primary) 72%, transparent)}}html[data-lv-preview]:not([data-lv-preview="live"]):has(.lv-cap-root) body{min-block-size:36rem}html[data-lv-preview]:not([data-lv-preview="live"]) .lv-cap-root.astro-d3l5t3is{display:block}html[data-lv-preview]:not([data-lv-preview="live"]):not(:has(.lv-sec)) .lv-cap-stage.astro-d3l5t3is{display:grid;align-content:start;gap:var(--lv-space-4);min-block-size:36rem;padding:var(--lv-space-6) clamp(var(--lv-space-5),6%,var(--lv-space-9));background:var(--lv-canvas, var(--lv-surface))}.lv-cap-stage__bar.astro-d3l5t3is{display:block;block-size:0.75rem;inline-size:82%;border-radius:var(--lv-radius-sm);background:var(--lv-surface-sunken)}.lv-cap-stage__bar--nav.astro-d3l5t3is{inline-size:100%;block-size:2.5rem;margin-block-end:var(--lv-space-6)}.lv-cap-stage__bar--title.astro-d3l5t3is{inline-size:55%;block-size:2rem}.lv-cap-stage__bar--short.astro-d3l5t3is{inline-size:48%}.lv-cap-stage__block.astro-d3l5t3is{display:block;block-size:11rem;margin-block:var(--lv-space-4);border-radius:var(--lv-radius-md);background:var(--lv-surface-sunken)}html[data-lv-preview]:not([data-lv-preview="live"]) .lv-cap-root--kort.astro-d3l5t3is::after,html[data-lv-preview]:not([data-lv-preview="live"]) .lv-cap-root--split.astro-d3l5t3is::after{content:"";position:fixed;inset:0;z-index:calc(var(--lv-z-overlay, 80) - 1);background:color-mix(in oklab,var(--lv-text-primary) 45%,transparent)}html[data-lv-preview]:not([data-lv-preview="live"]) .lv-cap.astro-d3l5t3is{display:block;position:fixed;z-index:var(--lv-z-overlay, 80);inset:0;margin:auto;block-size:fit-content;transition:none}html[data-lv-preview]:not([data-lv-preview="live"]) .lv-cap--baand.astro-d3l5t3is{inset:auto var(--lv-cap-edge) var(--lv-cap-edge) auto;margin:0}@media (max-width: 39.99rem){html[data-lv-preview]:not([data-lv-preview="live"]) .lv-cap-root.astro-d3l5t3is::after{display:none}html[data-lv-preview]:not([data-lv-preview="live"]) .lv-cap.astro-d3l5t3is{inset:auto 0 max(0px,calc(100vh - var(--lv-stage-vh, 48rem))) 0;margin:0;max-block-size:calc(0.45 * min(100vh,var(--lv-stage-vh, 48rem)))}}
/* components/decide.answer-objections/renderers/faq-boxed.astro */
.lv-faqb__list.astro-hee2oyld{display:grid;gap:var(--lv-space-3)}.lv-faqb__category.astro-hee2oyld{margin:var(--lv-space-5) 0 0;font:var(--lv-weight-semibold) var(--lv-text-sm) / 1.2 var(--lv-font-ui);color:var(--lv-text-secondary)}.lv-faqb__category.astro-hee2oyld:first-child{margin-block-start:0}.lv-faqb__item.astro-hee2oyld{border-radius:var(--lv-radius-md);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line);transition:box-shadow var(--lv-dur-state) var(--lv-ease)}.lv-faqb__item.astro-hee2oyld:hover{box-shadow:inset 0 0 0 1px var(--lv-line-strong)}.lv-faqb__q.astro-hee2oyld{display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-5);min-block-size:52px;padding:var(--lv-space-3) var(--lv-space-5);cursor:pointer;list-style:none;font-size:var(--lv-text-lg);font-weight:var(--lv-weight-regular);line-height:var(--lv-leading-snug);color:var(--lv-text-primary)}.lv-faqb__q.astro-hee2oyld::-webkit-details-marker{display:none}.lv-faqb__q.astro-hee2oyld>span.astro-hee2oyld{min-inline-size:0;overflow-wrap:anywhere}.lv-faqb__q.astro-hee2oyld:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-faqb__arrow.astro-hee2oyld{flex:none;inline-size:14px;block-size:24px;color:var(--lv-ink-accent, var(--lv-brand-strong));transition:transform var(--lv-dur-state) var(--lv-ease)}.lv-faqb__item.astro-hee2oyld[open] .lv-faqb__arrow.astro-hee2oyld{transform:rotate(180deg)}.lv-faqb__a.astro-hee2oyld{max-inline-size:var(--lv-measure);padding:0 var(--lv-space-5) var(--lv-space-5)}@media (prefers-reduced-motion: reduce){.lv-faqb__item.astro-hee2oyld,.lv-faqb__arrow.astro-hee2oyld{transition:none}}
/* components/decide.answer-objections/renderers/faq-columns.astro */
.lv-faqc__list.astro-zc3dohvu{display:grid;grid-template-columns:minmax(0,1fr);column-gap:var(--lv-space-7);align-items:start}@container (min-width: 56rem){.lv-faqc__list.astro-zc3dohvu{grid-template-columns:repeat(2,minmax(0,1fr))}}.lv-faqc__category.astro-zc3dohvu{grid-column:1 / -1;margin:var(--lv-space-6) 0 var(--lv-space-2);font:var(--lv-weight-semibold) var(--lv-text-sm) / 1.2 var(--lv-font-ui);color:var(--lv-text-secondary)}.lv-faqc__category.astro-zc3dohvu:first-child{margin-block-start:0}.lv-faqc__item.astro-zc3dohvu{border-block-end:1px solid var(--lv-line)}.lv-faqc__q.astro-zc3dohvu{display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-4);min-block-size:44px;padding-block:var(--lv-space-3);cursor:pointer;list-style:none;font-size:var(--lv-text-sm);font-weight:var(--lv-weight-bold);line-height:var(--lv-leading-snug);color:var(--lv-text-primary)}.lv-faqc__q.astro-zc3dohvu::-webkit-details-marker{display:none}.lv-faqc__q.astro-zc3dohvu>span.astro-zc3dohvu{min-inline-size:0;overflow-wrap:anywhere}.lv-faqc__q.astro-zc3dohvu:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-faqc__chevron.astro-zc3dohvu{flex:none;inline-size:1rem;block-size:1rem;color:var(--lv-text-primary);transition:transform var(--lv-dur-state) var(--lv-ease)}.lv-faqc__item.astro-zc3dohvu[open] .lv-faqc__chevron.astro-zc3dohvu{transform:rotate(180deg)}.lv-faqc__a.astro-zc3dohvu{padding-block-end:var(--lv-space-4);font-size:var(--lv-text-sm)}@media (prefers-reduced-motion: reduce){.lv-faqc__chevron.astro-zc3dohvu{transition:none}}
/* components/decide.answer-objections/renderers/faq.astro */
.lv-faq.astro-yvhufgsr{max-width:52rem}.lv-faq__item.astro-yvhufgsr{border-block-end:1px solid var(--lv-line)}.lv-faq__item.astro-yvhufgsr:first-child{border-block-start:1px solid var(--lv-line)}.lv-faq--grouped.astro-yvhufgsr{display:flex;flex-direction:column}.lv-faq__group.astro-yvhufgsr+.lv-faq__group.astro-yvhufgsr{margin-block-start:var(--lv-space-6)}.lv-faq__category.astro-yvhufgsr{margin:0 0 var(--lv-space-2);font:var(--lv-weight-semibold) var(--lv-text-sm) / 1.2 var(--lv-font-ui);color:var(--lv-text-secondary)}.lv-faq__q.astro-yvhufgsr{display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-4);min-block-size:52px;padding-block:var(--lv-space-3);cursor:pointer;font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary);list-style:none}.lv-faq__q.astro-yvhufgsr::-webkit-details-marker{display:none}.lv-faq__q.astro-yvhufgsr>span.astro-yvhufgsr{display:inline-block;transition:transform var(--lv-dur-fast) var(--lv-ease)}.lv-faq__item.astro-yvhufgsr:hover .lv-faq__q.astro-yvhufgsr>span.astro-yvhufgsr{transform:translateX(2px)}.lv-faq__item.astro-yvhufgsr:hover .lv-faq__q.astro-yvhufgsr::after,.lv-faq__item.astro-yvhufgsr:hover .lv-faq__q.astro-yvhufgsr::before{background:var(--lv-ink-accent)}.lv-faq__q.astro-yvhufgsr:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-faq__q.astro-yvhufgsr::after{content:"";flex:none;inline-size:12px;block-size:2px;background:var(--lv-icon-quiet);box-shadow:0 0 0 0 transparent;position:relative}.lv-faq__q.astro-yvhufgsr::before{content:"";order:2;position:absolute;inset-inline-end:5px;inline-size:2px;block-size:12px;background:var(--lv-icon-quiet);transition:opacity var(--lv-dur-state) var(--lv-ease)}.lv-faq__item.astro-yvhufgsr[open] .lv-faq__q.astro-yvhufgsr::before{opacity:0}.lv-faq__q.astro-yvhufgsr{position:relative}.lv-faq__a.astro-yvhufgsr{padding-block-end:var(--lv-space-5)}@media (prefers-reduced-motion: reduce){.lv-faq__q.astro-yvhufgsr::before{transition:none}.lv-faq__q.astro-yvhufgsr>span.astro-yvhufgsr{transition:none}.lv-faq__item.astro-yvhufgsr:hover .lv-faq__q.astro-yvhufgsr>span.astro-yvhufgsr{transform:none}}
/* components/decide.calculate/renderers/calculator.astro */
.lv-calc.astro-aadf5tws{display:grid;gap:var(--lv-space-6);align-items:start}.lv-calc__row.astro-aadf5tws{display:grid;margin:0;max-width:none}.lv-calc__label.astro-aadf5tws{display:flex;align-items:baseline;justify-content:space-between;gap:var(--lv-space-3)}.lv-calc__readout.astro-aadf5tws{padding:1px var(--lv-space-2);border-radius:var(--lv-radius-sm);background:var(--lv-surface-sunken);font-size:var(--lv-text-sm);color:var(--lv-text-primary)}.lv-calc__slider.astro-aadf5tws{inline-size:100%;min-block-size:32px;accent-color:var(--lv-brand)}.lv-calc__slider.astro-aadf5tws:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-calc__panels.astro-aadf5tws{display:grid;gap:var(--lv-space-3)}.lv-calc-sec--dark.astro-aadf5tws{background:var(--lv-brand-strong);padding-inline:var(--lv-space-5)}.lv-calc-sec--dark.astro-aadf5tws .lv-calc__form.astro-aadf5tws{padding:var(--lv-space-6);border-radius:var(--lv-radius-lg);background:var(--lv-surface-raised);box-shadow:var(--lv-lift-3)}.lv-calc-sec--dark.astro-aadf5tws .lv-calc__panels.astro-aadf5tws{color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand);--lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);--lv-line-strong: color-mix(in oklab, var(--lv-text-on-brand) 52%, transparent)}.lv-calc-sec--dark.astro-aadf5tws .lv-calc__out.astro-aadf5tws{background:none;box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-calc__out.astro-aadf5tws{display:grid;gap:var(--lv-space-1);padding:var(--lv-space-6);border-radius:var(--lv-radius-lg);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-calc__out--secondary.astro-aadf5tws{padding-block:var(--lv-space-4)}.lv-calc__out--secondary.astro-aadf5tws .lv-calc__out-value.astro-aadf5tws{font-size:clamp(1.4rem,4.5cqi,2rem)}.lv-calc__out-label.astro-aadf5tws{font:var(--lv-weight-bold) var(--lv-text-2xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-tertiary)}.lv-calc__figure.astro-aadf5tws{display:flex;align-items:baseline;justify-content:flex-end;gap:var(--lv-space-1);text-align:end}.lv-calc__out-value.astro-aadf5tws{font-size:clamp(2rem,7cqi,3rem);font-weight:var(--lv-weight-semibold);line-height:1;color:var(--lv-text-primary)}.lv-calc__out-unit.astro-aadf5tws{font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-calc__assumption.astro-aadf5tws{margin-block-start:var(--lv-space-4);font-size:var(--lv-text-xs);color:var(--lv-text-tertiary);text-align:start}@container (min-width: 46rem){.lv-calc.astro-aadf5tws{grid-template-columns:minmax(0,1fr) minmax(15rem,22rem);gap:var(--lv-space-8)}}
/* components/decide.compare-live-data/renderers/compare.astro */
.lv-live.astro-c6nz424u{display:grid;gap:var(--lv-space-5)}.lv-live__filter.astro-c6nz424u{max-width:24rem}.lv-grid.astro-c6nz424u{display:flex;flex-wrap:wrap;justify-content:center}.lv-live__top.astro-c6nz424u .lv-card.astro-c6nz424u{flex:1 1 min(17rem,100%)}@container (min-width: 54rem){.lv-live__top.astro-c6nz424u .lv-card.astro-c6nz424u{max-inline-size:calc((100% - 2 * var(--lv-space-4)) / 3)}}.lv-live.astro-c6nz424u .lv-table-scroll.astro-c6nz424u{border:1px solid var(--lv-line);border-radius:var(--lv-radius-lg);background:var(--lv-surface)}.lv-live.astro-c6nz424u thead.astro-c6nz424u th.astro-c6nz424u{background:var(--lv-surface-sunken);border-block-end:1px solid var(--lv-line)}.lv-live.astro-c6nz424u .lv-table.astro-c6nz424u th.astro-c6nz424u,.lv-live.astro-c6nz424u .lv-table.astro-c6nz424u td.astro-c6nz424u{padding-inline:var(--lv-space-5)}.lv-live.astro-c6nz424u .lv-table.astro-c6nz424u th.astro-c6nz424u:first-child,.lv-live.astro-c6nz424u .lv-table.astro-c6nz424u td.astro-c6nz424u:first-child{padding-inline-start:var(--lv-space-5)}.lv-live.astro-c6nz424u .lv-table.astro-c6nz424u th.astro-c6nz424u:last-child,.lv-live.astro-c6nz424u .lv-table.astro-c6nz424u td.astro-c6nz424u:last-child{padding-inline-end:var(--lv-space-5)}.lv-live.astro-c6nz424u tbody.astro-c6nz424u th.astro-c6nz424u[scope=row]{border-top:1px solid var(--lv-line);font:var(--lv-weight-semibold) var(--lv-text-sm) / var(--lv-leading-snug) var(--lv-font-ui);letter-spacing:normal;text-transform:none;white-space:normal;color:var(--lv-text-primary);vertical-align:middle}.lv-live__rowlink.astro-c6nz424u{color:var(--lv-text-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in oklab,var(--lv-text-link) 45%,transparent);transition:text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-live__rowlink.astro-c6nz424u:hover{text-decoration-thickness:2px;text-decoration-color:var(--lv-text-link)}.lv-live__rowlink.astro-c6nz424u:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-live__disclosure.astro-c6nz424u{max-width:var(--lv-measure);margin-block-start:var(--lv-space-5);font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}
/* components/decide.compare-options/renderers/compare.astro */
.lv-cmp.astro-jpnacszu th.astro-jpnacszu,.lv-cmp.astro-jpnacszu td.astro-jpnacszu{padding:var(--lv-space-4) var(--lv-space-5)}.lv-cmp.astro-jpnacszu th.astro-jpnacszu:first-child,.lv-cmp.astro-jpnacszu td.astro-jpnacszu:first-child{padding-inline-start:var(--lv-space-5)}.lv-cmp.astro-jpnacszu th.astro-jpnacszu:last-child,.lv-cmp.astro-jpnacszu td.astro-jpnacszu:last-child{padding-inline-end:var(--lv-space-5)}.lv-cmp.astro-jpnacszu:not([data-band="off"]) thead.astro-jpnacszu td.astro-jpnacszu{background:var(--lv-table-band-bg)}.lv-cmp__opt.astro-jpnacszu,.lv-cmp__crit.astro-jpnacszu{text-align:start}.lv-cmp__opt.astro-jpnacszu{display:table-cell}.lv-cmp__opt.astro-jpnacszu a.astro-jpnacszu{color:var(--lv-text-primary);text-decoration:none}.lv-cmp__opt.astro-jpnacszu a.astro-jpnacszu:hover{text-decoration:underline}.lv-cmp__note.astro-jpnacszu{display:block;font-weight:var(--lv-weight-regular);font-size:var(--lv-text-xs);color:var(--lv-text-secondary)}.lv-cmp__crit.astro-jpnacszu{font-weight:var(--lv-weight-regular);color:var(--lv-text-secondary)}.lv-cmp.astro-jpnacszu tbody.astro-jpnacszu td.astro-jpnacszu,.lv-cmp.astro-jpnacszu tbody.astro-jpnacszu .lv-cmp__crit.astro-jpnacszu{padding-block:var(--lv-space-5)}.lv-cmp.astro-jpnacszu[data-density=compact] tbody.astro-jpnacszu td.astro-jpnacszu,.lv-cmp.astro-jpnacszu[data-density=compact] tbody.astro-jpnacszu .lv-cmp__crit.astro-jpnacszu{padding-block:var(--lv-space-3)}.lv-cmp.astro-jpnacszu[data-density=airy] tbody.astro-jpnacszu td.astro-jpnacszu,.lv-cmp.astro-jpnacszu[data-density=airy] tbody.astro-jpnacszu .lv-cmp__crit.astro-jpnacszu{padding-block:var(--lv-space-6)}.lv-cmp__badge.astro-jpnacszu{display:inline-block;margin-block-end:var(--lv-space-2);padding:2px var(--lv-space-2);border-radius:var(--lv-radius-pill);background:var(--lv-brand-soft);color:var(--lv-brand);font:var(--lv-weight-semibold) var(--lv-text-2xs) / 1.6 var(--lv-font-ui);text-transform:uppercase;letter-spacing:var(--lv-tracking-eyebrow)}.lv-cmp__dash.astro-jpnacszu{color:var(--lv-text-tertiary)}.lv-cmp.astro-jpnacszu tfoot.astro-jpnacszu td.astro-jpnacszu{border-block-start:1px solid var(--lv-line);background:var(--lv-surface-sunken)}.lv-cmp__verdict.astro-jpnacszu{margin-block-start:var(--lv-space-5)}@container (max-width: 43.75rem){.lv-table-scroll.astro-jpnacszu:has(> .lv-table--matrix){overflow:visible;border:0;border-radius:0;background:none}.lv-cmp.astro-jpnacszu,.lv-cmp.astro-jpnacszu thead.astro-jpnacszu,.lv-cmp.astro-jpnacszu tbody.astro-jpnacszu,.lv-cmp.astro-jpnacszu tfoot.astro-jpnacszu,.lv-cmp.astro-jpnacszu tr.astro-jpnacszu,.lv-cmp.astro-jpnacszu th.astro-jpnacszu,.lv-cmp.astro-jpnacszu td.astro-jpnacszu{display:block}.lv-cmp__corner.astro-jpnacszu{display:none}.lv-cmp.astro-jpnacszu thead.astro-jpnacszu tr.astro-jpnacszu{display:flex;flex-wrap:wrap;gap:var(--lv-space-2) var(--lv-space-5);padding:var(--lv-space-4) 0;border-block-end:1px solid var(--lv-line-strong)}.lv-cmp.astro-jpnacszu thead.astro-jpnacszu th.astro-jpnacszu{flex:0 1 auto;min-inline-size:0;max-inline-size:100%;white-space:normal;overflow-wrap:anywhere;height:auto;padding:0;background:none;border-block-end:0}.lv-table__group.astro-jpnacszu{white-space:normal;overflow-wrap:anywhere;height:auto}.lv-cmp.astro-jpnacszu thead.astro-jpnacszu .is-highlight.astro-jpnacszu{box-shadow:inset 0 -2px 0 var(--lv-brand);background:none;padding-block-end:var(--lv-space-2)}.lv-cmp.astro-jpnacszu tbody.astro-jpnacszu tr.astro-jpnacszu:not(.lv-cmp__grouprow){margin-block-start:var(--lv-space-4);padding:var(--lv-space-4) var(--lv-space-5) var(--lv-space-5);border:1px solid var(--lv-line);border-radius:var(--lv-radius-lg);background:var(--lv-surface)}.lv-cmp.astro-jpnacszu tbody.astro-jpnacszu tr.astro-jpnacszu:nth-child(even):not(.lv-cmp__grouprow) td.astro-jpnacszu:not(.is-highlight),.lv-cmp.astro-jpnacszu tbody.astro-jpnacszu tr.astro-jpnacszu:nth-child(even):not(.lv-cmp__grouprow) .lv-cmp__crit.astro-jpnacszu{background:none}.lv-cmp__grouprow.astro-jpnacszu{margin-block-start:var(--lv-space-7)}.lv-table__group.astro-jpnacszu{padding:0}.lv-cmp.astro-jpnacszu tbody.astro-jpnacszu .lv-cmp__crit.astro-jpnacszu{position:static;white-space:normal;overflow-wrap:anywhere;height:auto;max-inline-size:100%;padding:0 0 var(--lv-space-3);background:none;font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-cmp.astro-jpnacszu tbody.astro-jpnacszu td.astro-jpnacszu{display:flex;flex-direction:column;align-items:flex-start;gap:var(--lv-space-1);min-inline-size:0;height:auto;padding:var(--lv-space-3) 0 var(--lv-space-3);border-block-start:1px solid var(--lv-line)}.lv-cmp.astro-jpnacszu tbody.astro-jpnacszu td.astro-jpnacszu::before,.lv-cmp.astro-jpnacszu tfoot.astro-jpnacszu td.astro-jpnacszu::before{content:attr(data-col);font-size:var(--lv-text-xs);color:var(--lv-text-secondary)}.lv-cmp.astro-jpnacszu tbody.astro-jpnacszu td.astro-jpnacszu>span.astro-jpnacszu,.lv-mark.astro-jpnacszu{max-inline-size:100%;overflow-wrap:anywhere}.lv-mark.astro-jpnacszu{align-items:flex-start;border-radius:var(--lv-radius-md)}.lv-cmp.astro-jpnacszu tbody.astro-jpnacszu td.astro-jpnacszu.is-highlight{inline-size:100%;padding-inline:var(--lv-space-3);margin-inline:calc(-1 * var(--lv-space-3));box-shadow:inset 2px 0 0 var(--lv-brand);background:var(--lv-brand-soft)}.lv-cmp.astro-jpnacszu:not(:has(tfoot)) tbody.astro-jpnacszu tr.astro-jpnacszu:last-child .is-highlight.astro-jpnacszu,.lv-cmp.astro-jpnacszu tfoot.astro-jpnacszu .is-highlight.astro-jpnacszu{box-shadow:inset 2px 0 0 var(--lv-brand)}.lv-cmp.astro-jpnacszu tfoot.astro-jpnacszu tr.astro-jpnacszu{display:grid;gap:var(--lv-space-4);margin-block-start:var(--lv-space-6)}.lv-cmp.astro-jpnacszu tfoot.astro-jpnacszu td.astro-jpnacszu{display:grid;gap:var(--lv-space-2);justify-items:start;height:auto;padding:0;border-block-start:0;background:none}.lv-cmp.astro-jpnacszu tfoot.astro-jpnacszu td.astro-jpnacszu.is-highlight{padding-inline-start:var(--lv-space-3);background:none}.lv-cmp.astro-jpnacszu tfoot.astro-jpnacszu .lv-btn.astro-jpnacszu{justify-content:center;inline-size:100%}}
/* components/decide.pricing/renderers/pricing-field.astro */
.lv-sheet__layout.astro-ppqnnkf5{display:grid;gap:var(--lv-space-6)}.lv-sheet__rail.astro-ppqnnkf5{margin-block-end:0}.lv-sheet__foot.astro-ppqnnkf5{margin-block-start:0}.lv-sheet__matrix.astro-ppqnnkf5{min-inline-size:0}@container (min-width: 48rem){.lv-sheet__layout.astro-ppqnnkf5{grid-template-columns:minmax(11rem,22%) 1fr;align-items:start;gap:var(--lv-space-8)}.lv-sheet__rail.astro-ppqnnkf5{position:sticky;top:var(--lv-space-6)}.lv-sheet__foot.astro-ppqnnkf5{grid-column:1 / -1}}@container (min-width: 48rem){.lv-sheet--table.astro-ppqnnkf5 .lv-sheet__layout.astro-ppqnnkf5{grid-template-columns:minmax(11rem,15%) 1fr}}.lv-sheet__terms.astro-ppqnnkf5{display:grid;gap:var(--lv-space-8);margin:0;padding:0;list-style:none}@container (min-width: 48rem){.lv-sheet__terms.astro-ppqnnkf5{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr))}}.lv-sheet__term.astro-ppqnnkf5{padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-sheet__term.astro-ppqnnkf5.is-featured{border-block-start-color:var(--lv-brand)}.lv-sheet__name.astro-ppqnnkf5{margin:0;color:var(--lv-text-secondary);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);text-transform:uppercase;letter-spacing:var(--lv-tracking-label)}.lv-sheet__figure.astro-ppqnnkf5{margin-block-start:var(--lv-space-2)}.lv-sheet__figure.astro-ppqnnkf5 .lv-offer__price.astro-ppqnnkf5{font-size:var(--lv-text-2xl);line-height:var(--lv-leading-tight)}.lv-sheet__table.astro-ppqnnkf5 thead.astro-ppqnnkf5 th.astro-ppqnnkf5{border-block-end:1px solid var(--lv-line-strong)}.lv-sheet__col.astro-ppqnnkf5.is-featured .lv-offer__price.astro-ppqnnkf5{color:var(--lv-brand)}.lv-sheet__col-note.astro-ppqnnkf5{max-inline-size:16rem;color:var(--lv-text-tertiary)}.lv-sheet__spec.astro-ppqnnkf5{max-inline-size:44rem}.lv-sheet__sum.astro-ppqnnkf5{align-items:baseline;border-block-start-width:1px;border-block-start-color:var(--lv-line-strong)}.lv-sheet__sum-label.astro-ppqnnkf5{color:var(--lv-text-secondary);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);text-transform:uppercase;letter-spacing:var(--lv-tracking-label)}.lv-sheet__sum.astro-ppqnnkf5 .lv-offer__addon-sum.astro-ppqnnkf5{color:var(--lv-text-primary);font-size:var(--lv-text-2xl);line-height:var(--lv-leading-tight)}.lv-sheet__rates.astro-ppqnnkf5 .lv-offer__rate-figure.astro-ppqnnkf5{font-size:var(--lv-text-lg)}
/* components/decide.pricing/renderers/pricing-folio.astro */
.lv-folio__schedule.astro-qvehtbks{display:grid;margin:0;padding:0;list-style:none;max-inline-size:52rem}.lv-folio__entry.astro-qvehtbks{display:grid;grid-template-columns:2.5rem 1fr;gap:var(--lv-space-2) var(--lv-space-4);padding-block:var(--lv-space-5);border-block-start:1px solid var(--lv-line)}.lv-folio__entry.astro-qvehtbks:last-child{border-block-end:1px solid var(--lv-line)}@container (min-width: 46rem){.lv-folio__entry.astro-qvehtbks{grid-template-columns:2.5rem 1fr minmax(9rem,auto)}}.lv-folio__ordinal.astro-qvehtbks{color:var(--lv-text-tertiary);font-family:var(--lv-font-mono);font-size:var(--lv-text-xs);font-variant-numeric:tabular-nums;letter-spacing:var(--lv-tracking-num)}.lv-folio__body.astro-qvehtbks{min-inline-size:0}.lv-folio__name.astro-qvehtbks{margin:0;color:var(--lv-text-primary);font-size:var(--lv-text-md);font-weight:var(--lv-weight-medium)}.lv-folio__entry.astro-qvehtbks.is-featured .lv-folio__name.astro-qvehtbks{font-weight:var(--lv-weight-semibold)}.lv-folio__entry.astro-qvehtbks.is-featured .lv-offer__price.astro-qvehtbks{color:var(--lv-brand)}.lv-folio__figures.astro-qvehtbks{text-align:start}@container (min-width: 46rem){.lv-folio__figures.astro-qvehtbks{text-align:end}}.lv-folio__figures.astro-qvehtbks .lv-offer__price.astro-qvehtbks{font-family:var(--lv-font-mono);font-size:var(--lv-text-xl)}.lv-folio__cta.astro-qvehtbks{margin-block-start:var(--lv-space-3)}.lv-folio__table.astro-qvehtbks th.astro-qvehtbks,.lv-folio__table.astro-qvehtbks td.astro-qvehtbks{text-align:start}.lv-folio__col.astro-qvehtbks{vertical-align:bottom}.lv-folio__col-ordinal.astro-qvehtbks{display:block;color:var(--lv-text-tertiary);font-family:var(--lv-font-mono);font-size:var(--lv-text-2xs)}.lv-folio__col.astro-qvehtbks .lv-offer__price.astro-qvehtbks{font-family:var(--lv-font-mono);font-size:var(--lv-text-lg)}.lv-folio__col.astro-qvehtbks.is-featured .lv-offer__table-name.astro-qvehtbks,.lv-folio__col.astro-qvehtbks.is-featured .lv-offer__price.astro-qvehtbks{color:var(--lv-brand)}.lv-folio__col-note.astro-qvehtbks{max-inline-size:16rem;color:var(--lv-text-tertiary)}.lv-folio__rates.astro-qvehtbks{counter-reset:none}.lv-folio__rate.astro-qvehtbks{gap:var(--lv-space-4)}.lv-folio__rates.astro-qvehtbks .lv-offer__rate-figure.astro-qvehtbks{font-family:var(--lv-font-mono)}.lv-folio__picker.astro-qvehtbks .lv-offer__pick.astro-qvehtbks{border-radius:0;box-shadow:none;border-block-start:1px solid var(--lv-line)}.lv-folio__picker.astro-qvehtbks .lv-offer__pick.astro-qvehtbks:last-child{border-block-end:1px solid var(--lv-line)}
/* components/decide.pricing/renderers/pricing-ledger.astro */
.lv-ledger__entries.astro-dsqgxrhc{display:grid;gap:var(--lv-space-7);margin:0;padding:0;list-style:none;max-inline-size:54rem}@container (min-width: 52rem){.lv-ledger__entries.astro-dsqgxrhc{grid-template-columns:repeat(auto-fit,minmax(20rem,1fr))}}.lv-ledger__line.astro-dsqgxrhc{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-3);margin-block:0 var(--lv-space-1)}.lv-ledger__name.astro-dsqgxrhc{color:var(--lv-text-primary);font-size:var(--lv-text-md);font-weight:var(--lv-weight-semibold);min-inline-size:0;overflow-wrap:anywhere}.lv-ledger__figures.astro-dsqgxrhc{flex:none;max-inline-size:100%;margin-inline-start:auto;text-align:end}.lv-ledger__figures.astro-dsqgxrhc .lv-offer__price.astro-dsqgxrhc{display:block;font-size:var(--lv-text-xl);max-inline-size:100%;overflow-wrap:anywhere}.lv-ledger__entry.astro-dsqgxrhc.is-featured .lv-ledger__name.astro-dsqgxrhc,.lv-ledger__entry.astro-dsqgxrhc.is-featured .lv-offer__price--primary.astro-dsqgxrhc{color:var(--lv-brand)}.lv-ledger__col.astro-dsqgxrhc.is-featured,.lv-ledger__cell.astro-dsqgxrhc.is-featured{border-inline:1px solid var(--lv-brand)}.lv-ledger__col.astro-dsqgxrhc.is-featured{border-block-start:1px solid var(--lv-brand);border-start-start-radius:var(--lv-radius-md);border-start-end-radius:var(--lv-radius-md)}.lv-ledger__table.astro-dsqgxrhc tfoot.astro-dsqgxrhc .lv-ledger__cell.astro-dsqgxrhc.is-featured{border-block-end:1px solid var(--lv-brand);border-end-start-radius:var(--lv-radius-md);border-end-end-radius:var(--lv-radius-md)}.lv-ledger__col.astro-dsqgxrhc.is-featured .lv-offer__table-name.astro-dsqgxrhc,.lv-ledger__col.astro-dsqgxrhc.is-featured .lv-offer__price--primary.astro-dsqgxrhc{color:var(--lv-brand)}.lv-ledger__row-label.astro-dsqgxrhc{white-space:normal}.lv-ledger__col-note.astro-dsqgxrhc{display:block;margin-block-start:var(--lv-space-2);max-inline-size:16rem;color:var(--lv-text-tertiary);font-size:var(--lv-text-xs);font-weight:var(--lv-weight-regular);white-space:normal}.lv-ledger__rates.astro-dsqgxrhc .lv-offer__rate.astro-dsqgxrhc{border-block-end-color:transparent}.lv-ledger__rates.astro-dsqgxrhc .lv-offer__rate.astro-dsqgxrhc:first-child{border-block-start-color:transparent}
/* components/decide.pricing/renderers/pricing-tickcards.astro */
.lv-tick__head.astro-n27ooiyd{max-inline-size:44rem;margin-inline:auto;text-align:center}.lv-tick__kicker.astro-n27ooiyd{display:block;margin-block-end:var(--lv-space-3);font-size:var(--lv-text-lg);font-weight:var(--lv-weight-bold);color:var(--lv-text-secondary)}.lv-tick__title.astro-n27ooiyd{font-size:var(--lv-hero-display, var(--lv-text-2xl));line-height:1.05}.lv-tick__head.astro-n27ooiyd .lv-sec__lede.astro-n27ooiyd{margin-inline:auto}.lv-tick__cards.astro-n27ooiyd{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lv-space-4);max-inline-size:44rem;margin:0 auto;padding:0;border:0;padding-block-start:var(--lv-space-3)}@container (min-width: 45rem){.lv-tick__cards.astro-n27ooiyd{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--lv-space-6)}}.lv-tick__card.astro-n27ooiyd{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--lv-space-4);min-block-size:44px;padding:var(--lv-space-5);border-radius:var(--lv-radius-lg);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line-control);cursor:pointer;transition:background-color var(--lv-dur-state) var(--lv-ease),box-shadow var(--lv-dur-state) var(--lv-ease)}.lv-tick__card.astro-n27ooiyd:hover{box-shadow:inset 0 0 0 1px var(--lv-text-primary)}.lv-tick__radio.astro-n27ooiyd{position:absolute;inline-size:1px;block-size:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.lv-tick__card.astro-n27ooiyd:has(.lv-tick__radio:focus-visible){outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-tick__card.astro-n27ooiyd:has(.lv-tick__radio:checked){background:var(--lv-brand-soft);box-shadow:inset 0 0 0 2px var(--lv-brand)}.lv-tick__tags.astro-n27ooiyd{position:absolute;inset-block-start:0;inset-inline-start:var(--lv-space-5);display:flex;gap:var(--lv-space-2);translate:0 -50%}.lv-tick__tag.astro-n27ooiyd{padding:var(--lv-space-1) var(--lv-space-3);border-radius:var(--lv-radius-sm);background:var(--lv-brand-strong);color:var(--lv-text-on-brand);font-size:var(--lv-text-xs);font-weight:var(--lv-weight-semibold);line-height:1.3}.lv-tick__tag--current.astro-n27ooiyd{background:var(--lv-surface);color:var(--lv-text-primary);box-shadow:inset 0 0 0 1px var(--lv-line-strong)}.lv-tick__text.astro-n27ooiyd{display:grid;gap:var(--lv-space-1);min-inline-size:0}.lv-tick__line.astro-n27ooiyd{display:block;font-size:var(--lv-text-md);line-height:var(--lv-leading-snug);color:var(--lv-text-primary)}.lv-tick__name.astro-n27ooiyd{font-weight:var(--lv-weight-bold)}.lv-tick__name.astro-n27ooiyd::after{content:" –";font-weight:var(--lv-weight-regular)}.lv-tick__price.astro-n27ooiyd{display:inline;font-family:inherit;font-size:inherit;font-weight:var(--lv-weight-regular);line-height:inherit;letter-spacing:normal;white-space:nowrap}.lv-tick__price.astro-n27ooiyd+.lv-tick__price.astro-n27ooiyd{display:block;margin:0;padding:0;border:0}.lv-tick__summary.astro-n27ooiyd{font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-tick__box.astro-n27ooiyd{display:grid;place-items:center;inline-size:28px;block-size:28px;border-radius:var(--lv-radius-sm);background:var(--lv-surface);box-shadow:inset 0 0 0 1.5px var(--lv-line-control);color:var(--lv-brand-strong)}.lv-tick__box.astro-n27ooiyd svg.astro-n27ooiyd{inline-size:20px;block-size:20px}.lv-tick__mark.astro-n27ooiyd{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset var(--lv-dur-state) var(--lv-ease)}.lv-tick__card.astro-n27ooiyd:has(.lv-tick__radio:checked) .lv-tick__box.astro-n27ooiyd{box-shadow:none}.lv-tick__card.astro-n27ooiyd:has(.lv-tick__radio:checked) .lv-tick__mark.astro-n27ooiyd{stroke-dashoffset:0}.lv-tick__inclusions.astro-n27ooiyd,.lv-tick__foot.astro-n27ooiyd,.lv-tick__actions.astro-n27ooiyd{max-inline-size:44rem;margin-inline:auto}.lv-tick__inclusions.astro-n27ooiyd{margin-block-start:var(--lv-space-5)}.lv-tick__features.astro-n27ooiyd{justify-content:center;padding:0;margin:0}.lv-tick__foot.astro-n27ooiyd{display:grid;justify-items:center;gap:var(--lv-space-4);margin-block-start:var(--lv-space-5);text-align:center}.lv-tick__foot.astro-n27ooiyd .lv-offer__assurance.astro-n27ooiyd{justify-content:center;inline-size:100%}.lv-tick__foot.astro-n27ooiyd .lv-offer__undertaking.astro-n27ooiyd{flex:1 1 11rem;align-items:center}.lv-tick__terms.astro-n27ooiyd{margin-inline:auto;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-tick__actions.astro-n27ooiyd{display:grid;justify-items:center;gap:var(--lv-space-3);margin-block-start:var(--lv-space-6)}.lv-tick__action.astro-n27ooiyd{padding:0}.lv-tick__cta.astro-n27ooiyd{min-inline-size:min(16rem,100%);justify-content:center;text-decoration:none}@supports selector(:has(*)){.lv-tick.astro-n27ooiyd:has([data-lv-tick-pick="0"]:checked) .astro-n27ooiyd[data-lv-tick-for="0"],.lv-tick.astro-n27ooiyd:has([data-lv-tick-pick="1"]:checked) .astro-n27ooiyd[data-lv-tick-for="1"],.lv-tick.astro-n27ooiyd:has([data-lv-tick-pick="2"]:checked) .astro-n27ooiyd[data-lv-tick-for="2"],.lv-tick.astro-n27ooiyd:has([data-lv-tick-pick="3"]:checked) .astro-n27ooiyd[data-lv-tick-for="3"],.lv-tick.astro-n27ooiyd:has([data-lv-tick-pick="4"]:checked) .astro-n27ooiyd[data-lv-tick-for="4"],.lv-tick.astro-n27ooiyd:has([data-lv-tick-pick="5"]:checked) .astro-n27ooiyd[data-lv-tick-for="5"],.lv-tick.astro-n27ooiyd:has([data-lv-tick-pick="6"]:checked) .astro-n27ooiyd[data-lv-tick-for="6"],.lv-tick.astro-n27ooiyd:has([data-lv-tick-pick="7"]:checked) .astro-n27ooiyd[data-lv-tick-for="7"],.lv-tick.astro-n27ooiyd .lv-offer__pick-detail.astro-n27ooiyd:not([data-lv-tick-for]){display:flex}.lv-tick.astro-n27ooiyd .lv-tick__features.astro-n27ooiyd[data-lv-tick-for]{flex-wrap:wrap;gap:var(--lv-space-2) var(--lv-space-5)}}@supports not selector(:has(*)){.lv-tick.astro-n27ooiyd .lv-offer__pick-detail.astro-n27ooiyd{display:flex;flex-wrap:wrap;justify-content:center}}@media (prefers-reduced-motion: reduce){.lv-tick__card.astro-n27ooiyd,.lv-tick__mark.astro-n27ooiyd{transition:none}}
/* components/decide.pricing/renderers/pricing.astro */
.lv-price__plans.astro-uid5b3bf{display:flex;flex-wrap:wrap;justify-content:center}.lv-price__plan.astro-uid5b3bf{flex:1 1 min(17rem,100%)}@container (min-width: 56rem){.lv-price__plan.astro-uid5b3bf{max-inline-size:calc((100% - 2 * var(--lv-space-5)) / 3)}}.lv-price__datum.astro-uid5b3bf{padding-block:var(--lv-space-2) var(--lv-space-3);border-block-end:1px solid var(--lv-line)}.is-featured.astro-uid5b3bf .lv-price__datum.astro-uid5b3bf{border-block-end-color:var(--lv-brand)}.lv-price__name.astro-uid5b3bf{color:var(--lv-text-primary);font-size:var(--lv-text-md)}.lv-price__plan.astro-uid5b3bf.is-featured{box-shadow:inset 0 0 0 2px var(--lv-brand)}.lv-price__table-plan.astro-uid5b3bf.is-featured{background:var(--lv-brand-soft);box-shadow:inset 0 0 0 2px var(--lv-brand);border-radius:var(--lv-radius-md) var(--lv-radius-md) 0 0}
/* components/decide.recommend/renderers/recommender.astro */
.lv-rec.astro-36hco6rd{display:grid;gap:var(--lv-space-6)}.lv-rec__form.astro-36hco6rd{display:grid;gap:var(--lv-space-5)}.lv-rec__q.astro-36hco6rd{border:0;margin:0;padding:0}.lv-rec__q.astro-36hco6rd legend.astro-36hco6rd{padding:0;margin-block-end:var(--lv-space-3)}.lv-rec__opt.astro-36hco6rd{cursor:pointer}.lv-rec__opt.astro-36hco6rd:has(input:checked){background:var(--lv-brand-soft);box-shadow:inset 0 0 0 1px var(--lv-brand)}.lv-rec__outcomes.astro-36hco6rd{display:grid;gap:var(--lv-space-4)}.lv-rec__outcome.astro-36hco6rd{align-items:start}.lv-rec--answered.astro-36hco6rd .lv-rec__outcome.astro-36hco6rd[hidden]{display:none}@container (min-width: 46rem){.lv-rec__outcomes.astro-36hco6rd{display:flex;flex-wrap:wrap;justify-content:center}.lv-rec__outcome.astro-36hco6rd{flex:1 1 min(16rem,100%);max-inline-size:calc((100% - 2 * var(--lv-space-4)) / 3)}}
/* components/decide.variant-picker/renderers/picker-list.astro */
.lv-vlist.astro-hgxpd5yv{display:grid;gap:var(--lv-space-3);max-inline-size:34rem;margin-inline:auto}.lv-vlist__title.astro-hgxpd5yv{margin:0;font:var(--lv-weight-medium) var(--lv-text-md) / 1.3 var(--lv-font-ui);color:var(--lv-text-primary)}.lv-vlist__form.astro-hgxpd5yv{display:grid;gap:var(--lv-space-5)}.lv-vlist__add.astro-hgxpd5yv{justify-content:space-between;gap:var(--lv-space-3);inline-size:100%;font-weight:var(--lv-weight-regular)}
/* components/decide.variant-picker/renderers/picker-text.astro */
.lv-vpick.astro-wsxdus2v{display:grid;gap:var(--lv-space-3);max-inline-size:26rem;margin-inline:auto}.lv-vpick__title.astro-wsxdus2v{margin:0;font:var(--lv-weight-regular) var(--lv-text-sm) / 1.3 var(--lv-font-ui);color:var(--lv-text-secondary)}.lv-vpick__form.astro-wsxdus2v{display:grid;gap:var(--lv-space-2)}.lv-vpick__out.astro-wsxdus2v{color:var(--lv-text-tertiary);font-weight:var(--lv-weight-regular)}.lv-vpick__add.astro-wsxdus2v{inline-size:100%;margin-block-start:var(--lv-space-3);font-weight:var(--lv-weight-regular)}
/* components/decide.variant-picker/renderers/picker.astro */
.lv-picker.astro-m23bntyl{display:grid;gap:var(--lv-space-4);max-width:34rem}.lv-picker__form.astro-m23bntyl{display:grid;gap:var(--lv-space-4);justify-items:start}.lv-picker__attr.astro-m23bntyl{border:0;margin:0;padding:0}.lv-picker__attr.astro-m23bntyl legend.astro-m23bntyl{padding:0;margin-block-end:var(--lv-space-2)}.lv-picker__value.astro-m23bntyl{cursor:pointer}.lv-picker__value.astro-m23bntyl:has(input:checked){background:var(--lv-brand-soft);box-shadow:inset 0 0 0 1px var(--lv-brand)}.lv-picker__value.astro-m23bntyl.is-out{cursor:not-allowed;color:var(--lv-text-tertiary)}.lv-picker__swatch.astro-m23bntyl{inline-size:16px;block-size:16px;border-radius:var(--lv-radius-pill);box-shadow:inset 0 0 0 1px var(--lv-line-strong)}.lv-picker__out.astro-m23bntyl{font-size:var(--lv-text-2xs);text-transform:uppercase;letter-spacing:var(--lv-tracking-label)}
/* components/explain.annotated-image/renderers/callouts.astro */
.lv-anno.astro-elsz2jfl[data-lv-bleed]{padding-inline:var(--lv-gutter)}.lv-anno--full.astro-elsz2jfl .lv-anno__media.astro-elsz2jfl{margin-inline:calc(-1 * var(--lv-gutter));border-radius:0}.lv-anno__canvas.astro-elsz2jfl{display:grid;gap:var(--lv-space-5)}.lv-anno__stage.astro-elsz2jfl{position:relative}.lv-anno__media.astro-elsz2jfl{background:var(--lv-surface-sunken)}.lv-anno__media.astro-elsz2jfl img.astro-elsz2jfl{aspect-ratio:16 / 10;object-position:50% 40%}.lv-anno__media--full.astro-elsz2jfl img.astro-elsz2jfl{aspect-ratio:21 / 10}@container (max-width: 30rem){.lv-anno__media--framed.astro-elsz2jfl img.astro-elsz2jfl{aspect-ratio:4 / 3}}.lv-anno__dots.astro-elsz2jfl{position:absolute;inset:0;pointer-events:none}.lv-anno__dot.astro-elsz2jfl{position:absolute;inset-inline-start:var(--ax);inset-block-start:var(--ay);transform:translate(-50%,-50%);display:grid;place-items:center;inline-size:26px;block-size:26px;border-radius:var(--lv-radius-pill);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line-strong),var(--lv-lift-1);font:var(--lv-weight-bold) var(--lv-text-2xs) / 1 var(--lv-font-mono);font-variant-numeric:tabular-nums;color:var(--lv-brand-strong)}@media (prefers-reduced-motion: no-preference){.lv-anno__dot.astro-elsz2jfl::after{content:"";position:absolute;inset:0;border-radius:inherit;animation:lv-anno-pulse 2.6s var(--lv-ease) infinite}@keyframes lv-anno-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--lv-brand-strong) 45%,transparent)}70%,100%{box-shadow:0 0 0 12px color-mix(in srgb,var(--lv-brand-strong) 0%,transparent)}}}.lv-anno__cards.astro-elsz2jfl{display:grid;gap:var(--lv-space-3);grid-template-columns:repeat(auto-fit,minmax(min(16rem,100%),1fr));margin:0;padding:0;list-style:none}.lv-anno__card.astro-elsz2jfl{min-inline-size:0}.lv-anno__cardbox.astro-elsz2jfl{display:grid;gap:var(--lv-space-2);block-size:100%;padding:var(--lv-space-4);border-radius:var(--lv-radius-md);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-anno__num.astro-elsz2jfl{display:grid;place-items:center;inline-size:20px;block-size:20px;border-radius:var(--lv-radius-pill);background:var(--lv-brand-soft);color:var(--lv-brand-strong);font:var(--lv-weight-bold) var(--lv-text-2xs) / 1 var(--lv-font-mono);font-variant-numeric:tabular-nums}.lv-anno__label.astro-elsz2jfl{margin:0;font-size:var(--lv-text-md);font-weight:var(--lv-weight-semibold);line-height:var(--lv-leading-snug);color:var(--lv-text-primary)}.lv-anno__body.astro-elsz2jfl{margin:0;font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-anno__price.astro-elsz2jfl{margin:0;font:var(--lv-weight-medium) var(--lv-text-xs) / 1 var(--lv-font-mono);font-variant-numeric:tabular-nums;color:var(--lv-text-primary)}.lv-anno__link.astro-elsz2jfl{font-size:var(--lv-text-sm)}@container (min-width: 48rem){.lv-anno__canvas--overlay.astro-elsz2jfl{position:relative}.lv-anno__canvas--overlay.astro-elsz2jfl .lv-anno__cards.astro-elsz2jfl{position:absolute;inset:0;display:block;pointer-events:none}.lv-anno__canvas--overlay.astro-elsz2jfl .lv-anno__card--pin.astro-elsz2jfl{position:absolute;inset-inline-start:var(--ax);inset-block-start:var(--ay);inline-size:max-content;max-inline-size:17rem;pointer-events:auto}.lv-anno__canvas--overlay.astro-elsz2jfl .lv-anno__cardbox.astro-elsz2jfl{block-size:auto;box-shadow:inset 0 0 0 1px var(--lv-line),var(--lv-lift-2)}.lv-anno__card--end.astro-elsz2jfl{transform:translate(var(--lv-space-6),-50%)}.lv-anno__card--end.astro-elsz2jfl::before{content:"";position:absolute;inset-inline-start:calc(-1 * var(--lv-space-6));inset-block-start:50%;inline-size:var(--lv-space-6);border-block-start:1px dashed color-mix(in srgb,var(--lv-text-on-brand) 80%,transparent)}.lv-anno__card--start.astro-elsz2jfl{transform:translate(calc(-100% - var(--lv-space-6)),-50%)}.lv-anno__card--start.astro-elsz2jfl::before{content:"";position:absolute;inset-inline-end:calc(-1 * var(--lv-space-6));inset-block-start:50%;inline-size:var(--lv-space-6);border-block-start:1px dashed color-mix(in srgb,var(--lv-text-on-brand) 80%,transparent)}.lv-anno__canvas--overlay.astro-elsz2jfl .lv-anno__card--pin.astro-elsz2jfl .lv-anno__num.astro-elsz2jfl{display:none}}
/* components/explain.audio/renderers/episode.astro */
.lv-audio.astro-xtlxuwqs{display:grid;gap:var(--lv-space-4);max-width:44rem;padding:var(--lv-space-5);border-radius:var(--lv-radius-md);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-audio__head.astro-xtlxuwqs{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--lv-space-3)}.lv-audio__player.astro-xtlxuwqs{inline-size:100%}.lv-audio__transcript.astro-xtlxuwqs>summary.astro-xtlxuwqs{cursor:pointer;font-weight:var(--lv-weight-medium);color:var(--lv-text-link);min-block-size:32px}.lv-audio__transcript.astro-xtlxuwqs[open]>summary.astro-xtlxuwqs{margin-block-end:var(--lv-space-3)}
/* components/explain.before-after/renderers/compare.astro */
.lv-ba__pair.astro-nboiqvbl figure.astro-nboiqvbl{position:relative}@container (min-width: 34rem){.lv-ba__pair.astro-nboiqvbl{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.lv-ba__cap.astro-nboiqvbl{position:absolute;inset-block-end:var(--lv-space-3);inset-inline-start:var(--lv-space-3);padding:2px var(--lv-space-3);border-radius:var(--lv-radius-pill);background:var(--lv-surface);color:var(--lv-text-primary);font:var(--lv-weight-semibold) var(--lv-text-xs) / 1.8 var(--lv-font-ui);box-shadow:var(--lv-lift-1)}.lv-ba__slider.astro-nboiqvbl{position:relative;overflow:hidden;border-radius:var(--lv-radius-md);aspect-ratio:16 / 9}.lv-ba__img.astro-nboiqvbl{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover}.lv-ba__img--clip.astro-nboiqvbl{clip-path:inset(0 calc(100% - var(--lv-ba-pos)) 0 0)}.lv-ba__seam.astro-nboiqvbl{position:absolute;inset-block:0;inset-inline-start:var(--lv-ba-pos);inline-size:2px;background:var(--lv-surface);box-shadow:0 0 0 1px rgb(0 0 0 / 0.18);pointer-events:none;translate:-1px 0}.lv-ba__handle.astro-nboiqvbl{position:absolute;inset-block-start:50%;inset-inline-start:var(--lv-ba-pos);display:grid;place-items:center;inline-size:44px;block-size:44px;border-radius:var(--lv-radius-pill);color:var(--lv-text-primary);background:var(--lv-surface);box-shadow:var(--lv-lift-2);pointer-events:none;translate:-50% -50%;transition:scale var(--lv-dur-fast) var(--lv-ease)}.lv-ba__slider.astro-nboiqvbl:hover .lv-ba__handle.astro-nboiqvbl{scale:1.08}.lv-ba__slider.astro-nboiqvbl:has(.lv-ba__range:active) .lv-ba__handle.astro-nboiqvbl{scale:0.92}.lv-ba__range.astro-nboiqvbl{position:absolute;z-index:1;inset:0;inline-size:100%;block-size:100%;margin:0;padding:0;border:0;opacity:0;background:transparent;cursor:ew-resize;-webkit-appearance:none;appearance:none}.lv-ba__range.astro-nboiqvbl:focus-visible{outline:none}.lv-ba__range.astro-nboiqvbl:focus-visible~.lv-ba__handle.astro-nboiqvbl{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:2px}.lv-ba__slider.astro-nboiqvbl:has(.lv-ba__range:focus-visible) .lv-ba__handle.astro-nboiqvbl{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:2px}.lv-ba__labels.astro-nboiqvbl{position:absolute;inset-block-start:var(--lv-space-3);inset-inline:var(--lv-space-3);display:flex;justify-content:space-between;margin:0}.lv-ba__labels.astro-nboiqvbl .lv-badge.astro-nboiqvbl{box-shadow:inset 0 0 0 1px var(--lv-line),var(--lv-lift-1)}.lv-ba__note.astro-nboiqvbl{max-width:var(--lv-measure);margin-block-start:var(--lv-space-4);color:var(--lv-text-secondary)}
/* components/explain.callout/renderers/callout.astro */
.lv-note__body.astro-crtf3wp5 p:last-child{margin-block-end:0}
/* components/explain.capability-bento/renderers/bento.astro */
.lv-bento.astro-g6ekzl4p{display:grid;gap:var(--lv-space-4);margin:0;padding:0;list-style:none;grid-template-columns:minmax(0,1fr)}.lv-bento__tile.astro-g6ekzl4p{justify-content:end}.lv-bento__media.astro-g6ekzl4p{margin-block-end:auto}.lv-bento__link.astro-g6ekzl4p{margin-block-start:var(--lv-space-2)}.lv-bento__tile--compact.astro-g6ekzl4p{flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--lv-space-3);padding-block:var(--lv-space-4)}.lv-bento__tile--compact.astro-g6ekzl4p .lv-bento__icon.astro-g6ekzl4p,.lv-bento__tile--compact.astro-g6ekzl4p .lv-card__title.astro-g6ekzl4p{margin-block-end:0}@container (min-width: 46rem){.lv-bento.astro-g6ekzl4p{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(11rem,auto)}.lv-bento--compact.astro-g6ekzl4p{grid-auto-rows:minmax(6rem,auto)}.lv-bento__tile--1x1.astro-g6ekzl4p{grid-column:span 2}.lv-bento__tile--2x1.astro-g6ekzl4p{grid-column:span 4}.lv-bento__tile--1x2.astro-g6ekzl4p{grid-column:span 2;grid-row:span 2}.lv-bento__tile--2x2.astro-g6ekzl4p{grid-column:span 2;grid-row:span 2}.lv-bento__tile--1x2.astro-g6ekzl4p,.lv-bento__tile--2x2.astro-g6ekzl4p{gap:var(--lv-space-4);padding:var(--lv-space-6)}.lv-bento__tile--1x2.astro-g6ekzl4p .lv-card__title.astro-g6ekzl4p,.lv-bento__tile--2x2.astro-g6ekzl4p .lv-card__title.astro-g6ekzl4p{font-size:var(--lv-text-lg)}.lv-bento__tile--1x2.astro-g6ekzl4p .lv-card__body.astro-g6ekzl4p,.lv-bento__tile--2x2.astro-g6ekzl4p .lv-card__body.astro-g6ekzl4p{font-size:var(--lv-text-md)}}@container (min-width: 68rem){.lv-bento.astro-g6ekzl4p{grid-template-columns:repeat(6,minmax(0,1fr))}.lv-bento--compact.astro-g6ekzl4p{grid-auto-rows:minmax(6rem,auto)}.lv-bento__tile--1x1.astro-g6ekzl4p{grid-column:span 2}.lv-bento__tile--2x1.astro-g6ekzl4p{grid-column:span 6}.lv-bento__tile--1x2.astro-g6ekzl4p{grid-column:span 2;grid-row:span 2}.lv-bento__tile--2x2.astro-g6ekzl4p{grid-column:span 4;grid-row:span 2}.lv-bento__tile--2x2.astro-g6ekzl4p .lv-card__title.astro-g6ekzl4p{font-size:var(--lv-text-xl)}}
/* components/explain.capability-grid/renderers/grid.astro */
.lv-grid.astro-hl3h37ig.lv-grid--cols{display:flex;flex-wrap:wrap;justify-content:center;--lv-caps-gap: var(--lv-space-5)}.lv-caps__item.astro-hl3h37ig{flex:1 1 min(17rem,100%)}@container (min-width: 44rem){.lv-caps__item.astro-hl3h37ig{flex-basis:calc((100% - (var(--lv-cols) - 1) * var(--lv-caps-gap)) / var(--lv-cols));max-inline-size:calc((100% - (var(--lv-cols) - 1) * var(--lv-caps-gap)) / var(--lv-cols))}}.lv-caps--icon-left.astro-hl3h37ig .lv-caps__item.astro-hl3h37ig{display:grid;grid-template-columns:var(--lv-space-7) minmax(0,1fr);gap:var(--lv-space-2) var(--lv-space-4);align-items:start}.lv-caps--icon-left.astro-hl3h37ig .lv-caps__icon.astro-hl3h37ig{grid-row:span 3}.lv-caps--strip.astro-hl3h37ig .lv-grid.astro-hl3h37ig{gap:var(--lv-space-4);--lv-caps-gap: var(--lv-space-4)}.lv-caps--strip.astro-hl3h37ig .lv-card__body.astro-hl3h37ig{display:none}.lv-caps--strip.astro-hl3h37ig .lv-card__title.astro-hl3h37ig{font-size:var(--lv-text-sm)}
/* components/explain.changelog/renderers/log.astro */
.lv-log.astro-fmksnraa{max-width:52rem}.lv-log__entry.astro-fmksnraa{display:grid;gap:var(--lv-space-2)}.lv-log__meta.astro-fmksnraa{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-3);margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-log__kind--added.astro-fmksnraa{background:var(--lv-ok-surface);color:var(--lv-ok-text)}.lv-log__kind--fixed.astro-fmksnraa{background:var(--lv-warn-surface);color:var(--lv-warn-text)}.lv-log__kind--removed.astro-fmksnraa{background:var(--lv-bad-surface);color:var(--lv-bad-text)}.lv-log__body.astro-fmksnraa{margin-block-start:var(--lv-space-2)}
/* components/explain.checklist/renderers/list.astro */
.lv-check.astro-5njhugbd{max-width:var(--lv-measure)}.lv-check__title.astro-5njhugbd{margin-block-end:var(--lv-space-3)}.lv-check__item.astro-5njhugbd{display:grid;gap:var(--lv-space-1)}.lv-check__label.astro-5njhugbd{display:flex;align-items:start;gap:var(--lv-space-3);margin:0;min-block-size:32px;font-weight:var(--lv-weight-medium);color:var(--lv-text-primary)}.lv-check__label.astro-5njhugbd input.astro-5njhugbd{margin-block-start:3px;inline-size:18px;block-size:18px;flex:none}.lv-check__mark.astro-5njhugbd{flex:none;inline-size:18px;block-size:18px;margin-block-start:3px;border-radius:var(--lv-radius-sm);box-shadow:inset 0 0 0 1px var(--lv-line-strong)}.lv-check__note.astro-5njhugbd{margin:0;padding-inline-start:calc(18px + var(--lv-space-3));font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}
/* components/explain.integrations/renderers/integrations.astro */
.lv-integr.astro-er5ma4eq{display:grid;gap:var(--lv-space-7)}.lv-integr__label.astro-er5ma4eq{padding-block-end:var(--lv-space-2);margin-block-end:var(--lv-space-4);border-block-end:1px solid var(--lv-line)}.lv-integr__logo.astro-er5ma4eq{inline-size:2.5rem;block-size:2.5rem;object-fit:contain;object-position:left center}
/* components/explain.media-statement/renderers/media-statement-centred.astro */
.lv-mstc.astro-miawnxam{--lv-photo-ink: var(--lv-text-on-brand)}@supports (color: oklch(from white l c h)){.lv-mstc.astro-miawnxam{--lv-photo-ink: oklch(from var(--lv-text-on-brand) 0.975 min(c, 0.02) h)}}.lv-mstc.astro-miawnxam{--lv-mstc-col: min(var(--lv-container-max, 72rem), 100% - 2 * var(--lv-gutter, var(--lv-space-5)));position:relative;display:grid;padding-block:0}.lv-mstc__media.astro-miawnxam{position:relative;margin:0;aspect-ratio:4 / 3;overflow:hidden;background:var(--lv-surface-sunken)}.lv-mstc__media.astro-miawnxam img.astro-miawnxam{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover}.lv-mstc__column.astro-miawnxam{display:grid;justify-items:center;padding:var(--lv-space-7) calc((100% - var(--lv-mstc-col)) / 2);background:var(--lv-brand-strong);color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand)}.lv-mstc--band.astro-miawnxam .lv-mstc__column.astro-miawnxam{padding-block:var(--lv-space-8)}.lv-mstc__copy.astro-miawnxam{display:grid;justify-items:center;gap:var(--lv-space-3);max-inline-size:40rem;text-align:center}.lv-mstc__eyebrow.astro-miawnxam{font:var(--lv-weight-medium) var(--lv-text-xs) / 1.4 var(--lv-font-ui);letter-spacing:0.18em;text-transform:uppercase;color:var(--lv-text-secondary)}.lv-mstc__title.astro-miawnxam{margin:0;font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-heading, var(--lv-weight-regular));line-height:var(--lv-leading-tight);letter-spacing:var(--lv-display-tracking, var(--lv-tracking-heading));color:var(--lv-text-primary);text-wrap:balance}.lv-mstc__body.astro-miawnxam{margin:0;max-inline-size:45ch;font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-lg);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary);text-wrap:pretty}.lv-mstc__link.astro-miawnxam{display:inline-block;margin-block-start:var(--lv-space-2);padding-block:var(--lv-space-3);color:var(--lv-text-primary);font:var(--lv-weight-medium) var(--lv-text-xs) / 1.4 var(--lv-font-ui);letter-spacing:0.18em;text-transform:uppercase;text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:0.5em;transition:text-decoration-thickness var(--lv-dur-state) var(--lv-ease)}.lv-mstc__link.astro-miawnxam:hover{text-decoration-thickness:2px}.lv-mstc__link.astro-miawnxam:focus-visible{outline:var(--lv-focus-width) solid currentColor;outline-offset:var(--lv-focus-offset)}@container (min-width: 48rem){.lv-mstc.astro-miawnxam:not(.lv-mstc--band)>.astro-miawnxam{grid-area:1 / 1}.lv-mstc.astro-miawnxam:not(.lv-mstc--band) .lv-mstc__media.astro-miawnxam{aspect-ratio:auto}.lv-mstc--standard.astro-miawnxam:not(.lv-mstc--band) .lv-mstc__column.astro-miawnxam{min-block-size:clamp(24rem,36cqi,34rem)}.lv-mstc--tall.astro-miawnxam:not(.lv-mstc--band) .lv-mstc__column.astro-miawnxam{min-block-size:clamp(32rem,54cqi,48rem)}.lv-mstc.astro-miawnxam:not(.lv-mstc--band) .lv-mstc__media.astro-miawnxam::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,rgb(var(--lv-glass-under) / var(--lv-mstc-far, 0.2)) 0%,rgb(var(--lv-glass-under) / 0.74) calc(50% - 22rem),rgb(var(--lv-glass-under) / 0.74) calc(50% + 22rem),rgb(var(--lv-glass-under) / var(--lv-mstc-far, 0.2)) 100%);pointer-events:none}.lv-mstc--scrim-strong.astro-miawnxam{--lv-mstc-far: 0.5}.lv-mstc.astro-miawnxam:not(.lv-mstc--band) .lv-mstc__column.astro-miawnxam{--lv-text-primary: var(--lv-photo-ink);--lv-text-secondary: var(--lv-photo-ink);--lv-text-tertiary: var(--lv-photo-ink);--lv-ink-accent: var(--lv-photo-ink);color:var(--lv-photo-ink);position:relative;align-content:center;background:none;padding-block:var(--lv-space-8)}}
/* components/explain.media-statement/renderers/media-statement-foot.astro */
.lv-mstf.astro-3kuiq76j{--lv-photo-ink: var(--lv-text-on-brand)}@supports (color: oklch(from white l c h)){.lv-mstf.astro-3kuiq76j{--lv-photo-ink: oklch(from var(--lv-text-on-brand) 0.975 min(c, 0.02) h)}}.lv-mstf.astro-3kuiq76j{--lv-mstf-col: min(var(--lv-container-max, 72rem), 100% - 2 * var(--lv-gutter, var(--lv-space-5)));position:relative;display:grid;padding-block:0;overflow:clip}.lv-mstf__media.astro-3kuiq76j{position:relative;margin:0;aspect-ratio:4 / 5;overflow:hidden;background:var(--lv-surface-sunken)}.lv-mstf__media.astro-3kuiq76j img.astro-3kuiq76j{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover}.lv-mstf__column.astro-3kuiq76j{display:grid;padding:var(--lv-space-7) calc((100% - var(--lv-mstf-col)) / 2);background:var(--lv-brand-strong);color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand)}.lv-mstf--band.astro-3kuiq76j .lv-mstf__column.astro-3kuiq76j{padding-block:var(--lv-space-8)}.lv-mstf__copy.astro-3kuiq76j{display:grid;justify-items:start;gap:var(--lv-space-2);max-inline-size:30rem}.lv-mstf__eyebrow.astro-3kuiq76j{font:var(--lv-weight-regular) var(--lv-text-sm) / 1.3 var(--lv-font-ui);color:var(--lv-text-secondary)}.lv-mstf__title.astro-3kuiq76j{margin:0;font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-xl);font-weight:var(--lv-weight-heading, var(--lv-weight-regular));line-height:var(--lv-leading-snug);letter-spacing:var(--lv-display-tracking, var(--lv-tracking-heading));color:var(--lv-text-primary);text-wrap:balance}.lv-mstf__body.astro-3kuiq76j{margin:0;max-inline-size:45ch;font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary);text-wrap:pretty}.lv-mstf__action.astro-3kuiq76j{margin-block-start:var(--lv-space-4);min-inline-size:min(100%,14rem);gap:var(--lv-space-3);color:var(--lv-text-primary);border-color:currentColor}.lv-mstf__action.astro-3kuiq76j svg.astro-3kuiq76j{flex:none;transition:translate var(--lv-dur-state) var(--lv-ease)}.lv-mstf__action.astro-3kuiq76j:hover svg.astro-3kuiq76j{translate:3px 0}@container (min-width: 48rem){.lv-mstf.astro-3kuiq76j:not(.lv-mstf--band)>.astro-3kuiq76j{grid-area:1 / 1}.lv-mstf.astro-3kuiq76j:not(.lv-mstf--band) .lv-mstf__media.astro-3kuiq76j{aspect-ratio:auto}.lv-mstf--standard.astro-3kuiq76j:not(.lv-mstf--band) .lv-mstf__column.astro-3kuiq76j{min-block-size:clamp(26rem,40cqi,36rem)}.lv-mstf--tall.astro-3kuiq76j:not(.lv-mstf--band) .lv-mstf__column.astro-3kuiq76j{min-block-size:clamp(34rem,58cqi,50rem)}.lv-mstf--scrim-strong.astro-3kuiq76j:not(.lv-mstf--band) .lv-mstf__media.astro-3kuiq76j::after{content:"";position:absolute;inset:0;background:rgb(var(--lv-glass-under) / 0.36);pointer-events:none}.lv-mstf.astro-3kuiq76j:not(.lv-mstf--band) .lv-mstf__column.astro-3kuiq76j{--lv-text-primary: var(--lv-photo-ink);--lv-text-secondary: var(--lv-photo-ink);--lv-text-tertiary: var(--lv-photo-ink);--lv-ink-accent: var(--lv-photo-ink);color:var(--lv-photo-ink);position:relative;z-index:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:end;background:none;padding-block:var(--lv-space-8)}.lv-mstf.astro-3kuiq76j:not(.lv-mstf--band) .lv-mstf__copy.astro-3kuiq76j{position:relative}.lv-mstf.astro-3kuiq76j:not(.lv-mstf--band) .lv-mstf__copy.astro-3kuiq76j::before{content:"";position:absolute;z-index:-1;inset-inline:-100vmax;inset-block-start:-12rem;inset-block-end:calc(-1 * var(--lv-space-8));background:linear-gradient(to top,rgb(var(--lv-glass-under) / 0.74) 0%,rgb(var(--lv-glass-under) / 0.74) calc(100% - 12rem),rgb(var(--lv-glass-under) / 0.5) calc(100% - 7.5rem),rgb(var(--lv-glass-under) / 0.2) calc(100% - 3.5rem),rgb(var(--lv-glass-under) / 0) 100%);pointer-events:none}.lv-mstf__copy.astro-3kuiq76j{grid-column:1}.lv-mstf--end.astro-3kuiq76j .lv-mstf__copy.astro-3kuiq76j{grid-column:2}}
/* components/explain.media-statement/renderers/media-statement-plate.astro */
.lv-mstp__plate.astro-qdxsal5c{position:relative;margin:0 0 var(--lv-space-5);aspect-ratio:16 / 9;overflow:hidden;background:var(--lv-surface-sunken)}.lv-mstp--tall.astro-qdxsal5c .lv-mstp__plate.astro-qdxsal5c{aspect-ratio:3 / 2}.lv-mstp__plate.astro-qdxsal5c img.astro-qdxsal5c{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover}.lv-mstp__caption.astro-qdxsal5c{display:grid;justify-items:center;gap:var(--lv-space-2);max-inline-size:40rem;margin-inline:auto;text-align:center}.lv-mstp__eyebrow.astro-qdxsal5c{font:var(--lv-btn-font, var(--lv-weight-medium) var(--lv-text-xs) / 1 var(--lv-font-ui));font-size:var(--lv-text-2xs, var(--lv-text-xs));letter-spacing:max(0.2em,var(--lv-btn-tracking, 0.2em));text-transform:uppercase;color:var(--lv-text-secondary)}.lv-mstp__title.astro-qdxsal5c{margin:0;font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-xl);font-weight:var(--lv-weight-heading, var(--lv-weight-regular));line-height:var(--lv-leading-snug);letter-spacing:var(--lv-display-tracking, var(--lv-tracking-heading));color:var(--lv-text-primary);text-wrap:balance}.lv-mstp__body.astro-qdxsal5c{margin:0;max-inline-size:45ch;color:var(--lv-text-secondary);text-wrap:pretty}.lv-mstp__link.astro-qdxsal5c{display:inline-block;padding-block:var(--lv-space-3);color:var(--lv-text-primary);font-size:var(--lv-text-sm);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:0.3em;transition:text-decoration-thickness var(--lv-dur-state) var(--lv-ease)}.lv-mstp__link.astro-qdxsal5c:hover{text-decoration-thickness:2px}
/* components/explain.media-statement/renderers/media-statement.astro */
.lv-mst.astro-7hvllebw{--lv-photo-ink: var(--lv-text-on-brand)}@supports (color: oklch(from white l c h)){.lv-mst.astro-7hvllebw{--lv-photo-ink: oklch(from var(--lv-text-on-brand) 0.975 min(c, 0.02) h)}}.lv-mst.astro-7hvllebw{--lv-mst-col: min(var(--lv-container-max, 72rem), 100% - 2 * var(--lv-gutter, var(--lv-space-5)));position:relative;display:grid;padding-block:0}.lv-mst__media.astro-7hvllebw{position:relative;margin:0;aspect-ratio:4 / 3;overflow:hidden;background:var(--lv-surface-sunken)}.lv-mst__media.astro-7hvllebw img.astro-7hvllebw{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover}.lv-mst__column.astro-7hvllebw{background:var(--lv-brand-strong);padding-block:var(--lv-space-7);padding-inline:calc((100% - var(--lv-mst-col)) / 2);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand);--lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);--lv-line-strong: color-mix(in oklab, var(--lv-text-on-brand) 52%, transparent);color:var(--lv-text-on-brand)}.lv-mst--band.astro-7hvllebw{padding-inline:0}.lv-mst--band.astro-7hvllebw .lv-mst__column.astro-7hvllebw{padding-block:var(--lv-space-8)}.lv-mst__copy.astro-7hvllebw{display:grid;justify-items:start;gap:var(--lv-space-3);max-inline-size:34rem}.lv-mst__eyebrow.astro-7hvllebw{margin:0}.lv-mst__title.astro-7hvllebw{margin:0;max-inline-size:16ch;font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-heading, var(--lv-weight-regular));line-height:var(--lv-leading-tight);letter-spacing:var(--lv-display-tracking, var(--lv-tracking-heading));color:var(--lv-text-primary);text-wrap:balance}.lv-mst__body.astro-7hvllebw{margin:0;max-inline-size:45ch;font-size:var(--lv-text-md);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary);text-wrap:pretty}.lv-mst__link.astro-7hvllebw{display:inline-block;margin-block-start:var(--lv-space-2);padding-block:var(--lv-space-3);color:var(--lv-text-primary);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:0.35em;transition:text-decoration-thickness var(--lv-dur-state) var(--lv-ease)}.lv-mst__link.astro-7hvllebw:hover{text-decoration-thickness:2px}.lv-mst__link.astro-7hvllebw:focus-visible{outline:var(--lv-focus-width) solid currentColor;outline-offset:var(--lv-focus-offset)}@container (min-width: 48rem){.lv-mst.astro-7hvllebw:not(.lv-mst--band)>.astro-7hvllebw{grid-area:1 / 1}.lv-mst.astro-7hvllebw:not(.lv-mst--band) .lv-mst__media.astro-7hvllebw{aspect-ratio:auto}.lv-mst--standard.astro-7hvllebw:not(.lv-mst--band) .lv-mst__column.astro-7hvllebw{min-block-size:clamp(24rem,36cqi,34rem)}.lv-mst--tall.astro-7hvllebw:not(.lv-mst--band) .lv-mst__column.astro-7hvllebw{min-block-size:clamp(32rem,54cqi,48rem)}.lv-mst.astro-7hvllebw:not(.lv-mst--band) .lv-mst__media.astro-7hvllebw::after{content:"";position:absolute;inset:0;background:linear-gradient(var(--lv-mst-dir, to right),rgb(var(--lv-glass-under) / 0.74) 0%,rgb(var(--lv-glass-under) / 0.74) 54%,rgb(var(--lv-glass-under) / var(--lv-mst-far-mid, 0.25)) 70%,rgb(var(--lv-glass-under) / var(--lv-mst-far, 0)) 88%);pointer-events:none}.lv-mst--end.astro-7hvllebw{--lv-mst-dir: to left}.lv-mst--scrim-strong.astro-7hvllebw{--lv-mst-far-mid: 0.5;--lv-mst-far: 0.42}.lv-mst.astro-7hvllebw:not(.lv-mst--band) .lv-mst__column.astro-7hvllebw{--lv-text-primary: var(--lv-photo-ink);--lv-text-secondary: var(--lv-photo-ink);--lv-text-tertiary: var(--lv-photo-ink);--lv-ink-accent: var(--lv-photo-ink);color:var(--lv-photo-ink);position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:start;background:none;padding-block:var(--lv-space-8)}.lv-mst__copy.astro-7hvllebw{grid-column:1}.lv-mst--end.astro-7hvllebw .lv-mst__copy.astro-7hvllebw{grid-column:2}.lv-mst--end.astro-7hvllebw:not(.lv-mst--band) .lv-mst__copy.astro-7hvllebw{padding-inline-start:var(--lv-space-6)}.lv-mst--start.astro-7hvllebw:not(.lv-mst--band) .lv-mst__copy.astro-7hvllebw{padding-inline-end:var(--lv-space-6)}}
/* components/explain.narrative-media/renderers/evidence-rows.astro */
.lv-evidence__rows.astro-r62bxwl7{display:grid;gap:var(--lv-space-4)}.lv-evidence__row.astro-r62bxwl7{display:grid;gap:var(--lv-space-5);padding:var(--lv-space-5);border-radius:var(--lv-radius-lg)}.lv-evidence__row.astro-r62bxwl7:nth-child(even){background:var(--lv-surface-sunken)}.lv-evidence__copy.astro-r62bxwl7{display:flex;flex-direction:column;justify-content:center;gap:var(--lv-space-3)}.lv-evidence__eyebrow.astro-r62bxwl7{font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-ink-accent)}.lv-evidence__title.astro-r62bxwl7{font-size:var(--lv-text-lg)}.lv-evidence__body.astro-r62bxwl7 p.astro-r62bxwl7{margin:0}.lv-evidence__body.astro-r62bxwl7 p.astro-r62bxwl7+p.astro-r62bxwl7{margin-block-start:var(--lv-space-3)}.lv-evidence__media.astro-r62bxwl7{position:relative;padding:var(--lv-space-4);background:var(--lv-brand-soft);border-radius:var(--lv-radius-lg)}.lv-evidence__media.astro-r62bxwl7>img.astro-r62bxwl7{border-radius:var(--lv-radius-sm)}.lv-evidence--frame-browser.astro-r62bxwl7 .lv-evidence__media.astro-r62bxwl7{padding:var(--lv-space-6) var(--lv-space-1) var(--lv-space-1);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-evidence--frame-browser.astro-r62bxwl7 .lv-evidence__media.astro-r62bxwl7::before{content:"";position:absolute;inset-block-start:calc(var(--lv-space-6) / 2);inset-inline-start:var(--lv-space-3);translate:0 -50%;inline-size:1.75rem;block-size:0.5rem;background-image:radial-gradient(circle,var(--lv-line) 0 46%,transparent 50%),radial-gradient(circle,var(--lv-line) 0 46%,transparent 50%),radial-gradient(circle,var(--lv-line) 0 46%,transparent 50%);background-repeat:no-repeat;background-size:0.5rem 0.5rem;background-position:0 center,0.625rem center,1.25rem center}.lv-evidence__facts.astro-r62bxwl7{display:grid;gap:var(--lv-space-2);margin:0;padding-block-start:var(--lv-space-3);border-block-start:1px solid var(--lv-line)}.lv-evidence__fact.astro-r62bxwl7{display:grid;grid-template-columns:minmax(6rem,max-content) 1fr;gap:var(--lv-space-3);font-size:var(--lv-text-sm)}.lv-evidence__fact.astro-r62bxwl7 dt.astro-r62bxwl7{margin:0;color:var(--lv-text-tertiary)}.lv-evidence__fact.astro-r62bxwl7 dd.astro-r62bxwl7{margin:0;color:var(--lv-text-primary);font-weight:var(--lv-weight-medium)}@container (min-width: 50rem){.lv-evidence__row.astro-r62bxwl7{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--lv-space-6);padding:var(--lv-space-6)}.lv-evidence__row--copy-only.astro-r62bxwl7{grid-template-columns:minmax(0,1fr)}.lv-evidence__row--copy-only.astro-r62bxwl7 .lv-evidence__copy.astro-r62bxwl7{max-inline-size:var(--lv-measure)}.lv-evidence__row.astro-r62bxwl7:nth-child(even)>.astro-r62bxwl7:first-child{order:2}.lv-evidence--fixed-side.astro-r62bxwl7 .lv-evidence__row.astro-r62bxwl7:nth-child(even)>.astro-r62bxwl7:first-child{order:0}}
/* components/explain.narrative-media/renderers/manifesto-columns.astro */
.lv-mcol__row.astro-fin2qceg{display:grid;gap:var(--lv-space-4)}.lv-mcol__label.astro-fin2qceg:empty{display:none}@container (min-width: 56rem){.lv-mcol__row.astro-fin2qceg{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--lv-space-5);align-items:start}.lv-mcol__label.astro-fin2qceg{grid-column:4 / 7}.lv-mcol__words.astro-fin2qceg{grid-column:7 / 13}}.lv-mcol__heading.astro-fin2qceg{margin:0;font-family:var(--lv-font-ui);font-size:var(--lv-text-md);font-weight:var(--lv-weight-regular);line-height:var(--lv-leading-snug);letter-spacing:0;color:var(--lv-text-primary)}.lv-mcol__words.astro-fin2qceg{display:grid;gap:var(--lv-space-6);min-inline-size:0}.lv-mcol__intro.astro-fin2qceg{margin:0;max-inline-size:46ch;font-family:var(--lv-font-ui);font-size:var(--lv-text-lg);font-weight:var(--lv-weight-regular);line-height:var(--lv-leading-snug);letter-spacing:0;color:var(--lv-text-primary);text-wrap:pretty}.lv-mcol__blocks.astro-fin2qceg{display:grid;gap:var(--lv-space-6)}.lv-mcol__block.astro-fin2qceg{display:grid;gap:var(--lv-space-2);max-inline-size:52ch}.lv-mcol__title.astro-fin2qceg,.lv-mcol__body.astro-fin2qceg{margin:0;font-family:var(--lv-font-ui);font-size:var(--lv-text-md);font-weight:var(--lv-weight-regular);line-height:var(--lv-leading-normal);letter-spacing:0;color:var(--lv-text-primary)}.lv-mcol__body.astro-fin2qceg p.astro-fin2qceg{margin:0}.lv-mcol__body.astro-fin2qceg p.astro-fin2qceg+p.astro-fin2qceg{margin-block-start:var(--lv-space-3)}.lv-mcol__facts.astro-fin2qceg{display:flex;flex-wrap:wrap;gap:var(--lv-space-2) var(--lv-space-6);margin:0}.lv-mcol__fact.astro-fin2qceg{display:flex;gap:var(--lv-space-2);font-size:var(--lv-text-md)}.lv-mcol__fact.astro-fin2qceg dt.astro-fin2qceg{margin:0;color:var(--lv-text-secondary)}.lv-mcol__fact.astro-fin2qceg dd.astro-fin2qceg{margin:0;color:var(--lv-text-primary);font-variant-numeric:tabular-nums}.lv-mcol__action.astro-fin2qceg{justify-self:start;display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-md);color:var(--lv-text-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.3em}
/* components/explain.narrative-media/renderers/manifesto.astro */
.lv-manifest.astro-lzs3ztnm{display:grid;align-content:center;min-block-size:min(100dvh,46rem)}@media (max-height: 34rem){.lv-manifest.astro-lzs3ztnm{min-block-size:0}}.lv-manifest__inner.astro-lzs3ztnm{display:grid;gap:var(--lv-space-8);justify-items:start}.lv-manifest__statement.astro-lzs3ztnm{display:grid;gap:var(--lv-space-5);justify-items:start;max-inline-size:34ch}.lv-manifest__eyebrow.astro-lzs3ztnm{margin-block-end:0}.lv-manifest__lede.astro-lzs3ztnm{margin:0;max-inline-size:22ch;font-size:clamp(var(--lv-text-xl),6cqi,var(--lv-text-2xl));font-weight:var(--lv-weight-heading);line-height:1.05;letter-spacing:var(--lv-tracking-heading);color:var(--lv-text-primary);text-wrap:balance}.lv-manifest__lines.astro-lzs3ztnm{display:grid;gap:var(--lv-space-4)}.lv-manifest__line.astro-lzs3ztnm{margin:0;max-inline-size:none}.lv-manifest__claim.astro-lzs3ztnm{display:block;font-size:var(--lv-text-lg);font-weight:var(--lv-weight-medium);line-height:1.25;letter-spacing:var(--lv-tracking-label);color:var(--lv-text-primary);text-wrap:balance}.lv-manifest__aside.astro-lzs3ztnm{display:block;margin-block-start:var(--lv-space-2);font-size:var(--lv-text-sm);line-height:1.55;color:var(--lv-text-tertiary)}.lv-manifest__clause.astro-lzs3ztnm{display:block}.lv-manifest__clause.astro-lzs3ztnm+.lv-manifest__clause.astro-lzs3ztnm{margin-block-start:var(--lv-space-2)}.lv-manifest__action.astro-lzs3ztnm{display:inline-flex;align-items:center;min-block-size:24px;font:var(--lv-weight-medium) var(--lv-text-sm) / 1 var(--lv-font-ui);color:var(--lv-text-secondary);text-decoration:underline;text-underline-offset:0.4em;text-decoration-thickness:1px}.lv-manifest__action.astro-lzs3ztnm:hover{color:var(--lv-text-primary)}.lv-manifest__stats.astro-lzs3ztnm{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,max-content));gap:var(--lv-space-5);margin:0}.lv-manifest__cell.astro-lzs3ztnm{position:relative;display:flex;flex-direction:column-reverse;justify-content:end;padding:var(--lv-space-4) var(--lv-space-5)}.lv-manifest__cell.astro-lzs3ztnm::before,.lv-manifest__cell.astro-lzs3ztnm::after{content:"";position:absolute;inline-size:var(--lv-space-3);block-size:var(--lv-space-3);border:0 solid var(--lv-line)}.lv-manifest__cell.astro-lzs3ztnm::before{inset-block-start:0;inset-inline-start:0;border-block-start-width:1px;border-inline-start-width:1px}.lv-manifest__cell.astro-lzs3ztnm::after{inset-block-end:0;inset-inline-end:0;border-block-end-width:1px;border-inline-end-width:1px}.lv-manifest__cell-value.astro-lzs3ztnm{margin:0;font:var(--lv-weight-bold) var(--lv-text-lg) / 1.1 var(--lv-font-mono);font-variant-numeric:tabular-nums;letter-spacing:var(--lv-tracking-num);color:var(--lv-text-primary)}.lv-manifest__cell-label.astro-lzs3ztnm{margin:0;margin-block-start:var(--lv-space-2);font:var(--lv-weight-medium) var(--lv-text-xs) / 1.3 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-tertiary)}
/* components/explain.narrative-media/renderers/stacked-scenes.astro */
.lv-walk__stack.astro-44mwlfpm{display:grid;gap:var(--lv-space-6)}.lv-walk__scene.astro-44mwlfpm{display:grid;gap:var(--lv-space-3)}.lv-walk__label.astro-44mwlfpm{display:flex;align-items:baseline;gap:var(--lv-space-3);margin:0;font:var(--lv-weight-medium) var(--lv-text-xs) / 1.2 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-secondary)}.lv-walk__step.astro-44mwlfpm{font-family:var(--lv-font-mono);font-variant-numeric:tabular-nums;letter-spacing:var(--lv-tracking-num);color:var(--lv-ink-accent)}.lv-walk__card.astro-44mwlfpm{display:grid;gap:var(--lv-space-4);padding:var(--lv-space-5);border:1px solid var(--lv-line);border-radius:var(--lv-radius-lg);background:var(--lv-surface-raised)}.lv-walk__title.astro-44mwlfpm{font-size:var(--lv-text-lg)}.lv-walk__media.astro-44mwlfpm{border-radius:var(--lv-radius-md)}.lv-walk__body.astro-44mwlfpm p.astro-44mwlfpm{margin:0}.lv-walk__body.astro-44mwlfpm p.astro-44mwlfpm+p.astro-44mwlfpm{margin-block-start:var(--lv-space-3)}.lv-walk__facts.astro-44mwlfpm{display:grid;gap:var(--lv-space-2);margin:0;padding-block-start:var(--lv-space-3);border-block-start:1px solid var(--lv-line)}.lv-walk__fact.astro-44mwlfpm{display:grid;grid-template-columns:minmax(6rem,max-content) 1fr;gap:var(--lv-space-3);font-size:var(--lv-text-sm)}.lv-walk__fact.astro-44mwlfpm dt.astro-44mwlfpm{margin:0;color:var(--lv-text-tertiary)}.lv-walk__fact.astro-44mwlfpm dd.astro-44mwlfpm{margin:0;color:var(--lv-text-primary);font-weight:var(--lv-weight-medium)}@container (min-width: 56rem){.lv-walk__scene.astro-44mwlfpm{grid-template-columns:minmax(0,9rem) minmax(0,1fr);column-gap:var(--lv-space-7);align-items:start}.lv-walk__label.astro-44mwlfpm{position:relative;flex-direction:column;gap:var(--lv-space-2);padding-block-start:var(--lv-space-5)}.lv-walk__label.astro-44mwlfpm::before{content:"";position:absolute;inset-block-start:var(--lv-space-5);inset-inline-start:calc(var(--lv-space-4) * -1);inline-size:2px;block-size:1.5rem;background:var(--lv-ink-accent);opacity:0.25;transform-origin:top;scale:1 0.35}.lv-walk__card.astro-44mwlfpm{padding:var(--lv-space-6)}@media (prefers-reduced-motion: no-preference){.lv-walk__stack.astro-44mwlfpm{gap:var(--lv-space-8)}.lv-walk__scene.astro-44mwlfpm{position:sticky;inset-block-start:calc(var(--lv-space-6) + var(--lv-walk-index, 0) * var(--lv-space-2))}@supports (animation-timeline: view()){.lv-walk__label.astro-44mwlfpm::before{animation:lv-walk-mark linear both;animation-timeline:view()}@keyframes lv-walk-mark{0%,100%{opacity:0.25;scale:1 0.35}35%,65%{opacity:1;scale:1 1}}}}}[data-lv-state="scene-open"] .lv-walk__scene.astro-44mwlfpm{position:static}[data-lv-state="scene-open"] .lv-walk__label.astro-44mwlfpm::before,[data-lv-state="rail-label-active"] .lv-walk__label.astro-44mwlfpm::before{animation:none;opacity:1;scale:1 1}[data-lv-state="scene-pinned"] .lv-walk__scene.astro-44mwlfpm{position:sticky;inset-block-start:calc(var(--lv-space-6) + var(--lv-walk-index, 0) * var(--lv-space-2))}[data-lv-state="scene-covered"] .lv-walk__scene.astro-44mwlfpm:not(:last-child) .lv-walk__card.astro-44mwlfpm{filter:saturate(0.5)}
/* components/explain.narrative-media/renderers/stage-chips.astro */
.lv-stages__row.astro-y64jijaf{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:var(--lv-space-4)}.lv-stages__card.astro-y64jijaf{display:flex;flex-direction:column;gap:var(--lv-space-3);padding:var(--lv-space-5);border:1px solid var(--lv-line);border-radius:var(--lv-radius-lg);background:var(--lv-surface-raised)}.lv-stages__chip.astro-y64jijaf{display:inline-flex;align-items:baseline;gap:var(--lv-space-2);align-self:start;margin:0;padding:var(--lv-space-1) var(--lv-space-3);border:1px solid var(--lv-ink-accent);border-radius:var(--lv-radius-pill);font:var(--lv-weight-bold) var(--lv-text-xs) / 1.4 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-ink-accent)}.lv-stages__no.astro-y64jijaf{font-family:var(--lv-font-mono);font-variant-numeric:tabular-nums;letter-spacing:var(--lv-tracking-num)}.lv-stages__media.astro-y64jijaf{border-radius:var(--lv-radius-md)}.lv-stages__body.astro-y64jijaf{color:var(--lv-text-secondary)}.lv-stages__body.astro-y64jijaf p.astro-y64jijaf{margin:0}.lv-stages__body.astro-y64jijaf p.astro-y64jijaf+p.astro-y64jijaf{margin-block-start:var(--lv-space-3)}.lv-stages__checks.astro-y64jijaf{display:grid;gap:var(--lv-space-2);margin:0;padding:0;list-style:none;font-size:var(--lv-text-sm)}.lv-stages__checks.astro-y64jijaf>li.astro-y64jijaf{display:grid;grid-template-columns:1rem 1fr;align-items:baseline;gap:var(--lv-space-1) var(--lv-space-3)}.lv-stages__checks.astro-y64jijaf>li.astro-y64jijaf::before{content:"";inline-size:0.5rem;block-size:0.85rem;justify-self:center;border-inline-end:2px solid currentColor;border-block-end:2px solid currentColor;rotate:45deg;translate:0 -0.15rem;color:var(--lv-text-tertiary)}.lv-stages__check-label.astro-y64jijaf{color:var(--lv-text-primary);font-weight:var(--lv-weight-medium)}.lv-stages__check-value.astro-y64jijaf{grid-column:2;color:var(--lv-text-tertiary)}.lv-stages__promise.astro-y64jijaf{display:flex;flex-direction:column;gap:var(--lv-space-2);align-items:start;margin-block-start:auto;padding-block-start:var(--lv-space-4)}.lv-stages__title.astro-y64jijaf{margin:0;font-size:var(--lv-text-lg);font-weight:var(--lv-weight-heading);letter-spacing:var(--lv-tracking-heading);color:var(--lv-text-primary);text-wrap:balance}.lv-stages--band.astro-y64jijaf .lv-stages__row.astro-y64jijaf{grid-template-columns:minmax(0,1fr)}.lv-stages--band.astro-y64jijaf .lv-stages__card.astro-y64jijaf{border:0;border-radius:0;padding:0;background:none;border-block-start:1px solid var(--lv-line);padding-block-start:var(--lv-space-5)}.lv-stages--band.astro-y64jijaf .lv-stages__promise.astro-y64jijaf{padding-block-start:var(--lv-space-3)}@container (min-width: 44rem){.lv-stages--band.astro-y64jijaf .lv-stages__card.astro-y64jijaf{display:grid;grid-template-columns:minmax(0,7rem) minmax(0,1fr);column-gap:var(--lv-space-6);align-items:start}.lv-stages--band.astro-y64jijaf .lv-stages__chip.astro-y64jijaf{grid-row:1 / span 4}}
/* components/explain.narrative-media/renderers/story-edge.astro */
.lv-edge.astro-ucobidpy{--lv-edge-col: min(var(--lv-container-max, 72rem), 100cqi - 2 * var(--lv-gutter, var(--lv-space-5)));--lv-edge-12th: calc(var(--lv-edge-col) / 12)}.lv-edge__frame.astro-ucobidpy,.lv-edge__row.astro-ucobidpy{display:grid;grid-template-columns:[edge-start] minmax(var(--lv-gutter, var(--lv-space-5)),1fr) [col-start] calc(var(--lv-edge-12th) * 5) [five] calc(var(--lv-edge-12th) * 2) [seven] calc(var(--lv-edge-12th) * 5) [col-end] minmax(var(--lv-gutter, var(--lv-space-5)),1fr) [edge-end]}.lv-edge__head.astro-ucobidpy{grid-column:col-start / col-end}.lv-edge__rows.astro-ucobidpy{display:grid;gap:var(--lv-space-9)}.lv-edge__media.astro-ucobidpy{position:relative;grid-column:edge-start / edge-end;margin:0;aspect-ratio:3 / 2;overflow:hidden;background:var(--lv-surface-sunken)}.lv-edge__media.astro-ucobidpy>img.astro-ucobidpy{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover}.lv-edge__copy.astro-ucobidpy{grid-column:col-start / col-end;display:grid;justify-items:start;align-content:center;gap:var(--lv-space-3);min-inline-size:0;padding-block-start:var(--lv-space-5)}@container (min-width: 56rem){.lv-edge__row.astro-ucobidpy{align-items:center}.lv-edge__media.astro-ucobidpy{grid-row:1;aspect-ratio:3 / 1.1}.lv-edge__copy.astro-ucobidpy{grid-row:1;padding-block-start:0}.lv-edge__row.astro-ucobidpy:nth-child(odd) .lv-edge__media.astro-ucobidpy{grid-column:edge-start / seven}.lv-edge__row.astro-ucobidpy:nth-child(odd) .lv-edge__copy.astro-ucobidpy{grid-column:seven / col-end;padding-inline-start:var(--lv-space-7)}.lv-edge__row.astro-ucobidpy:nth-child(even) .lv-edge__media.astro-ucobidpy{grid-column:five / edge-end}.lv-edge__row.astro-ucobidpy:nth-child(even) .lv-edge__copy.astro-ucobidpy{grid-column:col-start / five;padding-inline-end:var(--lv-space-7)}}.lv-edge__row--text.astro-ucobidpy .lv-edge__copy.astro-ucobidpy,.lv-edge__row--text.astro-ucobidpy:nth-child(n) .lv-edge__copy.astro-ucobidpy{grid-column:col-start / col-end;justify-items:center;max-inline-size:36rem;margin-inline:auto;padding:0;text-align:center}.lv-edge__eyebrow.astro-ucobidpy{font:var(--lv-weight-medium) var(--lv-text-sm) / var(--lv-leading-snug) var(--lv-font-ui);color:var(--lv-text-primary)}.lv-edge__index.astro-ucobidpy{font-size:var(--lv-text-xl);font-weight:var(--lv-weight-heading, var(--lv-weight-regular));color:var(--lv-text-secondary);font-variant-numeric:tabular-nums}.lv-edge__title.astro-ucobidpy{margin:0;font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-heading, var(--lv-weight-regular));line-height:var(--lv-leading-tight);letter-spacing:var(--lv-display-tracking, var(--lv-tracking-heading));color:var(--lv-text-primary);text-wrap:balance}.lv-edge__body.astro-ucobidpy{margin:0;max-inline-size:42ch;color:var(--lv-text-secondary);line-height:var(--lv-leading-normal);text-wrap:pretty}.lv-edge__body.astro-ucobidpy p.astro-ucobidpy{margin:0}.lv-edge__body.astro-ucobidpy p.astro-ucobidpy+p.astro-ucobidpy{margin-block-start:var(--lv-space-3)}.lv-edge__facts.astro-ucobidpy{display:grid;gap:var(--lv-space-2);margin:var(--lv-space-2) 0 0;padding-block-start:var(--lv-space-3);border-block-start:1px solid var(--lv-line);inline-size:100%;max-inline-size:42ch}.lv-edge__fact.astro-ucobidpy{display:grid;grid-template-columns:minmax(6rem,max-content) 1fr;gap:var(--lv-space-3);font-size:var(--lv-text-sm)}.lv-edge__fact.astro-ucobidpy dt.astro-ucobidpy{margin:0;color:var(--lv-text-secondary)}.lv-edge__fact.astro-ucobidpy dd.astro-ucobidpy{margin:0;color:var(--lv-text-primary)}.lv-edge__action.astro-ucobidpy{min-inline-size:min(100%,14rem);margin-block-start:var(--lv-space-4);gap:var(--lv-space-3)}.lv-edge__action.astro-ucobidpy svg.astro-ucobidpy{flex:none;transition:translate var(--lv-dur-state) var(--lv-ease)}.lv-edge__action.astro-ucobidpy:hover svg.astro-ucobidpy{translate:3px 0}.lv-edge__swap.astro-ucobidpy{opacity:0;transition:opacity var(--lv-dur-panel) var(--lv-ease)}.lv-edge--material.astro-ucobidpy .lv-edge__row.astro-ucobidpy:hover .lv-edge__swap.astro-ucobidpy,.lv-edge--material.astro-ucobidpy .lv-edge__row.astro-ucobidpy:focus-within .lv-edge__swap.astro-ucobidpy{opacity:1}@media (prefers-reduced-motion: reduce){.lv-edge__swap.astro-ucobidpy,.lv-edge__action.astro-ucobidpy svg.astro-ucobidpy{transition:none}}
/* components/explain.narrative-media/renderers/story.astro */
.lv-story__blocks.astro-ifnxmb4c{display:grid;gap:var(--lv-space-8)}.lv-story__title.astro-ifnxmb4c{font-size:var(--lv-text-lg)}.lv-story__body.astro-ifnxmb4c p.astro-ifnxmb4c{margin:0}.lv-story__body.astro-ifnxmb4c p.astro-ifnxmb4c+p.astro-ifnxmb4c{margin-block-start:var(--lv-space-3)}.lv-story__media.astro-ifnxmb4c{position:relative}.lv-story--alternating.astro-ifnxmb4c.lv-story--media-lift .lv-story__media.astro-ifnxmb4c{box-shadow:var(--lv-lift-3);border-radius:var(--lv-radius-lg)}.lv-story--frame-tint.astro-ifnxmb4c .lv-story__media.astro-ifnxmb4c{padding:var(--lv-space-4);background:var(--lv-brand-soft);border-radius:var(--lv-radius-lg)}.lv-story--frame-tint.astro-ifnxmb4c .lv-story__media.astro-ifnxmb4c>img.astro-ifnxmb4c{border-radius:var(--lv-radius-sm)}.lv-story--frame-tint.astro-ifnxmb4c .lv-story__swap.astro-ifnxmb4c{inset:var(--lv-space-4);border-radius:var(--lv-radius-sm)}.lv-story--frame-browser.astro-ifnxmb4c .lv-story__media.astro-ifnxmb4c{padding:var(--lv-space-6) var(--lv-space-1) var(--lv-space-1);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line);border-radius:var(--lv-radius-lg)}.lv-story--frame-browser.astro-ifnxmb4c .lv-story__media.astro-ifnxmb4c::before{content:"";position:absolute;inset-block-start:calc(var(--lv-space-6) / 2);inset-inline-start:var(--lv-space-3);translate:0 -50%;inline-size:1.75rem;block-size:0.5rem;background-image:radial-gradient(circle,var(--lv-line) 0 46%,transparent 50%),radial-gradient(circle,var(--lv-line) 0 46%,transparent 50%),radial-gradient(circle,var(--lv-line) 0 46%,transparent 50%);background-repeat:no-repeat;background-size:0.5rem 0.5rem;background-position:0 center,0.625rem center,1.25rem center}.lv-story--frame-browser.astro-ifnxmb4c .lv-story__media.astro-ifnxmb4c>img.astro-ifnxmb4c{border-radius:var(--lv-radius-sm)}.lv-story--frame-browser.astro-ifnxmb4c .lv-story__swap.astro-ifnxmb4c{inset:var(--lv-space-6) var(--lv-space-1) var(--lv-space-1);border-radius:var(--lv-radius-sm)}.lv-story--alternating.astro-ifnxmb4c.lv-story--media-lift.lv-story--frame-browser .lv-story__media.astro-ifnxmb4c{box-shadow:inset 0 0 0 1px var(--lv-line),var(--lv-lift-3)}.lv-story__index.astro-ifnxmb4c{display:block;margin-block-end:var(--lv-space-2);font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-bold);color:var(--lv-text-tertiary);font-variant-numeric:tabular-nums}.lv-story__category.astro-ifnxmb4c{display:block;margin-block-end:var(--lv-space-2);font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-ink-accent)}.lv-story__facts.astro-ifnxmb4c{display:grid;gap:var(--lv-space-2);margin-block-start:var(--lv-space-4);padding-block-start:var(--lv-space-3);border-block-start:1px solid var(--lv-line)}.lv-story__fact.astro-ifnxmb4c{display:grid;grid-template-columns:minmax(6rem,max-content) 1fr;gap:var(--lv-space-3);font-size:var(--lv-text-sm)}.lv-story__fact.astro-ifnxmb4c dt.astro-ifnxmb4c{margin:0;color:var(--lv-text-tertiary)}.lv-story__fact.astro-ifnxmb4c dd.astro-ifnxmb4c{margin:0;color:var(--lv-text-primary);font-weight:var(--lv-weight-medium)}@container (min-width: 46rem){.lv-story--alternating.astro-ifnxmb4c .lv-story__block.astro-ifnxmb4c:nth-child(even)>.astro-ifnxmb4c:first-child{order:2}.lv-story--alternating.astro-ifnxmb4c.lv-story--split-75 .lv-story__block.astro-ifnxmb4c{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.lv-story--alternating.astro-ifnxmb4c.lv-story--split-75 .lv-story__block.astro-ifnxmb4c:nth-child(even){grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.lv-story--overlap.astro-ifnxmb4c .lv-story__media.astro-ifnxmb4c{margin-inline-start:calc(var(--lv-space-7) * -1)}.lv-story--layered.astro-ifnxmb4c .lv-story__media.astro-ifnxmb4c{margin-block-start:var(--lv-space-7);box-shadow:var(--lv-lift-3)}.lv-story--layered.astro-ifnxmb4c .lv-story__block.astro-ifnxmb4c:nth-child(even) .lv-story__media.astro-ifnxmb4c{margin-block-start:0;margin-block-end:var(--lv-space-7)}}.lv-story__swap.astro-ifnxmb4c{position:absolute;inset:0;opacity:0;transition:opacity var(--lv-dur-panel) var(--lv-ease)}.lv-story--material.astro-ifnxmb4c .lv-story__block.astro-ifnxmb4c:hover .lv-story__swap.astro-ifnxmb4c,.lv-story--material.astro-ifnxmb4c .lv-story__block.astro-ifnxmb4c:focus-within .lv-story__swap.astro-ifnxmb4c{opacity:1}@media (prefers-reduced-motion: reduce){.lv-story__swap.astro-ifnxmb4c{transition:none}}
/* components/explain.pinned-walkthrough/renderers/pinned.astro */
.lv-pinned__grid.astro-g3wdmnfx{display:grid;gap:var(--lv-space-7)}.lv-pinned__caption.astro-g3wdmnfx{margin-block-start:var(--lv-space-2)}.lv-pinned__point-media.astro-g3wdmnfx{margin-block-start:var(--lv-space-3);max-inline-size:18rem;aspect-ratio:4 / 3}.lv-pinned__point-link.astro-g3wdmnfx{display:inline-block;margin-block-start:var(--lv-space-3)}@container (min-width: 52rem){.lv-pinned__grid.astro-g3wdmnfx{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lv-pinned--end.astro-g3wdmnfx .lv-pinned__pin.astro-g3wdmnfx{order:2}.lv-pinned__pin.astro-g3wdmnfx{position:sticky;inset-block-start:var(--lv-space-6);align-self:start}}
/* components/explain.problem/renderers/problem.astro */
.lv-problem__list.astro-hv4bmycq{max-width:52rem}.lv-problem__item.astro-hv4bmycq{display:grid;gap:var(--lv-space-2)}.lv-problem__item.astro-hv4bmycq:has(.lv-problem__icon){grid-template-columns:var(--lv-space-6) minmax(0,1fr);column-gap:var(--lv-space-4)}.lv-problem__icon.astro-hv4bmycq{grid-row:span 2;align-self:start}.lv-problem__turn.astro-hv4bmycq{position:relative;max-width:var(--lv-measure);margin-block-start:var(--lv-space-7);padding-block-start:var(--lv-space-5);font-family:var(--lv-display-family);font-size:var(--lv-text-xl);line-height:var(--lv-leading-snug);letter-spacing:var(--lv-tracking-heading);font-weight:var(--lv-weight-medium);color:var(--lv-text-primary);text-wrap:pretty}.lv-problem__turn.astro-hv4bmycq::before{content:"";position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:100%;block-size:1px;background:linear-gradient(90deg,var(--lv-ink-accent, var(--lv-brand-strong)) 0,var(--lv-ink-accent, var(--lv-brand-strong)) 2.5rem,transparent 4rem),var(--lv-line)}
/* components/explain.product-demo/renderers/demo.astro */
.lv-demo.astro-j323odj3{border-radius:var(--lv-radius-lg);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line),var(--lv-lift-2);overflow:hidden}.lv-demo--device.astro-j323odj3{--lv-demo-device-h: min(40rem, calc(var(--lv-stage-vh, 100svh) * 0.78));border-radius:var(--lv-radius-xl);max-inline-size:calc(var(--lv-demo-device-h) * 9 / 19.5 + 2 * var(--lv-space-5));margin-inline:auto}.lv-demo--none.astro-j323odj3{background:none;box-shadow:none;border-radius:0}.lv-demo__chrome.astro-j323odj3{display:flex;align-items:center;gap:var(--lv-space-4);padding:var(--lv-space-3) var(--lv-space-4);border-block-end:1px solid var(--lv-line);background:var(--lv-surface-sunken)}.lv-demo__dots.astro-j323odj3{inline-size:42px;block-size:10px;border-radius:var(--lv-radius-pill);background:radial-gradient(circle 4px at 5px 5px,var(--lv-line-strong) 100%,transparent 0),radial-gradient(circle 4px at 21px 5px,var(--lv-line-strong) 100%,transparent 0),radial-gradient(circle 4px at 37px 5px,var(--lv-line-strong) 100%,transparent 0)}.lv-demo__url.astro-j323odj3{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-demo__bar.astro-j323odj3{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-3) var(--lv-space-4);padding:var(--lv-space-4) var(--lv-space-4) 0}.lv-demo__switcher.astro-j323odj3{display:flex;flex:1 1 18rem;flex-wrap:wrap;gap:var(--lv-space-2);min-inline-size:0;margin:0;padding:0;border:0}.lv-demo__tab.astro-j323odj3{position:relative;display:inline-flex;align-items:center;gap:var(--lv-space-2);min-block-size:44px;overflow:hidden;padding-inline:var(--lv-space-4);border-radius:var(--lv-radius-pill);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line-control);font:var(--lv-weight-medium) var(--lv-text-sm) / 1 var(--lv-font-ui);color:var(--lv-text-secondary);cursor:pointer}.lv-demo__tab.astro-j323odj3:has(.lv-demo__radio:checked){background:var(--lv-brand-soft);box-shadow:inset 0 0 0 1px var(--lv-brand);color:var(--lv-brand-strong)}.lv-demo__tab.astro-j323odj3:has(.lv-demo__radio:focus-visible){outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-demo__tab-num.astro-j323odj3{font:var(--lv-weight-bold) var(--lv-text-2xs) / 1 var(--lv-font-mono)}.lv-demo__tab-progress.astro-j323odj3{position:absolute;inset-inline:var(--lv-space-3);inset-block-end:5px;block-size:2px;border-radius:var(--lv-radius-pill);background:var(--lv-demo-progress, var(--lv-brand));transform:scaleX(0);transform-origin:left center;pointer-events:none}.lv-demo.astro-j323odj3[data-player] .lv-demo__tab.astro-j323odj3:has(.lv-demo__radio:checked) .lv-demo__tab-progress.astro-j323odj3{animation:lv-demo-progress var(--lv-demo-dur, 5s) linear forwards;animation-play-state:paused}.lv-demo.astro-j323odj3[data-playing] .lv-demo__tab.astro-j323odj3:has(.lv-demo__radio:checked) .lv-demo__tab-progress.astro-j323odj3{animation-play-state:running}@keyframes lv-demo-progress{to{transform:scaleX(1)}}.lv-demo__controls.astro-j323odj3{display:flex;align-items:center;gap:var(--lv-space-1)}.lv-demo__controls.astro-j323odj3[hidden]{display:none}.lv-demo__ctl.astro-j323odj3{display:inline-grid;place-items:center;inline-size:44px;block-size:44px;padding:0;border:0;border-radius:var(--lv-radius-pill);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line-control);color:var(--lv-text-primary);cursor:pointer}.lv-demo__ctl.astro-j323odj3:hover{box-shadow:inset 0 0 0 1px var(--lv-line-strong)}.lv-demo__ctl.astro-j323odj3:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-demo__ctl.astro-j323odj3[hidden]{display:none}.lv-demo__ctl--toggle.astro-j323odj3{background:var(--lv-brand-soft);box-shadow:inset 0 0 0 1px var(--lv-brand);color:var(--lv-brand-strong)}.lv-demo__icon.astro-j323odj3{display:block}.lv-demo__icon--pause.astro-j323odj3{display:none}.lv-demo.astro-j323odj3[data-wants] .lv-demo__icon--play.astro-j323odj3{display:none}.lv-demo.astro-j323odj3[data-wants] .lv-demo__icon--pause.astro-j323odj3{display:block}.lv-demo__count.astro-j323odj3{min-inline-size:3.5em;padding-inline:var(--lv-space-2);font-size:var(--lv-text-xs);color:var(--lv-text-secondary)}.lv-demo__scenes.astro-j323odj3{padding:var(--lv-space-5)}.lv-demo__scene.astro-j323odj3{display:none;margin:0}.lv-demo__stage.astro-j323odj3{position:relative;display:grid;place-items:center;aspect-ratio:16 / 10;overflow:hidden;border-radius:var(--lv-radius-md);background:var(--lv-surface-sunken);container-type:size}.lv-demo--none.astro-j323odj3 .lv-demo__stage.astro-j323odj3{aspect-ratio:16 / 9}.lv-demo--device.astro-j323odj3 .lv-demo__stage.astro-j323odj3{aspect-ratio:9 / 19.5;inline-size:min(100%,calc(var(--lv-demo-device-h) * 9 / 19.5));margin-inline:auto}.lv-demo__shot.astro-j323odj3{position:relative;overflow:hidden;inline-size:min(100cqi,calc(100cqb * var(--lv-demo-r, 1.6)));aspect-ratio:var(--lv-demo-r, 1.6)}.lv-demo__shot--fill.astro-j323odj3{inline-size:100%;block-size:100%;aspect-ratio:auto}.lv-demo__zoom.astro-j323odj3{position:absolute;inset:0;transform-origin:var(--x, 50%) var(--y, 50%)}.lv-demo__zoom.astro-j323odj3 img.astro-j323odj3{display:block;inline-size:100%;block-size:100%;object-fit:contain}.lv-demo__mark.astro-j323odj3{position:absolute;inset-inline-start:var(--x, 50%);inset-block-start:var(--y, 50%);inline-size:0;block-size:0;transform-origin:0 0}.lv-demo__spot.astro-j323odj3{position:absolute;inline-size:28px;block-size:28px;margin:-14px 0 0 -14px;border:2px solid var(--lv-demo-spot, var(--lv-brand));border-radius:var(--lv-radius-pill);box-shadow:0 0 0 6px color-mix(in srgb,var(--lv-demo-spot, var(--lv-brand)) 25%,transparent)}.lv-demo__callout.astro-j323odj3{position:absolute;inset-block-start:0;inset-inline-start:24px;inline-size:max-content;max-inline-size:min(16rem,44cqi);padding:var(--lv-space-2) var(--lv-space-3);border-radius:var(--lv-radius-md);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line),var(--lv-lift-2);color:var(--lv-text-primary);font:var(--lv-weight-medium) var(--lv-text-sm) / 1.35 var(--lv-font-ui);text-wrap:balance;translate:0 -50%}.lv-demo__callout.astro-j323odj3[data-side=start]{inset-inline-start:auto;inset-inline-end:24px}.lv-demo__callout.astro-j323odj3[data-block=below]{translate:0 -8px}.lv-demo__callout.astro-j323odj3[data-block=above]{translate:0 calc(-100% + 8px)}.lv-demo.astro-j323odj3:has(.lv-demo__tab:nth-of-type(1) .lv-demo__radio:checked) .lv-demo__scene.astro-j323odj3:nth-of-type(1),.lv-demo.astro-j323odj3:has(.lv-demo__tab:nth-of-type(2) .lv-demo__radio:checked) .lv-demo__scene.astro-j323odj3:nth-of-type(2),.lv-demo.astro-j323odj3:has(.lv-demo__tab:nth-of-type(3) .lv-demo__radio:checked) .lv-demo__scene.astro-j323odj3:nth-of-type(3),.lv-demo.astro-j323odj3:has(.lv-demo__tab:nth-of-type(4) .lv-demo__radio:checked) .lv-demo__scene.astro-j323odj3:nth-of-type(4),.lv-demo.astro-j323odj3:has(.lv-demo__tab:nth-of-type(5) .lv-demo__radio:checked) .lv-demo__scene.astro-j323odj3:nth-of-type(5),.lv-demo.astro-j323odj3:has(.lv-demo__tab:nth-of-type(6) .lv-demo__radio:checked) .lv-demo__scene.astro-j323odj3:nth-of-type(6),.lv-demo.astro-j323odj3:has(.lv-demo__tab:nth-of-type(7) .lv-demo__radio:checked) .lv-demo__scene.astro-j323odj3:nth-of-type(7),.lv-demo.astro-j323odj3:has(.lv-demo__tab:nth-of-type(8) .lv-demo__radio:checked) .lv-demo__scene.astro-j323odj3:nth-of-type(8){display:block}.lv-demo__cap.astro-j323odj3{display:grid;gap:var(--lv-space-1);margin-block-start:var(--lv-space-3);font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-demo__illustration.astro-j323odj3{display:flex;flex-direction:column;justify-content:center;gap:var(--lv-space-3);align-self:stretch;justify-self:stretch;box-sizing:border-box;inline-size:100%;block-size:100%;padding:var(--lv-space-5);background:var(--lv-surface)}.lv-demo__illustration--build.astro-j323odj3 .lv-demo__i-hero.astro-j323odj3{display:block;block-size:40%;border-radius:var(--lv-radius-md);background:var(--lv-brand-soft)}.lv-demo__illustration--build.astro-j323odj3 .lv-demo__i-line.astro-j323odj3{display:block;block-size:var(--lv-space-3);border-radius:var(--lv-radius-pill);background:var(--lv-surface-sunken);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-demo__illustration--build.astro-j323odj3 .lv-demo__i-line--short.astro-j323odj3{inline-size:60%}.lv-demo__illustration--build.astro-j323odj3 .lv-demo__i-cta.astro-j323odj3{display:block;inline-size:40%;block-size:var(--lv-space-6);margin-block-start:auto;border-radius:var(--lv-radius-pill);background:var(--lv-brand)}.lv-demo__i-top.astro-j323odj3{display:flex;align-items:center;justify-content:space-between}.lv-demo__i-live.astro-j323odj3{display:inline-flex;align-items:center;gap:var(--lv-space-2);font:var(--lv-weight-semibold) var(--lv-text-xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-ok-text)}.lv-demo__i-dot.astro-j323odj3{inline-size:8px;block-size:8px;border-radius:var(--lv-radius-pill);background:currentColor}.lv-demo__i-num.astro-j323odj3{font-size:var(--lv-text-xl);font-weight:var(--lv-weight-bold);color:var(--lv-text-primary)}.lv-demo__i-bars.astro-j323odj3{display:flex;align-items:flex-end;gap:var(--lv-space-2);flex:1}.lv-demo__i-bars.astro-j323odj3 span.astro-j323odj3{flex:1;block-size:100%;border-radius:var(--lv-radius-sm) var(--lv-radius-sm) 0 0;background:color-mix(in srgb,var(--lv-brand) 70%,transparent);transform:scaleY(var(--h, 1));transform-origin:bottom}.lv-demo__i-bubble.astro-j323odj3{max-inline-size:78%;padding:var(--lv-space-2) var(--lv-space-3);border-radius:var(--lv-radius-lg);font-size:var(--lv-text-sm)}.lv-demo__i-bubble--bot.astro-j323odj3{align-self:flex-start;background:var(--lv-surface-sunken);box-shadow:inset 0 0 0 1px var(--lv-line);color:var(--lv-text-primary)}.lv-demo__i-bubble--user.astro-j323odj3{align-self:flex-end;background:var(--lv-ramp);color:var(--lv-text-on-brand)}@media (prefers-reduced-motion: reduce){.lv-demo__tab-progress.astro-j323odj3{opacity:0}}@media (prefers-reduced-motion: no-preference){.lv-demo.astro-j323odj3[data-player] .lv-demo__scene.astro-j323odj3{animation:lv-demo-fade 200ms var(--lv-ease) both}@keyframes lv-demo-fade{from{opacity:0}to{opacity:1}}.lv-demo__scene.astro-j323odj3[style*=--lv-demo-zoom] .lv-demo__zoom.astro-j323odj3{animation:lv-demo-zoom calc(var(--lv-demo-dur, 5s) * 0.6) var(--lv-ease) 0.4s both}.lv-demo__scene.astro-j323odj3[style*=--lv-demo-zoom] .lv-demo__mark.astro-j323odj3{animation:lv-demo-unzoom calc(var(--lv-demo-dur, 5s) * 0.6) var(--lv-ease) 0.4s both}@keyframes lv-demo-zoom{from{transform:scale(1)}to{transform:scale(var(--lv-demo-zoom, 1))}}@keyframes lv-demo-unzoom{from{scale:1}to{scale:calc(1 / var(--lv-demo-zoom, 1))}}.lv-demo__spot.astro-j323odj3{animation:lv-demo-ring 2.4s var(--lv-ease) 0.6s infinite}@keyframes lv-demo-ring{0%,100%{box-shadow:0 0 0 6px color-mix(in srgb,var(--lv-demo-spot, var(--lv-brand)) 25%,transparent)}50%{box-shadow:0 0 0 12px color-mix(in srgb,var(--lv-demo-spot, var(--lv-brand)) 0%,transparent)}}.lv-demo__i-dot.astro-j323odj3{animation:lv-demo-pulse 1.8s var(--lv-ease) infinite}@keyframes lv-demo-pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--lv-ok-text) 45%,transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--lv-ok-text) 0%,transparent)}}.lv-demo__i-bars.astro-j323odj3 span.astro-j323odj3{animation:lv-demo-bar-grow 6s var(--lv-ease) infinite}.lv-demo__i-bars.astro-j323odj3 span.astro-j323odj3:nth-child(1){animation-delay:0s}.lv-demo__i-bars.astro-j323odj3 span.astro-j323odj3:nth-child(2){animation-delay:.15s}.lv-demo__i-bars.astro-j323odj3 span.astro-j323odj3:nth-child(3){animation-delay:.3s}.lv-demo__i-bars.astro-j323odj3 span.astro-j323odj3:nth-child(4){animation-delay:.45s}.lv-demo__i-bars.astro-j323odj3 span.astro-j323odj3:nth-child(5){animation-delay:.6s}.lv-demo__i-bars.astro-j323odj3 span.astro-j323odj3:nth-child(6){animation-delay:.75s}@keyframes lv-demo-bar-grow{0%,6%{transform:scaleY(0)}30%,85%{transform:scaleY(var(--h, 1))}97%,100%{transform:scaleY(0)}}.lv-demo__i-hero.astro-j323odj3,.lv-demo__i-line.astro-j323odj3,.lv-demo__i-cta.astro-j323odj3{animation:lv-demo-stage-in 6s var(--lv-ease) infinite}.lv-demo__i-hero.astro-j323odj3{animation-delay:0s}.lv-demo__i-line--1.astro-j323odj3{animation-delay:.3s}.lv-demo__i-line--2.astro-j323odj3{animation-delay:.45s}.lv-demo__i-cta.astro-j323odj3{animation-delay:.7s}@keyframes lv-demo-stage-in{0%,4%{opacity:0;transform:translateY(6px)}14%,88%{opacity:1;transform:translateY(0)}97%,100%{opacity:0;transform:translateY(-4px)}}.lv-demo__i-bubble.astro-j323odj3{animation:lv-demo-stage-in 6s var(--lv-ease) infinite}.lv-demo__i-bubble--1.astro-j323odj3{animation-delay:0s}.lv-demo__i-bubble--2.astro-j323odj3{animation-delay:.35s}.lv-demo__i-bubble--3.astro-j323odj3{animation-delay:.7s}}
/* components/explain.progressive-disclosure/renderers/panels.astro */
.lv-disc__panels.astro-iu43v7vy{max-width:56rem}.lv-disc__panel.astro-iu43v7vy{border-block-end:1px solid var(--lv-line)}.lv-disc__panel.astro-iu43v7vy:first-child{border-block-start:1px solid var(--lv-line)}.lv-disc__summary.astro-iu43v7vy{display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-4);min-block-size:52px;padding-block:var(--lv-space-3);cursor:pointer;font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary);list-style:none}.lv-disc__summary.astro-iu43v7vy::-webkit-details-marker{display:none}.lv-disc__summary.astro-iu43v7vy::after{content:"";flex:none;inline-size:10px;block-size:10px;border-inline-end:2px solid var(--lv-icon-quiet);border-block-end:2px solid var(--lv-icon-quiet);transform:rotate(45deg);transition:transform var(--lv-dur-state) var(--lv-ease)}.lv-disc__panel.astro-iu43v7vy[open] .lv-disc__summary.astro-iu43v7vy::after{transform:rotate(-135deg)}.lv-disc__body.astro-iu43v7vy{padding-block:0 var(--lv-space-5)}.lv-disc__media.astro-iu43v7vy{margin-block-end:var(--lv-space-4);max-inline-size:32rem}@media (prefers-reduced-motion: reduce){.lv-disc__summary.astro-iu43v7vy::after{transition:none}}.lv-disc__expand.astro-iu43v7vy{display:flex;flex-direction:column;gap:var(--lv-space-3);block-size:clamp(28rem,62vh,36rem)}@container (min-width: 56rem){.lv-disc__expand.astro-iu43v7vy{flex-direction:row}}.lv-disc__xcard.astro-iu43v7vy{position:relative;display:flex;flex-direction:column;flex:1 1 0;min-block-size:0;min-inline-size:0;overflow:hidden;border-radius:var(--lv-radius-lg);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-disc__xcard.astro-iu43v7vy:has(input:checked){flex-grow:5}.lv-disc__xcard.astro-iu43v7vy:has(input:focus-visible){outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-focus-width) * -1)}@media (prefers-reduced-motion: no-preference){.lv-disc__xcard.astro-iu43v7vy{transition:flex-grow var(--lv-dur-panel) var(--lv-ease)}}.lv-disc__xhit.astro-iu43v7vy{display:flex;flex-direction:column;flex:1 1 auto;min-block-size:0;cursor:pointer}.lv-disc__xmedia.astro-iu43v7vy{display:block;flex:1 1 auto;min-block-size:0;min-inline-size:0;background:var(--lv-surface-sunken)}.lv-disc__xmedia.astro-iu43v7vy img.astro-iu43v7vy{display:block;inline-size:100%;block-size:100%;object-fit:cover}.lv-disc__xtag.astro-iu43v7vy{display:block;flex:none;min-block-size:44px;padding:var(--lv-space-3) var(--lv-space-4);border-block-start:1px solid var(--lv-line);font:var(--lv-weight-semibold) var(--lv-text-xs) / 1.4 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-primary)}.lv-disc__xbody.astro-iu43v7vy{display:none;flex:none;padding:0 var(--lv-space-4) var(--lv-space-4);max-inline-size:none}.lv-disc__xcard.astro-iu43v7vy:has(input:checked) .lv-disc__xbody.astro-iu43v7vy{display:block}@container (min-width: 56rem){.lv-disc__xcard.astro-iu43v7vy:not(:has(input:checked)) .lv-disc__xtag.astro-iu43v7vy{writing-mode:vertical-rl;border-block-start:0;border-inline-start:1px solid var(--lv-line);align-items:flex-end;padding-block:var(--lv-space-4)}.lv-disc__xcard.astro-iu43v7vy:not(:has(input:checked)) .lv-disc__xhit.astro-iu43v7vy{flex-direction:row}}
/* components/explain.prose/renderers/prose-centred.astro */
.lv-prose-c__head.astro-ibgusg5l{margin-block-end:var(--lv-space-5);text-align:center}.lv-prose-c__head.astro-ibgusg5l .lv-sec__eyebrow.astro-ibgusg5l{margin-inline:auto}.lv-prose-c__title.astro-ibgusg5l{font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-heading, var(--lv-weight-regular));line-height:var(--lv-leading-tight);letter-spacing:var(--lv-display-tracking, var(--lv-tracking-heading))}.lv-prose-c__body.astro-ibgusg5l{margin-inline:auto;text-align:start}.lv-prose-c__body--narrow.astro-ibgusg5l{max-width:34rem}.lv-prose-c__body--dropcap.astro-ibgusg5l>p:first-of-type::first-letter{float:inline-start;margin-inline-end:var(--lv-space-2);font-size:3.2em;line-height:0.82;font-weight:var(--lv-weight-heading);color:var(--lv-ink-accent, var(--lv-brand-strong))}@container (max-width: 26rem){.lv-prose-c__body--dropcap.astro-ibgusg5l>p:first-of-type::first-letter{float:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;margin:0}}
/* components/explain.prose/renderers/prose.astro */
.lv-proseblock--narrow.astro-37bccrgj{max-width:34rem}.lv-proseblock--dropcap.astro-37bccrgj>p:first-of-type::first-letter{float:inline-start;margin-inline-end:var(--lv-space-2);font-size:3.2em;line-height:0.82;font-weight:var(--lv-weight-heading);color:var(--lv-ink-accent, var(--lv-brand-strong))}@container (max-width: 26rem){.lv-proseblock--dropcap.astro-37bccrgj>p:first-of-type::first-letter{float:none;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit;margin:0}}
/* components/explain.pull-quote/renderers/quote.astro */
.lv-quote.astro-kdpnkjon{padding-block:var(--lv-space-5);border-block:1px solid var(--lv-line)}.lv-quote__text.astro-kdpnkjon{border:0;padding:0}.lv-quote__by.astro-kdpnkjon cite.astro-kdpnkjon{font-style:normal}
/* components/explain.roadmap/renderers/board.astro */
.lv-roadmap.astro-4igdh3a7{display:grid;gap:var(--lv-space-6)}.lv-roadmap__label.astro-4igdh3a7{padding-block-end:var(--lv-space-2);border-block-end:2px solid var(--lv-line)}.lv-roadmap__col.astro-4igdh3a7.is-shipped .lv-roadmap__label.astro-4igdh3a7{border-block-end-color:var(--lv-brand)}.lv-roadmap__col.astro-4igdh3a7.is-in-progress .lv-roadmap__label.astro-4igdh3a7{border-block-end-color:var(--lv-brand-soft)}.lv-roadmap__items.astro-4igdh3a7{display:grid;gap:var(--lv-space-3);margin:var(--lv-space-4) 0 0;padding:0;list-style:none;align-content:start}@container (min-width: 46rem){.lv-roadmap.astro-4igdh3a7{grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr))}}
/* components/explain.scroll-pinned-showcase/renderers/showcase.astro */
.lv-showcase__grid.astro-2m4wc6yr{display:grid;gap:var(--lv-space-6)}.lv-showcase__steps.astro-2m4wc6yr{display:grid;gap:var(--lv-space-9);margin:0;padding:0;list-style:none}.lv-showcase__step.astro-2m4wc6yr{display:grid;gap:var(--lv-space-4);scroll-margin-block:var(--lv-space-8)}.lv-showcase__frame.astro-2m4wc6yr{display:none}.lv-showcase__rail.astro-2m4wc6yr{display:none}.lv-showcase__thumb.astro-2m4wc6yr{display:block;inline-size:3.5rem;block-size:3.5rem;border-radius:var(--lv-radius-sm);overflow:hidden;box-shadow:inset 0 0 0 1px var(--lv-line);opacity:0.55;transition:opacity var(--lv-dur-state) var(--lv-ease)}.lv-showcase__thumb.astro-2m4wc6yr img.astro-2m4wc6yr{inline-size:100%;block-size:100%;object-fit:cover}.lv-showcase__thumb.astro-2m4wc6yr[aria-current=true]{opacity:1;box-shadow:inset 0 0 0 2px var(--lv-brand)}@container (min-width: 56rem){.lv-showcase__grid.astro-2m4wc6yr{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;column-gap:var(--lv-space-7);align-items:start}.lv-showcase__steps.astro-2m4wc6yr{grid-column:1;grid-row:1}.lv-showcase__frame.astro-2m4wc6yr{display:block;grid-column:2;grid-row:1;position:sticky;inset-block-start:var(--lv-space-6);aspect-ratio:16 / 9;border-radius:var(--lv-radius-md);background:var(--lv-surface-sunken);overflow:hidden}.lv-showcase--rail.astro-2m4wc6yr .lv-showcase__rail.astro-2m4wc6yr{display:block;grid-column:3;grid-row:1;position:sticky;inset-block-start:var(--lv-space-6)}.lv-showcase__rail.astro-2m4wc6yr ol.astro-2m4wc6yr{display:grid;gap:var(--lv-space-2);margin:0;padding:0;list-style:none}}@media (prefers-reduced-motion: reduce){.lv-showcase__thumb.astro-2m4wc6yr{transition:none}}
/* components/explain.sequence/renderers/steps.astro */
.lv-steps__tag.astro-u7fvoeey{display:inline-block;margin-block-end:var(--lv-space-2);padding:2px var(--lv-space-2);border-radius:var(--lv-radius-pill);background:var(--lv-brand-soft);color:var(--lv-brand);font:var(--lv-weight-semibold) var(--lv-text-2xs) / 1.6 var(--lv-font-ui);text-transform:uppercase;letter-spacing:var(--lv-tracking-eyebrow)}.lv-steps__stamp.astro-u7fvoeey{margin:0 0 var(--lv-space-2);font-size:var(--lv-text-xs);font-weight:var(--lv-weight-bold);letter-spacing:var(--lv-tracking-label);text-transform:uppercase;color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-steps__media.astro-u7fvoeey{margin-block-end:var(--lv-space-3)}
/* components/explain.spec-table/renderers/specs.astro */
.lv-specs.astro-hwfd6nre th.astro-hwfd6nre[scope=col]:last-child,.lv-specs.astro-hwfd6nre td.astro-hwfd6nre:last-child{text-align:end}.lv-specs.astro-hwfd6nre.lv-table--matrix th.astro-hwfd6nre:last-child,.lv-specs.astro-hwfd6nre.lv-table--matrix td.astro-hwfd6nre:last-child{padding:var(--lv-table-density-regular)}.lv-specs.astro-hwfd6nre.lv-table--matrix[data-density=compact] th.astro-hwfd6nre:last-child,.lv-specs.astro-hwfd6nre.lv-table--matrix[data-density=compact] td.astro-hwfd6nre:last-child{padding:var(--lv-table-density-compact)}.lv-specs.astro-hwfd6nre.lv-table--matrix[data-density=airy] th.astro-hwfd6nre:last-child,.lv-specs.astro-hwfd6nre.lv-table--matrix[data-density=airy] td.astro-hwfd6nre:last-child{padding:var(--lv-table-density-airy)}.lv-specs.astro-hwfd6nre.lv-table--matrix th.astro-hwfd6nre:first-child,.lv-specs.astro-hwfd6nre.lv-table--matrix td.astro-hwfd6nre:first-child{padding:var(--lv-table-density-regular)}.lv-specs.astro-hwfd6nre.lv-table--matrix[data-density=compact] th.astro-hwfd6nre:first-child,.lv-specs.astro-hwfd6nre.lv-table--matrix[data-density=compact] td.astro-hwfd6nre:first-child{padding:var(--lv-table-density-compact)}.lv-specs.astro-hwfd6nre.lv-table--matrix[data-density=airy] th.astro-hwfd6nre:first-child,.lv-specs.astro-hwfd6nre.lv-table--matrix[data-density=airy] td.astro-hwfd6nre:first-child{padding:var(--lv-table-density-airy)}.lv-specs__value.astro-hwfd6nre{display:flex;align-items:baseline;justify-content:end;gap:var(--lv-space-2);color:var(--lv-text-primary)}.lv-specs__value.astro-hwfd6nre .lv-mark.astro-hwfd6nre{flex:none}.lv-specs__unit.astro-hwfd6nre{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-specs__note.astro-hwfd6nre{padding-block:var(--lv-space-3);border-block-start:var(--lv-table-rule-block);font-size:var(--lv-text-xs);color:var(--lv-text-tertiary);text-align:start}@container (max-width: 43.75rem){.lv-table-scroll.astro-hwfd6nre:has(> .lv-specs){overflow:visible;border:0;border-radius:0;background:none}.lv-specs.astro-hwfd6nre thead.astro-hwfd6nre{display:none}.lv-specs.astro-hwfd6nre,.lv-specs.astro-hwfd6nre tbody.astro-hwfd6nre,.lv-specs.astro-hwfd6nre tr.astro-hwfd6nre,.lv-specs.astro-hwfd6nre th.astro-hwfd6nre,.lv-specs.astro-hwfd6nre td.astro-hwfd6nre{display:block}.lv-specs.astro-hwfd6nre tbody.astro-hwfd6nre{margin-block-end:var(--lv-space-4)}.lv-specs.astro-hwfd6nre tr.astro-hwfd6nre:not(.lv-table__grouprow){margin-block-start:var(--lv-space-3);padding:var(--lv-space-3) var(--lv-space-4);border:1px solid var(--lv-line);border-radius:var(--lv-radius-md);background:var(--lv-surface)}.lv-specs.astro-hwfd6nre:not([data-zebra="off"]) tbody.astro-hwfd6nre tr.astro-hwfd6nre:nth-child(even):not(.lv-table__grouprow) td.astro-hwfd6nre,.lv-specs.astro-hwfd6nre:not([data-zebra="off"]) tbody.astro-hwfd6nre tr.astro-hwfd6nre:nth-child(even):not(.lv-table__grouprow) th.astro-hwfd6nre{background:none}.lv-specs.astro-hwfd6nre th.astro-hwfd6nre[scope=row]{padding-block-end:var(--lv-space-1);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary);position:static}.lv-specs__value.astro-hwfd6nre{justify-content:flex-start;margin-inline-start:0}.lv-specs__note.astro-hwfd6nre{border-block-start:0;padding-block-start:0}}.lv-specs__cards.astro-hwfd6nre{display:grid;gap:var(--lv-space-5);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));align-items:start}.lv-specs__card.astro-hwfd6nre{padding:var(--lv-space-5);border-radius:var(--lv-radius-lg)}.lv-specs__list.astro-hwfd6nre{display:grid;gap:var(--lv-space-3);margin-block-start:var(--lv-space-3)}.lv-specs__row.astro-hwfd6nre{display:flex;align-items:baseline;justify-content:space-between;gap:var(--lv-space-3);padding-block-start:var(--lv-space-3);border-block-start:1px solid var(--lv-line)}.lv-specs__row.astro-hwfd6nre:first-child{padding-block-start:0;border-block-start:0}.lv-specs__row.astro-hwfd6nre dt.astro-hwfd6nre{color:var(--lv-text-secondary);font-size:var(--lv-text-sm)}.lv-specs__valuewrap.astro-hwfd6nre{display:flex;align-items:baseline;gap:var(--lv-space-2);color:var(--lv-text-primary);text-align:end}.lv-specs__valuewrap.astro-hwfd6nre.lv-mark{align-items:center}.lv-specs__note--cards.astro-hwfd6nre{margin-block-start:var(--lv-space-4);font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}
/* components/explain.video/renderers/embed.astro */
.lv-video__frame.astro-fmt2ac2w{position:relative;display:grid;place-items:center}.lv-video__plate.astro-fmt2ac2w{inline-size:100%;aspect-ratio:auto;block-size:100%;border-radius:0;box-shadow:none}.lv-video__play.astro-fmt2ac2w{position:absolute;inset-block-end:var(--lv-space-5);inset-inline-start:var(--lv-space-5)}.lv-video__summary.astro-fmt2ac2w{max-width:var(--lv-measure);margin-block-start:var(--lv-space-4);color:var(--lv-text-secondary)}.lv-video__transcript.astro-fmt2ac2w{margin-block-start:var(--lv-space-3)}
/* components/locate.map/renderers/canvas.community.astro */
.lv-map__plate.astro-sidqyjtj{display:grid;place-content:center;justify-items:center;gap:var(--lv-space-4);min-block-size:var(--lv-map-height);padding:var(--lv-space-6);border:1px solid var(--lv-line);border-radius:var(--lv-radius-lg);background:repeating-linear-gradient(90deg,transparent 0 78px,color-mix(in oklab,var(--lv-text-primary) 4.5%,transparent) 78px 80px),var(--lv-surface-sunken);color:var(--lv-text-tertiary);text-align:center}.lv-map__plate.astro-sidqyjtj .lv-map__notice--plate.astro-sidqyjtj{border:0;padding:0;max-width:34ch;background:none}
/* components/locate.practical-info/renderers/practical.astro */
.lv-practical.astro-k5u7sa4a{display:grid;gap:var(--lv-space-7);align-items:start}.lv-practical__hours.astro-k5u7sa4a .lv-kv.astro-k5u7sa4a{margin-block-start:var(--lv-space-3)}.lv-practical__fact.astro-k5u7sa4a{display:grid;gap:2px}.lv-practical__fact.astro-k5u7sa4a:has(.lv-practical__icon){grid-template-columns:var(--lv-space-5) minmax(0,1fr);column-gap:var(--lv-space-3)}.lv-practical__icon.astro-k5u7sa4a{grid-row:span 3;align-self:start}.lv-practical__value.astro-k5u7sa4a{margin:0;color:var(--lv-text-primary)}.lv-practical__value.astro-k5u7sa4a a.astro-k5u7sa4a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in oklab,currentColor 45%,transparent);transition:text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-practical__value.astro-k5u7sa4a a.astro-k5u7sa4a:hover{text-decoration-thickness:2px;text-decoration-color:currentColor}@container (min-width: 46rem){.lv-practical.astro-k5u7sa4a{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.lv-practical--dark.astro-k5u7sa4a{padding:var(--lv-space-6);border-radius:var(--lv-radius-lg);background:var(--lv-panel-dark, var(--lv-brand-strong));box-shadow:var(--lv-lift-3);color:var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-text-primary: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-text-secondary: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-text-tertiary: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-ink-accent: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-line: color-mix(in oklab, var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 32%, transparent);--lv-line-strong: color-mix(in oklab, var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 52%, transparent)}.lv-practical--dark.astro-k5u7sa4a{grid-template-columns:minmax(0,1fr)}.lv-practical--dark.astro-k5u7sa4a .lv-icon--plain.astro-k5u7sa4a{color:var(--lv-panel-dark-ink, var(--lv-text-on-brand))}.lv-practical__rows.astro-k5u7sa4a{margin:0}.lv-practical__row.astro-k5u7sa4a{display:flex;align-items:baseline;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-3);border-block-start:1px solid var(--lv-line)}.lv-practical__row.astro-k5u7sa4a dt.astro-k5u7sa4a{display:inline-flex;align-items:center;gap:var(--lv-space-2);margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-practical__row.astro-k5u7sa4a dd.astro-k5u7sa4a{display:flex;flex-direction:column;align-items:flex-end;margin:0;text-align:end;font-weight:var(--lv-weight-medium);color:var(--lv-text-primary)}.lv-practical__note.astro-k5u7sa4a{margin-block-start:2px;font-size:var(--lv-text-xs);font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-practical__hours-note.astro-k5u7sa4a{margin:var(--lv-space-3) 0 0;font-size:var(--lv-text-xs);line-height:var(--lv-leading-normal);color:var(--lv-text-tertiary)}.lv-practical__foot.astro-k5u7sa4a{margin:0;grid-column:1 / -1}.lv-practical--dark.astro-k5u7sa4a .lv-practical__row.astro-k5u7sa4a dd.astro-k5u7sa4a{font-family:var(--lv-font-mono);font-size:var(--lv-text-sm);font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums;letter-spacing:var(--lv-tracking-num)}.lv-practical--dark.astro-k5u7sa4a .lv-practical__row.astro-k5u7sa4a .lv-practical__note.astro-k5u7sa4a,.lv-practical--dark.astro-k5u7sa4a .lv-practical__row.astro-k5u7sa4a .lv-quiet.astro-k5u7sa4a{font-family:var(--lv-font-ui);font-feature-settings:normal;font-variant-numeric:normal;letter-spacing:normal}.lv-practical--dark.astro-k5u7sa4a .lv-practical__row.astro-k5u7sa4a dd.astro-k5u7sa4a a.astro-k5u7sa4a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in oklab,var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 40%,transparent);transition:text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-practical--dark.astro-k5u7sa4a .lv-practical__row.astro-k5u7sa4a dd.astro-k5u7sa4a a.astro-k5u7sa4a:hover{text-decoration-thickness:2px;text-decoration-color:var(--lv-panel-dark-ink, var(--lv-text-on-brand))}.lv-practical--dark.astro-k5u7sa4a .lv-practical__row.astro-k5u7sa4a dd.astro-k5u7sa4a a.astro-k5u7sa4a:focus-visible{outline:var(--lv-focus-width) solid var(--lv-panel-dark-ink, var(--lv-text-on-brand));outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}.lv-practical--dark.astro-k5u7sa4a .lv-practical__cta.astro-k5u7sa4a{inline-size:100%;margin-block-start:var(--lv-space-4);background:var(--lv-panel-dark-ink, var(--lv-text-on-brand));color:var(--lv-panel-dark, var(--lv-brand-strong));box-shadow:none}.lv-practical--dark.astro-k5u7sa4a .lv-practical__cta.astro-k5u7sa4a:hover{background:color-mix(in oklab,var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 92%,var(--lv-panel-dark, var(--lv-brand-strong)));color:var(--lv-panel-dark, var(--lv-brand-strong))}.lv-practical--dark.astro-k5u7sa4a .lv-sec__eyebrow.astro-k5u7sa4a{margin-block-end:var(--lv-space-2)}@media (prefers-reduced-motion: reduce){.lv-practical__value.astro-k5u7sa4a a.astro-k5u7sa4a,.lv-practical--dark.astro-k5u7sa4a .lv-practical__row.astro-k5u7sa4a dd.astro-k5u7sa4a a.astro-k5u7sa4a{transition:none}}
/* components/open.atmosphere/renderers/scene-card.astro */
.lv-scard.astro-itmeadmq{position:relative;isolation:isolate;display:grid;align-content:start;min-block-size:max(320px,var(--lv-scard-h, calc(var(--lv-stage-vh, 100svh) * 0.64)));padding:var(--lv-space-9) var(--lv-gutter);overflow:hidden}.lv-scard--h-compact.astro-itmeadmq{--lv-scard-h: calc(var(--lv-stage-vh, 100svh) * 0.48);padding-block:var(--lv-space-7)}.lv-scard--h-medium.astro-itmeadmq{--lv-scard-h: calc(var(--lv-stage-vh, 100svh) * 0.64)}.lv-scard--h-full.astro-itmeadmq{--lv-scard-h: calc(var(--lv-stage-vh, 100svh) - var(--lv-nav-height, 0px))}.lv-scard__stage.astro-itmeadmq{position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 90% at 12% 0%,var(--lv-brand-strong) 0%,transparent 66%),var(--lv-ramp)}.lv-scard--pictured.astro-itmeadmq .lv-scard__stage.astro-itmeadmq{background:rgb(var(--lv-glass-under))}.lv-scard__media.astro-itmeadmq{position:absolute;inset:0}.lv-scard__media.astro-itmeadmq img.astro-itmeadmq{inline-size:100%;block-size:100%;object-fit:cover}.lv-scard__media.astro-itmeadmq[data-lv-state-layer]{opacity:0}@media (prefers-reduced-motion: no-preference){.lv-scard__media.astro-itmeadmq[data-lv-state-layer]{animation:lv-scard-drift 28s var(--lv-ease) infinite}@keyframes lv-scard-drift{0%,26%{opacity:0}42%,68%{opacity:1}84%,100%{opacity:0}}}.lv-scard__inner.astro-itmeadmq{inline-size:100%}.lv-scard__card.astro-itmeadmq{--lv-text-primary: var(--lv-brand-strong);--lv-text-secondary: var(--lv-brand-strong);--lv-focus-ring: var(--lv-brand-strong);display:grid;justify-items:start;gap:var(--lv-space-4);inline-size:min(100%,27rem);padding:var(--lv-space-7);border-radius:var(--lv-radius-sm);background:var(--lv-text-on-brand);color:var(--lv-text-primary)}.lv-scard__title.astro-itmeadmq{margin:0;font-size:var(--lv-text-xl);font-weight:var(--lv-weight-semibold);line-height:var(--lv-leading-snug);letter-spacing:var(--lv-display-tracking, 0);text-transform:none;color:var(--lv-text-primary)}.lv-scard__body.astro-itmeadmq{margin:0;font-size:var(--lv-text-md);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-scard__link.astro-itmeadmq{display:inline-flex;align-items:center;min-block-size:44px;font-weight:var(--lv-weight-medium);color:var(--lv-text-primary);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:0.35em;transition:text-decoration-thickness var(--lv-dur-state) var(--lv-ease)}.lv-scard__link.astro-itmeadmq:hover{text-decoration-thickness:3px}.lv-scard__link.astro-itmeadmq:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}@container (min-width: 60rem){.lv-scard__card.astro-itmeadmq{inline-size:min(30%,30rem);min-inline-size:22rem}}@media (max-width: 43.75rem){.lv-scard.astro-itmeadmq{padding:0;min-block-size:0;overflow:visible}.lv-scard__stage.astro-itmeadmq{position:relative;z-index:0;aspect-ratio:4 / 5;inline-size:100%}.lv-scard__inner.astro-itmeadmq{position:relative;z-index:1;margin-block-start:calc(var(--lv-space-7) * -1);padding-inline:var(--lv-gutter)}.lv-scard__card.astro-itmeadmq{inline-size:100%;padding:var(--lv-space-6)}}@media (prefers-reduced-motion: reduce){.lv-scard__link.astro-itmeadmq{transition-duration:0.01ms}}
/* components/open.atmosphere/renderers/scene.astro */
.lv-scene.astro-e6euaccx{position:relative;isolation:isolate;display:grid;align-content:end;min-block-size:max(320px,var(--lv-scene-h, calc(var(--lv-stage-vh, 100svh) * 0.52)));padding:var(--lv-space-8) var(--lv-gutter);overflow:hidden;color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand);--lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand);--lv-btn-solid-ink: var(--lv-text-on-brand)}.lv-scene--h-compact.astro-e6euaccx{--lv-scene-h: calc(var(--lv-stage-vh, 100svh) * 0.38);padding-block:var(--lv-space-7)}.lv-scene--h-medium.astro-e6euaccx{--lv-scene-h: calc(var(--lv-stage-vh, 100svh) * 0.52)}.lv-scene--h-full.astro-e6euaccx{--lv-scene-h: calc(var(--lv-stage-vh, 100svh) * 0.78)}.lv-scene.astro-e6euaccx::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(120% 90% at var(--lv-scene-at-a, 12% 0%),var(--lv-scene-a) 0%,transparent 66%),radial-gradient(110% 80% at var(--lv-scene-at-b, 92% 8%),var(--lv-scene-b) 0%,transparent 62%),var(--lv-ramp)}.lv-scene--workshop.astro-e6euaccx{--lv-scene-a: var(--lv-brand-strong);--lv-scene-b: var(--lv-ramp-terminal)}.lv-scene--coast.astro-e6euaccx{--lv-scene-a: var(--lv-ramp-terminal);--lv-scene-b: var(--lv-brand-strong);--lv-scene-at-a: 6% 18%;--lv-scene-at-b: 98% 0%}.lv-scene--kitchen.astro-e6euaccx{--lv-scene-a: var(--lv-ramp-terminal);--lv-scene-b: var(--lv-brand-strong);--lv-scene-at-a: 34% 0%;--lv-scene-at-b: 84% 28%}.lv-scene--forest.astro-e6euaccx{--lv-scene-a: var(--lv-brand-strong);--lv-scene-b: var(--lv-brand-strong);--lv-scene-at-a: 0% 0%;--lv-scene-at-b: 100% 12%}.lv-scene--city-night.astro-e6euaccx{--lv-scene-a: var(--lv-brand-strong);--lv-scene-b: var(--lv-ramp-terminal);--lv-scene-at-a: 50% 0%;--lv-scene-at-b: 104% 68%}.lv-scene--studio.astro-e6euaccx{--lv-scene-a: var(--lv-ramp-terminal);--lv-scene-b: var(--lv-brand-strong);--lv-scene-at-a: 22% 6%;--lv-scene-at-b: 76% 4%}.lv-scene__media.astro-e6euaccx{position:absolute;inset:0;z-index:-1}.lv-scene__media.astro-e6euaccx img.astro-e6euaccx{inline-size:100%;block-size:100%;object-fit:cover}.lv-scene__media.astro-e6euaccx::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgb(var(--lv-glass-under) / var(--lv-scene-scrim, 0.78)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-scene-scrim, 0.78) * 0.3)) 68%)}.lv-scene--scrim-soft.astro-e6euaccx{--lv-scene-scrim: 0.55}.lv-scene__media--alt.astro-e6euaccx{opacity:0}@media (prefers-reduced-motion: no-preference){.lv-scene__media--alt.astro-e6euaccx{animation:lv-scene-drift 28s var(--lv-ease) infinite}@keyframes lv-scene-drift{0%,26%{opacity:0}42%,68%{opacity:1}84%,100%{opacity:0}}}.lv-scene.astro-e6euaccx .lv-sec__inner.astro-e6euaccx{inline-size:100%}.lv-scene__copy.astro-e6euaccx{max-width:var(--lv-measure)}.lv-scene__title.astro-e6euaccx{margin:0;font-size:clamp(var(--lv-text-xl),6cqi,3.5rem);color:inherit}.lv-scene--h-full.astro-e6euaccx .lv-scene__title.astro-e6euaccx{font-size:var(--lv-hero-display, clamp(var(--lv-text-2xl), 6cqi, 3.5rem))}.lv-scene__lede.astro-e6euaccx{margin:var(--lv-space-4) 0 var(--lv-space-6);font-size:var(--lv-text-lg);color:inherit;opacity:0.9}
/* components/open.editorial/renderers/masthead.astro */
.lv-masthead__title.astro-3hbe6dmh{font-size:clamp(var(--lv-text-xl),4.2cqi,2.75rem)}@container (min-width: 52rem){.astro-3hbe6dmh[data-lv-hero-image=split] .lv-sec__head--center.astro-3hbe6dmh,.astro-3hbe6dmh[data-lv-hero-image=framed] .lv-sec__head--center.astro-3hbe6dmh,.astro-3hbe6dmh[data-lv-hero-image=offset] .lv-sec__head--center.astro-3hbe6dmh{text-align:start}}.lv-masthead--standard.astro-3hbe6dmh[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-6)}.lv-masthead--display.astro-3hbe6dmh[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-8)}.lv-masthead.astro-3hbe6dmh[data-lv-hero-image=split][data-lv-bleed]{padding-inline:var(--lv-gutter)}.lv-masthead--display.astro-3hbe6dmh .lv-masthead__title.astro-3hbe6dmh{font-size:var(--lv-hero-display, clamp(var(--lv-text-2xl), 6cqi, 3.5rem))}.lv-masthead--display.astro-3hbe6dmh[data-lv-bleed]{position:relative;isolation:isolate;display:grid;align-content:end;min-block-size:max(280px,calc(var(--lv-stage-vh, 100svh) * 0.44));padding:var(--lv-space-8) var(--lv-gutter)}.lv-masthead__bg.astro-3hbe6dmh{position:absolute;inset:0;z-index:-1;overflow:hidden}.lv-masthead__bg.astro-3hbe6dmh img.astro-3hbe6dmh{inline-size:100%;block-size:100%;object-fit:cover}.lv-masthead__bg.astro-3hbe6dmh::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgb(var(--lv-glass-under) / 0.78) 0%,rgb(var(--lv-glass-under) / 0.23) 68%)}.lv-masthead--display.astro-3hbe6dmh[data-lv-bleed] .lv-masthead__inner.astro-3hbe6dmh{inline-size:100%}.lv-masthead--display.astro-3hbe6dmh[data-lv-bleed] .lv-sec__eyebrow.astro-3hbe6dmh,.lv-masthead--display.astro-3hbe6dmh[data-lv-bleed] .lv-masthead__title.astro-3hbe6dmh,.lv-masthead--display.astro-3hbe6dmh[data-lv-bleed] .lv-masthead__deck.astro-3hbe6dmh,.lv-masthead--display.astro-3hbe6dmh[data-lv-bleed] .lv-masthead__author.astro-3hbe6dmh,.lv-masthead--display.astro-3hbe6dmh[data-lv-bleed] .lv-masthead__role.astro-3hbe6dmh,.lv-masthead--display.astro-3hbe6dmh[data-lv-bleed] .lv-masthead__stamp.astro-3hbe6dmh{color:var(--lv-text-on-brand)}.lv-masthead--display.astro-3hbe6dmh[data-lv-bleed] .lv-masthead__by.astro-3hbe6dmh{border-block-end-color:color-mix(in srgb,var(--lv-text-on-brand) 28%,transparent)}.lv-masthead__deck.astro-3hbe6dmh{font-size:var(--lv-text-lg)}.lv-masthead__by.astro-3hbe6dmh{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-3) var(--lv-space-5);max-width:var(--lv-measure);padding-block-end:var(--lv-space-5);border-block-end:1px solid var(--lv-line)}.lv-masthead__by-text.astro-3hbe6dmh{display:flex;flex-direction:column;gap:2px;margin:0}.lv-masthead__author.astro-3hbe6dmh{font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary);text-decoration:none}.lv-masthead__author.astro-3hbe6dmh:hover{text-decoration:underline}.lv-masthead__role.astro-3hbe6dmh{font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-masthead__stamp.astro-3hbe6dmh{display:flex;flex-wrap:wrap;gap:var(--lv-space-4);margin:0;margin-inline-start:auto;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}
/* components/open.entity/renderers/calm.astro */
.lv-entity-calm.astro-ynozze5o{--lv-sec-pad: var(--lv-space-8)}.lv-entity-calm__inner.astro-ynozze5o{display:grid;gap:var(--lv-space-6);max-inline-size:42rem}.astro-ynozze5o[data-lv-hero-image=split]>.lv-entity-calm__inner.astro-ynozze5o,.astro-ynozze5o[data-lv-hero-image=framed]>.lv-entity-calm__inner.astro-ynozze5o,.astro-ynozze5o[data-lv-hero-image=offset]>.lv-entity-calm__inner.astro-ynozze5o,.astro-ynozze5o[data-lv-hero-image=full-bleed]>.lv-entity-calm__inner.astro-ynozze5o{max-inline-size:var(--lv-container-max, 72rem)}.lv-entity-calm__media.astro-ynozze5o{grid-column:1}.lv-entity-calm--bled.astro-ynozze5o{position:relative;isolation:isolate}.lv-entity-calm__bg.astro-ynozze5o{position:absolute;inset:0;z-index:-1;overflow:hidden}.lv-entity-calm__bg.astro-ynozze5o img.astro-ynozze5o{inline-size:100%;block-size:100%;object-fit:cover;object-position:50% 42%}.lv-entity-calm__bg.astro-ynozze5o::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgb(var(--lv-glass-under) / 0.88) 0%,rgb(var(--lv-glass-under) / 0.56) 44%,rgb(var(--lv-glass-under) / 0.22) 76%,rgb(var(--lv-glass-under) / 0.06) 100%)}.lv-entity-calm--bled.astro-ynozze5o .lv-entity-calm__inner.astro-ynozze5o{--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 28%, transparent)}.lv-entity-calm.astro-ynozze5o[data-lv-bleed]{padding-inline:var(--lv-gutter)}.lv-entity-calm.astro-ynozze5o[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-8)}.lv-entity-calm__title.astro-ynozze5o{font-size:clamp(2.25rem,1.6rem + 2.6vw,var(--lv-text-display, 3.5rem));font-weight:var(--lv-weight-bold);line-height:var(--lv-leading-tight);letter-spacing:-0.02em;text-wrap:balance}.lv-entity-calm__intro.astro-ynozze5o{max-inline-size:60ch;font-size:var(--lv-text-md)}.lv-entity-calm__facts.astro-ynozze5o{display:flex;flex-wrap:wrap;gap:var(--lv-space-2) var(--lv-space-7);padding-block-start:var(--lv-space-5);border-block-start:1px solid var(--lv-line)}.lv-entity-calm__facts.astro-ynozze5o dt.astro-ynozze5o,.lv-entity-calm__facts.astro-ynozze5o dd.astro-ynozze5o{margin:0}.lv-entity-calm__actions.astro-ynozze5o{margin-block-start:0}
/* components/open.entity/renderers/profile.astro */
.lv-entity.astro-hxo5rkx7{display:grid;gap:var(--lv-space-6);align-items:start}.lv-entity__media.astro-hxo5rkx7{margin:0}.lv-entity__rating.astro-hxo5rkx7{display:flex;align-items:baseline;gap:var(--lv-space-2);margin-block-start:var(--lv-space-4);font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-entity__rating-value.astro-hxo5rkx7{font-size:var(--lv-text-xl);color:var(--lv-text-primary)}.lv-entity__facts.astro-hxo5rkx7{margin-block-start:var(--lv-space-5)}.lv-entity__actions.astro-hxo5rkx7{margin-block-start:var(--lv-space-6)}.lv-entity-head--bled.astro-hxo5rkx7{position:relative;isolation:isolate}.lv-entity-head__bg.astro-hxo5rkx7{position:absolute;inset:0;z-index:-1;overflow:hidden}.lv-entity-head__bg.astro-hxo5rkx7 img.astro-hxo5rkx7{inline-size:100%;block-size:100%;object-fit:cover;object-position:50% 42%}.lv-entity-head__bg.astro-hxo5rkx7::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgb(var(--lv-glass-under) / 0.88) 0%,rgb(var(--lv-glass-under) / 0.56) 44%,rgb(var(--lv-glass-under) / 0.22) 76%,rgb(var(--lv-glass-under) / 0.06) 100%)}.lv-entity-head--bled.astro-hxo5rkx7 .lv-entity.astro-hxo5rkx7{--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 28%, transparent)}.lv-entity-head.astro-hxo5rkx7[data-lv-bleed]{padding-inline:var(--lv-gutter);padding-block:var(--lv-space-8)}.lv-entity-head.astro-hxo5rkx7[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-8)}
/* components/open.entity/renderers/stats.astro */
.lv-entity-stats.astro-wp3h46yn{--lv-sec-pad: var(--lv-section-py-lg, var(--lv-space-9))}.lv-entity-stats--bled.astro-wp3h46yn{position:relative;isolation:isolate}.lv-entity-stats__bg.astro-wp3h46yn{position:absolute;inset:0;z-index:-1;overflow:hidden}.lv-entity-stats__bg.astro-wp3h46yn img.astro-wp3h46yn{inline-size:100%;block-size:100%;object-fit:cover;object-position:50% 42%}.lv-entity-stats__bg.astro-wp3h46yn::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgb(var(--lv-glass-under) / 0.88) 0%,rgb(var(--lv-glass-under) / 0.56) 44%,rgb(var(--lv-glass-under) / 0.22) 76%,rgb(var(--lv-glass-under) / 0.06) 100%)}.lv-entity-stats--bled.astro-wp3h46yn .lv-entity-stats__inner.astro-wp3h46yn{--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 28%, transparent)}.lv-entity-stats.astro-wp3h46yn[data-lv-bleed]{padding-inline:var(--lv-gutter)}.lv-entity-stats.astro-wp3h46yn[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-section-py-lg, var(--lv-space-9))}.lv-entity-stats__inner.astro-wp3h46yn{display:grid;gap:var(--lv-space-7);align-items:start}.lv-entity-stats__head.astro-wp3h46yn{min-inline-size:0}.lv-entity-stats__kicker.astro-wp3h46yn{display:flex;align-items:center;gap:var(--lv-space-4);margin:0 0 var(--lv-space-5);max-width:none}.lv-entity-stats__kicker.astro-wp3h46yn::after{content:"";flex:1 1 auto;block-size:1px;min-inline-size:var(--lv-space-6);background:var(--lv-line)}.lv-entity-stats__title.astro-wp3h46yn{margin:0;max-inline-size:18ch;font-size:var(--lv-hero-display, clamp(var(--lv-text-2xl), 5cqi, 3.25rem));line-height:var(--lv-leading-tight);letter-spacing:var(--lv-tracking-heading, -0.02em);text-wrap:balance;color:var(--lv-text-primary)}.lv-entity-stats__intro.astro-wp3h46yn{margin-block-start:var(--lv-space-5);max-inline-size:58ch;font-size:var(--lv-text-lg);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary);text-wrap:pretty}.lv-entity-stats__actions.astro-wp3h46yn{margin-block-start:var(--lv-space-6)}.lv-entity-stats__rail.astro-wp3h46yn{display:flex;flex-direction:column;margin:0;padding-block-start:var(--lv-space-6);border-block-start:1px solid var(--lv-line)}.lv-entity-stats__cell.astro-wp3h46yn{display:grid;gap:var(--lv-space-2);align-content:start;min-inline-size:0;padding-block:var(--lv-space-4)}.lv-entity-stats__cell.astro-wp3h46yn:not(:first-child){padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-entity-stats__value.astro-wp3h46yn{margin:0;font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-semibold);line-height:1.05;color:var(--lv-text-primary)}.lv-entity-stats__value--phrase.astro-wp3h46yn{font-size:var(--lv-text-xl);line-height:var(--lv-leading-snug);letter-spacing:var(--lv-tracking-heading, -0.01em);text-wrap:balance}.lv-entity-stats__unit.astro-wp3h46yn{margin-inline-start:0.22em;font-family:var(--lv-font-ui);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);letter-spacing:normal;color:var(--lv-text-tertiary)}.lv-entity-stats__label.astro-wp3h46yn{margin:0;font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);font-variant-caps:var(--lv-display-variant, normal);color:var(--lv-text-secondary)}.lv-entity-stats__note.astro-wp3h46yn{margin:0;max-inline-size:34ch;font-size:var(--lv-text-xs);line-height:var(--lv-leading-normal);color:var(--lv-text-tertiary)}@container (min-width: 46rem){.lv-entity-stats__rail.astro-wp3h46yn{flex-direction:row;flex-wrap:nowrap;gap:0}.lv-entity-stats__cell.astro-wp3h46yn{flex:1 1 0;padding-block:0;padding-inline:var(--lv-space-6)}.lv-entity-stats__cell.astro-wp3h46yn:first-child{padding-inline-start:0}.lv-entity-stats__cell.astro-wp3h46yn:last-child{padding-inline-end:0}.lv-entity-stats__cell.astro-wp3h46yn:not(:first-child){padding-block-start:0;border-block-start:0;border-inline-start:1px solid var(--lv-line)}}
/* components/open.listing/renderers/header.astro */
.lv-index__inner.astro-topsee3x{display:grid;gap:var(--lv-space-6);align-items:end}.lv-index__head.astro-topsee3x{margin-block-end:0}.lv-index__count.astro-topsee3x{margin-block-start:var(--lv-space-4);font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-index__search.astro-topsee3x .lv-field.astro-topsee3x{flex-wrap:wrap}.lv-index__search.astro-topsee3x .lv-field.astro-topsee3x input.astro-topsee3x{min-inline-size:0}.lv-index__search.astro-topsee3x .lv-btn.astro-topsee3x{min-inline-size:0;flex-shrink:1}.lv-index__search.astro-topsee3x .lv-btn.astro-topsee3x span.astro-topsee3x{max-width:16ch;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@container (min-width: 52rem){.lv-index--search.astro-topsee3x{grid-template-columns:minmax(0,1fr) minmax(18rem,24rem)}}.lv-index--bled.astro-topsee3x{position:relative;isolation:isolate}.lv-index__bg.astro-topsee3x{position:absolute;inset:0;z-index:-1;overflow:hidden}.lv-index__bg.astro-topsee3x img.astro-topsee3x{inline-size:100%;block-size:100%;object-fit:cover;object-position:50% 42%}.lv-index__bg.astro-topsee3x::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgb(var(--lv-glass-under) / 0.88) 0%,rgb(var(--lv-glass-under) / 0.56) 44%,rgb(var(--lv-glass-under) / 0.22) 76%,rgb(var(--lv-glass-under) / 0.06) 100%)}.lv-index--bled.astro-topsee3x .lv-index__inner.astro-topsee3x{--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 28%, transparent)}.lv-index.astro-topsee3x[data-lv-bleed]{padding-inline:var(--lv-gutter);padding-block:var(--lv-space-8)}.lv-index.astro-topsee3x[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-8)}
/* components/open.pitch/renderers/console.astro */
.lv-console__slab.astro-7nw4quv3{position:relative;display:grid;grid-template-columns:minmax(0,1fr);overflow:hidden;padding:var(--lv-space-8) var(--lv-space-6);border-radius:var(--lv-radius-xl, var(--lv-radius-lg));background:var(--lv-surface-sunken)}.lv-console__lead.astro-7nw4quv3{display:grid;row-gap:var(--lv-space-5);justify-items:start;align-content:center}.lv-console__zone.astro-7nw4quv3{display:contents}.lv-console__title.astro-7nw4quv3{margin:0;max-inline-size:22ch;font-size:var(--lv-hero-display, var(--lv-text-2xl));font-weight:var(--lv-weight-heading);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-display-tracking, 0);text-wrap:balance;color:var(--lv-text-primary)}.lv-console__lede.astro-7nw4quv3{margin:0;max-inline-size:var(--lv-measure);font-size:var(--lv-text-md);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-console__well.astro-7nw4quv3{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-3);inline-size:100%;padding:var(--lv-space-3);border-radius:var(--lv-radius-md);background:var(--lv-surface);box-shadow:var(--lv-lift-2)}.lv-console__mosaic.astro-7nw4quv3{display:none}.lv-console__tiles.astro-7nw4quv3{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lv-space-4);margin:0;padding:0;list-style:none}.lv-console__more.astro-7nw4quv3,.lv-console__more-list.astro-7nw4quv3{display:contents}.lv-console__more-list.astro-7nw4quv3{margin:0;padding:0;list-style:none}.lv-console__tile.astro-7nw4quv3{aspect-ratio:4 / 5;overflow:hidden;border-radius:var(--lv-radius-xl, var(--lv-radius-lg));background:var(--lv-surface)}.lv-console__tile.astro-7nw4quv3 img.astro-7nw4quv3{display:block;inline-size:100%;block-size:100%;object-fit:cover}.lv-console__small.astro-7nw4quv3{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-console__proof.astro-7nw4quv3{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--lv-space-2) var(--lv-space-4)}.lv-console__avatars.astro-7nw4quv3{display:flex;margin:0;padding:0;list-style:none}.lv-console__avatars.astro-7nw4quv3>li.astro-7nw4quv3{display:contents}.lv-console__avatar.astro-7nw4quv3{--lv-portrait-size: 2.25rem;border:2px solid var(--lv-surface)}.lv-console__avatars.astro-7nw4quv3>li.astro-7nw4quv3:not(:first-child)>.lv-console__avatar.astro-7nw4quv3{margin-inline-start:-0.6rem}.lv-console__rating.astro-7nw4quv3{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-2);margin:0;color:var(--lv-text-primary)}.lv-console__of.astro-7nw4quv3{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-console__facts.astro-7nw4quv3{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--lv-space-3) var(--lv-space-7);margin:0;padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-console__fact.astro-7nw4quv3{display:grid;gap:var(--lv-space-1)}.lv-console__fact-value.astro-7nw4quv3{margin:0;font-size:var(--lv-text-lg);color:var(--lv-text-primary)}.lv-console__fact-unit.astro-7nw4quv3{margin-inline-start:0.2em;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-console__fact.astro-7nw4quv3 dd.astro-7nw4quv3{margin:0}.lv-console__card.astro-7nw4quv3{inline-size:min(100%,26rem);padding-block:var(--lv-space-4);border-block:1px solid var(--lv-line);text-align:start}.lv-console__card-title.astro-7nw4quv3{margin:0 0 var(--lv-space-2);font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);color:var(--lv-text-secondary)}.lv-console__card-rows.astro-7nw4quv3{margin:0}.lv-console__card-row.astro-7nw4quv3{display:flex;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-2);border-block-start:1px solid var(--lv-line)}.lv-console__card-row.astro-7nw4quv3 dt.astro-7nw4quv3{margin:0;color:var(--lv-text-tertiary);font-size:var(--lv-text-sm)}.lv-console__card-row.astro-7nw4quv3 dd.astro-7nw4quv3{margin:0;color:var(--lv-text-primary)}.lv-console__card-row.astro-7nw4quv3 a.astro-7nw4quv3{color:inherit;text-underline-offset:0.25em}.lv-console__card-cta.astro-7nw4quv3{margin-block-start:var(--lv-space-4)}.lv-console__marks.astro-7nw4quv3{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--lv-space-3) var(--lv-space-6);margin:0;padding:var(--lv-space-4) 0 0;list-style:none;border-block-start:1px solid var(--lv-line)}.lv-console__mark.astro-7nw4quv3{display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary);text-decoration:none}.lv-console__mark-img.astro-7nw4quv3{block-size:1.5rem;inline-size:auto;filter:var(--lv-mark-filter, grayscale(1))}@container (min-width: 48rem){.lv-console--pictured.astro-7nw4quv3 .lv-console__slab.astro-7nw4quv3{min-block-size:30rem;padding-block:var(--lv-space-9);padding-inline-end:calc(34% + var(--lv-space-7))}.lv-console__mosaic.astro-7nw4quv3{display:block;position:absolute;inset-block-start:calc(var(--lv-space-7) * -1);inset-inline-end:var(--lv-space-6);inline-size:34%}}@container (min-width: 64rem){.lv-console__tiles.astro-7nw4quv3:not(:has(> .lv-console__more)){grid-template-columns:minmax(0,1fr)}.lv-console__tiles.astro-7nw4quv3:has(> .lv-console__more){grid-template-columns:repeat(2,minmax(0,1fr))}.lv-console__tile.astro-7nw4quv3.is-dropped{transform:translateY(50%)}}
/* components/open.pitch/renderers/cover.astro */
.lv-cover__inner.astro-k4e6n3rm{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;row-gap:var(--lv-space-4);text-align:center}.lv-cover__zone.astro-k4e6n3rm{display:contents}.lv-cover__issue.astro-k4e6n3rm,.lv-cover__title.astro-k4e6n3rm{order:-1}.lv-cover__issue.astro-k4e6n3rm{font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-secondary)}.lv-cover__title.astro-k4e6n3rm{margin:0;max-inline-size:18ch;font-size:var(--lv-hero-display, var(--lv-text-2xl));font-weight:var(--lv-weight-heading);line-height:1.02;letter-spacing:var(--lv-display-tracking, 0);text-transform:uppercase;text-wrap:balance;hyphens:manual;overflow-wrap:break-word;color:var(--lv-text-primary)}.lv-cover__plate.astro-k4e6n3rm{inline-size:min(64%,22rem);margin:var(--lv-space-8) 0;box-shadow:0 0 0 1px var(--lv-line);background:var(--lv-surface-sunken)}@container (min-width: 37.5rem){.lv-cover__plate.astro-k4e6n3rm{inline-size:clamp(14rem,29cqi,26rem);margin-block:var(--lv-space-9)}}.lv-cover__plate.astro-k4e6n3rm img.astro-k4e6n3rm{display:block;inline-size:100%;block-size:auto}.lv-cover__lede.astro-k4e6n3rm{margin:0;max-inline-size:44ch;font-size:var(--lv-text-md);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-cover__actions.astro-k4e6n3rm{display:flex;align-items:center;justify-content:center;gap:var(--lv-space-4);margin:0}.lv-cover__bar.astro-k4e6n3rm{inline-size:1px;block-size:1.1em;background:var(--lv-text-primary)}.lv-cover__word.astro-k4e6n3rm{position:relative;display:inline-flex;align-items:center;min-block-size:44px;min-inline-size:44px;justify-content:center;font-size:var(--lv-text-sm);color:var(--lv-text-primary);text-decoration:none}.lv-cover__word.astro-k4e6n3rm::after{content:"";position:absolute;inset-inline:0;inset-block-end:var(--lv-space-2);block-size:1px;background:currentColor;transform:scaleX(0);transition:transform var(--lv-dur-state) var(--lv-ease)}.lv-cover__word.astro-k4e6n3rm:hover::after,.lv-cover__word.astro-k4e6n3rm:focus-visible::after{transform:scaleX(1)}.lv-cover__word.astro-k4e6n3rm:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-cover__small.astro-k4e6n3rm{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-cover__proof.astro-k4e6n3rm{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--lv-space-2) var(--lv-space-4)}.lv-cover__avatars.astro-k4e6n3rm{display:flex;margin:0;padding:0;list-style:none}.lv-cover__avatars.astro-k4e6n3rm>li.astro-k4e6n3rm{display:contents}.lv-cover__avatar.astro-k4e6n3rm{--lv-portrait-size: 2.25rem;border:2px solid var(--lv-surface)}.lv-cover__avatars.astro-k4e6n3rm>li.astro-k4e6n3rm:not(:first-child)>.lv-cover__avatar.astro-k4e6n3rm{margin-inline-start:-0.6rem}.lv-cover__rating.astro-k4e6n3rm{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-2);margin:0;color:var(--lv-text-primary)}.lv-cover__of.astro-k4e6n3rm{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-cover__facts.astro-k4e6n3rm{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--lv-space-3) var(--lv-space-7);margin:0;padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-cover__fact.astro-k4e6n3rm{display:grid;gap:var(--lv-space-1)}.lv-cover__fact-value.astro-k4e6n3rm{margin:0;font-size:var(--lv-text-lg);color:var(--lv-text-primary)}.lv-cover__fact-unit.astro-k4e6n3rm{margin-inline-start:0.2em;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-cover__fact.astro-k4e6n3rm dd.astro-k4e6n3rm{margin:0}.lv-cover__card.astro-k4e6n3rm{inline-size:min(100%,26rem);padding-block:var(--lv-space-4);border-block:1px solid var(--lv-line);text-align:start}.lv-cover__card-title.astro-k4e6n3rm{margin:0 0 var(--lv-space-2);font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);color:var(--lv-text-secondary)}.lv-cover__card-rows.astro-k4e6n3rm{margin:0}.lv-cover__card-row.astro-k4e6n3rm{display:flex;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-2);border-block-start:1px solid var(--lv-line)}.lv-cover__card-row.astro-k4e6n3rm dt.astro-k4e6n3rm{margin:0;color:var(--lv-text-tertiary);font-size:var(--lv-text-sm)}.lv-cover__card-row.astro-k4e6n3rm dd.astro-k4e6n3rm{margin:0;color:var(--lv-text-primary)}.lv-cover__card-row.astro-k4e6n3rm a.astro-k4e6n3rm{color:inherit;text-underline-offset:0.25em}.lv-cover__card-cta.astro-k4e6n3rm{margin-block-start:var(--lv-space-4)}.lv-cover__marks.astro-k4e6n3rm{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--lv-space-3) var(--lv-space-6);margin:0;padding:var(--lv-space-4) 0 0;list-style:none;border-block-start:1px solid var(--lv-line)}.lv-cover__mark.astro-k4e6n3rm{display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary);text-decoration:none}.lv-cover__mark-img.astro-k4e6n3rm{block-size:1.5rem;inline-size:auto;filter:var(--lv-mark-filter, grayscale(1))}@media (prefers-reduced-motion: reduce){.lv-cover__word.astro-k4e6n3rm::after{transition-duration:0.01ms}}
/* components/open.pitch/renderers/desk.astro */
.lv-desk.astro-kuf7ugqj{position:relative;isolation:isolate}.lv-desk.astro-kuf7ugqj[data-lv-bleed]{padding-block:var(--lv-space-9);padding-inline:var(--lv-gutter)}.lv-desk--compact.astro-kuf7ugqj[data-lv-bleed]{padding-block:var(--lv-space-7)}.lv-desk--tall.astro-kuf7ugqj[data-lv-bleed]{padding-block:calc(var(--lv-space-9) * 1.6)}.lv-desk--full.astro-kuf7ugqj{display:flex;flex-direction:column;min-block-size:calc(var(--lv-stage-vh, 100svh) - var(--lv-nav-height, 0px))}.lv-desk--full.astro-kuf7ugqj[data-lv-bleed]{padding-block:var(--lv-space-7)}.lv-desk--full.astro-kuf7ugqj.lv-desk--anchor-bottom .lv-desk__inner.astro-kuf7ugqj{margin-block-start:auto}.lv-desk--full.astro-kuf7ugqj:not(.lv-desk--centered)>.lv-desk__inner.astro-kuf7ugqj{inline-size:100%}.lv-desk__scene.astro-kuf7ugqj{position:absolute;inset:0;z-index:-1;overflow:hidden}.lv-desk__scene.astro-kuf7ugqj img.astro-kuf7ugqj{inline-size:100%;block-size:100%;object-fit:cover}.lv-desk--anchor-bottom.astro-kuf7ugqj{--lv-desk-scrim-dir: to top}.lv-desk--anchor-top.astro-kuf7ugqj{--lv-desk-scrim-dir: to bottom}.lv-desk--scrim-soft.astro-kuf7ugqj .lv-desk__scene.astro-kuf7ugqj::after,.lv-desk--scrim-strong.astro-kuf7ugqj .lv-desk__scene.astro-kuf7ugqj::after{content:"";position:absolute;inset:0;background:linear-gradient(var(--lv-desk-scrim-dir, to top),rgb(var(--lv-glass-under) / calc(var(--lv-desk-scrim, 0.62) * 0.92)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-desk-scrim, 0.62) * 0.58)) 38%,rgb(var(--lv-glass-under) / calc(var(--lv-desk-scrim, 0.62) * 0.20)) 68%,rgb(var(--lv-glass-under) / calc(var(--lv-desk-scrim, 0.62) * 0.05)) 100%),linear-gradient(100deg,rgb(var(--lv-glass-under) / calc(var(--lv-desk-scrim, 0.62) * 0.34)) 0%,transparent 55%)}.lv-desk--scrim-strong.astro-kuf7ugqj{--lv-desk-scrim: 0.82}@media (max-width: 700px){.lv-desk--scrim-soft.astro-kuf7ugqj .lv-desk__scene.astro-kuf7ugqj::after,.lv-desk--scrim-strong.astro-kuf7ugqj .lv-desk__scene.astro-kuf7ugqj::after{background:linear-gradient(var(--lv-desk-scrim-dir, to top),rgb(var(--lv-glass-under) / calc(var(--lv-desk-scrim, 0.62) * 0.98)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-desk-scrim, 0.62) * 0.72)) 42%,rgb(var(--lv-glass-under) / calc(var(--lv-desk-scrim, 0.62) * 0.32)) 70%,rgb(var(--lv-glass-under) / calc(var(--lv-desk-scrim, 0.62) * 0.08)) 100%)}}.lv-desk--scrim-soft.astro-kuf7ugqj .lv-desk__inner.astro-kuf7ugqj,.lv-desk--scrim-strong.astro-kuf7ugqj .lv-desk__inner.astro-kuf7ugqj{color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 28%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-desk--scrim-soft.astro-kuf7ugqj .lv-sec__eyebrow.astro-kuf7ugqj,.lv-desk--scrim-strong.astro-kuf7ugqj .lv-sec__eyebrow.astro-kuf7ugqj{color:var(--lv-text-on-brand)}.lv-desk__inner.astro-kuf7ugqj{display:grid;gap:var(--lv-space-7);align-items:start}.lv-desk__zone--counter.astro-kuf7ugqj,.lv-desk__zone--foot.astro-kuf7ugqj{display:contents}.lv-desk__copy.astro-kuf7ugqj{max-width:var(--lv-measure)}.lv-desk--centered.astro-kuf7ugqj .lv-desk__copy.astro-kuf7ugqj{margin-inline:auto;text-align:center}.lv-desk__title.astro-kuf7ugqj{margin:0;max-inline-size:14ch;font-size:var(--lv-hero-display, clamp(var(--lv-text-2xl), 5cqi, 3.25rem));line-height:var(--lv-leading-tight);text-wrap:balance;color:var(--lv-text-primary)}.lv-desk--centered.astro-kuf7ugqj .lv-desk__title.astro-kuf7ugqj{margin-inline:auto}.lv-desk__body.astro-kuf7ugqj{margin-block-start:var(--lv-space-4);max-inline-size:46ch;font-size:var(--lv-text-md);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-desk--centered.astro-kuf7ugqj .lv-desk__body.astro-kuf7ugqj{margin-inline:auto}.lv-desk__actions.astro-kuf7ugqj{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-4);margin-block-start:var(--lv-space-6)}.lv-desk--centered.astro-kuf7ugqj .lv-desk__actions.astro-kuf7ugqj{justify-content:center}.lv-desk__act-quiet.astro-kuf7ugqj{display:inline-flex;align-items:center;min-block-size:24px;color:var(--lv-text-secondary);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:var(--lv-line);transition:text-decoration-color var(--lv-dur-state) var(--lv-ease),color var(--lv-dur-state) var(--lv-ease)}.lv-desk__act-quiet.astro-kuf7ugqj:hover{color:var(--lv-text-primary);text-decoration-thickness:2px;text-decoration-color:currentColor}.lv-desk__act-quiet.astro-kuf7ugqj:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}.lv-desk__trust.astro-kuf7ugqj{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-2) var(--lv-space-4);margin-block-start:var(--lv-space-6);padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-desk--centered.astro-kuf7ugqj .lv-desk__trust.astro-kuf7ugqj{justify-content:center}.lv-desk__trust-avatars.astro-kuf7ugqj{display:flex;align-items:center;margin:0;padding:0;list-style:none}.lv-desk__trust-avatars.astro-kuf7ugqj>li.astro-kuf7ugqj{display:contents}.lv-desk__trust-avatar.astro-kuf7ugqj{--lv-portrait-size: 2.5rem;border:2px solid var(--lv-surface);flex-shrink:0}.lv-desk__trust-avatars.astro-kuf7ugqj>li.astro-kuf7ugqj:not(:first-child)>.lv-desk__trust-avatar.astro-kuf7ugqj{margin-inline-start:-0.65rem}.lv-desk__trust-rating.astro-kuf7ugqj{display:flex;align-items:baseline;gap:var(--lv-space-2);margin:0;font-size:var(--lv-text-md);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-desk__trust-of.astro-kuf7ugqj{font-size:var(--lv-text-xs);font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-desk__trust-stars.astro-kuf7ugqj{margin-inline-start:2px}.lv-desk__trust-label.astro-kuf7ugqj{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-desk__trust-proof.astro-kuf7ugqj{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary);max-inline-size:32ch}.lv-desk--scrim-soft.astro-kuf7ugqj .lv-trust-mark.astro-kuf7ugqj,.lv-desk--scrim-strong.astro-kuf7ugqj .lv-trust-mark.astro-kuf7ugqj{background:var(--lv-text-on-brand)}.lv-desk__ledger.astro-kuf7ugqj{margin:0;display:grid;gap:0}.lv-desk__line.astro-kuf7ugqj{display:grid;grid-template-columns:2.5rem minmax(0,1fr);align-items:baseline;gap:0 var(--lv-space-3);padding-block:var(--lv-space-4);border-block-end:1px solid var(--lv-line)}.lv-desk__ledger.astro-kuf7ugqj .lv-desk__line.astro-kuf7ugqj:first-child{border-block-start:1px solid var(--lv-line)}.lv-desk__line-index.astro-kuf7ugqj{grid-row:span 2;align-self:start;font:var(--lv-weight-medium) var(--lv-text-xs) / 1.6 var(--lv-font-mono);letter-spacing:var(--lv-tracking-eyebrow);color:var(--lv-text-tertiary)}.lv-desk__line-value.astro-kuf7ugqj{margin:0;font-size:var(--lv-text-xl);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-desk__line-unit.astro-kuf7ugqj{margin-inline-start:0.2em;font-family:var(--lv-font-ui);font-size:var(--lv-text-xs);font-weight:var(--lv-weight-medium);letter-spacing:normal;color:var(--lv-text-tertiary)}.lv-desk__line-label.astro-kuf7ugqj{margin:var(--lv-space-1) 0 0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-desk__row.astro-kuf7ugqj{display:flex;flex-wrap:wrap;gap:var(--lv-space-5);margin:0;padding-block-start:var(--lv-space-5);border-block-start:1px solid var(--lv-line)}.lv-desk__line--flat.astro-kuf7ugqj{flex:1 1 min(11rem,100%);padding-block:0;border-block-end:0}.lv-desk__row.astro-kuf7ugqj .lv-desk__line--flat.astro-kuf7ugqj:first-child{border-block-start:0}.lv-desk__card.astro-kuf7ugqj{align-self:start;inline-size:100%;max-inline-size:26rem;padding:var(--lv-space-6);border-radius:var(--lv-radius-lg);background:var(--lv-brand-strong);box-shadow:var(--lv-lift-3);color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand);--lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-desk--centered.astro-kuf7ugqj .lv-desk__card.astro-kuf7ugqj{margin-inline:auto}.lv-desk__card-title.astro-kuf7ugqj{margin:0 0 var(--lv-space-3);font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-mono);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);font-variant-caps:var(--lv-display-variant, normal)}.lv-desk__card-rows.astro-kuf7ugqj{margin:0}.lv-desk__card-row.astro-kuf7ugqj{display:flex;align-items:baseline;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-3);border-block-start:1px solid var(--lv-line)}.lv-desk__card-row.astro-kuf7ugqj dt.astro-kuf7ugqj{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-desk__card-row.astro-kuf7ugqj dd.astro-kuf7ugqj{margin:0;text-align:end;font-weight:var(--lv-weight-medium);color:var(--lv-text-primary)}.lv-desk__card-row.astro-kuf7ugqj dd.astro-kuf7ugqj a.astro-kuf7ugqj{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in oklab,var(--lv-text-on-brand) 40%,transparent);transition:text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-desk__card-row.astro-kuf7ugqj dd.astro-kuf7ugqj a.astro-kuf7ugqj:hover{text-decoration-thickness:2px;text-decoration-color:var(--lv-text-on-brand)}.lv-desk__card-row.astro-kuf7ugqj dd.astro-kuf7ugqj a.astro-kuf7ugqj:focus-visible{outline:var(--lv-focus-width) solid var(--lv-text-on-brand);outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}.lv-desk__card-note.astro-kuf7ugqj{margin:var(--lv-space-2) 0 0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-desk__card-cta.astro-kuf7ugqj{inline-size:100%;margin-block-start:var(--lv-space-4);background:var(--lv-text-on-brand);color:var(--lv-brand-strong);box-shadow:none}.lv-desk__card-cta.astro-kuf7ugqj:hover{background:color-mix(in oklab,var(--lv-text-on-brand) 92%,var(--lv-brand-strong));color:var(--lv-brand-strong)}.lv-desk__marks.astro-kuf7ugqj{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-4) var(--lv-space-7);margin:0;padding:var(--lv-space-4) 0 0;border-block-start:1px solid var(--lv-line);list-style:none}.lv-desk--centered.astro-kuf7ugqj .lv-desk__marks.astro-kuf7ugqj{justify-content:center}.lv-desk__mark-link.astro-kuf7ugqj{display:inline-flex;align-items:center;color:var(--lv-text-tertiary);text-decoration:none;opacity:0.72;transition:opacity var(--lv-dur-fast) var(--lv-ease)}.lv-desk__mark-link.astro-kuf7ugqj:hover{opacity:1}.lv-desk__mark-link.astro-kuf7ugqj:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-desk__mark-img.astro-kuf7ugqj{block-size:1.75rem;inline-size:auto;filter:var(--lv-mark-filter, grayscale(1))}.lv-desk--scrim-soft.astro-kuf7ugqj .lv-desk__mark-img.astro-kuf7ugqj,.lv-desk--scrim-strong.astro-kuf7ugqj .lv-desk__mark-img.astro-kuf7ugqj{filter:grayscale(1) invert(1) brightness(1.6);mix-blend-mode:screen}.lv-desk__mark-name.astro-kuf7ugqj{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold);letter-spacing:0.04em}@container (min-width: 56rem){.lv-desk--ledger.astro-kuf7ugqj .lv-desk__inner.astro-kuf7ugqj,.lv-desk--aside.astro-kuf7ugqj .lv-desk__inner.astro-kuf7ugqj{grid-template-columns:minmax(0,1.7fr) minmax(15rem,0.85fr);column-gap:var(--lv-space-8)}.lv-desk--ledger.astro-kuf7ugqj .lv-desk__copy.astro-kuf7ugqj,.lv-desk--aside.astro-kuf7ugqj .lv-desk__copy.astro-kuf7ugqj{grid-column:1}.lv-desk--ledger.astro-kuf7ugqj .lv-desk__ledger.astro-kuf7ugqj{grid-column:2;grid-row:1}.lv-desk--aside.astro-kuf7ugqj .lv-desk__card.astro-kuf7ugqj{grid-column:2;grid-row:1;justify-self:end}.lv-desk--ledger.astro-kuf7ugqj .lv-desk__marks.astro-kuf7ugqj,.lv-desk--aside.astro-kuf7ugqj .lv-desk__marks.astro-kuf7ugqj{grid-column:1 / -1}.lv-desk--aside.astro-kuf7ugqj .lv-desk__row.astro-kuf7ugqj{grid-column:1}.lv-desk--stat-rail.astro-kuf7ugqj.lv-desk--ledger .lv-desk__inner.astro-kuf7ugqj{grid-template-columns:minmax(0,1.4fr) minmax(17rem,1fr)}.lv-desk--centered.astro-kuf7ugqj .lv-desk__inner.astro-kuf7ugqj{grid-template-columns:minmax(0,1fr)}.lv-desk--centered.astro-kuf7ugqj .lv-desk__ledger.astro-kuf7ugqj,.lv-desk--centered.astro-kuf7ugqj .lv-desk__card.astro-kuf7ugqj{grid-column:1;grid-row:auto}.lv-desk--centered.astro-kuf7ugqj .lv-desk__ledger.astro-kuf7ugqj{max-inline-size:34rem;margin-inline:auto;inline-size:100%}}@media (prefers-reduced-motion: reduce){.lv-desk__act-quiet.astro-kuf7ugqj,.lv-desk__card-row.astro-kuf7ugqj dd.astro-kuf7ugqj a.astro-kuf7ugqj,.lv-desk__mark-link.astro-kuf7ugqj{transition-duration:0.01ms}}.lv-desk.astro-kuf7ugqj[data-lv-hero-image=split][data-lv-bleed]{padding-inline:var(--lv-gutter)}.lv-desk.astro-kuf7ugqj[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-9)}.lv-desk--compact.astro-kuf7ugqj[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-7)}.lv-desk--tall.astro-kuf7ugqj[data-lv-hero-image=split]{--lv-heroimg-block-reach: calc(var(--lv-space-9) * 1.6)}.lv-desk--full.astro-kuf7ugqj[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-7)}@container (min-width: 52rem){.lv-desk.astro-kuf7ugqj[data-lv-hero-image=split] .lv-desk__inner.astro-kuf7ugqj,.lv-desk.astro-kuf7ugqj[data-lv-hero-image=framed] .lv-desk__inner.astro-kuf7ugqj,.lv-desk.astro-kuf7ugqj[data-lv-hero-image=offset] .lv-desk__inner.astro-kuf7ugqj{grid-template-columns:minmax(0,1fr);grid-template-areas:none}.lv-desk.astro-kuf7ugqj[data-lv-hero-image=split] .astro-kuf7ugqj:is(.lv-desk__copy,.lv-desk__ledger,.lv-desk__card,.lv-desk__marks,.lv-desk__row),.lv-desk.astro-kuf7ugqj[data-lv-hero-image=framed] .astro-kuf7ugqj:is(.lv-desk__copy,.lv-desk__ledger,.lv-desk__card,.lv-desk__marks,.lv-desk__row),.lv-desk.astro-kuf7ugqj[data-lv-hero-image=offset] .astro-kuf7ugqj:is(.lv-desk__copy,.lv-desk__ledger,.lv-desk__card,.lv-desk__marks,.lv-desk__row){grid-area:auto;grid-column:auto;justify-self:stretch;align-self:auto}}@container (min-width: 52rem){.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=split] .lv-desk__copy.astro-kuf7ugqj,.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=framed] .lv-desk__copy.astro-kuf7ugqj,.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=offset] .lv-desk__copy.astro-kuf7ugqj{text-align:start;margin-inline:0}.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=split] .lv-desk__body.astro-kuf7ugqj,.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=framed] .lv-desk__body.astro-kuf7ugqj,.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=offset] .lv-desk__body.astro-kuf7ugqj{margin-inline:0}.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=split] .lv-desk__actions.astro-kuf7ugqj,.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=framed] .lv-desk__actions.astro-kuf7ugqj,.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=offset] .lv-desk__actions.astro-kuf7ugqj,.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=split] .lv-desk__trust.astro-kuf7ugqj,.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=framed] .lv-desk__trust.astro-kuf7ugqj,.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=offset] .lv-desk__trust.astro-kuf7ugqj,.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=split] .lv-desk__marks.astro-kuf7ugqj,.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=framed] .lv-desk__marks.astro-kuf7ugqj,.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=offset] .lv-desk__marks.astro-kuf7ugqj{justify-content:flex-start}.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=split] .lv-desk__title.astro-kuf7ugqj,.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=framed] .lv-desk__title.astro-kuf7ugqj,.lv-desk--centered.astro-kuf7ugqj[data-lv-hero-image=offset] .lv-desk__title.astro-kuf7ugqj{margin-inline:0}}
/* components/open.pitch/renderers/diptych.astro */
.lv-diptych.astro-pcrpppxh{--lv-diptych-h: calc(var(--lv-stage-vh, 100svh) * 0.72);padding:0}.lv-diptych--compact.astro-pcrpppxh{--lv-diptych-h: calc(var(--lv-stage-vh, 100svh) * 0.56)}.lv-diptych--tall.astro-pcrpppxh{--lv-diptych-h: calc(var(--lv-stage-vh, 100svh) * 0.86)}.lv-diptych--full.astro-pcrpppxh{--lv-diptych-h: calc(var(--lv-stage-vh, 100svh) - var(--lv-nav-height, 0px))}.lv-diptych__stage.astro-pcrpppxh{display:grid;grid-template-columns:minmax(0,1fr)}.lv-diptych__panel.astro-pcrpppxh{position:relative;isolation:isolate;display:flex;align-items:flex-end;justify-content:center;min-block-size:var(--lv-diptych-h);overflow:hidden;background:var(--lv-surface-sunken);color:var(--lv-text-on-brand);text-decoration:none}.lv-diptych__panel--second.astro-pcrpppxh{min-block-size:0;aspect-ratio:4 / 5}.lv-diptych__img.astro-pcrpppxh{position:absolute;inset:0;z-index:-2;inline-size:100%;block-size:100%;object-fit:cover;object-position:50% 38%}.lv-diptych__panel.astro-pcrpppxh::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgb(var(--lv-glass-under) / calc(var(--lv-diptych-scrim, 0.62) * 0.92)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-diptych-scrim, 0.62) * 0.5)) 22%,rgb(var(--lv-glass-under) / calc(var(--lv-diptych-scrim, 0.62) * 0.12)) 42%,rgb(var(--lv-glass-under) / 0) 60%)}.lv-diptych--scrim-strong.astro-pcrpppxh{--lv-diptych-scrim: 0.82}.lv-diptych__caption.astro-pcrpppxh{color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 32%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand);display:flex;flex-direction:column;align-items:center;gap:var(--lv-space-2);inline-size:100%;max-inline-size:calc(var(--lv-measure) + 2 * var(--lv-gutter));padding:var(--lv-space-6) var(--lv-gutter) var(--lv-space-8);text-align:center;color:var(--lv-text-on-brand)}.lv-diptych--split.astro-pcrpppxh .lv-diptych__caption.astro-pcrpppxh,.lv-diptych--stat-rail.astro-pcrpppxh .lv-diptych__caption.astro-pcrpppxh{align-items:flex-start;max-inline-size:none;text-align:start}.lv-diptych--split.astro-pcrpppxh .lv-diptych__panel.astro-pcrpppxh,.lv-diptych--stat-rail.astro-pcrpppxh .lv-diptych__panel.astro-pcrpppxh{justify-content:flex-start}.lv-diptych__eyebrow.astro-pcrpppxh{order:0;font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, none)}.lv-diptych__title.astro-pcrpppxh{margin:0;font-size:var(--lv-hero-display, var(--lv-text-xl));font-weight:var(--lv-weight-heading);line-height:var(--lv-leading-snug);letter-spacing:var(--lv-display-tracking, 0);text-wrap:balance;color:var(--lv-text-primary)}.lv-diptych__sub.astro-pcrpppxh,.lv-diptych__lede.astro-pcrpppxh{margin:0;max-inline-size:var(--lv-measure);font-size:var(--lv-text-xs);line-height:var(--lv-leading-normal)}.lv-diptych__actions.astro-pcrpppxh{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0 var(--lv-space-5)}.lv-diptych__act.astro-pcrpppxh{display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-xs);color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.35em;text-decoration-color:color-mix(in srgb,currentColor 55%,transparent);transition:text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-diptych__act.astro-pcrpppxh:hover,.lv-diptych__act.astro-pcrpppxh:focus-visible{text-decoration-color:currentColor}.lv-diptych__act.astro-pcrpppxh:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-diptych--split.astro-pcrpppxh .lv-diptych__actions.astro-pcrpppxh,.lv-diptych--stat-rail.astro-pcrpppxh .lv-diptych__actions.astro-pcrpppxh{justify-content:flex-start}.lv-diptych--linked.astro-pcrpppxh .lv-diptych__panel.astro-pcrpppxh:first-child .lv-diptych__go.astro-pcrpppxh::after{content:"";position:absolute;inset:0;z-index:0}.lv-diptych--linked.astro-pcrpppxh .lv-diptych__caption.astro-pcrpppxh>.astro-pcrpppxh:not(.lv-diptych__actions),.lv-diptych--linked.astro-pcrpppxh .lv-diptych__act--aside.astro-pcrpppxh{position:relative;z-index:1}.lv-diptych--linked.astro-pcrpppxh .lv-diptych__go.astro-pcrpppxh:focus-visible{outline:none}.lv-diptych--linked.astro-pcrpppxh .lv-diptych__go.astro-pcrpppxh:focus-visible::after{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-focus-width) * -2)}.lv-diptych__panel--second.astro-pcrpppxh .lv-diptych__title--second.astro-pcrpppxh{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.3em;text-decoration-color:transparent;transition:text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-diptych__panel--second.astro-pcrpppxh[href]:hover .lv-diptych__title--second.astro-pcrpppxh,.lv-diptych__panel--second.astro-pcrpppxh[href]:focus-visible .lv-diptych__title--second.astro-pcrpppxh{text-decoration-color:currentColor}.lv-diptych__panel--second.astro-pcrpppxh:not([href]){cursor:default}.lv-diptych__panel--second.astro-pcrpppxh:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:calc(var(--lv-focus-width) * -2)}@media (hover: hover) and (prefers-reduced-motion: no-preference){.lv-diptych__img.astro-pcrpppxh{transition:transform var(--lv-dur-panel) var(--lv-ease)}.lv-diptych__panel--second.astro-pcrpppxh[href]:hover .lv-diptych__img.astro-pcrpppxh,.lv-diptych--linked.astro-pcrpppxh .lv-diptych__panel.astro-pcrpppxh:first-child:hover .lv-diptych__img.astro-pcrpppxh{transform:scale(1.02)}}.lv-diptych__below.astro-pcrpppxh{padding:var(--lv-space-6) var(--lv-gutter) 0}.lv-diptych__row.astro-pcrpppxh{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--lv-space-5) var(--lv-space-7);padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line);color:var(--lv-text-primary)}.lv-diptych__small.astro-pcrpppxh{margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-diptych__proof.astro-pcrpppxh,.lv-diptych__facts.astro-pcrpppxh,.lv-diptych__marks.astro-pcrpppxh{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--lv-space-2) var(--lv-space-5);margin:0;padding:0;list-style:none}.lv-diptych__row.astro-pcrpppxh>.astro-pcrpppxh{justify-content:flex-start}.lv-diptych__avatars.astro-pcrpppxh{display:flex;margin:0;padding:0;list-style:none}.lv-diptych__avatars.astro-pcrpppxh>li.astro-pcrpppxh{display:contents}.lv-diptych__avatar.astro-pcrpppxh{--lv-portrait-size: 2.25rem;border:2px solid var(--lv-surface)}.lv-diptych__avatars.astro-pcrpppxh>li.astro-pcrpppxh:not(:first-child)>.lv-diptych__avatar.astro-pcrpppxh{margin-inline-start:-0.6rem}.lv-diptych__rating.astro-pcrpppxh{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-2);margin:0}.lv-diptych__fact.astro-pcrpppxh{display:grid;gap:2px}.lv-diptych__fact.astro-pcrpppxh dt.astro-pcrpppxh{margin:0;font-size:var(--lv-text-md)}.lv-diptych__fact.astro-pcrpppxh dd.astro-pcrpppxh{margin:0}.lv-diptych__card.astro-pcrpppxh{inline-size:min(100%,24rem);text-align:start}.lv-diptych__card-title.astro-pcrpppxh{margin:0 0 var(--lv-space-2);font-size:var(--lv-text-xs);color:var(--lv-text-secondary)}.lv-diptych__card-rows.astro-pcrpppxh{margin:0}.lv-diptych__card-row.astro-pcrpppxh{display:flex;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-2);border-block-start:1px solid var(--lv-line);font-size:var(--lv-text-sm)}.lv-diptych__card-row.astro-pcrpppxh dt.astro-pcrpppxh{margin:0;color:var(--lv-text-tertiary)}.lv-diptych__card-row.astro-pcrpppxh dd.astro-pcrpppxh{margin:0}.lv-diptych__card-row.astro-pcrpppxh a.astro-pcrpppxh{color:inherit;text-underline-offset:0.25em}.lv-diptych__card-cta.astro-pcrpppxh{margin-block-start:var(--lv-space-3)}.lv-diptych__mark.astro-pcrpppxh{display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary);text-decoration:none}.lv-diptych__mark-img.astro-pcrpppxh{block-size:1.5rem;inline-size:auto;filter:var(--lv-mark-filter, grayscale(1))}.lv-diptych__caption.astro-pcrpppxh .lv-diptych__mark-img.astro-pcrpppxh{filter:grayscale(1) invert(1) brightness(1.6)}@container (min-width: 48rem){.lv-diptych__stage.astro-pcrpppxh{grid-template-columns:repeat(2,minmax(0,1fr))}.lv-diptych__panel--second.astro-pcrpppxh{min-block-size:var(--lv-diptych-h);aspect-ratio:auto}}@media (prefers-reduced-motion: reduce){.lv-diptych__panel--second.astro-pcrpppxh .lv-diptych__title--second.astro-pcrpppxh,.lv-diptych__act.astro-pcrpppxh{transition-duration:0.01ms}}
/* components/open.pitch/renderers/end-stage.astro */
.lv-endstage.astro-ratp5eav{--lv-endstage-h: calc(var(--lv-stage-vh, 100svh) * 0.64);position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-block-size:var(--lv-endstage-h);padding:var(--lv-space-8) var(--lv-gutter) var(--lv-space-7);color:var(--lv-text-on-brand)}.lv-endstage--compact.astro-ratp5eav{--lv-endstage-h: calc(var(--lv-stage-vh, 100svh) * 0.5)}.lv-endstage--tall.astro-ratp5eav{--lv-endstage-h: calc(var(--lv-stage-vh, 100svh) * 0.8)}.lv-endstage--full.astro-ratp5eav{--lv-endstage-h: calc(var(--lv-stage-vh, 100svh) - var(--lv-nav-height, 0px))}.lv-endstage__bg.astro-ratp5eav{position:absolute;inset:0;z-index:-1;overflow:hidden}.lv-endstage__bg.astro-ratp5eav img.astro-ratp5eav{inline-size:100%;block-size:100%;object-fit:cover}.lv-endstage__bg.astro-ratp5eav::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgb(var(--lv-glass-under) / calc(var(--lv-endstage-scrim, 0.62) * 0.92)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-endstage-scrim, 0.62) * 0.58)) 38%,rgb(var(--lv-glass-under) / calc(var(--lv-endstage-scrim, 0.62) * 0.2)) 68%,rgb(var(--lv-glass-under) / calc(var(--lv-endstage-scrim, 0.62) * 0.05)) 100%)}.lv-endstage--scrim-strong.astro-ratp5eav{--lv-endstage-scrim: 0.82}.lv-endstage.astro-ratp5eav[data-lv-hero-image=full-bleed]>.lv-sec__inner.astro-ratp5eav::before{content:none}.lv-endstage__inner.astro-ratp5eav{color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 32%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand);inline-size:100%;display:grid;grid-template-columns:minmax(0,1fr);row-gap:var(--lv-space-4);align-items:end}.lv-endstage__zone.astro-ratp5eav{display:grid;row-gap:var(--lv-space-4);justify-items:start}.lv-endstage__eyebrow.astro-ratp5eav{font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase)}.lv-endstage__title.astro-ratp5eav{margin:0;max-inline-size:11ch;font-size:var(--lv-hero-display, var(--lv-text-2xl));font-weight:var(--lv-weight-light, var(--lv-weight-heading));line-height:1.02;letter-spacing:var(--lv-display-tracking, 0);color:var(--lv-text-primary)}.lv-endstage__lede.astro-ratp5eav{margin:0;max-inline-size:36ch;font-size:var(--lv-text-sm);line-height:var(--lv-leading-normal)}.lv-endstage__actions.astro-ratp5eav{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-3) var(--lv-space-5)}.lv-endstage__act.astro-ratp5eav{display:inline-flex;align-items:center;min-block-size:44px;padding-inline:var(--lv-space-5);border:1px solid currentColor;border-radius:var(--lv-radius-sm);font-size:var(--lv-text-sm);color:var(--lv-text-primary);text-decoration:none;transition:background-color var(--lv-dur-state) var(--lv-ease)}.lv-endstage__act.astro-ratp5eav:hover{background:color-mix(in srgb,var(--lv-text-on-brand) 14%,transparent)}.lv-endstage__quiet.astro-ratp5eav{display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-sm);color:var(--lv-text-primary);text-underline-offset:0.3em}.lv-endstage__act.astro-ratp5eav:focus-visible,.lv-endstage__quiet.astro-ratp5eav:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-endstage__small.astro-ratp5eav{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-endstage__proof.astro-ratp5eav{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--lv-space-2) var(--lv-space-4)}.lv-endstage__avatars.astro-ratp5eav{display:flex;margin:0;padding:0;list-style:none}.lv-endstage__avatars.astro-ratp5eav>li.astro-ratp5eav{display:contents}.lv-endstage__avatar.astro-ratp5eav{--lv-portrait-size: 2.25rem;border:2px solid var(--lv-surface)}.lv-endstage__avatars.astro-ratp5eav>li.astro-ratp5eav:not(:first-child)>.lv-endstage__avatar.astro-ratp5eav{margin-inline-start:-0.6rem}.lv-endstage__rating.astro-ratp5eav{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-2);margin:0;color:var(--lv-text-primary)}.lv-endstage__of.astro-ratp5eav{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-endstage__facts.astro-ratp5eav{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--lv-space-3) var(--lv-space-7);margin:0;padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-endstage__fact.astro-ratp5eav{display:grid;gap:var(--lv-space-1)}.lv-endstage__fact-value.astro-ratp5eav{margin:0;font-size:var(--lv-text-lg);color:var(--lv-text-primary)}.lv-endstage__fact-unit.astro-ratp5eav{margin-inline-start:0.2em;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-endstage__fact.astro-ratp5eav dd.astro-ratp5eav{margin:0}.lv-endstage__card.astro-ratp5eav{inline-size:min(100%,26rem);padding-block:var(--lv-space-4);border-block:1px solid var(--lv-line);text-align:start}.lv-endstage__card-title.astro-ratp5eav{margin:0 0 var(--lv-space-2);font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);color:var(--lv-text-secondary)}.lv-endstage__card-rows.astro-ratp5eav{margin:0}.lv-endstage__card-row.astro-ratp5eav{display:flex;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-2);border-block-start:1px solid var(--lv-line)}.lv-endstage__card-row.astro-ratp5eav dt.astro-ratp5eav{margin:0;color:var(--lv-text-tertiary);font-size:var(--lv-text-sm)}.lv-endstage__card-row.astro-ratp5eav dd.astro-ratp5eav{margin:0;color:var(--lv-text-primary)}.lv-endstage__card-row.astro-ratp5eav a.astro-ratp5eav{color:inherit;text-underline-offset:0.25em}.lv-endstage__card-cta.astro-ratp5eav{margin-block-start:var(--lv-space-4)}.lv-endstage__marks.astro-ratp5eav{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--lv-space-3) var(--lv-space-6);margin:0;padding:var(--lv-space-4) 0 0;list-style:none;border-block-start:1px solid var(--lv-line)}.lv-endstage__mark.astro-ratp5eav{display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary);text-decoration:none}.lv-endstage__mark-img.astro-ratp5eav{block-size:1.5rem;inline-size:auto;filter:var(--lv-mark-filter, grayscale(1))}@container (min-width: 56rem){.lv-endstage__inner.astro-ratp5eav{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:var(--lv-space-8)}.lv-endstage__zone--lead.astro-ratp5eav{grid-column:2;grid-row:1}.lv-endstage__zone--counter.astro-ratp5eav{grid-column:1;grid-row:1;align-self:end}.lv-endstage__zone--foot.astro-ratp5eav{grid-column:1 / -1}}@container (max-width: 55.999rem){.lv-endstage__title.astro-ratp5eav{font-size:var(--lv-text-2xl);max-inline-size:14ch}}@media (prefers-reduced-motion: reduce){.lv-endstage__act.astro-ratp5eav{transition-duration:0.01ms}}
/* components/open.pitch/renderers/folio.astro */
.lv-folio.astro-dvu5zfqa{position:relative;isolation:isolate}.lv-folio.astro-dvu5zfqa[data-lv-bleed]{padding-block:var(--lv-space-9);padding-inline:var(--lv-gutter)}.lv-folio--compact.astro-dvu5zfqa[data-lv-bleed]{padding-block:var(--lv-space-7)}.lv-folio--tall.astro-dvu5zfqa[data-lv-bleed]{padding-block:calc(var(--lv-space-9) * 1.6)}.lv-folio--full.astro-dvu5zfqa{display:flex;flex-direction:column;min-block-size:calc(var(--lv-stage-vh, 100svh) - var(--lv-nav-height, 0px))}.lv-folio--full.astro-dvu5zfqa[data-lv-bleed]{padding-block:var(--lv-space-7)}.lv-folio--full.astro-dvu5zfqa.lv-folio--anchor-bottom .lv-folio__inner.astro-dvu5zfqa{margin-block-start:auto}.lv-folio--full.astro-dvu5zfqa:not(.lv-folio--centered)>.lv-folio__inner.astro-dvu5zfqa{inline-size:100%}.lv-folio__bg.astro-dvu5zfqa{position:absolute;inset:0;z-index:-1;overflow:hidden}.lv-folio__bg.astro-dvu5zfqa img.astro-dvu5zfqa{inline-size:100%;block-size:100%;object-fit:cover}.lv-folio--anchor-bottom.astro-dvu5zfqa{--lv-folio-scrim-dir: to top}.lv-folio--anchor-top.astro-dvu5zfqa{--lv-folio-scrim-dir: to bottom}.lv-folio--scrim-soft.astro-dvu5zfqa .lv-folio__bg.astro-dvu5zfqa::after,.lv-folio--scrim-strong.astro-dvu5zfqa .lv-folio__bg.astro-dvu5zfqa::after{content:"";position:absolute;inset:0;background:linear-gradient(var(--lv-folio-scrim-dir, to top),rgb(var(--lv-glass-under) / calc(var(--lv-folio-scrim, 0.62) * 0.92)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-folio-scrim, 0.62) * 0.58)) 38%,rgb(var(--lv-glass-under) / calc(var(--lv-folio-scrim, 0.62) * 0.20)) 68%,rgb(var(--lv-glass-under) / calc(var(--lv-folio-scrim, 0.62) * 0.05)) 100%)}.lv-folio--scrim-strong.astro-dvu5zfqa{--lv-folio-scrim: 0.82}@media (max-width: 700px){.lv-folio--scrim-soft.astro-dvu5zfqa .lv-folio__bg.astro-dvu5zfqa::after,.lv-folio--scrim-strong.astro-dvu5zfqa .lv-folio__bg.astro-dvu5zfqa::after{background:linear-gradient(var(--lv-folio-scrim-dir, to top),rgb(var(--lv-glass-under) / calc(var(--lv-folio-scrim, 0.62) * 0.98)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-folio-scrim, 0.62) * 0.72)) 42%,rgb(var(--lv-glass-under) / calc(var(--lv-folio-scrim, 0.62) * 0.32)) 70%,rgb(var(--lv-glass-under) / calc(var(--lv-folio-scrim, 0.62) * 0.08)) 100%)}}.lv-folio--scrim-soft.astro-dvu5zfqa .lv-folio__inner.astro-dvu5zfqa,.lv-folio--scrim-strong.astro-dvu5zfqa .lv-folio__inner.astro-dvu5zfqa{color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 28%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-folio--scrim-soft.astro-dvu5zfqa .lv-sec__eyebrow.astro-dvu5zfqa,.lv-folio--scrim-strong.astro-dvu5zfqa .lv-sec__eyebrow.astro-dvu5zfqa{color:var(--lv-text-on-brand)}.lv-folio__inner.astro-dvu5zfqa{display:grid;gap:var(--lv-space-7)}.lv-folio__zone--counter.astro-dvu5zfqa,.lv-folio__zone--foot.astro-dvu5zfqa{display:contents}.lv-folio__statement.astro-dvu5zfqa{max-width:var(--lv-measure)}.lv-folio--centered.astro-dvu5zfqa .lv-folio__statement.astro-dvu5zfqa{margin-inline:auto;text-align:center}.lv-folio__title.astro-dvu5zfqa{margin:0;max-inline-size:15ch;font-size:var(--lv-hero-display, clamp(var(--lv-text-2xl), 5cqi, 3.25rem));line-height:var(--lv-leading-tight);color:var(--lv-text-primary)}.lv-folio--centered.astro-dvu5zfqa .lv-folio__title.astro-dvu5zfqa{margin-inline:auto}.lv-folio__title.astro-dvu5zfqa .lv-folio__accent{position:relative;font-weight:inherit;white-space:nowrap}.lv-folio__title.astro-dvu5zfqa .lv-folio__accent::after{content:"";position:absolute;inset-inline:-0.06em;inset-block-end:-0.06em;block-size:0.09em;border-radius:var(--lv-radius-pill);background:var(--lv-ink-accent);transform:rotate(-0.35deg)}.lv-folio__ladder.astro-dvu5zfqa{margin-block-start:var(--lv-space-6);display:grid;gap:0}.lv-folio__rung--solo.astro-dvu5zfqa{margin-block-start:var(--lv-space-6)}.lv-folio__rung.astro-dvu5zfqa{margin:0;padding-block:var(--lv-space-4);border-block-end:1px solid var(--lv-line)}.lv-folio__rung--promise.astro-dvu5zfqa{font-size:var(--lv-text-lg);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-folio__rungs.astro-dvu5zfqa{margin:0}.lv-folio__rung--fact.astro-dvu5zfqa{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-2) var(--lv-space-4);border-block-end-width:min(2px,calc(1px * var(--lv-folio-step, 1)));border-block-end-color:var(--lv-line-strong, var(--lv-line))}.lv-folio--centered.astro-dvu5zfqa .lv-folio__rung--fact.astro-dvu5zfqa{justify-content:center}.lv-folio__fact-value.astro-dvu5zfqa{margin:0;font-size:var(--lv-text-xl);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-folio__fact-unit.astro-dvu5zfqa{margin-inline-start:0.2em;font-family:var(--lv-font-ui);font-size:var(--lv-text-xs);font-weight:var(--lv-weight-medium);letter-spacing:normal;color:var(--lv-text-tertiary)}.lv-folio__fact-label.astro-dvu5zfqa{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-folio__step.astro-dvu5zfqa{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-4);padding-block-start:var(--lv-space-5);border-block-start:2px solid var(--lv-ink-accent)}.lv-folio--centered.astro-dvu5zfqa .lv-folio__step.astro-dvu5zfqa{justify-content:center}.lv-folio__step-go.astro-dvu5zfqa::after{content:"→";margin-inline-start:var(--lv-space-2)}.lv-folio__step-aside.astro-dvu5zfqa{display:inline-flex;align-items:center;min-block-size:24px;color:var(--lv-text-secondary);font-size:var(--lv-text-sm);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:var(--lv-line);transition:text-decoration-color var(--lv-dur-state) var(--lv-ease),color var(--lv-dur-state) var(--lv-ease)}.lv-folio__step-aside.astro-dvu5zfqa:hover{color:var(--lv-text-primary);text-decoration-thickness:2px;text-decoration-color:currentColor}.lv-folio__step-aside.astro-dvu5zfqa:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}.lv-folio__proof.astro-dvu5zfqa{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-2) var(--lv-space-4);margin-block-start:var(--lv-space-4)}.lv-folio--centered.astro-dvu5zfqa .lv-folio__proof.astro-dvu5zfqa{justify-content:center}.lv-folio__proof-avatars.astro-dvu5zfqa{display:flex;align-items:center;margin:0;padding:0;list-style:none}.lv-folio__proof-avatars.astro-dvu5zfqa>li.astro-dvu5zfqa{display:contents}.lv-folio__proof-avatar.astro-dvu5zfqa{--lv-portrait-size: 2.25rem;border:2px solid var(--lv-surface);flex-shrink:0}.lv-folio__proof-avatars.astro-dvu5zfqa>li.astro-dvu5zfqa:not(:first-child)>.lv-folio__proof-avatar.astro-dvu5zfqa{margin-inline-start:-0.6rem}.lv-folio__proof-rating.astro-dvu5zfqa{display:flex;align-items:baseline;gap:var(--lv-space-2);margin:0;font-size:var(--lv-text-md);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-folio__proof-of.astro-dvu5zfqa{font-size:var(--lv-text-xs);font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-folio__proof-stars.astro-dvu5zfqa{margin-inline-start:2px}.lv-folio__proof-label.astro-dvu5zfqa{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-folio__proof-line.astro-dvu5zfqa{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary);max-inline-size:32ch}.lv-folio--scrim-soft.astro-dvu5zfqa .lv-trust-mark.astro-dvu5zfqa,.lv-folio--scrim-strong.astro-dvu5zfqa .lv-trust-mark.astro-dvu5zfqa{background:var(--lv-text-on-brand)}.lv-folio__card.astro-dvu5zfqa{align-self:start;inline-size:100%;max-inline-size:26rem;padding:var(--lv-space-6);border-radius:var(--lv-radius-lg);background:var(--lv-brand-strong);box-shadow:var(--lv-lift-3);color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand);--lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-folio--centered.astro-dvu5zfqa .lv-folio__card.astro-dvu5zfqa{margin-inline:auto}.lv-folio__card-title.astro-dvu5zfqa{margin:0 0 var(--lv-space-3);font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-mono);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);font-variant-caps:var(--lv-display-variant, normal)}.lv-folio__card-rows.astro-dvu5zfqa{margin:0}.lv-folio__card-row.astro-dvu5zfqa{display:flex;align-items:baseline;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-3);border-block-start:1px solid var(--lv-line)}.lv-folio__card-row.astro-dvu5zfqa dt.astro-dvu5zfqa{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-folio__card-row.astro-dvu5zfqa dd.astro-dvu5zfqa{margin:0;text-align:end;font-weight:var(--lv-weight-medium);color:var(--lv-text-primary)}.lv-folio__card-row.astro-dvu5zfqa dd.astro-dvu5zfqa a.astro-dvu5zfqa{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in oklab,var(--lv-text-on-brand) 40%,transparent);transition:text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-folio__card-row.astro-dvu5zfqa dd.astro-dvu5zfqa a.astro-dvu5zfqa:hover{text-decoration-thickness:2px;text-decoration-color:var(--lv-text-on-brand)}.lv-folio__card-row.astro-dvu5zfqa dd.astro-dvu5zfqa a.astro-dvu5zfqa:focus-visible{outline:var(--lv-focus-width) solid var(--lv-text-on-brand);outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}.lv-folio__card-note.astro-dvu5zfqa{margin:var(--lv-space-2) 0 0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-folio__card-cta.astro-dvu5zfqa{inline-size:100%;margin-block-start:var(--lv-space-4);background:var(--lv-text-on-brand);color:var(--lv-brand-strong);box-shadow:none}.lv-folio__card-cta.astro-dvu5zfqa:hover{background:color-mix(in oklab,var(--lv-text-on-brand) 92%,var(--lv-brand-strong));color:var(--lv-brand-strong)}.lv-folio__marks.astro-dvu5zfqa{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-4) var(--lv-space-7);margin:0;padding:var(--lv-space-4) 0 0;border-block-start:1px solid var(--lv-line);list-style:none}.lv-folio--aside.astro-dvu5zfqa .lv-folio__marks.astro-dvu5zfqa,.lv-folio--stat-rail.astro-dvu5zfqa .lv-folio__marks.astro-dvu5zfqa{grid-column:1 / -1}.lv-folio__mark-link.astro-dvu5zfqa{display:inline-flex;align-items:center;color:var(--lv-text-tertiary);text-decoration:none;opacity:0.72;transition:opacity var(--lv-dur-fast) var(--lv-ease)}.lv-folio__mark-link.astro-dvu5zfqa:hover{opacity:1}.lv-folio__mark-img.astro-dvu5zfqa{block-size:1.75rem;inline-size:auto;filter:var(--lv-mark-filter, grayscale(1))}.lv-folio--scrim-soft.astro-dvu5zfqa .lv-folio__mark-img.astro-dvu5zfqa,.lv-folio--scrim-strong.astro-dvu5zfqa .lv-folio__mark-img.astro-dvu5zfqa{filter:grayscale(1) invert(1) brightness(1.6);mix-blend-mode:screen}.lv-folio__mark-name.astro-dvu5zfqa{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold);letter-spacing:0.04em}.lv-folio--full.astro-dvu5zfqa .lv-folio__inner.astro-dvu5zfqa{flex:1 1 auto}.lv-folio--full.astro-dvu5zfqa.lv-folio--anchor-top .lv-folio__inner.astro-dvu5zfqa{align-content:space-between}@container (min-width: 56rem){.lv-folio--aside.astro-dvu5zfqa .lv-folio__inner.astro-dvu5zfqa{grid-template-columns:minmax(0,1.7fr) minmax(16rem,0.9fr);align-items:start}.lv-folio--stat-rail.astro-dvu5zfqa:not(.lv-folio--aside) .lv-folio__statement.astro-dvu5zfqa{max-width:none}.lv-folio--stat-rail.astro-dvu5zfqa:not(.lv-folio--aside) .lv-folio__ladder.astro-dvu5zfqa{grid-template-columns:minmax(0,1.5fr) minmax(12rem,0.85fr);column-gap:var(--lv-space-7);align-items:start}.lv-folio--stat-rail.astro-dvu5zfqa:not(.lv-folio--aside) .lv-folio__rung--promise.astro-dvu5zfqa{max-inline-size:var(--lv-measure);align-self:start}}@media (prefers-reduced-motion: reduce){.lv-folio__step-aside.astro-dvu5zfqa,.lv-folio__card-row.astro-dvu5zfqa dd.astro-dvu5zfqa a.astro-dvu5zfqa,.lv-folio__mark-link.astro-dvu5zfqa{transition-duration:0.01ms}}.lv-folio.astro-dvu5zfqa[data-lv-hero-image=split][data-lv-bleed]{padding-inline:var(--lv-gutter)}.lv-folio.astro-dvu5zfqa[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-9)}.lv-folio--compact.astro-dvu5zfqa[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-7)}.lv-folio--tall.astro-dvu5zfqa[data-lv-hero-image=split]{--lv-heroimg-block-reach: calc(var(--lv-space-9) * 1.6)}.lv-folio--full.astro-dvu5zfqa[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-7)}@container (min-width: 52rem){.lv-folio.astro-dvu5zfqa[data-lv-hero-image=split] .lv-folio__inner.astro-dvu5zfqa,.lv-folio.astro-dvu5zfqa[data-lv-hero-image=framed] .lv-folio__inner.astro-dvu5zfqa,.lv-folio.astro-dvu5zfqa[data-lv-hero-image=offset] .lv-folio__inner.astro-dvu5zfqa{grid-template-columns:minmax(0,1fr);grid-template-areas:none}.lv-folio.astro-dvu5zfqa[data-lv-hero-image=split] .astro-dvu5zfqa:is(.lv-folio__card,.lv-folio__marks),.lv-folio.astro-dvu5zfqa[data-lv-hero-image=framed] .astro-dvu5zfqa:is(.lv-folio__card,.lv-folio__marks),.lv-folio.astro-dvu5zfqa[data-lv-hero-image=offset] .astro-dvu5zfqa:is(.lv-folio__card,.lv-folio__marks){grid-area:auto;grid-column:auto;justify-self:stretch;align-self:auto}}@container (min-width: 52rem){.lv-folio--centered.astro-dvu5zfqa[data-lv-hero-image=split] .lv-folio__statement.astro-dvu5zfqa,.lv-folio--centered.astro-dvu5zfqa[data-lv-hero-image=framed] .lv-folio__statement.astro-dvu5zfqa,.lv-folio--centered.astro-dvu5zfqa[data-lv-hero-image=offset] .lv-folio__statement.astro-dvu5zfqa{text-align:start;margin-inline:0}.lv-folio--centered.astro-dvu5zfqa[data-lv-hero-image=split] .lv-folio__title.astro-dvu5zfqa,.lv-folio--centered.astro-dvu5zfqa[data-lv-hero-image=framed] .lv-folio__title.astro-dvu5zfqa,.lv-folio--centered.astro-dvu5zfqa[data-lv-hero-image=offset] .lv-folio__title.astro-dvu5zfqa{margin-inline:0}.lv-folio--centered.astro-dvu5zfqa[data-lv-hero-image=split] .astro-dvu5zfqa:is(.lv-folio__rung--fact,.lv-folio__step,.lv-folio__proof),.lv-folio--centered.astro-dvu5zfqa[data-lv-hero-image=framed] .astro-dvu5zfqa:is(.lv-folio__rung--fact,.lv-folio__step,.lv-folio__proof),.lv-folio--centered.astro-dvu5zfqa[data-lv-hero-image=offset] .astro-dvu5zfqa:is(.lv-folio__rung--fact,.lv-folio__step,.lv-folio__proof){justify-content:flex-start}}
/* components/open.pitch/renderers/ghost-corner.astro */
.lv-corner.astro-6zvfg5ui{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-block-size:calc(var(--lv-stage-vh, 100svh) - var(--lv-nav-height, 0px));padding:var(--lv-space-8) var(--lv-gutter);color:var(--lv-text-on-brand)}.lv-corner--anchor-top.astro-6zvfg5ui{justify-content:flex-start}.lv-corner__bg.astro-6zvfg5ui{position:absolute;inset:0;z-index:-1;overflow:hidden}.lv-corner__bg.astro-6zvfg5ui img.astro-6zvfg5ui{inline-size:100%;block-size:100%;object-fit:cover;object-position:50% 45%}.lv-corner__bg.astro-6zvfg5ui::after{content:"";position:absolute;inset:0;background:rgb(var(--lv-glass-under) / calc(var(--lv-corner-scrim, 0.62) * 1.05));-webkit-mask-image:linear-gradient(to right,currentColor 0%,currentColor 48%,transparent 84%),linear-gradient(var(--lv-corner-dir, to top),currentColor 0%,currentColor 52%,transparent 94%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,currentColor 0%,currentColor 48%,transparent 84%),linear-gradient(var(--lv-corner-dir, to top),currentColor 0%,currentColor 52%,transparent 94%);mask-composite:intersect}.lv-corner--anchor-top.astro-6zvfg5ui{--lv-corner-dir: to bottom}.lv-corner--scrim-strong.astro-6zvfg5ui{--lv-corner-scrim: 0.82}.lv-corner.astro-6zvfg5ui[data-lv-hero-image=full-bleed]>.lv-sec__inner.astro-6zvfg5ui::before{content:none}.lv-corner__inner.astro-6zvfg5ui{color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 34%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand);inline-size:100%}.lv-corner__lockup.astro-6zvfg5ui{display:grid;justify-items:start;gap:var(--lv-space-3);max-inline-size:min(100%,36rem);text-align:start}.lv-corner__zone.astro-6zvfg5ui{display:contents}.lv-corner__eyebrow.astro-6zvfg5ui{font-size:var(--lv-text-xs);letter-spacing:0.24em;text-transform:uppercase}.lv-corner__title.astro-6zvfg5ui{margin:0;font-size:var(--lv-hero-display, clamp(var(--lv-text-2xl), 6cqi, 5rem));font-weight:var(--lv-weight-light, var(--lv-weight-heading));line-height:0.98;letter-spacing:var(--lv-display-tracking, -0.01em);text-wrap:balance;color:var(--lv-text-primary)}.lv-corner__promise.astro-6zvfg5ui{margin:0;max-inline-size:34ch;font-family:var(--lv-display-family);font-style:italic;font-size:var(--lv-text-lg);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary)}.lv-corner__actions.astro-6zvfg5ui{display:flex;flex-wrap:wrap;gap:0 var(--lv-space-6);margin-block-start:var(--lv-space-5)}.lv-corner__act.astro-6zvfg5ui{position:relative;display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-xs);font-weight:var(--lv-weight-medium);letter-spacing:0.24em;text-transform:uppercase;color:var(--lv-text-primary);text-decoration:none}.lv-corner__act.astro-6zvfg5ui::after{content:"";position:absolute;inset-inline-start:0;inset-block-end:8px;inline-size:60%;block-size:1px;background:currentColor;transition:inline-size var(--lv-dur-state) var(--lv-ease)}.lv-corner__act.astro-6zvfg5ui:hover::after,.lv-corner__act.astro-6zvfg5ui:focus-visible::after{inline-size:100%}.lv-corner__act.astro-6zvfg5ui:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-corner__small.astro-6zvfg5ui{margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-corner__proof.astro-6zvfg5ui,.lv-corner__facts.astro-6zvfg5ui,.lv-corner__marks.astro-6zvfg5ui{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-2) var(--lv-space-6);margin:var(--lv-space-3) 0 0;padding:var(--lv-space-3) 0 0;list-style:none;border-block-start:1px solid var(--lv-line)}.lv-corner__avatars.astro-6zvfg5ui{display:flex;margin:0;padding:0;list-style:none}.lv-corner__avatars.astro-6zvfg5ui>li.astro-6zvfg5ui{display:contents}.lv-corner__avatar.astro-6zvfg5ui{--lv-portrait-size: 2.25rem;border:2px solid var(--lv-text-on-brand)}.lv-corner__avatars.astro-6zvfg5ui>li.astro-6zvfg5ui:not(:first-child)>.lv-corner__avatar.astro-6zvfg5ui{margin-inline-start:-0.6rem}.lv-corner__rating.astro-6zvfg5ui{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-2);margin:0}.lv-corner__fact.astro-6zvfg5ui{display:grid;gap:2px}.lv-corner__fact.astro-6zvfg5ui dt.astro-6zvfg5ui{margin:0;font-family:var(--lv-display-family);font-size:var(--lv-text-lg)}.lv-corner__fact.astro-6zvfg5ui dd.astro-6zvfg5ui{margin:0;letter-spacing:0.14em;text-transform:uppercase}.lv-corner__mark.astro-6zvfg5ui{display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-xs);letter-spacing:0.14em;text-transform:uppercase;color:var(--lv-text-tertiary);text-decoration:none}.lv-corner__mark-img.astro-6zvfg5ui{block-size:1.5rem;inline-size:auto;filter:grayscale(1) invert(1) brightness(1.6)}.lv-corner__card.astro-6zvfg5ui{inline-size:min(100%,24rem);margin-block-start:var(--lv-space-4);padding:var(--lv-space-5);background:var(--lv-brand-strong);color:var(--lv-text-on-brand)}.lv-corner__card-title.astro-6zvfg5ui{margin:0 0 var(--lv-space-2);font-size:var(--lv-text-xs);letter-spacing:0.24em;text-transform:uppercase}.lv-corner__card-rows.astro-6zvfg5ui{margin:0}.lv-corner__card-row.astro-6zvfg5ui{display:flex;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-2);border-block-start:1px solid var(--lv-line);font-size:var(--lv-text-sm)}.lv-corner__card-row.astro-6zvfg5ui dt.astro-6zvfg5ui,.lv-corner__card-row.astro-6zvfg5ui dd.astro-6zvfg5ui{margin:0}.lv-corner__card-row.astro-6zvfg5ui a.astro-6zvfg5ui{color:inherit;text-underline-offset:0.25em}@container (min-width: 56rem){.lv-corner__lockup.astro-6zvfg5ui{max-inline-size:min(100%,58cqi)}.lv-corner__lockup.astro-6zvfg5ui>.lv-corner__zone.astro-6zvfg5ui>.astro-6zvfg5ui:not(.lv-corner__title){max-inline-size:44cqi}.lv-corner--stat-rail.astro-6zvfg5ui .lv-corner__lockup.astro-6zvfg5ui{max-inline-size:none;grid-template-columns:minmax(0,44%) 1fr;column-gap:var(--lv-space-8)}.lv-corner--stat-rail.astro-6zvfg5ui .lv-corner__lockup.astro-6zvfg5ui>.lv-corner__zone.astro-6zvfg5ui>.astro-6zvfg5ui{grid-column:1}.lv-corner--stat-rail.astro-6zvfg5ui .lv-corner__facts.astro-6zvfg5ui{grid-column:2;grid-row:1 / span 6;align-self:end;justify-self:end;flex-direction:column;align-items:flex-start;padding:var(--lv-space-4) var(--lv-space-5);border:0;background:rgb(var(--lv-glass-under) / calc(var(--lv-corner-scrim, 0.62) * 0.9))}}@media (max-width: 37.5rem){.lv-corner.astro-6zvfg5ui{padding-block:var(--lv-space-7)}.lv-corner__lockup.astro-6zvfg5ui{justify-items:center;margin-inline:auto;text-align:center}.lv-corner__actions.astro-6zvfg5ui{flex-direction:column;align-items:center}.lv-corner__act.astro-6zvfg5ui::after{inset-inline-start:20%}.lv-corner__act.astro-6zvfg5ui:hover::after,.lv-corner__act.astro-6zvfg5ui:focus-visible::after{inset-inline-start:0}.lv-corner__proof.astro-6zvfg5ui,.lv-corner__facts.astro-6zvfg5ui,.lv-corner__marks.astro-6zvfg5ui{justify-content:center}.lv-corner__bg.astro-6zvfg5ui::after{-webkit-mask-image:none;mask-image:none;background:linear-gradient(var(--lv-corner-dir, to top),rgb(var(--lv-glass-under) / calc(var(--lv-corner-scrim, 0.62) * 0.98)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-corner-scrim, 0.62) * 0.72)) 42%,rgb(var(--lv-glass-under) / calc(var(--lv-corner-scrim, 0.62) * 0.3)) 70%,rgb(var(--lv-glass-under) / 0.04) 100%)}}@media (prefers-reduced-motion: reduce){.lv-corner__act.astro-6zvfg5ui::after{transition-duration:0.01ms}}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-corner__lockup.astro-6zvfg5ui{animation:lv-corner-park linear both;animation-timeline:view();animation-range:exit 0% exit 70%}@keyframes lv-corner-park{from{transform:translate3d(0,0,0);opacity:1}to{transform:translate3d(0,-32px,0);opacity:0.35}}}}
/* components/open.pitch/renderers/ghost-start.astro */
.lv-gstart.astro-vhsuzlos{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:center;min-block-size:calc(var(--lv-stage-vh, 100svh) - var(--lv-nav-height, 0px));padding:var(--lv-space-9) var(--lv-gutter) var(--lv-space-8);color:var(--lv-text-on-brand)}.lv-gstart--anchor-top.astro-vhsuzlos{justify-content:flex-start}.lv-gstart__bg.astro-vhsuzlos{position:absolute;inset:0;z-index:-1;overflow:hidden;background:rgb(var(--lv-glass-under))}.lv-gstart__bg.astro-vhsuzlos img.astro-vhsuzlos{inline-size:100%;block-size:100%;object-fit:cover}.lv-gstart__bg.astro-vhsuzlos::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,rgb(var(--lv-glass-under) / calc(var(--lv-gstart-scrim, 0.62) * 1.1)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-gstart-scrim, 0.62) * 0.95)) 40%,rgb(var(--lv-glass-under) / calc(var(--lv-gstart-scrim, 0.62) * 0.35)) 62%,rgb(var(--lv-glass-under) / 0) 78%)}.lv-gstart--scrim-strong.astro-vhsuzlos{--lv-gstart-scrim: 0.82}.lv-gstart.astro-vhsuzlos[data-lv-hero-image=full-bleed]>.lv-sec__inner.astro-vhsuzlos::before{content:none}.lv-gstart__inner.astro-vhsuzlos{color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 34%, transparent);inline-size:100%}.lv-gstart__lockup.astro-vhsuzlos{display:grid;justify-items:start;gap:var(--lv-space-4);max-inline-size:min(100%,62cqi);text-align:start}.lv-gstart__zone.astro-vhsuzlos{display:contents}.lv-gstart__eyebrow.astro-vhsuzlos{font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase}.lv-gstart__title.astro-vhsuzlos{margin:0;max-inline-size:22ch;font-size:var(--lv-hero-display, clamp(var(--lv-text-2xl), 6cqi, 5rem));font-weight:var(--lv-weight-heading);line-height:1;letter-spacing:var(--lv-display-tracking, 0);text-transform:uppercase;text-wrap:balance;color:var(--lv-text-primary)}.lv-gstart__promise.astro-vhsuzlos{margin:0;max-inline-size:48ch;font-size:var(--lv-text-lg);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary)}.lv-gstart__actions.astro-vhsuzlos{display:flex;flex-wrap:wrap;gap:var(--lv-space-3);margin-block-start:var(--lv-space-4)}.lv-gstart__act.astro-vhsuzlos{min-inline-size:12rem;justify-content:center}.lv-gstart__act--outline.astro-vhsuzlos{box-shadow:inset 0 0 0 1px currentColor;color:var(--lv-text-primary)}.lv-gstart__small.astro-vhsuzlos{margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-gstart__proof.astro-vhsuzlos,.lv-gstart__facts.astro-vhsuzlos,.lv-gstart__marks.astro-vhsuzlos{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-2) var(--lv-space-6);margin:var(--lv-space-3) 0 0;padding:var(--lv-space-3) 0 0;list-style:none;border-block-start:1px solid var(--lv-line)}.lv-gstart__avatars.astro-vhsuzlos{display:flex;margin:0;padding:0;list-style:none}.lv-gstart__avatars.astro-vhsuzlos>li.astro-vhsuzlos{display:contents}.lv-gstart__avatar.astro-vhsuzlos{--lv-portrait-size: 2.25rem;border:2px solid var(--lv-text-on-brand)}.lv-gstart__avatars.astro-vhsuzlos>li.astro-vhsuzlos:not(:first-child)>.lv-gstart__avatar.astro-vhsuzlos{margin-inline-start:-0.6rem}.lv-gstart__rating.astro-vhsuzlos{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-2);margin:0}.lv-gstart__fact.astro-vhsuzlos{display:grid;gap:2px}.lv-gstart__fact.astro-vhsuzlos dt.astro-vhsuzlos{margin:0;font-size:var(--lv-text-lg)}.lv-gstart__fact.astro-vhsuzlos dd.astro-vhsuzlos{margin:0}.lv-gstart__mark.astro-vhsuzlos{display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary);text-decoration:none}.lv-gstart__mark-img.astro-vhsuzlos{block-size:1.5rem;inline-size:auto;filter:grayscale(1) invert(1) brightness(1.6)}.lv-gstart__card.astro-vhsuzlos{inline-size:min(100%,24rem);margin-block-start:var(--lv-space-4);padding:var(--lv-space-5);background:var(--lv-brand-strong);color:var(--lv-text-on-brand)}.lv-gstart__card-title.astro-vhsuzlos{margin:0 0 var(--lv-space-2);font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase}.lv-gstart__card-rows.astro-vhsuzlos{margin:0}.lv-gstart__card-row.astro-vhsuzlos{display:flex;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-2);border-block-start:1px solid var(--lv-line);font-size:var(--lv-text-sm)}.lv-gstart__card-row.astro-vhsuzlos dt.astro-vhsuzlos,.lv-gstart__card-row.astro-vhsuzlos dd.astro-vhsuzlos{margin:0}.lv-gstart__card-row.astro-vhsuzlos a.astro-vhsuzlos{color:inherit;text-underline-offset:0.25em}.lv-gstart__card-cta.astro-vhsuzlos{margin-block-start:var(--lv-space-4)}@media (max-width: 56.249rem){.lv-gstart.astro-vhsuzlos{justify-content:flex-end;padding-block:var(--lv-space-8) var(--lv-space-7)}.lv-gstart__lockup.astro-vhsuzlos{max-inline-size:none}.lv-gstart__actions.astro-vhsuzlos{flex-direction:column;align-items:stretch;inline-size:100%}.lv-gstart__act.astro-vhsuzlos{inline-size:100%}.lv-gstart__bg.astro-vhsuzlos::after{background:linear-gradient(to top,rgb(var(--lv-glass-under) / calc(var(--lv-gstart-scrim, 0.62) * 1.2)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-gstart-scrim, 0.62) * 0.9)) 45%,rgb(var(--lv-glass-under) / calc(var(--lv-gstart-scrim, 0.62) * 0.3)) 72%,rgb(var(--lv-glass-under) / 0.04) 100%)}}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-gstart__lockup.astro-vhsuzlos{animation:lv-gstart-park linear both;animation-timeline:view();animation-range:exit 0% exit 70%}@keyframes lv-gstart-park{from{transform:translate3d(0,0,0);opacity:1}to{transform:translate3d(0,-32px,0);opacity:0.35}}}}
/* components/open.pitch/renderers/ghost.astro */
.lv-ghost.astro-5plpp7w3{position:relative;isolation:isolate}.lv-ghost.astro-5plpp7w3[data-lv-bleed]{padding-block:var(--lv-space-9);padding-inline:var(--lv-gutter)}.lv-ghost--compact.astro-5plpp7w3[data-lv-bleed]{padding-block:var(--lv-space-7)}.lv-ghost--tall.astro-5plpp7w3[data-lv-bleed]{padding-block:calc(var(--lv-space-9) * 1.6)}.lv-ghost--full.astro-5plpp7w3{display:flex;flex-direction:column;min-block-size:calc(var(--lv-stage-vh, 100svh) - var(--lv-nav-height, 0px))}.lv-ghost--full.astro-5plpp7w3[data-lv-bleed]{padding-block:var(--lv-space-7)}.lv-ghost--full.astro-5plpp7w3.lv-ghost--anchor-bottom .lv-ghost__inner.astro-5plpp7w3{margin-block-start:auto}.lv-ghost--full.astro-5plpp7w3:not(.lv-ghost--centered)>.lv-ghost__inner.astro-5plpp7w3{inline-size:100%}.lv-ghost__bg.astro-5plpp7w3{position:absolute;inset:0;z-index:-1;overflow:hidden}.lv-ghost__bg.astro-5plpp7w3 img.astro-5plpp7w3{inline-size:100%;block-size:100%;object-fit:cover}.lv-ghost--anchor-bottom.astro-5plpp7w3{--lv-ghost-scrim-dir: to top}.lv-ghost--anchor-top.astro-5plpp7w3{--lv-ghost-scrim-dir: to bottom}.lv-ghost--scrim-soft.astro-5plpp7w3 .lv-ghost__bg.astro-5plpp7w3::after,.lv-ghost--scrim-strong.astro-5plpp7w3 .lv-ghost__bg.astro-5plpp7w3::after{content:"";position:absolute;inset:0;background:linear-gradient(var(--lv-ghost-scrim-dir, to top),rgb(var(--lv-glass-under) / calc(var(--lv-ghost-scrim, 0.62) * 0.92)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-ghost-scrim, 0.62) * 0.58)) 38%,rgb(var(--lv-glass-under) / calc(var(--lv-ghost-scrim, 0.62) * 0.20)) 68%,rgb(var(--lv-glass-under) / calc(var(--lv-ghost-scrim, 0.62) * 0.05)) 100%),linear-gradient(100deg,rgb(var(--lv-glass-under) / calc(var(--lv-ghost-scrim, 0.62) * 0.34)) 0%,transparent 55%)}.lv-ghost--scrim-strong.astro-5plpp7w3{--lv-ghost-scrim: 0.82}@media (max-width: 700px){.lv-ghost--scrim-soft.astro-5plpp7w3 .lv-ghost__bg.astro-5plpp7w3::after,.lv-ghost--scrim-strong.astro-5plpp7w3 .lv-ghost__bg.astro-5plpp7w3::after{background:linear-gradient(var(--lv-ghost-scrim-dir, to top),rgb(var(--lv-glass-under) / calc(var(--lv-ghost-scrim, 0.62) * 0.98)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-ghost-scrim, 0.62) * 0.72)) 42%,rgb(var(--lv-glass-under) / calc(var(--lv-ghost-scrim, 0.62) * 0.32)) 70%,rgb(var(--lv-glass-under) / calc(var(--lv-ghost-scrim, 0.62) * 0.08)) 100%)}}.lv-ghost--scrim-soft.astro-5plpp7w3 .lv-ghost__inner.astro-5plpp7w3,.lv-ghost--scrim-strong.astro-5plpp7w3 .lv-ghost__inner.astro-5plpp7w3{color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 28%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-ghost--scrim-soft.astro-5plpp7w3 .lv-sec__eyebrow.astro-5plpp7w3,.lv-ghost--scrim-strong.astro-5plpp7w3 .lv-sec__eyebrow.astro-5plpp7w3{color:var(--lv-text-on-brand)}.lv-ghost__inner.astro-5plpp7w3{position:relative;display:grid;gap:var(--lv-space-6)}.lv-ghost__zone--counter.astro-5plpp7w3,.lv-ghost__zone--foot.astro-5plpp7w3{display:contents}.lv-ghost--full.astro-5plpp7w3 .lv-ghost__inner.astro-5plpp7w3{flex:1 1 auto}.lv-ghost--full.astro-5plpp7w3.lv-ghost--anchor-top .lv-ghost__inner.astro-5plpp7w3{align-content:space-between}.lv-ghost__viewfinder.astro-5plpp7w3{position:absolute;inset:calc(var(--lv-space-5) * -1);border:1px solid var(--lv-line);pointer-events:none}@media (max-width: 700px){.lv-ghost__viewfinder.astro-5plpp7w3{display:none}}.lv-ghost__lockup.astro-5plpp7w3{max-width:var(--lv-measure)}.lv-ghost--centered.astro-5plpp7w3 .lv-ghost__lockup.astro-5plpp7w3{margin-inline:auto;text-align:center}.lv-ghost__title.astro-5plpp7w3{margin:0;max-inline-size:18ch;font-size:var(--lv-hero-display, clamp(var(--lv-text-2xl), 5cqi, 3.25rem));font-weight:var(--lv-weight-light, var(--lv-weight-regular));line-height:var(--lv-leading-tight);color:var(--lv-text-primary)}.lv-ghost--centered.astro-5plpp7w3 .lv-ghost__title.astro-5plpp7w3{margin-inline:auto}.lv-ghost__tagline.astro-5plpp7w3{margin-block-start:var(--lv-space-4);font-size:var(--lv-text-lg);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-ghost__horizon.astro-5plpp7w3{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--lv-space-5) var(--lv-space-7);padding-block-start:var(--lv-space-5);border-block-start:1px solid var(--lv-line)}.lv-ghost--centered.astro-5plpp7w3 .lv-ghost__horizon.astro-5plpp7w3{justify-content:center}.lv-ghost__acts.astro-5plpp7w3{display:flex;flex-wrap:wrap;gap:var(--lv-space-3)}.lv-ghost__act.astro-5plpp7w3{display:inline-flex;align-items:center;justify-content:center;min-block-size:44px;padding:var(--lv-space-3) var(--lv-space-6);border:1px solid var(--lv-line);border-radius:var(--lv-radius-pill);color:var(--lv-text-primary);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold);text-decoration:none;background:transparent;transition:background-color var(--lv-dur-state) var(--lv-ease),border-color var(--lv-dur-state) var(--lv-ease)}.lv-ghost__act.astro-5plpp7w3:hover{border-color:var(--lv-text-primary);background:color-mix(in oklab,currentColor 12%,transparent)}.lv-ghost__act--lead.astro-5plpp7w3{color:var(--lv-btn-primary-ink);background:var(--lv-btn-primary-surface);border:var(--lv-btn-primary-border);box-shadow:var(--lv-btn-primary-shadow);transition:background var(--lv-dur-state) var(--lv-ease),box-shadow var(--lv-dur-state) var(--lv-ease)}.lv-ghost__act--lead.astro-5plpp7w3:hover{background:var(--lv-btn-primary-surface-hover);box-shadow:var(--lv-btn-primary-shadow-hover)}.lv-ghost__act.astro-5plpp7w3:active{transform:scale(0.98)}.lv-ghost__act.astro-5plpp7w3:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}@media (max-width: 480px){.lv-ghost__acts.astro-5plpp7w3{flex-direction:column;align-items:stretch}}.lv-ghost__facts.astro-5plpp7w3{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-2) var(--lv-space-6);margin:0}.lv-ghost--centered.astro-5plpp7w3 .lv-ghost__facts.astro-5plpp7w3{justify-content:center}.lv-ghost--full.astro-5plpp7w3.lv-ghost--scrim-soft .lv-ghost__facts.astro-5plpp7w3,.lv-ghost--full.astro-5plpp7w3.lv-ghost--scrim-strong .lv-ghost__facts.astro-5plpp7w3{gap:var(--lv-space-2) var(--lv-space-8);padding-block-start:var(--lv-space-4);border-block-start:1px solid color-mix(in oklch,currentColor 28%,transparent)}.lv-ghost--full.astro-5plpp7w3.lv-ghost--scrim-soft .lv-ghost__fact-value.astro-5plpp7w3,.lv-ghost--full.astro-5plpp7w3.lv-ghost--scrim-strong .lv-ghost__fact-value.astro-5plpp7w3{font-size:var(--lv-text-lg)}.lv-ghost__fact.astro-5plpp7w3{display:flex;align-items:baseline;gap:var(--lv-space-2)}.lv-ghost__fact-value.astro-5plpp7w3{margin:0;font-size:var(--lv-text-md);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-ghost__fact-unit.astro-5plpp7w3{margin-inline-start:0.2em;font-family:var(--lv-font-ui);font-size:var(--lv-text-xs);font-weight:var(--lv-weight-medium);letter-spacing:normal;color:var(--lv-text-tertiary)}.lv-ghost__fact-label.astro-5plpp7w3{margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-ghost__proof.astro-5plpp7w3{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-2) var(--lv-space-4)}.lv-ghost--centered.astro-5plpp7w3 .lv-ghost__proof.astro-5plpp7w3{justify-content:center}.lv-ghost__proof-avatars.astro-5plpp7w3{display:flex;align-items:center;margin:0;padding:0;list-style:none}.lv-ghost__proof-avatars.astro-5plpp7w3>li.astro-5plpp7w3{display:contents}.lv-ghost__proof-avatar.astro-5plpp7w3{--lv-portrait-size: 2.25rem;border:2px solid var(--lv-surface);flex-shrink:0}.lv-ghost__proof-avatars.astro-5plpp7w3>li.astro-5plpp7w3:not(:first-child)>.lv-ghost__proof-avatar.astro-5plpp7w3{margin-inline-start:-0.6rem}.lv-ghost__proof-rating.astro-5plpp7w3{display:flex;align-items:baseline;gap:var(--lv-space-2);margin:0;font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-ghost__proof-of.astro-5plpp7w3{font-size:var(--lv-text-xs);font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-ghost__proof-stars.astro-5plpp7w3{margin-inline-start:2px}.lv-ghost__proof-label.astro-5plpp7w3{font-size:var(--lv-text-xs);font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-ghost__proof-line.astro-5plpp7w3{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary);max-inline-size:32ch}.lv-ghost--scrim-soft.astro-5plpp7w3 .lv-trust-mark.astro-5plpp7w3,.lv-ghost--scrim-strong.astro-5plpp7w3 .lv-trust-mark.astro-5plpp7w3{background:var(--lv-text-on-brand)}.lv-ghost__card.astro-5plpp7w3{align-self:start;inline-size:100%;max-inline-size:26rem;padding:var(--lv-space-6);border-radius:var(--lv-radius-lg);background:var(--lv-brand-strong);box-shadow:var(--lv-lift-3);color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand);--lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-ghost--centered.astro-5plpp7w3 .lv-ghost__card.astro-5plpp7w3{margin-inline:auto}.lv-ghost__card-title.astro-5plpp7w3{margin:0 0 var(--lv-space-3);font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-mono);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);font-variant-caps:var(--lv-display-variant, normal)}.lv-ghost__card-rows.astro-5plpp7w3{margin:0}.lv-ghost__card-row.astro-5plpp7w3{display:flex;align-items:baseline;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-3);border-block-start:1px solid var(--lv-line)}.lv-ghost__card-row.astro-5plpp7w3 dt.astro-5plpp7w3{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-ghost__card-row.astro-5plpp7w3 dd.astro-5plpp7w3{margin:0;text-align:end;font-weight:var(--lv-weight-medium);color:var(--lv-text-primary)}.lv-ghost__card-row.astro-5plpp7w3 dd.astro-5plpp7w3 a.astro-5plpp7w3{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in oklab,var(--lv-text-on-brand) 40%,transparent);transition:text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-ghost__card-row.astro-5plpp7w3 dd.astro-5plpp7w3 a.astro-5plpp7w3:hover{text-decoration-thickness:2px;text-decoration-color:var(--lv-text-on-brand)}.lv-ghost__card-row.astro-5plpp7w3 dd.astro-5plpp7w3 a.astro-5plpp7w3:focus-visible{outline:var(--lv-focus-width) solid var(--lv-text-on-brand);outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}.lv-ghost__card-note.astro-5plpp7w3{margin:var(--lv-space-2) 0 0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-ghost__card-cta.astro-5plpp7w3{inline-size:100%;margin-block-start:var(--lv-space-4);background:var(--lv-text-on-brand);color:var(--lv-brand-strong);box-shadow:none}.lv-ghost__card-cta.astro-5plpp7w3:hover{background:color-mix(in oklab,var(--lv-text-on-brand) 92%,var(--lv-brand-strong));color:var(--lv-brand-strong)}.lv-ghost--aside.astro-5plpp7w3 .lv-ghost__marks.astro-5plpp7w3{grid-column:1 / -1}.lv-ghost__marks.astro-5plpp7w3{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-4) var(--lv-space-7);margin:0;padding:var(--lv-space-4) 0 0;border-block-start:1px solid var(--lv-line);list-style:none}.lv-ghost__mark-link.astro-5plpp7w3{display:inline-flex;align-items:center;color:var(--lv-text-tertiary);text-decoration:none;opacity:0.72;transition:opacity var(--lv-dur-fast) var(--lv-ease)}.lv-ghost__mark-link.astro-5plpp7w3:hover{opacity:1}.lv-ghost__mark-link.astro-5plpp7w3:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-ghost__mark-img.astro-5plpp7w3{block-size:1.75rem;inline-size:auto;filter:var(--lv-mark-filter, grayscale(1))}.lv-ghost--scrim-soft.astro-5plpp7w3 .lv-ghost__mark-img.astro-5plpp7w3,.lv-ghost--scrim-strong.astro-5plpp7w3 .lv-ghost__mark-img.astro-5plpp7w3{filter:grayscale(1) invert(1) brightness(1.6);mix-blend-mode:screen}.lv-ghost__mark-name.astro-5plpp7w3{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold);letter-spacing:0.04em}@container (min-width: 56rem){.lv-ghost--split.astro-5plpp7w3 .lv-ghost__lockup.astro-5plpp7w3{max-width:min(var(--lv-measure),58%)}.lv-ghost--stat-rail.astro-5plpp7w3:not(.lv-ghost--aside) .lv-ghost__horizon.astro-5plpp7w3{align-items:end;flex-wrap:nowrap}.lv-ghost--stat-rail.astro-5plpp7w3:not(.lv-ghost--aside) .lv-ghost__facts.astro-5plpp7w3{flex-direction:column;align-items:flex-end;gap:var(--lv-space-3);padding-inline-start:var(--lv-space-6);border-inline-start:1px solid var(--lv-line)}.lv-ghost--stat-rail.astro-5plpp7w3:not(.lv-ghost--aside) .lv-ghost__fact.astro-5plpp7w3{flex-direction:column;align-items:flex-end;gap:0}.lv-ghost--aside.astro-5plpp7w3 .lv-ghost__inner.astro-5plpp7w3{grid-template-columns:minmax(0,1.6fr) minmax(16rem,0.9fr);grid-template-areas:"lockup card" "horizon card" "proof card";align-items:start;column-gap:var(--lv-space-7)}.lv-ghost--aside.astro-5plpp7w3 .lv-ghost__lockup.astro-5plpp7w3{grid-area:lockup}.lv-ghost--aside.astro-5plpp7w3 .lv-ghost__horizon.astro-5plpp7w3{grid-area:horizon}.lv-ghost--aside.astro-5plpp7w3 .lv-ghost__proof.astro-5plpp7w3{grid-area:proof}.lv-ghost--aside.astro-5plpp7w3 .lv-ghost__card.astro-5plpp7w3{grid-area:card;justify-self:end}}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-ghost__lockup.astro-5plpp7w3{animation:lv-ghost-park linear both;animation-timeline:view();animation-range:exit 0% exit 100%;will-change:transform,opacity}@keyframes lv-ghost-park{from{transform:translate3d(0,0,0);opacity:1}to{transform:translate3d(0,calc(var(--lv-reveal-distance, 8px) * -1.5),0);opacity:0.62}}}}@media (prefers-reduced-motion: reduce){.lv-ghost__act.astro-5plpp7w3,.lv-ghost__card-row.astro-5plpp7w3 dd.astro-5plpp7w3 a.astro-5plpp7w3,.lv-ghost__mark-link.astro-5plpp7w3{transition-duration:0.01ms}}.lv-ghost.astro-5plpp7w3[data-lv-hero-image=split][data-lv-bleed]{padding-inline:var(--lv-gutter)}.lv-ghost.astro-5plpp7w3[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-9)}.lv-ghost--compact.astro-5plpp7w3[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-7)}.lv-ghost--tall.astro-5plpp7w3[data-lv-hero-image=split]{--lv-heroimg-block-reach: calc(var(--lv-space-9) * 1.6)}.lv-ghost--full.astro-5plpp7w3[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-7)}@container (min-width: 52rem){.lv-ghost.astro-5plpp7w3[data-lv-hero-image=split] .lv-ghost__inner.astro-5plpp7w3,.lv-ghost.astro-5plpp7w3[data-lv-hero-image=framed] .lv-ghost__inner.astro-5plpp7w3,.lv-ghost.astro-5plpp7w3[data-lv-hero-image=offset] .lv-ghost__inner.astro-5plpp7w3{grid-template-columns:minmax(0,1fr);grid-template-areas:none}.lv-ghost.astro-5plpp7w3[data-lv-hero-image=split] .astro-5plpp7w3:is(.lv-ghost__lockup,.lv-ghost__horizon,.lv-ghost__proof,.lv-ghost__card,.lv-ghost__marks),.lv-ghost.astro-5plpp7w3[data-lv-hero-image=framed] .astro-5plpp7w3:is(.lv-ghost__lockup,.lv-ghost__horizon,.lv-ghost__proof,.lv-ghost__card,.lv-ghost__marks),.lv-ghost.astro-5plpp7w3[data-lv-hero-image=offset] .astro-5plpp7w3:is(.lv-ghost__lockup,.lv-ghost__horizon,.lv-ghost__proof,.lv-ghost__card,.lv-ghost__marks){grid-area:auto;grid-column:auto;justify-self:stretch;align-self:auto}}@container (min-width: 52rem){.lv-ghost--centered.astro-5plpp7w3[data-lv-hero-image=split] .lv-ghost__lockup.astro-5plpp7w3,.lv-ghost--centered.astro-5plpp7w3[data-lv-hero-image=framed] .lv-ghost__lockup.astro-5plpp7w3,.lv-ghost--centered.astro-5plpp7w3[data-lv-hero-image=offset] .lv-ghost__lockup.astro-5plpp7w3{text-align:start;margin-inline:0}.lv-ghost--centered.astro-5plpp7w3[data-lv-hero-image=split] .lv-ghost__title.astro-5plpp7w3,.lv-ghost--centered.astro-5plpp7w3[data-lv-hero-image=framed] .lv-ghost__title.astro-5plpp7w3,.lv-ghost--centered.astro-5plpp7w3[data-lv-hero-image=offset] .lv-ghost__title.astro-5plpp7w3{margin-inline:0}.lv-ghost--centered.astro-5plpp7w3[data-lv-hero-image=split] .astro-5plpp7w3:is(.lv-ghost__horizon,.lv-ghost__facts,.lv-ghost__proof),.lv-ghost--centered.astro-5plpp7w3[data-lv-hero-image=framed] .astro-5plpp7w3:is(.lv-ghost__horizon,.lv-ghost__facts,.lv-ghost__proof),.lv-ghost--centered.astro-5plpp7w3[data-lv-hero-image=offset] .astro-5plpp7w3:is(.lv-ghost__horizon,.lv-ghost__facts,.lv-ghost__proof){justify-content:flex-start}}
/* components/open.pitch/renderers/orbit.astro */
.lv-orbit__inner.astro-hkmju4bd{position:relative;display:grid;grid-template-columns:minmax(0,1fr);row-gap:var(--lv-space-7);align-items:center}.lv-orbit__stage.astro-hkmju4bd{position:relative;justify-self:center;inline-size:min(80%,30rem);aspect-ratio:1}.lv-orbit__circle.astro-hkmju4bd{position:absolute;inset:6%;margin:0;clip-path:circle(closest-side);background:var(--lv-surface-sunken)}.lv-orbit__circle.astro-hkmju4bd img.astro-hkmju4bd{display:block;inline-size:100%;block-size:100%;object-fit:cover}.lv-orbit__arc.astro-hkmju4bd{position:absolute;inset:0;inline-size:100%;block-size:100%;overflow:visible}.lv-orbit__arc.astro-hkmju4bd path.astro-hkmju4bd{stroke:color-mix(in oklab,var(--lv-brand) 70%,transparent);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:0.07 0.035;vector-effect:non-scaling-stroke}.lv-orbit__copy.astro-hkmju4bd{display:grid;row-gap:var(--lv-space-5);justify-items:start}.lv-orbit__zone.astro-hkmju4bd{display:contents}.lv-orbit__title.astro-hkmju4bd{margin:0;max-inline-size:16ch;font-size:var(--lv-hero-display, var(--lv-text-2xl));font-weight:var(--lv-weight-heading);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-display-tracking, 0);text-wrap:balance;color:var(--lv-text-primary)}.lv-orbit__lede.astro-hkmju4bd{margin:0;max-inline-size:42ch;font-size:var(--lv-text-md);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-orbit__actions.astro-hkmju4bd{display:flex;flex-wrap:wrap;gap:var(--lv-space-3)}.lv-orbit--centered.astro-hkmju4bd .lv-orbit__copy.astro-hkmju4bd{justify-items:center;text-align:center}.lv-orbit__chips.astro-hkmju4bd{display:flex;flex-wrap:wrap;gap:var(--lv-space-3);margin:0}.lv-orbit__chip.astro-hkmju4bd{display:grid;gap:2px;padding:var(--lv-space-3) var(--lv-space-4);border-radius:var(--lv-radius-md);background:var(--lv-surface);box-shadow:var(--lv-lift-2);color:var(--lv-text-primary)}.lv-orbit__chip-value.astro-hkmju4bd{margin:0;font-size:var(--lv-text-md);font-weight:var(--lv-weight-semibold)}.lv-orbit__chip.astro-hkmju4bd dd.astro-hkmju4bd{margin:0}.lv-orbit__small.astro-hkmju4bd{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-orbit__proof.astro-hkmju4bd{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--lv-space-2) var(--lv-space-4)}.lv-orbit__avatars.astro-hkmju4bd{display:flex;margin:0;padding:0;list-style:none}.lv-orbit__avatars.astro-hkmju4bd>li.astro-hkmju4bd{display:contents}.lv-orbit__avatar.astro-hkmju4bd{--lv-portrait-size: 2.25rem;border:2px solid var(--lv-surface)}.lv-orbit__avatars.astro-hkmju4bd>li.astro-hkmju4bd:not(:first-child)>.lv-orbit__avatar.astro-hkmju4bd{margin-inline-start:-0.6rem}.lv-orbit__rating.astro-hkmju4bd{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-2);margin:0;color:var(--lv-text-primary)}.lv-orbit__of.astro-hkmju4bd{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-orbit__facts.astro-hkmju4bd{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--lv-space-3) var(--lv-space-7);margin:0;padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-orbit__fact.astro-hkmju4bd{display:grid;gap:var(--lv-space-1)}.lv-orbit__fact-value.astro-hkmju4bd{margin:0;font-size:var(--lv-text-lg);color:var(--lv-text-primary)}.lv-orbit__fact-unit.astro-hkmju4bd{margin-inline-start:0.2em;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-orbit__fact.astro-hkmju4bd dd.astro-hkmju4bd{margin:0}.lv-orbit__card.astro-hkmju4bd{inline-size:min(100%,26rem);padding-block:var(--lv-space-4);border-block:1px solid var(--lv-line);text-align:start}.lv-orbit__card-title.astro-hkmju4bd{margin:0 0 var(--lv-space-2);font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);color:var(--lv-text-secondary)}.lv-orbit__card-rows.astro-hkmju4bd{margin:0}.lv-orbit__card-row.astro-hkmju4bd{display:flex;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-2);border-block-start:1px solid var(--lv-line)}.lv-orbit__card-row.astro-hkmju4bd dt.astro-hkmju4bd{margin:0;color:var(--lv-text-tertiary);font-size:var(--lv-text-sm)}.lv-orbit__card-row.astro-hkmju4bd dd.astro-hkmju4bd{margin:0;color:var(--lv-text-primary)}.lv-orbit__card-row.astro-hkmju4bd a.astro-hkmju4bd{color:inherit;text-underline-offset:0.25em}.lv-orbit__card-cta.astro-hkmju4bd{margin-block-start:var(--lv-space-4)}.lv-orbit__marks.astro-hkmju4bd{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--lv-space-3) var(--lv-space-6);margin:0;padding:var(--lv-space-4) 0 0;list-style:none;border-block-start:1px solid var(--lv-line)}.lv-orbit__mark.astro-hkmju4bd{display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary);text-decoration:none}.lv-orbit__mark-img.astro-hkmju4bd{block-size:1.5rem;inline-size:auto;filter:var(--lv-mark-filter, grayscale(1))}@container (min-width: 56.25rem){.lv-orbit__inner.astro-hkmju4bd{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:var(--lv-space-8)}.lv-orbit__stage.astro-hkmju4bd{grid-column:2;grid-row:1;justify-self:end;inline-size:min(100%,34rem)}.lv-orbit__copy.astro-hkmju4bd{grid-column:1;grid-row:1}.lv-orbit__chips.astro-hkmju4bd{position:absolute;inset-block-start:50%;inset-inline-end:0;inline-size:min(calc(50% - var(--lv-space-8) / 2),34rem);aspect-ratio:1;transform:translateY(-50%);display:block;pointer-events:none}.lv-orbit__chip.astro-hkmju4bd{position:absolute;pointer-events:auto}.lv-orbit__chip--at-1.astro-hkmju4bd{inset-block-start:14%;inset-inline-end:-4%}.lv-orbit__chip--at-2.astro-hkmju4bd{inset-block-start:58%;inset-inline-start:-6%}.lv-orbit__chip--at-3.astro-hkmju4bd{inset-block-end:4%;inset-inline-end:4%}.lv-orbit__chip--row.astro-hkmju4bd{position:static}}
/* components/open.pitch/renderers/pitch.astro */
.lv-hero.astro-ggkms7zt{position:relative;isolation:isolate}.lv-hero.astro-ggkms7zt[data-lv-bleed]{padding-block:var(--lv-space-9)}.lv-hero--compact.astro-ggkms7zt[data-lv-bleed]{padding-block:var(--lv-space-7)}.lv-hero--tall.astro-ggkms7zt[data-lv-bleed]{padding-block:calc(var(--lv-space-9) * 1.6)}.lv-hero--full.astro-ggkms7zt{display:flex;flex-direction:column;min-block-size:calc(var(--lv-stage-vh, 100svh) - var(--lv-nav-height, 0px))}.lv-hero--full.astro-ggkms7zt[data-lv-bleed]{padding-block:var(--lv-space-7)}.lv-hero--full.astro-ggkms7zt.lv-hero--anchor-bottom .lv-hero__inner.astro-ggkms7zt{margin-block-start:auto}.lv-hero--full.astro-ggkms7zt:not(.lv-hero--centered)>.lv-hero__inner.astro-ggkms7zt{inline-size:100%}.lv-hero__bg.astro-ggkms7zt{position:absolute;inset:0;z-index:-1;overflow:hidden}.lv-hero__bg.astro-ggkms7zt img.astro-ggkms7zt{inline-size:100%;block-size:100%;object-fit:cover}.lv-hero--anchor-bottom.astro-ggkms7zt{--lv-hero-scrim-dir: to top}.lv-hero--anchor-top.astro-ggkms7zt{--lv-hero-scrim-dir: to bottom}.lv-hero--scrim-soft.astro-ggkms7zt .lv-hero__bg.astro-ggkms7zt::after,.lv-hero--scrim-strong.astro-ggkms7zt .lv-hero__bg.astro-ggkms7zt::after{content:"";position:absolute;inset:0;background:linear-gradient(var(--lv-hero-scrim-dir, to top),rgb(var(--lv-glass-under) / calc(var(--lv-hero-scrim, 0.62) * 0.92)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-hero-scrim, 0.62) * 0.58)) 38%,rgb(var(--lv-glass-under) / calc(var(--lv-hero-scrim, 0.62) * 0.20)) 68%,rgb(var(--lv-glass-under) / calc(var(--lv-hero-scrim, 0.62) * 0.05)) 100%),linear-gradient(100deg,rgb(var(--lv-glass-under) / calc(var(--lv-hero-scrim, 0.62) * 0.34)) 0%,transparent 55%)}.lv-hero--scrim-strong.astro-ggkms7zt{--lv-hero-scrim: 0.82}@media (max-width: 700px){.lv-hero--scrim-soft.astro-ggkms7zt .lv-hero__bg.astro-ggkms7zt::after,.lv-hero--scrim-strong.astro-ggkms7zt .lv-hero__bg.astro-ggkms7zt::after{background:linear-gradient(var(--lv-hero-scrim-dir, to top),rgb(var(--lv-glass-under) / calc(var(--lv-hero-scrim, 0.62) * 0.98)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-hero-scrim, 0.62) * 0.72)) 42%,rgb(var(--lv-glass-under) / calc(var(--lv-hero-scrim, 0.62) * 0.32)) 70%,rgb(var(--lv-glass-under) / calc(var(--lv-hero-scrim, 0.62) * 0.08)) 100%)}}.lv-hero--scrim-soft.astro-ggkms7zt .lv-hero__inner.astro-ggkms7zt,.lv-hero--scrim-strong.astro-ggkms7zt .lv-hero__inner.astro-ggkms7zt{color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 28%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-hero--scrim-soft.astro-ggkms7zt .lv-sec__eyebrow.astro-ggkms7zt,.lv-hero--scrim-strong.astro-ggkms7zt .lv-sec__eyebrow.astro-ggkms7zt{color:var(--lv-text-on-brand)}.lv-hero.astro-ggkms7zt[data-lv-bleed]{padding-inline:var(--lv-gutter)}.lv-hero__inner.astro-ggkms7zt{display:grid;gap:var(--lv-space-7)}.lv-hero__zone--counter.astro-ggkms7zt,.lv-hero__zone--foot.astro-ggkms7zt{display:contents}.lv-hero--full.astro-ggkms7zt .lv-hero__inner.astro-ggkms7zt{flex:1 1 auto}.lv-hero--full.astro-ggkms7zt.lv-hero--anchor-top .lv-hero__inner.astro-ggkms7zt{align-content:space-between}.lv-hero__copy.astro-ggkms7zt{max-width:46rem}.lv-hero--centered.astro-ggkms7zt .lv-hero__copy.astro-ggkms7zt{margin-inline:auto;text-align:center}.lv-hero__title.astro-ggkms7zt{margin:0;max-inline-size:15ch;font-size:var(--lv-hero-display, clamp(var(--lv-text-2xl), 5cqi, 3.25rem));color:var(--lv-text-primary)}.lv-hero--centered.astro-ggkms7zt .lv-hero__title.astro-ggkms7zt{margin-inline:auto}.lv-hero__lede.astro-ggkms7zt{margin-block-start:var(--lv-space-4);font-size:var(--lv-text-lg);color:var(--lv-text-secondary);line-height:var(--lv-leading-normal)}.lv-hero__actions.astro-ggkms7zt{display:flex;flex-wrap:wrap;gap:var(--lv-space-3);margin-block-start:var(--lv-space-6)}.lv-hero--centered.astro-ggkms7zt .lv-hero__actions.astro-ggkms7zt{justify-content:center}.lv-hero__trust.astro-ggkms7zt{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-2) var(--lv-space-4);margin-block-start:var(--lv-space-6);padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-hero--centered.astro-ggkms7zt .lv-hero__trust.astro-ggkms7zt{justify-content:center}.lv-hero__trust-avatars.astro-ggkms7zt{display:flex;align-items:center;margin:0;padding:0;list-style:none}.lv-hero__trust-avatars.astro-ggkms7zt>li.astro-ggkms7zt{display:contents}.lv-hero__trust-avatar.astro-ggkms7zt{--lv-portrait-size: 2.5rem;border:2px solid var(--lv-surface);flex-shrink:0}.lv-hero__trust-avatars.astro-ggkms7zt>li.astro-ggkms7zt:not(:first-child)>.lv-hero__trust-avatar.astro-ggkms7zt{margin-inline-start:-0.65rem}.lv-hero__trust-units.astro-ggkms7zt{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-3) var(--lv-space-4)}.lv-hero__trust-unit.astro-ggkms7zt{display:flex;align-items:center;gap:var(--lv-space-3)}.lv-hero__trust-sep.astro-ggkms7zt{align-self:stretch;inline-size:1px;background:var(--lv-line)}.lv-hero__trust-rating.astro-ggkms7zt{display:flex;align-items:baseline;gap:var(--lv-space-2);margin:0;font-size:var(--lv-text-md);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-hero__trust-of.astro-ggkms7zt{font-size:var(--lv-text-xs);font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-hero__trust-stars.astro-ggkms7zt{margin-inline-start:2px}.lv-hero__trust-ratinglabel.astro-ggkms7zt{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-hero__trust-proof.astro-ggkms7zt{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary);max-inline-size:32ch}.lv-hero--scrim-soft.astro-ggkms7zt .lv-trust-mark.astro-ggkms7zt,.lv-hero--scrim-strong.astro-ggkms7zt .lv-trust-mark.astro-ggkms7zt{background:var(--lv-text-on-brand)}.lv-hero__stats.astro-ggkms7zt{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--lv-space-5);margin:0;padding-block-start:var(--lv-space-5);border-block-start:1px solid var(--lv-line)}.lv-hero__stat.astro-ggkms7zt{flex:1 1 min(9rem,100%)}@container (min-width: 42rem){.lv-hero__stat.astro-ggkms7zt{max-inline-size:calc((100% - 3 * var(--lv-space-5)) / 4)}}.lv-hero__stat-value.astro-ggkms7zt{font-size:var(--lv-text-xl);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-hero__stat-unit.astro-ggkms7zt{margin-inline-start:0.2em;font-family:var(--lv-font-ui);font-size:var(--lv-text-xs);font-weight:var(--lv-weight-medium);letter-spacing:normal;color:var(--lv-text-tertiary)}.lv-hero__stat-label.astro-ggkms7zt{margin:var(--lv-space-1) 0 0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}@container (min-width: 56rem){.lv-hero--stat-rail.astro-ggkms7zt:not(.lv-hero--aside) .lv-hero__inner.astro-ggkms7zt{grid-template-columns:minmax(0,1.6fr) minmax(14rem,0.9fr);align-items:end}.lv-hero--stat-rail.astro-ggkms7zt:not(.lv-hero--aside) .lv-hero__stats.astro-ggkms7zt{flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;border-block-start:0;border-inline-start:1px solid var(--lv-line);padding-block-start:0;padding-inline-start:var(--lv-space-5)}.lv-hero--stat-rail.astro-ggkms7zt:not(.lv-hero--aside) .lv-hero__stat.astro-ggkms7zt{flex-basis:100%;max-inline-size:none}}.lv-hero__aside.astro-ggkms7zt{align-self:start;inline-size:100%;max-inline-size:26rem;padding:var(--lv-space-6);border-radius:var(--lv-radius-lg);background:var(--lv-brand-strong);box-shadow:var(--lv-lift-3);color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand);--lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-hero--centered.astro-ggkms7zt .lv-hero__aside.astro-ggkms7zt{margin-inline:auto}.lv-hero__aside-title.astro-ggkms7zt{margin:0 0 var(--lv-space-3);font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-mono);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);font-variant-caps:var(--lv-display-variant, normal)}.lv-hero__aside-rows.astro-ggkms7zt{margin:0}.lv-hero__aside-row.astro-ggkms7zt{display:flex;align-items:baseline;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-3);border-block-start:1px solid var(--lv-line)}.lv-hero__aside-row.astro-ggkms7zt dt.astro-ggkms7zt{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-hero__aside-row.astro-ggkms7zt dd.astro-ggkms7zt{margin:0;text-align:end;font-weight:var(--lv-weight-medium);color:var(--lv-text-primary)}.lv-hero__aside-row.astro-ggkms7zt dd.astro-ggkms7zt a.astro-ggkms7zt{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in oklab,var(--lv-text-on-brand) 40%,transparent);transition:text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-hero__aside-row.astro-ggkms7zt dd.astro-ggkms7zt a.astro-ggkms7zt:hover{text-decoration-thickness:2px;text-decoration-color:var(--lv-text-on-brand)}.lv-hero__aside-row.astro-ggkms7zt dd.astro-ggkms7zt a.astro-ggkms7zt:focus-visible{outline:var(--lv-focus-width) solid var(--lv-text-on-brand);outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}.lv-hero__aside-note.astro-ggkms7zt{margin:var(--lv-space-2) 0 0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-hero__aside-cta.astro-ggkms7zt{inline-size:100%;margin-block-start:var(--lv-space-4);background:var(--lv-text-on-brand);color:var(--lv-brand-strong);box-shadow:none}.lv-hero__aside-cta.astro-ggkms7zt:hover{background:color-mix(in oklab,var(--lv-text-on-brand) 92%,var(--lv-brand-strong));color:var(--lv-brand-strong)}@container (min-width: 56rem){.lv-hero--aside.astro-ggkms7zt .lv-hero__inner.astro-ggkms7zt{grid-template-areas:"copy aside" "stats aside";grid-template-columns:minmax(0,1.6fr) minmax(16rem,0.9fr);align-items:start}.lv-hero--aside.astro-ggkms7zt .lv-hero__copy.astro-ggkms7zt{grid-area:copy}.lv-hero--aside.astro-ggkms7zt .lv-hero__stats.astro-ggkms7zt{grid-area:stats;align-self:end}.lv-hero--aside.astro-ggkms7zt .lv-hero__aside.astro-ggkms7zt{grid-area:aside;justify-self:end}}.lv-hero--aside.astro-ggkms7zt .lv-hero__logos.astro-ggkms7zt,.lv-hero--stat-rail.astro-ggkms7zt .lv-hero__logos.astro-ggkms7zt{grid-column:1 / -1}.lv-hero__logos.astro-ggkms7zt{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-4) var(--lv-space-7);margin:0;padding:var(--lv-space-4) 0 0;border-block-start:1px solid var(--lv-line);list-style:none}.lv-hero__logo-link.astro-ggkms7zt{display:inline-flex;align-items:center;color:var(--lv-text-tertiary);text-decoration:none;opacity:0.72;transition:opacity var(--lv-dur-fast) var(--lv-ease)}.lv-hero__logo-link.astro-ggkms7zt:hover{opacity:1}.lv-hero__logo-img.astro-ggkms7zt{block-size:1.75rem;inline-size:auto;filter:var(--lv-mark-filter, grayscale(1))}.lv-hero--scrim-soft.astro-ggkms7zt .lv-hero__logo-img.astro-ggkms7zt,.lv-hero--scrim-strong.astro-ggkms7zt .lv-hero__logo-img.astro-ggkms7zt{filter:grayscale(1) invert(1) brightness(1.6);mix-blend-mode:screen}.lv-hero__logo-name.astro-ggkms7zt{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold);letter-spacing:0.04em}@media (prefers-reduced-motion: reduce){.lv-hero__aside-row.astro-ggkms7zt dd.astro-ggkms7zt a.astro-ggkms7zt,.lv-hero__logo-link.astro-ggkms7zt{transition-duration:0.01ms}}.lv-hero.astro-ggkms7zt[data-lv-hero-image=split][data-lv-bleed]{padding-inline:var(--lv-gutter)}.lv-hero.astro-ggkms7zt[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-9)}.lv-hero--compact.astro-ggkms7zt[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-7)}.lv-hero--tall.astro-ggkms7zt[data-lv-hero-image=split]{--lv-heroimg-block-reach: calc(var(--lv-space-9) * 1.6)}@container (min-width: 52rem){.lv-hero.astro-ggkms7zt[data-lv-hero-image=split] .lv-hero__inner.astro-ggkms7zt,.lv-hero.astro-ggkms7zt[data-lv-hero-image=framed] .lv-hero__inner.astro-ggkms7zt,.lv-hero.astro-ggkms7zt[data-lv-hero-image=offset] .lv-hero__inner.astro-ggkms7zt{grid-template-columns:minmax(0,1fr);grid-template-areas:none}.lv-hero.astro-ggkms7zt[data-lv-hero-image=split] .astro-ggkms7zt:is(.lv-hero__copy,.lv-hero__stats,.lv-hero__aside,.lv-hero__logos),.lv-hero.astro-ggkms7zt[data-lv-hero-image=framed] .astro-ggkms7zt:is(.lv-hero__copy,.lv-hero__stats,.lv-hero__aside,.lv-hero__logos),.lv-hero.astro-ggkms7zt[data-lv-hero-image=offset] .astro-ggkms7zt:is(.lv-hero__copy,.lv-hero__stats,.lv-hero__aside,.lv-hero__logos){grid-area:auto;grid-column:auto;justify-self:stretch;align-self:auto}.lv-hero.astro-ggkms7zt[data-lv-hero-image=split] .lv-hero__aside.astro-ggkms7zt,.lv-hero.astro-ggkms7zt[data-lv-hero-image=framed] .lv-hero__aside.astro-ggkms7zt,.lv-hero.astro-ggkms7zt[data-lv-hero-image=offset] .lv-hero__aside.astro-ggkms7zt{max-inline-size:26rem}.lv-hero.astro-ggkms7zt[data-lv-hero-image=split] .lv-hero__stats.astro-ggkms7zt,.lv-hero.astro-ggkms7zt[data-lv-hero-image=framed] .lv-hero__stats.astro-ggkms7zt,.lv-hero.astro-ggkms7zt[data-lv-hero-image=offset] .lv-hero__stats.astro-ggkms7zt{flex-direction:row}}@container (min-width: 52rem){.lv-hero--centered.astro-ggkms7zt[data-lv-hero-image=split] .lv-hero__copy.astro-ggkms7zt,.lv-hero--centered.astro-ggkms7zt[data-lv-hero-image=framed] .lv-hero__copy.astro-ggkms7zt,.lv-hero--centered.astro-ggkms7zt[data-lv-hero-image=offset] .lv-hero__copy.astro-ggkms7zt{text-align:start;margin-inline:0}.lv-hero--centered.astro-ggkms7zt[data-lv-hero-image=split] .lv-hero__actions.astro-ggkms7zt,.lv-hero--centered.astro-ggkms7zt[data-lv-hero-image=framed] .lv-hero__actions.astro-ggkms7zt,.lv-hero--centered.astro-ggkms7zt[data-lv-hero-image=offset] .lv-hero__actions.astro-ggkms7zt,.lv-hero--centered.astro-ggkms7zt[data-lv-hero-image=split] .lv-hero__trust.astro-ggkms7zt,.lv-hero--centered.astro-ggkms7zt[data-lv-hero-image=framed] .lv-hero__trust.astro-ggkms7zt,.lv-hero--centered.astro-ggkms7zt[data-lv-hero-image=offset] .lv-hero__trust.astro-ggkms7zt{justify-content:flex-start}.lv-hero--centered.astro-ggkms7zt[data-lv-hero-image=split] .lv-hero__title.astro-ggkms7zt,.lv-hero--centered.astro-ggkms7zt[data-lv-hero-image=framed] .lv-hero__title.astro-ggkms7zt,.lv-hero--centered.astro-ggkms7zt[data-lv-hero-image=offset] .lv-hero__title.astro-ggkms7zt{margin-inline:0}}
/* components/open.pitch/renderers/plate.astro */
.lv-pcap__inner.astro-jmz2emqw{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;row-gap:var(--lv-space-3);text-align:center}.lv-pcap__zone.astro-jmz2emqw{display:contents}.lv-pcap__figure.astro-jmz2emqw{--lv-reveal-distance: 0px;justify-self:stretch;margin:0;overflow:hidden;border-radius:var(--lv-radius-md);background:var(--lv-surface-sunken)}.lv-pcap__figure.astro-jmz2emqw img.astro-jmz2emqw{display:block;inline-size:100%;block-size:auto;max-block-size:calc(var(--lv-stage-vh, 100svh) * 0.66);object-fit:cover;object-position:50% 42%}.lv-pcap--compact.astro-jmz2emqw .lv-pcap__figure.astro-jmz2emqw img.astro-jmz2emqw{max-block-size:calc(var(--lv-stage-vh, 100svh) * 0.5)}.lv-pcap--full.astro-jmz2emqw .lv-pcap__figure.astro-jmz2emqw img.astro-jmz2emqw{max-block-size:calc(var(--lv-stage-vh, 100svh) * 0.78)}.lv-pcap__eyebrow.astro-jmz2emqw{margin:0}.lv-pcap__caption.astro-jmz2emqw{margin:0;max-inline-size:36ch;font-size:var(--lv-hero-display, var(--lv-text-xl));font-weight:var(--lv-weight-heading);line-height:var(--lv-leading-snug);letter-spacing:var(--lv-display-tracking, 0);text-wrap:balance;color:var(--lv-text-primary)}.lv-pcap__lede.astro-jmz2emqw{margin:0;max-inline-size:var(--lv-measure);font-size:var(--lv-text-md);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-pcap__actions.astro-jmz2emqw{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--lv-space-3) var(--lv-space-5);margin-block-start:var(--lv-space-2)}.lv-pcap__quiet.astro-jmz2emqw{display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-sm);color:var(--lv-text-secondary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.3em;text-decoration-color:var(--lv-line-strong);transition:color var(--lv-dur-state) var(--lv-ease),text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-pcap__quiet.astro-jmz2emqw:hover{color:var(--lv-text-primary);text-decoration-color:currentColor}.lv-pcap__quiet.astro-jmz2emqw:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-pcap__caption.astro-jmz2emqw .lv-pcap__accent{font-weight:inherit;color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-pcap__links.astro-jmz2emqw{display:grid;justify-items:start;gap:var(--lv-space-1);margin:0;padding:0;list-style:none}.lv-pcap__link.astro-jmz2emqw{position:relative;display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-lg);color:var(--lv-ink-accent, var(--lv-brand-strong));text-decoration:none}.lv-pcap__link.astro-jmz2emqw::after{content:"";position:absolute;inset-inline-start:0;inset-block-end:var(--lv-space-2);inline-size:100%;block-size:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform var(--lv-dur-state) var(--lv-ease)}.lv-pcap__link.astro-jmz2emqw:hover::after,.lv-pcap__link.astro-jmz2emqw:focus-visible::after{transform:scaleX(1)}.lv-pcap__link.astro-jmz2emqw:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-pcap__small.astro-jmz2emqw{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-pcap__proof.astro-jmz2emqw{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--lv-space-2) var(--lv-space-4)}.lv-pcap__avatars.astro-jmz2emqw{display:flex;margin:0;padding:0;list-style:none}.lv-pcap__avatars.astro-jmz2emqw>li.astro-jmz2emqw{display:contents}.lv-pcap__avatar.astro-jmz2emqw{--lv-portrait-size: 2.25rem;border:2px solid var(--lv-surface)}.lv-pcap__avatars.astro-jmz2emqw>li.astro-jmz2emqw:not(:first-child)>.lv-pcap__avatar.astro-jmz2emqw{margin-inline-start:-0.6rem}.lv-pcap__rating.astro-jmz2emqw{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-2);margin:0;color:var(--lv-text-primary)}.lv-pcap__of.astro-jmz2emqw{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-pcap__facts.astro-jmz2emqw{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--lv-space-3) var(--lv-space-7);margin:0;padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-pcap__fact.astro-jmz2emqw{display:grid;gap:var(--lv-space-1)}.lv-pcap__fact-value.astro-jmz2emqw{margin:0;font-size:var(--lv-text-lg);color:var(--lv-text-primary)}.lv-pcap__fact-unit.astro-jmz2emqw{margin-inline-start:0.2em;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-pcap__fact.astro-jmz2emqw dd.astro-jmz2emqw{margin:0}.lv-pcap__card.astro-jmz2emqw{inline-size:min(100%,26rem);padding-block:var(--lv-space-4);border-block:1px solid var(--lv-line);text-align:start}.lv-pcap__card-title.astro-jmz2emqw{margin:0 0 var(--lv-space-2);font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);color:var(--lv-text-secondary)}.lv-pcap__card-rows.astro-jmz2emqw{margin:0}.lv-pcap__card-row.astro-jmz2emqw{display:flex;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-2);border-block-start:1px solid var(--lv-line)}.lv-pcap__card-row.astro-jmz2emqw dt.astro-jmz2emqw{margin:0;color:var(--lv-text-tertiary);font-size:var(--lv-text-sm)}.lv-pcap__card-row.astro-jmz2emqw dd.astro-jmz2emqw{margin:0;color:var(--lv-text-primary)}.lv-pcap__card-row.astro-jmz2emqw a.astro-jmz2emqw{color:inherit;text-underline-offset:0.25em}.lv-pcap__card-cta.astro-jmz2emqw{margin-block-start:var(--lv-space-4)}.lv-pcap__marks.astro-jmz2emqw{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--lv-space-3) var(--lv-space-6);margin:0;padding:var(--lv-space-4) 0 0;list-style:none;border-block-start:1px solid var(--lv-line)}.lv-pcap__mark.astro-jmz2emqw{display:inline-flex;align-items:center;min-block-size:44px;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary);text-decoration:none}.lv-pcap__mark-img.astro-jmz2emqw{block-size:1.5rem;inline-size:auto;filter:var(--lv-mark-filter, grayscale(1))}.lv-pcap--split.astro-jmz2emqw .lv-pcap__figure.astro-jmz2emqw img.astro-jmz2emqw,.lv-pcap--stat-rail.astro-jmz2emqw .lv-pcap__figure.astro-jmz2emqw img.astro-jmz2emqw{block-size:auto;aspect-ratio:4 / 3;max-block-size:none}.lv-pcap--split.astro-jmz2emqw .lv-pcap__inner.astro-jmz2emqw,.lv-pcap--stat-rail.astro-jmz2emqw .lv-pcap__inner.astro-jmz2emqw{justify-items:start;text-align:start;row-gap:var(--lv-space-5)}@container (min-width: 52rem){.lv-pcap--split.astro-jmz2emqw .lv-pcap__figure.astro-jmz2emqw img.astro-jmz2emqw,.lv-pcap--stat-rail.astro-jmz2emqw .lv-pcap__figure.astro-jmz2emqw img.astro-jmz2emqw{aspect-ratio:16 / 7}}@container (min-width: 52rem){.lv-pcap--split.astro-jmz2emqw .lv-pcap__inner.astro-jmz2emqw,.lv-pcap--stat-rail.astro-jmz2emqw .lv-pcap__inner.astro-jmz2emqw{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:var(--lv-space-8);justify-items:start;align-items:start;text-align:start}.lv-pcap--split.astro-jmz2emqw .astro-jmz2emqw:is(.lv-pcap__figure,.lv-pcap__caption,.lv-pcap__eyebrow,.lv-pcap__zone--foot > *),.lv-pcap--stat-rail.astro-jmz2emqw .astro-jmz2emqw:is(.lv-pcap__figure,.lv-pcap__caption,.lv-pcap__eyebrow,.lv-pcap__zone--foot > *){grid-column:1 / -1}.lv-pcap--split.astro-jmz2emqw .lv-pcap__caption.astro-jmz2emqw,.lv-pcap--stat-rail.astro-jmz2emqw .lv-pcap__caption.astro-jmz2emqw{max-inline-size:24ch}.lv-pcap--split.astro-jmz2emqw .lv-pcap__zone--counter.astro-jmz2emqw>.astro-jmz2emqw,.lv-pcap--stat-rail.astro-jmz2emqw .lv-pcap__zone--counter.astro-jmz2emqw>.astro-jmz2emqw,.lv-pcap--stat-rail.astro-jmz2emqw .lv-pcap__facts.astro-jmz2emqw{grid-column:2}.lv-pcap--split.astro-jmz2emqw .astro-jmz2emqw:is(.lv-pcap__zone--lead,.lv-pcap__zone--counter)>.astro-jmz2emqw:not(.lv-pcap__caption,.lv-pcap__eyebrow),.lv-pcap--stat-rail.astro-jmz2emqw .astro-jmz2emqw:is(.lv-pcap__zone--lead,.lv-pcap__zone--counter)>.astro-jmz2emqw:not(.lv-pcap__caption,.lv-pcap__eyebrow){justify-content:flex-start}}@media (max-width: 30rem){.lv-pcap__actions.astro-jmz2emqw{flex-direction:column;align-items:stretch}.lv-pcap__actions.astro-jmz2emqw>.astro-jmz2emqw{justify-content:center}}@media (prefers-reduced-motion: reduce){.lv-pcap__quiet.astro-jmz2emqw,.lv-pcap__link.astro-jmz2emqw::after{transition-duration:0.01ms}}
/* components/open.pitch/renderers/signal.astro */
.lv-signal.astro-l3v6ck7p{position:relative;isolation:isolate;--lv-sec-pad: var(--lv-section-py-lg, var(--lv-space-9));--bd-base: transparent;--bd-accent: var(--lv-brand);--bd-glow: var(--lv-brand-strong);--bd-ink: var(--lv-text-primary)}.lv-signal--compact.astro-l3v6ck7p{--lv-sec-pad: var(--lv-space-7)}.lv-signal--tall.astro-l3v6ck7p{--lv-sec-pad: calc(var(--lv-section-py-lg, var(--lv-space-9)) * 1.5)}.lv-signal--full.astro-l3v6ck7p{display:flex;flex-direction:column;min-block-size:calc(var(--lv-stage-vh, 100svh) - var(--lv-nav-height, 0px))}.lv-signal--full.astro-l3v6ck7p.lv-signal--anchor-bottom .lv-signal__inner.astro-l3v6ck7p{margin-block-start:auto}.lv-signal--full.astro-l3v6ck7p:not(.lv-signal--centered)>.lv-signal__inner.astro-l3v6ck7p{inline-size:100%}.lv-signal.astro-l3v6ck7p[data-lv-bleed]{padding-inline:var(--lv-gutter)}.lv-signal__field.astro-l3v6ck7p{position:absolute;inset:0;z-index:-1;pointer-events:none;background-color:var(--bd-base);background-image:linear-gradient(color-mix(in oklch,var(--bd-ink),transparent 92%) 1px,transparent 1px),linear-gradient(90deg,color-mix(in oklch,var(--bd-ink),transparent 92%) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:linear-gradient(to bottom,rgb(0 0 0) 0%,rgb(0 0 0 / 0.25) 62%,transparent 100%);mask-image:linear-gradient(to bottom,rgb(0 0 0) 0%,rgb(0 0 0 / 0.25) 62%,transparent 100%)}.lv-signal__scene.astro-l3v6ck7p{position:absolute;inset:0;z-index:-1;overflow:hidden}.lv-signal__scene.astro-l3v6ck7p img.astro-l3v6ck7p{inline-size:100%;block-size:100%;object-fit:cover;object-position:50% 42%}.lv-signal--anchor-bottom.astro-l3v6ck7p{--lv-signal-scrim-dir: to top}.lv-signal--anchor-top.astro-l3v6ck7p{--lv-signal-scrim-dir: to bottom}.lv-signal--scrim-soft.astro-l3v6ck7p .lv-signal__scene.astro-l3v6ck7p::after,.lv-signal--scrim-strong.astro-l3v6ck7p .lv-signal__scene.astro-l3v6ck7p::after{content:"";position:absolute;inset:0;background:linear-gradient(var(--lv-signal-scrim-dir, to top),rgb(var(--lv-glass-under) / calc(var(--lv-signal-scrim, 0.62) * 0.92)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-signal-scrim, 0.62) * 0.58)) 38%,rgb(var(--lv-glass-under) / calc(var(--lv-signal-scrim, 0.62) * 0.20)) 68%,rgb(var(--lv-glass-under) / calc(var(--lv-signal-scrim, 0.62) * 0.05)) 100%),linear-gradient(100deg,rgb(var(--lv-glass-under) / calc(var(--lv-signal-scrim, 0.62) * 0.34)) 0%,transparent 55%)}.lv-signal--scrim-strong.astro-l3v6ck7p{--lv-signal-scrim: 0.82}@media (max-width: 700px){.lv-signal--scrim-soft.astro-l3v6ck7p .lv-signal__scene.astro-l3v6ck7p::after,.lv-signal--scrim-strong.astro-l3v6ck7p .lv-signal__scene.astro-l3v6ck7p::after{background:linear-gradient(var(--lv-signal-scrim-dir, to top),rgb(var(--lv-glass-under) / calc(var(--lv-signal-scrim, 0.62) * 0.98)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-signal-scrim, 0.62) * 0.72)) 42%,rgb(var(--lv-glass-under) / calc(var(--lv-signal-scrim, 0.62) * 0.32)) 70%,rgb(var(--lv-glass-under) / calc(var(--lv-signal-scrim, 0.62) * 0.08)) 100%)}}.lv-signal--scrim-soft.astro-l3v6ck7p .lv-signal__inner.astro-l3v6ck7p,.lv-signal--scrim-strong.astro-l3v6ck7p .lv-signal__inner.astro-l3v6ck7p{color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 28%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-signal--scrim-soft.astro-l3v6ck7p .lv-sec__eyebrow.astro-l3v6ck7p,.lv-signal--scrim-strong.astro-l3v6ck7p .lv-sec__eyebrow.astro-l3v6ck7p{color:var(--lv-text-on-brand)}.lv-signal__inner.astro-l3v6ck7p{display:grid;gap:var(--lv-space-8);align-items:start}.lv-signal__zone--counter.astro-l3v6ck7p,.lv-signal__zone--foot.astro-l3v6ck7p{display:contents}.lv-signal__lockup.astro-l3v6ck7p{min-inline-size:0}.lv-signal__kicker.astro-l3v6ck7p{display:flex;align-items:center;gap:var(--lv-space-4);margin:0 0 var(--lv-space-6);max-width:none}.lv-signal__tail.astro-l3v6ck7p{flex:1 1 auto;min-inline-size:var(--lv-space-6);block-size:1px;overflow:visible}.lv-signal__tail.astro-l3v6ck7p path.astro-l3v6ck7p{fill:none;stroke:var(--lv-line);stroke-width:1}.lv-signal__title.astro-l3v6ck7p{margin:0;max-inline-size:16ch;font-size:var(--lv-hero-display, clamp(var(--lv-text-2xl), 5.4cqi, 3.5rem));line-height:var(--lv-leading-tight);letter-spacing:var(--lv-tracking-heading, -0.022em);text-wrap:balance;color:var(--lv-text-primary)}.lv-signal__title.astro-l3v6ck7p .lv-signal__mark{color:var(--lv-ink-accent);font-weight:inherit}.lv-signal__lede.astro-l3v6ck7p{margin-block-start:var(--lv-space-5);max-inline-size:52ch;font-size:var(--lv-text-lg);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary);text-wrap:pretty}.lv-signal__actions.astro-l3v6ck7p{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-5);margin-block-start:var(--lv-space-7)}.lv-signal__quiet.astro-l3v6ck7p{display:inline-flex;align-items:center;min-block-size:24px;color:var(--lv-text-secondary);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:var(--lv-line);transition:text-decoration-color var(--lv-dur-state) var(--lv-ease),color var(--lv-dur-state) var(--lv-ease)}.lv-signal__quiet.astro-l3v6ck7p:hover{color:var(--lv-text-primary);text-decoration-thickness:2px;text-decoration-color:currentColor}.lv-signal__quiet.astro-l3v6ck7p:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}.lv-signal__strip.astro-l3v6ck7p{display:flex;flex-direction:column;margin:0;padding-block-start:var(--lv-space-6);border-block-start:1px solid var(--lv-line)}.lv-signal__fig.astro-l3v6ck7p{display:grid;gap:var(--lv-space-2);align-content:start;min-inline-size:0;padding-block:var(--lv-space-4)}.lv-signal__fig.astro-l3v6ck7p:not(:first-child){border-block-start:1px solid var(--lv-line)}.lv-signal__fig-value.astro-l3v6ck7p{margin:0;font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-semibold);line-height:1.05;color:var(--lv-text-primary)}.lv-signal__fig-unit.astro-l3v6ck7p{margin-inline-start:0.22em;font-family:var(--lv-font-ui);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);letter-spacing:normal;color:var(--lv-text-tertiary)}.lv-signal__fig-label.astro-l3v6ck7p{margin:0;max-inline-size:28ch;font-size:var(--lv-text-sm);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);font-variant-caps:var(--lv-display-variant, normal);color:var(--lv-text-tertiary)}.lv-signal__trust.astro-l3v6ck7p{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-2) var(--lv-space-4);margin-block-start:var(--lv-space-6);padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-signal__trust-avatars.astro-l3v6ck7p{display:flex;align-items:center;margin:0;padding:0;list-style:none}.lv-signal__trust-avatars.astro-l3v6ck7p>li.astro-l3v6ck7p{display:contents}.lv-signal__trust-avatar.astro-l3v6ck7p{--lv-portrait-size: 2.5rem;border:2px solid var(--lv-surface);flex-shrink:0}.lv-signal__trust-avatars.astro-l3v6ck7p>li.astro-l3v6ck7p:not(:first-child)>.lv-signal__trust-avatar.astro-l3v6ck7p{margin-inline-start:-0.65rem}.lv-signal__trust-rating.astro-l3v6ck7p{display:flex;align-items:baseline;gap:var(--lv-space-2);margin:0;font-size:var(--lv-text-md);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-signal__trust-of.astro-l3v6ck7p{font-size:var(--lv-text-xs);font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-signal__trust-stars.astro-l3v6ck7p{margin-inline-start:2px}.lv-signal__trust-label.astro-l3v6ck7p{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-signal__trust-proof.astro-l3v6ck7p{margin:0;max-inline-size:32ch;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-signal--scrim-soft.astro-l3v6ck7p .lv-trust-mark.astro-l3v6ck7p,.lv-signal--scrim-strong.astro-l3v6ck7p .lv-trust-mark.astro-l3v6ck7p{background:var(--lv-text-on-brand)}.lv-signal__card.astro-l3v6ck7p{align-self:start;inline-size:100%;max-inline-size:26rem;padding:var(--lv-space-6);border-radius:var(--lv-radius-lg);background:var(--lv-brand-strong);box-shadow:var(--lv-lift-3);color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand);--lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-signal__card-title.astro-l3v6ck7p{margin:0 0 var(--lv-space-3);font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-mono);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);font-variant-caps:var(--lv-display-variant, normal)}.lv-signal__card-rows.astro-l3v6ck7p{margin:0}.lv-signal__card-row.astro-l3v6ck7p{display:flex;align-items:baseline;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-3);border-block-start:1px solid var(--lv-line)}.lv-signal__card-row.astro-l3v6ck7p dt.astro-l3v6ck7p{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-signal__card-row.astro-l3v6ck7p dd.astro-l3v6ck7p{margin:0;text-align:end;font-weight:var(--lv-weight-medium);color:var(--lv-text-primary)}.lv-signal__card-row.astro-l3v6ck7p dd.astro-l3v6ck7p a.astro-l3v6ck7p{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in oklab,var(--lv-text-on-brand) 40%,transparent);transition:text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-signal__card-row.astro-l3v6ck7p dd.astro-l3v6ck7p a.astro-l3v6ck7p:hover{text-decoration-thickness:2px;text-decoration-color:var(--lv-text-on-brand)}.lv-signal__card-row.astro-l3v6ck7p dd.astro-l3v6ck7p a.astro-l3v6ck7p:focus-visible{outline:var(--lv-focus-width) solid var(--lv-text-on-brand);outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}.lv-signal__card-note.astro-l3v6ck7p{margin:var(--lv-space-2) 0 0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-signal__card-cta.astro-l3v6ck7p{inline-size:100%;margin-block-start:var(--lv-space-4);background:var(--lv-text-on-brand);color:var(--lv-brand-strong);box-shadow:none}.lv-signal__card-cta.astro-l3v6ck7p:hover{background:color-mix(in oklab,var(--lv-text-on-brand) 92%,var(--lv-brand-strong));color:var(--lv-brand-strong)}.lv-signal__marks.astro-l3v6ck7p{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-4) var(--lv-space-7);margin:0;padding:var(--lv-space-4) 0 0;border-block-start:1px solid var(--lv-line);list-style:none}.lv-signal__mark-link.astro-l3v6ck7p{display:inline-flex;align-items:center;color:var(--lv-text-tertiary);text-decoration:none;opacity:0.72;transition:opacity var(--lv-dur-fast) var(--lv-ease)}.lv-signal__mark-link.astro-l3v6ck7p:hover{opacity:1}.lv-signal__mark-link.astro-l3v6ck7p:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-signal__mark-img.astro-l3v6ck7p{block-size:1.75rem;inline-size:auto;filter:var(--lv-mark-filter, grayscale(1))}.lv-signal--scrim-soft.astro-l3v6ck7p .lv-signal__mark-img.astro-l3v6ck7p,.lv-signal--scrim-strong.astro-l3v6ck7p .lv-signal__mark-img.astro-l3v6ck7p{filter:grayscale(1) invert(1) brightness(1.6);mix-blend-mode:screen}.lv-signal__mark-name.astro-l3v6ck7p{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold);letter-spacing:0.04em}@container (min-width: 52rem){.lv-signal__strip.astro-l3v6ck7p{flex-direction:row;flex-wrap:nowrap;gap:0}.lv-signal__fig.astro-l3v6ck7p{flex:1 1 0;padding-block:0;padding-inline:var(--lv-space-6)}.lv-signal__fig.astro-l3v6ck7p:first-child{padding-inline-start:0}.lv-signal__fig.astro-l3v6ck7p:last-child{padding-inline-end:0}.lv-signal__fig.astro-l3v6ck7p:not(:first-child){border-block-start:0;border-inline-start:1px solid var(--lv-line)}.lv-signal--aside.astro-l3v6ck7p .lv-signal__inner.astro-l3v6ck7p,.lv-signal--rail.astro-l3v6ck7p .lv-signal__inner.astro-l3v6ck7p{grid-template-columns:minmax(0,1.65fr) minmax(15rem,0.85fr);column-gap:var(--lv-space-8)}.lv-signal--aside.astro-l3v6ck7p .lv-signal__lockup.astro-l3v6ck7p,.lv-signal--rail.astro-l3v6ck7p .lv-signal__lockup.astro-l3v6ck7p{grid-column:1}.lv-signal--aside.astro-l3v6ck7p .lv-signal__card.astro-l3v6ck7p{grid-column:2;grid-row:1;justify-self:end}.lv-signal--aside.astro-l3v6ck7p .lv-signal__strip.astro-l3v6ck7p{grid-column:1}.lv-signal--aside.astro-l3v6ck7p .lv-signal__marks.astro-l3v6ck7p,.lv-signal--rail.astro-l3v6ck7p .lv-signal__marks.astro-l3v6ck7p{grid-column:1 / -1}.lv-signal--rail.astro-l3v6ck7p .lv-signal__strip.astro-l3v6ck7p{grid-column:2;grid-row:1;flex-direction:column;padding-block-start:0;border-block-start:0}.lv-signal--rail.astro-l3v6ck7p .lv-signal__fig.astro-l3v6ck7p{flex:0 0 auto;padding-block:var(--lv-space-5);padding-inline:0}.lv-signal--rail.astro-l3v6ck7p .lv-signal__fig.astro-l3v6ck7p:first-child{padding-block-start:0;border-block-start:0}.lv-signal--rail.astro-l3v6ck7p .lv-signal__fig.astro-l3v6ck7p:not(:first-child){border-inline-start:0;border-block-start:1px solid var(--lv-line)}.lv-signal--centered.astro-l3v6ck7p .lv-signal__inner.astro-l3v6ck7p{grid-template-columns:minmax(0,1fr)}.lv-signal--centered.astro-l3v6ck7p .lv-signal__lockup.astro-l3v6ck7p{text-align:center;margin-inline:auto;max-inline-size:56rem}.lv-signal--centered.astro-l3v6ck7p .lv-signal__title.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p .lv-signal__lede.astro-l3v6ck7p{margin-inline:auto}.lv-signal--centered.astro-l3v6ck7p .lv-signal__actions.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p .lv-signal__trust.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p .lv-signal__marks.astro-l3v6ck7p{justify-content:center}.lv-signal--centered.astro-l3v6ck7p .lv-signal__card.astro-l3v6ck7p{margin-inline:auto}.lv-signal--centered.astro-l3v6ck7p .lv-signal__kicker.astro-l3v6ck7p{justify-content:center}.lv-signal--centered.astro-l3v6ck7p .lv-signal__kicker.astro-l3v6ck7p::before{content:"";flex:1 1 auto;min-inline-size:var(--lv-space-6);block-size:1px;background:var(--lv-line)}.lv-signal--centered.astro-l3v6ck7p .lv-signal__strip.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p .lv-signal__card.astro-l3v6ck7p{grid-column:1;grid-row:auto}.lv-signal--centered.astro-l3v6ck7p .lv-signal__strip.astro-l3v6ck7p{flex-direction:row;padding-block-start:var(--lv-space-6);border-block-start:1px solid var(--lv-line);text-align:center}.lv-signal--centered.astro-l3v6ck7p .lv-signal__fig.astro-l3v6ck7p{justify-items:center}}@media (prefers-reduced-motion: reduce){.lv-signal__quiet.astro-l3v6ck7p,.lv-signal__card-row.astro-l3v6ck7p dd.astro-l3v6ck7p a.astro-l3v6ck7p,.lv-signal__mark-link.astro-l3v6ck7p{transition-duration:0.01ms}}.lv-signal.astro-l3v6ck7p[data-lv-hero-image=split][data-lv-bleed]{padding-inline:var(--lv-gutter)}@container (min-width: 52rem){.lv-signal.astro-l3v6ck7p[data-lv-hero-image=split] .lv-signal__inner.astro-l3v6ck7p,.lv-signal.astro-l3v6ck7p[data-lv-hero-image=framed] .lv-signal__inner.astro-l3v6ck7p,.lv-signal.astro-l3v6ck7p[data-lv-hero-image=offset] .lv-signal__inner.astro-l3v6ck7p{grid-template-columns:minmax(0,1fr);grid-template-areas:none}.lv-signal.astro-l3v6ck7p[data-lv-hero-image=split] .astro-l3v6ck7p:is(.lv-signal__lockup,.lv-signal__card,.lv-signal__strip,.lv-signal__marks),.lv-signal.astro-l3v6ck7p[data-lv-hero-image=framed] .astro-l3v6ck7p:is(.lv-signal__lockup,.lv-signal__card,.lv-signal__strip,.lv-signal__marks),.lv-signal.astro-l3v6ck7p[data-lv-hero-image=offset] .astro-l3v6ck7p:is(.lv-signal__lockup,.lv-signal__card,.lv-signal__strip,.lv-signal__marks){grid-area:auto;grid-column:auto;justify-self:stretch;align-self:auto}}@container (min-width: 52rem){.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=split] .lv-signal__lockup.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=framed] .lv-signal__lockup.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=offset] .lv-signal__lockup.astro-l3v6ck7p{text-align:start;margin-inline:0}.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=split] .lv-signal__title.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=framed] .lv-signal__title.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=offset] .lv-signal__title.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=split] .lv-signal__lede.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=framed] .lv-signal__lede.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=offset] .lv-signal__lede.astro-l3v6ck7p{margin-inline:0}.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=split] .lv-signal__actions.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=framed] .lv-signal__actions.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=offset] .lv-signal__actions.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=split] .lv-signal__trust.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=framed] .lv-signal__trust.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=offset] .lv-signal__trust.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=split] .lv-signal__marks.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=framed] .lv-signal__marks.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=offset] .lv-signal__marks.astro-l3v6ck7p{justify-content:flex-start}.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=split] .lv-signal__kicker.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=framed] .lv-signal__kicker.astro-l3v6ck7p,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=offset] .lv-signal__kicker.astro-l3v6ck7p{justify-content:flex-start}.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=split] .lv-signal__kicker.astro-l3v6ck7p::before,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=framed] .lv-signal__kicker.astro-l3v6ck7p::before,.lv-signal--centered.astro-l3v6ck7p[data-lv-hero-image=offset] .lv-signal__kicker.astro-l3v6ck7p::before{display:none}}
/* components/open.pitch/renderers/statement.astro */
.lv-pstatement__inner.astro-bkaq6ody{display:grid;justify-items:start;row-gap:var(--lv-space-5)}.lv-pstatement__eyebrow.astro-bkaq6ody{font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-pstatement__title.astro-bkaq6ody{margin:0;max-inline-size:18ch;font-size:var(--lv-hero-display, var(--lv-text-2xl));font-weight:var(--lv-weight-heading);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-display-tracking, 0);hyphens:manual;overflow-wrap:break-word;color:var(--lv-text-primary)}.lv-pstatement__lede.astro-bkaq6ody{margin:0;max-inline-size:var(--lv-measure);font-size:var(--lv-text-md);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}
/* components/open.pitch/renderers/workshop.astro */
.lv-workshop.astro-sh5hp3ak{position:relative;isolation:isolate}.lv-workshop.astro-sh5hp3ak[data-lv-bleed]{padding-block:var(--lv-space-9);padding-inline:var(--lv-gutter)}.lv-workshop--compact.astro-sh5hp3ak[data-lv-bleed]{padding-block:var(--lv-space-7)}.lv-workshop--tall.astro-sh5hp3ak[data-lv-bleed]{padding-block:calc(var(--lv-space-9) * 1.6)}.lv-workshop--full.astro-sh5hp3ak{display:flex;flex-direction:column;min-block-size:calc(var(--lv-stage-vh, 100svh) - var(--lv-nav-height, 0px))}.lv-workshop--full.astro-sh5hp3ak[data-lv-bleed]{padding-block:var(--lv-space-7)}.lv-workshop--full.astro-sh5hp3ak.lv-workshop--anchor-bottom .lv-workshop__inner.astro-sh5hp3ak{margin-block-start:auto}.lv-workshop--full.astro-sh5hp3ak:not(.lv-workshop--centered)>.lv-workshop__inner.astro-sh5hp3ak{inline-size:100%}.lv-workshop__scene.astro-sh5hp3ak{position:absolute;inset:0;z-index:-1;overflow:hidden}.lv-workshop__scene.astro-sh5hp3ak img.astro-sh5hp3ak{inline-size:100%;block-size:100%;object-fit:cover}.lv-workshop--anchor-bottom.astro-sh5hp3ak{--lv-workshop-scrim-dir: to top}.lv-workshop--anchor-top.astro-sh5hp3ak{--lv-workshop-scrim-dir: to bottom}.lv-workshop--scrim-soft.astro-sh5hp3ak .lv-workshop__scene.astro-sh5hp3ak::after,.lv-workshop--scrim-strong.astro-sh5hp3ak .lv-workshop__scene.astro-sh5hp3ak::after{content:"";position:absolute;inset:0;background:linear-gradient(var(--lv-workshop-scrim-dir, to top),rgb(var(--lv-glass-under) / calc(var(--lv-workshop-scrim, 0.62) * 0.92)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-workshop-scrim, 0.62) * 0.58)) 38%,rgb(var(--lv-glass-under) / calc(var(--lv-workshop-scrim, 0.62) * 0.20)) 68%,rgb(var(--lv-glass-under) / calc(var(--lv-workshop-scrim, 0.62) * 0.05)) 100%),linear-gradient(100deg,rgb(var(--lv-glass-under) / calc(var(--lv-workshop-scrim, 0.62) * 0.34)) 0%,transparent 55%)}.lv-workshop--scrim-strong.astro-sh5hp3ak{--lv-workshop-scrim: 0.82}@media (max-width: 700px){.lv-workshop--scrim-soft.astro-sh5hp3ak .lv-workshop__scene.astro-sh5hp3ak::after,.lv-workshop--scrim-strong.astro-sh5hp3ak .lv-workshop__scene.astro-sh5hp3ak::after{background:linear-gradient(var(--lv-workshop-scrim-dir, to top),rgb(var(--lv-glass-under) / calc(var(--lv-workshop-scrim, 0.62) * 0.98)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-workshop-scrim, 0.62) * 0.72)) 42%,rgb(var(--lv-glass-under) / calc(var(--lv-workshop-scrim, 0.62) * 0.32)) 70%,rgb(var(--lv-glass-under) / calc(var(--lv-workshop-scrim, 0.62) * 0.08)) 100%)}}.lv-workshop--scrim-soft.astro-sh5hp3ak .lv-workshop__inner.astro-sh5hp3ak,.lv-workshop--scrim-strong.astro-sh5hp3ak .lv-workshop__inner.astro-sh5hp3ak{color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 28%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-workshop--scrim-soft.astro-sh5hp3ak .lv-sec__eyebrow.astro-sh5hp3ak,.lv-workshop--scrim-strong.astro-sh5hp3ak .lv-sec__eyebrow.astro-sh5hp3ak{color:var(--lv-text-on-brand)}.lv-workshop__inner.astro-sh5hp3ak{position:relative;display:grid;gap:var(--lv-space-6);align-items:end}.lv-workshop__zone--counter.astro-sh5hp3ak,.lv-workshop__zone--foot.astro-sh5hp3ak{display:contents}.lv-workshop__display.astro-sh5hp3ak{max-width:var(--lv-measure)}.lv-workshop--centered.astro-sh5hp3ak .lv-workshop__display.astro-sh5hp3ak{margin-inline:auto;text-align:center}.lv-workshop__title.astro-sh5hp3ak{margin:0;max-inline-size:16ch;font-size:var(--lv-hero-display, clamp(var(--lv-text-2xl), 5cqi, 3.25rem));line-height:var(--lv-leading-tight);color:var(--lv-text-primary)}.lv-workshop--centered.astro-sh5hp3ak .lv-workshop__title.astro-sh5hp3ak{margin-inline:auto}.lv-workshop__chip.astro-sh5hp3ak{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-2);margin:var(--lv-space-4) 0 0;padding:var(--lv-space-2) var(--lv-space-4);border:1px solid var(--lv-line);border-radius:var(--lv-radius-pill);font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-workshop__chip-figure.astro-sh5hp3ak{font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-workshop__chip-of.astro-sh5hp3ak{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-workshop__chip-stars.astro-sh5hp3ak{margin-inline-start:2px}.lv-workshop__chip-label.astro-sh5hp3ak{color:var(--lv-text-secondary)}.lv-workshop__lede.astro-sh5hp3ak{margin-block-start:var(--lv-space-4);font-size:var(--lv-text-lg);font-weight:var(--lv-weight-regular);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-workshop__actions.astro-sh5hp3ak{display:flex;flex-wrap:wrap;gap:var(--lv-space-3);margin-block-start:var(--lv-space-6)}.lv-workshop--centered.astro-sh5hp3ak .lv-workshop__actions.astro-sh5hp3ak{justify-content:center}.lv-workshop__strip.astro-sh5hp3ak{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-2) var(--lv-space-4);margin-block-start:var(--lv-space-5);padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-workshop--centered.astro-sh5hp3ak .lv-workshop__strip.astro-sh5hp3ak{justify-content:center}.lv-workshop__strip-avatars.astro-sh5hp3ak{display:flex;align-items:center;margin:0;padding:0;list-style:none}.lv-workshop__strip-avatars.astro-sh5hp3ak>li.astro-sh5hp3ak{display:contents}.lv-workshop__strip-avatar.astro-sh5hp3ak{--lv-portrait-size: 2.5rem;border:2px solid var(--lv-surface);flex-shrink:0}.lv-workshop__strip-avatars.astro-sh5hp3ak>li.astro-sh5hp3ak:not(:first-child)>.lv-workshop__strip-avatar.astro-sh5hp3ak{margin-inline-start:-0.65rem}.lv-workshop__strip-rating.astro-sh5hp3ak{display:flex;align-items:baseline;gap:var(--lv-space-2);margin:0;font-size:var(--lv-text-md);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-workshop__strip-of.astro-sh5hp3ak{font-size:var(--lv-text-xs);font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-workshop__strip-stars.astro-sh5hp3ak{margin-inline-start:2px}.lv-workshop__strip-label.astro-sh5hp3ak{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-workshop__strip-proof.astro-sh5hp3ak{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary);max-inline-size:32ch}.lv-workshop--scrim-soft.astro-sh5hp3ak .lv-trust-mark.astro-sh5hp3ak,.lv-workshop--scrim-strong.astro-sh5hp3ak .lv-trust-mark.astro-sh5hp3ak{background:var(--lv-text-on-brand)}.lv-workshop__facts.astro-sh5hp3ak{display:flex;flex-wrap:wrap;gap:var(--lv-space-5);margin:0;padding-block-start:var(--lv-space-5);border-block-start:1px solid var(--lv-line)}.lv-workshop--centered.astro-sh5hp3ak .lv-workshop__facts.astro-sh5hp3ak{justify-content:center}.lv-workshop__fact.astro-sh5hp3ak{flex:1 1 min(9rem,100%)}.lv-workshop__fact-value.astro-sh5hp3ak{font-size:var(--lv-text-xl);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-workshop__fact-unit.astro-sh5hp3ak{margin-inline-start:0.2em;font-family:var(--lv-font-ui);font-size:var(--lv-text-xs);font-weight:var(--lv-weight-medium);letter-spacing:normal;color:var(--lv-text-tertiary)}.lv-workshop__fact-label.astro-sh5hp3ak{margin:var(--lv-space-1) 0 0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-workshop__note.astro-sh5hp3ak{position:relative;align-self:start;inline-size:100%;max-inline-size:26rem;padding:var(--lv-space-6);border-radius:var(--lv-radius-lg);background:var(--lv-brand-strong);box-shadow:var(--lv-lift-3);color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand);--lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-workshop--centered.astro-sh5hp3ak .lv-workshop__note.astro-sh5hp3ak{margin-inline:auto}.lv-workshop__leader.astro-sh5hp3ak{position:absolute;inset-inline-end:100%;inset-block-start:var(--lv-space-7);inline-size:var(--lv-space-8);block-size:1px;background:color-mix(in oklab,var(--lv-text-on-brand) 55%,transparent)}.lv-workshop__leader-mark.astro-sh5hp3ak{position:absolute;inset-inline-start:calc(var(--lv-space-3) * -1);inset-block-start:50%;display:grid;place-items:center;inline-size:1.5rem;block-size:1.5rem;transform:translateY(-50%);border:1px solid color-mix(in oklab,var(--lv-text-on-brand) 55%,transparent);border-radius:var(--lv-radius-pill);background:var(--lv-brand-strong);font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-mono);color:var(--lv-text-on-brand)}@media (max-width: 900px){.lv-workshop__leader.astro-sh5hp3ak{display:none}}.lv-workshop__note-head.astro-sh5hp3ak{display:flex;align-items:center;gap:var(--lv-space-2);margin:0 0 var(--lv-space-3)}.lv-workshop__note-index.astro-sh5hp3ak{display:none;place-items:center;inline-size:1.25rem;block-size:1.25rem;border:1px solid var(--lv-line);border-radius:var(--lv-radius-pill);font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-mono)}@media (max-width: 900px){.lv-workshop__note-index.astro-sh5hp3ak{display:grid}}.lv-workshop__note-title.astro-sh5hp3ak{font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-mono);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);font-variant-caps:var(--lv-display-variant, normal)}.lv-workshop__note-rows.astro-sh5hp3ak{margin:0}.lv-workshop__note-row.astro-sh5hp3ak{display:flex;align-items:baseline;justify-content:space-between;gap:var(--lv-space-4);padding-block:var(--lv-space-3);border-block-start:1px solid var(--lv-line)}.lv-workshop__note-row.astro-sh5hp3ak dt.astro-sh5hp3ak{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-workshop__note-row.astro-sh5hp3ak dd.astro-sh5hp3ak{margin:0;text-align:end;font-weight:var(--lv-weight-medium);color:var(--lv-text-primary)}.lv-workshop__note-row.astro-sh5hp3ak dd.astro-sh5hp3ak a.astro-sh5hp3ak{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in oklab,var(--lv-text-on-brand) 40%,transparent);transition:text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-workshop__note-row.astro-sh5hp3ak dd.astro-sh5hp3ak a.astro-sh5hp3ak:hover{text-decoration-thickness:2px;text-decoration-color:var(--lv-text-on-brand)}.lv-workshop__note-row.astro-sh5hp3ak dd.astro-sh5hp3ak a.astro-sh5hp3ak:focus-visible{outline:var(--lv-focus-width) solid var(--lv-text-on-brand);outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}.lv-workshop__note-foot.astro-sh5hp3ak{margin:var(--lv-space-2) 0 0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-workshop__note-cta.astro-sh5hp3ak{inline-size:100%;margin-block-start:var(--lv-space-4);background:var(--lv-text-on-brand);color:var(--lv-brand-strong);box-shadow:none}.lv-workshop__note-cta.astro-sh5hp3ak:hover{background:color-mix(in oklab,var(--lv-text-on-brand) 92%,var(--lv-brand-strong));color:var(--lv-brand-strong)}.lv-workshop--aside.astro-sh5hp3ak .lv-workshop__marks.astro-sh5hp3ak,.lv-workshop--stat-rail.astro-sh5hp3ak .lv-workshop__marks.astro-sh5hp3ak{grid-column:1 / -1}.lv-workshop__marks.astro-sh5hp3ak{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-4) var(--lv-space-7);margin:0;padding:var(--lv-space-4) 0 0;border-block-start:1px solid var(--lv-line);list-style:none}.lv-workshop__mark-link.astro-sh5hp3ak{display:inline-flex;align-items:center;color:var(--lv-text-tertiary);text-decoration:none;opacity:0.72;transition:opacity var(--lv-dur-fast) var(--lv-ease)}.lv-workshop__mark-link.astro-sh5hp3ak:hover{opacity:1}.lv-workshop__mark-link.astro-sh5hp3ak:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-workshop__mark-img.astro-sh5hp3ak{block-size:1.75rem;inline-size:auto;filter:var(--lv-mark-filter, grayscale(1))}.lv-workshop--scrim-soft.astro-sh5hp3ak .lv-workshop__mark-img.astro-sh5hp3ak,.lv-workshop--scrim-strong.astro-sh5hp3ak .lv-workshop__mark-img.astro-sh5hp3ak{filter:grayscale(1) invert(1) brightness(1.6);mix-blend-mode:screen}.lv-workshop__mark-name.astro-sh5hp3ak{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold);letter-spacing:0.04em}.lv-workshop--full.astro-sh5hp3ak .lv-workshop__inner.astro-sh5hp3ak{flex:1 1 auto}.lv-workshop--full.astro-sh5hp3ak.lv-workshop--anchor-top .lv-workshop__inner.astro-sh5hp3ak{align-content:space-between}@container (min-width: 56rem){.lv-workshop--aside.astro-sh5hp3ak .lv-workshop__inner.astro-sh5hp3ak{grid-template-areas:"display note" "facts note";grid-template-columns:minmax(0,1.6fr) minmax(16rem,0.9fr);column-gap:var(--lv-space-8);align-items:end}.lv-workshop--aside.astro-sh5hp3ak .lv-workshop__display.astro-sh5hp3ak{grid-area:display}.lv-workshop--aside.astro-sh5hp3ak .lv-workshop__facts.astro-sh5hp3ak{grid-area:facts}.lv-workshop--aside.astro-sh5hp3ak .lv-workshop__note.astro-sh5hp3ak{grid-area:note;justify-self:end;align-self:end}.lv-workshop--stat-rail.astro-sh5hp3ak:not(.lv-workshop--aside) .lv-workshop__inner.astro-sh5hp3ak{grid-template-columns:minmax(0,1.6fr) minmax(14rem,0.9fr);column-gap:var(--lv-space-8)}.lv-workshop--stat-rail.astro-sh5hp3ak:not(.lv-workshop--aside) .lv-workshop__facts.astro-sh5hp3ak{flex-direction:column;flex-wrap:nowrap;gap:var(--lv-space-4);padding-block-start:0;padding-inline-start:var(--lv-space-5);border-block-start:0;border-inline-start:1px solid var(--lv-line)}.lv-workshop--stat-rail.astro-sh5hp3ak:not(.lv-workshop--aside) .lv-workshop__fact.astro-sh5hp3ak{flex-basis:auto}.lv-workshop--split.astro-sh5hp3ak:not(.lv-workshop--aside) .lv-workshop__display.astro-sh5hp3ak{max-width:min(var(--lv-measure),60%)}}@media (prefers-reduced-motion: reduce){.lv-workshop__note-row.astro-sh5hp3ak dd.astro-sh5hp3ak a.astro-sh5hp3ak,.lv-workshop__mark-link.astro-sh5hp3ak{transition-duration:0.01ms}}.lv-workshop.astro-sh5hp3ak[data-lv-hero-image=split][data-lv-bleed]{padding-inline:var(--lv-gutter)}.lv-workshop.astro-sh5hp3ak[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-9)}.lv-workshop--compact.astro-sh5hp3ak[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-7)}.lv-workshop--tall.astro-sh5hp3ak[data-lv-hero-image=split]{--lv-heroimg-block-reach: calc(var(--lv-space-9) * 1.6)}.lv-workshop--full.astro-sh5hp3ak[data-lv-hero-image=split]{--lv-heroimg-block-reach: var(--lv-space-7)}@container (min-width: 52rem){.lv-workshop.astro-sh5hp3ak[data-lv-hero-image=split] .lv-workshop__inner.astro-sh5hp3ak,.lv-workshop.astro-sh5hp3ak[data-lv-hero-image=framed] .lv-workshop__inner.astro-sh5hp3ak,.lv-workshop.astro-sh5hp3ak[data-lv-hero-image=offset] .lv-workshop__inner.astro-sh5hp3ak{grid-template-columns:minmax(0,1fr);grid-template-areas:none}.lv-workshop.astro-sh5hp3ak[data-lv-hero-image=split] .astro-sh5hp3ak:is(.lv-workshop__display,.lv-workshop__facts,.lv-workshop__note,.lv-workshop__marks),.lv-workshop.astro-sh5hp3ak[data-lv-hero-image=framed] .astro-sh5hp3ak:is(.lv-workshop__display,.lv-workshop__facts,.lv-workshop__note,.lv-workshop__marks),.lv-workshop.astro-sh5hp3ak[data-lv-hero-image=offset] .astro-sh5hp3ak:is(.lv-workshop__display,.lv-workshop__facts,.lv-workshop__note,.lv-workshop__marks){grid-area:auto;grid-column:auto;justify-self:stretch;align-self:auto}.lv-workshop.astro-sh5hp3ak[data-lv-hero-image=split] .lv-workshop__facts.astro-sh5hp3ak,.lv-workshop.astro-sh5hp3ak[data-lv-hero-image=framed] .lv-workshop__facts.astro-sh5hp3ak,.lv-workshop.astro-sh5hp3ak[data-lv-hero-image=offset] .lv-workshop__facts.astro-sh5hp3ak{flex-direction:row}}@container (min-width: 52rem){.lv-workshop--centered.astro-sh5hp3ak[data-lv-hero-image=split] .lv-workshop__display.astro-sh5hp3ak,.lv-workshop--centered.astro-sh5hp3ak[data-lv-hero-image=framed] .lv-workshop__display.astro-sh5hp3ak,.lv-workshop--centered.astro-sh5hp3ak[data-lv-hero-image=offset] .lv-workshop__display.astro-sh5hp3ak{text-align:start;margin-inline:0}.lv-workshop--centered.astro-sh5hp3ak[data-lv-hero-image=split] .lv-workshop__actions.astro-sh5hp3ak,.lv-workshop--centered.astro-sh5hp3ak[data-lv-hero-image=framed] .lv-workshop__actions.astro-sh5hp3ak,.lv-workshop--centered.astro-sh5hp3ak[data-lv-hero-image=offset] .lv-workshop__actions.astro-sh5hp3ak,.lv-workshop--centered.astro-sh5hp3ak[data-lv-hero-image=split] .lv-workshop__strip.astro-sh5hp3ak,.lv-workshop--centered.astro-sh5hp3ak[data-lv-hero-image=framed] .lv-workshop__strip.astro-sh5hp3ak,.lv-workshop--centered.astro-sh5hp3ak[data-lv-hero-image=offset] .lv-workshop__strip.astro-sh5hp3ak,.lv-workshop--centered.astro-sh5hp3ak[data-lv-hero-image=split] .lv-workshop__facts.astro-sh5hp3ak,.lv-workshop--centered.astro-sh5hp3ak[data-lv-hero-image=framed] .lv-workshop__facts.astro-sh5hp3ak,.lv-workshop--centered.astro-sh5hp3ak[data-lv-hero-image=offset] .lv-workshop__facts.astro-sh5hp3ak{justify-content:flex-start}.lv-workshop--centered.astro-sh5hp3ak[data-lv-hero-image=split] .lv-workshop__title.astro-sh5hp3ak,.lv-workshop--centered.astro-sh5hp3ak[data-lv-hero-image=framed] .lv-workshop__title.astro-sh5hp3ak,.lv-workshop--centered.astro-sh5hp3ak[data-lv-hero-image=offset] .lv-workshop__title.astro-sh5hp3ak{margin-inline:0}}
/* components/open.reel/renderers/reel.astro */
.lv-reel.astro-l4hhrxre{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-block-size:calc(var(--lv-stage-vh, 100svh) - var(--lv-nav-height, 0px));padding:var(--lv-space-5) var(--lv-gutter, var(--lv-space-5));color:var(--lv-text-on-brand)}.lv-reel--tall.astro-l4hhrxre{min-block-size:calc((var(--lv-stage-vh, 100svh) - var(--lv-nav-height, 0px)) * 0.78)}.lv-reel__stage.astro-l4hhrxre{position:absolute;inset:0;z-index:-1;overflow:hidden;background:var(--lv-surface-sunken)}.lv-reel__clip.astro-l4hhrxre{position:absolute;inset:0;margin:0;transition:opacity 400ms var(--lv-ease, cubic-bezier(0.22, 1, 0.36, 1))}.lv-reel__clip.astro-l4hhrxre:not([data-active]){opacity:0}.lv-reel__poster.astro-l4hhrxre,.lv-reel__video.astro-l4hhrxre{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;object-position:50% 50%}.lv-reel__video.astro-l4hhrxre{opacity:0;transition:opacity 400ms var(--lv-ease, cubic-bezier(0.22, 1, 0.36, 1))}.lv-reel__clip.astro-l4hhrxre[data-playing] .lv-reel__video.astro-l4hhrxre{opacity:1}.lv-reel__stage.astro-l4hhrxre::after{content:"";position:absolute;inset:0;pointer-events:none}.lv-reel--scrim-top.astro-l4hhrxre .lv-reel__stage.astro-l4hhrxre::after{background:linear-gradient(to bottom,rgb(var(--lv-glass-under) / 0.5) 0%,rgb(var(--lv-glass-under) / 0.16) 16%,transparent 30%)}.lv-reel--scrim-bottom.astro-l4hhrxre .lv-reel__stage.astro-l4hhrxre::after{background:linear-gradient(to top,rgb(var(--lv-glass-under) / 0.62) 0%,rgb(var(--lv-glass-under) / 0.22) 26%,transparent 44%)}.lv-reel--statement.astro-l4hhrxre .lv-reel__stage.astro-l4hhrxre::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to top,rgb(var(--lv-glass-under) / 0.57) 0%,rgb(var(--lv-glass-under) / 0.36) 38%,rgb(var(--lv-glass-under) / 0.12) 68%,transparent 100%),linear-gradient(100deg,rgb(var(--lv-glass-under) / 0.21) 0%,transparent 55%)}.lv-reel__stage.astro-l4hhrxre::after{z-index:1}.lv-reel__overlay.astro-l4hhrxre{display:grid;gap:var(--lv-space-6);inline-size:100%}.lv-reel__lockup.astro-l4hhrxre{max-inline-size:var(--lv-measure, 40rem)}.lv-reel__title.astro-l4hhrxre{margin:0;max-inline-size:22ch;font-size:clamp(var(--lv-text-2xl),6.5cqi,var(--lv-hero-display, 3.25rem));hyphens:manual;line-height:var(--lv-leading-tight);color:var(--lv-text-on-brand);text-wrap:balance}.lv-reel__lede.astro-l4hhrxre{margin-block-start:var(--lv-space-4);max-inline-size:44ch;font-size:var(--lv-text-lg);line-height:var(--lv-leading-normal);color:var(--lv-text-on-brand)}.lv-reel__foot.astro-l4hhrxre{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--lv-space-3)}.lv-reel--credit-start.astro-l4hhrxre .lv-reel__foot.astro-l4hhrxre{flex-direction:row-reverse}.lv-reel__credits.astro-l4hhrxre{margin:0 0 0 auto;max-inline-size:min(28rem,100%);text-align:end}.lv-reel--credit-start.astro-l4hhrxre .lv-reel__credits.astro-l4hhrxre{margin:0 auto 0 0;text-align:start}.lv-reel__credit.astro-l4hhrxre[hidden]{display:none}.lv-reel__credit-link.astro-l4hhrxre,.lv-reel__credit-text.astro-l4hhrxre{display:inline-block;padding:var(--lv-space-2) var(--lv-space-3);border-radius:var(--lv-radius-sm);background:var(--lv-canvas);color:var(--lv-text-primary);font:var(--lv-weight-medium) var(--lv-text-md) / 1.3 var(--lv-font-ui);text-decoration:none;animation:lv-reel-credit-in 400ms var(--lv-ease, cubic-bezier(0.22, 1, 0.36, 1))}.lv-reel__credit-link.astro-l4hhrxre{min-block-size:44px;display:inline-flex;align-items:center}.lv-reel__credit-link.astro-l4hhrxre:hover{text-decoration:underline;text-underline-offset:0.18em}.lv-reel__credit-link.astro-l4hhrxre:focus-visible,.lv-reel__toggle.astro-l4hhrxre:focus-visible{outline:var(--lv-focus-width, 2px) solid var(--lv-focus-ring, currentColor);outline-offset:var(--lv-focus-offset, 2px)}.lv-reel__toggle.astro-l4hhrxre{display:inline-flex;align-items:center;gap:var(--lv-space-2);min-block-size:44px;padding-inline:var(--lv-space-3) var(--lv-space-4);border:0;border-radius:var(--lv-radius-pill);background:var(--lv-canvas);color:var(--lv-text-primary);font:var(--lv-weight-medium) var(--lv-text-sm) / 1 var(--lv-font-ui);cursor:pointer}.lv-reel__toggle.astro-l4hhrxre[hidden]{display:none}.lv-reel__toggle.astro-l4hhrxre:active{transform:scale(0.97)}.lv-reel__glyph.astro-l4hhrxre{inline-size:0.8rem;block-size:0.8rem;fill:currentColor}.lv-reel__glyph--play.astro-l4hhrxre{display:none}.lv-reel.astro-l4hhrxre[data-paused] .lv-reel__glyph--play.astro-l4hhrxre{display:block}.lv-reel.astro-l4hhrxre[data-paused] .lv-reel__glyph--pause.astro-l4hhrxre{display:none}@keyframes lv-reel-credit-in{from{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.lv-reel__clip.astro-l4hhrxre,.lv-reel__video.astro-l4hhrxre{transition:none}.lv-reel__credit-link.astro-l4hhrxre,.lv-reel__credit-text.astro-l4hhrxre{animation:none}}
/* components/open.scene/renderers/scene.astro */
.lv-scene.astro-uuvg4tdy{position:relative;isolation:isolate;display:flex;flex-direction:column;min-block-size:calc(var(--lv-stage-vh, 100svh) - var(--lv-nav-height, 0px));padding-block:var(--lv-space-7);padding-inline:var(--lv-gutter)}.lv-scene__inner.astro-uuvg4tdy{margin-block-start:auto;inline-size:100%;display:grid;gap:var(--lv-space-6)}.lv-scene__backdrops.astro-uuvg4tdy{position:absolute;inset:0;z-index:-1;overflow:hidden;background:var(--lv-surface-sunken)}.lv-scene__bg.astro-uuvg4tdy{position:absolute;inset:0;opacity:0}.lv-scene__bg.astro-uuvg4tdy:first-child{opacity:1}.lv-scene__bg.astro-uuvg4tdy img.astro-uuvg4tdy{inline-size:100%;block-size:100%;object-fit:cover;object-position:50% 42%}.lv-scene__backdrops.astro-uuvg4tdy::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgb(var(--lv-glass-under) / calc(var(--lv-scene-scrim, 0.62) * 0.92)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-scene-scrim, 0.62) * 0.58)) 38%,rgb(var(--lv-glass-under) / calc(var(--lv-scene-scrim, 0.62) * 0.20)) 68%,rgb(var(--lv-glass-under) / calc(var(--lv-scene-scrim, 0.62) * 0.05)) 100%),linear-gradient(100deg,rgb(var(--lv-glass-under) / calc(var(--lv-scene-scrim, 0.62) * 0.34)) 0%,transparent 55%)}.lv-scene--scrim-strong.astro-uuvg4tdy{--lv-scene-scrim: 0.82}@media (max-width: 700px){.lv-scene__backdrops.astro-uuvg4tdy::after{background:linear-gradient(to top,rgb(var(--lv-glass-under) / calc(var(--lv-scene-scrim, 0.62) * 0.98)) 0%,rgb(var(--lv-glass-under) / calc(var(--lv-scene-scrim, 0.62) * 0.72)) 42%,rgb(var(--lv-glass-under) / calc(var(--lv-scene-scrim, 0.62) * 0.32)) 70%,rgb(var(--lv-glass-under) / calc(var(--lv-scene-scrim, 0.62) * 0.08)) 100%)}}.lv-scene--tabs.astro-uuvg4tdy .lv-scene__bg.astro-uuvg4tdy{z-index:0;visibility:hidden;transition:opacity var(--lv-dur-media, 900ms) var(--lv-ease),visibility 0s linear var(--lv-dur-media, 900ms)}.lv-scene--tabs.astro-uuvg4tdy .lv-scene__bg.astro-uuvg4tdy:first-child{visibility:visible;z-index:1;transition-delay:0s,0s}.lv-scene--tabs.astro-uuvg4tdy:has(.lv-scene__radio:checked) .lv-scene__bg.astro-uuvg4tdy:first-child{opacity:0;visibility:hidden;z-index:0;transition-delay:0s,var(--lv-dur-media, 900ms)}.lv-scene--tabs.astro-uuvg4tdy:has(.lv-scene__tab:nth-of-type(1) .lv-scene__radio:checked) .lv-scene__bg.astro-uuvg4tdy:nth-of-type(1),.lv-scene--tabs.astro-uuvg4tdy:has(.lv-scene__tab:nth-of-type(2) .lv-scene__radio:checked) .lv-scene__bg.astro-uuvg4tdy:nth-of-type(2),.lv-scene--tabs.astro-uuvg4tdy:has(.lv-scene__tab:nth-of-type(3) .lv-scene__radio:checked) .lv-scene__bg.astro-uuvg4tdy:nth-of-type(3),.lv-scene--tabs.astro-uuvg4tdy:has(.lv-scene__tab:nth-of-type(4) .lv-scene__radio:checked) .lv-scene__bg.astro-uuvg4tdy:nth-of-type(4){opacity:1;visibility:visible;z-index:1;transition-delay:0s,0s}@media (prefers-reduced-motion: no-preference){.lv-scene--auto-2.astro-uuvg4tdy .lv-scene__bg.astro-uuvg4tdy{animation:lv-scene-cycle-2 16s linear infinite}.lv-scene--auto-3.astro-uuvg4tdy .lv-scene__bg.astro-uuvg4tdy{animation:lv-scene-cycle-3 24s linear infinite}.lv-scene--auto-4.astro-uuvg4tdy .lv-scene__bg.astro-uuvg4tdy{animation:lv-scene-cycle-4 32s linear infinite}.lv-scene--auto.astro-uuvg4tdy .lv-scene__bg.astro-uuvg4tdy:nth-of-type(2){animation-delay:8s}.lv-scene--auto.astro-uuvg4tdy .lv-scene__bg.astro-uuvg4tdy:nth-of-type(3){animation-delay:16s}.lv-scene--auto.astro-uuvg4tdy .lv-scene__bg.astro-uuvg4tdy:nth-of-type(4){animation-delay:24s}@keyframes lv-scene-cycle-2{0%{opacity:0}5%,50%{opacity:1}55%,100%{opacity:0}}@keyframes lv-scene-cycle-3{0%{opacity:0}4%,33.3%{opacity:1}37.3%,100%{opacity:0}}@keyframes lv-scene-cycle-4{0%{opacity:0}3%,25%{opacity:1}28%,100%{opacity:0}}}.lv-scene__copy.astro-uuvg4tdy{max-width:var(--lv-measure)}.lv-scene.astro-uuvg4tdy .lv-sec__eyebrow.astro-uuvg4tdy,.lv-scene__title.astro-uuvg4tdy,.lv-scene__lede.astro-uuvg4tdy,.lv-scene__stat-value.astro-uuvg4tdy,.lv-scene__stat-unit.astro-uuvg4tdy,.lv-scene__stat-label.astro-uuvg4tdy,.lv-scene__form-label.astro-uuvg4tdy,.lv-scene__consent.astro-uuvg4tdy{color:var(--lv-text-on-brand)}.lv-scene__title.astro-uuvg4tdy{margin:0;max-inline-size:15ch;font-size:var(--lv-hero-display, clamp(var(--lv-text-2xl), 5cqi, 3.25rem));line-height:var(--lv-leading-tight);text-wrap:balance}.lv-scene__lede.astro-uuvg4tdy{margin-block-start:var(--lv-space-4);max-inline-size:52ch;font-size:var(--lv-text-lg);line-height:var(--lv-leading-normal)}.lv-scene__actions.astro-uuvg4tdy{display:flex;flex-wrap:wrap;gap:var(--lv-space-3);margin-block-start:var(--lv-space-6)}.lv-scene__form-shell.astro-uuvg4tdy{display:grid;gap:var(--lv-space-3);max-width:28rem;margin-block-start:var(--lv-space-6)}.lv-scene__form.astro-uuvg4tdy{display:grid;gap:var(--lv-space-2)}.lv-scene__form-row.astro-uuvg4tdy{display:flex;flex-wrap:wrap;gap:var(--lv-space-3)}.lv-scene__form-row.astro-uuvg4tdy .lv-field.astro-uuvg4tdy{flex:1 1 14rem}.lv-scene__consent.astro-uuvg4tdy{color:var(--lv-text-on-brand)}.lv-scene__fold.astro-uuvg4tdy{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--lv-space-4) var(--lv-space-6);padding-block-start:var(--lv-space-4);border-block-start:1px solid color-mix(in srgb,var(--lv-text-on-brand) 28%,transparent)}.lv-scene__tabs.astro-uuvg4tdy{display:flex;flex-wrap:wrap;gap:var(--lv-space-2);margin:0;padding:0;border:0}.lv-scene__tab.astro-uuvg4tdy{display:inline-flex;align-items:center;min-block-size:44px;padding-inline:var(--lv-space-4);border-radius:var(--lv-radius-pill);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line-control);font:var(--lv-weight-medium) var(--lv-text-sm) / 1 var(--lv-font-ui);color:var(--lv-text-primary);cursor:pointer;transition:background-color var(--lv-dur-state) var(--lv-ease),color var(--lv-dur-state) var(--lv-ease)}.lv-scene__tab.astro-uuvg4tdy:has(.lv-scene__radio:checked){background:var(--lv-brand-strong);color:var(--lv-text-on-brand)}.lv-scene__tab.astro-uuvg4tdy:has(.lv-scene__radio:focus-visible){outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-scene__tab.astro-uuvg4tdy:active{transform:scale(0.97)}.lv-scene__stats.astro-uuvg4tdy{display:flex;flex-wrap:wrap;gap:var(--lv-space-2) var(--lv-space-6);margin:0}.lv-scene__stat-value.astro-uuvg4tdy{font-size:var(--lv-text-lg);font-weight:var(--lv-weight-semibold)}.lv-scene__stat-unit.astro-uuvg4tdy{margin-inline-start:0.2em;font-family:var(--lv-font-ui);font-size:var(--lv-text-xs);font-weight:var(--lv-weight-medium);letter-spacing:normal}.lv-scene__stat-label.astro-uuvg4tdy{margin:0;font-size:var(--lv-text-xs)}
/* components/open.slideshow/renderers/slideshow.astro */
.lv-ss.astro-kcddedyq{--ss-ease: var(--lv-ease, cubic-bezier(0.22, 1, 0.36, 1));--ss-pad: var(--lv-space-6);padding-block:0}.lv-ss--contained.astro-kcddedyq{padding-block:var(--lv-space-5)}.lv-ss--full.astro-kcddedyq .lv-ss__body.astro-kcddedyq,.lv-ss--full.astro-kcddedyq .lv-ss__controls.astro-kcddedyq{padding-inline:max(var(--lv-gutter, var(--lv-space-5)),calc((100cqi - var(--lv-container-max, 72rem)) / 2))}.lv-ss--contained.astro-kcddedyq .lv-ss__track.astro-kcddedyq{border-radius:var(--lv-radius-lg);overflow:clip}.lv-ss__frame.astro-kcddedyq{display:flex;flex-direction:column}.lv-ss__track.astro-kcddedyq{order:1}.lv-ss__controls.astro-kcddedyq{order:2}.lv-ss__track.astro-kcddedyq{position:relative;display:grid;overflow:clip;container-type:size;background:var(--lv-surface-sunken);touch-action:pan-y}.lv-ss--ratio.astro-kcddedyq .lv-ss__track.astro-kcddedyq{aspect-ratio:var(--ss-rd, 3 / 1)}.lv-ss--fixed.astro-kcddedyq .lv-ss__track.astro-kcddedyq{block-size:min(var(--ss-hd, 460px),78svh)}.lv-ss__track.astro-kcddedyq{max-block-size:var(--lv-stage-vh, none)}.lv-ss__slide.astro-kcddedyq{grid-area:1 / 1;position:relative;display:grid;min-inline-size:0;background:var(--lv-surface-sunken)}.lv-ss__slide.astro-kcddedyq[hidden]{display:none}.lv-ss__slide.astro-kcddedyq:not([data-active]){opacity:0;visibility:hidden;z-index:0}.lv-ss__slide.astro-kcddedyq[data-active]{z-index:2}.lv-ss__slide.astro-kcddedyq[data-leaving]{z-index:1}.lv-ss.astro-kcddedyq:not([data-js]) .lv-ss__slide.astro-kcddedyq:target{opacity:1;visibility:visible;z-index:3}.lv-ss.astro-kcddedyq:not([data-js]) .lv-ss__track.astro-kcddedyq:has(> :target)>.astro-kcddedyq[data-active]:not(:target){opacity:0;visibility:hidden}@media (prefers-reduced-motion: no-preference){.lv-ss.astro-kcddedyq[data-js] .lv-ss__slide.astro-kcddedyq{transition:opacity var(--ss-speed, 700ms) var(--ss-ease),translate var(--ss-speed, 700ms) var(--ss-ease),scale var(--ss-speed, 700ms) var(--ss-ease),visibility 0s linear var(--ss-speed, 700ms)}.lv-ss.astro-kcddedyq[data-js] .lv-ss__slide.astro-kcddedyq[data-active]{transition-delay:0s}.lv-ss--slide.astro-kcddedyq[data-js] .lv-ss__slide.astro-kcddedyq,.lv-ss--parallax.astro-kcddedyq[data-js] .lv-ss__slide.astro-kcddedyq{opacity:1}.lv-ss--slide.astro-kcddedyq[data-js] .lv-ss__slide.astro-kcddedyq:not([data-active]):not([data-leaving]),.lv-ss--parallax.astro-kcddedyq[data-js] .lv-ss__slide.astro-kcddedyq:not([data-active]):not([data-leaving]){translate:100% 0;transition:none}.lv-ss--slide.astro-kcddedyq[data-js] .lv-ss__track.astro-kcddedyq[data-dir=prev]>.lv-ss__slide.astro-kcddedyq:not([data-active]):not([data-leaving]),.lv-ss--parallax.astro-kcddedyq[data-js] .lv-ss__track.astro-kcddedyq[data-dir=prev]>.lv-ss__slide.astro-kcddedyq:not([data-active]):not([data-leaving]){translate:-100% 0}.lv-ss--slide.astro-kcddedyq[data-js] .lv-ss__slide.astro-kcddedyq[data-leaving]{translate:-100% 0}.lv-ss--slide.astro-kcddedyq[data-js] .lv-ss__track.astro-kcddedyq[data-dir=prev]>.astro-kcddedyq[data-leaving]{translate:100% 0}.lv-ss--parallax.astro-kcddedyq[data-js] .lv-ss__slide.astro-kcddedyq[data-leaving]{translate:-30% 0}.lv-ss--parallax.astro-kcddedyq[data-js] .lv-ss__track.astro-kcddedyq[data-dir=prev]>.astro-kcddedyq[data-leaving]{translate:30% 0}.lv-ss--zoom-fade.astro-kcddedyq[data-js] .lv-ss__slide.astro-kcddedyq:not([data-active]){scale:1.06}.lv-ss--zoom-fade.astro-kcddedyq[data-js] .lv-ss__slide.astro-kcddedyq[data-leaving]{scale:1}.lv-ss__slide.astro-kcddedyq[data-active] .lv-ss__media.astro-kcddedyq[class*=--kb-] .lv-ss__img.astro-kcddedyq{animation:lv-ss-kb var(--ss-kb, 7s) linear both}.lv-ss__media--kb-zoom-in.astro-kcddedyq{--ss-kb-from: scale(1);--ss-kb-to: scale(1.1)}.lv-ss__media--kb-zoom-out.astro-kcddedyq{--ss-kb-from: scale(1.1);--ss-kb-to: scale(1)}.lv-ss__media--kb-pan-left.astro-kcddedyq{--ss-kb-from: scale(1.1) translateX(3%);--ss-kb-to: scale(1.1) translateX(-3%)}.lv-ss__media--kb-pan-right.astro-kcddedyq{--ss-kb-from: scale(1.1) translateX(-3%);--ss-kb-to: scale(1.1) translateX(3%)}.lv-ss__media--kb-pan-up.astro-kcddedyq{--ss-kb-from: scale(1.1) translateY(3%);--ss-kb-to: scale(1.1) translateY(-3%)}.lv-ss__media--kb-pan-down.astro-kcddedyq{--ss-kb-from: scale(1.1) translateY(-3%);--ss-kb-to: scale(1.1) translateY(3%)}.lv-ss.astro-kcddedyq[data-paused] .lv-ss__img.astro-kcddedyq{animation-play-state:paused}.lv-ss__slide.astro-kcddedyq[data-enter] .lv-ss__layer.astro-kcddedyq:not(.lv-ss__fx--none){animation:var(--ss-fx) var(--ss-t, 600ms) var(--ss-ease) var(--ss-d, 0ms) both}.lv-ss__fx--fade.astro-kcddedyq{--ss-fx: lv-ss-fade}.lv-ss__fx--fade-up.astro-kcddedyq{--ss-fx: lv-ss-fade-up}.lv-ss__fx--slide-left.astro-kcddedyq{--ss-fx: lv-ss-slide-left}.lv-ss__fx--slide-right.astro-kcddedyq{--ss-fx: lv-ss-slide-right}.lv-ss__fx--zoom-in.astro-kcddedyq{--ss-fx: lv-ss-zoom-in}.lv-ss__fx--blur-in.astro-kcddedyq{--ss-fx: lv-ss-blur-in}@keyframes lv-ss-kb{from{transform:var(--ss-kb-from)}to{transform:var(--ss-kb-to)}}@keyframes lv-ss-fade{from{opacity:0}}@keyframes lv-ss-fade-up{from{opacity:0;transform:translateY(1.25rem)}}@keyframes lv-ss-slide-left{from{opacity:0;transform:translateX(2.5rem)}}@keyframes lv-ss-slide-right{from{opacity:0;transform:translateX(-2.5rem)}}@keyframes lv-ss-zoom-in{from{opacity:0;transform:scale(0.92)}}@keyframes lv-ss-blur-in{from{opacity:0;filter:blur(8px)}}}.lv-ss__media.astro-kcddedyq{grid-area:1 / 1;position:relative;overflow:clip;min-block-size:0}.lv-ss__media.astro-kcddedyq picture.astro-kcddedyq{display:contents}.lv-ss__img.astro-kcddedyq,.lv-ss__video.astro-kcddedyq{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover}.lv-ss__video.astro-kcddedyq{transition:opacity 400ms var(--ss-ease)}.lv-ss__media.astro-kcddedyq:not([data-playing]) .lv-ss__video.astro-kcddedyq{opacity:0}.lv-ss__media.astro-kcddedyq::after{content:"";position:absolute;inset:0;pointer-events:none;--ss-a: 0.62;--ss-veil: rgb(var(--lv-glass-under) / var(--ss-a))}.lv-ss__media.astro-kcddedyq[data-strength=light]::after{--ss-a: 0.45}.lv-ss__media.astro-kcddedyq[data-strength=strong]::after{--ss-a: 0.8}.lv-ss__media.astro-kcddedyq[data-tone=dark]::after{--ss-veil: color-mix(in srgb, var(--lv-surface) calc(var(--ss-a) * 100%), transparent)}.lv-ss__media.astro-kcddedyq[data-scrim=bottom]::after{background:linear-gradient(to top,var(--ss-veil),transparent 72%)}.lv-ss__media.astro-kcddedyq[data-scrim=top]::after{background:linear-gradient(to bottom,var(--ss-veil),transparent 72%)}.lv-ss__media.astro-kcddedyq[data-scrim=start]::after{background:linear-gradient(to right,var(--ss-veil),transparent 70%)}.lv-ss__media.astro-kcddedyq[data-scrim=end]::after{background:linear-gradient(to left,var(--ss-veil),transparent 70%)}.lv-ss__media.astro-kcddedyq[data-scrim=full]::after{background:var(--ss-veil)}.lv-ss__media.astro-kcddedyq[data-scrim=bottom-start]::after{background:radial-gradient(ellipse 85% 160% at 0% 100%,var(--ss-veil) 0%,var(--ss-veil) 45%,transparent 100%)}.lv-ss__media.astro-kcddedyq[data-scrim=bottom-end]::after{background:radial-gradient(ellipse 85% 160% at 100% 100%,var(--ss-veil) 0%,var(--ss-veil) 45%,transparent 100%)}.lv-ss__media.astro-kcddedyq[data-scrim=top-start]::after{background:radial-gradient(ellipse 85% 160% at 0% 0%,var(--ss-veil) 0%,var(--ss-veil) 45%,transparent 100%)}.lv-ss__media.astro-kcddedyq[data-scrim=top-end]::after{background:radial-gradient(ellipse 85% 160% at 100% 0%,var(--ss-veil) 0%,var(--ss-veil) 45%,transparent 100%)}[dir="rtl"] .lv-ss__media.astro-kcddedyq[data-scrim=start]::after{background:linear-gradient(to left,var(--ss-veil),transparent 70%)}.lv-ss__body.astro-kcddedyq{grid-area:1 / 1;position:relative;z-index:2;display:grid;grid-template-rows:repeat(6,auto) minmax(0,1fr) repeat(6,auto) minmax(0,1fr) repeat(6,auto);padding:var(--ss-pad);overflow:clip;pointer-events:none;min-inline-size:0}.lv-ss__body.astro-kcddedyq{--ss-pad: clamp(var(--lv-space-4), 7cqb, var(--lv-space-7))}.lv-ss__layer.astro-kcddedyq{grid-row:var(--ss-r);grid-column:1;justify-self:var(--ss-j);text-align:var(--ss-j);max-inline-size:var(--ss-w);translate:calc(var(--ss-x, 0) * 1cqi) calc(var(--ss-y, 0) * 1cqi);pointer-events:auto;min-inline-size:0}.lv-ss__layer--follows.astro-kcddedyq{margin-block-start:var(--lv-space-3)}.lv-ss__layer--follows.astro-kcddedyq.lv-ss__layer--buttons{margin-block-start:var(--lv-space-5)}.lv-ss__layer--d-hidden.astro-kcddedyq{display:none}.lv-ss__body.astro-kcddedyq{color:var(--lv-text-primary)}@media (min-width: 48rem){.lv-ss__body.astro-kcddedyq[data-ink=light],.lv-ss__body.astro-kcddedyq[data-ink=brand]{color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 28%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand)}}.lv-ss__heading.astro-kcddedyq{margin:0;font-family:var(--lv-display-family, inherit);font-weight:var(--lv-weight-heading, 700);letter-spacing:var(--lv-tracking-heading, -0.02em);text-transform:var(--lv-display-case, none);line-height:var(--lv-leading-tight, 1.1);text-wrap:balance;color:inherit}.lv-ss__heading--display.astro-kcddedyq{font-size:max(1.25rem,min(var(--lv-hero-display, var(--lv-text-2xl)),12.5cqb,5.6cqi + 0.5rem))}.lv-ss__heading--title.astro-kcddedyq{font-size:max(1.125rem,min(var(--lv-text-2xl),9.5cqb,4.2cqi + 0.5rem))}.lv-ss__text.astro-kcddedyq{margin:0;line-height:var(--lv-leading-snug, 1.4);color:var(--lv-text-secondary);text-wrap:pretty}.lv-ss__text--lead.astro-kcddedyq{font-size:max(0.875rem,min(var(--lv-text-lg),5cqb))}.lv-ss__text--body.astro-kcddedyq{font-size:max(0.8125rem,min(var(--lv-text-md),4.4cqb))}.lv-ss__badge.astro-kcddedyq{display:inline-flex;align-items:center;min-block-size:var(--lv-badge-height, 1.75rem);padding-inline:var(--lv-badge-padding-x, var(--lv-space-3));border-radius:var(--lv-radius-pill);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold, 600);letter-spacing:0.01em}.lv-ss__badge--brand.astro-kcddedyq{background:var(--lv-brand-strong);color:var(--lv-text-on-brand)}.lv-ss__badge--accent.astro-kcddedyq{background:var(--lv-surface);color:var(--lv-ink-accent, var(--lv-text-primary));box-shadow:inset 0 0 0 1px var(--lv-line-strong, var(--lv-line))}.lv-ss__badge--neutral.astro-kcddedyq{color:inherit;box-shadow:inset 0 0 0 1px currentColor}.lv-ss__buttons.astro-kcddedyq{margin:0;display:flex;flex-wrap:wrap;gap:var(--lv-space-3);justify-content:var(--ss-j)}.lv-ss__cutout.astro-kcddedyq{display:block;inline-size:100%;block-size:auto}.lv-ss__hit.astro-kcddedyq{position:absolute;inset:0;z-index:1}.lv-ss__hit.astro-kcddedyq:focus-visible{outline:var(--lv-focus-width, 3px) solid var(--lv-focus-ring, currentColor);outline-offset:calc(-1 * var(--lv-focus-width, 3px) * 2)}.lv-ss__slide--split.astro-kcddedyq{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}.lv-ss__slide--split.astro-kcddedyq .lv-ss__media.astro-kcddedyq{grid-area:1 / 2}.lv-ss__slide--split.astro-kcddedyq .lv-ss__body.astro-kcddedyq{grid-area:1 / 1}.lv-ss__slide--split.astro-kcddedyq.lv-ss__slide--media-start{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.lv-ss__slide--split.astro-kcddedyq.lv-ss__slide--media-start .lv-ss__media.astro-kcddedyq{grid-area:1 / 1}.lv-ss__slide--split.astro-kcddedyq.lv-ss__slide--media-start .lv-ss__body.astro-kcddedyq{grid-area:1 / 2}.lv-ss__slide--split.astro-kcddedyq .lv-ss__layer.astro-kcddedyq,.lv-ss__slide--bare.astro-kcddedyq .lv-ss__layer.astro-kcddedyq{--ss-w-cap: 100%}.lv-ss__slide--panel-surface.astro-kcddedyq{background:var(--lv-surface)}.lv-ss__slide--panel-sunken.astro-kcddedyq{background:var(--lv-surface-sunken)}.lv-ss__slide--panel-brand.astro-kcddedyq{background:var(--lv-brand-strong)}.lv-ss__slide--cover.astro-kcddedyq:not(.lv-ss__slide--bare){background:var(--lv-surface-sunken)}.lv-ss__empty.astro-kcddedyq{display:grid;justify-items:start;gap:var(--lv-space-3);padding:var(--lv-space-7) var(--lv-space-6);border:1px dashed var(--lv-line-strong, var(--lv-line));border-radius:var(--lv-radius-lg);background:var(--lv-surface-sunken);color:var(--lv-text-primary)}.lv-ss__empty-title.astro-kcddedyq{margin:0;font-size:var(--lv-text-xl);font-weight:var(--lv-weight-heading, 700)}.lv-ss__empty-body.astro-kcddedyq{margin:0;color:var(--lv-text-secondary);max-inline-size:60ch}.lv-ss__controls.astro-kcddedyq{display:flex;align-items:center;gap:var(--lv-space-2);min-block-size:3.25rem;padding-block:var(--lv-space-1)}.lv-ss--contained.astro-kcddedyq .lv-ss__controls.astro-kcddedyq{padding-inline:0}.lv-ss__ctl.astro-kcddedyq{display:inline-grid;place-items:center;inline-size:2.75rem;block-size:2.75rem;flex:none;padding:0;border:1px solid var(--lv-line-control, var(--lv-line));border-radius:var(--lv-radius-pill);background:var(--lv-surface-raised, var(--lv-surface));color:var(--lv-text-primary);cursor:pointer}.lv-ss__ctl.astro-kcddedyq[hidden],.lv-ss__pick.astro-kcddedyq[hidden]{display:none}.lv-ss__ctl.astro-kcddedyq:hover{border-color:var(--lv-line-strong, var(--lv-text-tertiary))}.lv-ss__ctl.astro-kcddedyq:active{scale:0.96}.lv-ss__ctl.astro-kcddedyq:disabled{opacity:0.45;cursor:default}.lv-ss__ctl.astro-kcddedyq:focus-visible,.lv-ss__pick.astro-kcddedyq:focus-visible{outline:var(--lv-focus-width, 3px) solid var(--lv-focus-ring, var(--lv-brand));outline-offset:var(--lv-focus-offset, 2px)}.lv-ss__glyph.astro-kcddedyq{inline-size:0.75rem;block-size:0.75rem;fill:currentColor;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.lv-ss__toggle.astro-kcddedyq .lv-ss__glyph.astro-kcddedyq{stroke:none}.lv-ss__prev.astro-kcddedyq .lv-ss__glyph.astro-kcddedyq,.lv-ss__next.astro-kcddedyq .lv-ss__glyph.astro-kcddedyq{fill:none}.lv-ss__glyph--play.astro-kcddedyq{display:none}.lv-ss.astro-kcddedyq[data-paused] .lv-ss__glyph--play.astro-kcddedyq{display:block}.lv-ss.astro-kcddedyq[data-paused] .lv-ss__glyph--pause.astro-kcddedyq{display:none}.lv-ss__pickers.astro-kcddedyq{display:flex;align-items:center;flex-wrap:wrap;min-inline-size:0}.lv-ss__dot.astro-kcddedyq{display:inline-grid;place-items:center;inline-size:2.75rem;block-size:2.75rem;border-radius:var(--lv-radius-pill)}.lv-ss__dot.astro-kcddedyq::before{content:"";inline-size:0.5rem;block-size:0.5rem;border-radius:var(--lv-radius-pill);background:var(--lv-text-tertiary);transition:transform var(--lv-dur-state, 160ms) var(--ss-ease)}.lv-ss__dot.astro-kcddedyq[aria-current=true]::before{transform:scaleX(2.75);background:var(--lv-brand)}.lv-ss__pickers--thumbs.astro-kcddedyq{gap:var(--lv-space-2);padding-block:var(--lv-space-1)}.lv-ss__thumb.astro-kcddedyq{display:block;inline-size:4.5rem;block-size:2.75rem;border-radius:var(--lv-radius-sm);overflow:clip;box-shadow:inset 0 0 0 1px var(--lv-line);opacity:0.72}.lv-ss__thumb.astro-kcddedyq[aria-current=true]{opacity:1;box-shadow:0 0 0 2px var(--lv-brand)}.lv-ss__thumb.astro-kcddedyq img.astro-kcddedyq{inline-size:100%;block-size:100%;object-fit:cover;display:block}.lv-ss__progress.astro-kcddedyq{flex:1 1 auto;block-size:2px;min-inline-size:2rem;background:var(--lv-line);border-radius:var(--lv-radius-pill);overflow:clip}.lv-ss__bar.astro-kcddedyq{display:block;block-size:100%;background:var(--lv-brand);transform:scaleX(0);transform-origin:0 50%}[dir="rtl"] .lv-ss__bar.astro-kcddedyq{transform-origin:100% 50%}.lv-ss__count.astro-kcddedyq{display:none;font-family:var(--lv-font-mono, inherit);font-feature-settings:"tnum" 1;font-size:var(--lv-text-sm);color:var(--lv-text-secondary);white-space:nowrap}.lv-ss__arrows.astro-kcddedyq{display:inline-flex;gap:var(--lv-space-2);margin-inline-start:auto}.lv-ss__progress.astro-kcddedyq+.lv-ss__arrows.astro-kcddedyq{margin-inline-start:0}@media (max-width: 47.99rem){.lv-ss--ratio.astro-kcddedyq .lv-ss__track.astro-kcddedyq{aspect-ratio:var(--ss-rm, 4 / 5)}.lv-ss--fixed.astro-kcddedyq .lv-ss__track.astro-kcddedyq{block-size:min(var(--ss-hm, 380px),78svh)}.lv-ss--m-stack.astro-kcddedyq .lv-ss__track.astro-kcddedyq{aspect-ratio:auto;block-size:auto;min-block-size:0;max-block-size:none;container-type:inline-size}.lv-ss--m-stack.astro-kcddedyq .lv-ss__slide--cover.astro-kcddedyq:not(.lv-ss__slide--m-below){min-block-size:0}.lv-ss__body.astro-kcddedyq{--ss-pad: var(--lv-space-5)}.lv-ss__slide--split.astro-kcddedyq .lv-ss__body.astro-kcddedyq,.lv-ss__slide--m-below.astro-kcddedyq .lv-ss__body.astro-kcddedyq{overflow:visible;align-content:center}.lv-ss__layer.astro-kcddedyq{grid-row:var(--ss-mr);justify-self:var(--ss-mj);text-align:var(--ss-mj);max-inline-size:var(--ss-mw);translate:calc(var(--ss-mx, 0) * 1cqi) calc(var(--ss-my, 0) * 1cqi);margin-block-start:0}.lv-ss__layer--d-hidden.astro-kcddedyq{display:block}.lv-ss__layer--m-hidden.astro-kcddedyq{display:none}.lv-ss__layer--m-follows.astro-kcddedyq{margin-block-start:var(--lv-space-3)}.lv-ss__layer--m-follows.astro-kcddedyq.lv-ss__layer--buttons{margin-block-start:var(--lv-space-4)}.lv-ss__buttons.astro-kcddedyq{justify-content:var(--ss-mj)}.lv-ss__media.astro-kcddedyq[data-mscrim=none]::after{background:none}.lv-ss__media.astro-kcddedyq[data-mscrim^=bottom]::after{background:linear-gradient(to top,var(--ss-veil),transparent 85%)}.lv-ss__media.astro-kcddedyq[data-mscrim^=top]::after{background:linear-gradient(to bottom,var(--ss-veil),transparent 85%)}.lv-ss__media.astro-kcddedyq[data-mscrim=start]::after,.lv-ss__media.astro-kcddedyq[data-mscrim=end]::after,.lv-ss__media.astro-kcddedyq[data-mscrim=full]::after{background:var(--ss-veil)}.lv-ss__slide--split.astro-kcddedyq,.lv-ss__slide--m-below.astro-kcddedyq{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;align-content:start}.lv-ss__slide--split.astro-kcddedyq .lv-ss__media.astro-kcddedyq,.lv-ss__slide--m-below.astro-kcddedyq .lv-ss__media.astro-kcddedyq,.lv-ss__slide--split.astro-kcddedyq.lv-ss__slide--media-start .lv-ss__media.astro-kcddedyq{grid-area:1 / 1;inline-size:100%;aspect-ratio:var(--ss-ir, var(--ss-rm, 16 / 9));max-block-size:var(--lv-stage-vh, none)}.lv-ss__slide--split.astro-kcddedyq .lv-ss__body.astro-kcddedyq,.lv-ss__slide--m-below.astro-kcddedyq .lv-ss__body.astro-kcddedyq,.lv-ss__slide--split.astro-kcddedyq.lv-ss__slide--media-start .lv-ss__body.astro-kcddedyq{grid-area:2 / 1;grid-template-rows:repeat(20,auto);--ss-pad: var(--lv-space-4) var(--lv-space-5) var(--lv-space-5)}.lv-ss__body.astro-kcddedyq[data-mink=light],.lv-ss__body.astro-kcddedyq[data-mink=brand]{color:var(--lv-text-on-brand);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-line: color-mix(in srgb, var(--lv-text-on-brand) 28%, transparent);--lv-btn-primary-ink: var(--lv-text-on-brand)}.lv-ss__slide--m-below.astro-kcddedyq.lv-ss__slide--cover{background:var(--lv-surface)}.lv-ss__slide--m-below.astro-kcddedyq.lv-ss__slide--panel-sunken{background:var(--lv-surface-sunken)}.lv-ss__slide--m-below.astro-kcddedyq.lv-ss__slide--panel-brand{background:var(--lv-brand-strong)}.lv-ss__controls.astro-kcddedyq{flex-wrap:wrap;gap:var(--lv-space-1) var(--lv-space-2)}.lv-ss__progress.astro-kcddedyq{order:-1;flex-basis:100%}.lv-ss.astro-kcddedyq[data-js] .lv-ss__pickers.astro-kcddedyq{display:none}.lv-ss.astro-kcddedyq[data-js] .lv-ss__count.astro-kcddedyq:not([hidden]){display:inline-block}.lv-ss.astro-kcddedyq[data-js] .lv-ss__count.astro-kcddedyq{margin-inline-start:auto}.lv-ss.astro-kcddedyq[data-js] .lv-ss__arrows.astro-kcddedyq{margin-inline-start:0}.lv-ss--m-stack.astro-kcddedyq .lv-ss__heading--display.astro-kcddedyq{font-size:min(var(--lv-text-xl),5.4cqi + 0.85rem)}.lv-ss--m-stack.astro-kcddedyq .lv-ss__heading--title.astro-kcddedyq{font-size:min(var(--lv-text-lg),4.6cqi + 0.8rem)}.lv-ss--m-stack.astro-kcddedyq .lv-ss__text--lead.astro-kcddedyq{font-size:var(--lv-text-md)}.lv-ss--m-stack.astro-kcddedyq .lv-ss__text--body.astro-kcddedyq{font-size:var(--lv-text-sm)}}
/* components/orient.answer-first/renderers/answer.astro */
.lv-answer__box.astro-eqcacd5p{max-width:var(--lv-measure);padding:var(--lv-space-6);border-radius:var(--lv-radius-lg);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-answer__q.astro-eqcacd5p{margin:0 0 var(--lv-space-3);font-size:var(--lv-text-lg)}.lv-answer__a.astro-eqcacd5p{font-size:var(--lv-text-md)}.lv-answer__stats.astro-eqcacd5p{display:flex;flex-wrap:wrap;gap:var(--lv-space-5);margin:var(--lv-space-5) 0 0;padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-answer__stat-value.astro-eqcacd5p{font-size:var(--lv-text-lg);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-answer__stat-unit.astro-eqcacd5p{margin-inline-start:0.2em;font-family:var(--lv-font-ui);font-size:var(--lv-text-xs);font-weight:var(--lv-weight-medium);color:var(--lv-text-tertiary)}.lv-answer__stat-label.astro-eqcacd5p{margin:var(--lv-space-1) 0 0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-answer__bullets.astro-eqcacd5p{margin:var(--lv-space-4) 0 0;padding-inline-start:var(--lv-space-5);display:grid;gap:var(--lv-space-2);color:var(--lv-text-secondary)}.lv-answer__paths.astro-eqcacd5p{margin-block-start:var(--lv-space-5)}.lv-answer__pathrows.astro-eqcacd5p{margin:var(--lv-space-5) 0 0;padding:0;list-style:none;border-block-start:1px solid var(--lv-line)}.lv-answer__pathrows.astro-eqcacd5p>li.astro-eqcacd5p{border-block-end:1px solid var(--lv-line)}.lv-answer__pathrow.astro-eqcacd5p{display:flex;align-items:center;gap:var(--lv-space-4);min-block-size:44px;padding-block:var(--lv-space-3);color:inherit;text-decoration:none}.lv-answer__pathrow.astro-eqcacd5p:hover .lv-answer__pathrow-label.astro-eqcacd5p{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.lv-answer__pathrow.astro-eqcacd5p:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}.lv-answer__pathrow-body.astro-eqcacd5p{display:flex;flex-direction:column;gap:2px;min-inline-size:0}.lv-answer__pathrow-label.astro-eqcacd5p{font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-answer__pathrow-sub.astro-eqcacd5p{font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-answer__source.astro-eqcacd5p{margin:var(--lv-space-5) 0 0;padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line);font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}
/* components/orient.finder-bar/renderers/finder-bar.astro */
.lv-fb.astro-jt2sdetk{padding:0;color:var(--lv-text-primary)}.lv-fb--sunken.astro-jt2sdetk{background:var(--lv-surface-sunken)}.lv-fb--raised.astro-jt2sdetk{background:var(--lv-surface-raised)}.lv-fb__form.astro-jt2sdetk{display:flex;align-items:stretch;min-block-size:5rem;margin:0;padding-inline-start:max(var(--lv-gutter, var(--lv-space-5)),calc((100% - var(--lv-container-max, 72rem)) / 2))}.lv-fb__filters.astro-jt2sdetk{display:contents}.lv-fb__cell.astro-jt2sdetk{position:relative;display:flex;flex-direction:column;justify-content:center;min-inline-size:0;min-block-size:44px;padding-inline:var(--lv-space-5)}.lv-fb__cell--query.astro-jt2sdetk{flex:2 1 0;margin-inline-start:calc(-1 * var(--lv-space-3));padding-inline-start:var(--lv-space-3)}.lv-fb__cell--select.astro-jt2sdetk{flex:1 1 0;border-inline-start:1px solid var(--lv-line)}.lv-fb__cell.astro-jt2sdetk:focus-within{outline:var(--lv-focus-width, 2px) solid var(--lv-focus-ring, currentColor);outline-offset:calc(-1 * var(--lv-focus-width, 2px))}.lv-fb__label.astro-jt2sdetk{display:block;font:var(--lv-weight-medium) var(--lv-text-xs) / 1.3 var(--lv-font-ui);color:var(--lv-text-secondary);pointer-events:none;transform-origin:0 50%;transition:transform var(--lv-dur-state, 200ms) var(--lv-ease, cubic-bezier(0.22, 1, 0.36, 1)),color var(--lv-dur-state, 200ms) var(--lv-ease, cubic-bezier(0.22, 1, 0.36, 1))}.lv-fb__input.astro-jt2sdetk{inline-size:100%;min-inline-size:0;min-block-size:2.25rem;margin:0;padding:0;border:0;background:transparent;outline:none;font:var(--lv-weight-regular) var(--lv-text-lg) / 1.3 var(--lv-display-family, var(--lv-font-ui));letter-spacing:var(--lv-display-tracking, normal);color:var(--lv-text-primary);-webkit-appearance:none;appearance:none}.lv-fb__input.astro-jt2sdetk::-webkit-search-cancel-button{-webkit-appearance:none}.lv-fb__input.astro-jt2sdetk::placeholder{color:var(--lv-text-tertiary);opacity:1}@supports selector(:has(*)){.lv-fb__cell--query.astro-jt2sdetk:has(.lv-fb__input:placeholder-shown:not(:focus)) .lv-fb__label.astro-jt2sdetk{position:absolute;inset-block-start:50%;inset-inline-start:var(--lv-space-3);inset-inline-end:var(--lv-space-5);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font:var(--lv-weight-regular) var(--lv-text-xl) / 1.2 var(--lv-display-family, var(--lv-font-ui));letter-spacing:var(--lv-display-tracking, normal);color:var(--lv-text-primary);transform:translateY(-50%)}.lv-fb__cell--query.astro-jt2sdetk:has(.lv-fb__input:placeholder-shown:not(:focus)) .lv-fb__input.astro-jt2sdetk::placeholder{color:transparent}}.lv-fb__select.astro-jt2sdetk{inline-size:100%;min-inline-size:0;min-block-size:44px;margin:0;padding:0 var(--lv-space-6) 0 0;border:0;background:transparent;font:var(--lv-weight-regular) var(--lv-text-md) / 1.3 var(--lv-font-ui);color:var(--lv-text-primary);cursor:pointer;-webkit-appearance:none;appearance:none;outline:none;text-overflow:ellipsis}.lv-fb__chevron.astro-jt2sdetk{position:absolute;inset-inline-end:var(--lv-space-5);inset-block-start:50%;inline-size:1rem;block-size:1rem;fill:none;stroke:currentColor;stroke-width:1.5;color:var(--lv-text-secondary);transform:translateY(-50%);pointer-events:none}.lv-fb__submit.astro-jt2sdetk{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:var(--lv-space-3);min-inline-size:clamp(12rem,22cqi,22rem);min-block-size:44px;margin:0;padding-inline:var(--lv-space-7);border:0;border-radius:0;background:var(--lv-btn-primary-surface);color:var(--lv-btn-primary-ink);box-shadow:var(--lv-btn-primary-shadow);font:var(--lv-weight-regular) var(--lv-text-lg) / 1.2 var(--lv-display-family, var(--lv-font-ui));letter-spacing:var(--lv-display-tracking, normal);cursor:pointer;transition:background var(--lv-dur-state, 200ms) var(--lv-ease, cubic-bezier(0.22, 1, 0.36, 1)),box-shadow var(--lv-dur-state, 200ms) var(--lv-ease, cubic-bezier(0.22, 1, 0.36, 1))}.lv-fb__submit.astro-jt2sdetk:hover{background:var(--lv-btn-primary-surface-hover);box-shadow:var(--lv-btn-primary-shadow-hover)}.lv-fb__arrow.astro-jt2sdetk{inline-size:1.1em;block-size:1.1em;fill:none;stroke:currentColor;stroke-width:1.6;transition:transform var(--lv-dur-state, 200ms) var(--lv-ease, cubic-bezier(0.22, 1, 0.36, 1))}.lv-fb__submit.astro-jt2sdetk:hover .lv-fb__arrow.astro-jt2sdetk,.lv-fb__submit.astro-jt2sdetk:focus-visible .lv-fb__arrow.astro-jt2sdetk{transform:translateX(0.25em)}.lv-fb__submit.astro-jt2sdetk:focus-visible{outline:var(--lv-focus-width, 2px) solid var(--lv-btn-primary-ink);outline-offset:calc(-3 * var(--lv-focus-width, 2px))}.lv-fb__submit.astro-jt2sdetk:active{transform:scale(0.99)}@container (max-width: 56rem){.lv-fb__form.astro-jt2sdetk{flex-direction:column;padding-inline:var(--lv-gutter, var(--lv-space-5));padding-block:var(--lv-space-3) var(--lv-space-5)}.lv-fb__cell.astro-jt2sdetk,.lv-fb__cell--query.astro-jt2sdetk{flex:none;min-block-size:3.5rem;margin-inline:calc(-1 * var(--lv-space-3));padding-inline:var(--lv-space-3)}.lv-fb__cell--query.astro-jt2sdetk{min-block-size:4.25rem}.lv-fb__cell--select.astro-jt2sdetk{border-inline-start:0;border-block-start:1px solid var(--lv-line)}.lv-fb__chevron.astro-jt2sdetk{inset-inline-end:var(--lv-space-3)}.lv-fb__submit.astro-jt2sdetk{min-inline-size:0;min-block-size:3.5rem;margin-block-start:var(--lv-space-3)}}@media (prefers-reduced-motion: reduce){.lv-fb__label.astro-jt2sdetk,.lv-fb__arrow.astro-jt2sdetk{transition:none}}
/* components/orient.jump-nav/renderers/nav.astro */
.lv-jump.astro-kywt5mm5{max-width:var(--lv-measure);padding:var(--lv-space-5);border-radius:var(--lv-radius-md);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-jump__title.astro-kywt5mm5{margin:0 0 var(--lv-space-3);font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-tertiary)}.lv-jump__short.astro-kywt5mm5{margin:0 0 var(--lv-space-4);padding-block-end:var(--lv-space-4);border-block-end:1px solid var(--lv-line);color:var(--lv-text-primary);font-weight:var(--lv-weight-medium)}.lv-jump__list.astro-kywt5mm5{display:grid;gap:var(--lv-space-2);margin:0;padding:0;list-style:none;counter-reset:lv-jump}.lv-jump__list.astro-kywt5mm5>li.astro-kywt5mm5{counter-increment:lv-jump}.lv-jump__link.astro-kywt5mm5{display:flex;gap:var(--lv-space-3);min-block-size:32px;align-items:center;color:var(--lv-text-link);text-decoration:none}.lv-jump__link.astro-kywt5mm5::before{content:counter(lv-jump,decimal-leading-zero);display:inline-grid;place-items:center;font:var(--lv-weight-medium) var(--lv-text-xs) / 1 var(--lv-font-mono);color:var(--lv-text-tertiary);font-variant-numeric:tabular-nums}.lv-jump__link.astro-kywt5mm5:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.lv-jump__link.astro-kywt5mm5:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}.lv-jump__link.astro-kywt5mm5.is-current{color:var(--lv-text-primary);font-weight:var(--lv-weight-semibold)}.lv-jump__link.astro-kywt5mm5.is-current::before{min-inline-size:var(--lv-space-6);min-block-size:var(--lv-space-6);border-radius:var(--lv-radius-sm);background:var(--lv-brand-soft);color:var(--lv-brand-strong)}@media (pointer: coarse){.lv-jump__link.astro-kywt5mm5{min-block-size:44px}}@container (min-width: 60rem){.lv-jump--sticky-rail.astro-kywt5mm5{position:sticky;inset-block-start:var(--lv-space-5)}}.lv-jump--chip-bar.astro-kywt5mm5{max-width:none;padding:0;border-radius:0;background:none;box-shadow:none}.lv-jump--chip-bar.astro-kywt5mm5 .lv-jump__list.astro-kywt5mm5{display:flex;flex-wrap:nowrap;gap:var(--lv-space-2);padding-block:var(--lv-space-2);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(to right,transparent,currentColor var(--lv-space-5),currentColor calc(100% - var(--lv-space-5)),transparent)}.lv-jump--chip-bar.astro-kywt5mm5 .lv-jump__list.astro-kywt5mm5::-webkit-scrollbar{display:none}.lv-jump--chip-bar.astro-kywt5mm5 .lv-jump__link.astro-kywt5mm5{flex:none;min-block-size:36px;padding-inline:var(--lv-space-4);border-radius:var(--lv-radius-pill);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line-control);font:var(--lv-weight-medium) var(--lv-text-sm) / 1 var(--lv-font-ui);color:var(--lv-text-primary);transition:background-color var(--lv-dur-state) var(--lv-ease),color var(--lv-dur-state) var(--lv-ease),box-shadow var(--lv-dur-state) var(--lv-ease),transform var(--lv-dur-fast) var(--lv-ease)}.lv-jump--chip-bar.astro-kywt5mm5 .lv-jump__link.astro-kywt5mm5::before{content:none}.lv-jump--chip-bar.astro-kywt5mm5 .lv-jump__link.astro-kywt5mm5:hover{background:var(--lv-surface-raised);text-decoration:none}.lv-jump--chip-bar.astro-kywt5mm5 .lv-jump__link.astro-kywt5mm5:active{transform:scale(0.97)}.lv-jump--chip-bar.astro-kywt5mm5 .lv-jump__link.astro-kywt5mm5.is-current{background:var(--lv-text-primary);color:var(--lv-surface);box-shadow:none;font-weight:var(--lv-weight-semibold)}.lv-jump--chip-bar.astro-kywt5mm5 .lv-jump__link.astro-kywt5mm5.is-current::before{content:none}@media (pointer: coarse){.lv-jump--chip-bar.astro-kywt5mm5 .lv-jump__link.astro-kywt5mm5{min-block-size:44px}}@media (prefers-reduced-motion: reduce){.lv-jump__link.astro-kywt5mm5,.lv-jump--chip-bar.astro-kywt5mm5 .lv-jump__link.astro-kywt5mm5{transition:none}.lv-jump--chip-bar.astro-kywt5mm5 .lv-jump__link.astro-kywt5mm5:active{transform:none}}
/* components/orient.language-region/renderers/switcher.astro */
.lv-lang.astro-wqh5m37v{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-3);padding-block:var(--lv-space-4)}.lv-lang__label.astro-wqh5m37v{font:var(--lv-weight-bold) var(--lv-text-xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-tertiary)}.lv-lang__current.astro-wqh5m37v{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold)}.lv-lang__list.astro-wqh5m37v .astro-wqh5m37v[aria-current=true]{background:var(--lv-brand-soft);box-shadow:inset 0 0 0 1px var(--lv-brand)}
/* components/orient.progress/renderers/indicator.astro */
.lv-progress__bar.astro-rvpainuc{position:sticky;inset-block-start:0;z-index:var(--lv-z-bar);block-size:3px;background:var(--lv-line)}.lv-progress__bar.astro-rvpainuc::after{content:"";display:block;block-size:100%;transform-origin:0 50%;background:var(--lv-ramp);animation:lv-progress-scroll linear;animation-timeline:scroll()}@keyframes lv-progress-scroll{from{transform:scaleX(0)}to{transform:scaleX(1)}}.lv-progress__steps.astro-rvpainuc{display:grid;gap:var(--lv-space-4);margin:var(--lv-space-4) 0 0;padding:0;list-style:none}.lv-progress__step.astro-rvpainuc{display:flex;align-items:center;gap:var(--lv-space-3);color:var(--lv-text-tertiary)}.lv-progress__dot.astro-rvpainuc{inline-size:10px;block-size:10px;border-radius:var(--lv-radius-pill);background:var(--lv-line-strong);flex:none}.lv-progress__step.astro-rvpainuc.is-done{color:var(--lv-text-secondary)}.lv-progress__step.astro-rvpainuc.is-done .lv-progress__dot.astro-rvpainuc{background:var(--lv-brand)}.lv-progress__step.astro-rvpainuc.is-current{color:var(--lv-text-primary);font-weight:var(--lv-weight-semibold)}.lv-progress__step.astro-rvpainuc.is-current .lv-progress__dot.astro-rvpainuc{background:var(--lv-brand);box-shadow:0 0 0 4px var(--lv-brand-soft)}@container (min-width: 46rem){.lv-progress__steps.astro-rvpainuc{grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}}@media (prefers-reduced-motion: reduce){.lv-progress__bar.astro-rvpainuc::after{animation:none;transform:scaleX(1)}}
/* components/orient.site-notice/renderers/bar.astro */
.lv-notice.astro-pvwqwkbs{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--lv-space-2) var(--lv-space-5);padding:var(--lv-space-3) var(--lv-space-5);background:var(--lv-surface-sunken);color:var(--lv-text-primary);font-size:var(--lv-text-sm);text-align:center}.lv-notice--warn.astro-pvwqwkbs{background:var(--lv-warn-surface);color:var(--lv-warn-text)}.lv-notice--urgent.astro-pvwqwkbs{background:var(--lv-bad-surface);color:var(--lv-bad-text)}.lv-notice__text.astro-pvwqwkbs{margin:0;max-width:none}.lv-notice__kicker.astro-pvwqwkbs{margin-inline-end:var(--lv-space-2);font:var(--lv-weight-bold) var(--lv-text-2xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase}.lv-notice__link.astro-pvwqwkbs{color:inherit;font-weight:var(--lv-weight-semibold);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.lv-notice__link.astro-pvwqwkbs:hover{text-decoration-thickness:2px}.lv-notice__link.astro-pvwqwkbs:focus-visible{outline:var(--lv-focus-width) solid currentColor;outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}
/* components/orient.trail/renderers/trail.astro */
.lv-trail2.astro-ask4nnt2{font-family:var(--lv-font-ui)}.lv-trail2--standalone.astro-ask4nnt2{max-width:var(--lv-measure);margin-inline:auto;padding-block:var(--lv-space-4)}.lv-trail2--inline.astro-ask4nnt2{display:contents}.lv-trail2__list.astro-ask4nnt2{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-2);margin:0;padding:0;list-style:none;font:var(--lv-weight-medium) var(--lv-text-2xs) / 1.6 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase);font-variant-caps:var(--lv-display-variant, normal)}.lv-trail2__item.astro-ask4nnt2{display:inline-flex;align-items:center;gap:var(--lv-space-2);min-width:0}.lv-trail2__sep.astro-ask4nnt2{inline-size:1px;block-size:0.85em;flex:none;background:var(--lv-line-strong);transform:rotate(20deg);user-select:none}.lv-trail2__link.astro-ask4nnt2{color:var(--lv-text-secondary);text-decoration:none;border-block-end:1px solid transparent;transition:color var(--lv-dur-state) var(--lv-ease),border-color var(--lv-dur-state) var(--lv-ease)}.lv-trail2__link.astro-ask4nnt2:hover{color:var(--lv-text-link);border-block-end-color:var(--lv-text-link)}.lv-trail2__current.astro-ask4nnt2{color:var(--lv-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:28ch}@media (prefers-reduced-motion: reduce){.lv-trail2__link.astro-ask4nnt2{transition:none}}
/* components/prove.ai-citations/renderers/citations.astro */
.lv-cites.astro-5nah5ipk{display:grid;gap:var(--lv-space-5);margin:0;padding:0;list-style:none}@container (min-width: 46rem){.lv-cites.astro-5nah5ipk{grid-template-columns:repeat(2,minmax(0,1fr))}.lv-cites.astro-5nah5ipk>.astro-5nah5ipk:last-child:nth-child(odd){grid-column:1 / -1}}.lv-cites__meta.astro-5nah5ipk{display:flex;align-items:center;justify-content:space-between;gap:var(--lv-space-3);margin:0}.lv-cites__engine.astro-5nah5ipk{display:inline-flex;align-items:center;min-block-size:26px;padding-inline:var(--lv-space-3);border-radius:var(--lv-radius-pill);background:var(--lv-brand-soft);color:var(--lv-brand-strong);font:var(--lv-weight-bold) var(--lv-text-2xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:var(--lv-display-case, uppercase)}.lv-cites__date.astro-5nah5ipk{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-cites__prompt.astro-5nah5ipk{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-cites__quote.astro-5nah5ipk{margin:0;padding-inline-start:var(--lv-space-4);border-inline-start:1px solid var(--lv-line-strong);color:var(--lv-text-primary);text-wrap:pretty}.lv-cites__method.astro-5nah5ipk{max-width:var(--lv-measure);margin-block-start:var(--lv-space-5);font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}
/* components/prove.authorship/renderers/byline.astro */
.lv-author.astro-jvf5gslb{max-width:var(--lv-measure);color:var(--lv-text-secondary)}.lv-author--card.astro-jvf5gslb{display:grid;gap:var(--lv-space-3);padding:var(--lv-space-5);border-radius:var(--lv-radius-md);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-author--strip.astro-jvf5gslb{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-2) var(--lv-space-4);padding-block:var(--lv-space-3);border-block:1px solid var(--lv-line)}.lv-author__role.astro-jvf5gslb{margin:0;font:var(--lv-weight-bold) var(--lv-text-2xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-author__monogram.astro-jvf5gslb{display:grid;place-items:center;background:var(--lv-brand-soft);box-shadow:inset 0 0 0 1px var(--lv-line-strong);color:var(--lv-brand-strong);font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold);letter-spacing:var(--lv-tracking-heading)}.lv-author__who.astro-jvf5gslb{display:flex;align-items:center;gap:var(--lv-space-3)}.lv-author__name.astro-jvf5gslb{display:grid;gap:2px;margin:0;font-size:var(--lv-text-sm)}.lv-author__name.astro-jvf5gslb a.astro-jvf5gslb{color:var(--lv-text-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.18em;text-decoration-color:var(--lv-line-strong);transition:text-decoration-color var(--lv-dur-fast) var(--lv-ease)}.lv-author__name.astro-jvf5gslb a.astro-jvf5gslb:hover{text-decoration-color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-author__name.astro-jvf5gslb a.astro-jvf5gslb:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-author__cred.astro-jvf5gslb{color:var(--lv-text-tertiary)}.lv-author__statement.astro-jvf5gslb{margin:0}.lv-author__checked.astro-jvf5gslb{margin:0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-author--strip.astro-jvf5gslb .lv-portrait.astro-jvf5gslb{--lv-portrait-size: 2rem}
/* components/prove.case-study/renderers/cases.astro */
.lv-cases.astro-cvh23qg4{display:grid;gap:var(--lv-space-8)}.lv-case__narrative.astro-cvh23qg4{display:grid;gap:var(--lv-space-1);margin-block:var(--lv-space-4)}.lv-case__narrative.astro-cvh23qg4 dt.astro-cvh23qg4{font:var(--lv-weight-bold) var(--lv-text-2xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-tertiary);margin-block-start:var(--lv-space-3)}.lv-case__narrative.astro-cvh23qg4 dd.astro-cvh23qg4{margin:0;color:var(--lv-text-secondary)}.lv-case__outcomes.astro-cvh23qg4{display:flex;flex-wrap:wrap;justify-content:center;padding-block:var(--lv-space-4);border-block:1px solid var(--lv-line);margin-block-end:var(--lv-space-4)}.lv-case__outcomes.astro-cvh23qg4>div.astro-cvh23qg4{flex:1 1 min(10rem,100%);max-inline-size:14rem}.lv-figure__unit.astro-cvh23qg4{margin-inline-start:0.25em;font-family:var(--lv-font-ui);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);letter-spacing:normal;color:var(--lv-text-tertiary)}.lv-case__plate.astro-cvh23qg4{--lv-plate-ratio: 16 / 9}
/* components/prove.certification/renderers/certs.astro */
.lv-grid.astro-2bbcazqt{display:flex;flex-wrap:wrap;justify-content:start}.lv-grid.astro-2bbcazqt>li.astro-2bbcazqt{flex:1 1 min(17rem,100%)}@container (min-width: 56rem){.lv-grid.astro-2bbcazqt>li.astro-2bbcazqt{max-inline-size:calc((100% - 2 * var(--lv-space-5)) / 3)}}.lv-certs__logo.astro-2bbcazqt{block-size:2.25rem;inline-size:auto;object-position:left center}.lv-certs__kv.astro-2bbcazqt{grid-template-columns:minmax(5.5rem,max-content) 1fr;font-size:var(--lv-text-sm)}.lv-certs__contact.astro-2bbcazqt{max-width:var(--lv-measure);margin-block-start:var(--lv-space-5);font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}
/* components/prove.chart/renderers/chart.astro */
.lv-chart.astro-m4dxaa47{display:grid;gap:var(--lv-space-5)}.lv-chart__targets.astro-m4dxaa47{display:grid;gap:var(--lv-space-2)}.lv-chart__edit-list.astro-m4dxaa47{display:flex;flex-wrap:wrap;gap:var(--lv-space-2) var(--lv-space-4);margin:0;padding:0;list-style:none;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}
/* components/prove.customer-voice/renderers/stage-plate.astro */
.lv-vplate__figure.astro-k67nesrw{display:grid;gap:var(--lv-space-6) var(--lv-space-8);margin:0;align-items:start}.lv-vplate__main.astro-k67nesrw{min-inline-size:0}.lv-vplate__portrait.astro-k67nesrw>.astro-k67nesrw{display:grid;place-items:center;inline-size:100%;aspect-ratio:4 / 3}@container (min-width: 56rem){.lv-vplate__figure.astro-k67nesrw{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.lv-vplate__portrait.astro-k67nesrw>.astro-k67nesrw{aspect-ratio:4 / 5}.lv-vplate__main.astro-k67nesrw{padding-block-start:var(--lv-space-4)}}.lv-vplate__photo.astro-k67nesrw{object-fit:cover}.lv-vplate__monogram.astro-k67nesrw{background:var(--lv-brand-soft);color:var(--lv-brand-strong);font-family:var(--lv-display-family, inherit);font-size:clamp(var(--lv-text-2xl),12cqi,7rem);font-weight:var(--lv-weight-heading, var(--lv-weight-regular));letter-spacing:var(--lv-tracking-heading);line-height:1}.lv-vplate__quote.astro-k67nesrw{position:relative;margin:0;font-family:var(--lv-display-family, inherit);font-size:clamp(var(--lv-text-lg),3.4cqi,var(--lv-text-2xl));font-weight:var(--lv-weight-heading, var(--lv-weight-regular));line-height:var(--lv-leading-snug);letter-spacing:var(--lv-display-tracking, var(--lv-tracking-heading));color:var(--lv-text-primary);text-wrap:pretty;max-inline-size:30ch}.lv-vplate__quote.astro-k67nesrw::before{content:"“";position:absolute;inset-block-start:0.1em;inset-inline-end:calc(100% + 0.45em);font-size:0.6em;line-height:1;color:var(--lv-text-secondary)}@container (max-width: 55.99rem){.lv-vplate__quote.astro-k67nesrw::before{position:static;display:inline-block;margin-inline-end:0.3em;vertical-align:0.35em}}.lv-vplate__quote.astro-k67nesrw .lv-vplate__accent{color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-vplate__by.astro-k67nesrw{display:grid;justify-items:start;gap:var(--lv-space-1);margin-block-start:var(--lv-space-7);font-size:var(--lv-text-xs);line-height:var(--lv-leading-snug)}.lv-vplate__name.astro-k67nesrw{font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-vplate__ctx.astro-k67nesrw{color:var(--lv-text-secondary)}.lv-vplate__meta.astro-k67nesrw{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-3);margin-block-start:var(--lv-space-2);color:var(--lv-text-secondary)}.lv-vplate__of.astro-k67nesrw{color:var(--lv-text-secondary)}.lv-vplate__more.astro-k67nesrw{display:inline-block;margin-block-start:var(--lv-space-5);padding-block:var(--lv-space-3);color:var(--lv-text-primary);font-size:var(--lv-text-xs);font-weight:var(--lv-weight-semibold);text-decoration-thickness:1px;text-underline-offset:0.35em;transition:text-decoration-thickness var(--lv-dur-state) var(--lv-ease)}.lv-vplate__more.astro-k67nesrw:hover{text-decoration-thickness:2px}
/* components/prove.customer-voice/renderers/stage.astro */
.lv-stage__figure.astro-y2e3i7qd{display:grid;gap:var(--lv-space-5) var(--lv-space-7);margin:0;align-items:start}.lv-stage__main.astro-y2e3i7qd{min-inline-size:0}.lv-stage__portrait.astro-y2e3i7qd{order:2}@container (min-width: 46rem){.lv-stage__figure.astro-y2e3i7qd{grid-template-columns:minmax(0,12rem) minmax(0,1fr)}.lv-stage__portrait.astro-y2e3i7qd{order:0;position:sticky;inset-block-start:var(--lv-space-6)}}.lv-stage__portrait.astro-y2e3i7qd>.astro-y2e3i7qd{display:grid;place-items:center;inline-size:clamp(4.5rem,22cqi,9rem);aspect-ratio:1;border-radius:var(--lv-radius-lg)}.lv-stage__photo.astro-y2e3i7qd{object-fit:cover}.lv-stage__monogram.astro-y2e3i7qd{background:var(--lv-brand-soft);box-shadow:inset 0 0 0 1px var(--lv-line-strong);color:var(--lv-brand-strong);font-family:var(--lv-display-family, inherit);font-size:clamp(var(--lv-text-lg),8cqi,2.4rem);font-weight:var(--lv-weight-semibold);letter-spacing:var(--lv-tracking-heading)}.lv-stage__quote.astro-y2e3i7qd{margin:0;font-family:var(--lv-display-family, inherit);font-size:clamp(var(--lv-text-xl),4.2cqi,2.6rem);font-weight:var(--lv-weight-medium);line-height:var(--lv-leading-snug);letter-spacing:var(--lv-tracking-heading);text-wrap:balance;max-inline-size:22ch}.lv-stage__quote.astro-y2e3i7qd::before{content:"»";margin-inline-end:0.08em}.lv-stage__quote.astro-y2e3i7qd::after{content:"«";margin-inline-start:0.08em}.lv-stage__quote.astro-y2e3i7qd::before,.lv-stage__quote.astro-y2e3i7qd::after{color:var(--lv-ink-accent, var(--lv-brand-strong));font-style:normal}@container (min-width: 46rem){.lv-stage__quote.astro-y2e3i7qd{text-indent:-0.62em;max-inline-size:26ch}}.lv-stage__by.astro-y2e3i7qd{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-2) var(--lv-space-4);margin-block-start:var(--lv-space-6);padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line);font-size:var(--lv-text-sm);color:var(--lv-text-tertiary)}.lv-stage__by.astro-y2e3i7qd .lv-quote__who.astro-y2e3i7qd b.astro-y2e3i7qd{color:var(--lv-text-primary)}.lv-stage__by.astro-y2e3i7qd .lv-quote__who.astro-y2e3i7qd b.astro-y2e3i7qd::before{content:"— ";font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-stage__ctx.astro-y2e3i7qd::before{content:"· ";color:var(--lv-text-tertiary)}.lv-stage__of.astro-y2e3i7qd{color:var(--lv-text-tertiary)}.lv-stage__more.astro-y2e3i7qd{display:inline-block;margin-block-start:var(--lv-space-5);padding-block:var(--lv-space-3);color:var(--lv-ink-accent, var(--lv-brand-strong));font-size:var(--lv-text-sm);font-weight:var(--lv-weight-semibold);text-decoration-thickness:1px;text-underline-offset:0.28em;transition:text-decoration-thickness var(--lv-dur-state) var(--lv-ease)}.lv-stage__more.astro-y2e3i7qd:hover{text-decoration-thickness:2px}
/* components/prove.customer-voice/renderers/voices.astro */
.lv-voices__list.astro-mytenaww{display:grid;gap:var(--lv-space-5);margin:0;padding:0;list-style:none;grid-template-columns:repeat(auto-fit,minmax(min(19rem,100%),1fr))}.lv-voices--wall.astro-mytenaww .lv-voices__list.astro-mytenaww{display:flex;flex-wrap:wrap;justify-content:start}.lv-voices--wall.astro-mytenaww .lv-voices__item.astro-mytenaww{flex:1 1 min(19rem,100%)}@container (min-width: 60rem){.lv-voices--wall.astro-mytenaww .lv-voices__item.astro-mytenaww{max-inline-size:calc((100% - 2 * var(--lv-space-5)) / 3)}}.lv-voices--single.astro-mytenaww .lv-voices__list.astro-mytenaww{grid-template-columns:minmax(0,1fr);max-inline-size:46rem}.lv-voices--carousel.astro-mytenaww{position:relative}.lv-voices--carousel.astro-mytenaww .lv-voices__list.astro-mytenaww{grid-auto-flow:column;grid-auto-columns:minmax(min(19rem,82%),24rem);grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;padding-block-end:var(--lv-space-3)}.lv-voices--carousel.astro-mytenaww .lv-voices__item.astro-mytenaww{scroll-snap-align:start}.lv-voices--carousel.astro-mytenaww::after{content:"";position:absolute;inset-inline-end:var(--lv-space-1);inset-block-start:calc(50% - var(--lv-space-3));inline-size:9px;block-size:9px;border-block-start:2px solid var(--lv-icon-quiet);border-inline-end:2px solid var(--lv-icon-quiet);transform:rotate(45deg);pointer-events:none;opacity:0.7}.lv-voices__text.astro-mytenaww{font-size:var(--lv-text-md)}.lv-voices--single.astro-mytenaww .lv-voices__text.astro-mytenaww{font-size:var(--lv-text-lg)}.lv-voices--pullquote.astro-mytenaww .lv-voices__list.astro-mytenaww,.lv-voices--band.astro-mytenaww .lv-voices__list.astro-mytenaww{grid-template-columns:minmax(0,1fr);max-inline-size:56rem;gap:var(--lv-space-9)}.lv-voices--band.astro-mytenaww .lv-voices__list.astro-mytenaww{max-inline-size:none}.lv-voices__text--display.astro-mytenaww{font-size:clamp(var(--lv-text-lg),4.5cqi,2.9rem);font-family:var(--lv-display-family, inherit);font-style:italic;font-weight:var(--lv-weight-medium);line-height:var(--lv-leading-snug);letter-spacing:var(--lv-tracking-heading);text-wrap:balance}.lv-voices__text--display.astro-mytenaww::before{content:"»";margin-inline-end:0.08em}.lv-voices__text--display.astro-mytenaww::after{content:"«";margin-inline-start:0.08em}.lv-voices__text--display.astro-mytenaww::before,.lv-voices__text--display.astro-mytenaww::after{color:var(--lv-ink-accent, var(--lv-brand-strong));font-style:normal}@container (min-width: 46rem){.lv-voices__text--display.astro-mytenaww{text-indent:-0.62em}}.lv-quote__by--display.astro-mytenaww{flex-wrap:wrap;gap:var(--lv-space-3) var(--lv-space-4);margin-block-start:var(--lv-space-6)}.lv-quote__source.astro-mytenaww{flex:none}.lv-quote__who.astro-mytenaww{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--lv-space-2);row-gap:var(--lv-space-1)}.lv-quote__who.astro-mytenaww b.astro-mytenaww::before{content:"— ";font-weight:var(--lv-weight-regular);color:var(--lv-text-tertiary)}.lv-quote__by--display.astro-mytenaww .lv-voices__ctx.astro-mytenaww::before{content:"· ";color:var(--lv-text-tertiary)}.lv-quote__by--display.astro-mytenaww .lv-quote__who.astro-mytenaww b.astro-mytenaww{color:var(--lv-text-primary)}.lv-quote__score.astro-mytenaww{padding-inline-start:var(--lv-space-4);border-inline-start:1px solid var(--lv-line);font-weight:var(--lv-weight-semibold);color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-voices__item--display.astro-mytenaww{display:grid;gap:var(--lv-space-5);align-items:start}.lv-voices__aside.astro-mytenaww{max-width:var(--lv-measure);padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line);font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-voices__frame.astro-mytenaww{align-self:stretch}.lv-voices__frame.astro-mytenaww img.astro-mytenaww{min-block-size:14rem}@container (min-width: 46rem){.lv-voices__item--has-aside.astro-mytenaww{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.lv-voices__item--has-media.astro-mytenaww{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.lv-voices__item--has-media.astro-mytenaww.lv-voices__item--has-aside{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.lv-voices__item--has-media.astro-mytenaww .lv-voices__frame.astro-mytenaww{grid-column:2;grid-row:1 / span 2}}.lv-voices__rating.astro-mytenaww{margin:0;font-size:var(--lv-text-lg);font-weight:var(--lv-weight-semibold);color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-voices__of.astro-mytenaww{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-voices__ctx.astro-mytenaww{display:block}.lv-quote__by--display.astro-mytenaww .lv-voices__ctx.astro-mytenaww{display:inline}
/* components/prove.dataset/renderers/dataset.astro */
.lv-dataset__meta.astro-jg7rvyvz{display:flex;flex-wrap:wrap;gap:var(--lv-space-4);margin-block-start:var(--lv-space-3);font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-dataset__row--own.astro-jg7rvyvz td.astro-jg7rvyvz{box-shadow:inset 2px 0 0 var(--lv-ink-accent, var(--lv-brand-strong))}
/* components/prove.evidence-mosaic/renderers/ledger.astro */
.lv-evledger__stage--dark.astro-zelljeks{padding:var(--lv-space-7);border-radius:var(--lv-radius-xl);background:var(--lv-brand-strong);box-shadow:var(--lv-lift-3);--lv-text-primary: var(--lv-text-on-brand);--lv-text-secondary: var(--lv-text-on-brand);--lv-text-tertiary: var(--lv-text-on-brand);--lv-ink-accent: var(--lv-text-on-brand);--lv-line: color-mix(in oklab, var(--lv-text-on-brand) 28%, transparent);--lv-line-strong: color-mix(in oklab, var(--lv-text-on-brand) 48%, transparent)}.lv-evledger__anchor.astro-zelljeks{display:grid;gap:var(--lv-space-2);padding-block:var(--lv-space-5) var(--lv-space-6);border-block-end:1px solid var(--lv-line-strong)}.lv-evledger__anchor-value.astro-zelljeks{margin:0;font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-semibold);line-height:var(--lv-leading-tight);color:var(--lv-text-primary)}.lv-evledger__anchor-label.astro-zelljeks{margin:0;max-inline-size:34ch;font-size:var(--lv-text-md);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary)}.lv-evledger__rows.astro-zelljeks{display:grid;grid-template-columns:minmax(0,1fr);column-gap:var(--lv-space-6)}.lv-evledger__row.astro-zelljeks{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:var(--lv-space-4);align-items:baseline;padding-block:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-evledger__anchor.astro-zelljeks+.lv-evledger__rows.astro-zelljeks>.lv-evledger__row.astro-zelljeks:first-child{border-block-start:0}@container (min-width: 40rem){.lv-evledger__rows.astro-zelljeks{grid-template-columns:repeat(2,minmax(0,1fr))}.lv-evledger__anchor.astro-zelljeks+.lv-evledger__rows.astro-zelljeks>.lv-evledger__row.astro-zelljeks:nth-child(2){border-block-start:0}}.lv-evledger__value.astro-zelljeks{margin:0;min-inline-size:4ch;font-size:var(--lv-text-lg);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-evledger__unit.astro-zelljeks{margin-inline-start:0.2em;font-family:var(--lv-font-ui);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);color:var(--lv-text-tertiary)}.lv-evledger__caption.astro-zelljeks{display:grid;gap:var(--lv-space-2)}.lv-evledger__label.astro-zelljeks{margin:0;font-size:var(--lv-text-sm);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary)}.lv-evledger__source.astro-zelljeks{margin:0;font:var(--lv-weight-medium) var(--lv-text-2xs) / var(--lv-leading-snug) var(--lv-font-mono);letter-spacing:var(--lv-tracking-label);text-transform:uppercase;color:var(--lv-text-tertiary)}.lv-evledger__voices.astro-zelljeks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:var(--lv-space-5) var(--lv-space-6);margin-block-start:var(--lv-space-6)}.lv-evledger__voice.astro-zelljeks{display:flex;flex-direction:column;gap:var(--lv-space-3);margin:0;padding-block-start:var(--lv-space-5);border-block-start:1px solid var(--lv-line)}.lv-evledger__stars.astro-zelljeks{display:inline-flex}.lv-evledger__quote.astro-zelljeks{margin:0;font-size:var(--lv-text-md);line-height:var(--lv-leading-snug);color:var(--lv-text-primary);text-wrap:pretty}.lv-evledger__by.astro-zelljeks{display:flex;align-items:center;gap:var(--lv-space-3);margin-block-start:auto}.lv-evledger__portrait.astro-zelljeks{--lv-portrait-size: 2.5rem}.lv-evledger__initials.astro-zelljeks{display:grid;place-items:center;flex:none;inline-size:2.5rem;block-size:2.5rem;border-radius:var(--lv-radius-pill);background:var(--lv-brand-soft);color:var(--lv-brand-strong);font:var(--lv-weight-bold) var(--lv-text-sm) / 1 var(--lv-font-mono);letter-spacing:0.02em}.lv-evledger__who.astro-zelljeks{display:grid;gap:2px;font-size:var(--lv-text-sm);color:var(--lv-text-primary)}.lv-evledger__context.astro-zelljeks{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-evledger__by.astro-zelljeks .lv-trust-mark.astro-zelljeks{margin-inline-start:auto}.lv-evledger__marks.astro-zelljeks{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-4) var(--lv-space-6);margin-block-start:var(--lv-space-6);padding-block-start:var(--lv-space-5);border-block-start:1px solid var(--lv-line-strong)}.lv-evledger__mark.astro-zelljeks{display:inline-flex;align-items:center;gap:var(--lv-space-3);text-decoration:none;color:inherit}.lv-evledger__mark-chip.astro-zelljeks{display:grid;place-items:center;flex:none;inline-size:2.5rem;block-size:2.5rem}.lv-evledger__mark-chip.astro-zelljeks img.astro-zelljeks{max-inline-size:1.9rem;max-block-size:1.9rem;object-fit:contain;filter:grayscale(1);opacity:0.78}.lv-evledger__mark-who.astro-zelljeks{display:grid;gap:2px}.lv-evledger__mark-name.astro-zelljeks{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);color:var(--lv-text-primary)}a.astro-zelljeks.lv-evledger__mark .lv-evledger__mark-name.astro-zelljeks{text-decoration:underline 1px;text-underline-offset:3px}a.astro-zelljeks.lv-evledger__mark:hover .lv-evledger__mark-name.astro-zelljeks{text-decoration-thickness:2px}a.astro-zelljeks.lv-evledger__mark:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}.lv-evledger__mark-note.astro-zelljeks{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}
/* components/prove.evidence-mosaic/renderers/mosaic.astro */
.lv-mosaic__panel--dark.astro-awkhr6ft{padding:var(--lv-space-7);border-radius:var(--lv-radius-xl);background:var(--lv-panel-dark, var(--lv-brand-strong));box-shadow:var(--lv-lift-3);--lv-text-primary: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-text-secondary: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-text-tertiary: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-ink-accent: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-line: color-mix(in oklab, var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 28%, transparent);--lv-line-strong: color-mix(in oklab, var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 48%, transparent)}.lv-mosaic__grid.astro-awkhr6ft{display:grid;gap:var(--lv-space-3);grid-template-columns:minmax(0,1fr)}.lv-mosaic__group.astro-awkhr6ft{display:contents}@container (min-width: 40rem){.lv-mosaic__grid.astro-awkhr6ft{grid-template-columns:repeat(2,minmax(0,1fr))}.lv-mosaic__tile--m2.astro-awkhr6ft{grid-column:span 2}}@container (min-width: 62rem){.lv-mosaic__grid.astro-awkhr6ft{grid-template-columns:repeat(4,minmax(0,1fr))}.lv-mosaic__tile--w1.astro-awkhr6ft{grid-column:span 1}.lv-mosaic__tile--w2.astro-awkhr6ft{grid-column:span 2}.lv-mosaic__tile--w3.astro-awkhr6ft{grid-column:span 3}.lv-mosaic__tile--w4.astro-awkhr6ft{grid-column:span 4}}.lv-mosaic__tile.astro-awkhr6ft{display:flex;flex-direction:column;gap:var(--lv-space-2);padding:var(--lv-space-5);border-radius:var(--lv-radius-lg);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-mosaic__panel--dark.astro-awkhr6ft .lv-mosaic__tile.astro-awkhr6ft{background:color-mix(in srgb,var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 8%,var(--lv-panel-dark, var(--lv-brand-strong)))}.lv-mosaic__tile--anchor.astro-awkhr6ft,.lv-mosaic__panel--dark.astro-awkhr6ft .lv-mosaic__tile--anchor.astro-awkhr6ft{background:var(--lv-ramp);box-shadow:none}.lv-mosaic__tile--anchor.astro-awkhr6ft .lv-mosaic__value.astro-awkhr6ft,.lv-mosaic__tile--anchor.astro-awkhr6ft .lv-mosaic__unit.astro-awkhr6ft,.lv-mosaic__tile--anchor.astro-awkhr6ft .lv-mosaic__label.astro-awkhr6ft,.lv-mosaic__tile--anchor.astro-awkhr6ft .lv-mosaic__source.astro-awkhr6ft{color:var(--lv-text-on-brand)}.lv-mosaic__tile--anchor.astro-awkhr6ft .lv-mosaic__value.astro-awkhr6ft{font-size:var(--lv-text-2xl)}.lv-mosaic__tile--anchor.astro-awkhr6ft .lv-mosaic__label.astro-awkhr6ft{font-size:var(--lv-text-md);max-inline-size:34ch}.lv-mosaic__value.astro-awkhr6ft{margin:0;font-size:var(--lv-text-xl);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}.lv-mosaic__unit.astro-awkhr6ft{margin-inline-start:0.2em;font-family:var(--lv-font-ui);font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);color:var(--lv-text-tertiary)}.lv-mosaic__label.astro-awkhr6ft{margin:0;font-size:var(--lv-text-sm);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary)}.lv-mosaic__source.astro-awkhr6ft{margin:auto 0 0;padding-block-start:var(--lv-space-2);font:var(--lv-weight-medium) var(--lv-text-2xs) / var(--lv-leading-snug) var(--lv-font-mono);letter-spacing:var(--lv-tracking-label);text-transform:uppercase;color:var(--lv-text-tertiary)}.lv-mosaic__quote.astro-awkhr6ft{margin:0}.lv-mosaic__stars.astro-awkhr6ft{display:inline-flex}.lv-mosaic__quote-text.astro-awkhr6ft{margin:0;font-size:var(--lv-text-lg);line-height:var(--lv-leading-snug);color:var(--lv-text-primary);text-wrap:pretty}.lv-mosaic__by.astro-awkhr6ft{display:flex;align-items:center;gap:var(--lv-space-3);margin-block-start:auto;padding-block-start:var(--lv-space-3)}.lv-mosaic__portrait.astro-awkhr6ft{--lv-portrait-size: 2.5rem}.lv-mosaic__initials.astro-awkhr6ft{display:grid;place-items:center;flex:none;inline-size:2.5rem;block-size:2.5rem;border-radius:var(--lv-radius-pill);background:var(--lv-brand-soft);color:var(--lv-brand-strong);font:var(--lv-weight-bold) var(--lv-text-sm) / 1 var(--lv-font-mono);letter-spacing:0.02em}.lv-mosaic__who.astro-awkhr6ft{display:grid;gap:2px;font-size:var(--lv-text-sm);color:var(--lv-text-primary)}.lv-mosaic__context.astro-awkhr6ft{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-mosaic__by.astro-awkhr6ft .lv-trust-mark.astro-awkhr6ft{margin-inline-start:auto}.lv-mosaic__marks.astro-awkhr6ft{flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--lv-space-4) var(--lv-space-6)}.lv-mosaic__mark.astro-awkhr6ft{display:inline-flex;align-items:center;gap:var(--lv-space-3);text-decoration:none;color:inherit}.lv-mosaic__mark-chip.astro-awkhr6ft{display:grid;place-items:center;flex:none;inline-size:2.5rem;block-size:2.5rem;border-radius:var(--lv-radius-md);background:var(--lv-surface)}.lv-mosaic__mark-chip.astro-awkhr6ft img.astro-awkhr6ft{max-inline-size:1.9rem;max-block-size:1.9rem;object-fit:contain;filter:grayscale(1);opacity:0.78}.lv-mosaic__mark-who.astro-awkhr6ft{display:grid;gap:2px}.lv-mosaic__mark-name.astro-awkhr6ft{font-size:var(--lv-text-sm);font-weight:var(--lv-weight-medium);color:var(--lv-text-primary)}a.astro-awkhr6ft.lv-mosaic__mark .lv-mosaic__mark-name.astro-awkhr6ft{text-decoration:underline 1px;text-underline-offset:3px}a.astro-awkhr6ft.lv-mosaic__mark:hover .lv-mosaic__mark-name.astro-awkhr6ft{text-decoration-thickness:2px}a.astro-awkhr6ft.lv-mosaic__mark:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset);border-radius:var(--lv-radius-sm)}.lv-mosaic__mark-note.astro-awkhr6ft{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}
/* components/prove.numbers/renderers/band.astro */
.lv-mband__layout.astro-wsh5bobp{display:grid;gap:var(--lv-space-7);align-items:center}@container (min-width: 50rem){.lv-mband__layout.astro-wsh5bobp{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}}.lv-mband__copy.astro-wsh5bobp{min-inline-size:0}.lv-mband__grid.astro-wsh5bobp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--lv-space-6) var(--lv-space-5);margin-block-start:var(--lv-space-6)}@container (min-width: 34rem){.lv-mband__grid.astro-wsh5bobp{grid-template-columns:repeat(3,minmax(0,1fr))}}@container (min-width: 68rem){.lv-mband__grid.astro-wsh5bobp{grid-template-columns:repeat(5,minmax(0,1fr))}}.lv-mband__item.astro-wsh5bobp{min-inline-size:0}.lv-mband.astro-wsh5bobp .lv-figure__value.astro-wsh5bobp{overflow-wrap:anywhere}.lv-mband.astro-wsh5bobp:not(.lv-mband--facts) .lv-figure__value.astro-wsh5bobp{font-size:clamp(1.9rem,1.1rem + 2.9cqi,3rem);font-weight:250;line-height:var(--lv-leading-tight);letter-spacing:-0.015em;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.lv-mband--serif.astro-wsh5bobp:not(.lv-mband--facts) .lv-figure__value.astro-wsh5bobp{font-family:var(--lv-display-family, Georgia, "Times New Roman", serif);font-weight:300}.lv-mband--facts.astro-wsh5bobp .lv-figure__value.astro-wsh5bobp{font-size:var(--lv-text-lg);font-weight:var(--lv-weight-semibold);line-height:var(--lv-leading-snug);letter-spacing:normal}.lv-mband__source.astro-wsh5bobp{margin:var(--lv-space-2) 0 0;font-size:var(--lv-text-2xs);color:var(--lv-text-tertiary)}.lv-mband__stage.astro-wsh5bobp{position:relative;overflow:hidden;aspect-ratio:4 / 5;inline-size:100%;clip-path:var(--lv-mband-shape);--lv-mband-shape: inset(0 round 44% 44% var(--lv-radius-lg) var(--lv-radius-lg))}.lv-mband__stage.astro-wsh5bobp[data-mask=blade]{--lv-mband-shape: polygon(0 11%, 100% 0, 100% 89%, 0 100%)}.lv-mband__stage.astro-wsh5bobp[data-mask=lens]{--lv-mband-shape: ellipse(50% 47% at 50% 50%)}@container (min-width: 50rem){.lv-mband__stage.astro-wsh5bobp{aspect-ratio:3 / 4}}.lv-mband__media.astro-wsh5bobp{inline-size:100%;block-size:100%;object-fit:cover;transform:scale(1.1)}.lv-mband__plate.astro-wsh5bobp{display:block;block-size:100%;background:repeating-linear-gradient(to right,color-mix(in oklab,var(--lv-line-strong) 55%,transparent) 0 1px,transparent 1px 2.5rem),repeating-linear-gradient(to bottom,color-mix(in oklab,var(--lv-line-strong) 55%,transparent) 0 1px,transparent 1px 2.5rem),linear-gradient(155deg,var(--lv-brand-soft),var(--lv-surface-sunken))}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-mband__media.astro-wsh5bobp{animation:lv-mband-drift linear both;animation-timeline:view();animation-range:cover 0% cover 100%}}}@keyframes lv-mband-drift{from{transform:scale(1.1) translate3d(0,3.2%,0)}to{transform:scale(1.1) translate3d(0,-3.2%,0)}}
/* components/prove.numbers/renderers/figures-overhang.astro */
.lv-fov__head.astro-7jisvzyb{margin-inline:auto;text-align:center}.lv-fov__grid.astro-7jisvzyb{--lv-fov-reserve: clamp(4.5rem, 20cqi, 7rem);display:grid;grid-template-columns:minmax(0,1fr);gap:calc(var(--lv-fov-reserve) + var(--lv-space-5)) var(--lv-space-6);margin:0;padding-block-start:var(--lv-fov-reserve)}@container (min-width: 56rem){.lv-fov__grid.astro-7jisvzyb{grid-template-columns:repeat(3,minmax(0,1fr))}}.lv-fov__card.astro-7jisvzyb{display:grid;align-content:start;gap:var(--lv-space-3);padding:0 var(--lv-space-5) var(--lv-space-6);border-radius:var(--lv-radius-lg);background:var(--lv-surface-raised);container:lv-fov-card / inline-size}.lv-fov__value.astro-7jisvzyb{--lv-fov-size: min(12.5rem, 48cqi, calc(92cqi / (var(--lv-fov-chars, 2) * 0.58)));margin:calc(var(--lv-fov-size) * -0.5) 0 0;font-family:var(--lv-display-family, inherit);font-size:var(--lv-fov-size);font-weight:var(--lv-weight-heading, var(--lv-weight-bold));line-height:1;letter-spacing:-0.04em;text-align:center;white-space:nowrap;color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-fov__card--emphasis.astro-7jisvzyb .lv-fov__value.astro-7jisvzyb{--lv-fov-size: min(14rem, 56cqi, calc(92cqi / (var(--lv-fov-chars, 2) * 0.58)))}.lv-fov__label.astro-7jisvzyb{margin:var(--lv-space-2) 0 0;font-size:var(--lv-text-md);font-weight:var(--lv-weight-bold);line-height:var(--lv-leading-snug);color:var(--lv-text-primary);text-wrap:balance}.lv-fov__source.astro-7jisvzyb{margin:0;font-size:var(--lv-text-sm);color:var(--lv-text-tertiary);text-align:center}
/* components/prove.numbers/renderers/figures-trust.astro */
.lv-ftr__grid.astro-h5b7q6v4{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lv-space-4)}.lv-ftr__figures.astro-h5b7q6v4{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--lv-space-4);margin:0}@container (min-width: 64rem){.lv-ftr__grid.astro-h5b7q6v4{grid-template-columns:repeat(var(--lv-ftr-cols, 3),minmax(0,1fr))}.lv-ftr__figures.astro-h5b7q6v4{grid-column:1 / -1;grid-template-columns:repeat(var(--lv-ftr-cols, 3),minmax(0,1fr))}.lv-ftr__grid--led.astro-h5b7q6v4 .lv-ftr__figures.astro-h5b7q6v4{grid-column:2 / -1;grid-template-columns:repeat(var(--lv-ftr-fig-cols, 2),minmax(0,1fr))}@supports (grid-template-columns: subgrid){.lv-ftr__grid--led.astro-h5b7q6v4 .lv-ftr__figures.astro-h5b7q6v4{grid-template-columns:subgrid}}}.lv-ftr__card.astro-h5b7q6v4{display:grid;align-content:start;gap:var(--lv-space-2);min-inline-size:0;padding:var(--lv-space-5) var(--lv-space-5) var(--lv-space-6);border-radius:var(--lv-radius-lg);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-ftr__term.astro-h5b7q6v4{display:grid;gap:var(--lv-space-4);justify-items:start;margin:0}.lv-ftr__cap.astro-h5b7q6v4{display:flex;align-items:center;min-block-size:36px}.lv-ftr__disc.astro-h5b7q6v4{inline-size:36px;block-size:36px;border-radius:var(--lv-radius-pill);object-fit:cover;background:var(--lv-surface-sunken);box-shadow:0 0 0 2px var(--lv-surface)}.lv-ftr__disc.astro-h5b7q6v4+.lv-ftr__disc.astro-h5b7q6v4{margin-inline-start:-8px}.lv-ftr__stars.astro-h5b7q6v4{color:var(--lv-ink-accent, var(--lv-brand-strong))}.lv-ftr__value.astro-h5b7q6v4,.lv-ftr__headline.astro-h5b7q6v4{font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-xl);font-weight:var(--lv-weight-bold);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-display-tracking, -0.01em);color:var(--lv-text-primary);overflow-wrap:anywhere}.lv-ftr__value.astro-h5b7q6v4{font-variant-numeric:tabular-nums}.lv-ftr__headline.astro-h5b7q6v4{margin:0;text-wrap:balance}.lv-ftr__label.astro-h5b7q6v4,.lv-ftr__lede.astro-h5b7q6v4{margin:0;font-size:var(--lv-text-sm);line-height:var(--lv-leading-snug);color:var(--lv-text-primary)}.lv-ftr__source.astro-h5b7q6v4{margin:var(--lv-space-1) 0 0;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}
/* components/prove.numbers/renderers/figures.astro */
.lv-figures.astro-m2ix4a6r{display:flex;flex-wrap:wrap;justify-content:center}.lv-figs__item.astro-m2ix4a6r{flex:1 1 min(10rem,100%);min-inline-size:0}.lv-figure__value.astro-m2ix4a6r{overflow-wrap:anywhere}@container (min-width: 46rem){.lv-figs__item.astro-m2ix4a6r{max-inline-size:calc((100% - 3 * var(--lv-space-5)) / 4)}}.lv-figs--strip.astro-m2ix4a6r .lv-figures.astro-m2ix4a6r{padding-block:var(--lv-space-5);border-block:1px solid var(--lv-line)}.lv-figs--inline.astro-m2ix4a6r .lv-figures.astro-m2ix4a6r{flex-wrap:nowrap;flex-direction:column;justify-content:flex-start;gap:var(--lv-space-3)}.lv-figs--inline.astro-m2ix4a6r .lv-figs__item.astro-m2ix4a6r{flex-basis:100%;max-inline-size:none}.lv-figs--inline.astro-m2ix4a6r .lv-figs__item.astro-m2ix4a6r{display:flex;align-items:baseline;gap:var(--lv-space-3)}.lv-figs--inline.astro-m2ix4a6r .lv-figure__value.astro-m2ix4a6r{font-size:var(--lv-text-lg)}.lv-figs__source.astro-m2ix4a6r{margin:var(--lv-space-2) 0 0;font-size:var(--lv-text-2xs);color:var(--lv-text-tertiary)}.lv-figs--strip.astro-m2ix4a6r .lv-figure__value.astro-m2ix4a6r,.lv-figs--cards.astro-m2ix4a6r .lv-figure__value.astro-m2ix4a6r{font-size:clamp(2.1rem,1.2rem + 3.2cqi,3.25rem);line-height:var(--lv-leading-tight)}.lv-figs--facts.astro-m2ix4a6r.lv-figs--strip .lv-figure__value.astro-m2ix4a6r,.lv-figs--facts.astro-m2ix4a6r.lv-figs--cards .lv-figure__value.astro-m2ix4a6r{font-size:var(--lv-text-lg);font-weight:var(--lv-weight-semibold);line-height:var(--lv-leading-snug)}.lv-figs--serif.astro-m2ix4a6r .lv-figure__value.astro-m2ix4a6r{font-family:var(--lv-display-family, Georgia, "Times New Roman", serif);font-weight:300;letter-spacing:-0.01em;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.lv-figs--cell-brackets.astro-m2ix4a6r .lv-figs__item.astro-m2ix4a6r{position:relative;padding-block:var(--lv-space-3);padding-inline:var(--lv-space-5)}.lv-figs--cell-brackets.astro-m2ix4a6r .lv-figs__item.astro-m2ix4a6r::before,.lv-figs--cell-brackets.astro-m2ix4a6r .lv-figs__item.astro-m2ix4a6r::after{content:"";position:absolute;inset-block:0;inline-size:0.75rem;border:1px solid var(--lv-line-strong);pointer-events:none}.lv-figs--cell-brackets.astro-m2ix4a6r .lv-figs__item.astro-m2ix4a6r::before{inset-inline-start:0;border-inline-end:0}.lv-figs--cell-brackets.astro-m2ix4a6r .lv-figs__item.astro-m2ix4a6r::after{inset-inline-end:0;border-inline-start:0}.lv-figs--cell-brackets.astro-m2ix4a6r.lv-figs--strip .lv-figures.astro-m2ix4a6r{border-block:0}.lv-figs--cell-rule-top.astro-m2ix4a6r .lv-figs__item.astro-m2ix4a6r{border-block-start:3px solid var(--lv-ink-accent, var(--lv-brand-strong));padding-block-start:var(--lv-space-4);border-start-start-radius:0;border-start-end-radius:0}.lv-figs--cell-rule-top.astro-m2ix4a6r.lv-figs--strip .lv-figures.astro-m2ix4a6r{border-block:0}.lv-figs--inline.astro-m2ix4a6r .lv-figs__item.astro-m2ix4a6r{border-block-start:0;padding:0}.lv-figs--inline.astro-m2ix4a6r .lv-figs__item.astro-m2ix4a6r::before,.lv-figs--inline.astro-m2ix4a6r .lv-figs__item.astro-m2ix4a6r::after{content:none}@container (min-width: 46rem){.lv-figs--cards.astro-m2ix4a6r .lv-figs__split.astro-m2ix4a6r{display:grid;grid-template-columns:16rem minmax(0,1fr);gap:var(--lv-space-6);align-items:start}.lv-figs--cards.astro-m2ix4a6r .lv-sec__head.astro-m2ix4a6r{margin-block-end:0}.lv-figs--cards.astro-m2ix4a6r .lv-figures.astro-m2ix4a6r{justify-content:flex-start}}.lv-figs__item--emphasis.astro-m2ix4a6r{background:var(--lv-brand-soft);box-shadow:none}.lv-figs__item--emphasis.astro-m2ix4a6r .lv-figure__value.astro-m2ix4a6r{font-size:clamp(2.6rem,1.6rem + 4cqi,4rem);background:inherit;color:var(--lv-brand-strong)}
/* components/prove.people/renderers/people-directory.astro */
.lv-dir__filters.astro-qhetyxps{display:none}.astro-qhetyxps[data-lv-ready] .lv-dir__filters.astro-qhetyxps{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--lv-space-5);max-inline-size:34rem;margin-block-end:var(--lv-space-2);border-block-end:1px solid var(--lv-line-strong);font:var(--lv-weight-semibold) var(--lv-text-xs) / 1 var(--lv-font-ui);color:var(--lv-text-primary)}.lv-dir__pick.astro-qhetyxps{position:relative;display:inline-flex;align-items:center;gap:var(--lv-space-2);min-block-size:44px}.lv-dir__caret.astro-qhetyxps{flex:none}.lv-dir__pick.astro-qhetyxps select.astro-qhetyxps{appearance:none;field-sizing:content;max-inline-size:11rem;min-block-size:44px;padding:0;border:0;background:transparent;font:inherit;color:inherit;text-overflow:ellipsis;cursor:pointer}.lv-dir__find.astro-qhetyxps{flex:1 1 10rem;display:flex;align-items:center;min-inline-size:0}.lv-dir__search.astro-qhetyxps{flex:1 1 auto;display:flex;min-inline-size:0}.lv-dir__go.astro-qhetyxps{flex:none}.lv-dir__search.astro-qhetyxps input.astro-qhetyxps{inline-size:100%;min-inline-size:0;min-block-size:44px;padding:0;border:0;background:transparent;font:var(--lv-weight-regular) var(--lv-text-xs) / 1 var(--lv-font-ui);color:var(--lv-text-primary)}.lv-dir__search.astro-qhetyxps input.astro-qhetyxps::placeholder{color:var(--lv-text-secondary);opacity:1}.lv-dir__go.astro-qhetyxps{display:grid;place-items:center;inline-size:44px;block-size:44px;margin-inline-end:calc(var(--lv-space-3) * -1);padding:0;border:0;background:transparent;color:var(--lv-text-primary);cursor:pointer;transition:translate var(--lv-dur-state) var(--lv-ease)}.lv-dir__go.astro-qhetyxps:hover{translate:2px 0}.lv-dir__pick.astro-qhetyxps select.astro-qhetyxps:focus-visible,.lv-dir__search.astro-qhetyxps input.astro-qhetyxps:focus-visible,.lv-dir__go.astro-qhetyxps:focus-visible,.lv-dir__reset.astro-qhetyxps:focus-visible{outline:var(--lv-focus-width) solid var(--lv-focus-ring);outline-offset:var(--lv-focus-offset)}.lv-dir__status.astro-qhetyxps{min-block-size:1lh;margin:0 0 var(--lv-space-4);font-size:var(--lv-text-xs);color:var(--lv-text-secondary)}.lv-dir__status.astro-qhetyxps:empty{margin-block-end:var(--lv-space-4)}.lv-dir__grid.astro-qhetyxps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--lv-space-6) var(--lv-space-4);margin:0;padding:0;list-style:none}@container (min-width: 52rem){.lv-dir__grid.astro-qhetyxps{grid-template-columns:repeat(4,minmax(0,1fr))}}@container (min-width: 70rem){.lv-dir__grid.astro-qhetyxps{grid-template-columns:repeat(6,minmax(0,1fr))}}.lv-dir__letter.astro-qhetyxps{grid-column:1 / -1;padding-block-start:var(--lv-space-5)}.lv-dir__letter.astro-qhetyxps:first-child{padding-block-start:0}.lv-dir__letter-mark.astro-qhetyxps{margin:0;font-family:var(--lv-display-family, inherit);font-size:var(--lv-text-xl);font-weight:var(--lv-weight-heading, var(--lv-weight-regular));line-height:1;color:var(--lv-text-primary)}.lv-dir__tile.astro-qhetyxps{display:grid;align-content:start;gap:var(--lv-space-1);min-inline-size:0}.lv-dir__tile.astro-qhetyxps[hidden],.lv-dir__letter.astro-qhetyxps[hidden]{display:none}.lv-dir__plate.astro-qhetyxps{margin-block-end:var(--lv-space-2);aspect-ratio:4 / 3;overflow:hidden;background:var(--lv-brand-soft)}.lv-dir__portrait.astro-qhetyxps{display:block;inline-size:100%;block-size:100%;object-fit:cover}.lv-dir__mark.astro-qhetyxps{display:grid;place-items:center;block-size:100%;font-family:var(--lv-display-family, inherit);font-size:clamp(var(--lv-text-lg),3.2cqi,var(--lv-text-2xl));font-weight:var(--lv-weight-heading, var(--lv-weight-regular));letter-spacing:var(--lv-tracking-heading);color:var(--lv-brand-strong)}.lv-dir__name.astro-qhetyxps,.lv-dir__role.astro-qhetyxps,.lv-dir__bio.astro-qhetyxps,.lv-dir__contact.astro-qhetyxps{margin:0}.lv-dir__name.astro-qhetyxps{font:var(--lv-weight-semibold) var(--lv-text-sm) / var(--lv-leading-snug) var(--lv-font-ui);color:var(--lv-text-primary)}.lv-dir__role.astro-qhetyxps{font-size:var(--lv-text-xs);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary)}.lv-dir__bio.astro-qhetyxps{margin-block-start:var(--lv-space-2);font-size:var(--lv-text-xs);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}.lv-dir__contact.astro-qhetyxps{display:grid;gap:0;margin-block-start:var(--lv-space-2);font-size:var(--lv-text-xs)}.lv-dir__link.astro-qhetyxps{display:block;min-inline-size:0;padding-block:var(--lv-space-3);margin-block:calc(var(--lv-space-3) * -1 + 1px);color:var(--lv-text-primary);overflow-wrap:anywhere;text-decoration-line:underline;text-decoration-color:var(--lv-line-strong);text-decoration-thickness:1px;text-underline-offset:0.25em;transition:text-decoration-color var(--lv-dur-state) var(--lv-ease)}.lv-dir__link.astro-qhetyxps:hover{text-decoration-color:currentColor}.lv-dir__link.astro-qhetyxps.lv-num{font-variant-numeric:tabular-nums}.lv-dir__none.astro-qhetyxps{margin:var(--lv-space-5) 0 0;font-size:var(--lv-text-sm);color:var(--lv-text-secondary)}.lv-dir__reset.astro-qhetyxps{min-block-size:44px;margin-inline-start:var(--lv-space-2);padding:0;border:0;background:transparent;font:inherit;color:var(--lv-text-primary);text-decoration:underline;text-underline-offset:0.25em;cursor:pointer}@container (max-width: 30rem){.lv-dir__find.astro-qhetyxps{flex-basis:100%}}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-dir__tile.astro-qhetyxps{animation:lv-dir-settle linear both;animation-timeline:view();animation-range:entry 0% entry 60%}@keyframes lv-dir-settle{from{opacity:0;translate:0 var(--lv-reveal-distance, 8px)}to{opacity:1;translate:0 0}}}}
/* components/prove.people/renderers/people-editorial.astro */
.lv-people--titleblock.astro-6vqe4gnj{--lv-people-stage: 16.5rem;--lv-people-plate-ratio: 4 / 5.4;--lv-people-gutter: var(--lv-space-8)}.lv-people--titleblock.astro-6vqe4gnj .lv-people__code.astro-6vqe4gnj{align-self:center;padding:0.15em 0.45em;border:1px solid var(--lv-line);border-radius:var(--lv-radius-sm);background:var(--lv-surface);transition:background-color var(--lv-dur-fast) var(--lv-ease),border-color var(--lv-dur-fast) var(--lv-ease),color var(--lv-dur-fast) var(--lv-ease)}.lv-people--titleblock.astro-6vqe4gnj .lv-people__entry.astro-6vqe4gnj:has(.lv-people__radio:checked) .lv-people__code.astro-6vqe4gnj{border-color:var(--lv-brand-strong);background:var(--lv-brand-soft);color:var(--lv-brand-strong)}.lv-people--titleblock.astro-6vqe4gnj .lv-people__ident.astro-6vqe4gnj{grid-auto-flow:column;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:var(--lv-space-4)}.lv-people--titleblock.astro-6vqe4gnj .lv-people__ident.astro-6vqe4gnj .lv-people__role.astro-6vqe4gnj{text-align:end;font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-label);text-transform:uppercase}.lv-people--titleblock.astro-6vqe4gnj .lv-people__plate-meta.astro-6vqe4gnj{position:relative;padding-block-start:var(--lv-space-3);gap:var(--lv-space-1)}.lv-people--titleblock.astro-6vqe4gnj .lv-people__plate-meta.astro-6vqe4gnj::before{content:"";position:absolute;inset-block-start:0;inset-inline:0;block-size:1px;background:var(--lv-line-strong);transform-origin:0 50%}.lv-people--titleblock.astro-6vqe4gnj .lv-people__plate-meta.astro-6vqe4gnj .lv-people__role.astro-6vqe4gnj{font-family:var(--lv-font-mono);font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-label);text-transform:uppercase;color:var(--lv-text-tertiary)}.lv-people--titleblock.astro-6vqe4gnj .lv-people__contact.astro-6vqe4gnj{font-family:var(--lv-font-mono);font-size:var(--lv-text-xs)}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-people--titleblock.astro-6vqe4gnj .lv-people__plate-meta.astro-6vqe4gnj::before{animation:lv-people-rule linear both;animation-timeline:view();animation-range:entry 15% entry 65%}@keyframes lv-people-rule{from{scale:0 1}to{scale:1 1}}}}
/* components/prove.people/renderers/people-portfolio.astro */
.lv-people--sheet.astro-tpxppivv{--lv-people-stage: 23rem;--lv-people-stage-floor: 34rem;--lv-people-plate-ratio: 3 / 4;--lv-people-gutter: var(--lv-space-8)}.lv-people--sheet.astro-tpxppivv .lv-people__portrait.astro-tpxppivv,.lv-people--sheet.astro-tpxppivv .lv-people__mark.astro-tpxppivv{border-radius:var(--lv-radius-sm)}.lv-people--sheet.astro-tpxppivv .lv-people__pick.astro-tpxppivv{position:relative;padding-inline:var(--lv-space-3)}.lv-people--sheet.astro-tpxppivv .lv-people__code.astro-tpxppivv{align-self:center}.lv-people--sheet.astro-tpxppivv .lv-people__entry.astro-tpxppivv:has(.lv-people__radio:checked) .lv-people__pick.astro-tpxppivv::before,.lv-people--sheet.astro-tpxppivv .lv-people__entry.astro-tpxppivv:has(.lv-people__radio:checked) .lv-people__pick.astro-tpxppivv::after{content:"";position:absolute;inline-size:0.7rem;block-size:0.7rem;border:1px solid var(--lv-brand-strong)}.lv-people--sheet.astro-tpxppivv .lv-people__entry.astro-tpxppivv:has(.lv-people__radio:checked) .lv-people__pick.astro-tpxppivv::before{inset-block-start:0;inset-inline-start:0;border-inline-end:0;border-block-end:0}.lv-people--sheet.astro-tpxppivv .lv-people__entry.astro-tpxppivv:has(.lv-people__radio:checked) .lv-people__pick.astro-tpxppivv::after{inset-block-end:0;inset-inline-end:0;border-inline-start:0;border-block-start:0}.lv-people--sheet.astro-tpxppivv .lv-people__plate-meta.astro-tpxppivv .lv-people__name.astro-tpxppivv{font-size:var(--lv-text-lg)}.lv-people--sheet.astro-tpxppivv .lv-people__plate-meta.astro-tpxppivv .lv-people__role.astro-tpxppivv{font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-label);text-transform:uppercase;color:var(--lv-text-tertiary)}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-people--sheet.astro-tpxppivv .lv-people__portrait.astro-tpxppivv,.lv-people--sheet.astro-tpxppivv .lv-people__mark.astro-tpxppivv{animation:lv-people-frame linear both;animation-timeline:view();animation-range:entry 10% entry 70%}@keyframes lv-people-frame{from{scale:0.985}to{scale:1}}}}
/* components/prove.people/renderers/people-product.astro */
.lv-people--desk.astro-2fyzqrsf{--lv-people-stage: 15rem;--lv-people-stage-floor: 24rem;--lv-people-plate-ratio: 1 / 1}.lv-people--desk.astro-2fyzqrsf .lv-people__portrait.astro-2fyzqrsf,.lv-people--desk.astro-2fyzqrsf .lv-people__mark.astro-2fyzqrsf{border-radius:var(--lv-radius-lg)}.lv-people--desk.astro-2fyzqrsf .lv-people__role.astro-2fyzqrsf{order:-1;color:var(--lv-text-tertiary);font-size:var(--lv-text-xs);letter-spacing:var(--lv-tracking-label);text-transform:uppercase}.lv-people--desk.astro-2fyzqrsf .lv-people__ident.astro-2fyzqrsf{display:flex;flex-direction:column;gap:0.15rem}.lv-people--desk.astro-2fyzqrsf .lv-people__name.astro-2fyzqrsf{font-size:var(--lv-text-md)}.lv-people--desk.astro-2fyzqrsf .lv-people__contact.astro-2fyzqrsf{gap:var(--lv-space-2)}.lv-people--desk.astro-2fyzqrsf .lv-people__action.astro-2fyzqrsf{min-block-size:44px;padding-inline:var(--lv-space-4);border:1px solid var(--lv-line-strong);border-radius:var(--lv-radius-pill);color:var(--lv-text-primary);text-decoration:none;transition:border-color var(--lv-dur-fast) var(--lv-ease),background-color var(--lv-dur-fast) var(--lv-ease)}.lv-people--desk.astro-2fyzqrsf .lv-people__action.astro-2fyzqrsf:hover,.lv-people--desk.astro-2fyzqrsf .lv-people__action.astro-2fyzqrsf:focus-visible{border-color:var(--lv-brand-strong);background:var(--lv-brand-soft)}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-people--desk.astro-2fyzqrsf .lv-people__plate-body.astro-2fyzqrsf{animation:lv-people-desk-settle linear both;animation-timeline:view();animation-range:entry 14% entry 68%}@keyframes lv-people-desk-settle{from{opacity:0;translate:0 var(--lv-reveal-distance, 6px)}to{opacity:1;translate:0 0}}}}
/* components/prove.people/renderers/people.astro */
.lv-people--crew.astro-ovyxz3td{--lv-people-stage: 18rem;--lv-people-plate-ratio: 4 / 4.8}.lv-people--crew.astro-ovyxz3td .lv-people__code.astro-ovyxz3td{font-weight:var(--lv-weight-semibold)}.lv-people--crew.astro-ovyxz3td .lv-people__contact.astro-ovyxz3td{gap:var(--lv-space-1) var(--lv-space-5);align-items:baseline}.lv-people--crew.astro-ovyxz3td .lv-people__phone.astro-ovyxz3td{font-family:var(--lv-font-mono);font-size:var(--lv-text-md);font-variant-numeric:tabular-nums;font-weight:var(--lv-weight-semibold);letter-spacing:var(--lv-tracking-num)}.lv-people--crew.astro-ovyxz3td .lv-people__plate-meta.astro-ovyxz3td .lv-people__role.astro-ovyxz3td{color:var(--lv-text-tertiary)}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.lv-people--crew.astro-ovyxz3td .lv-people__plate.astro-ovyxz3td{animation:lv-people-crew-settle linear both;animation-timeline:view();animation-range:entry 12% entry 72%}@keyframes lv-people-crew-settle{from{opacity:0;translate:0 var(--lv-reveal-distance, 8px)}to{opacity:1;translate:0 0}}}}
/* components/prove.press/renderers/press.astro */
.lv-press.astro-wscphhoj{max-width:52rem}.lv-press__row.astro-wscphhoj{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--lv-space-1) var(--lv-space-4);align-items:baseline}.lv-press__logo.astro-wscphhoj{grid-row:span 2;block-size:1.75rem;inline-size:auto}.lv-press__outlet.astro-wscphhoj{margin:0;font:var(--lv-weight-bold) var(--lv-text-2xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-tertiary)}.lv-press__title.astro-wscphhoj{margin:0;font-weight:var(--lv-weight-medium)}.lv-press__title.astro-wscphhoj a.astro-wscphhoj{color:var(--lv-text-primary);text-decoration:none}.lv-press__title.astro-wscphhoj a.astro-wscphhoj:hover{text-decoration:underline}.lv-press__date.astro-wscphhoj{grid-column:2;grid-row:1 / span 2;font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-press__band.astro-wscphhoj{display:grid;gap:var(--lv-space-4);padding:var(--lv-space-6) var(--lv-space-6) var(--lv-space-5);border-radius:var(--lv-radius-md);background:var(--lv-surface-sunken);border-block-end:0;margin-block-end:var(--lv-space-3)}.lv-press.astro-wscphhoj:has(> .lv-press__band:first-child){border-block-start:0}.lv-press__quote.astro-wscphhoj{margin:0;max-width:var(--lv-measure);font-size:clamp(var(--lv-text-lg),3.4cqi,2.1rem);font-family:var(--lv-display-family, inherit);font-style:italic;font-weight:var(--lv-weight-medium);line-height:var(--lv-leading-snug);letter-spacing:var(--lv-tracking-heading);color:var(--lv-text-primary);text-wrap:balance}.lv-press__quote.astro-wscphhoj::before{content:"»";margin-inline-end:0.08em}.lv-press__quote.astro-wscphhoj::after{content:"«";margin-inline-start:0.08em}.lv-press__quote.astro-wscphhoj::before,.lv-press__quote.astro-wscphhoj::after{color:var(--lv-ink-accent, var(--lv-brand-strong));font-style:normal}.lv-press__cite.astro-wscphhoj{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--lv-space-1) var(--lv-space-2);margin:0}.lv-press__cite.astro-wscphhoj .lv-press__logo.astro-wscphhoj{grid-row:auto;align-self:center}.lv-press__band-outlet.astro-wscphhoj{font:var(--lv-weight-bold) var(--lv-text-2xs) / 1 var(--lv-font-ui);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-secondary)}.lv-press__band-outlet.astro-wscphhoj::before{content:"— ";color:var(--lv-text-tertiary)}.lv-press__cite.astro-wscphhoj .lv-press__date.astro-wscphhoj::before{content:"· "}.lv-press__cite.astro-wscphhoj .lv-press__date.astro-wscphhoj{grid-column:auto;grid-row:auto}.lv-press__band-title.astro-wscphhoj{margin:0;font-size:var(--lv-text-sm)}.lv-press__band-title.astro-wscphhoj a.astro-wscphhoj{color:var(--lv-text-link);text-decoration:none}.lv-press__band-title.astro-wscphhoj a.astro-wscphhoj:hover{text-decoration:underline}
/* components/prove.rating-summary/renderers/summary.astro */
.lv-rating.astro-ba36gsrw{display:grid;gap:var(--lv-space-6);align-items:center}.lv-rating__avg.astro-ba36gsrw{margin:var(--lv-space-3) 0 0;font-size:clamp(2.5rem,8cqi,4rem);font-weight:var(--lv-weight-semibold);line-height:1;color:var(--lv-text-primary)}.lv-rating__of.astro-ba36gsrw{font-size:var(--lv-text-md);color:var(--lv-text-tertiary)}.lv-rating__stars.astro-ba36gsrw{margin:var(--lv-space-2) 0 0}.lv-rating__source.astro-ba36gsrw .lv-trust-mark.astro-ba36gsrw{inline-size:1.75rem;block-size:1.75rem}.lv-rating__count.astro-ba36gsrw{display:flex;gap:var(--lv-space-2);margin:var(--lv-space-2) 0 0;color:var(--lv-text-secondary)}.lv-rating__source.astro-ba36gsrw{display:flex;align-items:center;gap:var(--lv-space-2);margin:var(--lv-space-1) 0 0;font-size:var(--lv-text-sm)}.lv-rating__dist.astro-ba36gsrw{display:grid;gap:var(--lv-space-2);margin:0}.lv-rating__row.astro-ba36gsrw{display:grid;grid-template-columns:1.5rem minmax(0,1fr);align-items:center;gap:var(--lv-space-3)}.lv-rating__row.astro-ba36gsrw dt.astro-ba36gsrw{color:var(--lv-text-tertiary);font-size:var(--lv-text-sm)}.lv-rating__row.astro-ba36gsrw dd.astro-ba36gsrw{display:flex;align-items:center;gap:var(--lv-space-3);margin:0}.lv-rating__row.astro-ba36gsrw .lv-meter.astro-ba36gsrw{flex:1}.lv-rating__n.astro-ba36gsrw{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary);min-inline-size:3ch;text-align:end}@container (min-width: 44rem){.lv-rating.astro-ba36gsrw{grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:var(--lv-space-8)}}
/* components/prove.stat-scene/renderers/scene.astro */
.lv-statscene.astro-gkwssubn{background:var(--lv-panel-dark, var(--lv-brand-strong));padding-block:var(--lv-space-8);padding-inline:var(--lv-gutter, var(--lv-space-5));color:var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-text-primary: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-text-secondary: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-text-tertiary: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-ink-accent: var(--lv-panel-dark-ink, var(--lv-text-on-brand));--lv-line: color-mix(in oklab, var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 30%, transparent);--lv-line-strong: color-mix(in oklab, var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 52%, transparent)}.lv-statscene__inner.astro-gkwssubn{max-width:var(--lv-container-max, 72rem);margin-inline:auto}.lv-statscene__band.astro-gkwssubn{display:grid;gap:var(--lv-space-7);align-items:center}@container (min-width: 46rem){.lv-statscene__band.astro-gkwssubn{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.lv-statscene--bare.astro-gkwssubn .lv-statscene__band.astro-gkwssubn{grid-template-columns:minmax(0,1fr)}}.lv-statscene__scene.astro-gkwssubn{position:relative;overflow:hidden;aspect-ratio:7 / 8;max-block-size:26rem;justify-self:center;inline-size:min(100%,24rem);background:color-mix(in oklab,var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 8%,transparent)}.lv-statscene__scene.astro-gkwssubn img.astro-gkwssubn{display:block;inline-size:100%;block-size:100%;object-fit:cover;object-position:center;filter:saturate(0.88)}.lv-statscene--arc.astro-gkwssubn .lv-statscene__scene.astro-gkwssubn{border-radius:999px 999px var(--lv-radius-lg) var(--lv-radius-lg)}.lv-statscene--shard.astro-gkwssubn .lv-statscene__scene.astro-gkwssubn{border-radius:var(--lv-radius-md);clip-path:polygon(0 4%,100% 0,94% 96%,4% 100%)}.lv-statscene--mark.astro-gkwssubn .lv-statscene__scene.astro-gkwssubn{background:none;mask-image:var(--lv-scene-mask);mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-image:var(--lv-scene-mask);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}@media (prefers-reduced-motion: no-preference){.lv-statscene__scene.astro-gkwssubn img.astro-gkwssubn{animation:lv-statscene-pan 46s var(--lv-ease) infinite alternate}}@keyframes lv-statscene-pan{from{transform:scale(1.06) translate3d(-1.6%,1.2%,0)}to{transform:scale(1.06) translate3d(1.6%,-1.2%,0)}}@media (prefers-reduced-motion: reduce){.lv-statscene__scene.astro-gkwssubn img.astro-gkwssubn{animation:none}}.lv-statscene__figures.astro-gkwssubn{display:grid;gap:var(--lv-space-5) var(--lv-space-6);margin:0;grid-template-columns:repeat(auto-fit,minmax(min(10rem,100%),1fr))}@container (min-width: 46rem){.lv-statscene__figures.astro-gkwssubn{grid-template-columns:repeat(2,minmax(0,1fr))}.lv-statscene--bare.astro-gkwssubn .lv-statscene__figures.astro-gkwssubn{grid-template-columns:repeat(4,minmax(0,1fr))}.lv-statscene.astro-gkwssubn:not(.lv-statscene--bare) .lv-statscene__figures.astro-gkwssubn:not(:has(> .lv-statscene__fig--emphasis))>.astro-gkwssubn:last-child:nth-child(odd),.lv-statscene.astro-gkwssubn:not(.lv-statscene--bare) .lv-statscene__figures.astro-gkwssubn:has(> :first-child.lv-statscene__fig--emphasis)>.astro-gkwssubn:last-child:nth-child(even){grid-column:1 / -1}.lv-statscene--bare.astro-gkwssubn .lv-statscene__figures.astro-gkwssubn:not(:has(> .lv-statscene__fig--emphasis)):has(> :nth-child(2):last-child),.lv-statscene--bare.astro-gkwssubn .lv-statscene__figures.astro-gkwssubn:has(> :first-child.lv-statscene__fig--emphasis):has(> :nth-child(3):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.lv-statscene--bare.astro-gkwssubn .lv-statscene__figures.astro-gkwssubn:not(:has(> .lv-statscene__fig--emphasis)):has(> :nth-child(3):last-child),.lv-statscene--bare.astro-gkwssubn .lv-statscene__figures.astro-gkwssubn:not(:has(> .lv-statscene__fig--emphasis)):has(> :nth-child(6):last-child),.lv-statscene--bare.astro-gkwssubn .lv-statscene__figures.astro-gkwssubn:has(> :first-child.lv-statscene__fig--emphasis):has(> :nth-child(4):last-child),.lv-statscene--bare.astro-gkwssubn .lv-statscene__figures.astro-gkwssubn:has(> :first-child.lv-statscene__fig--emphasis):has(> :nth-child(7):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.lv-statscene--bare.astro-gkwssubn .lv-statscene__figures.astro-gkwssubn:not(:has(> .lv-statscene__fig--emphasis)):has(> :nth-child(5):last-child)>.astro-gkwssubn:last-child,.lv-statscene--bare.astro-gkwssubn .lv-statscene__figures.astro-gkwssubn:has(> :first-child.lv-statscene__fig--emphasis):has(> :nth-child(2):last-child)>.astro-gkwssubn:last-child,.lv-statscene--bare.astro-gkwssubn .lv-statscene__figures.astro-gkwssubn:has(> :first-child.lv-statscene__fig--emphasis):has(> :nth-child(6):last-child)>.astro-gkwssubn:last-child{grid-column:1 / -1}.lv-statscene--bare.astro-gkwssubn .lv-statscene__figures.astro-gkwssubn:not(:has(> .lv-statscene__fig--emphasis)):has(> :nth-child(7):last-child)>.astro-gkwssubn:last-child,.lv-statscene--bare.astro-gkwssubn .lv-statscene__figures.astro-gkwssubn:has(> :first-child.lv-statscene__fig--emphasis):has(> :nth-child(8):last-child)>.astro-gkwssubn:last-child{grid-column:span 2}}.lv-statscene__figures--one.astro-gkwssubn,.lv-statscene--bare.astro-gkwssubn .lv-statscene__figures--one.astro-gkwssubn{grid-template-columns:minmax(0,1fr)}.lv-statscene__fig.astro-gkwssubn{padding-block-start:var(--lv-space-4);border-block-start:1px solid var(--lv-line)}.lv-statscene__value.astro-gkwssubn{font-size:var(--lv-text-2xl);font-weight:var(--lv-weight-regular);line-height:1;letter-spacing:var(--lv-tracking-num);color:var(--lv-panel-dark-ink, var(--lv-text-on-brand))}.lv-statscene__fig--emphasis.astro-gkwssubn{grid-column:1 / -1}.lv-statscene__fig--emphasis.astro-gkwssubn .lv-statscene__value.astro-gkwssubn{font-size:clamp(var(--lv-text-2xl),9cqi,5.75rem)}.lv-statscene__label.astro-gkwssubn{margin:var(--lv-space-2) 0 0;font:var(--lv-weight-bold) var(--lv-text-2xs) / 1.4 var(--lv-font-mono);letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:color-mix(in oklab,var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 86%,transparent)}.lv-statscene__source.astro-gkwssubn{margin:var(--lv-space-2) 0 0;font-size:var(--lv-text-2xs);color:color-mix(in oklab,var(--lv-panel-dark-ink, var(--lv-text-on-brand)) 68%,transparent)}
/* components/prove.third-party-marks/renderers/marks.astro */
.lv-marks__list.astro-ke5sk3id{display:flex;flex-wrap:wrap;align-items:center;gap:var(--lv-space-5) var(--lv-space-7);margin:0;padding:0;list-style:none}.lv-marks__item.astro-ke5sk3id{display:grid;gap:var(--lv-space-1)}.lv-marks__link.astro-ke5sk3id{display:flex;align-items:center;gap:var(--lv-space-3);color:var(--lv-text-primary);text-decoration:none}.lv-marks__img.astro-ke5sk3id{block-size:2rem;inline-size:auto;max-inline-size:9rem;object-fit:contain;filter:var(--lv-mark-filter, grayscale(1));transition:filter var(--lv-dur-fast) var(--lv-ease)}.lv-marks__link.astro-ke5sk3id:hover .lv-marks__img.astro-ke5sk3id,.lv-marks__link.astro-ke5sk3id:focus-visible .lv-marks__img.astro-ke5sk3id{filter:grayscale(0)}.lv-marks--logo.astro-ke5sk3id .lv-marks__img.astro-ke5sk3id+.lv-marks__name.astro-ke5sk3id{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%)}.lv-marks--badge.astro-ke5sk3id .lv-marks__link.astro-ke5sk3id{padding:var(--lv-space-3) var(--lv-space-4);border-radius:var(--lv-radius-md);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line);font-weight:var(--lv-weight-semibold);font-size:var(--lv-text-sm)}.lv-marks__note.astro-ke5sk3id{font-size:var(--lv-text-xs);color:var(--lv-text-tertiary)}.lv-marks--drift.astro-ke5sk3id .lv-marks__viewport.astro-ke5sk3id{overflow:hidden}.lv-marks--drift.astro-ke5sk3id .lv-marks__track.astro-ke5sk3id{display:flex;inline-size:max-content}.lv-marks--drift.astro-ke5sk3id .lv-marks__list.astro-ke5sk3id{flex-wrap:nowrap;padding-inline-end:var(--lv-space-7)}@media (prefers-reduced-motion: no-preference){.lv-marks--drift.astro-ke5sk3id .lv-marks__track.astro-ke5sk3id{animation:lv-marks-drift 38s linear infinite}.lv-marks--drift.astro-ke5sk3id .lv-marks__track.astro-ke5sk3id:hover{animation-play-state:paused}}@keyframes lv-marks-drift{from{transform:none}to{transform:translateX(-50%)}}
/* components/sidebar.cta/renderers/cta.astro */
.lv-swidget.astro-php5gdmr{display:grid;gap:var(--lv-space-3);padding:var(--lv-space-5);border-radius:var(--lv-radius-md);background:var(--lv-surface-raised);box-shadow:inset 0 0 0 1px var(--lv-line)}@container (min-width: 60rem){.lv-swidget--sticky.astro-php5gdmr{position:sticky;inset-block-start:var(--lv-space-5)}}.lv-swidget__facts.astro-php5gdmr{display:grid;grid-template-columns:auto 1fr;gap:var(--lv-space-2);margin:0}
/* components/sidebar.info/renderers/info.astro */
.lv-sinfo.astro-5bv4dqwo{display:grid;gap:var(--lv-space-3);padding:var(--lv-space-5);border-radius:var(--lv-radius-md);background:var(--lv-surface-sunken)}.lv-sinfo__body.astro-5bv4dqwo{font-size:var(--lv-text-sm)}.lv-sinfo__rows.astro-5bv4dqwo{grid-template-columns:minmax(4rem,max-content) 1fr;font-size:var(--lv-text-sm)}.lv-sinfo__source.astro-5bv4dqwo{margin:0;font-size:var(--lv-text-2xs);color:var(--lv-text-tertiary)}
/* components/sidebar.promote-item/renderers/promote.astro */
.lv-spromote.astro-5vwqfelh{display:grid;gap:var(--lv-space-3);padding:var(--lv-space-5);border-radius:var(--lv-radius-md);background:var(--lv-surface);box-shadow:inset 0 0 0 1px var(--lv-line)}.lv-spromote__price.astro-5vwqfelh{margin:0;font-size:var(--lv-text-lg);font-weight:var(--lv-weight-semibold);color:var(--lv-text-primary)}

/* ── expression axis (CMS dial → step inside the theme’s own light model) ── */
:root, body { --lv-solid-lift: var(--lv-lift-1); --lv-glass-lift: var(--lv-lift-2); }
body[data-lvs-expr='none'], [data-lv-node-id][data-lvs-expr='none'] { --lv-solid-lift: var(--lv-lift-1); --lv-glass-lift: var(--lv-lift-2); }
body[data-lvs-expr='low'], [data-lv-node-id][data-lvs-expr='low'] { --lv-solid-lift: var(--lv-lift-1); --lv-glass-lift: var(--lv-lift-1); }
body[data-lvs-expr='medium'], [data-lv-node-id][data-lvs-expr='medium'] { --lv-solid-lift: var(--lv-lift-1); --lv-glass-lift: var(--lv-lift-2); }
body[data-lvs-expr='high'], [data-lv-node-id][data-lvs-expr='high'] { --lv-solid-lift: var(--lv-lift-2); --lv-glass-lift: var(--lv-lift-3); }

/* ── technique plane (design-intensity, packages/registry/techniques/) ── */
/* techniques/animation-effects/clip-reveal-panorama/technique.css · technique.animation-effects.clip-reveal-panorama.v1 */
/* technique.animation-effects.clip-reveal-panorama.v1 — anim ≥ high.
 *
 * Full-bleed media uncovers through a clip mask while scrolling into view —
 * the panorama is already there, the window onto it opens. High only: this
 * is a statement, and a page full of statements is noise (the harmony walk
 * in the orchestration skill says one per route). Binds media that spans the
 * section (`.lv-media--bleed`, hero figures) and any `data-clip-reveal`
 * opt-in. Universal marker: the marked element itself gets the clip
 * animation.
 */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    @keyframes lv-technique-clip-panorama {
      from { clip-path: inset(12% 8% 12% 8% round var(--lv-radius-lg, 16px)); }
      to { clip-path: inset(0 0 0 0 round 0); }
    }
    body[data-lvs-anim='high'] [data-lv-node-id]:not([data-lvs-anim]) :is(.lv-media--bleed, [data-clip-reveal]),
    [data-lv-node-id][data-lvs-anim='high'] :is(.lv-media--bleed, [data-clip-reveal]),
    body[data-lvs-anim='high'] [data-lv-node-id]:not([data-lvs-anim]) [data-technique~="technique.animation-effects.clip-reveal-panorama.v1"],
    [data-lv-node-id][data-lvs-anim='high'] [data-technique~="technique.animation-effects.clip-reveal-panorama.v1"] {
      animation: lv-technique-clip-panorama both ease-out;
      animation-timeline: view();
      animation-range: entry 0% entry 90%;
    }
  }
}
/* techniques/animation-effects/parallax-depth-layers/technique.css · technique.animation-effects.parallax-depth-layers.v1 */
/* technique.animation-effects.parallax-depth-layers.v1 — anim ≥ medium.
 *
 * Section media travels in a calmer tempo than the text around it — depth
 * from differential speed, no JavaScript. The media element scrubs a small
 * translate across its whole visibility window; text stays on the page's own
 * scroll. Subtle by budget: 6% of the element's height, never a background
 * that swims. Universal marker: the marked element itself drifts, so a pack
 * marks the image or media box it wants to drift.
 */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    @keyframes lv-technique-parallax-drift {
      from { translate: 0 3%; }
      to { translate: 0 -3%; }
    }
    body[data-lvs-anim='medium'] [data-lv-node-id]:not([data-lvs-anim]) :is(.lv-media, figure) > img,
    body[data-lvs-anim='high'] [data-lv-node-id]:not([data-lvs-anim]) :is(.lv-media, figure) > img,
    [data-lv-node-id][data-lvs-anim='medium'] :is(.lv-media, figure) > img,
    [data-lv-node-id][data-lvs-anim='high'] :is(.lv-media, figure) > img,
    body[data-lvs-anim='medium'] [data-lv-node-id]:not([data-lvs-anim]) [data-technique~="technique.animation-effects.parallax-depth-layers.v1"],
    body[data-lvs-anim='high'] [data-lv-node-id]:not([data-lvs-anim]) [data-technique~="technique.animation-effects.parallax-depth-layers.v1"],
    [data-lv-node-id][data-lvs-anim='medium'] [data-technique~="technique.animation-effects.parallax-depth-layers.v1"],
    [data-lv-node-id][data-lvs-anim='high'] [data-technique~="technique.animation-effects.parallax-depth-layers.v1"] {
      animation: lv-technique-parallax-drift linear both;
      animation-timeline: view();
      animation-range: cover 0% cover 100%;
    }
  }
}
/* techniques/animation-effects/scroll-reveal-sequence/technique.css · technique.animation-effects.scroll-reveal-sequence.v1 */
/* technique.animation-effects.scroll-reveal-sequence.v1 — anim ≥ low.
 *
 * Section content tones in and lifts in sequence, driven BY scroll position
 * (view timeline) rather than by a one-shot observer — scrolling back down
 * replays it, scrubbing feels attached. Targets the section's direct content
 * blocks; the shell-level reveal (motion axis, `.lvt-reveal`) is a different
 * plane and composes. Zero runtime bytes; browsers without scroll-driven
 * animations keep the static page (@supports). Universal marker: a marked
 * element that is not itself a tenant component root animates in place; a
 * marker on a tenant component root instead sequences its direct children.
 */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    @keyframes lv-technique-scroll-reveal {
      from { opacity: 0.001; translate: 0 18px; }
      to { opacity: 1; translate: 0 0; }
    }
    body[data-lvs-anim='low'] [data-lv-node-id]:not([data-lvs-anim]) .lv-sec > :is(h2, h3, p, ul, ol, figure, .lv-card, .lv-media),
    body[data-lvs-anim='medium'] [data-lv-node-id]:not([data-lvs-anim]) .lv-sec > :is(h2, h3, p, ul, ol, figure, .lv-card, .lv-media),
    body[data-lvs-anim='high'] [data-lv-node-id]:not([data-lvs-anim]) .lv-sec > :is(h2, h3, p, ul, ol, figure, .lv-card, .lv-media),
    [data-lv-node-id][data-lvs-anim='low'] .lv-sec > :is(h2, h3, p, ul, ol, figure, .lv-card, .lv-media),
    [data-lv-node-id][data-lvs-anim='medium'] .lv-sec > :is(h2, h3, p, ul, ol, figure, .lv-card, .lv-media),
    [data-lv-node-id][data-lvs-anim='high'] .lv-sec > :is(h2, h3, p, ul, ol, figure, .lv-card, .lv-media),
    body[data-lvs-anim='low'] [data-lv-node-id]:not([data-lvs-anim]) [data-technique~="technique.animation-effects.scroll-reveal-sequence.v1"]:not(.lvt-shell--tenant > *),
    body[data-lvs-anim='medium'] [data-lv-node-id]:not([data-lvs-anim]) [data-technique~="technique.animation-effects.scroll-reveal-sequence.v1"]:not(.lvt-shell--tenant > *),
    body[data-lvs-anim='high'] [data-lv-node-id]:not([data-lvs-anim]) [data-technique~="technique.animation-effects.scroll-reveal-sequence.v1"]:not(.lvt-shell--tenant > *),
    [data-lv-node-id][data-lvs-anim='low'] [data-technique~="technique.animation-effects.scroll-reveal-sequence.v1"]:not(.lvt-shell--tenant > *),
    [data-lv-node-id][data-lvs-anim='medium'] [data-technique~="technique.animation-effects.scroll-reveal-sequence.v1"]:not(.lvt-shell--tenant > *),
    [data-lv-node-id][data-lvs-anim='high'] [data-technique~="technique.animation-effects.scroll-reveal-sequence.v1"]:not(.lvt-shell--tenant > *),
    body[data-lvs-anim='low'] [data-lv-node-id]:not([data-lvs-anim]) .lvt-shell--tenant > [data-technique~="technique.animation-effects.scroll-reveal-sequence.v1"] > :is(h1, h2, h3, p, ul, ol, figure, div, a, button),
    body[data-lvs-anim='medium'] [data-lv-node-id]:not([data-lvs-anim]) .lvt-shell--tenant > [data-technique~="technique.animation-effects.scroll-reveal-sequence.v1"] > :is(h1, h2, h3, p, ul, ol, figure, div, a, button),
    body[data-lvs-anim='high'] [data-lv-node-id]:not([data-lvs-anim]) .lvt-shell--tenant > [data-technique~="technique.animation-effects.scroll-reveal-sequence.v1"] > :is(h1, h2, h3, p, ul, ol, figure, div, a, button),
    [data-lv-node-id][data-lvs-anim='low'] .lvt-shell--tenant > [data-technique~="technique.animation-effects.scroll-reveal-sequence.v1"] > :is(h1, h2, h3, p, ul, ol, figure, div, a, button),
    [data-lv-node-id][data-lvs-anim='medium'] .lvt-shell--tenant > [data-technique~="technique.animation-effects.scroll-reveal-sequence.v1"] > :is(h1, h2, h3, p, ul, ol, figure, div, a, button),
    [data-lv-node-id][data-lvs-anim='high'] .lvt-shell--tenant > [data-technique~="technique.animation-effects.scroll-reveal-sequence.v1"] > :is(h1, h2, h3, p, ul, ol, figure, div, a, button) {
      animation: lv-technique-scroll-reveal both ease-out;
      animation-timeline: view();
      animation-range: entry 0% entry 60%;
    }
  }
}
/* techniques/micro-interactions/cta-hover-lift/technique.css · technique.micro-interactions.cta-hover-lift.v1 */
/* technique.micro-interactions.cta-hover-lift.v1 — micro ≥ low.
 *
 * Primary buttons lift a notch with shadow on hover and land again on press.
 * Rides the theme's own duration/easing tokens; the press state cooperates
 * with react-effects' press-depress (translate wins by later declaration
 * there, which is the intended compound feel). Universal marker: the marked
 * element behaves exactly like `.lv-btn`.
 */
@media (prefers-reduced-motion: no-preference) {
  body[data-lvs-micro='low'] [data-lv-node-id]:not([data-lvs-micro]) .lv-btn,
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) .lv-btn,
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) .lv-btn,
  [data-lv-node-id][data-lvs-micro='low'] .lv-btn,
  [data-lv-node-id][data-lvs-micro='medium'] .lv-btn,
  [data-lv-node-id][data-lvs-micro='high'] .lv-btn,
  body[data-lvs-micro='low'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.cta-hover-lift.v1"],
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.cta-hover-lift.v1"],
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.cta-hover-lift.v1"],
  [data-lv-node-id][data-lvs-micro='low'] [data-technique~="technique.micro-interactions.cta-hover-lift.v1"],
  [data-lv-node-id][data-lvs-micro='medium'] [data-technique~="technique.micro-interactions.cta-hover-lift.v1"],
  [data-lv-node-id][data-lvs-micro='high'] [data-technique~="technique.micro-interactions.cta-hover-lift.v1"] {
    transition:
      translate var(--lv-dur-fast, 160ms) var(--lv-ease, cubic-bezier(0.22, 1, 0.36, 1)),
      box-shadow var(--lv-dur-fast, 160ms) var(--lv-ease, cubic-bezier(0.22, 1, 0.36, 1));
  }
  body[data-lvs-micro='low'] [data-lv-node-id]:not([data-lvs-micro]) .lv-btn:is(:hover, :focus-visible),
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) .lv-btn:is(:hover, :focus-visible),
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) .lv-btn:is(:hover, :focus-visible),
  [data-lv-node-id][data-lvs-micro='low'] .lv-btn:is(:hover, :focus-visible),
  [data-lv-node-id][data-lvs-micro='medium'] .lv-btn:is(:hover, :focus-visible),
  [data-lv-node-id][data-lvs-micro='high'] .lv-btn:is(:hover, :focus-visible),
  body[data-lvs-micro='low'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.cta-hover-lift.v1"]:is(:hover, :focus-visible),
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.cta-hover-lift.v1"]:is(:hover, :focus-visible),
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.cta-hover-lift.v1"]:is(:hover, :focus-visible),
  [data-lv-node-id][data-lvs-micro='low'] [data-technique~="technique.micro-interactions.cta-hover-lift.v1"]:is(:hover, :focus-visible),
  [data-lv-node-id][data-lvs-micro='medium'] [data-technique~="technique.micro-interactions.cta-hover-lift.v1"]:is(:hover, :focus-visible),
  [data-lv-node-id][data-lvs-micro='high'] [data-technique~="technique.micro-interactions.cta-hover-lift.v1"]:is(:hover, :focus-visible) {
    translate: 0 -2px;
    box-shadow: 0 6px 18px -8px color-mix(in oklab, currentColor 45%, transparent);
  }
  body[data-lvs-micro='low'] [data-lv-node-id]:not([data-lvs-micro]) .lv-btn:active,
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) .lv-btn:active,
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) .lv-btn:active,
  [data-lv-node-id][data-lvs-micro='low'] .lv-btn:active,
  [data-lv-node-id][data-lvs-micro='medium'] .lv-btn:active,
  [data-lv-node-id][data-lvs-micro='high'] .lv-btn:active,
  body[data-lvs-micro='low'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.cta-hover-lift.v1"]:active,
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.cta-hover-lift.v1"]:active,
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.cta-hover-lift.v1"]:active,
  [data-lv-node-id][data-lvs-micro='low'] [data-technique~="technique.micro-interactions.cta-hover-lift.v1"]:active,
  [data-lv-node-id][data-lvs-micro='medium'] [data-technique~="technique.micro-interactions.cta-hover-lift.v1"]:active,
  [data-lv-node-id][data-lvs-micro='high'] [data-technique~="technique.micro-interactions.cta-hover-lift.v1"]:active {
    translate: 0 0;
    box-shadow: 0 2px 8px -6px color-mix(in oklab, currentColor 35%, transparent);
  }
}
/* techniques/micro-interactions/field-validation-pulse/technique.css · technique.micro-interactions.field-validation-pulse.v1 */
/* technique.micro-interactions.field-validation-pulse.v1 — micro ≥ medium.
 *
 * A rejected field pulses ONCE and settles — `:user-invalid` fires only after
 * the user has interacted, so nothing pulses on first paint. One animation,
 * both control kinds; the pulse is a border-color + subtle ring breath, no
 * layout shift (box-shadow, not outline growth). Universal marker: the
 * marker binds either directly on the control
 * (`[data-technique~="…"]:is(input, select, textarea):user-invalid`) or on a
 * wrapper around it (`[data-technique~="…"] :is(input, select,
 * textarea):user-invalid`).
 */
@media (prefers-reduced-motion: no-preference) {
  @keyframes lv-technique-validation-pulse {
    0% { box-shadow: 0 0 0 0 color-mix(in oklab, currentColor 28%, transparent); }
    55% { box-shadow: 0 0 0 5px color-mix(in oklab, currentColor 14%, transparent); }
    100% { box-shadow: 0 0 0 0 transparent; }
  }
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) :is(input, select, textarea):user-invalid,
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) :is(input, select, textarea):user-invalid,
  [data-lv-node-id][data-lvs-micro='medium'] :is(input, select, textarea):user-invalid,
  [data-lv-node-id][data-lvs-micro='high'] :is(input, select, textarea):user-invalid,
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.field-validation-pulse.v1"]:is(input, select, textarea):user-invalid,
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.field-validation-pulse.v1"]:is(input, select, textarea):user-invalid,
  [data-lv-node-id][data-lvs-micro='medium'] [data-technique~="technique.micro-interactions.field-validation-pulse.v1"]:is(input, select, textarea):user-invalid,
  [data-lv-node-id][data-lvs-micro='high'] [data-technique~="technique.micro-interactions.field-validation-pulse.v1"]:is(input, select, textarea):user-invalid,
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.field-validation-pulse.v1"] :is(input, select, textarea):user-invalid,
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.field-validation-pulse.v1"] :is(input, select, textarea):user-invalid,
  [data-lv-node-id][data-lvs-micro='medium'] [data-technique~="technique.micro-interactions.field-validation-pulse.v1"] :is(input, select, textarea):user-invalid,
  [data-lv-node-id][data-lvs-micro='high'] [data-technique~="technique.micro-interactions.field-validation-pulse.v1"] :is(input, select, textarea):user-invalid {
    animation: lv-technique-validation-pulse 480ms cubic-bezier(0.22, 1, 0.36, 1) 1;
  }
}
/* techniques/micro-interactions/icon-state-morph/technique.css · technique.micro-interactions.icon-state-morph.v1 */
/* technique.micro-interactions.icon-state-morph.v1 — micro ≥ medium.
 *
 * Icons living inside interactive elements answer hover/focus with a small
 * rotate+scale morph. Bound to the icon system's own drawing (`.lv-icon`,
 * inline `svg` in buttons/links), driven by the PARENT's state so the hit
 * target never changes. Universal marker: `[data-technique~="…"] :is(.lv-icon,
 * svg)` binds the icon inside a marked parent, with the same hover/focus
 * variant driven by the marked element's own state.
 */
@media (prefers-reduced-motion: no-preference) {
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) :is(a, button, .lv-btn) :is(.lv-icon, svg),
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) :is(a, button, .lv-btn) :is(.lv-icon, svg),
  [data-lv-node-id][data-lvs-micro='medium'] :is(a, button, .lv-btn) :is(.lv-icon, svg),
  [data-lv-node-id][data-lvs-micro='high'] :is(a, button, .lv-btn) :is(.lv-icon, svg),
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.icon-state-morph.v1"] :is(.lv-icon, svg),
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.icon-state-morph.v1"] :is(.lv-icon, svg),
  [data-lv-node-id][data-lvs-micro='medium'] [data-technique~="technique.micro-interactions.icon-state-morph.v1"] :is(.lv-icon, svg),
  [data-lv-node-id][data-lvs-micro='high'] [data-technique~="technique.micro-interactions.icon-state-morph.v1"] :is(.lv-icon, svg) {
    transition: rotate var(--lv-dur-fast, 160ms) var(--lv-ease, ease-out), scale var(--lv-dur-fast, 160ms) var(--lv-ease, ease-out);
  }
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) :is(a, button, .lv-btn):is(:hover, :focus-visible) :is(.lv-icon, svg),
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) :is(a, button, .lv-btn):is(:hover, :focus-visible) :is(.lv-icon, svg),
  [data-lv-node-id][data-lvs-micro='medium'] :is(a, button, .lv-btn):is(:hover, :focus-visible) :is(.lv-icon, svg),
  [data-lv-node-id][data-lvs-micro='high'] :is(a, button, .lv-btn):is(:hover, :focus-visible) :is(.lv-icon, svg),
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.icon-state-morph.v1"]:is(:hover, :focus-visible) :is(.lv-icon, svg),
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.icon-state-morph.v1"]:is(:hover, :focus-visible) :is(.lv-icon, svg),
  [data-lv-node-id][data-lvs-micro='medium'] [data-technique~="technique.micro-interactions.icon-state-morph.v1"]:is(:hover, :focus-visible) :is(.lv-icon, svg),
  [data-lv-node-id][data-lvs-micro='high'] [data-technique~="technique.micro-interactions.icon-state-morph.v1"]:is(:hover, :focus-visible) :is(.lv-icon, svg) {
    rotate: -4deg;
    scale: 1.12;
  }
}
/* techniques/micro-interactions/link-underline-draw/technique.css · technique.micro-interactions.link-underline-draw.v1 */
/* technique.micro-interactions.link-underline-draw.v1 — micro ≥ low.
 *
 * Content links draw their underline left-to-right on hover/focus. Scoped to
 * prose/list links inside a section shell; never navigation chrome, never
 * buttons (`.lv-btn` opts out by not being an underlined link). Uses
 * background-size so the resting state keeps the theme's own underline
 * decision untouched — the draw only ADDS the animated bar. Universal
 * marker: the marked element behaves exactly like the paragraph link.
 */
@media (prefers-reduced-motion: no-preference) {
  body[data-lvs-micro='low'] [data-lv-node-id]:not([data-lvs-micro]) :is(p, li, dd, figcaption) a:not(.lv-btn),
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) :is(p, li, dd, figcaption) a:not(.lv-btn),
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) :is(p, li, dd, figcaption) a:not(.lv-btn),
  [data-lv-node-id][data-lvs-micro='low'] :is(p, li, dd, figcaption) a:not(.lv-btn),
  [data-lv-node-id][data-lvs-micro='medium'] :is(p, li, dd, figcaption) a:not(.lv-btn),
  [data-lv-node-id][data-lvs-micro='high'] :is(p, li, dd, figcaption) a:not(.lv-btn),
  body[data-lvs-micro='low'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.link-underline-draw.v1"],
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.link-underline-draw.v1"],
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.link-underline-draw.v1"],
  [data-lv-node-id][data-lvs-micro='low'] [data-technique~="technique.micro-interactions.link-underline-draw.v1"],
  [data-lv-node-id][data-lvs-micro='medium'] [data-technique~="technique.micro-interactions.link-underline-draw.v1"],
  [data-lv-node-id][data-lvs-micro='high'] [data-technique~="technique.micro-interactions.link-underline-draw.v1"] {
    background-image: linear-gradient(currentColor, currentColor);
    background-repeat: no-repeat;
    background-position: 0 100%;
    background-size: 0% 1.5px;
    transition: background-size 240ms cubic-bezier(0.22, 1, 0.36, 1);
  }
  body[data-lvs-micro='low'] [data-lv-node-id]:not([data-lvs-micro]) :is(p, li, dd, figcaption) a:not(.lv-btn):is(:hover, :focus-visible),
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) :is(p, li, dd, figcaption) a:not(.lv-btn):is(:hover, :focus-visible),
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) :is(p, li, dd, figcaption) a:not(.lv-btn):is(:hover, :focus-visible),
  [data-lv-node-id][data-lvs-micro='low'] :is(p, li, dd, figcaption) a:not(.lv-btn):is(:hover, :focus-visible),
  [data-lv-node-id][data-lvs-micro='medium'] :is(p, li, dd, figcaption) a:not(.lv-btn):is(:hover, :focus-visible),
  [data-lv-node-id][data-lvs-micro='high'] :is(p, li, dd, figcaption) a:not(.lv-btn):is(:hover, :focus-visible),
  body[data-lvs-micro='low'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.link-underline-draw.v1"]:is(:hover, :focus-visible),
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.link-underline-draw.v1"]:is(:hover, :focus-visible),
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.link-underline-draw.v1"]:is(:hover, :focus-visible),
  [data-lv-node-id][data-lvs-micro='low'] [data-technique~="technique.micro-interactions.link-underline-draw.v1"]:is(:hover, :focus-visible),
  [data-lv-node-id][data-lvs-micro='medium'] [data-technique~="technique.micro-interactions.link-underline-draw.v1"]:is(:hover, :focus-visible),
  [data-lv-node-id][data-lvs-micro='high'] [data-technique~="technique.micro-interactions.link-underline-draw.v1"]:is(:hover, :focus-visible) {
    background-size: 100% 1.5px;
  }
}
/* techniques/micro-interactions/svg-line-draw/technique.css · technique.micro-interactions.svg-line-draw.v1 */
/* technique.micro-interactions.svg-line-draw.v1 — micro ≥ high.
 *
 * Marked SVG strokes draw themselves as they scroll into view. Opt-in by
 * marker (`data-draw` on the svg or a parent): a generic selector over every
 * path would redraw icons and logos, which is exactly the noise the level
 * gate exists to refuse. pathLength=1 normalises the dash space so ONE rule
 * serves every drawing; authors set `pathLength="1"` on the marked path —
 * the annotation-card element and the skill pack both already do. Universal
 * marker: `data-technique~="…svg-line-draw.v1"` on the svg or a wrapper
 * binds the same paths — `pathLength="1"` is still required on every marked
 * path.
 */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    @keyframes lv-technique-line-draw {
      from { stroke-dashoffset: 1; }
      to { stroke-dashoffset: 0; }
    }
    body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) :is([data-draw], [data-draw] svg) path[pathLength],
    [data-lv-node-id][data-lvs-micro='high'] :is([data-draw], [data-draw] svg) path[pathLength],
    body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.svg-line-draw.v1"] path[pathLength],
    body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.svg-line-draw.v1"] svg path[pathLength],
    [data-lv-node-id][data-lvs-micro='high'] [data-technique~="technique.micro-interactions.svg-line-draw.v1"] path[pathLength],
    [data-lv-node-id][data-lvs-micro='high'] [data-technique~="technique.micro-interactions.svg-line-draw.v1"] svg path[pathLength] {
      stroke-dasharray: 1;
      animation: lv-technique-line-draw 1 both ease-out;
      animation-timeline: view();
      animation-range: entry 20% entry 90%;
    }
  }
}
/* techniques/micro-interactions/toast-slide-settle/technique.css · technique.micro-interactions.toast-slide-settle.v1 */
/* technique.micro-interactions.toast-slide-settle.v1 — micro ≥ low.
 *
 * Success/receipt notices slide in and settle instead of popping. Binds the
 * platform's own success surfaces: the `:target` success blocks the form
 * components render (`.lv-form-success` family) and any element opting in
 * with `data-toast`. Entrance only — dismissal stays instant, a notice must
 * never resist being cleared. Universal marker:
 * `[data-technique~="…"]:target` and `[data-technique~="…"][data-shown]`
 * bind the same entrance to any marked element.
 */
@media (prefers-reduced-motion: no-preference) {
  @keyframes lv-technique-toast-settle {
    0% { opacity: 0; translate: 0 10px; }
    70% { opacity: 1; translate: 0 -2px; }
    100% { opacity: 1; translate: 0 0; }
  }
  body[data-lvs-micro='low'] [data-lv-node-id]:not([data-lvs-micro]) :is([class*='__success'], [data-toast]):target,
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) :is([class*='__success'], [data-toast]):target,
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) :is([class*='__success'], [data-toast]):target,
  [data-lv-node-id][data-lvs-micro='low'] :is([class*='__success'], [data-toast]):target,
  [data-lv-node-id][data-lvs-micro='medium'] :is([class*='__success'], [data-toast]):target,
  [data-lv-node-id][data-lvs-micro='high'] :is([class*='__success'], [data-toast]):target,
  body[data-lvs-micro='low'] [data-lv-node-id]:not([data-lvs-micro]) [data-toast][data-shown],
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) [data-toast][data-shown],
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) [data-toast][data-shown],
  [data-lv-node-id][data-lvs-micro='low'] [data-toast][data-shown],
  [data-lv-node-id][data-lvs-micro='medium'] [data-toast][data-shown],
  [data-lv-node-id][data-lvs-micro='high'] [data-toast][data-shown],
  body[data-lvs-micro='low'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.toast-slide-settle.v1"]:target,
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.toast-slide-settle.v1"]:target,
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.toast-slide-settle.v1"]:target,
  [data-lv-node-id][data-lvs-micro='low'] [data-technique~="technique.micro-interactions.toast-slide-settle.v1"]:target,
  [data-lv-node-id][data-lvs-micro='medium'] [data-technique~="technique.micro-interactions.toast-slide-settle.v1"]:target,
  [data-lv-node-id][data-lvs-micro='high'] [data-technique~="technique.micro-interactions.toast-slide-settle.v1"]:target,
  body[data-lvs-micro='low'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.toast-slide-settle.v1"][data-shown],
  body[data-lvs-micro='medium'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.toast-slide-settle.v1"][data-shown],
  body[data-lvs-micro='high'] [data-lv-node-id]:not([data-lvs-micro]) [data-technique~="technique.micro-interactions.toast-slide-settle.v1"][data-shown],
  [data-lv-node-id][data-lvs-micro='low'] [data-technique~="technique.micro-interactions.toast-slide-settle.v1"][data-shown],
  [data-lv-node-id][data-lvs-micro='medium'] [data-technique~="technique.micro-interactions.toast-slide-settle.v1"][data-shown],
  [data-lv-node-id][data-lvs-micro='high'] [data-technique~="technique.micro-interactions.toast-slide-settle.v1"][data-shown] {
    animation: lv-technique-toast-settle 360ms cubic-bezier(0.22, 1, 0.36, 1) 1;
  }
}
/* techniques/motion-effects/focus-linked-reveal/technique.css · technique.motion-effects.focus-linked-reveal.v1 */
/* technique.motion-effects.focus-linked-reveal.v1 — motion ≥ medium.
 *
 * In a group of peers (cards, steps, people), the one under the pointer or
 * holding focus steps forward and its siblings step a nøk back. `:has()` on
 * the section shell keeps this zero-JS; ancestors without :has() simply keep
 * the flat state. Opacity floor stays high — recede, never hide. Universal
 * marker: the marker denotes the GROUP itself — `[data-technique~="…"] > *`
 * get the transition, `[data-technique~="…"]:has(> :hover) > :not(:hover)`
 * dims its non-hovered direct children, and `[data-technique~="…"] > :hover`
 * steps the hovered child forward.
 */
@media (prefers-reduced-motion: no-preference) {
  body[data-lvs-motion='medium'] [data-lv-node-id]:not([data-lvs-motion]) :is(.lv-card, [data-selectable]),
  body[data-lvs-motion='high'] [data-lv-node-id]:not([data-lvs-motion]) :is(.lv-card, [data-selectable]),
  [data-lv-node-id][data-lvs-motion='medium'] :is(.lv-card, [data-selectable]),
  [data-lv-node-id][data-lvs-motion='high'] :is(.lv-card, [data-selectable]),
  body[data-lvs-motion='medium'] [data-lv-node-id]:not([data-lvs-motion]) [data-technique~="technique.motion-effects.focus-linked-reveal.v1"] > *,
  body[data-lvs-motion='high'] [data-lv-node-id]:not([data-lvs-motion]) [data-technique~="technique.motion-effects.focus-linked-reveal.v1"] > *,
  [data-lv-node-id][data-lvs-motion='medium'] [data-technique~="technique.motion-effects.focus-linked-reveal.v1"] > *,
  [data-lv-node-id][data-lvs-motion='high'] [data-technique~="technique.motion-effects.focus-linked-reveal.v1"] > * {
    transition: opacity var(--lv-dur-state, 200ms) var(--lv-ease, ease), scale var(--lv-dur-state, 200ms) var(--lv-ease, ease);
  }
  body[data-lvs-motion='medium'] [data-lv-node-id]:not([data-lvs-motion]):has(:is(.lv-card, [data-selectable]):hover) :is(.lv-card, [data-selectable]):not(:hover),
  body[data-lvs-motion='high'] [data-lv-node-id]:not([data-lvs-motion]):has(:is(.lv-card, [data-selectable]):hover) :is(.lv-card, [data-selectable]):not(:hover),
  [data-lv-node-id][data-lvs-motion='medium']:has(:is(.lv-card, [data-selectable]):hover) :is(.lv-card, [data-selectable]):not(:hover),
  [data-lv-node-id][data-lvs-motion='high']:has(:is(.lv-card, [data-selectable]):hover) :is(.lv-card, [data-selectable]):not(:hover),
  body[data-lvs-motion='medium'] [data-lv-node-id]:not([data-lvs-motion]) [data-technique~="technique.motion-effects.focus-linked-reveal.v1"]:has(> :hover) > :not(:hover),
  body[data-lvs-motion='high'] [data-lv-node-id]:not([data-lvs-motion]) [data-technique~="technique.motion-effects.focus-linked-reveal.v1"]:has(> :hover) > :not(:hover),
  [data-lv-node-id][data-lvs-motion='medium'] [data-technique~="technique.motion-effects.focus-linked-reveal.v1"]:has(> :hover) > :not(:hover),
  [data-lv-node-id][data-lvs-motion='high'] [data-technique~="technique.motion-effects.focus-linked-reveal.v1"]:has(> :hover) > :not(:hover) {
    opacity: 0.72;
    scale: 0.99;
  }
  body[data-lvs-motion='medium'] [data-lv-node-id]:not([data-lvs-motion]) :is(.lv-card, [data-selectable]):hover,
  body[data-lvs-motion='high'] [data-lv-node-id]:not([data-lvs-motion]) :is(.lv-card, [data-selectable]):hover,
  [data-lv-node-id][data-lvs-motion='medium'] :is(.lv-card, [data-selectable]):hover,
  [data-lv-node-id][data-lvs-motion='high'] :is(.lv-card, [data-selectable]):hover,
  body[data-lvs-motion='medium'] [data-lv-node-id]:not([data-lvs-motion]) [data-technique~="technique.motion-effects.focus-linked-reveal.v1"] > :hover,
  body[data-lvs-motion='high'] [data-lv-node-id]:not([data-lvs-motion]) [data-technique~="technique.motion-effects.focus-linked-reveal.v1"] > :hover,
  [data-lv-node-id][data-lvs-motion='medium'] [data-technique~="technique.motion-effects.focus-linked-reveal.v1"] > :hover,
  [data-lv-node-id][data-lvs-motion='high'] [data-technique~="technique.motion-effects.focus-linked-reveal.v1"] > :hover {
    scale: 1.01;
  }
}
/* techniques/motion-effects/sectional-crossfade/technique.css · technique.motion-effects.sectional-crossfade.v1 */
/* technique.motion-effects.sectional-crossfade.v1 — motion ≥ low.
 *
 * Section grounds ease into one another instead of switching hard: the shell
 * transitions its background/border when tones change under interaction
 * (theme swaps, band hovers, dark-mode flips). Pure transition — nothing
 * animates on load, nothing scroll-linked, so it is honest at `low`.
 *
 * Section-shell technique: no `data-technique` marker form — it refines
 * the shell's own crossfade mechanism, not a component or tenant target.
 */
@media (prefers-reduced-motion: no-preference) {
  body[data-lvs-motion='low'] [data-lv-node-id]:not([data-lvs-motion]),
  body[data-lvs-motion='medium'] [data-lv-node-id]:not([data-lvs-motion]),
  body[data-lvs-motion='high'] [data-lv-node-id]:not([data-lvs-motion]),
  [data-lv-node-id][data-lvs-motion='low'],
  [data-lv-node-id][data-lvs-motion='medium'],
  [data-lv-node-id][data-lvs-motion='high'] {
    transition:
      background-color var(--lv-dur-panel, 320ms) var(--lv-ease, ease),
      border-color var(--lv-dur-panel, 320ms) var(--lv-ease, ease);
  }
}
/* techniques/motion-effects/settle-on-entry/technique.css · technique.motion-effects.settle-on-entry.v1 */
/* technique.motion-effects.settle-on-entry.v1 — motion ≥ low.
 *
 * The existing reveal choreography (`.lvt-reveal` + REVEAL_JS, themes/src/
 * chrome.mjs) gets a softer landing: slightly longer travel and an
 * ease-out-back curve so a section SETTLES rather than merely arriving. This
 * refines the transition the theme already declares — same properties, same
 * `[data-shown]` contract, no new mechanism — which is what makes `low` the
 * honest byte-for-byte continuation of today's default.
 *
 * Section-shell technique: no `data-technique` marker form — it refines
 * the shell's own reveal mechanism, not a component or tenant target.
 */
@media (prefers-reduced-motion: no-preference) {
  body[data-lvs-motion='low'] [data-lv-node-id]:not([data-lvs-motion]) .lvt-reveal,
  body[data-lvs-motion='medium'] [data-lv-node-id]:not([data-lvs-motion]) .lvt-reveal,
  body[data-lvs-motion='high'] [data-lv-node-id]:not([data-lvs-motion]) .lvt-reveal,
  [data-lv-node-id][data-lvs-motion='low'] .lvt-reveal,
  [data-lv-node-id][data-lvs-motion='medium'] .lvt-reveal,
  [data-lv-node-id][data-lvs-motion='high'] .lvt-reveal {
    --lv-reveal-distance: 22px;
    transition-timing-function: cubic-bezier(0.22, 1.18, 0.36, 1);
  }
}
/* techniques/react-effects/press-depress/technique.css · technique.react-effects.press-depress.v1 */
/* technique.react-effects.press-depress.v1 — react ≥ low.
 *
 * Every interactive control gives under the pointer and springs back on
 * release — the difference between a dead click and a physical one. Scale,
 * not translate, so it composes with micro-interactions' hover lift (which
 * owns translate); transform-origin center keeps labels steady. Universal
 * marker: the marked element behaves exactly like `.lv-btn`.
 */
@media (prefers-reduced-motion: no-preference) {
  body[data-lvs-react='low'] [data-lv-node-id]:not([data-lvs-react]) :is(.lv-btn, button, [role='button'], summary),
  body[data-lvs-react='medium'] [data-lv-node-id]:not([data-lvs-react]) :is(.lv-btn, button, [role='button'], summary),
  body[data-lvs-react='high'] [data-lv-node-id]:not([data-lvs-react]) :is(.lv-btn, button, [role='button'], summary),
  [data-lv-node-id][data-lvs-react='low'] :is(.lv-btn, button, [role='button'], summary),
  [data-lv-node-id][data-lvs-react='medium'] :is(.lv-btn, button, [role='button'], summary),
  [data-lv-node-id][data-lvs-react='high'] :is(.lv-btn, button, [role='button'], summary),
  body[data-lvs-react='low'] [data-lv-node-id]:not([data-lvs-react]) [data-technique~="technique.react-effects.press-depress.v1"],
  body[data-lvs-react='medium'] [data-lv-node-id]:not([data-lvs-react]) [data-technique~="technique.react-effects.press-depress.v1"],
  body[data-lvs-react='high'] [data-lv-node-id]:not([data-lvs-react]) [data-technique~="technique.react-effects.press-depress.v1"],
  [data-lv-node-id][data-lvs-react='low'] [data-technique~="technique.react-effects.press-depress.v1"],
  [data-lv-node-id][data-lvs-react='medium'] [data-technique~="technique.react-effects.press-depress.v1"],
  [data-lv-node-id][data-lvs-react='high'] [data-technique~="technique.react-effects.press-depress.v1"] {
    transition: scale var(--lv-dur-fast, 140ms) var(--lv-ease, ease-out);
  }
  body[data-lvs-react='low'] [data-lv-node-id]:not([data-lvs-react]) :is(.lv-btn, button, [role='button'], summary):active,
  body[data-lvs-react='medium'] [data-lv-node-id]:not([data-lvs-react]) :is(.lv-btn, button, [role='button'], summary):active,
  body[data-lvs-react='high'] [data-lv-node-id]:not([data-lvs-react]) :is(.lv-btn, button, [role='button'], summary):active,
  [data-lv-node-id][data-lvs-react='low'] :is(.lv-btn, button, [role='button'], summary):active,
  [data-lv-node-id][data-lvs-react='medium'] :is(.lv-btn, button, [role='button'], summary):active,
  [data-lv-node-id][data-lvs-react='high'] :is(.lv-btn, button, [role='button'], summary):active,
  body[data-lvs-react='low'] [data-lv-node-id]:not([data-lvs-react]) [data-technique~="technique.react-effects.press-depress.v1"]:active,
  body[data-lvs-react='medium'] [data-lv-node-id]:not([data-lvs-react]) [data-technique~="technique.react-effects.press-depress.v1"]:active,
  body[data-lvs-react='high'] [data-lv-node-id]:not([data-lvs-react]) [data-technique~="technique.react-effects.press-depress.v1"]:active,
  [data-lv-node-id][data-lvs-react='low'] [data-technique~="technique.react-effects.press-depress.v1"]:active,
  [data-lv-node-id][data-lvs-react='medium'] [data-technique~="technique.react-effects.press-depress.v1"]:active,
  [data-lv-node-id][data-lvs-react='high'] [data-technique~="technique.react-effects.press-depress.v1"]:active {
    scale: 0.97;
  }
}
/* techniques/react-effects/spring-settle/technique.css · technique.react-effects.spring-settle.v1 */
/* technique.react-effects.spring-settle.v1 — react ≥ medium.
 *
 * Interactive elements settle with a real spring curve — a pregenerated
 * `linear()` easing (the platform's sanctioned spring: the vendored Motion
 * subset's mini animate() refuses type:"spring", and this needs no library at
 * all). The curve below is a damped spring (stiffness 220, damping 18, mass
 * 1) sampled at 16 points; browsers without `linear()` fall back to the
 * theme's own easing via the transition shorthand's var() fallback.
 *
 * Applies to the same targets the press/lift techniques prime, widening the
 * return journey: releases and hover-exits travel on the spring, so the
 * element "lands" rather than merely stopping. Universal marker: the marked
 * element behaves exactly like `.lv-btn`/`.lv-card`.
 */
@media (prefers-reduced-motion: no-preference) {
  body[data-lvs-react='medium'] [data-lv-node-id]:not([data-lvs-react]) :is(.lv-btn, button, [role='button'], summary, .lv-card, [data-selectable]),
  body[data-lvs-react='high'] [data-lv-node-id]:not([data-lvs-react]) :is(.lv-btn, button, [role='button'], summary, .lv-card, [data-selectable]),
  [data-lv-node-id][data-lvs-react='medium'] :is(.lv-btn, button, [role='button'], summary, .lv-card, [data-selectable]),
  [data-lv-node-id][data-lvs-react='high'] :is(.lv-btn, button, [role='button'], summary, .lv-card, [data-selectable]),
  body[data-lvs-react='medium'] [data-lv-node-id]:not([data-lvs-react]) [data-technique~="technique.react-effects.spring-settle.v1"],
  body[data-lvs-react='high'] [data-lv-node-id]:not([data-lvs-react]) [data-technique~="technique.react-effects.spring-settle.v1"],
  [data-lv-node-id][data-lvs-react='medium'] [data-technique~="technique.react-effects.spring-settle.v1"],
  [data-lv-node-id][data-lvs-react='high'] [data-technique~="technique.react-effects.spring-settle.v1"] {
    transition-property: scale, translate, rotate, box-shadow;
    transition-duration: 420ms;
    transition-timing-function: linear(
      0, 0.0157, 0.0605, 0.1301, 0.2198, 0.3249, 0.4408, 0.5628,
      0.6863, 0.8069, 0.9203, 1.0227, 1.1108, 1.1818, 1.2333, 1
    );
  }
}

/* GENERATED by packages/themes — theme 'custom'. Edit themes/custom/theme.mjs, never this file. */
/* Skræddersyet — Skræddersyet tema bygget af det immersive designspor ud fra referencebilledet 43cc6fc9d729eb10a38f81c4: farverne er målt i billedets pixels, og formsproget — hjørner, typografi, rytme og motiv — er læst af i billedet selv. */

/* ── theme overrides ─────────────────────────────────────────────────── */
:root {
  --lv-accent: oklch(2.3% 0.1034 43.9);
  --lv-bad-surface: oklch(93% 0.0254 26);
  --lv-bad-text: oklch(46% 0.16 26);
  --lv-band-tone: var(--lv-ramp);
  --lv-brand: oklch(36.11% 0.0337 128.6);
  --lv-brand-soft: oklch(93% 0.0048 128.6);
  --lv-brand-strong: oklch(34% 0.0337 128.6);
  --lv-btn-halo: linear-gradient(100deg, var(--lv-ramp-terminal), var(--lv-brand), var(--lv-ramp-terminal));
  --lv-btn-halo-opacity: 0;
  --lv-btn-halo-opacity-hover: 0;
  --lv-btn-primary-shadow: 0 1px 0 0 var(--lv-line-control);
  --lv-btn-primary-shadow-hover: 0 1px 0 0 var(--lv-line-control);
  --lv-btn-primary-surface: var(--lv-ramp-terminal);
  --lv-btn-radius: var(--lv-radius-md);
  --lv-canvas: oklch(96.45% 0.0098 87.5);
  --lv-canvas-deep: oklch(92.95% 0.0098 87.5);
  --lv-canvas-wash-a: oklch(84% 0.0183 128.6);
  --lv-canvas-wash-alpha: 0.28;
  --lv-canvas-wash-b: oklch(80% 0.0245 162.6);
  --lv-canvas-wash-c: oklch(87% 0.0119 100.6);
  --lv-canvas-worst: #e9e8e0;
  --lv-container-max: 1160px;
  --lv-display-case: uppercase;
  --lv-display-family: 'Crimson Pro', ui-serif, Georgia, 'Times New Roman', Times, serif;
  --lv-display-tracking: -0.005em;
  --lv-display-variant: normal;
  --lv-eyebrow-ornament: none;
  --lv-eyebrow-tick-display: inline-block;
  --lv-eyebrow-tick-width: 1.5rem;
  --lv-focus-ring: oklch(50% 0.037 128.6);
  --lv-font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', 'Cascadia Mono', monospace;
  --lv-font-ui: 'Mulish', ui-sans-serif, system-ui, 'Segoe UI', sans-serif;
  --lv-foot-ink: var(--lv-text-primary);
  --lv-foot-tone: var(--lv-canvas);
  --lv-glass-tint: 255 255 255;
  --lv-glass-worst: #f5f5f1;
  --lv-gutter: clamp(20px, 5vw, 40px);
  --lv-hero-display: clamp(1.875rem, 3.347vw, 2.594rem);
  --lv-highlight: oklch(55.71% 0.0337 128.6);
  --lv-icon-quiet: oklch(57.8% 0.0101 74.1);
  --lv-leading-normal: 1.68;
  --lv-leading-snug: 1.44;
  --lv-leading-tight: 1.14;
  --lv-lift-1: 0 1px 2px rgb(var(--lv-shadow-tint) / 0.06), 0 1px 1px rgb(var(--lv-shadow-tint) / 0.04);
  --lv-lift-2: 0 6px 18px -6px rgb(var(--lv-shadow-tint) / 0.16), 0 2px 6px rgb(var(--lv-shadow-tint) / 0.06);
  --lv-lift-3: 0 22px 48px -18px rgb(var(--lv-shadow-tint) / 0.28), 0 6px 14px rgb(var(--lv-shadow-tint) / 0.08);
  --lv-line: oklch(91.3% 0.0078 74.1);
  --lv-line-control: oklch(59.8% 0.0094 74.1);
  --lv-line-strong: oklch(82.8% 0.0086 74.1);
  --lv-nav-height: 68px;
  --lv-nav-ink: var(--lv-text-primary);
  --lv-nav-tone: transparent;
  --lv-ok-surface: oklch(93% 0.0159 168);
  --lv-ok-text: oklch(46% 0.1 168);
  --lv-ornament-ink: var(--lv-brand);
  --lv-ornament-size: 18px;
  --lv-radius-lg: 9px;
  --lv-radius-md: 6px;
  --lv-radius-pill: 999px;
  --lv-radius-sm: 4px;
  --lv-radius-xl: 12px;
  --lv-ramp: linear-gradient(135deg, var(--lv-brand-strong) 0%, var(--lv-ramp-terminal) 100%);
  --lv-ramp-terminal: oklch(48% 0.0337 154.6);
  --lv-reveal-distance: 12px;
  --lv-reveal-stagger: 40ms;
  --lv-section-pause: 144px;
  --lv-section-py: 64px;
  --lv-section-py-lg: 96px;
  --lv-shadow-tint: 10 22 42;
  --lv-space-5: 24px;
  --lv-space-6: 32px;
  --lv-space-7: 48px;
  --lv-space-8: 64px;
  --lv-space-9: 96px;
  --lv-surface: oklch(99.8% 0.0001 74.1);
  --lv-surface-raised: oklch(99% 0.0007 74.1);
  --lv-surface-sunken: oklch(96.2% 0.0039 74.1);
  --lv-text-2xl: 2.0752rem;
  --lv-text-lg: 1.3281rem;
  --lv-text-link: oklch(36.11% 0.0337 128.6);
  --lv-text-on-brand: oklch(98.5% 0.008 101.6);
  --lv-text-primary: oklch(28% 0.0125 74.1);
  --lv-text-secondary: oklch(45% 0.0117 74.1);
  --lv-text-tertiary: oklch(51.8% 0.0109 74.1);
  --lv-text-xl: 1.6602rem;
  --lv-tracking-eyebrow: 0.11em;
  --lv-tracking-heading: -0.005em;
  --lv-warn-surface: oklch(93% 0.0206 62);
  --lv-warn-text: oklch(46% 0.1262 62);
  --lv-weight-heading: 400;
}

:root[data-theme='dark'] {
  --lv-accent: oklch(72% 0.1034 43.9);
  --lv-bad-surface: oklch(34% 0.08 26);
  --lv-bad-text: oklch(82% 0.1034 26);
  --lv-band-tone: var(--lv-ramp);
  --lv-brand: oklch(72% 0.0337 128.6);
  --lv-brand-soft: oklch(26% 0.0151 128.6);
  --lv-brand-strong: oklch(53.6% 0.0337 128.6);
  --lv-btn-halo: linear-gradient(100deg, var(--lv-ramp-terminal), var(--lv-brand), var(--lv-ramp-terminal));
  --lv-btn-halo-opacity: 0;
  --lv-btn-halo-opacity-hover: 0;
  --lv-btn-primary-shadow: 0 1px 0 0 var(--lv-line-control);
  --lv-btn-primary-shadow-hover: 0 1px 0 0 var(--lv-line-control);
  --lv-btn-primary-surface: var(--lv-ramp-terminal);
  --lv-btn-radius: var(--lv-radius-md);
  --lv-canvas: oklch(16% 0.0179 74.1);
  --lv-canvas-deep: oklch(13% 0.0179 74.1);
  --lv-canvas-wash-a: oklch(42% 0.0252 128.6);
  --lv-canvas-wash-alpha: 0.16;
  --lv-canvas-wash-b: oklch(38% 0.0269 162.6);
  --lv-canvas-wash-c: oklch(45% 0.0202 100.6);
  --lv-canvas-worst: #1b170f;
  --lv-container-max: 1160px;
  --lv-display-case: uppercase;
  --lv-display-family: 'Crimson Pro', ui-serif, Georgia, 'Times New Roman', Times, serif;
  --lv-display-tracking: -0.005em;
  --lv-display-variant: normal;
  --lv-eyebrow-ornament: none;
  --lv-eyebrow-tick-display: inline-block;
  --lv-eyebrow-tick-width: 1.5rem;
  --lv-focus-ring: oklch(78% 0.037 128.6);
  --lv-font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', 'Cascadia Mono', monospace;
  --lv-font-ui: 'Mulish', ui-sans-serif, system-ui, 'Segoe UI', sans-serif;
  --lv-foot-ink: var(--lv-text-primary);
  --lv-foot-tone: var(--lv-canvas);
  --lv-glass-tint: 18 26 38;
  --lv-glass-worst: #1a1711;
  --lv-gutter: clamp(20px, 5vw, 40px);
  --lv-hero-display: clamp(1.875rem, 3.347vw, 2.594rem);
  --lv-highlight: oklch(26% 0.0151 128.6);
  --lv-icon-quiet: oklch(66% 0.0232 74.1);
  --lv-leading-normal: 1.68;
  --lv-leading-snug: 1.44;
  --lv-leading-tight: 1.14;
  --lv-lift-1: 0 1px 2px rgb(var(--lv-shadow-tint) / 0.06), 0 1px 1px rgb(var(--lv-shadow-tint) / 0.04);
  --lv-lift-2: 0 6px 18px -6px rgb(var(--lv-shadow-tint) / 0.16), 0 2px 6px rgb(var(--lv-shadow-tint) / 0.06);
  --lv-lift-3: 0 22px 48px -18px rgb(var(--lv-shadow-tint) / 0.28), 0 6px 14px rgb(var(--lv-shadow-tint) / 0.08);
  --lv-line: oklch(30.5% 0.0179 74.1);
  --lv-line-control: oklch(62% 0.0215 74.1);
  --lv-line-strong: oklch(39% 0.0197 74.1);
  --lv-nav-height: 68px;
  --lv-nav-ink: var(--lv-text-primary);
  --lv-nav-tone: transparent;
  --lv-ok-surface: oklch(34% 0.05 168);
  --lv-ok-text: oklch(82% 0.0818 168);
  --lv-ornament-ink: var(--lv-brand);
  --lv-ornament-size: 18px;
  --lv-radius-lg: 9px;
  --lv-radius-md: 6px;
  --lv-radius-pill: 999px;
  --lv-radius-sm: 4px;
  --lv-radius-xl: 12px;
  --lv-ramp: linear-gradient(135deg, var(--lv-brand-strong) 0%, var(--lv-ramp-terminal) 100%);
  --lv-ramp-terminal: oklch(48% 0.0337 154.6);
  --lv-reveal-distance: 12px;
  --lv-reveal-stagger: 40ms;
  --lv-section-pause: 144px;
  --lv-section-py: 64px;
  --lv-section-py-lg: 96px;
  --lv-shadow-tint: 4 8 14;
  --lv-space-5: 24px;
  --lv-space-6: 32px;
  --lv-space-7: 48px;
  --lv-space-8: 64px;
  --lv-space-9: 96px;
  --lv-surface: oklch(22% 0.0098 74.1);
  --lv-surface-raised: oklch(26% 0.0107 74.1);
  --lv-surface-sunken: oklch(13% 0.0143 74.1);
  --lv-text-2xl: 2.0752rem;
  --lv-text-lg: 1.3281rem;
  --lv-text-link: oklch(72% 0.0337 128.6);
  --lv-text-on-brand: oklch(98.5% 0.008 101.6);
  --lv-text-primary: oklch(95% 0.0238 74.1);
  --lv-text-secondary: oklch(78% 0.0268 74.1);
  --lv-text-tertiary: oklch(70% 0.025 74.1);
  --lv-text-xl: 1.6602rem;
  --lv-tracking-eyebrow: 0.11em;
  --lv-tracking-heading: -0.005em;
  --lv-warn-surface: oklch(34% 0.065 62);
  --lv-warn-text: oklch(82% 0.1063 62);
  --lv-weight-heading: 400;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
  --lv-accent: oklch(72% 0.1034 43.9);
  --lv-bad-surface: oklch(34% 0.08 26);
  --lv-bad-text: oklch(82% 0.1034 26);
  --lv-brand: oklch(72% 0.0337 128.6);
  --lv-brand-soft: oklch(26% 0.0151 128.6);
  --lv-brand-strong: oklch(53.6% 0.0337 128.6);
  --lv-canvas: oklch(16% 0.0179 74.1);
  --lv-canvas-deep: oklch(13% 0.0179 74.1);
  --lv-canvas-wash-a: oklch(42% 0.0252 128.6);
  --lv-canvas-wash-alpha: 0.16;
  --lv-canvas-wash-b: oklch(38% 0.0269 162.6);
  --lv-canvas-wash-c: oklch(45% 0.0202 100.6);
  --lv-canvas-worst: #1b170f;
  --lv-focus-ring: oklch(78% 0.037 128.6);
  --lv-glass-tint: 18 26 38;
  --lv-glass-worst: #1a1711;
  --lv-highlight: oklch(26% 0.0151 128.6);
  --lv-icon-quiet: oklch(66% 0.0232 74.1);
  --lv-line: oklch(30.5% 0.0179 74.1);
  --lv-line-control: oklch(62% 0.0215 74.1);
  --lv-line-strong: oklch(39% 0.0197 74.1);
  --lv-ok-surface: oklch(34% 0.05 168);
  --lv-ok-text: oklch(82% 0.0818 168);
  --lv-shadow-tint: 4 8 14;
  --lv-surface: oklch(22% 0.0098 74.1);
  --lv-surface-raised: oklch(26% 0.0107 74.1);
  --lv-surface-sunken: oklch(13% 0.0143 74.1);
  --lv-text-link: oklch(72% 0.0337 128.6);
  --lv-text-primary: oklch(95% 0.0238 74.1);
  --lv-text-secondary: oklch(78% 0.0268 74.1);
  --lv-text-tertiary: oklch(70% 0.025 74.1);
  --lv-warn-surface: oklch(34% 0.065 62);
  --lv-warn-text: oklch(82% 0.1063 62);
}
}


.lvt-page {
  min-block-size: 100dvh;
  display: flex;
  flex-direction: column;
  background: var(--lv-canvas);
  color: var(--lv-text-primary);
  font: var(--lv-weight-regular) var(--lv-text-md) / var(--lv-leading-normal) var(--lv-font-ui);
}

.lvt-main { flex: 1 1 auto; }

/* ── The display face, actually on the page ───────────────────────────────
   type.displayStack resolves to --lv-display-family in scales.mjs, and until
   now exactly two rules read it: .lvt-nav__brand and .lvt-foot__brand.
   Everything else on a public page fell through to components.css's
   'h1, h2, h3, h4 { font-family: var(--lv-font-ui) }', so
   getComputedStyle(h1).fontFamily measured FIGTREE ON ALL SIXTEEN THEMES —
   serif, condensed and mono changed a wordmark and nothing else. A theme axis
   that reaches two words of chrome is not an axis.

   This is the theme plane's business and not the component plane's: an
   element selector inside .lvt-page sets what headings are MADE of, while
   every heading's class, size, colour and placement stays where the registry
   put it. No component rule is overridden by name — see check/index.mjs's
   theme-selector-out-of-namespace, which is what stops this becoming
   art/direction.css.

   --lv-display-case is deliberately NOT applied here. It carries the
   EYEBROW's transform (scales.mjs EYEBROW), and uppercasing every h2 on saas
   or lowercasing every h2 on atelier is a different decision from the one a
   theme made when it chose an eyebrow case. */
.lvt-page :where(h1, h2, h3, h4) {
  font-family: var(--lv-display-family);
}

/* --lv-hero-display is NOT applied here.
   It was, while packages/registry was held by another task and the only way to
   reach a heading's size was from this plane. The size of a component's own
   title is the component's business, and open.pitch's pitch.astro now reads
   --lv-hero-display directly — so a rule here would be a second authority for
   one number, which is the thing this whole package exists to prevent. The
   theme supplies the VALUE; the component decides that it wants it. */

/* A keyboard user's first Tab lands here. Off-screen until focused — never
   display:none, because a hidden skip link is not a skip link. */
.lvt-skip {
  position: absolute;
  inset-inline-start: var(--lv-space-2);
  inset-block-start: -4rem;
  z-index: var(--lv-z-overlay);
  padding: var(--lv-space-2) var(--lv-space-4);
  border-radius: 0 0 var(--lv-radius-sm) var(--lv-radius-sm);
  background: var(--lv-brand-strong);
  color: var(--lv-text-on-brand);
  font-weight: var(--lv-weight-semibold);
  text-decoration: none;
}
.lvt-skip:focus-visible { inset-block-start: 0; }

:where(.lvt-page) :where(a, button, summary, [tabindex]):focus-visible {
  outline: var(--lv-focus-width, 2px) solid var(--lv-focus-ring);
  outline-offset: var(--lv-focus-offset, 2px);
  border-radius: var(--lv-radius-sm);
}

/* ── The block shell — the seam between the theme and the registry ───────── */

.lvt-shell {
  padding-block: var(--lv-section-py);
  padding-inline: var(--lv-gutter);
}

.lvt-shell > * { max-inline-size: var(--lv-container-max); margin-inline: auto; }

/* ── ONE SEAM BUDGET (Phase 3, 2026-08-18) ────────────────────────────────
   Until now an ordinary seam between two placed sections cost TWO vertical
   budgets: this shell's --lv-section-py AND .lv-sec's own --lv-space-8,
   stacked — measured at 176-404px between content boundaries across the
   sixteen themes (fixtures/section-rhythm-page.json). The shell is the SOLE
   owner of between-section rhythm on a public page, so a direct child
   surrenders its own: the same G20 seam variables the group/split collapse
   already crosses the plane boundary with (--lv-sec-pad-start/-end,
   consumed by packages/registry/styles/section.css with its own value as
   fallback — never a selector naming .lv-sec from this plane).

   :where() holds this at (0,1,0) so the group/split re-points below — equal
   specificity, later in this sheet — still win on their own wrappers, and
   the member rhythm they declare is unchanged.

   [data-lv-bleed] is excluded: a section whose background is the media
   carries its OWN vertical rhythm by contract (see the media-background
   block below — the shell hands it padding: 0), so zeroing its seam vars
   would leave a hero's copy touching the glass. Outside any shell — an
   isolated component preview, a bare fixture — neither variable is set and
   .lv-sec keeps its full standalone breathing room. */
.lvt-shell > :where(:not([data-lv-bleed])) {
  --lv-sec-pad-start: 0px;
  --lv-sec-pad-end: 0px;
}

/* ── Section treatment — see contract.mjs SECTION_TONES ──────────────────
   --loose, --sunken and --band were written in Wave 2 and nothing ever
   emitted one: shellFor() in the renderer only ever asked about glass, so
   sixteen themes shipped one flat stack of identical bands. These are the
   rooms a section can be put in, and they are the whole answer to LPH's
   58,400 lines of per-theme section components. */
.lvt-shell--loose { padding-block: var(--lv-section-py-lg); }
.lvt-shell--tight { padding-block: calc(var(--lv-section-py) * 0.5); }
/* A NARRATIVE PAUSE — declared, never accidental. --lv-section-pause
   (scales.mjs rhythmVars: one and a half loose budgets, so it clears every
   ordinary seam by construction) is granted only when a placement says
   _pause: true (apps/site-renderer/composition.mjs) — a route/composition
   decision, the same reserved-key contract as _tone. Placed after --loose
   and --tight so an equal-specificity treatment rhythm loses the tie: a
   declared pause outranks the theme's per-intent air. */
.lvt-shell--pause { padding-block: var(--lv-section-pause, var(--lv-section-py-lg)); }
.lvt-shell--sunken { background: var(--lv-surface-sunken); }
.lvt-shell--raised { background: var(--lv-surface); }

/* Full bleed: the section keeps its vertical rhythm and gives up the work
   column. It is the only treatment that changes the page's geometry rather
   than its colour, which is why it is budgeted alongside the band. */
.lvt-shell--bleed { padding-inline: 0; }
.lvt-shell--bleed > * { max-inline-size: none; }

/* ── A section whose BACKGROUND is the media ──────────────────────────────
   open.pitch with a photograph, act.commit with one, and every
   open.atmosphere scene paint an inset:0 layer across the whole section box.
   That box is the one THIS SHELL hands them, and until now it was the work
   column — padding: var(--lv-section-py) var(--lv-gutter) plus the
   --lv-container-max cap on the child. So the photograph a customer chose for
   their hero rendered as a rectangle with canvas on all four sides, which is a
   picture on a page rather than a background. Measured across the sixteen:
   eleven never grant bleed to open.pitch, and paper puts it in a sunken band
   instead, which frames the rectangle rather than hiding it.

   THIS IS NOT THE BLEED TONE, and it deliberately does not spend that budget.
   tone:'bleed' is a theme deciding that a section's CONTENT gives up the work
   column: a composition decision, rationed at three per theme because a page
   of them has no rhythm left. This is a background having to reach the page
   edge in order to be a background at all, and it follows from the customer
   putting an image in the slot — not from the theme. Rationing it would be
   rationing whether a background works.

   The component announces itself with an ATTRIBUTE rather than the shell
   reading a component class: a class here would be
   theme-selector-out-of-namespace in spirit even though this file is not a
   theme, and data-lv-bleed is a contract both planes can name. The dependency
   runs component → shell, the direction the boundary already leaves open — the
   same seam as the bleed floor in packages/registry/styles/section.css.

   padding, not padding-inline: --lv-section-py put canvas above and below the
   image too, and all three of these components carry their own vertical
   rhythm. */
.lvt-shell:has(> [data-lv-bleed]) { padding: 0; }
.lvt-shell:has(> [data-lv-bleed]) > * { max-inline-size: none; }

/* Glass over a photograph is section 3 of .impeccable.md restated: glass
   carries chrome, and a customer's own hero image is the work surface. Three
   themes (saas, service, design) grant open.pitch glass, and the grant stays
   theirs — it is the PANEL GEOMETRY that goes, so the image is not a rounded
   rectangle inset by --lv-space-6 from an edge it was just given. */
.lvt-shell--glass:has(> [data-lv-bleed]) > * { padding: 0; border-radius: 0; }

/* THE SHELL'S ORNAMENT DEVICE HAS NOWHERE LEFT TO STAND.
   Every device in ornament.mjs is drawn on this element and positioned against
   the margin it no longer has: corner-bracket sits at
   calc(var(--lv-gutter) * 0.35) from the inline edge, spectral-hairline runs
   inset-inline: var(--lv-gutter) across the top, ruled-band draws the page's
   width above the section. With the padding gone they all land ON the
   photograph — measured on paper at 1440, the two brackets rendered as brown
   ticks inside the hero image at its top-start and bottom-end corners.

   A device that marks the seam between sections has no work to do here anyway:
   the edge of a full-bleed photograph is the seam. So the shell keeps the
   theme's device everywhere else and drops it on this one section.

   The .lvt-page prefix is specificity, not scoping, and it is deliberate:
   spectral-hairline's own selector is .lvt-shell + .lvt-shell::before at
   (0,2,1), ornament.mjs is concatenated AFTER this file, and an equal-weight
   rule earlier in the sheet loses. */
.lvt-page .lvt-shell:has(> [data-lv-bleed])::before,
.lvt-page .lvt-shell:has(> [data-lv-bleed])::after { content: none; }

/* A full-bleed brand band. Carries the mark's ramp and inverts the ink — the
   one place a public page goes to full brand colour. No glass: glass on a
   filled band has nothing to refract (saas-glass-theme.md §6). */
.lvt-shell--band {
  /* THE GROUND IS A LONGHAND, AND THAT IS THE WHOLE FIX (2026-09-11).

     --lv-band-tone is var(--lv-ramp) (generate.mjs) — a LINEAR-GRADIENT, so
     background: var(--lv-band-tone) puts the ramp in background-image and
     leaves background-color at its initial transparent. ornament.css is
     concatenated after this file, and a theme that draws its own light on the
     band writes background-image as a LONGHAND: restaurant/ornament.css:31
     replaces the ramp with two mostly-transparent radial gradients. The ramp is
     then gone, the colour was never set, and the band's ground is whatever the
     page ground is — on restaurant, a light peach.

     The interior is still inverted (every ink below re-points to
     --lv-text-on-brand), so the result is white text on peach.
     Measured, component-audit-20260910 + this pass: locate.map on restaurant,
     11 of 11 text nodes below 3:1, worst 1.10:1 — the headline, the eyebrow,
     the lede, the "kortet tegnes" notice and the entire address list. The audit
     read this as a missing tone prop on locate.map; it is not. NO component
     could be legible there, and a tone prop on each of the ~85 registry
     sections would be 85 copies of this one declaration.

     Naming background-color explicitly gives the band a floor an ornament's
     background-image cannot reach. It is the ramp's own dark end, so on every
     theme that does NOT clobber the image the colour sits invisibly underneath
     it and nothing changes; on one that does, the room stays the room. The pair
     --lv-text-on-brand over --lv-brand-strong is one tools/contrast/pairs.mjs
     already measures, so no unmeasured surface carries text. */
  background-color: var(--lv-brand-strong);
  background-image: var(--lv-band-tone);
  color: var(--lv-text-on-brand);
}
/* THE BAND'S INTERIOR IS AN INVERTED ROOM, AND IT IS INVERTED THROUGH THE
   VARIABLES RATHER THAN THROUGH color.

   The first attempt at this was .lvt-shell--band :where(h1,h2,h3,p,li) {
   color: inherit }, and it did not work: a component that sets
   color: var(--lv-text-primary) on its own scoped class carries (0,2,0) and
   won, so the heading of a banded section rendered near-black on the brand
   ramp. Measured on raw: getComputedStyle(h2).color was
   oklch(0.19 0.0033 24) on a gradient starting at oklch(34% 0.15 18).

   Re-pointing the ROLE instead reaches every component at every specificity,
   because a custom property inherits and is resolved where it is used. It is
   also the only version of this that the boundary permits: a theme may supply
   values for token-plane variables, and may not write a rule that matches a
   component's class (check/index.mjs).

   Every replacement is a colour the contrast gate ALREADY measures against
   this exact background: --lv-text-on-brand over --lv-ramp is the pair
   on-brand-vs-ramp (4.5 floor, measured at 4.80:1 across the gradient), and
   --lv-brand-strong is the gradient's own dark end. Nothing here introduces
   a colour pairing that tools/contrast/pairs.mjs cannot see, which is the
   whole difference between this and an unmeasured surface carrying text
   (.impeccable.md §6).

   The cost, stated rather than hidden: a band has ONE ink. Three levels of
   tonal hierarchy do not survive inversion onto a gradient, and a band is a
   single loud statement rather than a place to be subtle.

   THREE SELECTORS, ONE ROOM. The bare direct-child selector alone was
   written before composition (G20) existed and only reaches the shell's
   direct child. In a banded GROUP the member's section sits one wrapper
   deeper (.lvt-group__item > section), and the registry's own .lv-sec
   re-declares --lv-ink-accent on that section — a closer declaration that
   beats any inherited value, so the accent role silently fell back to the
   band's own dark end inside every banded group (found on the dennis-niess
   acceptance render: eyebrow, pullquote highlight and rating figure all
   invisible). Naming the composition wrappers this plane OWNS
   (.lvt-group__item / .lvt-split__item — never a .lv-* class) re-points the
   roles ON the member's root element at (0,2,0), which wins over .lv-sec's
   (0,1,0) at any stylesheet order. */
.lvt-shell--band > *,
.lvt-shell--band .lvt-group__item > *,
.lvt-shell--band .lvt-split__item > * {
  --lv-text-primary: var(--lv-text-on-brand);
  --lv-text-secondary: var(--lv-text-on-brand);
  --lv-text-tertiary: var(--lv-text-on-brand);
  --lv-text-link: var(--lv-text-on-brand);
  --lv-icon-quiet: var(--lv-text-on-brand);
  --lv-surface: var(--lv-brand-strong);
  --lv-surface-raised: var(--lv-brand-strong);
  --lv-surface-sunken: var(--lv-brand-strong);
  /* THE CANVAS ROLES, for the same reason and one release later (1.0.184).
     (No backticks in this block either: BASE is one template literal.)

     The surface roles above were inverted because a component that paints a
     surface inside the band would otherwise paint the page's light sheet
     under the band's light ink. The CANVAS roles are the same hole and were
     left in it: --lv-canvas and --lv-canvas-deep are the ground the tokens
     plane paints on body and .lvt-page, so inside a band they still resolve
     to the PAGE's ground while every ink above resolves to --lv-text-on-brand.

     That is not hypothetical and it is not only an immersive-pack problem:
     SKILL.md's "every colour is a token" rule names var(--lv-canvas) first in
     the list of surfaces an immersive component may paint, and the registry's
     own locate.map paints var(--lv-canvas-deep) (renderers/map.css) — which
     restaurant bands. Measured live on brianjeppesen: hero text at 1.1:1,
     repaired at the draft with a _tone raised override because the platform
     had no answer. Six theme-by-intent pairs band a section today and every
     one of them can host a canvas-painting component: paper and raw on
     open.pitch, lodstil on prove.customer-voice, portfolio and saas on
     prove.numbers, restaurant on locate.map — enumerated from the RESOLVED
     themes rather than the source files, because a theme file may declare a
     tone the resolver does not carry.

     Both roles go to the band's own dark end, exactly as the surfaces do, so
     a canvas-painting section inside a band paints the brand and its ink stays
     the measured --lv-text-on-brand over --lv-ramp pair (4.80:1). No new
     colour pairing is introduced, which is the same bar the surface roles had
     to clear: nothing here is a colour tools/contrast/pairs.mjs cannot see.

     The wash roles (--lv-canvas-wash-*) are deliberately NOT re-pointed: they
     are consumed only by body's atmospheric gradient in the tokens plane,
     never by a section, so inverting them would change the page backdrop from
     inside a section — and --lv-canvas-worst, the backdrop the contrast gate
     measures against, is derived from them. */
  --lv-canvas: var(--lv-brand-strong);
  --lv-canvas-deep: var(--lv-brand-strong);
  --lv-line: color-mix(in oklab, var(--lv-text-on-brand) 32%, transparent);
  --lv-line-strong: color-mix(in oklab, var(--lv-text-on-brand) 52%, transparent);
  --lv-line-control: color-mix(in oklab, var(--lv-text-on-brand) 70%, transparent);
  /* The registry's accent ink (packages/registry/styles/section.css) defaults
     to --lv-brand-strong, which is THIS BAND'S OWN DARK END. Left un-inverted,
     every brand-coloured accent inside a band paints the brand onto the brand:
     measured on raw, prove.customer-voice's rating figure resolved to
     oklch(34% 0.15 18) against a band starting at oklch(34% 0.15 18) — 1.00:1,
     invisible, on two of the sixteen themes that band that intent. A band has
     one ink and this is the last role that was still outside it. */
  --lv-ink-accent: var(--lv-text-on-brand);
}

/* ── Split/band composition (G20) ─────────────────────────────────────────
   Emitted by the renderer's composition pass (apps/site-renderer/
   composition.mjs) — never by a theme and never by a component. Two shapes.
   (No backticks in this block: BASE is one template literal.)

   .lvt-group — several placements in ONE shell, one tone. The shell carries
   the section padding once; the members' own .lv-sec rhythm collapses
   between them (first keeps its top, last keeps its bottom) so a quote and
   its supporting statement read as one band instead of two stacked rooms.
   The band's ink re-pointing above selects .lvt-shell--band > *, so a
   banded group's members — direct children — inherit the inverted room with
   no extra rule.

   .lvt-split — two placements side by side in ONE section. The grid is the
   shell's capped child (.lvt-shell > * hands it the work column), the
   ratio names the reference's fraction columns, and the members' .lv-sec
   padding is neutralised because the shell already owns this section's
   rhythm. Under 900px — the reference's own breakpoint — the pair stacks.

   HOW THE SHELL REACHES THE SECTION'S RHYTHM. It does not: naming .lv-sec
   from this plane is theme-selector-out-of-namespace (the first draft did,
   80 findings, 2026-08-14). The shell sets --lv-sec-pad-start /
   --lv-sec-pad-end / --lv-sec-inner-max on wrappers it OWNS, and .lv-sec
   consumes them with its own current values as fallback — the same seam
   --lv-container-max already crosses (contract.mjs THEME_LAYER_VARS, both
   consumed in packages/registry/styles/section.css). Inheritance resolves
   nearest-ancestor, so a split inside a group takes the split's zeros over
   the group's collapse value exactly as the cascade order used to decide. */
.lvt-group > * + * { --lv-sec-pad-start: var(--lv-space-4); }
.lvt-group > *:not(:last-child) { --lv-sec-pad-end: var(--lv-space-4); }

.lvt-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--lv-space-6);
  align-items: start;
}
.lvt-split--7-5 { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.lvt-split--5-7 { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.lvt-split__item { min-inline-size: 0; }
/* The shell owns this section's rhythm; the columns' own is neutralised.
   The inner cap goes with it: a column is narrower than the work column by
   construction, so the cap would only re-centre a phantom margin — same
   reasoning as --bleed's lift. */
.lvt-split > * {
  --lv-sec-pad-start: 0px;
  --lv-sec-pad-end: 0px;
  --lv-sec-inner-max: none;
}
@media (max-width: 900px) {
  /* minmax(0, 1fr), not bare 1fr (2026-08-15, v1.0.51): a bare 1fr track's
     automatic minimum is the item's min-content size, so one wide member —
     a multicol gallery, an unwrappable word — could hold the stacked track
     wider than the shell and push the pair past the viewport edge on
     exactly the narrow screens this rule serves. The two-column templates
     above already say minmax(0, …) for the same reason. */
  .lvt-split { grid-template-columns: minmax(0, 1fr); }
  /* Stacked, the pair reads as a band of two — restore a collapsed rhythm
     between them so the columns do not fuse into one unreadable block. */
  .lvt-split > * + * { --lv-sec-pad-start: var(--lv-space-4); }
}

/* Glass on a page section. Budgeted, and the budget is a gate rather than
   advice — see check/index.mjs theme-glass-budget and theme-glass-on-prose. */
.lvt-shell--glass > * {
  padding: var(--lv-space-6);
  border-radius: var(--lv-radius-lg);
}

@media (prefers-reduced-motion: no-preference) {
  .lvt-reveal {
    opacity: 0;
    transform: translateY(var(--lv-reveal-distance));
    transition:
      opacity var(--lv-dur-panel) var(--lv-ease) var(--lv-reveal-delay, 0ms),
      transform var(--lv-dur-panel) var(--lv-ease) var(--lv-reveal-delay, 0ms);
  }
  .lvt-reveal[data-shown] { opacity: 1; transform: none; }
}

/* Nothing may be invisible waiting for an observer that will never fire — the
   failure mode that makes a reduced-motion page blank. */
@media (prefers-reduced-motion: reduce) {
  .lvt-reveal { opacity: 1; transform: none; }
}

/* ── Chrome shared ──────────────────────────────────────────────────────── */

.lvt-nav {
  --lvt-nav-gap: var(--lv-space-5);
  display: flex;
  align-items: center;
  gap: var(--lvt-nav-gap);
  padding-inline: var(--lv-gutter);
  min-block-size: var(--lv-nav-height);
  background: var(--lv-nav-tone);
  color: var(--lv-nav-ink);
}

.lvt-nav__brand {
  font: var(--lv-weight-heading) var(--lv-text-lg) / 1 var(--lv-display-family);
  letter-spacing: var(--lv-display-tracking);
  text-transform: var(--lv-display-case);
  color: inherit;
  text-decoration: none;
}

/* 1.0.232 — an uploaded header logo was rendered at its NATURAL size: no
   theme sized the <img> render.mjs emits. A 108×165 JPG made a 170px header
   (noli-udkast), a 1305×259 PNG a 264px one that overflowed 507px at 1024.
   The logo now scales to its slot, height-capped; the ratio is kept by the
   auto sizes. The favicon mark (render.mjs, only when the tenant has one)
   stays hidden here and takes over on phones, below. */
.lvt-nav__brand:has(> img) { display: flex; align-items: center; }
.lvt-nav__brand > img {
  display: block;
  inline-size: auto;
  block-size: auto;
  max-inline-size: 100%;
  max-block-size: var(--lv-nav-logo-max, 44px);
}
.lvt-nav__brand > .lvt-nav__mark { display: none; }

.lvt-nav__links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lvt-nav-gap);
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.lvt-nav__link {
  display: inline-flex;
  align-items: center;
  min-block-size: 44px;
  color: inherit;
  font-size: var(--lv-text-sm);
  font-weight: var(--lv-weight-medium);
  text-decoration: none;
}
.lvt-nav__link[aria-current='page'] { font-weight: var(--lv-weight-bold); }

/* One breakpoint and a full-screen overlay — the LPH saas nav's single good
   structural idea, kept (saas-glass-theme.md §2). It is a <details>, so it
   opens, closes on Escape and is operable with no JavaScript at all; the
   renderer adds nothing to make it work.

   V1.0.48 (FINAL-VERDICT defect 6): the <details> is the SMALL-SCREEN
   rendering only. A closed <details> never paints its non-summary children —
   no CSS can opt them back in — so the desktop nav is its own inline list
   (.lvt-nav__links--desktop, emitted by the renderer beside the details).
   Desktop shows the list and hides the details whole; under the breakpoint
   the pair swaps. Exactly one of the two is ever displayed. */
.lvt-nav__menu { display: none; margin-inline-start: auto; }
.lvt-nav__links--desktop { margin-inline-start: auto; }

/* The header's tel: affordance — a real link in the links list, weighted like
   identity rather than like a nav item (the one number a caller needs). */
.lvt-nav__phone {
  font-weight: var(--lv-weight-bold);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* 1.0.214 – the header social icons (render.mjs socialHtml). Icons ink
   in the header's own colour; each is a 44px target; hover/focus wash the
   target with the ink at low alpha so the state is never colour-only on a
   glyph that has no colour to change. Present at every width — three glyphs
   fit beside the small-screen "Menu" toggle. */
.lvt-nav__social {
  display: flex;
  align-items: center;
  gap: var(--lv-space-1);
  margin: 0;
  padding: 0;
  list-style: none;
}
.lvt-nav__social-link {
  display: inline-grid;
  place-items: center;
  inline-size: 44px;
  block-size: 44px;
  border-radius: var(--lv-radius-sm);
  color: inherit;
  transition: background-color 120ms var(--lv-ease, ease-out);
}
.lvt-nav__social-link:hover,
.lvt-nav__social-link:focus-visible { background-color: color-mix(in oklch, currentColor 12%, transparent); }
.lvt-nav__social-link svg { inline-size: 20px; block-size: 20px; fill: currentColor; }
/* The standalone MOBILE phone anchor (V1.0.49, R5 item 2): under the
   breakpoint the desktop list hides whole — its tel: item with it — which
   left the number a Menu-tap away on the surface where callers actually
   call. This bar-level anchor shows ONLY below the breakpoint; at desktop
   the list's own item stands, so no width ever carries the number twice. */
.lvt-nav__phone--bar { display: none; }
.lvt-nav__toggle {
  display: none;
  align-items: center;
  min-block-size: 44px;
  min-inline-size: 44px;
  padding-inline: var(--lv-space-3);
  border: 1px solid var(--lv-line-control);
  border-radius: var(--lv-radius-sm);
  background: transparent;
  color: inherit;
  font: var(--lv-weight-semibold) var(--lv-text-sm) / 1 var(--lv-font-ui);
  cursor: pointer;
  list-style: none;
}
.lvt-nav__toggle::-webkit-details-marker { display: none; }

/* ── Desktop nav is one inline list, always (V1.0.50) ────────────────────
   The V1.0.49 overflow dropdown (mobile "Menu" details surfacing on desktop
   when a width estimate said the row could not fit) is retired: the estimate
   misfired on long brands, and a details toggle on a desktop header reads as
   mobile UI regardless (operator, 2026-08-15). Desktop shows the FULL list
   and wraps to a second row when it genuinely cannot fit — honest and
   unsurprising. The menu/toggle pair is hard-hidden at desktop width. */
@media (min-width: 56.3125rem) {
  .lvt-nav__menu { display: none; }
  .lvt-nav__links--desktop { flex-wrap: wrap; row-gap: var(--lv-space-2); }
}

@media (max-width: 56.25rem) {
  .lvt-nav__links--desktop { display: none; }
  .lvt-nav__phone--bar { display: inline-flex; margin-inline-start: auto; flex: 0 0 auto; }
  /* A long brand (fx "Tømrermester Dennis Niess ApS") + phone + Menu must
     never push the row past the viewport (measured 420px on a 360px screen,
     2026-08-15): the brand is the one flexible item and truncates.

     JUSTIFY-SELF: STRETCH + MAX-INLINE-SIZE: 100% (shared-compat-20260926).
     FLEX: 1 1 AUTO only shrinks a FLEX item — the CENTRED-SPLIT archetype
     (and any other grid-based one) lays this row out with DISPLAY: GRID
     instead, where FLEX is inert. A grid item's default JUSTIFY-ITEMS:
     STRETCH would still fill its track, but CENTRED-SPLIT's own mobile row
     sets JUSTIFY-ITEMS: START (this file, NAV_CSS) so the brand and the menu
     toggle stack as two left-aligned rows instead of sharing one — and a
     START-aligned block-level item sizes to its OWN content rather than its
     track. A 33-character brand (Samvirket for Bæredygtigt Byggeri, the
     ORGANIZATION swap fixture) rendered at its full 522px unwrapped width and
     pushed the header 159px past a 390px viewport on ATELIER, DESIGN,
     RESTAURANT and WASHI — OVERFLOW: HIDDEN had nothing to clip because the
     box had already grown to fit everything. JUSTIFY-SELF is the per-item
     escape from a container's JUSTIFY-ITEMS and is not a recognised flex
     property (inert there), so it is safe to sit here once for every
     archetype rather than copied into NAV_CSS per grid variant. MAX-INLINE-
     SIZE: 100% is the second half: a belt-and-braces cap so the brand can
     never exceed whatever box it ends up in, grid-track quirks or not.
     COUTURE, and RAW/INNONEWS, still re-declare OVERFLOW: VISIBLE on this
     same class inside their own per-theme ornament.css (a theme-owned file
     this plane may not edit) — flagged NEEDS-THEME in the compat report
     rather than fought here with an importance war. */
  .lvt-nav__brand { flex: 1 1 auto; justify-self: stretch; min-inline-size: 0; max-inline-size: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  /* 1.0.232 — the brand slot measures itself. It is the one flexible item
     (it grows into whatever phone + Menu + menu2 leave), so size containment
     costs nothing here — and it lets the slot choose: below 120px a wide
     lockup falls under ~24px tall (brianjeppesen: 77px slot at 390, 47px at
     360 → «BR» clipped), so the square mark shows instead. Only headers that
     carry a mark become containers; the rest are untouched. */
  .lvt-nav__brand:has(> .lvt-nav__mark) { container: lvt-brand / inline-size; }
  @container lvt-brand (max-width: 119.98px) {
    .lvt-nav__brand > .lvt-nav__logo { display: none; }
    .lvt-nav__brand > .lvt-nav__mark { display: block; max-block-size: 40px; }
  }
  .lvt-nav__menu { display: block; flex: 0 0 auto; }
  /* The phone bar owns the auto push when it exists; the menu follows it.
     :has() keeps the phoneless header exactly as it was. */
  .lvt-nav:has(.lvt-nav__phone--bar) .lvt-nav__menu { margin-inline-start: 0; }
  .lvt-nav__toggle { display: inline-flex; }
  .lvt-nav__menu[open] .lvt-nav__links,
  .lvt-nav__menu:not([open]) .lvt-nav__links { position: static; }
  .lvt-nav__menu:not([open]) .lvt-nav__links { display: none; }
  .lvt-nav__menu[open] .lvt-nav__links {
    position: fixed;
    inset: var(--lv-nav-height) 0 0 0;
    z-index: var(--lv-z-overlay);
    flex-direction: column;
    align-items: flex-start;
    gap: var(--lv-space-4);
    padding: var(--lv-space-6) var(--lv-gutter);
    background: var(--lv-surface);
    overflow-y: auto;
  }
  .lvt-nav__menu[open] .lvt-nav__link { font-size: var(--lv-text-lg); }
}

.lvt-foot {
  padding-block: var(--lv-section-py);
  padding-inline: var(--lv-gutter);
  background: var(--lv-foot-tone);
  color: var(--lv-foot-ink);
}
.lvt-foot__inner { max-inline-size: var(--lv-container-max); margin-inline: auto; }
.lvt-foot__links { display: flex; flex-wrap: wrap; gap: var(--lv-space-4); margin: 0; padding: 0; list-style: none; }
.lvt-foot a { color: inherit; }
.lvt-foot__colophon { margin: 0; font-size: var(--lv-text-xs); }
.lvt-foot__figure { font-family: var(--lv-font-mono); font-variant-numeric: tabular-nums; }

/* ── The footer's PROPOSITION, which is a different axis from its archetype ──
   FOOTER_CSS below decides how a footer LOOKS — five archetypes, one per theme.
   These decide what it SAYS: columns, a service business's contact block, or a
   shop's delivery-and-payment reassurance. See apps/site-renderer/footers.mjs.

   NOTE FOR ANY LATER EDITOR: this comment sits INSIDE the BASE template
   literal, so it must contain no backtick. One in prose ends the string and the
   whole module stops parsing — which is exactly what happened on 2026-08-04 and
   took ten admin test files down with it. Quote code with CAPITALS or nothing.

   The two axes are orthogonal and stay that way because of one discipline:
   NOTHING IN THIS BLOCK DECLARES A COLOUR OR A FONT. Every rule is structure —
   grid, flow, hairline — and every hairline is currentColor at low alpha, so it
   follows whatever ink the archetype chose. That is why a brand-band footer
   (ink --lv-text-on-brand on the mark's ramp) and a sitemap footer (ink on
   --lv-surface-sunken) both render the contact block correctly with no
   per-archetype rule and no measurement this file would have to claim.
   --lv-line was the obvious choice and is the wrong one: it is the PAGE's
   hairline, and on the two archetypes that invert their ink it disappears.

   Everything is scoped under the two modifiers, so the columns footer — every
   tenant's footer until now — resolves to byte-identical CSS.

   grid-column: 1 / -1 AND flex-basis: 100% on each full-width block, not one or
   the other: .lvt-foot__inner is a grid under four archetypes and a flex row
   under minimal-rule, and the inert one costs nothing. */

.lvt-foot--contact .lvt-foot__contact,
.lvt-foot--commerce .lvt-foot__assure,
.lvt-foot--commerce .lvt-foot__pay {
  grid-column: 1 / -1;
  flex-basis: 100%;
}

/* ── contact: the van door ──────────────────────────────────────────────── */

.lvt-foot--contact .lvt-foot__contact {
  display: grid;
  gap: var(--lv-space-5) var(--lv-space-6);
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  align-items: start;
  margin-block-end: var(--lv-space-5);
  padding-block-end: var(--lv-space-5);
  border-block-end: 1px solid color-mix(in oklab, currentColor 24%, transparent);
}
.lvt-foot--contact address { font-style: normal; display: grid; gap: var(--lv-space-2); justify-items: start; }
/* 44px, because a phone number in a footer is the single most-tapped link on a
   tradesperson's site and it is tapped on a phone. */
.lvt-foot--contact address a { min-block-size: 44px; display: inline-flex; align-items: center; }
/* A term and its definition, laid out as one. The times take the mono face from
   .lvt-foot__figure, which the renderer puts on the <dd>. */
.lvt-foot--contact .lvt-foot__hours { display: grid; grid-template-columns: auto 1fr; gap: var(--lv-space-2) var(--lv-space-5); margin: 0; }
.lvt-foot--contact .lvt-foot__hours dd { margin: 0; }
.lvt-foot--contact .lvt-foot__areas ul,
.lvt-foot--contact ul.lvt-foot__areas { display: flex; flex-wrap: wrap; gap: var(--lv-space-2) var(--lv-space-4); margin: 0; padding: 0; list-style: none; }

/* ── commerce: the delivery note ────────────────────────────────────────── */

.lvt-foot--commerce .lvt-foot__assure {
  display: grid;
  gap: var(--lv-space-4) var(--lv-space-5);
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  margin: 0 0 var(--lv-space-6);
  padding: 0 0 var(--lv-space-6);
  list-style: none;
  border-block-end: 1px solid color-mix(in oklab, currentColor 24%, transparent);
}
.lvt-foot--commerce .lvt-foot__assure li { display: grid; grid-template-columns: auto 1fr; gap: var(--lv-space-3); align-items: start; font-size: var(--lv-text-sm); }
.lvt-foot--commerce .lvt-foot__assure svg { inline-size: 1.5rem; block-size: 1.5rem; }
.lvt-foot--commerce .lvt-foot__pay {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--lv-space-2) var(--lv-space-3);
  margin: var(--lv-space-6) 0 0;
}
/* A boundary, so it carries the 3:1 UI floor rather than the 4.5:1 text floor —
   and it is drawn from the ink it sits beside, so it clears it on every
   archetype without a per-theme measurement. */
.lvt-foot--commerce .lvt-foot__pay > span:not(.lvt-foot__eyebrow) {
  padding: var(--lv-space-1) var(--lv-space-3);
  border: 1px solid color-mix(in oklab, currentColor 45%, transparent);
  border-radius: var(--lv-radius-sm);
  font-size: var(--lv-text-xs);
}
.lvt-foot__eyebrow { font-size: var(--lv-text-xs); letter-spacing: var(--lv-display-tracking); }

/* nav archetype: inline-plain */

.lvt-nav {
  justify-content: space-between;
  background: transparent;
  border-block-end: 1px solid var(--lv-line);
}
.lvt-nav__link { text-underline-offset: 0.35em; text-decoration: underline solid transparent 1px; }
.lvt-nav__link:hover { text-decoration-color: currentColor; }

/* footer archetype: minimal-rule */

.lvt-foot { border-block-start: 1px solid var(--lv-line); padding-block: var(--lv-space-6); }
.lvt-foot__inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--lv-space-4); align-items: baseline; }

/* ornament device: none */

/* Deliberately empty. A theme whose whole argument is that it gets out of the
   way, and the one device a *second* theme may not also choose — see
   check/axes.mjs. */



.lvt-shell--tenant{padding:0}
.lvt-shell--tenant>*{max-inline-size:none;margin-inline:0}
.lvt-shell--tenant fieldset{min-inline-size:0;max-inline-size:100%}
.lvt-page>[class^="lv-tenant-"]{max-inline-size:100%;overflow-x:clip}
.lv-tenant-tinyhousevanellus-afslutning-band{position:relative;isolation:isolate;overflow:clip;padding-block:clamp(6rem,14vw,10rem) var(--lv-space-7);padding-inline:var(--lv-gutter);background:var(--lv-text-primary);color:rgb(255 255 255 / .96)}
.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__media{position:absolute;inset:0;z-index:-1;margin:0;overflow:hidden;background:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__foto{display:block;inline-size:100%;block-size:100%;max-inline-size:100%;object-fit:cover}
.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__media::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgb(0 0 0 / .62),rgb(0 0 0 / .28) 70%,rgb(0 0 0 / .18))}
.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__lys{position:absolute;inset:0;z-index:1;background:linear-gradient(105deg,rgb(255 255 255 / 0) 35%,rgb(255 255 255 / .13) 50%,rgb(255 255 255 / 0) 65%);opacity:0;pointer-events:none;background-size:250% 100%;background-repeat:no-repeat}
.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__inner{position:relative;max-inline-size:var(--lv-container-max);margin-inline:auto;display:grid;gap:var(--lv-space-6);justify-items:start}
.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__kicker{margin:0;font-family:var(--lv-font-ui);font-size:.78rem;font-weight:600;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:rgb(255 255 255 / .82)}
.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__udsagn{margin:0;max-inline-size:18ch;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:clamp(2.2rem,1.3rem + 3.4vw,4rem);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-tracking-heading);text-wrap:balance;overflow-wrap:anywhere}
.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__handlinger{display:flex;flex-wrap:wrap;gap:.75rem}
.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__handling{display:inline-flex;align-items:center;justify-content:center;min-block-size:44px;padding:.6rem 1.15rem;font-family:var(--lv-font-ui);font-size:.95rem;font-weight:600;color:inherit;text-decoration:none;border:1px solid rgb(255 255 255 / .72);border-radius:var(--lv-btn-radius);transition:transform 160ms cubic-bezier(0.22,1,0.36,1),box-shadow 160ms cubic-bezier(0.22,1,0.36,1),border-color 160ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__handling:hover,.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__handling:focus-visible{border-color:var(--lv-accent);transform:translateY(-1px);box-shadow:0 10px 24px rgb(0 0 0 / .25)}
.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__handling:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__jura{display:flex;flex-wrap:wrap;gap:.35rem 1.25rem;margin:clamp(3rem,8vw,6rem) 0 0;font-family:var(--lv-font-ui);font-size:.8rem;color:rgb(255 255 255 / .72)}
.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__mikro{display:inline-flex;align-items:center;min-block-size:24px;color:inherit;text-underline-offset:3px}
.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__mikro:focus-visible{outline:2px solid currentColor;outline-offset:2px}
@media (max-width:480px){.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__handlinger{flex-direction:column;align-items:stretch;inline-size:100%}}
@media (prefers-reduced-transparency:reduce){.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__media::after{background:rgb(0 0 0 / .66)}}
@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__lys{animation:lv-tenant-tinyhousevanellus-afslutning-band-lys linear both;animation-timeline:view();animation-range:entry 20% exit 20%}}}
@media (prefers-reduced-motion:reduce){.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__handling{transition:none}}
@keyframes lv-tenant-tinyhousevanellus-afslutning-band-lys{from{background-position:100% 0;opacity:.9}to{background-position:0% 0;opacity:.9}}
.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__handling>*,.lv-tenant-tinyhousevanellus-afslutning-band .lv-tenant-tinyhousevanellus-afslutning-band__mikro>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-forside-galleri{padding-block:var(--lv-section-py-lg);padding-inline:0;background:var(--lv-surface-sunken);color:var(--lv-text-primary);overflow-x:clip;timeline-scope:--thv-forside-galleri}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__inner{box-sizing:content-box;max-inline-size:var(--lv-container-max);margin-inline:auto;padding-inline:var(--lv-gutter)}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__rail{display:grid;grid-auto-flow:column;grid-auto-columns:100%;gap:var(--lv-space-6);margin:var(--lv-space-8) 0 var(--lv-space-6);padding:var(--lv-space-5) 22%;list-style:none;max-inline-size:100%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scroll-timeline:--thv-forside-galleri x}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__rail>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__rail:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:-2px}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__item{scroll-snap-align:center}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__plade{margin:0;display:grid;gap:.85rem;border-radius:var(--lv-radius-lg)}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__plade:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:6px}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__billede{aspect-ratio:3/2;overflow:hidden;border:1px solid var(--lv-line);border-radius:var(--lv-radius-lg);background:var(--lv-surface)}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__foto{display:block;inline-size:100%;block-size:100%;max-inline-size:100%;object-fit:cover}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__tekst{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.2rem 1rem;align-items:baseline;font-family:var(--lv-font-ui)}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__nr{grid-row:span 2;font-family:var(--lv-font-mono);font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__navn{font-size:var(--lv-text-md);font-weight:600;color:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__detalje{font-size:.92rem;line-height:var(--lv-leading-snug);color:var(--lv-text-secondary);opacity:0;transform:translateY(4px);transition:opacity 240ms cubic-bezier(0.22,1,0.36,1),transform 240ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__plade:hover .lv-tenant-tinyhousevanellus-forside-galleri__detalje,.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__plade:focus-visible .lv-tenant-tinyhousevanellus-forside-galleri__detalje,.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__plade:focus-within .lv-tenant-tinyhousevanellus-forside-galleri__detalje{opacity:1;transform:none}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__fod{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--lv-space-6)}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__fremdrift{position:relative;flex:1 1 12rem;max-inline-size:18rem;block-size:1px;background:var(--lv-line)}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__streg{position:absolute;inset:0;background:var(--lv-text-primary);transform-origin:0 50%}
@media (hover:none){.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__detalje{opacity:1;transform:none}}
@media (max-width:600px){.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__rail{grid-auto-columns:100%;padding-inline:8%}}
@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__plade{animation:lv-tenant-tinyhousevanellus-forside-galleri-fokus linear both;animation-timeline:view(inline)}}}
@supports (animation-timeline:scroll()){.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__streg{animation:lv-tenant-tinyhousevanellus-forside-galleri-fremdrift linear both;animation-timeline:--thv-forside-galleri}}
@media (prefers-reduced-motion:reduce){.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__detalje{transition:none}}
@keyframes lv-tenant-tinyhousevanellus-forside-galleri-fokus{0%{transform:scale(.88);opacity:.74}50%{transform:scale(1);opacity:1}100%{transform:scale(.88);opacity:.74}}
@keyframes lv-tenant-tinyhousevanellus-forside-galleri-fremdrift{from{transform:scaleX(.08)}to{transform:scaleX(1)}}

.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__hoved{max-inline-size:44rem;display:grid;gap:var(--lv-space-5)}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__kicker{margin:0;font-family:var(--lv-font-ui);font-size:.78rem;font-weight:600;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__titel{margin:0;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:var(--lv-text-2xl);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-tracking-heading);text-wrap:balance;color:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__intro{margin:0;font-family:var(--lv-font-ui);font-size:var(--lv-text-lg);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary);max-inline-size:38rem}

.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__videre{margin:0}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__link{display:inline-flex;align-items:center;min-block-size:44px;font-family:var(--lv-font-ui);font-weight:600;color:var(--lv-text-primary);text-decoration:none;background-image:linear-gradient(currentColor,currentColor),linear-gradient(var(--lv-line-strong),var(--lv-line-strong));background-size:0% 1px,100% 1px;background-position:0 78%,0 78%;background-repeat:no-repeat;transition:background-size 200ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__link:hover,.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__link:focus-visible{background-size:100% 1px,100% 1px}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__link:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:4px}
@media (prefers-reduced-motion:reduce){.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__link{transition:none}}
.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__tekst>*,.lv-tenant-tinyhousevanellus-forside-galleri .lv-tenant-tinyhousevanellus-forside-galleri__link>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-forside-hero{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-block-size:clamp(34rem,86vh,54rem);padding-block:var(--lv-section-py-lg) clamp(3rem,7vw,5.5rem);padding-inline:var(--lv-gutter);overflow:clip;background:var(--lv-text-primary);color:rgb(255 255 255 / .96)}
.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__media{position:absolute;inset:0;z-index:-1;margin:0;overflow:hidden;background:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__foto{display:block;inline-size:100%;block-size:100%;max-inline-size:100%;object-fit:cover}
.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgb(0 0 0 / .62),rgb(0 0 0 / .2) 55%,rgb(0 0 0 / .06))}
.lv-tenant-tinyhousevanellus-forside-hero[data-treatment="framed"]{background:var(--lv-canvas);padding-inline:calc(var(--lv-gutter) * 2)}
.lv-tenant-tinyhousevanellus-forside-hero[data-treatment="framed"] .lv-tenant-tinyhousevanellus-forside-hero__media{inset:var(--lv-space-5) var(--lv-gutter);border-radius:var(--lv-radius-xl)}
.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__inner{position:relative;inline-size:100%;max-inline-size:var(--lv-container-max);margin-inline:auto}
.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__lockup{max-inline-size:40rem;min-inline-size:0}
.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__kicker{margin:0 0 var(--lv-space-5);font-family:var(--lv-font-ui);font-size:.78rem;font-weight:600;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:rgb(255 255 255 / .86)}
.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__titel{margin:0;max-inline-size:15ch;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:max(var(--lv-hero-display),clamp(2.5rem,1.7rem + 3.6vw,4.5rem));line-height:var(--lv-leading-tight);letter-spacing:var(--lv-tracking-heading);text-wrap:balance;overflow-wrap:anywhere}
.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__lede{margin:var(--lv-space-5) 0 0;max-inline-size:34rem;font-family:var(--lv-font-ui);font-size:var(--lv-text-lg);line-height:var(--lv-leading-snug);color:rgb(255 255 255 / .9)}
.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__handlinger{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem var(--lv-space-7);margin-top:var(--lv-space-7)}
.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__handling{display:inline-flex;align-items:center;min-block-size:44px;font-family:var(--lv-font-ui);font-weight:600;letter-spacing:.02em;color:inherit;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:100% 1px;background-position:0 80%;background-repeat:no-repeat;transition:transform 180ms cubic-bezier(0.22,1,0.36,1),background-size 180ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__handling:hover,.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__handling:focus-visible{background-image:linear-gradient(var(--lv-accent),var(--lv-accent));background-size:100% 2px;transform:translateY(-1px)}
.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__handling:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__fakta{flex-basis:100%;margin:0;font-family:var(--lv-font-ui);font-size:.9rem;color:rgb(255 255 255 / .78)}
@media (max-aspect-ratio:1/1){.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__media::after{background:linear-gradient(to top,rgb(0 0 0 / .72),rgb(0 0 0 / .3) 70%,rgb(0 0 0 / .12))}}
@media (max-width:480px){.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__handlinger{flex-direction:column;align-items:flex-start;gap:.25rem}}
@media (prefers-reduced-transparency:reduce){.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__media::after{background:rgb(0 0 0 / .6)}}
@media (prefers-reduced-motion:reduce){.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__handling{transition:none}}
.lv-tenant-tinyhousevanellus-forside-hero>*,.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__handling>*{min-inline-size:0}
@media (max-aspect-ratio:1/1){.lv-tenant-tinyhousevanellus-forside-hero .lv-tenant-tinyhousevanellus-forside-hero__foto{object-position:74% 50%}}
.lv-tenant-tinyhousevanellus-forside-ophold{padding-block:var(--lv-section-py-lg);padding-inline:var(--lv-gutter);background:var(--lv-canvas);color:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__inner{max-inline-size:var(--lv-container-max);margin-inline:auto;display:grid;gap:var(--lv-space-8)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__kort{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--lv-space-6);align-items:stretch}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__kort>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__plan{display:grid;grid-template-rows:auto auto auto 1fr auto auto;gap:var(--lv-space-5);padding:var(--lv-space-7) var(--lv-space-6);background:var(--lv-surface);border:1px solid var(--lv-line);border-radius:var(--lv-radius-lg);transition:border-color 200ms cubic-bezier(0.22,1,0.36,1),box-shadow 200ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__plan:has(.lv-tenant-tinyhousevanellus-forside-ophold__radio:checked){border-color:var(--lv-line-strong);box-shadow:var(--lv-lift-2)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__maerke{justify-self:start;margin:0;min-block-size:1.6rem;padding:.3rem .75rem;font-family:var(--lv-font-ui);font-size:.72rem;font-weight:600;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;background:var(--lv-brand);color:var(--lv-text-on-brand);border-radius:var(--lv-radius-pill)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__maerke:empty{visibility:hidden}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__planhoved{display:grid;gap:.35rem}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__navn{margin:0;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:var(--lv-text-xl);line-height:var(--lv-leading-tight)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__til{margin:0;font-family:var(--lv-font-ui);color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__pris{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .6rem;font-variant-numeric:tabular-nums lining-nums}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__anker{font-family:var(--lv-font-ui);color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__anker:empty{display:none}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__fra{font-family:var(--lv-display-family);font-size:var(--lv-text-2xl);line-height:1}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__enhed{font-family:var(--lv-font-ui);font-size:.95rem;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__liste{margin:0;padding:0;list-style:none;display:grid;gap:.6rem;font-family:var(--lv-font-ui);align-content:start}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__liste li{display:grid;grid-template-columns:1.25rem minmax(0,1fr);gap:.5rem;align-items:baseline}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__tegn{font-weight:700;color:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__nej{color:var(--lv-text-secondary);text-decoration:line-through}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__valg{display:flex;align-items:center;gap:.6rem;min-block-size:44px;font-family:var(--lv-font-ui);cursor:pointer}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__radio{inline-size:1.15rem;block-size:1.15rem;margin:0;accent-color:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__radio:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:3px}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__handling{display:inline-flex;justify-content:center;align-items:center;min-block-size:44px;padding:.7rem 1.1rem;font-family:var(--lv-font-ui);font-weight:600;text-decoration:none;text-align:center;color:var(--lv-text-primary);border:1px solid var(--lv-text-primary);border-radius:var(--lv-btn-radius);transition:transform 160ms cubic-bezier(0.22,1,0.36,1),box-shadow 160ms cubic-bezier(0.22,1,0.36,1),background-color 160ms cubic-bezier(0.22,1,0.36,1),color 160ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__handling:hover,.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__handling:focus-visible{background-color:var(--lv-text-primary);color:var(--lv-canvas);transform:translateY(-1px);box-shadow:var(--lv-lift-2)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__handling:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:3px}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__handling:active{transform:scale(.97);transition-duration:80ms}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__note{margin:0;max-inline-size:44rem;font-family:var(--lv-font-ui);font-size:.95rem;color:var(--lv-text-secondary)}
@media (max-width:900px){.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__kort{grid-template-columns:minmax(0,1fr)} .lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__plan:has(.lv-tenant-tinyhousevanellus-forside-ophold__maerke:not(:empty)){order:-1}}
@media (prefers-reduced-motion:reduce){.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__plan,.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__handling{transition:none}}

.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__hoved{max-inline-size:44rem;display:grid;gap:var(--lv-space-5)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__kicker{margin:0;font-family:var(--lv-font-ui);font-size:.78rem;font-weight:600;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__titel{margin:0;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:var(--lv-text-2xl);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-tracking-heading);text-wrap:balance;color:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__intro{margin:0;font-family:var(--lv-font-ui);font-size:var(--lv-text-lg);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary);max-inline-size:38rem}
.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__kort>*,.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__liste li>*,.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__valg>*,.lv-tenant-tinyhousevanellus-forside-ophold .lv-tenant-tinyhousevanellus-forside-ophold__handling>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-forside-raekker{padding-block:var(--lv-section-py-lg);padding-inline:var(--lv-gutter);background:var(--lv-canvas);color:var(--lv-text-primary);overflow-x:clip}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__inner{max-inline-size:var(--lv-container-max);margin-inline:auto;display:grid;gap:var(--lv-space-9)}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__rows{display:grid;gap:clamp(4rem,9vw,8rem)}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__row{display:grid;grid-template-columns:5fr 6fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__row>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__row:nth-child(even){grid-template-columns:6fr 5fr}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__row:nth-child(even) .lv-tenant-tinyhousevanellus-forside-raekker__plade{order:2}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__plade{margin:0;display:grid;gap:.9rem}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__ramme{aspect-ratio:4/5;overflow:hidden;border-radius:var(--lv-radius-lg);background:var(--lv-surface-sunken)}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__foto{display:block;inline-size:100%;block-size:100%;max-inline-size:100%;object-fit:cover}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__billedtekst{display:flex;align-items:center;gap:.75rem;font-family:var(--lv-font-ui);font-size:.72rem;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__billedtekst::before{content:"";inline-size:1.5rem;block-size:1px;background:var(--lv-line-strong)}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__tekst{display:grid;gap:var(--lv-space-5);max-inline-size:32rem}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__rowkicker{margin:0;font-family:var(--lv-font-ui);font-size:.75rem;font-weight:600;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__rowtitel{margin:0;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:var(--lv-text-xl);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-tracking-heading);text-wrap:balance}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__brod{margin:0;font-family:var(--lv-font-ui);font-size:var(--lv-text-md);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary);max-inline-size:62ch}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__udsagn{margin:0;padding-inline-start:var(--lv-space-6);border-inline-start:1px solid var(--lv-line-strong);font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:var(--lv-text-xl);line-height:var(--lv-leading-snug);max-inline-size:36rem;text-wrap:balance}
@media (max-width:800px){.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__row,.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__row:nth-child(even){grid-template-columns:minmax(0,1fr)} .lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__row:nth-child(even) .lv-tenant-tinyhousevanellus-forside-raekker__plade{order:0} .lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__ramme{aspect-ratio:4/5;max-inline-size:28rem}}
@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__ramme{animation:lv-tenant-tinyhousevanellus-forside-raekker-aabn linear both;animation-timeline:view();animation-range:entry 0% cover 40%}}}
@keyframes lv-tenant-tinyhousevanellus-forside-raekker-aabn{from{clip-path:inset(9% 12% 9% 12% round var(--lv-radius-lg))}to{clip-path:inset(0 0 0 0 round var(--lv-radius-lg))}}

.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__hoved{max-inline-size:44rem;display:grid;gap:var(--lv-space-5)}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__kicker{margin:0;font-family:var(--lv-font-ui);font-size:.78rem;font-weight:600;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__titel{margin:0;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:var(--lv-text-2xl);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-tracking-heading);text-wrap:balance;color:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__intro{margin:0;font-family:var(--lv-font-ui);font-size:var(--lv-text-lg);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary);max-inline-size:38rem}

.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__videre{margin:0}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__link{display:inline-flex;align-items:center;min-block-size:44px;font-family:var(--lv-font-ui);font-weight:600;color:var(--lv-text-primary);text-decoration:none;background-image:linear-gradient(currentColor,currentColor),linear-gradient(var(--lv-line-strong),var(--lv-line-strong));background-size:0% 1px,100% 1px;background-position:0 78%,0 78%;background-repeat:no-repeat;transition:background-size 200ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__link:hover,.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__link:focus-visible{background-size:100% 1px,100% 1px}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__link:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:4px}
@media (prefers-reduced-motion:reduce){.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__link{transition:none}}
.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__row>*,.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__billedtekst>*,.lv-tenant-tinyhousevanellus-forside-raekker .lv-tenant-tinyhousevanellus-forside-raekker__link>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-galleri-rail{padding-block:var(--lv-section-py-lg);padding-inline:0;background:var(--lv-surface-sunken);color:var(--lv-text-primary);overflow-x:clip;timeline-scope:--thv-galleri-rail}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__inner{box-sizing:content-box;max-inline-size:var(--lv-container-max);margin-inline:auto;padding-inline:var(--lv-gutter)}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__rail{display:grid;grid-auto-flow:column;grid-auto-columns:100%;gap:var(--lv-space-6);margin:var(--lv-space-8) 0 var(--lv-space-6);padding:var(--lv-space-5) 22%;list-style:none;max-inline-size:100%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scroll-timeline:--thv-galleri-rail x}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__rail>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__rail:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:-2px}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__item{scroll-snap-align:center}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__plade{margin:0;display:grid;gap:.85rem;border-radius:var(--lv-radius-lg)}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__plade:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:6px}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__billede{aspect-ratio:3/2;overflow:hidden;border:1px solid var(--lv-line);border-radius:var(--lv-radius-lg);background:var(--lv-surface)}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__foto{display:block;inline-size:100%;block-size:100%;max-inline-size:100%;object-fit:cover}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__tekst{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.2rem 1rem;align-items:baseline;font-family:var(--lv-font-ui)}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__nr{grid-row:span 2;font-family:var(--lv-font-mono);font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__navn{font-size:var(--lv-text-md);font-weight:600;color:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__detalje{font-size:.92rem;line-height:var(--lv-leading-snug);color:var(--lv-text-secondary);opacity:0;transform:translateY(4px);transition:opacity 240ms cubic-bezier(0.22,1,0.36,1),transform 240ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__plade:hover .lv-tenant-tinyhousevanellus-galleri-rail__detalje,.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__plade:focus-visible .lv-tenant-tinyhousevanellus-galleri-rail__detalje,.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__plade:focus-within .lv-tenant-tinyhousevanellus-galleri-rail__detalje{opacity:1;transform:none}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__fod{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--lv-space-6)}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__fremdrift{position:relative;flex:1 1 12rem;max-inline-size:18rem;block-size:1px;background:var(--lv-line)}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__streg{position:absolute;inset:0;background:var(--lv-text-primary);transform-origin:0 50%}
@media (hover:none){.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__detalje{opacity:1;transform:none}}
@media (max-width:600px){.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__rail{grid-auto-columns:100%;padding-inline:8%}}
@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__plade{animation:lv-tenant-tinyhousevanellus-galleri-rail-fokus linear both;animation-timeline:view(inline)}}}
@supports (animation-timeline:scroll()){.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__streg{animation:lv-tenant-tinyhousevanellus-galleri-rail-fremdrift linear both;animation-timeline:--thv-galleri-rail}}
@media (prefers-reduced-motion:reduce){.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__detalje{transition:none}}
@keyframes lv-tenant-tinyhousevanellus-galleri-rail-fokus{0%{transform:scale(.88);opacity:.74}50%{transform:scale(1);opacity:1}100%{transform:scale(.88);opacity:.74}}
@keyframes lv-tenant-tinyhousevanellus-galleri-rail-fremdrift{from{transform:scaleX(.08)}to{transform:scaleX(1)}}

.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__hoved{max-inline-size:44rem;display:grid;gap:var(--lv-space-5)}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__kicker{margin:0;font-family:var(--lv-font-ui);font-size:.78rem;font-weight:600;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__titel{margin:0;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:var(--lv-text-2xl);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-tracking-heading);text-wrap:balance;color:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__intro{margin:0;font-family:var(--lv-font-ui);font-size:var(--lv-text-lg);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary);max-inline-size:38rem}

.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__videre{margin:0}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__link{display:inline-flex;align-items:center;min-block-size:44px;font-family:var(--lv-font-ui);font-weight:600;color:var(--lv-text-primary);text-decoration:none;background-image:linear-gradient(currentColor,currentColor),linear-gradient(var(--lv-line-strong),var(--lv-line-strong));background-size:0% 1px,100% 1px;background-position:0 78%,0 78%;background-repeat:no-repeat;transition:background-size 200ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__link:hover,.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__link:focus-visible{background-size:100% 1px,100% 1px}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__link:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:4px}
@media (prefers-reduced-motion:reduce){.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__link{transition:none}}
.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__tekst>*,.lv-tenant-tinyhousevanellus-galleri-rail .lv-tenant-tinyhousevanellus-galleri-rail__link>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-kontakt-booking{position:relative;isolation:isolate;overflow:clip;padding-block:var(--lv-section-py-lg) var(--lv-space-7);padding-inline:var(--lv-gutter);background:var(--lv-text-primary);color:rgb(255 255 255 / .96)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-form__trap{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);left:0;top:0}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__media{position:absolute;inset:0;z-index:-1;margin:0;overflow:hidden;background:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__foto{display:block;inline-size:100%;block-size:100%;max-inline-size:100%;object-fit:cover}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__media::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgb(0 0 0 / .66),rgb(0 0 0 / .3) 75%)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__lys{position:absolute;inset:0;z-index:1;background:linear-gradient(105deg,rgb(255 255 255 / 0) 35%,rgb(255 255 255 / .12) 50%,rgb(255 255 255 / 0) 65%);opacity:0;pointer-events:none;background-size:250% 100%;background-repeat:no-repeat}
@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__lys{animation:lv-tenant-tinyhousevanellus-kontakt-booking-lys linear both;animation-timeline:view();animation-range:cover 0% exit 60%}}}
@keyframes lv-tenant-tinyhousevanellus-kontakt-booking-lys{from{background-position:100% 0;opacity:.9}to{background-position:0% 0;opacity:.9}}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__inner{position:relative;max-inline-size:var(--lv-container-max);margin-inline:auto;display:grid;grid-template-columns:5fr 6fr;gap:clamp(2rem,5vw,4.5rem);align-items:end}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__inner>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__udsagn{display:grid;gap:var(--lv-space-5);justify-items:start;padding-block-end:var(--lv-space-6)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__kicker{margin:0;font-family:var(--lv-font-ui);font-size:.78rem;font-weight:600;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:rgb(255 255 255 / .82)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__titel{margin:0;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:clamp(2.4rem,1.4rem + 3.6vw,4.25rem);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-tracking-heading);text-wrap:balance;overflow-wrap:anywhere}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__lede{margin:0;max-inline-size:32rem;font-family:var(--lv-font-ui);font-size:var(--lv-text-lg);line-height:var(--lv-leading-snug);color:rgb(255 255 255 / .9)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__handlinger{display:flex;flex-wrap:wrap;gap:.75rem}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__handling{display:inline-flex;align-items:center;justify-content:center;min-block-size:44px;padding:.6rem 1.15rem;font-family:var(--lv-font-ui);font-weight:600;color:inherit;text-decoration:none;border:1px solid rgb(255 255 255 / .72);border-radius:var(--lv-btn-radius);transition:border-color 160ms cubic-bezier(0.22,1,0.36,1),transform 160ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__handling:hover,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__handling:focus-visible{border-color:var(--lv-accent);transform:translateY(-1px)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__handling:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__note{margin:0;max-inline-size:30rem;font-family:var(--lv-font-ui);font-size:.9rem;color:rgb(255 255 255 / .78)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__skema{display:grid;gap:var(--lv-space-5);padding:clamp(1.5rem,4vw,2.5rem);background:var(--lv-surface);color:var(--lv-text-primary);border-radius:var(--lv-radius-lg);box-shadow:var(--lv-lift-3)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__skema:focus{outline:none}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__skema:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:4px}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__skematitel{margin:0;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:var(--lv-text-xl);line-height:var(--lv-leading-tight)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__form{display:grid;gap:var(--lv-space-5);margin:0}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felter>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt{display:grid;gap:.35rem;align-content:start}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt--bred{grid-column:1 / -1}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt label{font-family:var(--lv-font-ui);font-size:.9rem;font-weight:600}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt input,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt select,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt textarea{box-sizing:border-box;inline-size:100%;max-inline-size:100%;min-block-size:44px;padding:.6rem .75rem;font:inherit;font-family:var(--lv-font-ui);color:var(--lv-text-primary);background:var(--lv-canvas);border:1px solid var(--lv-line-strong);border-radius:var(--lv-radius-sm);transition:border-color 160ms cubic-bezier(0.22,1,0.36,1),outline-color 160ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt textarea{resize:vertical}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt input:focus-visible,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt select:focus-visible,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt textarea:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:1px}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt input:user-invalid,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt select:user-invalid,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt textarea:user-invalid{border-color:var(--lv-text-primary);outline:2px solid color-mix(in oklab,var(--lv-brand) 55%,transparent);outline-offset:1px}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__hjaelp{margin:0;font-family:var(--lv-font-ui);font-size:.82rem;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__samtykke{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;align-items:start;min-block-size:44px;font-family:var(--lv-font-ui);font-size:.88rem;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__samtykke input{inline-size:1.1rem;block-size:1.1rem;margin:.15rem 0 0;accent-color:var(--lv-brand)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__samtykke input:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:2px}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__send{justify-self:start;display:inline-flex;align-items:center;min-block-size:44px;padding:.75rem 1.4rem;font-family:var(--lv-font-ui);font-size:1rem;font-weight:600;color:var(--lv-text-on-brand);background:var(--lv-brand);border:0;border-radius:var(--lv-btn-radius);cursor:pointer;transition:transform 160ms cubic-bezier(0.22,1,0.36,1),background-color 160ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__send:hover,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__send:focus-visible{background:var(--lv-brand-strong)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__send:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:3px}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__send:active{transform:scale(.97);transition-duration:80ms}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__kvittering{display:none;margin:0;padding:1rem 1.1rem;font-family:var(--lv-font-ui);background:var(--lv-surface-sunken);border-radius:var(--lv-radius-sm)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__kvittering:target{display:block}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__jura{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.35rem 1.25rem;margin:var(--lv-space-7) 0 0;font-family:var(--lv-font-ui);font-size:.8rem;color:rgb(255 255 255 / .72)}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__mikro{display:inline-flex;align-items:center;min-block-size:24px;color:inherit;text-underline-offset:3px}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__mikro:focus-visible{outline:2px solid currentColor;outline-offset:2px}
@media (max-width:900px){.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__inner{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felter{grid-template-columns:minmax(0,1fr)} .lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__handlinger{flex-direction:column;align-items:stretch;inline-size:100%}}
@media (prefers-reduced-transparency:reduce){.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__media::after{background:rgb(0 0 0 / .68)}}
@media (prefers-reduced-motion:no-preference){.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt input:user-invalid,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt select:user-invalid,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt textarea:user-invalid{animation:lv-tenant-tinyhousevanellus-kontakt-booking-puls 520ms cubic-bezier(0.22,1,0.36,1) 1}}
@media (prefers-reduced-motion:reduce){.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__handling,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__send,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt input,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt select,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felt textarea{transition:none}}
@keyframes lv-tenant-tinyhousevanellus-kontakt-booking-puls{from{outline-color:transparent}to{outline-color:color-mix(in oklab,var(--lv-brand) 55%,transparent)}}
.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__inner>*,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__handling>*,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__felter>*,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__samtykke>*,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__send>*,.lv-tenant-tinyhousevanellus-kontakt-booking .lv-tenant-tinyhousevanellus-kontakt-booking__mikro>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-om-fortaelling{padding-block:var(--lv-section-py-lg);padding-inline:var(--lv-gutter);background:var(--lv-canvas);color:var(--lv-text-primary);overflow-x:clip}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__inner{max-inline-size:var(--lv-container-max);margin-inline:auto;display:grid;gap:var(--lv-space-9)}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__rows{display:grid;gap:clamp(4rem,9vw,8rem)}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__row{display:grid;grid-template-columns:5fr 6fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__row>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__row:nth-child(even){grid-template-columns:6fr 5fr}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__row:nth-child(even) .lv-tenant-tinyhousevanellus-om-fortaelling__plade{order:2}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__plade{margin:0;display:grid;gap:.9rem}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__ramme{aspect-ratio:4/5;overflow:hidden;border-radius:var(--lv-radius-lg);background:var(--lv-surface-sunken)}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__foto{display:block;inline-size:100%;block-size:100%;max-inline-size:100%;object-fit:cover}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__billedtekst{display:flex;align-items:center;gap:.75rem;font-family:var(--lv-font-ui);font-size:.72rem;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__billedtekst::before{content:"";inline-size:1.5rem;block-size:1px;background:var(--lv-line-strong)}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__tekst{display:grid;gap:var(--lv-space-5);max-inline-size:32rem}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__rowkicker{margin:0;font-family:var(--lv-font-ui);font-size:.75rem;font-weight:600;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__rowtitel{margin:0;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:var(--lv-text-xl);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-tracking-heading);text-wrap:balance}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__brod{margin:0;font-family:var(--lv-font-ui);font-size:var(--lv-text-md);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary);max-inline-size:62ch}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__udsagn{margin:0;padding-inline-start:var(--lv-space-6);border-inline-start:1px solid var(--lv-line-strong);font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:var(--lv-text-xl);line-height:var(--lv-leading-snug);max-inline-size:36rem;text-wrap:balance}
@media (max-width:800px){.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__row,.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__row:nth-child(even){grid-template-columns:minmax(0,1fr)} .lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__row:nth-child(even) .lv-tenant-tinyhousevanellus-om-fortaelling__plade{order:0} .lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__ramme{aspect-ratio:4/5;max-inline-size:28rem}}
@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__ramme{animation:lv-tenant-tinyhousevanellus-om-fortaelling-aabn linear both;animation-timeline:view();animation-range:entry 0% cover 40%}}}
@keyframes lv-tenant-tinyhousevanellus-om-fortaelling-aabn{from{clip-path:inset(9% 12% 9% 12% round var(--lv-radius-lg))}to{clip-path:inset(0 0 0 0 round var(--lv-radius-lg))}}

.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__hoved{max-inline-size:44rem;display:grid;gap:var(--lv-space-5)}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__kicker{margin:0;font-family:var(--lv-font-ui);font-size:.78rem;font-weight:600;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__titel{margin:0;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:var(--lv-text-2xl);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-tracking-heading);text-wrap:balance;color:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__intro{margin:0;font-family:var(--lv-font-ui);font-size:var(--lv-text-lg);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary);max-inline-size:38rem}

.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__videre{margin:0}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__link{display:inline-flex;align-items:center;min-block-size:44px;font-family:var(--lv-font-ui);font-weight:600;color:var(--lv-text-primary);text-decoration:none;background-image:linear-gradient(currentColor,currentColor),linear-gradient(var(--lv-line-strong),var(--lv-line-strong));background-size:0% 1px,100% 1px;background-position:0 78%,0 78%;background-repeat:no-repeat;transition:background-size 200ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__link:hover,.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__link:focus-visible{background-size:100% 1px,100% 1px}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__link:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:4px}
@media (prefers-reduced-motion:reduce){.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__link{transition:none}}
.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__row>*,.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__billedtekst>*,.lv-tenant-tinyhousevanellus-om-fortaelling .lv-tenant-tinyhousevanellus-om-fortaelling__link>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-opholdet-priser{padding-block:var(--lv-section-py-lg);padding-inline:var(--lv-gutter);background:var(--lv-canvas);color:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__inner{max-inline-size:var(--lv-container-max);margin-inline:auto;display:grid;gap:var(--lv-space-8)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__kort{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--lv-space-6);align-items:stretch}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__kort>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__plan{display:grid;grid-template-rows:auto auto auto 1fr auto auto;gap:var(--lv-space-5);padding:var(--lv-space-7) var(--lv-space-6);background:var(--lv-surface);border:1px solid var(--lv-line);border-radius:var(--lv-radius-lg);transition:border-color 200ms cubic-bezier(0.22,1,0.36,1),box-shadow 200ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__plan:has(.lv-tenant-tinyhousevanellus-opholdet-priser__radio:checked){border-color:var(--lv-line-strong);box-shadow:var(--lv-lift-2)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__maerke{justify-self:start;margin:0;min-block-size:1.6rem;padding:.3rem .75rem;font-family:var(--lv-font-ui);font-size:.72rem;font-weight:600;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;background:var(--lv-brand);color:var(--lv-text-on-brand);border-radius:var(--lv-radius-pill)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__maerke:empty{visibility:hidden}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__planhoved{display:grid;gap:.35rem}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__navn{margin:0;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:var(--lv-text-xl);line-height:var(--lv-leading-tight)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__til{margin:0;font-family:var(--lv-font-ui);color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__pris{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .6rem;font-variant-numeric:tabular-nums lining-nums}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__anker{font-family:var(--lv-font-ui);color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__anker:empty{display:none}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__fra{font-family:var(--lv-display-family);font-size:var(--lv-text-2xl);line-height:1}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__enhed{font-family:var(--lv-font-ui);font-size:.95rem;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__liste{margin:0;padding:0;list-style:none;display:grid;gap:.6rem;font-family:var(--lv-font-ui);align-content:start}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__liste li{display:grid;grid-template-columns:1.25rem minmax(0,1fr);gap:.5rem;align-items:baseline}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__tegn{font-weight:700;color:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__nej{color:var(--lv-text-secondary);text-decoration:line-through}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__valg{display:flex;align-items:center;gap:.6rem;min-block-size:44px;font-family:var(--lv-font-ui);cursor:pointer}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__radio{inline-size:1.15rem;block-size:1.15rem;margin:0;accent-color:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__radio:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:3px}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__handling{display:inline-flex;justify-content:center;align-items:center;min-block-size:44px;padding:.7rem 1.1rem;font-family:var(--lv-font-ui);font-weight:600;text-decoration:none;text-align:center;color:var(--lv-text-primary);border:1px solid var(--lv-text-primary);border-radius:var(--lv-btn-radius);transition:transform 160ms cubic-bezier(0.22,1,0.36,1),box-shadow 160ms cubic-bezier(0.22,1,0.36,1),background-color 160ms cubic-bezier(0.22,1,0.36,1),color 160ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__handling:hover,.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__handling:focus-visible{background-color:var(--lv-text-primary);color:var(--lv-canvas);transform:translateY(-1px);box-shadow:var(--lv-lift-2)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__handling:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:3px}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__handling:active{transform:scale(.97);transition-duration:80ms}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__note{margin:0;max-inline-size:44rem;font-family:var(--lv-font-ui);font-size:.95rem;color:var(--lv-text-secondary)}
@media (max-width:900px){.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__kort{grid-template-columns:minmax(0,1fr)} .lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__plan:has(.lv-tenant-tinyhousevanellus-opholdet-priser__maerke:not(:empty)){order:-1}}
@media (prefers-reduced-motion:reduce){.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__plan,.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__handling{transition:none}}

.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__hoved{max-inline-size:44rem;display:grid;gap:var(--lv-space-5)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__kicker{margin:0;font-family:var(--lv-font-ui);font-size:.78rem;font-weight:600;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-secondary)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__titel{margin:0;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:var(--lv-text-2xl);line-height:var(--lv-leading-tight);letter-spacing:var(--lv-tracking-heading);text-wrap:balance;color:var(--lv-text-primary)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__intro{margin:0;font-family:var(--lv-font-ui);font-size:var(--lv-text-lg);line-height:var(--lv-leading-snug);color:var(--lv-text-secondary);max-inline-size:38rem}

.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__praktisk{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,6vw,5rem);align-items:start;padding-block-start:var(--lv-space-8)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__praktisk>*{min-inline-size:0}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__plade{margin:0}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__ramme{aspect-ratio:1/1;overflow:hidden;border-radius:var(--lv-radius-lg);background:var(--lv-surface-sunken)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__foto{display:block;inline-size:100%;block-size:100%;max-inline-size:100%;object-fit:cover}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__fakta{display:grid;gap:var(--lv-space-6)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__h2{margin:0;font-family:var(--lv-display-family);font-weight:var(--lv-weight-heading);font-size:var(--lv-text-xl);line-height:var(--lv-leading-tight)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__dl{margin:0;display:grid;gap:var(--lv-space-5)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__par{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:.4rem 1.5rem}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__par dt{font-family:var(--lv-font-ui);font-size:.78rem;font-weight:600;letter-spacing:var(--lv-tracking-eyebrow);text-transform:uppercase;color:var(--lv-text-secondary);padding-top:.2rem}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__par dd{margin:0;font-family:var(--lv-font-ui);line-height:var(--lv-leading-normal)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__spmblok{display:grid;gap:var(--lv-space-6);max-inline-size:52rem;padding-block-start:var(--lv-space-8)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__spmliste{display:grid;gap:.5rem}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__spm{border-block-end:1px solid var(--lv-line)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__sporgsmaal{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-block-size:44px;padding-block:.9rem;font-family:var(--lv-font-ui);font-weight:600;font-size:var(--lv-text-md);cursor:pointer;list-style:none}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__sporgsmaal::-webkit-details-marker{display:none}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__sporgsmaal:focus-visible{outline:2px solid var(--lv-text-primary);outline-offset:3px}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__ikon{position:relative;flex:none;inline-size:1rem;block-size:1rem}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__vandret,.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__lodret{position:absolute;inset-inline:0;inset-block-start:calc(50% - .5px);block-size:1px;background:currentColor;transition:transform 200ms cubic-bezier(0.22,1,0.36,1),opacity 200ms cubic-bezier(0.22,1,0.36,1)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__lodret{transform:rotate(90deg)}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__spm[open] .lv-tenant-tinyhousevanellus-opholdet-priser__lodret{transform:rotate(0deg);opacity:0}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__svar{margin:0 0 1.1rem;max-inline-size:62ch;font-family:var(--lv-font-ui);line-height:var(--lv-leading-normal);color:var(--lv-text-secondary)}
@media (max-width:800px){.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__praktisk{grid-template-columns:minmax(0,1fr)} .lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__ramme{max-inline-size:26rem} .lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__par{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__vandret,.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__lodret{transition:none}}
.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__kort>*,.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__liste li>*,.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__valg>*,.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__handling>*,.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__praktisk>*,.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__par>*,.lv-tenant-tinyhousevanellus-opholdet-priser .lv-tenant-tinyhousevanellus-opholdet-priser__sporgsmaal>*{min-inline-size:0}
[data-lv-hidden]{display:none!important}
:where(p,div,li,a,figure,blockquote):has(>[data-lv-hidden]:only-child){display:none!important}