@font-face { font-family: "Söhne"; src: url("fonts/soehne-leicht.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Söhne"; src: url("fonts/soehne-buch.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Söhne"; src: url("fonts/soehne-buch-kursiv.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Söhne"; src: url("fonts/soehne-kraftig.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Söhne"; src: url("fonts/soehne-halbfett.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Söhne Mono"; src: url("fonts/soehne-mono-buch.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Söhne Mono"; src: url("fonts/soehne-mono-kraftig.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Domaine Display"; src: url("fonts/domaine-display-regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Domaine Display"; src: url("fonts/domaine-display-regular-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Domaine Display"; src: url("fonts/domaine-display-semibold.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Domaine Text"; src: url("fonts/domaine-text-regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Domaine Text"; src: url("fonts/domaine-text-regular-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Reenie Beanie"; src: url("fonts/ReenieBeanie-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@import url("https://fonts.googleapis.com/css2?family=Caveat:wght@400;500;600;700&display=swap");
:root {
  --display: "Domaine Display", "Times New Roman", serif;
  --serif:   "Domaine Text", Georgia, serif;
  --sans:    "Söhne", -apple-system, "Helvetica Neue", Arial, sans-serif;
  --mono:    "Söhne Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --hand:    "Caveat", "Comic Sans MS", cursive;
  --hand-note: "Reenie Beanie", "Caveat", cursive;
  --paper:    oklch(0.985 0.006 80);
  --paper-2:  oklch(0.96  0.008 80);
  --paper-3:  oklch(0.92  0.010 80);
  --ground:   oklch(0.94  0.009 80);
  --rule:     oklch(0.78  0.012 75);
  --rule-soft:oklch(0.86  0.010 75);
  --ink:      oklch(0.22  0.018 60);
  --ink-2:    oklch(0.40  0.015 60);
  --ink-3:    oklch(0.54  0.012 60);
  --accent:   oklch(0.62  0.14  55);
  --accent-2: oklch(0.55  0.14  55);
  --accent-ink: oklch(0.99 0.005 80);
  --bronze:   oklch(0.42  0.10  50);
  --contour-url: url("assets/contour-moremi.webp");
  --pen:      oklch(0.58 0.18 25);
  --mo-fast: 150ms;
  --mo-base: 200ms;
  --mo-enter: 260ms;
  --mo-slow: 600ms;
  --mo-ease: ease;
  --mo-curve: cubic-bezier(.2,.7,.2,1);
}
html, body {
  margin: 0;
  padding: 0;
  background: var(--ground);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
* { box-sizing: border-box; }
.contour-wash {
  position: relative;
}
.contour-wash::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--contour-url);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  pointer-events: none;
  z-index: 0;
}
.contour-wash > * { position: relative; z-index: 1; }
.contour-wash.dark::before { opacity: 0.35; filter: invert(1) brightness(2.5) contrast(1.2); mix-blend-mode: lighten; }
.contour-wash.paper::before { opacity: 0.45; mix-blend-mode: multiply; }
.contour-wash.paper-strong::before { opacity: 0.55; mix-blend-mode: multiply; }
.so-locator.wash-art { min-height: 0; aspect-ratio: var(--wash-ar); container-type: inline-size; }
.wf-d.wash-art-serengeti-overview { --wash-ar: 1236 / 760; }
.wf-m.wash-art-serengeti-overview { --wash-ar: 784 / 660; }
.wf-d.wash-art-serengeti-orientation { --wash-ar: 1920 / 800; }
.wf-m.wash-art-serengeti-orientation { --wash-ar: 780 / 860; }
.wash-art::after { content: ""; position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center; pointer-events: none; }
.wf-d.wash-art-serengeti-overview::after { background-image: url("assets/wash-serengeti-overview-desktop-2x.webp"); }
.wf-m.wash-art-serengeti-overview::after { background-image: url("assets/wash-serengeti-overview-mobile-2x.webp"); }
.wf-d.wash-art-moremi-overview { --wash-ar: 1236 / 760; }
.wf-m.wash-art-moremi-overview { --wash-ar: 784 / 660; }
.wf-d.wash-art-moremi-overview::after { background-image: url("assets/wash-moremi-overview-desktop-2x.webp"); }
.wf-m.wash-art-moremi-overview::after { background-image: url("assets/wash-moremi-overview-mobile-2x.webp"); }
.wf-d.wash-art-serengeti-orientation::after { background-image: url("assets/wash-serengeti-orientation-desktop-2x.webp"); }
.wf-m.wash-art-serengeti-orientation::after { background-image: url("assets/wash-serengeti-orientation-mobile-2x.webp"); }
.wf-d.wash-art-moremi-orientation { --wash-ar: 1920 / 800; }
.wf-m.wash-art-moremi-orientation { --wash-ar: 780 / 860; }
.wf-d.wash-art-moremi-orientation::after { background-image: url("assets/wash-moremi-orientation-desktop-2x.webp"); }
.wf-m.wash-art-moremi-orientation::after { background-image: url("assets/wash-moremi-orientation-mobile-2x.webp"); }
@container (max-width: 340px) {
  .wf-m .wxl-target { white-space: normal !important; width: 150px !important; line-height: 1.25; }
  .wf-m .so-pin > .t-display { font-size: clamp(13px, 5.8cqw, 20px) !important; }
}
@container (max-width: 600px) {
  .so-locator.wash-art .so-pin svg { max-width: clamp(22px, 7cqw, 38px); height: auto; }
  .so-locator.wash-art .so-pin { gap: 6px; }
  .so-locator.wash-art .so-pin-coord { font-size: 8.5px; }
  .so-locator.wash-art .so-map-whisper { font-size: 8.5px; }
}
.wxl-borderlabel { position: absolute; z-index: 1; font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); white-space: nowrap; }
.wx-il { display: grid; gap: 24px; }
.wx-il-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.wx-il-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.wx-il-1 { grid-template-columns: 1fr; }
@media (max-width: 1040px) { .wx-il-3, .wx-il-2 { grid-template-columns: 1fr; } }
#root { max-width: 1440px; margin-inline: auto; background: var(--paper); }
.wf {
  width: 100%;
  height: 100%;
  background: var(--paper);
  font-family: var(--sans);
  color: var(--ink);
  font-size: 14px;
  line-height: 1.5;
  position: relative;
  overflow: clip;
}
.ph {
  position: relative;
  background:
    repeating-linear-gradient(
      45deg,
      var(--paper-2) 0 8px,
      var(--paper-3) 8px 16px
    );
  border: 1px solid var(--rule);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: var(--ink-2);
}
.ph .ph-label {
  font-family: var(--mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  background: var(--paper);
  border: 1px solid var(--rule);
  padding: 4px 8px;
  border-radius: 2px;
  max-width: 80%;
  text-align: center;
  line-height: 1.3;
}
.ph > picture { display: block; width: 100%; height: 100%; }
.ph-pic { border: 0; background: var(--paper-2); }
.ph.dark.ph-pic { background: oklch(0.28 0.018 60); }
.ph.dark {
  background:
    repeating-linear-gradient(
      45deg,
      oklch(0.32 0.018 60) 0 8px,
      oklch(0.28 0.018 60) 8px 16px
    );
  border-color: oklch(0.22 0.02 60);
  color: var(--paper);
}
.ph.dark .ph-label {
  background: oklch(0.22 0.02 60);
  border-color: oklch(0.18 0.02 60);
  color: var(--paper-2);
}
.ph.video::after {
  content: "▶";
  position: absolute;
  top: 12px; right: 14px;
  font-size: 12px;
  color: var(--ink-2);
  background: var(--paper);
  border: 1px solid var(--rule);
  padding: 2px 8px;
  border-radius: 999px;
  font-family: var(--mono);
  letter-spacing: 0.05em;
}
.ph.video.dark::after {
  background: oklch(0.22 0.02 60);
  border-color: oklch(0.18 0.02 60);
  color: var(--paper-2);
  content: "▶ video";
}
.tx {
  background: var(--paper-3);
  border-radius: 2px;
  height: 0.7em;
  display: block;
  margin: 6px 0;
}
.tx.lg    { height: 1em; }
.t-display { font-family: var(--display); font-weight: 400; letter-spacing: -0.015em; line-height: 1.05; }
.t-displayIt { font-family: var(--display); font-weight: 400; font-style: italic; letter-spacing: -0.015em; line-height: 1.05; }
.t-serif   { font-family: var(--serif);   font-weight: 400; line-height: 1.5; }
.t-sans    { font-family: var(--sans);    font-weight: 400; }
.t-eyebrow { font-family: var(--sans);    font-weight: 500; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); }
.t-mono    { font-family: var(--mono);    font-weight: 400; letter-spacing: 0.04em; text-transform: uppercase; font-size: 11px; }
.t-italic  { font-style: italic; }
.t-muted   { color: var(--ink-3); }
.t-ink2    { color: var(--ink-2); }
.t-accent  { color: var(--accent); }
.t-bronze  { color: var(--bronze); }
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--ink);
  color: var(--paper);
  border: 1px solid var(--ink);
  padding: 10px 16px;
  border-radius: 2px;
  font-family: var(--sans);
  font-weight: 500;
  font-size: 14px;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
}
.btn.accent { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.btn.ghost { background: transparent; color: var(--ink); }
.btn.lg { padding: 14px 22px; font-size: 15px; }
.btn.sm { padding: 6px 12px; font-size: 12px; }
.btn.block { width: 100%; }
.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 9px;
  border: 1px solid var(--rule);
  border-radius: 999px;
  color: var(--ink-2);
  background: var(--paper);
}
.chip.solid { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.chip.accent { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
.rule {
  height: 1px;
  background: var(--rule-soft);
  margin: 16px 0;
}
.rule.heavy { background: var(--rule); }
.heart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--paper);
  border: 1px solid var(--rule);
  color: var(--ink);
  cursor: pointer;
  transition-property: background, border-color, color; transition-duration: var(--mo-fast); transition-timing-function: var(--mo-ease);
}
@media (hover: hover) { .heart:hover {border-color: var(--ink-3); background: var(--paper-2); } }
.heart.on { color: var(--accent); border-color: var(--accent); background: var(--paper); }
.icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--paper);
  border: 1px solid var(--rule);
  color: var(--ink-2);
  cursor: pointer;
  transition-property: background, border-color, color; transition-duration: var(--mo-fast); transition-timing-function: var(--mo-ease);
  text-decoration: none;
}
@media (hover: hover) { .icon-btn:hover {border-color: var(--ink-3); background: var(--paper-2); color: var(--ink); } }
.icon-btn.dk { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.18); color: white; }
@media (hover: hover) { .icon-btn.dk:hover {background: rgba(255,255,255,0.16); border-color: rgba(255,255,255,0.34); color: white; } }
.icon-btn.sm { width: 32px; height: 32px; }
.icon-btn.lg { width: 44px; height: 44px; }
.icon-btn:focus-visible,
.pr-hero-save:focus-visible,
.pr-dock-save:focus-visible,
.a-acc-head:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.wf .anno {
  font-family: var(--hand);
  color: var(--pen);
  font-weight: 600;
  font-size: 16px;
  line-height: 1.1;
  pointer-events: none;
  position: absolute;
  z-index: 50;
  opacity: 1;
  transition: opacity var(--mo-base) var(--mo-ease);
}
.wf .anno.sm { font-size: 14px; }
.wf .anno.lg { font-size: 19px; }
.wf .anno-line {
  position: absolute;
  pointer-events: none;
  z-index: 49;
  color: var(--pen);
}
body.no-anno .anno,
body.no-anno .anno-line { display: none !important; }
.frame-bezel-mobile {
  width: 100%; min-height: 100%;
  border-radius: 28px;
  background: oklch(0.18 0.005 80);
  padding: 8px;
  position: relative;
}
.frame-bezel-mobile::before {
  content: "";
  position: absolute;
  top: 14px; left: 50%;
  transform: translateX(-50%);
  width: 90px; height: 18px;
  background: oklch(0.10 0.005 80);
  border-radius: 999px;
  z-index: 2;
}
.frame-screen-mobile {
  width: 100%; min-height: calc(100% - 16px);
  border-radius: 22px;
  overflow: clip;
  background: var(--paper);
  position: relative;
}
.frame-bezel-desktop {
  width: 100%; min-height: 100%;
  border: 1px solid var(--rule);
  background: var(--paper);
  position: relative;
  overflow: clip;
}
.frame-bezel-desktop .tabbar {
  height: 30px;
  background: var(--paper-2);
  border-bottom: 1px solid var(--rule);
  display: flex;
  align-items: center;
  padding: 0 12px;
  gap: 8px;
  font-family: var(--mono);
  font-size: 10px;
  color: var(--ink-3);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.frame-bezel-desktop .tabbar .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--rule); display: inline-block; }
.frame-bezel-desktop .frame-screen-desktop {
  width: 100%;
  position: relative;
  overflow: clip;
  background: var(--paper);
}
.faux-status {
  height: 22px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 18px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.05em;
  color: var(--ink-2);
}
.row { display: flex; }
.col { display: flex; flex-direction: column; }
  .gap-8 { gap: 8px; }
.flex-1 { flex: 1; }
.center { display: flex; align-items: center; justify-content: center; }
.between { display: flex; justify-content: space-between; align-items: center; }
body.coord-off .coord-stamp { display: none !important; }
.folio-marks .folio {
  position: fixed;
  font-family: var(--mono);
  font-size: 9.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-3);
  opacity: 0.85;
  pointer-events: none;
  z-index: 100;
}
.folio-marks .folio-tl { top: 16px; left: max(20px, calc((100% - 1440px) / 2 + 20px)); }
.folio-marks .folio-tr { top: 16px; right: max(20px, calc((100% - 1440px) / 2 + 20px)); }
.folio-marks .folio-bl { bottom: 16px; left: max(20px, calc((100% - 1440px) / 2 + 20px)); }
.folio-marks .folio-br { bottom: 16px; right: max(20px, calc((100% - 1440px) / 2 + 20px)); }
.ht-stage { position: relative; overflow: hidden; width: 100%; background: oklch(0.3 0.03 60); }
.ht-stage.no-trans * { transition: none !important; }
.ht-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0;
  filter: grayscale(0) sepia(0) saturate(1) brightness(1) contrast(1); transition: filter 1.7s ease; }
.is-morph .ht-video { filter: grayscale(1) sepia(0.55) saturate(1.1) brightness(1.12) contrast(1.02); }
.ht-footchip { position: absolute; top: 16px; left: 16px; z-index: 6; font-family: var(--mono); font-size: 9px;
  letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.82); background: rgba(0,0,0,0.28);
  border: 1px solid rgba(255,255,255,0.28); padding: 5px 9px; display: inline-flex; align-items: center; gap: 7px;
  backdrop-filter: blur(2px); opacity: 1; transition: opacity 0.5s ease; }
.ht-tri { width: 0; height: 0; border-left: 6px solid currentColor; border-top: 4px solid transparent; border-bottom: 4px solid transparent; }
.is-morph .ht-footchip { opacity: 0; }
.ht-veil { position: absolute; inset: 0; z-index: 1; background: oklch(0.93 0.018 80); opacity: 0; transition: opacity 1.5s ease; }
.is-morph .ht-veil { opacity: 0.34; }
.ht-textveil { position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background: linear-gradient(100deg, oklch(0.95 0.015 84 / 0.94) 0%, oklch(0.95 0.015 84 / 0.66) 26%, transparent 54%);
  opacity: 0; transition: opacity 1.4s ease 0.3s; }
.is-morph .ht-textveil { opacity: 1; }
.ht-coordscrim { position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background: radial-gradient(ellipse 52% 44% at 100% 0%, oklch(0.95 0.015 84 / 0.66) 0%, oklch(0.95 0.015 84 / 0.26) 44%, transparent 70%);
  opacity: 0; transition: opacity 1.4s ease 0.3s; }
.is-morph .ht-coordscrim { opacity: 1; }
.ht-contours { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 2; }
.ht-line { fill: none; opacity: 0; stroke-dasharray: 1; stroke-dashoffset: 1; transition: opacity 0.6s ease, stroke-dashoffset 1.9s ease; }
.ht-halo { stroke: oklch(0.96 0.012 85); stroke-width: 3.4; }
.ht-ink  { stroke: oklch(0.34 0.035 55); stroke-width: 1.2; }
.is-morph .ht-halo { opacity: 0.5; stroke-dashoffset: 0; }
.is-morph .ht-ink  { opacity: 0.5; stroke-dashoffset: 0; }
.ht-frame { position: absolute; inset: 22px; border: 1px solid oklch(0.4 0.03 55 / 0.5); z-index: 4; opacity: 0; transition: opacity 0.9s ease 0.2s; }
.is-morph .ht-frame { opacity: 1; }
.ht-coord { position: absolute; top: 34px; right: 40px; z-index: 5; font-family: var(--mono); font-size: 10.5px;
  font-weight: 600; letter-spacing: 0.14em; color: var(--ink-2);
  text-shadow: 0 0 2px oklch(0.95 0.015 84 / 0.7), 0 1px 14px oklch(0.95 0.015 84 / 0.9); }
.ht-text { position: absolute; inset: 0; z-index: 5; padding: 0 60px; display: flex; flex-direction: column; justify-content: center; }
.ht-word { font-size: 118px; line-height: 0.84; letter-spacing: -0.035em; margin: 0; color: var(--ink);
  text-shadow: 0 0 3px oklch(0.95 0.015 84 / 0.5), 0 2px 30px oklch(0.95 0.015 84 / 0.7); }
.ht-thesis { font-size: 26px; line-height: 1.2; margin: 22px 0 0; max-width: 520px; color: var(--ink-2);
  text-shadow: 0 0 2px oklch(0.95 0.015 84 / 0.7), 0 1px 18px oklch(0.95 0.015 84 / 0.9); }
.ht-accent { color: var(--accent-2); text-shadow: 0 0 2px oklch(0.95 0.015 84 / 0.75), 0 1px 16px oklch(0.95 0.015 84 / 0.92); }
.ht-cta { display: flex; align-items: center; gap: 16px; margin-top: 32px; }
.ht-link { display: inline-flex; align-items: center; gap: 9px; font-family: var(--sans); font-size: 14.5px; font-weight: 500;
  color: var(--ink); border-bottom: 1.5px solid var(--accent); padding-bottom: 3px; cursor: pointer; }
.ht-rise { opacity: 1; transform: translateY(0); transition: opacity 0.85s cubic-bezier(.2,.7,.2,1), transform 0.85s cubic-bezier(.2,.7,.2,1); }
.ht-prep .ht-rise { opacity: 0; transform: translateY(20px); }
.is-morph .ht-rise { opacity: 1; transform: translateY(0); }
html.sh-js .ht-rise { opacity: 0; transform: translateY(20px); }
html.sh-js .is-morph .ht-rise { opacity: 1; transform: translateY(0); }
.ht-stage.htm .ht-frame { inset: 14px; }
.htm-footchip { top: 14px; left: 14px; font-size: 8.5px; }
.htm-topveil { position: absolute; top: 0; left: 0; right: 0; height: 120px; z-index: 3; pointer-events: none;
  background: linear-gradient(180deg, oklch(0.95 0.015 84 / 0.72) 0%, oklch(0.95 0.015 84 / 0.3) 42%, transparent 74%);
  opacity: 0; transition: opacity 1.4s ease 0.3s; }
.is-morph .htm-topveil { opacity: 1; }
.htm-botveil { position: absolute; left: 0; right: 0; bottom: 0; height: 66%; z-index: 3; pointer-events: none;
  background: linear-gradient(0deg, oklch(0.95 0.015 84 / 0.97) 0%, oklch(0.95 0.015 84 / 0.82) 24%, oklch(0.95 0.015 84 / 0.40) 46%, transparent 66%);
  opacity: 0; transition: opacity 1.4s ease 0.3s; }
.is-morph .htm-botveil { opacity: 1; }
.htm-coord { position: absolute; top: 20px; left: 22px; right: auto; z-index: 5; font-size: 9px; letter-spacing: 0.1em; }
.htm-text { position: absolute; inset: auto 22px 36px 22px; z-index: 5; padding: 0; display: flex; flex-direction: column; justify-content: flex-start; }
.htm-word { font-size: 58px; }
.htm-thesis { font-size: 17px; line-height: 1.3; margin: 14px 0 0; max-width: none; }
.htm-cta { display: flex; flex-direction: column; gap: 12px; margin-top: 22px; align-items: stretch; }
.htm-link { justify-content: center; }
.idx-list { border-bottom: 1px solid var(--rule); }
.idx-row { display: grid; grid-template-columns: 54px 1.02fr 1.32fr 40px; align-items: center; gap: 26px;
  padding: 27px 14px; border-top: 1px solid var(--rule); text-decoration: none; color: inherit; position: relative;
  transition: background var(--mo-enter) var(--mo-ease); }
.idx-row > * { transition: transform var(--mo-enter) var(--mo-ease); }
.idx-row::before { content: ""; position: absolute; left: 0; top: -1px; bottom: 0; width: 3px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform var(--mo-enter) var(--mo-ease); }
@media (hover: hover) { .idx-row:hover {background: var(--paper-2); } }
@media (hover: hover) { .idx-row:hover > * {transform: translateX(12px); } }
@media (hover: hover) { .idx-row:hover::before {transform: scaleX(1); } }
.idx-num { font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; color: var(--ink-3); transition: color var(--mo-base) var(--mo-ease), transform var(--mo-enter) var(--mo-ease); }
@media (hover: hover) { .idx-row:hover .idx-num {color: var(--accent-2); } }
.idx-main { display: flex; flex-direction: column; gap: 5px; }
.idx-title { font-size: 33px; line-height: 1.0; letter-spacing: -0.018em; color: var(--ink); }
.idx-cta { font-family: var(--mono); font-size: 10px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ink-3);
  opacity: 0; transform: translateY(-3px); transition: opacity var(--mo-enter) var(--mo-ease), transform var(--mo-enter) var(--mo-ease), color var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .idx-row:hover .idx-cta {opacity: 1; transform: translateY(0); color: var(--accent-2); } }
.idx-hook { font-size: 14px; line-height: 1.5; color: var(--ink-2); }
.idx-arrow { justify-self: end; color: var(--accent); transition: transform var(--mo-enter) var(--mo-ease); }
@media (hover: hover) { .idx-row:hover .idx-arrow {transform: translate(16px, -4px); } }
.midx-list { border-bottom: 1px solid var(--rule); }
.midx-row { display: grid; grid-template-columns: auto 1fr auto; column-gap: 14px; align-items: start;
  padding: 18px 4px 18px 16px; border-top: 1px solid var(--rule); position: relative; text-decoration: none; color: inherit; }
.midx-row::before { content: ""; position: absolute; left: 0; top: 19px; width: 3px; height: 22px; background: var(--accent); }
.midx-row:active { background: var(--paper-2); }
.midx-row:active::before { width: 5px; }
.midx-row:active .midx-num { color: var(--accent-2); }
.midx-num { font-family: var(--mono); font-size: 11px; letter-spacing: 0.08em; color: var(--ink-3); padding-top: 7px;  }
.midx-body { display: flex; flex-direction: column; gap: 5px; }
.midx-title { font-size: 24px; line-height: 1.02; letter-spacing: -0.018em; color: var(--ink); }
.midx-cta { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--accent-2); }
.midx-hook { font-size: 13.5px; line-height: 1.5; color: var(--ink-2); margin-top: 2px; }
.midx-arrow { color: var(--accent); padding-top: 6px; }
@media (prefers-reduced-motion: reduce) {
  .ht-stage *, .ht-video, .ht-line, .ht-rise, .ht-veil, .ht-textveil, .ht-coordscrim, .htm-topveil, .htm-botveil, .ht-frame, .ht-footchip { transition: none !important; }
}
.sh-modal-overlay {
  position: fixed; inset: 0; z-index: 200;
  background: oklch(0.22 0.018 60 / 0.55); backdrop-filter: blur(3px);
  display: flex; align-items: center; justify-content: center; padding: 24px;
  animation: shFade var(--mo-base) var(--mo-ease);
}
@keyframes shFade { from { opacity: 0; } to { opacity: 1; } }
.sh-modal {
  position: relative; background: var(--paper); border: 1px solid var(--rule);
  box-shadow: 0 40px 90px -30px rgba(0,0,0,0.5);
  width: 640px; max-width: 100%; max-height: 90vh; overflow-y: auto;
  padding: 40px 44px 36px;
  animation: shRise var(--mo-enter) var(--mo-curve);
}
.sh-modal-m { padding: 28px 22px 26px; width: 100%; max-width: 380px; }
@keyframes shRise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
.sh-modal-x {
  position: absolute; top: 16px; right: 16px; width: 30px; height: 30px;
  display: flex; align-items: center; justify-content: center;
  background: transparent; border: 1px solid var(--rule); border-radius: 50%;
  color: var(--ink-3); font-size: 13px; line-height: 1; cursor: pointer; padding: 0;
}
@media (hover: hover) { .sh-modal-x:hover {background: var(--paper-2); color: var(--ink); } }
.pr-hero-save {
  display: inline-flex; align-items: center; gap: 8px; padding: 12px 18px;
  background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.4);
  border-radius: 999px; color: var(--paper); font-family: var(--sans);
  font-size: 14px; font-weight: 500; cursor: pointer; backdrop-filter: blur(4px);
}
@media (hover: hover) { .pr-hero-save:hover {background: rgba(255,255,255,0.18); } }
.pr-dock-save {
  display: inline-flex; align-items: center; gap: 7px; padding: 9px 14px;
  background: var(--paper); border: 1px solid var(--rule); border-radius: 999px;
  color: var(--ink-2); font-family: var(--sans); font-size: 13px; font-weight: 500; cursor: pointer;
}
@media (hover: hover) { .pr-dock-save:hover {border-color: var(--ink-3); color: var(--ink); } }
.pr-facts { background: var(--paper); border-bottom: 1px solid var(--rule); }
.pr-facts-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; align-items: start; }
.pr-fact { display: flex; flex-direction: column; gap: 5px; }
.pr-fact:nth-child(odd) { border-right: 1px solid var(--rule-soft); padding-right: 16px; }
.pr-fact-k { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); }
.pr-fact-v { font-family: var(--sans); font-size: 15px; color: var(--ink); line-height: 1.3; }
.a-modal {
  position: relative; background: var(--paper); border: 1px solid var(--rule);
  box-shadow: 0 40px 90px -30px rgba(0,0,0,0.5);
  width: 680px; max-width: 100%; max-height: 88vh; overflow-y: auto;
  border-radius: 4px; animation: shRise var(--mo-enter) var(--mo-curve);
}
@keyframes aSheetUp { from { opacity: 0; transform: translateY(100%); } to { opacity: 1; transform: translateY(0); } }
.sh-input {
  width: 100%; box-sizing: border-box; padding: 11px 13px;
  background: var(--paper-2); border: 1px solid var(--rule); border-radius: 2px;
  font-family: var(--sans); font-size: 14px; color: var(--ink); line-height: 1.3;
  resize: vertical;
}
.sh-input:focus { border-color: var(--accent); background: var(--paper); }
.sh-input::placeholder { color: var(--ink-3); }
.sh-quiet-link {
  display: inline-flex; align-items: center; gap: 6; font-family: var(--sans);
  font-size: 13.5px; color: var(--ink-3); text-decoration: none;
}
@media (hover: hover) { .sh-quiet-link:hover {color: var(--ink); } }
.sh-door {
  display: block; text-decoration: none; color: inherit;
  background: var(--paper-2); border: 1px solid var(--rule);
  padding: 22px 22px 20px; transition: background var(--mo-fast) var(--mo-ease), border-color var(--mo-fast) var(--mo-ease);
}
@media (hover: hover) { .sh-door:hover {background: var(--paper); border-color: var(--accent); } }
.sh-door-cta {
  display: inline-flex; align-items: center; gap: 7; font-family: var(--sans);
  font-size: 13.5px; font-weight: 500; color: var(--ink);
  border-bottom: 1.5px solid var(--accent); padding-bottom: 2px;
}
.brand-lockup { display: inline-flex; align-items: center; }
.brand-lockup.mark-only { gap: 0; }
.brand-mark { display: block; }
.brand-crest { display: inline-flex; flex-direction: column; align-items: center; text-align: center; }
.brand-crest .brand-wordmark { letter-spacing: 0.24em; }
.brand-wordmark {
  font-family: var(--display); font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.2em;
  line-height: 1; white-space: nowrap;
  margin-right: -0.2em;
  -webkit-font-smoothing: antialiased;
}
@media print { .brand-wordmark { display: none !important; } }
@media (max-width: 720px) {
  .nav-lockup { min-width: 0; max-width: calc(100vw - 190px); overflow: hidden; }
  .brand-home { min-width: 0; max-width: 100%; }
  .brand-crest { min-width: 0; max-width: 100%; }
  .brand-wordmark { display: inline-block; max-width: calc(100% + 0.2em); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
}
.site-search-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; padding: 0; border: none; background: transparent;
  cursor: pointer; border-radius: 50%; color: inherit;
}
@media (hover: hover) { .site-search-icon:hover {background: rgba(127,110,90,0.12); } }
@media (hover: hover) { .site-search-icon.nav-fv-paper:hover {background: rgba(255,255,255,0.16); } }
.site-search-overlay {
  position: fixed; inset: 0; z-index: 210;
  background: oklch(0.22 0.018 60 / 0.5); backdrop-filter: blur(3px);
  display: flex; align-items: flex-start; justify-content: center;
  padding: 12vh 24px 24px; animation: shFade var(--mo-base) var(--mo-ease);
}
.site-search-panel {
  background: var(--paper); border: 1px solid var(--rule);
  box-shadow: 0 40px 90px -30px rgba(0,0,0,0.5);
  width: 640px; max-width: 100%; max-height: 76vh; overflow: hidden;
  display: flex; flex-direction: column; animation: shRise var(--mo-enter) var(--mo-curve);
}
.site-search-panel-m { width: 100%; max-width: 380px; }
@media (prefers-reduced-motion: reduce) { .sh-modal, .a-modal, .site-search-panel { animation: shFade var(--mo-base) var(--mo-ease); } }
.site-search-panel-m .site-search-input { font-size: 19px; }
.site-search-panel-m .site-search-field { padding: 15px 16px; }
.site-search-field {
  display: flex; align-items: center; gap: 12px;
  padding: 18px 20px; border-bottom: 1px solid var(--rule);
}
.site-search-input {
  flex: 1; border: none; background: transparent; outline: none;
  font-family: var(--display); font-size: 23px; letter-spacing: -0.01em;
  color: var(--ink); line-height: 1.1;
}
.site-search-input::placeholder { color: var(--ink-3); }
.site-search-close {
  flex-shrink: 0; width: 28px; height: 28px; border: 1px solid var(--rule);
  border-radius: 50%; background: transparent; color: var(--ink-3);
  font-size: 12px; cursor: pointer; padding: 0;
}
@media (hover: hover) { .site-search-close:hover {background: var(--paper-2); color: var(--ink); } }
.site-search-scope {
  font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-3); padding: 10px 20px 0;
}
.site-search-body { padding: 8px 20px 20px; overflow-y: auto; }
.site-search-hint { font-size: 14px; color: var(--ink-3); padding: 14px 0 6px; line-height: 1.5; }
.site-search-result {
  display: grid; grid-template-columns: 1fr auto auto; align-items: baseline; gap: 16px;
  padding: 14px 4px; border-bottom: 1px solid var(--rule-soft);
  text-decoration: none; color: inherit;
}
@media (hover: hover) { .site-search-result:hover {background: var(--paper-2); } }
.ssr-title { font-size: 19px; letter-spacing: -0.015em; color: var(--ink); }
.ssr-type { font-size: 9.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); }
.ssr-arrow { align-self: center; }
.site-search-empty { padding: 18px 0 8px; }
.site-search-all { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-size: 14px; font-weight: 500; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--accent); padding-bottom: 1px; }
.sr-scope { font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 14px; }
.sr-field { margin: 0 0 18px; max-width: 560px; border-bottom: 1px solid var(--rule); }
.sr-field .site-search-input { font-size: 19px; width: 100%; line-height: 1.5; height: auto; padding: 0 0 9px; }
.sr-h1 { font-size: clamp(30px, 4vw, 44px); letter-spacing: -0.02em; line-height: 1.06; color: var(--ink); margin: 0 0 10px; font-weight: 400; }
.sr-section { padding: 34px 0 6px; }
.sr-section-head { display: flex; align-items: baseline; gap: 14px; border-bottom: 1px solid var(--rule); padding-bottom: 10px; }
.sr-section-title { font-size: 23px; letter-spacing: -0.015em; color: var(--ink); margin: 0; font-weight: 400; }
.sr-section-count { font-size: 10px; letter-spacing: 0.12em; color: var(--ink-3); }
.sr-door { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 500; color: var(--ink-2); text-decoration: none; white-space: nowrap; }
@media (hover: hover) { .sr-door:hover {color: var(--ink); } }
.sr-cards { display: grid; gap: 28px; padding: 22px 0 8px; }
.sr-row { display: grid; grid-template-columns: 1fr auto auto; align-items: baseline; gap: 16px; padding: 15px 4px; border-bottom: 1px solid var(--rule-soft); text-decoration: none; color: inherit; transition: background var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .sr-row:hover {background: var(--paper-2); } }
.sr-row-main { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.sr-row-title { font-size: 19px; letter-spacing: -0.015em; color: var(--ink); }
.sr-row-line { font-size: 13.5px; line-height: 1.45; color: var(--ink-3); text-wrap: pretty; }
.sr-row-kind { font-size: 9.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); }
.sr-row-arrow { align-self: center; }
.sr-row-meta .sr-row-arrow { display: inline-flex; align-items: center; }
.sr-row-meta { display: inline-flex; align-items: center; gap: 10px; align-self: center; }
.sr-reveal { display: inline-flex; align-items: center; gap: 6px; margin: 18px 0 4px; font-size: 14px; font-weight: 500; font-family: var(--sans); color: var(--ink); background: none; border: none; padding: 0 0 2px; border-bottom: 1.5px solid var(--accent); cursor: pointer; }
.plm-credit { position: absolute; right: 10px; bottom: 8px; font-size: 9px; letter-spacing: 0.08em; color: var(--ink-2); background: oklch(1 0 0 / 0.6); padding: 2px 6px; border-radius: 2px; pointer-events: none; }
.site-search-empty-routes { display: flex; align-items: baseline; gap: 20px; margin-top: 16px; }
.site-search-empty-routes a, .site-search-empty-routes button {
  display: inline-flex; align-items: center; gap: 6px; font-family: var(--sans);
  font-size: 14px; font-weight: 500; line-height: 1.4; color: var(--ink); text-decoration: none;
  background: none; cursor: pointer; margin: 0; border: none; padding: 0 0 2px;
  border-bottom: 1.5px solid var(--accent);
}
.so-route {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--sans); font-size: 15px; font-weight: 500;
  color: var(--ink); text-decoration: none;
  border-bottom: 1.5px solid color-mix(in oklch, var(--accent) 60%, transparent);  padding-bottom: 3px;
  width: fit-content;
}
.so-route.soft { color: var(--ink-2); border-bottom-color: var(--rule); }
@media (hover: hover) { .so-route:hover {color: var(--ink); border-bottom-color: var(--accent); } }
.so-routes { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.so-ch-eyebrow { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.so-ch-num {
  font-family: var(--mono); font-weight: 600; font-size: 30px;
  letter-spacing: 0.02em; color: var(--accent-2); line-height: 1;
}
.so-ch-rule { flex: 1; height: 1px; background: var(--rule-soft); }
.so-glance { display: grid; gap: 0; }
.so-tile {
  display: flex; flex-direction: column; gap: 6px;
  padding: 24px 0; position: relative;
  border-top: 1px solid var(--rule-soft);
}
.so-tile-label { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); }
.so-tile-value { font-family: var(--display); font-size: 22px; line-height: 1.12; letter-spacing: -0.01em; color: var(--ink); }
a.so-tile { text-decoration: none; color: inherit; transition: background var(--mo-base) var(--mo-ease); }
@media (hover: hover) { a.so-tile:hover {background: var(--paper-2); } }
.so-locator {
  position: relative; min-height: 360px; overflow: hidden;
  border: 1px solid var(--rule); background: var(--paper-2);
  display: flex; align-items: center; justify-content: center;
}
.so-locator .so-pin {
  position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.so-locator .so-pin-coord { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-2); }
.so-locator .so-standin {
  position: absolute; bottom: 10px; right: 12px; z-index: 3;
  font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ink-3); background: var(--paper); border: 1px solid var(--rule); padding: 4px 8px; opacity: 0.85;
}
.crumb-strip {
  background: var(--paper);
  border-bottom: 1px solid var(--rule-soft);
  padding: 13px 60px;
}
.crumb-strip.m { padding: 6px 22px; }
.crumb-list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; align-items: center;
  font-family: var(--sans); font-size: 12.5px; line-height: 1;
}
.crumb-item { display: inline-flex; align-items: center; }
.crumb-sep { color: var(--ink-3); opacity: 0.55; margin: 0 9px; font-size: 13px; }
.crumb-link {
  color: var(--ink-3); text-decoration: none; transition: color var(--mo-fast) var(--mo-ease);
  display: inline-flex; align-items: center;
}
@media (hover: hover) { .crumb-link:hover {color: var(--ink); } }
.crumb-home { color: var(--ink-2); }
.crumb-current { color: var(--ink-2); font-weight: 500; }
.crumb-ellipsis { color: var(--ink-3); letter-spacing: 0.05em; }
.crumb-strip.m .crumb-link,
.crumb-strip.m .crumb-current { padding: 15px 0; }
.crumb-strip.m .crumb-list { font-size: 13px; }
.sw-tier { display: grid; gap: 16px; }
.sw-cast { display: grid; gap: 14px; margin-top: 16px; }
.sw-card {
  position: relative; display: flex; flex-direction: column;
  height: 100%;
  background: var(--paper); border: 1px solid var(--rule-soft);
  text-decoration: none; color: inherit; overflow: hidden;
}
.sw-card-body { padding: 15px 16px 17px; display: flex; flex-direction: column; gap: 7px; flex: 1; }
.sw-card-name { font-family: var(--display); letter-spacing: -0.015em; line-height: 1.04; color: var(--ink); margin: 0; }
.sw-card-hook { font-family: var(--sans); color: var(--ink-2); line-height: 1.5; margin: 0; }
.sw-card-note {
  font-family: var(--sans); font-style: italic; font-size: 12.5px;
  color: var(--ink-3); line-height: 1.45; margin: 8px 0 0; padding-top: 9px;
  border-top: 1px dashed var(--rule); display: flex; gap: 8px; align-items: baseline;
}
.sw-card-note-mark {
  flex-shrink: 0; font-family: var(--mono); font-style: normal; font-size: 9px;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent-2);
}
.sw-card-route {
  margin-top: auto; padding-top: 11px;
  font-family: var(--sans); font-weight: 500; color: var(--accent-2);
  display: inline-flex; align-items: center; gap: 7px;
}
.sw-card-arrow { display: inline-flex; transition: transform var(--mo-base) var(--mo-ease); }
a.sw-card { transition: border-color var(--mo-base) var(--mo-ease), box-shadow var(--mo-base) var(--mo-ease), transform var(--mo-base) var(--mo-ease); }
@media (hover: hover) { a.sw-card:hover {border-color: var(--accent); box-shadow: 0 14px 30px -22px rgba(0,0,0,0.35); } }
@media (hover: hover) { a.sw-card:hover .sw-card-arrow {transform: translate(3px, -3px); } }
.sw-card-feat .sw-card-name  { font-size: 25px; }
.sw-card-feat .sw-card-hook  { font-size: 13.5px; }
.sw-card-feat .sw-card-route { font-size: 13px; }
.sw-card-cast .sw-card-name  { font-size: 18.5px; }
.sw-card-cast .sw-card-hook  { font-size: 12.5px; line-height: 1.46; }
.sw-card-cast .sw-card-route { font-size: 12px; padding-top: 9px; }
.sw-tier-label { display: flex; align-items: baseline; gap: 14px; margin: 0 0 4px; }
.sw-tier-rule { flex: 1; height: 1px; background: var(--rule-soft); align-self: center; }
.sw-cast-more {
  margin-top: 20px; display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--sans); font-size: 14px; font-weight: 500; color: var(--ink);
  background: none; border: none; cursor: pointer; padding: 0 0 3px;
  border-bottom: 1.5px solid var(--accent);
}
@media (hover: hover) { .sw-cast-more:hover {color: var(--accent-2); } }
.bt-rate-festive  { --tone: oklch(0.45 0.125 48); --fill: oklch(0.79 0.092 50); }
.bt-rate-peak     { --tone: oklch(0.60 0.135 55); --fill: oklch(0.85 0.075 57); }
.bt-rate-shoulder { --tone: oklch(0.75 0.095 64); --fill: oklch(0.91 0.052 66); }
.bt-rate-value    { --tone: oklch(0.88 0.055 76); --fill: oklch(0.955 0.03 80); }
.bt-strip-row {
  display: grid; grid-template-columns: repeat(12, 1fr);
  border: 1px solid var(--rule-soft); background: var(--paper);
}
.bt-cell { display: flex; flex-direction: column; border-left: 1px solid rgba(255,255,255,0.4); background: var(--fill); }
.bt-cell:first-child { border-left: none; }
.bt-cell-bar { display: block; width: 100%; height: 6px; background: var(--tone); }
.bt-cell-body { padding: 11px 9px 13px; display: flex; flex-direction: column; gap: 6px; }
.bt-cell-m { font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink); }
.bt-cell-sig { font-family: var(--sans); font-size: 11px; line-height: 1.28; color: var(--ink-2); }
.bt-axisnote { font-family: var(--sans); font-style: italic; font-size: 13.5px; color: var(--ink-3); margin: 14px 0 0; }
.bt-ribbon { display: grid; grid-template-columns: repeat(12, 1fr); border: 1px solid var(--rule-soft); }
.bt-rib-cell { display: flex; flex-direction: column; align-items: center; background: var(--paper); }
.bt-rib-bar { display: block; width: 100%; height: 46px; background: var(--tone); }
.bt-rib-m { font-family: var(--mono); font-size: 8px; letter-spacing: 0; color: var(--ink-2); padding: 5px 0 7px; }
.bt-legend { display: flex; flex-wrap: wrap; gap: 9px 20px; margin: 14px 0 0; }
.bt-legend-item { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-2); }
.bt-legend-sw { width: 13px; height: 13px; border-radius: 3px; background: var(--tone); flex-shrink: 0; }
.bt-bands { margin-top: 34px; }
.bt-band { padding: 32px 0; border-top: 1px solid var(--rule); }
.bt-band:first-child { border-top: none; }
.bt-band-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px 18px; margin-bottom: 12px; }
.bt-window { font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-2); }
.bt-band-title { font-size: 28px; line-height: 1.05; letter-spacing: -0.018em; margin: 0; color: var(--ink); }
.bt-spine { display: inline-flex; gap: 2px; align-items: center; }
.bt-spine-cell { width: 17px; height: 11px; border-radius: 1px; background: var(--tone); }
.bt-spine-gap { width: 8px; }
.bt-tradeoff { font-family: var(--serif); font-style: italic; font-size: 20px; line-height: 1.5; color: var(--ink); margin: 12px 0 0; max-width: 820px; }
.bt-support {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 16px 30px; margin: 22px 0 0; padding-top: 18px; border-top: 1px solid var(--rule-soft);
}
.bt-factor-k { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 5px; }
.bt-factor-v { font-family: var(--sans); font-size: 13.5px; line-height: 1.46; color: var(--ink-2); }
.bt-price { margin-top: 18px; padding: 15px 20px; background: var(--paper-2); border-left: 3px solid var(--accent); }
.bt-price .bt-factor-k { color: var(--accent-2); margin-bottom: 6px; }
.bt-price-v { font-family: var(--sans); font-size: 15px; line-height: 1.5; color: var(--ink); margin: 0; max-width: 820px; }
@media (max-width: 720px) {
  .bt-support { grid-template-columns: 1fr 1fr; gap: 14px 22px; }
  .bt-tradeoff { font-size: 17px; }
}
.rg-map { position: relative; border: 1px solid var(--rule); background: var(--paper-2); overflow: hidden; }
.rg-map-base { position: absolute; inset: 0; background:
  radial-gradient(ellipse 130% 95% at 50% 32%, oklch(0.935 0.028 78), oklch(0.885 0.04 72) 62%, oklch(0.83 0.052 66)); }
.rg-map-base::before { content: ""; position: absolute; inset: 0; background-image: var(--contour-url);
  background-size: cover; background-position: center; opacity: 0.20; mix-blend-mode: multiply; pointer-events: none; }
.rg-map-frame { position: absolute; inset: 14px; border: 1px solid oklch(0.5 0.045 52 / 0.4); pointer-events: none; z-index: 4; }
.rg-map-standin { position: absolute; bottom: 12px; right: 14px; z-index: 5; font-family: var(--mono);
  font-size: 8.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-3);
  background: var(--paper); border: 1px solid var(--rule); padding: 4px 8px; opacity: 0.88; max-width: 250px; }
.rg-coord { position: absolute; top: 18px; right: 20px; z-index: 6; font-family: var(--mono); font-size: 9px;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-3); background: var(--paper);
  border: 1px dashed var(--rule); padding: 5px 8px; }
.rg-map.is-interactive .rg-coord { top: auto; bottom: 16px; right: auto; left: 20px; }
.rg-zone { position: absolute; transform: translate(-50%, -50%); display: flex; flex-direction: column;
  align-items: center; gap: 6px; z-index: 3; text-align: center; }
.rg-zone-blob { width: 88px; height: 60px; border-radius: 50%; border: 1.5px dashed oklch(0.45 0.06 50 / 0.72);
  background: oklch(0.6 0.13 55 / 0.07); transition: background var(--mo-base), border-color var(--mo-base), transform var(--mo-base); }
.rg-zone-feat .rg-zone-blob { width: 104px; height: 72px; border-style: solid; border-color: oklch(0.45 0.08 50 / 0.85); }
.rg-zone-label { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.07em; text-transform: uppercase;
  color: var(--ink); background: var(--paper); border: 1px solid var(--rule); padding: 3px 7px; white-space: nowrap;
  box-shadow: 0 1px 4px rgba(0,0,0,0.08); transition: border-color var(--mo-base), color var(--mo-base); }
.rg-zone.hit { cursor: pointer; }
.rg-zone.hit .rg-zone-blob { border-style: solid; }
.rg-zone.is-active .rg-zone-blob { background: oklch(0.6 0.13 55 / 0.26); border-color: var(--accent); transform: scale(1.07); }
.rg-zone.is-active .rg-zone-label { border-color: var(--accent); color: var(--accent-2); }
.rg-overlay-svg { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; }
.rg-airstrip { position: absolute; transform: translate(-50%, -50%); z-index: 3; color: var(--ink-2);
  background: var(--paper); border: 1px solid var(--rule); border-radius: 50%; width: 22px; height: 22px;
  display: flex; align-items: center; justify-content: center; }
.rg-activate { position: absolute; left: 50%; bottom: 20px; transform: translateX(-50%); z-index: 6;
  display: flex; flex-direction: column; align-items: center; gap: 8px; }
.rg-activate-btn { display: inline-flex; align-items: center; gap: 10px; font-family: var(--sans); font-weight: 500;
  font-size: 14px; color: var(--ink); background: var(--paper); border: 1px solid var(--ink); padding: 11px 18px;
  cursor: pointer; box-shadow: 0 8px 22px -12px rgba(0,0,0,0.4); }
@media (hover: hover) { .rg-activate-btn:hover {border-color: var(--accent); color: var(--accent-2); } }
.rg-activate-note { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ink-2); background: oklch(0.95 0.02 80 / 0.78); padding: 3px 8px; }
.rg-legend-bar { position: absolute; left: 20px; bottom: 18px; z-index: 5; background: var(--paper);
  border: 1px solid var(--rule); padding: 10px 13px; max-width: 250px; }
.rg-legend-h { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--ink-3); margin-bottom: 7px; }
.rg-legend-row { display: flex; align-items: center; gap: 8px; font-family: var(--sans); font-size: 11.5px;
  color: var(--ink-2); padding: 2px 0; }
.rg-legend-sw { width: 13px; height: 10px; border-radius: 2px; flex-shrink: 0; border: 1px solid oklch(0.45 0.06 50 / 0.6);
  background: oklch(0.6 0.13 55 / 0.14); }
.rg-legend-sw.path { height: 0; border: none; border-top: 2px dashed var(--accent); border-radius: 0; }
.rg-legend-sw.air { background: var(--paper); border-radius: 50%; height: 13px; }
.rg-overlay-bar { position: absolute; top: 16px; left: 20px; z-index: 6; display: flex; gap: 8px; flex-wrap: wrap; max-width: 70%; }
.rg-toggle { display: inline-flex; align-items: center; gap: 8px; font-family: var(--sans); font-size: 12px;
  font-weight: 500; padding: 7px 11px; background: var(--paper); border: 1px solid var(--rule); cursor: pointer; color: var(--ink-2); white-space: nowrap; }
.rg-toggle.on { border-color: var(--accent); color: var(--accent-2); background: oklch(0.62 0.14 55 / 0.08); }
.rg-toggle-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--rule); transition: background var(--mo-fast); }
.rg-toggle.on .rg-toggle-dot { background: var(--accent); }
.rg-map-reset { position: absolute; top: 16px; right: 20px; z-index: 6; display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--sans); font-size: 12px; color: var(--ink-2); background: var(--paper); border: 1px solid var(--rule);
  padding: 7px 11px; cursor: pointer; }
@media (hover: hover) { .rg-map-reset:hover {color: var(--ink); border-color: var(--ink-3); } }
.rg-map-gl { position: absolute; inset: 0; z-index: 1; }
.rg-map-gl .mapboxgl-ctrl-attrib { font-family: var(--sans) !important; }
.lm-marker { display: flex; flex-direction: column; align-items: center; cursor: pointer; text-decoration: none; color: inherit; }
.lm-marker-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--accent); border: 1.5px solid var(--paper); box-shadow: 0 1px 3px rgba(0,0,0,0.35); transition: transform var(--mo-fast) var(--mo-ease); }
.lm-marker-label { margin-top: 3px; font-family: var(--sans); font-weight: 600; font-size: 12px; line-height: 1; color: var(--ink); white-space: nowrap; text-shadow: 0 0 2px var(--paper), 0 0 5px var(--paper), 0 1px 2px var(--paper); }
.lm-marker.active .lm-marker-dot { transform: scale(1.5); }
@media (hover: hover) { .lm-marker:hover .lm-marker-dot {transform: scale(1.5); } }
.lm-marker.active .lm-marker-label { color: var(--accent-2); }
@media (hover: hover) { .lm-marker:hover .lm-marker-label {color: var(--accent-2); } }
.lm-marker.dim .lm-marker-label { opacity: 0.32; }
.lm-marker.dim .lm-marker-dot { opacity: 0.4; }
.lm-marker.dim.active .lm-marker-label { opacity: 1; }
.lm-air { display: none; align-items: center; justify-content: center; width: 22px; height: 22px;
  border-radius: 50%; background: var(--paper); border: 1px solid var(--ink-3); color: var(--ink-2);
  box-shadow: 0 1px 4px rgba(0,0,0,0.3); cursor: default; }
.lm-anchor { display: none; flex-direction: column; align-items: center; pointer-events: none; }
.lm-anchor-label { font-family: var(--serif); font-style: italic; font-size: 14px; line-height: 1; color: var(--accent-2);
  text-shadow: 0 0 2px var(--paper), 0 0 4px var(--paper), 0 0 7px var(--paper), 0 0 10px var(--paper), 0 1px 2px var(--paper); white-space: nowrap; }
.lm-anchor-sub { font-family: var(--mono); font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink);
  margin-top: 3px; font-weight: 500;
  text-shadow: 0 0 2px var(--paper), 0 0 4px var(--paper), 0 0 7px var(--paper), 0 0 10px var(--paper); white-space: nowrap; }
.rg-poster-static { position: absolute; inset: 0; background-size: cover; background-position: center; }
.rg-poster-img { position: absolute; inset: 0; background-size: cover; background-position: center;
  filter: blur(7px) brightness(1.02); transform: scale(1.06); }
.rg-poster-scrim { position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 70% 60% at 50% 50%, rgba(40,32,22,0.16), rgba(40,32,22,0.42)); }
.rg-poster-activate { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 5;
  display: inline-flex; align-items: center; gap: 10px; cursor: pointer;
  font-family: var(--sans); font-weight: 500; font-size: 15px; letter-spacing: 0.01em;
  color: var(--paper); background: rgba(30,24,17,0.6); backdrop-filter: blur(2px);
  border: 1px solid rgba(255,255,255,0.5); padding: 15px 26px; white-space: nowrap;
  transition: background var(--mo-base), border-color var(--mo-base); }
@media (hover: hover) { .rg-poster-activate:hover {background: rgba(30,24,17,0.78); border-color: var(--paper); } }
.rg-map-caption { font-family: var(--sans); font-style: italic; font-size: 13.5px; color: var(--ink-3);
  margin: 14px 0 0; max-width: 820px; line-height: 1.5; }
.rg-sectors { display: grid; gap: 14px; margin-top: 18px; }
.rg-sector-card { position: relative; display: flex; flex-direction: column; height: 100%; background: var(--paper);
  border: 1px solid var(--rule-soft); text-decoration: none; color: inherit; overflow: hidden;
  transition: border-color var(--mo-base), box-shadow var(--mo-base), transform var(--mo-base); }
.rg-sector-card.is-active { border-color: var(--accent); box-shadow: 0 16px 34px -24px rgba(0,0,0,0.45); }
@media (hover: hover) { a.rg-sector-card:hover {border-color: var(--accent); box-shadow: 0 16px 34px -24px rgba(0,0,0,0.45); } }
.rg-sector-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.rg-sector-label { font-family: var(--display); font-size: 21px; letter-spacing: -0.015em; line-height: 1.05; margin: 0; color: var(--ink); }
.rg-sector-hook { font-family: var(--sans); font-size: 13px; line-height: 1.5; color: var(--ink-2); margin: 0; }
.rg-sector-meta { display: flex; flex-wrap: wrap; gap: 5px 16px; margin-top: 4px; padding-top: 10px; border-top: 1px solid var(--rule-soft); }
.rg-sector-fk { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); }
.rg-sector-fv { font-family: var(--sans); font-size: 12px; color: var(--ink-2); line-height: 1.35; }
.rg-sector-cell { display: flex; flex-direction: column; gap: 2px; }
.rg-sector-route { margin-top: auto; padding-top: 12px; font-family: var(--sans); font-weight: 500; font-size: 13px;
  color: var(--accent-2); display: inline-flex; align-items: center; gap: 7px; }
.rg-sector-arrow { display: inline-flex; transition: transform var(--mo-base) var(--mo-ease); }
@media (hover: hover) { a.rg-sector-card:hover .rg-sector-arrow {transform: translate(3px, -3px); } }
.rg-sector-pending { margin-top: auto; padding-top: 12px; font-family: var(--mono); font-size: 8.5px;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); display: inline-flex; align-items: center; gap: 7px; }
.rg-sector-pending::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--rule); }
.rg-sector-feat { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.rg-sector-feat .rg-sector-ph { height: 100%; min-height: 250px; }
.rg-sector-feat .rg-sector-body { padding: 26px 30px 28px; justify-content: center; }
.rg-sector-feat .rg-sector-label { font-size: 30px; }
.rg-sector-feat .rg-sector-hook { font-size: 14.5px; }
.rg-sector-heart-tag { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--accent-2); margin-bottom: 2px; }
@media (max-width: 720px) {
  .rg-sector-feat { grid-template-columns: 1fr; }
  .rg-sector-feat .rg-sector-ph { min-height: 0; }
  .rg-sector-feat .rg-sector-body { padding: 16px 18px 18px; }
  .rg-sector-feat .rg-sector-label { font-size: 24px; }
}
.wx-table { width: 100%; border-collapse: collapse; margin: 8px 0 0; }
.wx-table thead th {
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.11em; text-transform: uppercase;
  color: var(--ink-3); font-weight: 500; text-align: right; vertical-align: bottom;
  padding: 0 0 13px 26px; border-bottom: 1px solid var(--rule); white-space: nowrap;
}
.wx-table thead th.wx-th-period { text-align: left; padding-left: 0; }
.wx-th-unit { display: block; font-size: 8px; letter-spacing: 0.06em; color: var(--ink-3); opacity: 0.65; margin-top: 3px; }
.wx-table tbody tr { border-bottom: 1px solid var(--rule-soft); transition: background var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .wx-table tbody tr:hover {background: var(--paper-2); } }
.wx-table tbody th {
  font-family: var(--sans); font-weight: 500; font-size: 15px; color: var(--ink);
  text-align: left; padding: 15px 0; white-space: nowrap;
}
.wx-table tbody td {
  font-family: var(--mono); font-size: 14px; color: var(--ink-2); text-align: right;
  padding: 15px 0 15px 26px; font-variant-numeric: tabular-nums;
}
.wx-fig-empty { color: var(--ink-3); opacity: 0.45; }
.wx-table-note { font-family: var(--sans); font-style: italic; font-size: 13.5px; line-height: 1.5; color: var(--ink-3); margin: 18px 0 0; }
.wx-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.wx-table-wrap--stack { overflow-x: visible; }
.wx-table--stack { min-width: 0; display: block; width: 100%; }
.wx-table--stack tbody { display: block; width: 100%; }
.wx-table--stack thead {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.wx-table--stack tr {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 5px 22px; padding: 13px 0; border-bottom: 1px solid var(--rule-soft);
}
@media (hover: hover) { .wx-table--stack tbody tr:hover {background: none; } }
.wx-table--stack tbody th { grid-column: 1 / -1; padding: 0 0 7px; font-size: 16px; }
.wx-table--stack tbody td {
  display: grid; grid-template-columns: 78px 1fr; align-items: baseline;
  justify-items: start; column-gap: 9px; padding: 0; text-align: left;
  font-size: 13.5px; color: var(--ink);
}
.wx-table--stack tbody td::before {
  content: attr(data-label); white-space: nowrap; align-self: baseline;
  font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--ink-3); font-weight: 500;
}
.wx-table--stack tbody td.wx-td-empty { display: none; }
.fc-strip { display: grid; gap: 14px; margin-top: 18px; }
.saved-cue { position: fixed; top: 68px; right: max(24px, calc((100% - 1440px) / 2 + 24px)); z-index: 90;
  display: inline-flex; align-items: center; gap: 9px;
  background: var(--ink); color: var(--paper);
  font-family: var(--sans); font-size: 13.5px; line-height: 1;
  padding: 11px 12px 11px 14px; border-radius: 4px;
  box-shadow: 0 12px 30px -12px rgba(0,0,0,0.5);
  animation: savedCueIn var(--mo-enter) var(--mo-curve) both; }
.saved-cue-m { top: 60px; right: 12px; left: 12px; justify-content: center; }
@media (max-width: 719px) { .saved-cue { top: 60px; right: 12px; left: 12px; justify-content: center; } }
.saved-cue-heart { display: inline-flex; animation: savedCuePop .5s cubic-bezier(.2,1.4,.4,1) both; }
.saved-cue-txt { white-space: nowrap; }
.saved-cue-x { background: none; border: none; cursor: pointer; color: rgba(255,255,255,0.6); font-size: 13px; line-height: 1; padding: 2px 2px 2px 4px; }
.saved-cue-door { background: none; border: none; padding: 0 0 1px; margin: 0; font: inherit; color: inherit; cursor: pointer; border-bottom: 1.5px solid var(--accent); }
@media (hover: hover) { .saved-cue-door:hover { color: var(--paper); } }
.saved-cue-door:active { color: var(--paper); transition: none; }
.saved-cue-door:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (hover: hover) { .saved-cue-x:hover {color: var(--paper); } }
@keyframes savedCueIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@keyframes savedCuePop { 0% { transform: scale(0.6); } 60% { transform: scale(1.25); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .saved-cue, .saved-cue-heart { animation: none; } }
.fc-card {
  position: relative; display: flex; flex-direction: column; height: 100%;
  background: var(--paper); border: 1px solid var(--rule-soft);
  text-decoration: none; color: inherit; overflow: hidden;
  transition: border-color var(--mo-base), box-shadow var(--mo-base), transform var(--mo-base);
}
@media (hover: hover) { a.fc-card:hover {border-color: var(--accent); box-shadow: 0 14px 30px -22px rgba(0,0,0,0.35); } }
.fc-card-ph { width: 100%; height: 188px; }
.fc-card-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 7px; flex: 1; }
.fc-card-name { font-family: var(--display); font-size: 21px; letter-spacing: -0.015em; line-height: 1.05; margin: 0; color: var(--ink); }
.fc-card-fit { font-family: var(--sans); font-size: 13px; line-height: 1.5; color: var(--ink-2); margin: 0; }
.fc-card-foot {
  margin-top: auto; padding-top: 13px; border-top: 1px solid var(--rule-soft);
  display: flex; align-items: flex-end; justify-content: space-between; gap: 14px;
}
.fc-card-price { display: flex; flex-direction: column; gap: 2px; }
.fc-card-price-k { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ink-3); }
.fc-card-price-v { font-family: var(--display); font-size: 21px; line-height: 1; letter-spacing: -0.01em; color: var(--bronze); }
.fc-card-price-u { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3); margin-top: 2px; }
.fc-card-route { flex-shrink: 0; font-family: var(--sans); font-weight: 500; font-size: 13px;
  color: var(--accent-2); display: inline-flex; align-items: center; gap: 7px; padding-bottom: 1px; }
.fc-card-arrow { display: inline-flex; transition: transform var(--mo-base) var(--mo-ease); }
@media (hover: hover) { a.fc-card:hover .fc-card-arrow {transform: translate(3px, -3px); } }
.fc-card-lead { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.fc-card-lead .fc-card-ph { height: 100%; min-height: 248px; }
.fc-card-lead .fc-card-body { padding: 26px 30px 28px; justify-content: center; }
.fc-card-lead .fc-card-name { font-size: 30px; }
.fc-card-lead .fc-card-fit { font-size: 14.5px; }
.fc-card-lead .fc-card-price-v { font-size: 26px; }
.fc-heart-tag { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--accent-2); margin-bottom: 2px; display: inline-flex; align-items: center; gap: 7px; }
.fc-routes { display: flex; flex-wrap: wrap; gap: 14px 28px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--rule-soft); }
.sc-inline-link { color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--accent); padding-bottom: 1px; transition: color var(--mo-fast) var(--mo-ease), border-color var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .sc-inline-link:hover {color: var(--accent-2); border-bottom-color: var(--accent-2); } }
@media (max-width: 720px) {
  .fc-card-lead { grid-template-columns: 1fr; }
  .fc-card-lead .fc-card-ph { min-height: 0; height: 188px; }
  .fc-card-lead .fc-card-body { padding: 16px 18px 18px; }
  .fc-card-lead .fc-card-name { font-size: 24px; }
}
.mc-note {
  font-family: var(--sans); font-style: italic; font-size: 15px; line-height: 1.55;
  color: var(--ink-2); margin: 0 0 30px; max-width: 720px;
  padding-left: 16px; border-left: 2px solid var(--accent);
}
.mc-seq { position: relative; margin-top: 8px; }
.mc-seq:not(.mob) .mc-phase::before,
.mc-seq:not(.mob) .mc-close::before {
  content: ""; position: absolute; left: 6px; top: 0; bottom: 0;
  width: 2px; background: var(--accent); opacity: 0.32; z-index: 0;
}
.mc-seq:not(.mob) .mc-phase:first-child::before { top: 50%; }
.mc-seq:not(.mob) .mc-close::before { bottom: auto; height: 50%; }
.mc-seq:not(.mob) .mc-close { align-items: center; padding-bottom: 26px; }
.mc-seq:not(.mob) .mc-close-node { margin-top: 0; }
.mc-phase {
  position: relative; display: grid;
  grid-template-columns: 14px 192px 1fr; column-gap: 34px;
  padding: 30px 0; border-top: 1px solid var(--rule-soft);
}
.mc-phase:first-child { border-top: none; }
.mc-node {
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--paper); border: 2px solid var(--accent);
  margin-top: 5px; position: relative; z-index: 1;
}
.mc-aside { display: flex; flex-direction: column; gap: 12px; }
.mc-seq:not(.mob) .mc-aside { align-self: center; }
.mc-seq:not(.mob) .mc-node { align-self: center; margin-top: 0; }
.mc-window {
  display: inline-flex; flex-direction: column; gap: 5px; align-self: flex-start;
  padding: 10px 15px; border: 1px solid var(--rule-soft); border-radius: 4px;
  background: var(--paper-2);
}
.mc-typical { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent-2); }
.mc-range { font-family: var(--sans); font-size: 15px; font-weight: 500; letter-spacing: 0; color: var(--ink); }
.mc-range-set { display: flex; flex-direction: column; gap: 2px; }
.mc-main { min-width: 0; }
.mc-phase-name { font-family: var(--display); font-size: 26px; line-height: 1.06; letter-spacing: -0.015em; margin: 0 0 12px; color: var(--ink); }
.mc-phase-name em { font-style: italic; color: var(--accent-2); }
.mc-chip {
  display: inline-flex; align-items: center; gap: 8px; margin-bottom: 14px;
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ink-2); background: var(--paper-2); border: 1px solid var(--rule-soft);
  padding: 6px 11px;
}
.mc-chip-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--accent); flex-shrink: 0; }
.mc-happening { font-family: var(--sans); font-size: 15.5px; line-height: 1.62; color: var(--ink-2); margin: 0 0 16px; max-width: 640px; }
.mc-maproute-pending {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--sans); font-size: 13.5px; color: var(--ink-3); cursor: default;
}
.mc-soon { font-family: var(--mono); font-size: 8px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-3); border: 1px solid var(--rule); padding: 3px 7px; border-radius: 2px; }
.mc-close {
  position: relative; display: grid; grid-template-columns: 14px 1fr; column-gap: 34px;
  padding: 26px 0 4px;
}
.mc-close-node {
  width: 14px; height: 14px; border-radius: 50%; margin-top: 3px; position: relative; z-index: 1;
  border: 2px solid var(--accent); background: var(--accent);
  display: flex; align-items: center; justify-content: center; color: var(--accent-ink);
}
.mc-close-body { }
.mc-close-eyebrow { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent-2); margin-bottom: 8px; }
.mc-close-note { font-family: var(--serif); font-style: italic; font-size: 18px; line-height: 1.5; color: var(--ink); margin: 0; max-width: 680px; }
.mc-seq.mob::before { display: none; }
.mc-seq.mob .mc-phase { grid-template-columns: 1fr; row-gap: 14px; padding: 24px 0; }
.mc-seq.mob .mc-node { display: none; }
.mc-seq.mob .mc-phase-name { font-size: 23px; }
.mc-seq.mob .mc-close { grid-template-columns: 1fr; }
.mc-seq.mob .mc-close-node { display: none; }
.faq-list { border-top: 1px solid var(--rule); margin-top: 8px; }
.faq-item { border-bottom: 1px solid var(--rule-soft); }
.faq-item:last-child { border-bottom: none; }
.faq-item > summary {
  list-style: none; cursor: pointer; display: flex; align-items: flex-start;
  justify-content: space-between; gap: 24px; padding: 24px 4px 24px 0;
}
.faq-item > summary::-webkit-details-marker { display: none; }
.faq-q { font-family: var(--display); font-size: 22px; line-height: 1.18; letter-spacing: -0.012em; margin: 0; color: var(--ink); font-weight: 400; }
.faq-sign { flex-shrink: 0; width: 22px; height: 22px; position: relative; margin-top: 4px; }
.faq-sign::before, .faq-sign::after {
  content: ""; position: absolute; background: var(--accent); transition: transform var(--mo-base) var(--mo-ease), opacity var(--mo-base) var(--mo-ease);
}
.faq-sign::before { left: 0; right: 0; top: 50%; height: 1.5px; transform: translateY(-50%); }
.faq-sign::after { top: 0; bottom: 0; left: 50%; width: 1.5px; transform: translateX(-50%); }
.faq-item[open] .faq-sign::after { transform: translateX(-50%) scaleY(0); opacity: 0; }
.faq-item[open] .faq-q { color: var(--accent-2); }
.faq-a { padding: 0 40px 26px 0; max-width: 720px; }
.faq-a p { font-family: var(--sans); font-size: 15.5px; line-height: 1.66; color: var(--ink-2); margin: 0 0 14px; }
.faq-a p:last-child { margin-bottom: 0; }
@media (max-width: 720px) {
  .faq-q { font-size: 18px; }
  .faq-a { padding-right: 8px; }
}
.mg-caveat { margin: 8px 0 6px; padding: 22px 0 18px; border-top: 1px solid var(--ink-3); border-bottom: 1px solid var(--rule); }
.mg-caveat-eyebrow { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent-2); margin-bottom: 12px; }
.mg-caveat-line { font-family: var(--serif); font-style: italic; font-size: 22px; line-height: 1.42; letter-spacing: -0.01em; color: var(--ink); margin: 0; max-width: 720px; }
@media (max-width: 720px) { .mg-caveat-line { font-size: 19px; } }
.mm-mount { display: block; }
.mm-map { position: relative; width: 100%; overflow: hidden; border: 1px solid var(--rule);
  background: var(--paper-2); }
.mm-map.is-live { background: #e9e0cf; }
.mm-poster-img { position: absolute; inset: 0; background-size: cover; background-position: center; }
.mm-poster-scrim { position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(40,32,22,0.10) 0%, rgba(40,32,22,0.06) 42%, rgba(40,32,22,0.34) 100%); }
.mm-poster-copy { position: absolute; inset: 0; z-index: 3; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 14px; text-align: center; padding: 20px; }
.mm-poster-eyebrow { font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--paper); text-shadow: 0 1px 6px rgba(0,0,0,0.5); }
.mm-activate { display: inline-flex; align-items: center; gap: 10px; cursor: pointer;
  font-family: var(--sans); font-weight: 500; font-size: 15px; letter-spacing: 0.01em;
  color: var(--paper); background: rgba(30,24,17,0.62); backdrop-filter: blur(2px);
  border: 1px solid rgba(255,255,255,0.55); padding: 15px 26px; white-space: nowrap;
  transition: background var(--mo-base), border-color var(--mo-base); }
@media (hover: hover) { .mm-activate:hover {background: rgba(30,24,17,0.8); border-color: var(--paper); } }
.mm-poster-note { font-family: var(--sans); font-size: 12.5px; color: var(--paper-2);
  text-shadow: 0 1px 5px rgba(0,0,0,0.55); max-width: 360px; }
.mm-play { position: absolute; top: 14px; right: 14px; z-index: 6; display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--sans); font-size: 12px; font-weight: 500; color: var(--ink-2); cursor: pointer;
  background: rgba(247,242,232,0.92); backdrop-filter: blur(4px); border: 1px solid var(--rule); padding: 7px 12px; }
@media (hover: hover) { .mm-play:hover {color: var(--accent-2); border-color: var(--accent); } }
.mm-dataerr { position: absolute; bottom: 14px; right: 14px; z-index: 6; max-width: 300px;
  font-family: var(--sans); font-size: 11.5px; line-height: 1.45; color: var(--ink-2);
  background: rgba(247,242,232,0.95); border: 1px solid var(--rule); padding: 9px 12px; }
.mm-stepper { display: flex; align-items: stretch; gap: 8px; margin-top: 12px; }
.mm-stepper.is-idle { opacity: 0.5; }
.mm-step-arrow { flex-shrink: 0; width: 40px; display: inline-flex; align-items: center; justify-content: center;
  background: var(--paper); border: 1px solid var(--rule); color: var(--ink-2); cursor: pointer; }
@media (hover: hover) { .mm-step-arrow:hover:not(:disabled) {border-color: var(--accent); color: var(--accent-2); } }
.mm-step-arrow:disabled { cursor: default; }
.mm-months { flex: 1; display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px;
  background: var(--paper); border: 1px solid var(--rule); padding: 4px; }
.mm-month { padding: 11px 0; border: none; background: none; cursor: pointer;
  font-family: var(--sans); font-size: 12.5px; font-weight: 400; color: var(--ink-2);
  transition: background var(--mo-base), color var(--mo-base); }
@media (hover: hover) { .mm-month:hover:not(:disabled):not(.active) {background: var(--paper-2); color: var(--ink); } }
.mm-month.active { background: var(--accent); color: var(--paper); font-weight: 500; }
.mm-month.off { color: var(--ink-3); font-style: italic; }
.mm-month.off.active { background: var(--ink-3); color: var(--paper); font-style: normal; }
.mm-month:disabled { cursor: default; }
.mm-reader { margin-top: 14px; padding: 22px 24px; background: var(--paper); border: 1px solid var(--rule); }
.mm-read-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 8px; }
.mm-read-month { font-family: var(--display); font-size: 26px; letter-spacing: -0.015em; color: var(--ink); }
.mm-read-typical { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent-2); }
.mm-read-phase { font-family: var(--sans); font-size: 15px; font-weight: 600; color: var(--ink); margin-bottom: 8px; }
.mm-read-where, .mm-else-where { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 12px;
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-2);
  background: var(--paper-2); border: 1px solid var(--rule-soft); padding: 6px 11px; }
.mm-where-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--accent); flex-shrink: 0; }
.mm-read-body { font-family: var(--sans); font-size: 15.5px; line-height: 1.62; color: var(--ink-2); margin: 0; max-width: 720px; }
.mm-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 18px;
  padding-top: 16px; border-top: 1px solid var(--rule-soft); }
.mm-legend-title { font-family: var(--mono); font-size: 9px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ink-3); }
.mm-legend-item { display: inline-flex; align-items: center; gap: 7px; font-family: var(--sans); font-size: 12px; color: var(--ink-2); }
.mm-sw { width: 16px; height: 10px; border-radius: 2px; display: inline-block; }
.mm-sw-core { background: #9a5714; opacity: 0.85; }
.mm-sw-mid { background: #bd772a; opacity: 0.6; }
.mm-sw-outer { background: #d99a52; opacity: 0.4; }
.mm-legend-note { font-family: var(--sans); font-style: italic; font-size: 11.5px; color: var(--ink-3); }
.mm-read-elsewhere { border-left: 2px solid var(--accent); padding-left: 16px; }
@media (max-width: 720px) {
  .mm-months { grid-template-columns: repeat(12, 1fr); gap: 2px; padding: 3px; }
  .mm-month { padding: 9px 0; font-size: 10px; }
  .mm-read-month { font-size: 22px; }
  .mm-reader { padding: 18px 16px; }
}
.sm-wrap { position: relative; background: var(--paper); }
.sm-overlay { position: relative; height: 84vh; min-height: 540px; overflow: hidden;
  display: flex; align-items: center; justify-content: center; background: #16120c; }
.sm-poster-img { position: absolute; inset: 0; background-size: cover; background-position: center;
  filter: saturate(0.62) sepia(0.14) brightness(0.9) contrast(1.02); }
.sm-poster-scrim { position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(120% 90% at 50% 42%, rgba(10,8,5,0.15) 0%, rgba(10,8,5,0.5) 62%, rgba(10,8,5,0.78) 100%); }
.sm-poster-copy { position: relative; z-index: 3; text-align: center; max-width: 720px; padding: 24px 26px;
  display: flex; flex-direction: column; align-items: center; }
.sm-poster-eyebrow { font-family: var(--mono); font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase;
  color: rgba(255,255,255,0.78); margin-bottom: 18px; }
.sm-poster-h2 { color: var(--paper); font-size: 58px; line-height: 0.98; letter-spacing: -0.028em; margin: 0 0 18px; text-wrap: balance; }
.sm-poster-h2 em { font-style: italic; color: #e7c79a; }
.sm-poster-sub { font-family: var(--sans); font-size: 17px; line-height: 1.5; color: rgba(255,255,255,0.86);
  margin: 0 0 26px; max-width: 560px; }
.sm-begin { display: inline-flex; align-items: center; gap: 10px; cursor: pointer;
  font-family: var(--sans); font-size: 15px; font-weight: 500; color: #16120c; background: var(--paper);
  border: none; padding: 14px 26px; transition: transform var(--mo-fast), background var(--mo-fast); }
@media (hover: hover) { .sm-begin:hover {background: #f6e9cf; transform: translateY(-1px); } }
.sm-begin svg { transform: translateX(1px); }
.sm-map .mapboxgl-ctrl-bottom-left { bottom: 66px; left: 4px; z-index: 6; }
.sm-map .mapboxgl-ctrl-attrib { display: none !important; }
.sm-map .mapboxgl-ctrl-logo { opacity: 0.7; }
.sm-map { position: relative; overflow: hidden; background: #1a2b33; }
.sm-gl { position: absolute; inset: 0; }
.sm-wrap.active .sm-map { position: sticky; top: 62px; height: calc(100vh - 62px); z-index: 1; }
.sm-wrap.active.is-mobile .sm-map { top: 52px; height: calc(100vh - 52px); }
.sm-badge { position: absolute; top: 18px; left: 24px; z-index: 6; display: inline-flex; align-items: baseline; gap: 9px;
  min-height: 34px; box-sizing: border-box;
  font-family: var(--sans); color: var(--paper);
  background: rgba(18,14,9,0.64); backdrop-filter: blur(5px); border: 1px solid rgba(255,255,255,0.14); padding: 8px 15px; }
.sm-badge-typ { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.16em; text-transform: uppercase; color: #e0bd88; }
.sm-badge-month { font-size: 15px; font-weight: 600; color: var(--paper); }
.sm-badge-phase { font-size: 12.5px; font-weight: 400; color: rgba(255,255,255,0.74); }
.sm-badge-phase::before { content: "·"; margin-right: 9px; color: rgba(255,255,255,0.4); }
.sm-dataerr { position: absolute; bottom: 20px; left: 24px; z-index: 6; max-width: 320px;
  font-family: var(--sans); font-size: 12px; line-height: 1.45; color: var(--paper);
  background: rgba(18,14,9,0.82); border: 1px solid rgba(255,255,255,0.14); padding: 10px 13px; }
.sm-progress { position: absolute; right: 22px; top: 50%; transform: translateY(-50%); z-index: 6;
  display: flex; flex-direction: column; gap: 11px; }
.sm-dot { width: 10px; height: 10px; padding: 0; border-radius: 50%; cursor: pointer;
  background: rgba(255,255,255,0.28); border: 1px solid rgba(255,255,255,0.5); transition: background var(--mo-base), transform var(--mo-base); }
.sm-dot.plain { width: 6px; height: 6px; align-self: center; border-radius: 50%; background: rgba(255,255,255,0.22); border-color: rgba(255,255,255,0.35); }
@media (hover: hover) { .sm-dot:hover {background: rgba(255,255,255,0.6); } }
.sm-dot.active { background: #e7c79a; border-color: #e7c79a; transform: scale(1.25); }
.sm-skip { position: absolute; top: 18px; right: 22px; z-index: 7; display: inline-flex; align-items: center; gap: 7px;
  min-height: 34px; box-sizing: border-box;
  font-family: var(--sans); font-size: 12px; font-weight: 500; color: var(--paper); cursor: pointer;
  background: rgba(18,14,9,0.55); backdrop-filter: blur(4px); border: 1px solid rgba(255,255,255,0.2); padding: 7px 12px; }
@media (hover: hover) { .sm-skip:hover {background: rgba(18,14,9,0.8); border-color: rgba(255,255,255,0.5); } }
.sm-cue { position: absolute; bottom: 78px; left: 50%; transform: translateX(-50%); z-index: 6;
  display: flex; flex-direction: column; align-items: center; gap: 6px; color: rgba(255,255,255,0.82);
  font-family: var(--sans); font-size: 11.5px; letter-spacing: 0.04em; text-align: center;
  opacity: 0; transition: opacity .5s; pointer-events: none; }
.sm-cue.show { opacity: 1; }
.sm-cue svg { animation: smBob 1.8s ease-in-out infinite; }
@keyframes smBob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(5px); } }
@media (prefers-reduced-motion: reduce) { .sm-cue svg { animation: none; } }
.sm-steps { max-width: 720px; margin: 0 auto; padding: 8px 24px 8px; }
.sm-wrap:not(.active) .sm-steps { display: none; }
@media print {
  .sm-wrap:not(.active) .sm-steps { display: block; }
  .sm-wrap:not(.active) .sm-begin { display: none; }
}
.sm-step { padding: 30px 0; border-bottom: 1px solid var(--rule-soft); }
.sm-step:last-child { border-bottom: none; }
.sm-card-num { display: block; font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent-2); margin-bottom: 12px; }
.sm-card-title { font-size: 34px; line-height: 1.04; letter-spacing: -0.02em; color: var(--ink); margin: 0 0 14px; }
.sm-card-title em { font-style: italic; color: var(--accent-2); }
.sm-card-body { font-family: var(--sans); font-size: 16px; line-height: 1.66; color: var(--ink-2); margin: 0 0 12px; }
.sm-card-body:last-child { margin-bottom: 0; }
.sm-video-wrap { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 14px; text-align: center; background: #16120c; padding: 44px 30px; overflow: hidden; }
.sm-video-ph { position: absolute; inset: 0; opacity: 0.5;
  background:
    radial-gradient(80% 120% at 30% 20%, rgba(120,90,50,0.5), transparent 60%),
    radial-gradient(90% 130% at 80% 90%, rgba(60,80,90,0.5), transparent 60%),
    repeating-linear-gradient(115deg, rgba(255,255,255,0.03) 0 2px, transparent 2px 11px), #16120c; }
.sm-video-vig { position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(110% 90% at 50% 50%, transparent 40%, rgba(8,6,4,0.7) 100%); }
.sm-video-cap { position: relative; z-index: 2; font-family: var(--display); font-style: italic; font-size: 24px;
  line-height: 1.3; color: var(--paper); margin: 0; max-width: 560px; }
.sm-video-note { position: relative; z-index: 2; font-family: var(--mono); font-size: 9px; letter-spacing: 0.14em;
  text-transform: uppercase; color: rgba(255,255,255,0.42); }
.sm-close { background: rgba(18,14,9,0.9); border: 1px solid rgba(255,255,255,0.12); padding: 40px 40px 34px;
  max-width: 780px; margin: 0 auto; text-align: center; }
.sm-close-h { color: var(--paper); font-size: 38px; line-height: 1.02; letter-spacing: -0.02em; margin: 0 0 26px; }
.sm-close-h em { font-style: italic; color: #e7c79a; }
.sm-route-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; text-align: left; }
.sm-route { display: block; text-decoration: none; padding: 18px 20px; background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.14); transition: background var(--mo-base), border-color var(--mo-base); }
@media (hover: hover) { .sm-route:hover {background: rgba(255,255,255,0.09); border-color: rgba(231,199,154,0.6); } }
.sm-route-kicker { color: rgba(255,255,255,0.6); margin-bottom: 6px; }
.sm-route-cta { display: flex; align-items: center; justify-content: space-between; gap: 10px;
  font-family: var(--display); font-size: 21px; letter-spacing: -0.01em; color: var(--paper); margin-bottom: 8px; }
.sm-route-hook { font-family: var(--sans); font-size: 13.5px; line-height: 1.5; color: rgba(255,255,255,0.72); margin: 0; }
.sm-seam { display: flex; align-items: center; justify-content: space-between; gap: 20px; text-align: left;
  text-decoration: none; margin-top: 12px; padding: 20px 24px; background: rgba(231,199,154,0.07);
  border: 1px solid rgba(231,199,154,0.3); transition: background var(--mo-base); }
@media (hover: hover) { .sm-seam:hover {background: rgba(231,199,154,0.13); } }
.sm-seam-title { font-family: var(--display); font-size: 24px; letter-spacing: -0.015em; color: var(--paper); margin-bottom: 6px; }
.sm-seam-hook { font-family: var(--sans); font-size: 13.5px; line-height: 1.5; color: rgba(255,255,255,0.74); margin: 0; max-width: 520px; }
.sm-restart { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px; cursor: pointer;
  font-family: var(--sans); font-size: 13px; color: rgba(255,255,255,0.7); background: none; border: none; }
@media (hover: hover) { .sm-restart:hover {color: var(--paper); } }
.sm-wrap.active .sm-steps { position: relative; z-index: 3; max-width: none; margin-top: calc(-100vh + 62px); padding: 0; pointer-events: none; }
.sm-wrap.active.is-mobile .sm-steps { margin-top: calc(-100vh + 52px); padding: 0; }
.sm-wrap.active .sm-step { min-height: calc(100vh - 62px); display: flex; align-items: center; padding: 0 6vw; border: none; }
.sm-wrap.active.is-mobile .sm-step { min-height: calc(100vh - 52px); padding: 0 16px; }
.sm-wrap.active .sm-step[data-align="left"] { justify-content: flex-start; }
.sm-wrap.active .sm-step[data-align="right"] { justify-content: flex-end; }
.sm-wrap.active .sm-step[data-align="center"] { justify-content: center; }
.sm-wrap.active .sm-card { pointer-events: auto; max-width: 430px; padding: 30px 32px;
  background: rgba(20,15,10,0.82); backdrop-filter: blur(4px); border: 1px solid rgba(255,255,255,0.1);
  box-shadow: 0 24px 60px -24px rgba(0,0,0,0.6); }
.sm-wrap.active .sm-card-num { color: #e0bd88; }
.sm-wrap.active .sm-card-title { color: var(--paper); }
.sm-wrap.active .sm-card-title em { color: #e7c79a; }
.sm-wrap.active .sm-card-body { color: rgba(255,255,255,0.86); }
.sm-wrap.active .sm-step-close { padding: 0 6vw; justify-content: center; }
.sm-wrap.active .sm-step-close .sm-close { pointer-events: auto; }
.sm-wrap.is-mobile .sm-overlay { height: 82vh; min-height: 460px; }
.sm-wrap.is-mobile .sm-poster-h2 { font-size: 34px; }
.sm-wrap.is-mobile .sm-poster-sub { font-size: 15px; }
.sm-wrap.is-mobile .sm-steps { padding: 4px 20px; }
.sm-wrap.is-mobile .sm-card-title { font-size: 27px; }
.sm-wrap.is-mobile .sm-badge { top: 16px; left: 16px; padding: 7px 12px; gap: 7px; max-width: calc(100% - 120px); }
.sm-wrap.is-mobile .sm-badge-phase { display: none; }
.sm-wrap.is-mobile .sm-badge-month { font-size: 14px; }
.sm-wrap.is-mobile .sm-skip { top: 16px; right: 16px; }
.sm-wrap.active.is-mobile .sm-card { max-width: none; width: 100%; padding: 22px 22px; }
.sm-wrap.is-mobile .sm-progress { display: none; }
.sm-wrap.active.is-mobile .sm-step-close { min-height: auto; padding: 34px 14px 30px; align-items: stretch; }
.sm-wrap.is-mobile .sm-close { padding: 24px 18px 22px; }
.sm-wrap.is-mobile .sm-close-h { font-size: 25px; margin-bottom: 18px; }
.sm-wrap.is-mobile .sm-route-grid { grid-template-columns: 1fr; gap: 8px; }
.sm-wrap.is-mobile .sm-route { padding: 12px 15px; }
.sm-wrap.is-mobile .sm-route-kicker { margin-bottom: 3px; }
.sm-wrap.is-mobile .sm-route-cta { font-size: 17px; margin-bottom: 0; }
.sm-wrap.is-mobile .sm-route-hook { display: none; }
.sm-wrap.is-mobile .sm-seam { flex-direction: row; align-items: center; gap: 12px; padding: 15px 16px; margin-top: 8px; }
.sm-wrap.is-mobile .sm-seam-hook { display: none; }
.sm-wrap.is-mobile .sm-seam-title { font-size: 18px; margin-bottom: 0; }
.sm-wrap.is-mobile .sm-restart { margin-top: 16px; }
.sm-wrap.is-mobile .sm-video-cap { font-size: 19px; }
.sm-wrap.active .sm-step-video { padding: 0; align-items: stretch; display: block; min-height: 150vh; }
.sm-wrap.active .sm-step-video .sm-video-wrap { position: sticky; top: 62px; height: calc(100vh - 62px); width: 100%; pointer-events: auto; }
.sm-wrap.active.is-mobile .sm-step-video { padding: 0; min-height: 150vh; }
.sm-wrap.active.is-mobile .sm-step-video .sm-video-wrap { top: 52px; height: calc(100vh - 52px); min-height: 0; }
.plm-band { --plm-ink: var(--ink); }
.plm-band { --plm-poster: 540px; --plm-active: 720px; height: var(--plm-poster); }
.plm-band.plm-active { height: var(--plm-active); }
@media (max-width: 720px) {
.plm-band { --plm-poster: 320px; --plm-active: 460px; }
}
.plm-fluid { container-type: inline-size; }
.plm-fluid .plm-pb-m { display: none; }
.plm-fluid .plm-pin-name { font-size: 30px; }
@container (max-width: 720px) {
.plm-fluid .plm-pb-d { display: none; }
.plm-fluid .plm-pb-m { display: block; }
.plm-fluid .plm-pin-name { font-size: 22px; }
}
.plm-poster-pin { position: absolute; left: 24px; bottom: 20px; display: flex; flex-direction: column; gap: 4px; z-index: 2;
  text-shadow: 0 1px 10px rgba(255,255,255,0.65); }
.plm-coord { font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-2); }
.plm-activate { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); z-index: 3; white-space: nowrap;
  display: inline-flex; align-items: center; gap: 8px; padding: 13px 22px; cursor: pointer;
  background: var(--paper); border: 1px solid var(--ink); border-radius: 999px;
  font-family: var(--sans); font-size: 14px; font-weight: 500; color: var(--ink);
  box-shadow: 0 6px 24px rgba(0,0,0,0.14); transition: background var(--mo-base), color var(--mo-base); }
@media (hover: hover) { .plm-activate:hover {background: var(--ink); color: var(--paper); } }
@media (hover: hover) { .plm-activate:hover svg {stroke: var(--paper); } }
.plm-map { z-index: 1; }
.plm-controls { position: absolute; right: 16px; top: 16px; z-index: 4; display: flex; flex-direction: column; gap: 8px; }
.plm-ctrl { display: inline-flex; align-items: center; gap: 6px; padding: 8px 13px; cursor: pointer;
  background: var(--paper); border: 1px solid var(--rule); border-radius: 999px;
  font-family: var(--sans); font-size: 12px; font-weight: 500; color: var(--ink-2);
  box-shadow: 0 2px 10px rgba(0,0,0,0.10); }
@media (hover: hover) { .plm-ctrl:hover {border-color: var(--ink-3); color: var(--ink); } }
.plm-ctrl-close { color: var(--accent-2, var(--accent)); }
.plm-gesture-hint { position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%); z-index: 5;
  background: rgba(20,18,16,0.82); color: #fff; font-family: var(--sans); font-size: 12px;
  padding: 8px 14px; border-radius: 999px; white-space: nowrap; }
.plm-pin { position: relative; width: 0; height: 0; display: block; }
a.plm-pin { color: inherit; text-decoration: none; }
.plm-pin-primary { z-index: 10; }
.plm-pin-primary .plm-dot { position: absolute; left: 0; top: 0; transform: translate(-50%, -50%);
  width: 14px; height: 14px; border-radius: 50%; background: var(--accent);
  border: 2.5px solid var(--paper); box-shadow: 0 2px 8px rgba(0,0,0,0.35); z-index: 2; }
.plm-pin-primary .plm-pulse { position: absolute; left: 0; top: 0; transform: translate(-50%, -50%);
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--accent); opacity: 0.55; animation: plm-pulse 2.2s ease-out infinite; }
@keyframes plm-pulse { 0% { transform: translate(-50%, -50%) scale(1); opacity: 0.55; } 70% { transform: translate(-50%, -50%) scale(3.2); opacity: 0; } 100% { transform: translate(-50%, -50%) scale(3.2); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .plm-pin-primary .plm-pulse { animation: none; opacity: 0; } }
.plm-pin-primary .plm-label { position: absolute; left: 0; top: 12px; transform: translateX(-50%);
  font-family: var(--display); font-size: 15px; color: var(--ink); text-align: center;
  background: rgba(247,243,234,0.9); padding: 2px 9px; border-radius: 4px; box-shadow: 0 1px 6px rgba(0,0,0,0.14);
  white-space: normal; width: max-content; max-width: 148px; }
.plm-pin-nb { z-index: 6; transition: opacity var(--mo-base) var(--mo-ease); }
.plm-pin-nb .plm-nb-dot { position: absolute; left: 0; top: 0; transform: translate(-50%, -50%);
  width: 9px; height: 9px; border-radius: 50%; background: var(--ink-3);
  border: 2px solid var(--paper); box-shadow: 0 1px 4px rgba(0,0,0,0.28); opacity: 0.82; }
.plm-pin-nb .plm-nb-label { position: absolute; left: 0; top: 8px; transform: translateX(-50%);
  font-family: var(--sans); font-size: 10.5px; color: var(--ink-3); text-align: center;
  background: rgba(247,243,234,0.72); padding: 1px 6px; border-radius: 3px; opacity: 0.82; letter-spacing: 0.01em;
  white-space: normal; width: max-content; max-width: 116px; }
.plm-pin-nb.plm-yield { opacity: 0.28 !important; }
.plm-pin-nb:focus-visible { outline: none; }
.plm-pin-nb:focus-visible .plm-nb-label { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 3px; opacity: 1; }
.plm-label, .plm-nb-label, .lm-marker-label, .lm-furniture { transition: opacity var(--mo-fast) var(--mo-ease), color var(--mo-fast) var(--mo-ease), border-color var(--mo-fast) var(--mo-ease); }
@media (prefers-reduced-motion: reduce) { .plm-label, .plm-nb-label, .lm-marker-label, .lm-furniture { transition: none; } }
.plm-pin.lm-lab-off .plm-label, .plm-pin.lm-lab-off .plm-nb-label { opacity: 0; pointer-events: none; }
.plm-pin.lm-lab-off:focus-visible { z-index: 11; }
@media (hover: hover) { .plm-pin.lm-lab-off:hover {z-index: 11; } }
.plm-pin.lm-lab-off:focus-visible .plm-label, .plm-pin.lm-lab-off:focus-visible .plm-nb-label { opacity: 1; pointer-events: auto; }
@media (hover: hover) { .plm-pin.lm-lab-off:hover .plm-label, .plm-pin.lm-lab-off:hover .plm-nb-label {opacity: 1; pointer-events: auto; } }
.lm-furniture span { transition: opacity var(--mo-fast) var(--mo-ease); }
@media (prefers-reduced-motion: reduce) { .lm-furniture span { transition: none; } }
.lm-furniture.lm-lab-off span { opacity: 0; }
.plm-cluster { display: none; align-items: center; justify-content: center; z-index: 7;
  width: 30px; height: 30px; border-radius: 50%; background: var(--ink-2); color: var(--paper);
  border: 2px solid var(--paper); font-family: var(--mono); font-size: 12px; cursor: pointer;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3); transition: opacity var(--mo-base) var(--mo-ease); }
.plm-cluster.plm-yield { opacity: 0.3 !important; }
.jm-wrap { position: relative; background: var(--paper); }
.jm-empty { display: flex; align-items: center; justify-content: center; background: var(--paper-2);
  border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.jm-standin { font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); }
.jm-poster { position: absolute; inset: 0; z-index: 5; overflow: hidden;
  display: flex; align-items: center; justify-content: center; background: var(--paper-2);
  transition: opacity 400ms ease; }
.jm-poster-bg { position: absolute; inset: 0; background-size: cover; background-position: center;
  filter: blur(2.5px); transform: scale(1.05); }
.jm-poster-scrim { position: absolute; inset: 0; background:
  radial-gradient(120% 100% at 50% 45%, rgba(247,243,234,0) 0%, rgba(247,243,234,0.30) 100%); }
.jm-activate { position: relative; z-index: 3; white-space: nowrap;
  display: inline-flex; align-items: center; gap: 8px; padding: 13px 22px; cursor: pointer;
  background: var(--paper); border: 1px solid var(--ink); border-radius: 999px;
  font-family: var(--sans); font-size: 14px; font-weight: 500; color: var(--ink);
  box-shadow: 0 6px 24px rgba(0,0,0,0.16); transition: background var(--mo-base), color var(--mo-base); }
@media (hover: hover) { .jm-activate:hover {background: var(--ink); color: var(--paper); } }
@media (hover: hover) { .jm-activate:hover svg {stroke: var(--paper); } }
.jm-attrib { position: absolute; bottom: 8px; right: 12px; z-index: 4;
  font-family: var(--sans); font-size: 9px; color: #23291f; opacity: 0.55; pointer-events: none; }
.jm-attrib-live { color: #23291f; }
.jm-wrap.active .jm-attrib-live { display: none; }
.jm-map { position: relative; overflow: hidden; height: var(--jm-poster); background: #e9e2d4;
  border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
  transition: height var(--mo-slow) cubic-bezier(.4,0,.2,1); }
.plm-band { transition: height var(--mo-slow) cubic-bezier(.4,0,.2,1); }
.plm-poster { transition: opacity 400ms ease; }
.jm-gl { position: absolute; inset: 0; }
.jm-wrap.active .jm-map { height: var(--jm-band); }
.jm-fluid { container-type: inline-size; --jm-band: 720px; --jm-poster: 540px; }
.jm-fluid .jm-pb-m { display: none; }
@container (max-width: 720px) {
.jm-fluid > * { --jm-band: 460px; --jm-poster: 320px; }
.jm-fluid .jm-pb-d { display: none; }
.jm-fluid .jm-pb-m { display: block; }
}
.jm-map .mapboxgl-ctrl-bottom-left { z-index: 3; }
.jm-map .mapboxgl-ctrl-bottom-right { z-index: 3; }
.jm-map .mapboxgl-ctrl-attrib { font-size: 10px; }
.jm-progress { position: absolute; top: 18px; left: 20px; right: 62px; z-index: 6;
  display: flex; gap: 6px; align-items: center; }
.jm-seg-dot { flex: 1; height: 4px; border-radius: 999px; border: none; padding: 0; cursor: pointer;
  background: rgba(60,48,32,0.22); transition: background var(--mo-enter); }
@media (hover: hover) { .jm-seg-dot:hover {background: rgba(60,48,32,0.4); } }
.jm-seg-dot.done { background: rgba(168,99,42,0.7); }
.jm-seg-dot.active { background: var(--accent); box-shadow: 0 0 0 3px rgba(168,99,42,0.18); }
.jm-ctrls { position: absolute; right: 16px; bottom: 40px; z-index: 6; display: flex; gap: 8px; }
.jm-ctrl { width: 38px; height: 38px; border-radius: 50%; cursor: pointer;
  background: rgba(255,255,255,0.96); border: 1px solid rgba(0,0,0,0.12); color: var(--ink);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 10px rgba(0,0,0,0.16); transition: border-color var(--mo-base), opacity var(--mo-base), background var(--mo-base); }
@media (hover: hover) { .jm-ctrl:hover {border-color: var(--ink-3); background: #fff; } }
.jm-ctrl:disabled { opacity: 0.38; cursor: default; }
.jm-wrap.is-mobile .jm-ctrls { display: none; }
.jm-crawl { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
@media print {
  .jm-crawl { position: static; width: auto; height: auto; clip: auto; white-space: normal; padding: 16px 0; }
  .jm-activate { display: none; }
}
.jm-stage { position: absolute; inset: 0; z-index: 4; display: flex; align-items: center; pointer-events: none; }
.jm-stage[data-side="left"] { justify-content: flex-start; padding: 0 4vw; }
.jm-stage[data-side="center"] { justify-content: center; padding: 0 5vw; }
.jm-stage.is-mobile { align-items: flex-end; justify-content: center; padding: 0 12px 14px; }
.jm-caption { pointer-events: auto; width: 340px; max-width: 82vw; opacity: 0;
  max-height: calc(var(--jm-band) * 0.55); overflow: hidden; will-change: transform, opacity;
  background: rgba(255,251,244,0.99); backdrop-filter: blur(7px);
  border: 1px solid rgba(0,0,0,0.08); border-radius: 7px; padding: 18px 20px;
  box-shadow: 0 20px 48px -20px rgba(0,0,0,0.5); }
.jm-card-row { display: flex; gap: 14px; align-items: center; }
.jm-card-thumb { width: 66px; height: 66px; border-radius: 5px; flex-shrink: 0; object-fit: cover; }
.jm-card-head { min-width: 0; }
.jm-card-day { font-size: 10px; letter-spacing: 0.16em; color: var(--accent); margin-bottom: 4px; }
.jm-card-name { font-size: 21px; line-height: 1.05; color: var(--ink); }
.jm-card-desc { font-family: var(--sans); font-size: 13.5px; line-height: 1.55; color: var(--ink-2); margin: 12px 0 0; }
.jm-cue { position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 6;
  pointer-events: none; display: inline-flex; flex-direction: row; align-items: center; gap: 10px; white-space: nowrap;
  color: var(--ink-2); font-family: var(--sans); font-size: 13px; letter-spacing: 0.02em;
  background: rgba(255,252,246,0.92); padding: 11px 20px; border-radius: 999px;
  box-shadow: 0 6px 20px -8px rgba(0,0,0,0.3); opacity: 0; transition: opacity .5s; }
.jm-cue.show { opacity: 1; }
.jm-cue svg { flex-shrink: 0; animation: jmBob 1.8s ease-in-out infinite; }
@keyframes jmBob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(4px); } }
@media (prefers-reduced-motion: reduce) { .jm-cue svg { animation: none; } }
.jm-close { pointer-events: auto; text-align: center; max-width: 460px; opacity: 0;
  background: rgba(255,251,244,0.99); backdrop-filter: blur(7px);
  border: 1px solid var(--rule); border-radius: 7px; padding: 24px 30px;
  box-shadow: 0 24px 60px -22px rgba(0,0,0,0.6); }
.jm-close-eyebrow { font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); margin-bottom: 10px; }
.jm-close-h { font-size: 26px; line-height: 1.1; color: var(--ink); margin-bottom: 18px; }
.jm-restart { display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
  background: var(--ink); color: var(--paper); border: none; padding: 10px 18px; border-radius: 999px;
  font-family: var(--sans); font-size: 13px; }
@media (hover: hover) { .jm-restart:hover {background: var(--ink-2); } }
.jm-restart svg { stroke: var(--paper); }
.jm-exit { position: absolute; top: 13px; right: 14px; z-index: 7; cursor: pointer;
  width: 34px; height: 34px; padding: 0; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.96); color: var(--ink); border: 1px solid rgba(0,0,0,0.12);
  box-shadow: 0 2px 10px rgba(0,0,0,0.16); transition: border-color var(--mo-base), background var(--mo-base); }
@media (hover: hover) { .jm-exit:hover {border-color: var(--ink-3); background: #fff; } }
.jm-exit svg { stroke: currentColor; }
.jm-wrap.is-mobile .jm-seg-dot { position: relative; }
.jm-wrap.is-mobile .jm-seg-dot::before { content: ""; position: absolute; left: 0; right: 0; top: -20px; bottom: -20px; }
.jm-wrap.is-mobile .jm-plabel { display: none; }
.jm-wrap.is-mobile .jm-caption.jm-sheet { width: 100%; max-width: none; padding: 8px 16px 14px;
  border-radius: 10px 10px 7px 7px; max-height: 46%; }
.jm-wrap.is-mobile .jm-close { max-width: none; width: 100%; padding: 16px 18px; }
.jm-wrap.is-mobile .jm-close-h { font-size: 19px; margin-bottom: 12px; }
.jm-wrap.is-mobile .jm-close-eyebrow { margin-bottom: 7px; }
.jm-sheet-handle { display: block; width: 40px; height: 4px; border-radius: 999px; border: none; padding: 0;
  margin: 2px auto 10px; background: var(--rule); cursor: pointer; }
.jm-wrap.is-mobile .jm-sheet .jm-card-name { font-size: 18px; }
.jm-wrap.is-mobile .jm-sheet .jm-card-desc { display: none; }
.jm-wrap.is-mobile .jm-sheet.expanded .jm-card-desc { display: block; }
.jm-wrap.is-mobile .jm-progress { top: 12px; left: 14px; right: 52px; }
.jm-pin { position: absolute; top: 0; left: 0; display: flex; align-items: center; justify-content: center; }
.jm-disc { position: relative; z-index: 2; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--mono); font-weight: 600; border: 2px solid var(--paper);
  box-shadow: 0 2px 8px rgba(0,0,0,0.35); transition-property: width, height, font-size, background, color, border-color, box-shadow; transition-duration: var(--mo-enter); transition-timing-function: var(--mo-ease); }
.jm-pulse { position: absolute; z-index: 1; border-radius: 50%; background: var(--accent); opacity: 0; }
.jm-plabel { position: absolute; top: 32px; left: 50%; transform: translateX(-50%); white-space: nowrap;
  font-family: var(--display); font-size: 15px; color: var(--ink);
  background: rgba(255,252,246,0.95); padding: 3px 10px; border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.18); opacity: 0; transition: opacity var(--mo-base); }
.jm-pin-upcoming .jm-disc { width: 18px; height: 18px; font-size: 9px;
  background: rgba(255,252,246,0.82); color: var(--ink-3); border-color: rgba(255,255,255,0.9); box-shadow: 0 1px 4px rgba(0,0,0,0.22); }
.jm-pin-visited .jm-disc { width: 24px; height: 24px; font-size: 12px; background: var(--ink); color: var(--paper); }
.jm-pin-active .jm-disc { width: 32px; height: 32px; font-size: 15px; background: var(--accent); color: #fff; box-shadow: 0 3px 12px rgba(168,99,42,0.5); }
.jm-pin-active .jm-pulse { width: 32px; height: 32px; opacity: 0.5; animation: jm-pulse 2.2s ease-out infinite; }
.jm-pin-active .jm-plabel { opacity: 1; }
@keyframes jm-pulse { 0% { transform: scale(1); opacity: 0.55; } 70% { transform: scale(3.0); opacity: 0; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .jm-pin-active .jm-pulse { animation: none; opacity: 0; } }
.as-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 10px; margin-left: -14px; }
.as-table { width: 100%; border-collapse: collapse; }
.as-table thead th {
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.11em; text-transform: uppercase;
  color: var(--ink-3); font-weight: 500; text-align: left; vertical-align: bottom;
  padding: 0 20px 13px 14px; border-bottom: 1px solid var(--rule); white-space: nowrap;
}
.as-table tbody tr { border-bottom: 1px solid var(--rule-soft); transition: background var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .as-table tbody tr:hover {background: var(--paper-2); } }
.as-table tbody th {
  font-family: var(--sans); font-weight: 600; font-size: 15px; color: var(--ink);
  text-align: left; padding: 16px 20px 16px 14px; vertical-align: top; white-space: nowrap;
}
.as-table tbody td {
  font-family: var(--sans); font-size: 13.5px; line-height: 1.5; color: var(--ink-2);
  text-align: left; padding: 16px 20px 16px 14px; vertical-align: top;
}
.as-table .coord-stamp.coord-block { white-space: nowrap; margin-top: 0; }
body.coord-off .as-col-coord { display: none; }
.as-note { font-family: var(--sans); font-style: italic; font-size: 13.5px; line-height: 1.5; color: var(--ink-3); margin: 18px 0 0; max-width: 720px; }
.as-wrap--stack { overflow-x: visible; margin-left: 0; }
.as-table--stack, .as-table--stack tbody { display: block; width: 100%; }
.as-table--stack thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.as-table--stack tr { display: block; padding: 18px 0; border-bottom: 1px solid var(--rule-soft); }
@media (hover: hover) { .as-table--stack tbody tr:hover {background: none; } }
.as-table--stack tbody th { display: block; padding: 0 0 12px; font-size: 18px; }
.as-table--stack tbody td { display: grid; grid-template-columns: 104px 1fr; column-gap: 12px; align-items: baseline; padding: 5px 0; }
.as-table--stack tbody td::before {
  content: attr(data-label); white-space: nowrap; align-self: baseline;
  font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-3);
}
.as-table--stack tbody td.as-td-empty { display: none; }
.lg-light { border-left: 2px solid var(--rule); padding-left: 20px; }
.lg-light-eyebrow { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 12px; }
.mnp {
  background: var(--paper); z-index: 90;
  display: flex; flex-direction: column;
  animation: mnpIn var(--mo-fast) ease-out both;
}
.mnp[hidden] { display: none; }
.mnp-chrome {
  flex-shrink: 0; width: 100%; max-width: 1440px; margin-inline: auto;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  padding: 20px 44px 10px;
}
.mnp-lockup { grid-column: 2; justify-self: center; }
.mnp-close {
  grid-column: 3; justify-self: end;
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; padding: 0;
  background: none; border: none; border-radius: 999px;
  color: var(--ink-2); cursor: pointer;
  transition: color var(--mo-base) var(--mo-ease);
}
@media (hover: hover) { .mnp-close:hover {color: var(--ink); } }
.mnp-close:focus-visible { outline: 1px solid var(--accent); outline-offset: 3px; }
.mnp-scroll { flex: 1; overflow-y: auto; padding: 30px 96px 96px; }
.mnp-cols { column-count: 2; column-gap: 130px; max-width: 1160px; margin: 0 auto; }
.mnp-cluster {
  break-inside: avoid; -webkit-column-break-inside: avoid;
  padding: 0 0 62px;
  animation: mnpRise var(--mo-enter) var(--mo-curve) both;
}
.mnp-eyebrow { margin: 0 0 8px; padding: 0; }
.mnp-row {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 16px 0 18px;
  border-bottom: 1px solid var(--rule-soft);
  text-decoration: none; color: inherit;
}
.mnp-title {
  font-size: 38px; line-height: 1.04; letter-spacing: -0.02em; color: var(--ink);
  transition: transform var(--mo-base) var(--mo-ease);
}
.mnp-arrow { flex-shrink: 0; display: inline-flex; transition: transform var(--mo-base) var(--mo-ease); }
.mnp-row:focus-visible .mnp-title { transform: translateX(6px); }
@media (hover: hover) { .mnp-row:hover .mnp-title {transform: translateX(6px); } }
.mnp-row:focus-visible .mnp-arrow { transform: translate(3px, -3px); }
@media (hover: hover) { .mnp-row:hover .mnp-arrow {transform: translate(3px, -3px); } }
.mnp-row:focus-visible { outline: 1px solid var(--accent); outline-offset: 4px; }
.mnp-row.mnp-sub { padding: 11px 0 13px 32px; }
.mnp-row.mnp-sub .mnp-title { font-size: 22px; color: var(--ink-2); }
.mnp-m .mnp-chrome { padding: 14px 16px 6px; }
.mnp-m .mnp-scroll { padding: 14px 22px 72px; }
.mnp-m .mnp-cols { column-count: 1; column-gap: 0; max-width: none; }
.mnp-m .mnp-cluster { padding-bottom: 44px; }
.mnp-m .mnp-row { padding: 13px 0 15px; gap: 14px; }
.mnp-m .mnp-title { font-size: 28px; }
.mnp-m .mnp-row.mnp-sub { padding: 11px 0 13px 22px; }
.mnp-m .mnp-row.mnp-sub .mnp-title { font-size: 19px; }
.mnp-display { position: static; animation: none; }
.mnp-display .mnp-scroll { flex: none; overflow: visible; }
.mnp-display .mnp-cluster { animation: none; }
.mnp-colophon { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 34px 0 10px; }
.mnp-colophon::before { content: ""; width: 44px; height: 1px; background: var(--rule); }
.mnp-colophon img { height: 46px; width: auto; opacity: 0.55; }
.mnp-m .mnp-colophon { padding: 22px 0 6px; }
.mnp-m .mnp-colophon img { height: 38px; }
@keyframes mnpIn { from { opacity: 0; } }
@keyframes mnpRise { from { opacity: 0; transform: translateY(10px); } }
@media (prefers-reduced-motion: reduce) {
  .mnp, .mnp-cluster { animation: none; }
  .mnp-title, .mnp-arrow { transition: none; }
}
.wxp { border: 1px solid var(--rule); background: var(--paper-2); }
.wxp-head, .wxp-row { display: grid; grid-template-columns: 190px 1fr 1fr; gap: 0 32px; padding: 15px 28px; }
.wxp-head { align-items: end; padding-top: 22px; padding-bottom: 14px; border-bottom: 1px solid var(--ink-3); }
.wxp-col { font-family: var(--display); font-size: 25px; line-height: 1.05; letter-spacing: -0.015em; color: var(--ink); }
.wxp-row { border-bottom: 1px solid var(--rule-soft); }
.wxp-row:last-of-type { border-bottom: none; }
.wxp-fact { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); padding-top: 4px; }
.wxp-val { font-family: var(--sans); font-size: 15.5px; line-height: 1.5; color: var(--ink); }
.wxp-basis { border-top: 1px solid var(--rule); padding: 13px 28px; font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); line-height: 1.8; }
.wxp--m .wxp-head, .wxp--m .wxp-row { grid-template-columns: 1fr 1fr; gap: 3px 18px; padding: 12px 16px; }
.wxp--m .wxp-head { padding-top: 16px; padding-bottom: 11px; }
.wxp--m .wxp-col { font-size: 19px; }
.wxp--m .wxp-fact { grid-column: 1 / -1; padding-top: 0; }
.wxp--m .wxp-val { font-size: 13px; line-height: 1.45; }
.wxp--m .wxp-basis { padding: 11px 16px; }
.wxl-divider { position: absolute; left: -6%; right: -6%; top: 33%; z-index: 1; border-top: 1.5px dashed var(--ink-3); opacity: 0.55; transform: rotate(-5deg); }
.wxl-divider span { position: absolute; right: 9%; top: 7px; font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-2); }
.wxl-target { position: absolute; left: 0; right: 0; top: 11%; z-index: 2; text-align: center; font-size: 21px; color: var(--ink-2); pointer-events: none; }
@media (max-width: 720px) { .wxl-target { font-size: 17px; } }
.so-map-whisper { position: absolute; z-index: 1; transform: translate(-50%, -50%); font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-2); opacity: 0.75; white-space: nowrap; pointer-events: none; }
.fs-device { margin: 40px 0 10px; padding-top: 24px; border-top: 1px solid var(--ink-3); }
.fs-authority { font-size: 24px; line-height: 1.15; letter-spacing: -0.014em; color: var(--ink); margin: 0; }
.fs-covers { font-family: var(--sans); font-weight: 400; font-size: 15px; color: var(--ink-2); letter-spacing: 0; }
.fs-unit { font-family: var(--sans); font-style: italic; font-size: 13.5px; color: var(--ink-3); margin: 8px 0 2px; }
.fs-table tbody th { white-space: normal; min-width: 140px; }
.fs-sub { display: block; font-family: var(--sans); font-weight: 400; font-size: 12px; color: var(--ink-3); margin-top: 3px; }
.as-table--stack.fs-table tbody td { grid-template-columns: 130px 1fr; }
.fs-stamp { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--rule); font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ink-3); }
.fs-dot { color: var(--rule); }
.fs-stamped .as-table tbody tr:last-child { border-bottom: none; }
.fs-vdate { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.06em; color: var(--ink-3); white-space: nowrap; }
.fs-durable { font-family: var(--sans); font-size: 16px; line-height: 1.6; color: var(--ink-2); margin: 10px 0 0; max-width: 720px; }
.fs-door { font-family: var(--serif); font-style: italic; font-size: 16.5px; line-height: 1.5; color: var(--ink); margin: 12px 0 0; }
.fs-legs { margin-top: 18px; border-top: 1px solid var(--rule); }
.fs-leg { padding: 15px 0 13px; border-bottom: 1px solid var(--rule-soft); }
.fs-leg-route { font-family: var(--sans); font-weight: 600; font-size: 15px; color: var(--ink); }
.fs-leg-from { margin-top: 3px; font-family: var(--sans); font-size: 13.5px; color: var(--ink-2); }
.fs-leg-from .fs-price { font-family: var(--display); font-size: 20px; color: var(--bronze); padding: 0 2px; }
.fs-leg-from em { color: var(--ink-3); }
.fs-quoteline { font-family: var(--serif); font-style: italic; font-size: 16px; line-height: 1.5; color: var(--ink-2); margin: 12px 0 0; }
.fs-anatomy { margin-top: 28px; border-top: 1px solid var(--ink-3); }
.fs-comp { display: grid; grid-template-columns: 230px 1fr; column-gap: 40px; padding: 28px 0 26px; border-bottom: 1px solid var(--rule-soft); }
.fs-comp--stack { display: block; }
.fs-comp--stack .fs-comp-head { margin-bottom: 14px; }
.fs-comp-name { font-size: 22px; line-height: 1.1; letter-spacing: -0.014em; margin: 0; }
.fs-comp-shape { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ink-3); margin-top: 8px; }
.fs-comp-body .fs-body { font-size: 16px; line-height: 1.62; color: var(--ink-2); margin: 0; }
.fs-comp-trap { font-family: var(--sans); font-size: 13.5px; font-style: italic; line-height: 1.5; color: var(--ink-3); margin: 10px 0 0; }
.fs-trap-tag { font-family: var(--mono); font-style: normal; font-size: 9px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--accent-2); margin-right: 9px; }
.fs-pointer { margin-top: 4px; }
.fs-mech { margin-top: 20px; border-top: 1px solid var(--rule); }
.fs-mech-row { display: grid; grid-template-columns: 210px 1fr; column-gap: 32px; padding: 15px 0; border-bottom: 1px solid var(--rule-soft); }
.fs-mech-row--stack { display: block; }
.fs-mech-row--stack .fs-mech-label { margin-bottom: 5px; }
.fs-mech-label { font-family: var(--sans); font-weight: 600; font-size: 14.5px; line-height: 1.4; color: var(--ink); }
.fs-mech-text { font-family: var(--sans); font-size: 14.5px; line-height: 1.55; color: var(--ink-2); margin: 0; }
.spv-line { margin: 6px 0 24px; padding: 18px 0 16px; border-top: 1px solid var(--ink-3); border-bottom: 1px solid var(--rule); max-width: 640px; }
.spv-frame { font-family: var(--serif); font-style: italic; font-size: 19px; line-height: 1.55; letter-spacing: -0.008em; color: var(--ink); margin: 0; }
.spv-frame strong { font-family: var(--display); font-style: normal; font-weight: 400; font-size: 23px; color: var(--bronze); }
@media (max-width: 720px) { .spv-frame { font-size: 17px; } .spv-frame strong { font-size: 20px; } }
.acx-price { font-family: var(--sans); font-size: 16.5px; line-height: 1.4; color: var(--ink-2); margin: 4px 0 20px; }
.acx-fig { font-family: var(--display); font-size: 25px; letter-spacing: -0.012em; color: var(--bronze); padding: 0 2px; }
.acx-qual { font-family: var(--mono); font-size: 10px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ink-3); margin-left: 10px; white-space: nowrap; }
@media (prefers-reduced-motion: no-preference) { html:has(.fq-chips) { scroll-behavior: smooth; } }
.fq-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.fq-chip { font-family: var(--mono); font-size: 10px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ink-2); background: var(--paper); border: 1px solid var(--rule); padding: 10px 15px; line-height: 1; text-decoration: none; }
@media (hover: hover) { .fq-chip:hover {color: var(--ink); border-color: var(--accent); } }
.fq-chips--m { gap: 8px; }
.fq-chips--m .fq-chip { padding: 17px 15px; }
.fq-group { scroll-margin-top: 96px; margin-top: 48px; }
.sp-chwrap, .se-chwrap { scroll-margin-top: 96px; }
.fq-group:first-child { margin-top: 28px; }
.fq-group-h { font-size: 33px; line-height: 1.05; letter-spacing: -0.018em; font-weight: 400; color: var(--ink); margin: 0 0 4px; padding-top: 26px; border-top: 1px solid var(--ink-3); }
.fq-group-h--m { font-size: 26px; padding-top: 20px; }
.fq-inline { color: var(--ink); text-decoration: none; border-bottom: 1.5px solid var(--accent); padding-bottom: 1px; }
@media (hover: hover) { .fq-inline:hover {color: var(--accent-2); } }
.fq-pending { color: var(--ink-2); cursor: default; }
.fq-pending .mc-soon { margin-left: 7px; vertical-align: 2px; }
.fq-attr { font-family: var(--mono); font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); white-space: nowrap; margin-left: 6px; }
.acd-seq { position: relative; margin-top: 6px; }
.acd-seq::before { content: ""; position: absolute; left: 6px; top: 16px; bottom: 18px; width: 1px; background: var(--rule); }
.acd-beat { position: relative; display: grid; grid-template-columns: 14px 1fr; column-gap: 34px; padding: 20px 0 18px; }
.acd-node { width: 13px; height: 13px; border-radius: 50%; border: 2px solid var(--accent); background: var(--paper); margin-top: 6px; position: relative; z-index: 1; box-sizing: border-box; }
.acd-name { font-family: var(--display); font-size: 24px; line-height: 1.08; letter-spacing: -0.014em; font-weight: 400; margin: 0 0 8px; color: var(--ink); }
.acd-name em { font-style: italic; color: var(--accent-2); }
.acd-body { font-family: var(--sans); font-size: 15.5px; line-height: 1.62; color: var(--ink-2); margin: 0; max-width: 640px; }
.acd-seq.mob::before { display: none; }
.acd-seq.mob .acd-beat { grid-template-columns: 1fr; padding: 15px 0; }
.acd-seq.mob .acd-node { display: none; }
.acd-seq.mob .acd-name { font-size: 21px; }
.pt-inline { color: var(--ink); text-decoration: none; border-bottom: 1.5px solid var(--accent); padding-bottom: 1px; }
@media (hover: hover) { .pt-inline:hover {color: var(--accent-2); } }
.pt-pending { color: var(--ink-2); cursor: default; }
.pt-pending .mc-soon { margin-left: 7px; vertical-align: 2px; }
.tpr-wrap { margin: 10px 0 10px; max-width: 680px; }
.tpr-frame { font-family: var(--sans); font-style: italic; font-size: 14.5px; line-height: 1.5; color: var(--ink-2); margin: 0 0 2px; }
.tpr-table tbody td.tpr-range { font-family: var(--sans); font-weight: 600; font-size: 15px; color: var(--ink); white-space: nowrap; }
.tpr-table tbody td.tpr-per { color: var(--ink-3); }
.as-table--stack.tpr-table tbody td { grid-template-columns: 84px 1fr; }
.tpr-variants { margin: 16px 0 0; display: grid; gap: 8px; max-width: 620px; }
.tpr-variant { font-family: var(--sans); font-size: 13.5px; font-style: italic; line-height: 1.55; color: var(--ink-3); margin: 0; padding-left: 14px; border-left: 2px solid var(--rule); }
.tpx { border-top: 1px solid var(--rule-soft); padding-top: 24px; }
.tpx p { max-width: 720px; }
.pkl-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 64px; margin-top: 6px; }
.pkl-groups--m { grid-template-columns: 1fr; gap: 10px; }
.pkl-group { break-inside: avoid; margin: 10px 0 8px; }
.pkl-h { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent-2); padding-bottom: 9px; border-bottom: 1px solid var(--rule); margin-bottom: 12px; }
.pkl-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pkl-item { font-family: var(--sans); font-size: 15px; line-height: 1.5; color: var(--ink-2); }
.pkl-why { color: var(--ink-3); font-style: italic; }
.pkr { margin: 22px 0 6px; border-top: 1px solid var(--rule-soft); padding-top: 18px; max-width: 660px; }
.pkr-h { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent-2); margin-bottom: 12px; }
.pkr-item { font-family: var(--sans); font-size: 15px; line-height: 1.55; color: var(--ink-2); margin: 0 0 9px; }
.pkr-name { color: var(--ink); font-weight: 600; }
.hyt { margin: 34px 0 10px; border-top: 1px solid var(--rule); }
.hyt-row { display: grid; grid-template-columns: 96px 1fr; gap: 20px; padding: 15px 0 14px; border-bottom: 1px solid var(--rule-soft); align-items: baseline; }
.hyt-year { font-family: var(--mono); font-size: 13px; letter-spacing: 0.14em; color: var(--accent-2); }
.hyt-entry { font-family: var(--sans); font-size: 15.5px; line-height: 1.6; color: var(--ink-2); }
.hyt-entry::first-letter { text-transform: uppercase; }
.hyt-src { font-style: italic; color: var(--ink-3); }
.hyt--m .hyt-row { grid-template-columns: 62px 1fr; gap: 14px; padding: 13px 0 12px; }
.hyt--m .hyt-year { font-size: 12px; }
.hyt--m .hyt-entry { font-size: 14.5px; }
.jx-head { padding: 76px 60px 8px; background: var(--paper); }
.jx-h1 { font-family: var(--display); font-size: 76px; line-height: 0.96; letter-spacing: -0.026em; margin: 0 0 18px; color: var(--ink); }
.jx-intro { font-family: var(--sans); font-style: italic; font-size: 19px; line-height: 1.5; color: var(--ink-2); margin: 0; max-width: 640px; }
.jx-roster { padding: 8px 60px 44px; background: var(--paper); }
.jx-roster-in { max-width: 1140px; margin: 0 auto; }
.jx-head .jx-roster-in { max-width: 1140px; }
.jx-card { display: block; color: inherit; text-decoration: none; }
.jx-eyebrow { font-family: var(--mono); font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); }
.jx-guest { font-family: var(--mono); font-size: 8px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ink-3); border: 1px solid var(--rule); padding: 2px 7px; border-radius: 2px; }
.jx-hl { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.04; color: var(--ink); margin: 0; text-wrap: pretty; transition: color var(--mo-base) var(--mo-ease); }
@media (hover: hover) { .jx-card:hover .jx-hl {color: var(--accent-2); } }
.jx-stand { font-family: var(--sans); font-size: 14.5px; line-height: 1.55; color: var(--ink-2); margin: 0; max-width: 560px; }
.jx-by { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.11em; text-transform: uppercase; color: var(--ink-3); display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.jx-lead { display: grid; grid-template-columns: 7fr 5fr; gap: 56px; align-items: center; padding: 40px 0 52px; }
.jx-lead-ph { height: 460px; }
.jx-lead-body { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.jx-lead .jx-hl { font-size: 46px; }
.jx-lead .jx-stand { font-size: 16.5px; }
.jx-lead--text { display: flex; flex-direction: column; gap: 18px; align-items: flex-start; padding: 58px 0 62px; max-width: 940px; }
.jx-lead--text .jx-hl { font-size: 60px; }
.jx-rows {  }
.jx-rows--tail .jx-row:last-child { border-bottom: none; }
.jx-seam { border-top: 1px solid var(--rule); }
.jx-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 44px; padding: 32px 0 34px; border-bottom: 1px solid var(--rule-soft); align-items: center; }
.jx-row--img { grid-template-columns: minmax(0, 1fr) 240px; }
.jx-row-main { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; max-width: 760px; }
.jx-row .jx-hl { font-size: 31px; }
.jx-row-ph { width: 240px; height: 160px; }
.jx-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 58px 44px; padding: 44px 0 26px; }
.jx-grid--2 { grid-template-columns: repeat(2, 1fr); }
.jx-grid--2 .jx-hl { font-size: 30px; }
.jx-gcard { display: flex; flex-direction: column; gap: 11px; align-items: flex-start; }
.jx-gcard-ph { width: 100%; height: 210px; }
.jx-gcard .jx-hl { font-size: 26px; }
.jx-gcard--text .jx-hl { font-size: 30px; font-style: italic; }
.jx-grid--2 .jx-gcard--text .jx-hl { font-size: 34px; }
.jx-solo { display: grid; grid-template-columns: 7fr 5fr; gap: 44px; align-items: center; padding: 40px 0; }
.jx-solo-ph { height: 300px; }
.jx-solo-body { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.jx-solo .jx-hl { font-size: 32px; }
.jx-solo--text { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; padding: 44px 0; max-width: 820px; }
.jx-solo--text .jx-hl { font-size: 38px; font-style: italic; }
.jx-pgn { border-top: 1px solid var(--rule); margin-top: 30px; padding: 24px 0 6px; display: flex; align-items: center; justify-content: center; gap: 18px; font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-2); }
.jx-pgn a { color: var(--ink-2); text-decoration: none; padding: 3px 5px; }
@media (hover: hover) { .jx-pgn a:hover {color: var(--ink); } }
.jx-pgn .cur { color: var(--ink); border-bottom: 1.5px solid var(--accent); padding: 3px 5px; }
.jx-pgn .dis { color: var(--ink-3); opacity: 0.45; }
.jx--m .jx-head { padding: 42px 22px 4px; }
.jx--m .jx-h1 { font-size: 42px; margin-bottom: 12px; }
.jx--m .jx-intro { font-size: 15px; }
.jx--m .jx-roster { padding: 4px 22px 34px; }
.jx--m .jx-lead { grid-template-columns: 1fr; gap: 18px; padding: 26px 0 36px; }
.jx--m .jx-lead-ph { height: 240px; }
.jx--m .jx-lead .jx-hl { font-size: 32px; }
.jx--m .jx-lead--text { padding: 34px 0 40px; gap: 14px; }
.jx--m .jx-lead--text .jx-hl { font-size: 36px; }
.jx--m .jx-row, .jx--m .jx-row--img { grid-template-columns: 1fr; gap: 16px; padding: 26px 0 28px; }
.jx--m .jx-row-ph { width: 100%; height: 200px; order: -1; }
.jx--m .jx-row .jx-hl { font-size: 27px; }
.jx--m .jx-grid { grid-template-columns: 1fr; gap: 38px; padding: 30px 0 18px; }
.jx--m .jx-grid--2 { grid-template-columns: 1fr; }
.jx--m .jx-grid--2 .jx-hl, .jx--m .jx-grid--2 .jx-gcard--text .jx-hl { font-size: 27px; }
.jx--m .jx-solo { grid-template-columns: 1fr; gap: 16px; padding: 28px 0; }
.jx--m .jx-solo-ph { height: 220px; }
.jx--m .jx-solo .jx-hl { font-size: 28px; }
.jx--m .jx-solo--text { padding: 32px 0; }
.jx--m .jx-solo--text .jx-hl { font-size: 30px; }
.jp-hero { position: relative; margin-top: -116px; }
.jp-hero-ph { width: 100%; height: 640px; }
.jp-hero-grad { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.36) 0%, transparent 30%); pointer-events: none; }
.jp-headwrap { padding: 56px 60px 0; background: var(--paper); }
.jp-headwrap--sub { padding-top: 0; }
.jp-headwrap-in { max-width: 960px; margin: 0 auto; }
.jp-h1 { font-family: var(--display); font-weight: 400; font-size: 62px; line-height: 1.0; letter-spacing: -0.024em; margin: 0; color: var(--ink); text-wrap: balance; }
.jp-stand { font-family: var(--sans); font-size: 20px; line-height: 1.55; color: var(--ink-2); margin: 20px 0 0; max-width: 760px; }
.jp-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 22px; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule-soft); padding: 14px 0; margin-top: 26px; }
.jp-meta .jx-guest { font-size: 9px; padding: 2px 8px 3px; }
.jp-meta-by { display: inline-flex; align-items: baseline; gap: 8px; white-space: nowrap; }
.jp-meta-name { font-family: var(--sans); font-weight: 600; font-size: 14.5px; color: var(--ink); }
.jp-meta-role { font-family: var(--sans); font-size: 13px; color: var(--ink-3); }
.jp-meta-date { font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); }
.jp-body { padding: 44px 60px 72px; background: var(--paper); }
.jp-body-in { max-width: 960px; margin: 0 auto; }
.jp-p { font-family: var(--sans); font-size: 17.5px; line-height: 1.72; color: var(--ink-2); margin: 0 0 22px; max-width: 720px; }
.jp-sub { font-family: var(--display); font-weight: 400; font-size: 31px; line-height: 1.06; letter-spacing: -0.018em; color: var(--ink); margin: 44px 0 18px; max-width: 720px; }
.jp-fig { margin: 40px 0; }
.jp-fig--wide { --jp-bleed: 90px; margin-left: calc(-1 * var(--jp-bleed)); margin-right: calc(-1 * var(--jp-bleed)); }
@media (max-width: 1260px) { .jp-fig--wide { --jp-bleed: 0px; } }
.jp-fig-ph { width: 100%; height: 520px; }
.jp-fig--wide .jp-fig-ph { height: 560px; }
.jp-figcap { display: flex; flex-direction: column; gap: 5px; margin: 12px 0 0; max-width: 720px; }
.jp-fig--wide .jp-figcap { margin-left: var(--jp-bleed); }
.jp-figcap-t { font-family: var(--sans); font-size: 13.5px; line-height: 1.5; color: var(--ink-2); }
.jp-figcap-c { font-family: var(--mono); font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); }
.jp-quote { font-family: var(--display); font-style: italic; font-weight: 400; font-size: 33px; line-height: 1.22; letter-spacing: -0.015em; color: var(--ink); margin: 46px 0; max-width: 720px; text-wrap: balance; }
.jp-author { max-width: 720px; margin: 54px 0 0; background: var(--paper-2); border: 1px solid var(--rule-soft); padding: 24px 26px; display: grid; grid-template-columns: 86px 1fr; gap: 6px 22px; }
.jp-author--noportrait { grid-template-columns: 1fr; }
.jp-author-ph { width: 86px; height: 86px; }
.jp-author-ph .ph-label { font-size: 8px; letter-spacing: 0.08em; }
.jp-author--team { grid-template-columns: 64px 1fr; }
.jp-author-ph--team { width: 64px; height: 64px; border: 1px solid var(--rule); background: var(--paper); }
.jr-sep { font-family: var(--sans); font-size: 12px; color: var(--ink-3); }
.jp-author-line { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.jp-author-name { font-family: var(--sans); font-weight: 600; font-size: 15px; color: var(--ink); }
.jp-author-role { font-family: var(--sans); font-size: 13px; color: var(--ink-3); }
.jp-author-bio { font-family: var(--sans); font-size: 14.5px; line-height: 1.6; color: var(--ink-2); margin: 8px 0 0; }
.jp-contain { grid-column: 1 / -1; border-top: 1px solid var(--rule-soft); margin-top: 10px; padding-top: 12px; font-family: var(--mono); font-size: 9px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ink-3); }
.jp-rel { padding: 60px 60px 64px; background: var(--paper-2); border-top: 1px solid var(--rule-soft); margin-top: 0; }
.jp-rel-in { max-width: 960px; margin: 0 auto; }
.jp-rel-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; margin-top: 24px; }
.jx-gcard--rail .jx-hl { font-size: 22px; }
.jx-gcard--rail .jx-gcard-ph { height: 150px; }
.jp--m .jp-hero { margin-top: -92px; }
.jp--m .jp-hero-ph { height: 440px; }
.jp--m .jp-headwrap { padding: 36px 22px 0; }
.jp--m .jp-headwrap--sub { padding-top: 0; }
.jp--m .jp-h1 { font-size: 37px; }
.jp--m .jp-stand { font-size: 16.5px; margin-top: 14px; }
.jp--m .jp-meta { gap: 8px 16px; margin-top: 20px; }
.jp--m .jp-body { padding: 34px 22px 48px; }
.jp--m .jp-p { font-size: 16px; line-height: 1.68; }
.jp--m .jp-sub { font-size: 25px; margin: 34px 0 14px; }
.jp--m .jp-fig { margin: 30px 0; }
.jp--m .jp-fig--wide { --jp-bleed: 22px; }
.jp--m .jp-fig-ph, .jp--m .jp-fig--wide .jp-fig-ph { height: 240px; }
.jp--m .jp-fig--wide .jp-figcap { margin-left: var(--jp-bleed); padding-right: var(--jp-bleed); }
.jp--m .jp-quote { font-size: 25px; margin: 34px 0; }
.jp--m .jp-author { grid-template-columns: 64px 1fr; padding: 20px; margin-top: 42px; }
.jp--m .jp-author--noportrait { grid-template-columns: 1fr; }
.jp--m .jp-author-ph { width: 64px; height: 64px; }
.jp--m .jp-rel { padding: 42px 22px 46px; margin-top: 0; }
.jp--m .jp-rel-grid { grid-template-columns: 1fr; gap: 28px; }
.gep-line { margin-top: 22px; padding-top: 12px; border-top: 1px solid var(--rule); max-width: 640px; }
.gep-p { font-family: var(--sans); font-size: 13px; line-height: 1.55; color: var(--ink-2); margin: 0; }
.gep-route { color: var(--ink); text-decoration: none; border-bottom: 1.5px solid var(--accent); padding-bottom: 1px; white-space: nowrap; }
@media (hover: hover) { .gep-route:hover {color: var(--accent-2); } }
.wbi { margin: 6px 0 24px; max-width: 640px; }
.wbi-frame { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); margin: 0 0 2px; }
.wbi-list { list-style: none; margin: 0; padding: 0; }
.wbi-list li { font-family: var(--sans); font-size: 15.5px; line-height: 1.5; color: var(--ink); padding: 11px 0; border-bottom: 1px solid var(--rule-soft); }
.wbi-list li:first-child { border-top: 1px solid var(--ink-3); }
.wbi-route { margin-top: 16px; }
#corrections, #ai { scroll-margin-top: 96px; }
.trx-mailto { font-family: var(--sans); color: var(--ink); border-bottom: 1.5px solid var(--accent); text-decoration: none; padding-bottom: 1px; }
@media (hover: hover) { .trx-mailto:hover {color: var(--accent-2); } }
.spv-line + .gep-line { border-top: none; padding-top: 0; margin-top: -12px; }
.gep-flush .gep-line { border-top: none; padding-top: 0; margin-top: 10px; }
.trx-fail { margin: 60px; padding: 24px 28px; border: 1.5px solid oklch(0.55 0.16 30); background: oklch(0.97 0.015 30); font-family: var(--mono); font-size: 11px; line-height: 1.8; color: oklch(0.38 0.12 30); white-space: pre-wrap; }
.trx-fail strong { display: block; margin-bottom: 10px; font-size: 12px; }
.lgh-doc { background: var(--paper); border-bottom: 1px solid var(--rule-soft); padding: 88px 60px 42px; }
.lgh-doc--m { padding: 40px 22px 26px; }
.lgh-doc-h1 { font-size: 58px; line-height: 0.99; letter-spacing: -0.026em; font-weight: 400; margin: 0; color: var(--ink); text-wrap: balance; max-width: 900px; }
.lgh-doc--m .lgh-doc-h1 { font-size: 34px; }
.lgh-doc-meta { font-family: var(--sans); font-size: 13.5px; line-height: 1.5; color: var(--ink-3); margin: 18px 0 0; }
.lgh-doc--m .lgh-doc-meta { font-size: 12.5px; margin-top: 12px; }
.lgs-ctx { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ink-3); padding-bottom: 10px; margin-bottom: 14px; border-bottom: 1px solid var(--rule-soft); }
.lgs-dismiss { display: inline-flex; align-items: center; font-family: var(--sans); font-size: 14px; font-weight: 500; color: var(--ink-2); background: none; border: none; border-bottom: 1.5px solid var(--rule); padding: 0 0 3px; cursor: pointer; }
@media (hover: hover) { .lgs-dismiss:hover {color: var(--ink); border-bottom-color: var(--accent); } }
.lgs-err { font-family: var(--sans); font-size: 13.5px; line-height: 1.5; color: oklch(0.5 0.14 30); margin: 16px 0 0; }
.lgn-done { flex-basis: 100%; align-self: center; font-family: var(--sans); font-size: 15px; line-height: 1.5; color: var(--ink); margin: 0; }
.lgn-done.dk { color: var(--paper-2); }
.lgn-err { flex-basis: 100%; font-family: var(--sans); font-size: 12.5px; line-height: 1.4; color: oklch(0.5 0.14 30); margin: 2px 0 0; }
.lgn-err.dk { color: oklch(0.82 0.11 30); }
.lx-p { font-family: var(--sans); line-height: 1.68; color: var(--ink-2); margin: 0 0 14px; max-width: 720px; }
.lx-p strong { color: var(--ink); font-weight: 600; }
.lx-fig { font-weight: 600; color: var(--ink); white-space: nowrap; }
.lx-pending { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent-2); border: 1px dashed var(--rule); padding: 2px 6px; white-space: nowrap; }
.lx-sub { list-style: none; margin: 2px 0 16px; padding: 0; display: grid; gap: 9px; max-width: 720px; }
.lx-sub-li { font-family: var(--sans); font-size: 15.5px; line-height: 1.62; color: var(--ink-2); padding-left: 30px; text-indent: -30px; }
.lx-sub-l { font-family: var(--mono); font-size: 11px; color: var(--accent-2); margin-right: 8px; }
.lx-grouphead { padding: 56px 60px 0; }
.lx-grouphead--m { padding: 34px 22px 0; }
.lx-grouphead-in { max-width: 960px; margin: 0 auto; border-top: 1px solid var(--ink-3); }
.lx-grouphead-h { font-size: 30px; line-height: 1.06; letter-spacing: -0.02em; font-weight: 400; color: var(--ink); margin: 0; padding-top: 22px; }
.lx-grouphead--m .lx-grouphead-h { font-size: 24px; padding-top: 16px; }
.lx-grouphead-n { font-family: var(--sans); font-size: 13.5px; color: var(--ink-3); margin: 8px 0 0; }
#s1, #s2, #s3, #s4, #s5, #s6, #s7, #s8, #s9, #s10, #cookies, [id^="clause-"], .lx-grouphead { scroll-margin-top: 96px; }
.lx-ent { border-top: 1px solid var(--rule); padding-top: 20px; max-width: 720px; display: grid; gap: 6px; }
.lx-ent-p { font-family: var(--sans); font-size: 12.5px; line-height: 1.65; color: var(--ink-3); margin: 0; }
.bc-wrap { margin: 16px 0 6px -14px; max-width: 620px; }
.bc-caption { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); text-align: left; padding-bottom: 12px; padding-left: 14px; }
.as-table--stack .bc-caption { display: block; padding-left: 0; }
.as-table--stack.bc-table tbody th::before { content: attr(data-label); display: block; font-family: var(--mono); font-style: normal; font-weight: 500; font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 6px; }
.bc-amt { font-family: var(--sans); font-size: 15px; font-weight: 600; color: var(--ink); white-space: nowrap; }
.as-table--stack.bc-table tbody td { grid-template-columns: 110px 1fr; }
.lx-jur { margin: 4px 0 2px; }
.lx-jur-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 10px; max-width: 720px; }
.lx-jur-list li { font-family: var(--sans); font-size: 15.5px; line-height: 1.6; color: var(--ink-2); padding-left: 18px; position: relative; }
.lx-jur-list li::before { content: "—"; position: absolute; left: 0; color: var(--ink-3); }
.rt-wrap { margin: 14px 0 6px -14px; }
.rt-per { white-space: normal; font-weight: 500; color: var(--ink) !important; }
.rt-stat { font-family: var(--mono); font-size: 8px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); border: 1px solid var(--rule); padding: 2px 5px; margin-left: 8px; white-space: nowrap; }
.as-table--stack.rt-table tbody td { grid-template-columns: 96px 1fr; }
.lx-pb { margin: 10px 0 12px; max-width: 760px; border-top: 1px solid var(--ink-3); }
.lx-pb-row { display: grid; grid-template-columns: 1fr 210px; gap: 24px; padding: 13px 0; border-bottom: 1px solid var(--rule-soft); align-items: baseline; }
.lx-pb-purpose { font-family: var(--sans); font-size: 15.5px; line-height: 1.5; color: var(--ink); margin: 0; }
.lx-pb-basis { font-family: var(--mono); font-size: 10px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--accent-2); margin: 0; }
.lx-pb--m .lx-pb-row { grid-template-columns: 1fr; gap: 5px; }
.lx-rec { margin: 12px 0 6px; max-width: 720px; border-top: 1px solid var(--rule); }
.lx-rec-row { display: grid; gap: 4px; padding: 13px 0; border-bottom: 1px solid var(--rule-soft); margin: 0; }
.lx-rec-label { font-family: var(--sans); font-size: 15px; font-weight: 600; color: var(--ink); }
.lx-rec-detail { font-family: var(--sans); font-size: 14px; line-height: 1.55; color: var(--ink-2); }
.lx-rights { list-style: none; margin: 10px 0 20px; padding: 0; display: grid; gap: 11px; max-width: 720px; border-top: 1px solid var(--rule); padding-top: 16px; }
.lx-rights-li { font-family: var(--sans); font-size: 15.5px; line-height: 1.6; color: var(--ink-2); }
.lx-rights-label { font-weight: 600; color: var(--ink); }
.lx-cc { margin: 16px 0 4px; max-width: 720px; }
.lx-cc-cat { padding: 20px 0 18px; border-top: 1px solid var(--rule-soft); }
.lx-cc-cat:first-child { border-top: 1px solid var(--ink-3); }
.lx-cc-label { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent-2); margin-bottom: 11px; }
.lx-cc-p { margin: 0 0 12px; }
.lx-cc-meta { font-family: var(--sans); font-size: 14px; line-height: 1.55; color: var(--ink-2); margin: 0 0 7px; display: grid; grid-template-columns: 124px 1fr; gap: 14px; align-items: baseline; }
.lx-cc-key { font-family: var(--mono); font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); }
.dc-aff { color: var(--ink); margin-top: 2px; }
.nf-routes { display: grid; max-width: 560px; border-top: 1px solid var(--ink-3); }
.nf-route { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 44px; box-sizing: border-box; padding: 15px 2px; border-bottom: 1px solid var(--rule-soft); font-family: var(--sans); font-size: 16px; color: var(--ink); text-decoration: none; }
@media (hover: hover) { .nf-route:hover {color: var(--accent-2); background: var(--paper-2); } }
.nf-search { display: flex; align-items: center; gap: 12px; }
.nf-search-label { font-family: var(--sans); font-size: 14px; color: var(--ink-3); }
.nf-status { display: flex; flex-wrap: wrap; gap: 8px 22px; align-items: center; padding: 12px 18px; background: oklch(0.24 0.018 60); font-family: var(--mono); font-size: 10px; letter-spacing: 0.08em; color: rgba(255,255,255,0.62); }
.nf-status-code { color: var(--paper); letter-spacing: 0.12em; }
.tab-status { margin-left: auto; font-family: var(--mono); font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); }
.sxf-run { margin: 6px 0 0; display: flex; flex-wrap: wrap; gap: 3px 14px; }
.sxf-run-item { display: inline-flex; align-items: baseline; gap: 6px; }
.sxf-run-k { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); }
.sxf-run-v { font-family: var(--sans); font-size: 12.5px; line-height: 1.35; color: var(--ink-2); }
.sxf-foot { align-items: flex-end; }
.sxf-foot-solo { justify-content: flex-start; }
.sxf-foot .fc-card-price-v { font-family: var(--display); font-size: 17px; color: var(--ink); letter-spacing: -0.01em; }
.sxf-foot .fc-card-price { flex: 1 1 auto; min-width: 0; }
.sxf-foot .fc-card-price-v { overflow-wrap: anywhere; }
.sxf-foot .fc-card-route { flex: 0 0 auto; justify-content: flex-end; text-align: right; }
.sxf-foot-solo .fc-card-route { flex: 0 1 auto; justify-content: flex-start; text-align: left; }
.sxf-cell, .sxf-row > * { min-width: 0; container-type: inline-size; }
@container (max-width: 260px) {
  .sxf-run-middot { gap: 3px 0; }
  .sxf-run-middot .sxf-run-k { display: none; }
  .sxf-run-middot .sxf-run-item + .sxf-run-item::before { content: "\00B7"; margin: 0 7px; color: var(--ink-3); }
}
.sxf-foot-m { flex-direction: column; align-items: flex-start; gap: 9px; }
.sxf-foot-m .fc-card-route { justify-content: flex-start; text-align: left; flex: 0 1 auto; }
.sw-card-feat .sxf-foot .fc-card-price-v { font-size: 19px; }
.sxf-rows { display: grid; gap: 14px; margin-top: 16px; }
.sxf-row { display: grid; gap: 14px; }
.sxf-row-feat { align-items: stretch; }
.atx-map-cell { position: relative; }
.atx-contact { margin-top: 14px; display: grid; gap: 3px; }
.atx-address { font-family: var(--sans); font-size: 13.5px; line-height: 1.5; color: var(--ink-2); margin: 0; }
.atx-official { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; margin: 0; }
.atx-official a { color: var(--accent-2); text-decoration: none; border-bottom: 1px solid var(--rule); padding-bottom: 1px; }
@media (hover: hover) { .atx-official a:hover {border-color: var(--accent); } }
.fc-rows { display: grid; gap: 14px; margin-top: 18px; }
.fc-rows .fc-strip { margin-top: 0; }
.ai-heart {
  position: absolute; top: 12px; right: 12px; z-index: 3;
  width: 34px; height: 34px; border-radius: 50%; cursor: pointer;
  border: none; background: rgba(30,26,22,0.42); backdrop-filter: blur(3px);
  display: inline-flex; align-items: center; justify-content: center;
  transition: background var(--mo-fast), transform var(--mo-fast);
}
@media (hover: hover) { .ai-heart:hover {background: rgba(30,26,22,0.62); transform: scale(1.06); } }
.ai-heart.on { background: var(--paper); box-shadow: 0 2px 8px rgba(0,0,0,0.18); }
.fc-cardwrap { position: relative; display: flex; }
.fc-cardwrap > .fc-card { flex: 1; min-width: 0; }
.sc-map-furniture { position: absolute; z-index: 1; pointer-events: none;
  transform: translate(-50%, -50%); font-family: var(--sans); font-size: 11px;
  letter-spacing: 0.04em; color: var(--ink-3); white-space: nowrap; }
.sc-mf-water { font-style: italic; color: oklch(0.58 0.045 235); }
.sc-mf-landform { font-variant: small-caps; letter-spacing: 0.1em; color: var(--ink-3); }
.sc-mf-road { font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; color: var(--ink-3); }
.lm-marker.lm-point .lm-marker-label { background: var(--paper); border: 1px solid var(--rule);
  padding: 4px 9px; font-family: var(--sans); font-size: 12px; font-weight: 500; color: var(--ink);
  white-space: nowrap; line-height: 1.25; }
@media (hover: hover) { .lm-marker.lm-point:hover .lm-marker-label {border-color: var(--accent); color: var(--accent); } }
.lm-marker.lm-point.is-primary .lm-marker-dot { width: 15px; height: 15px; background: var(--accent-2); }
.lm-marker.lm-point-above { flex-direction: column-reverse; }
.lm-marker.lm-point-above .lm-marker-label { margin: 0 0 3px; }
.lm-marker.lm-point-left { flex-direction: row-reverse; align-items: center; }
.lm-marker.lm-point-left .lm-marker-label { margin: 0 6px 0 0; }
.lm-marker.lm-point-right { flex-direction: row; align-items: center; }
.lm-marker.lm-point-right .lm-marker-label { margin: 0 0 0 6px; }
.lm-marker.lm-lab-off { pointer-events: none !important; }
.lm-marker.lm-lab-off .lm-marker-dot { pointer-events: auto; }
.lm-marker.lm-lab-off .lm-marker-label { opacity: 0; pointer-events: none; }
.lm-marker.lm-lab-off:focus-visible { z-index: 6; }
@media (hover: hover) { .lm-marker.lm-lab-off:hover {z-index: 6; } }
.lm-marker.lm-lab-off:focus-visible .lm-marker-label { opacity: 1; pointer-events: auto; }
@media (hover: hover) { .lm-marker.lm-lab-off:hover .lm-marker-label {opacity: 1; pointer-events: auto; } }
.lm-marker.lm-point:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 3px; }
.lm-furniture { pointer-events: none !important; cursor: default !important;
  font-family: var(--sans); font-size: 11px;
  letter-spacing: 0.04em; color: oklch(0.42 0.02 60); white-space: nowrap;
  text-shadow: 0 0 3px var(--paper), 0 0 6px var(--paper); }
.lm-mf-water { font-style: italic; color: oklch(0.48 0.05 235); }
.lm-mf-landform { font-variant: small-caps; letter-spacing: 0.1em; }
.lm-mf-road { font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; }
.plm-pin-unpromoted .plm-pulse { display: none; }
.plm-pin-unpromoted .plm-dot { width: 9px; height: 9px; box-shadow: 0 0 0 2px var(--paper); }
.plm-pin-unpromoted .plm-label {
  font-family: var(--sans); font-size: 11.5px; font-weight: 500;
  letter-spacing: 0.01em; text-transform: none;
}
.plm-pin-member { z-index: 8; }
.plm-pin-member .plm-nb-label { white-space: nowrap; }
.plm-place-below .plm-nb-label { top: 12px; left: 50%; transform: translateX(-50%); }
.plm-place-above .plm-nb-label { top: auto; bottom: 12px; left: 50%; transform: translateX(-50%); }
.plm-place-left  .plm-nb-label { top: 50%; left: auto; right: 12px; transform: translateY(-50%); text-align: right; }
.plm-place-right .plm-nb-label { top: 50%; left: 12px; transform: translateY(-50%); text-align: left; }
.pr-rates { width: 100%; border-collapse: collapse; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); table-layout: fixed; }
.pr-rates thead th { text-align: right; padding: 12px 0 12px 24px; font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-2); border-bottom: 1px solid var(--rule); vertical-align: bottom; font-weight: 700; }
.pr-rates thead th.pr-rt-corner { text-align: left; color: var(--ink-3); width: clamp(150px, 26%, 240px);  }
.pr-rates tbody tr { border-bottom: 1px solid var(--rule-soft); }
.pr-rates tbody tr:last-child { border-bottom: none; }
.pr-rt-period { padding: 15px 0; vertical-align: top; width: clamp(150px, 26%, 240px);  }
.pr-rt-range { font-family: var(--sans); font-size: 15px; font-weight: 500; color: var(--ink); display: block; }
.pr-mrate .pr-rt-range { font-size: 14.5px; }
.pr-rt-note { font-family: var(--sans); font-style: italic; font-size: 12px; color: var(--ink-2); margin-top: 3px; display: block; font-weight: 400; }
.pr-rt-cell { padding: 15px 0 15px 24px; text-align: right; vertical-align: top; }
.pr-rates-single .pr-rt-cell-single { padding-left: 0; }
.pr-rt-closedrow { opacity: 0.6; }
.pr-rt-closednote { font-family: var(--sans); font-style: italic; font-size: 13px; color: var(--ink-2); }
.pr-rates .pr-rt-closednote { padding: 15px 0 15px 24px; text-align: right; }
.pr-mrate .pr-rt-closednote { white-space: normal; }
.pr-rates-single .pr-rt-closednote { text-align: right; }
.pr-mrate { border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.pr-mrate-head { font-family: var(--display); font-size: 20px; color: var(--ink); padding: 12px 2px 8px; border-bottom: 1px solid var(--rule-soft); }
.pr-mrate-table { width: 100%; border-collapse: collapse; }
.pr-mrate-table tr { border-bottom: 1px solid var(--rule-soft); }
.pr-mrate-table tr:last-child { border-bottom: none; }
.pr-mrate-period { padding: 13px 0; vertical-align: top; }
.pr-mrate-price { padding: 13px 0; text-align: right; vertical-align: top; white-space: nowrap; }
.rt-enq { font-family: var(--display); font-size: 18px; line-height: 1.05; color: var(--ink-2); }
.rt-qual { font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-3); }
.rt-variant-line { font-family: var(--sans); font-size: 13.5px; color: var(--ink-2); margin: 0 0 10px; }
.ai-head { background: var(--paper); }
.ai-toolbar { background: var(--paper); }
.ai-count { font-family: var(--sans); font-size: 14px; color: var(--ink-2); }
.ai-count strong { font-family: var(--display); font-size: 20px; color: var(--ink); font-weight: 400; letter-spacing: -0.01em; }
.ai-sort { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ai-sort-div { width: 1px; height: 20px; background: var(--rule); }
.ai-sort-lbl { font-family: var(--sans); font-size: 12px; font-weight: 500; color: var(--ink-2); }
.ai-sort-sel:disabled { color: var(--ink-3); cursor: not-allowed; }
.ai-sort-hint { font-family: var(--sans); font-size: 12px; font-style: italic; color: var(--ink-3); }
.ai-sort-sel {
  font-family: var(--sans); font-size: 13px; color: var(--ink); background: var(--paper);
  border: 1px solid var(--rule); padding: 8px 30px 8px 12px; border-radius: 3px; cursor: pointer;
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);
  background-position: calc(100% - 15px) 55%, calc(100% - 10px) 55%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat;
}
.ai-cur { display: inline-flex; align-items: center; gap: 8px; }
.ai-cur-lbl { font-family: var(--sans); font-size: 12px; font-weight: 500; color: var(--ink-2); }
.ai-cur-field { position: relative; display: inline-flex; align-items: center; gap: 5px; padding: 8px 11px; border: 1px solid var(--rule); border-radius: 3px; background: var(--paper); color: var(--ink-3); cursor: pointer; }
.ai-cur-code { font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; color: var(--ink); }
.ai-cur-field select { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.ai-picker-route {
  display: inline-flex; align-items: center; gap: 6px; font-family: var(--sans); font-size: 13px; font-weight: 500;
  color: var(--accent-2); text-decoration: none; border-bottom: 1px solid var(--rule); padding-bottom: 2px;
}
@media (hover: hover) { .ai-picker-route:hover {border-bottom-color: var(--accent); } }
.ai-panel { background: var(--paper); border: 1px solid var(--rule-soft); border-radius: 4px; box-shadow: 0 10px 30px -22px rgba(40,30,20,0.5); margin-bottom: 22px; }
.ai-panel-head {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  padding: 16px 22px; background: none; border: none; cursor: pointer; text-align: left;
}
.ai-panel-title { font-family: var(--display); font-size: 19px; letter-spacing: -0.01em; color: var(--ink); }
.ai-panel-head-right { display: inline-flex; align-items: center; gap: 14px; }
.ai-active-count { font-family: var(--sans); font-size: 12px; color: var(--accent-2); font-weight: 500; }
.ai-panel-caret { font-family: var(--sans); font-size: 20px; color: var(--ink-2); line-height: 1; width: 20px; text-align: center; }
.ai-panel-body { padding: 4px 22px 22px; border-top: 1px solid var(--rule-soft); }
.ai-facets { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px 44px; padding-top: 20px; }
.ai-facet { min-width: 0; }
.ai-facet-label { font-family: var(--sans); font-variant-caps: all-small-caps; font-weight: 600; font-size: 14px; letter-spacing: 0.04em; color: var(--ink); margin-bottom: 12px; }
.ai-facet-hint { font-variant-caps: normal; font-weight: 400; color: var(--ink-3); letter-spacing: 0; font-size: 12px; }
.ai-facet:has(.ai-enum-wrap) { grid-column: 1 / -1; }
.ai-facets:has(.ai-enum-wrap) .ai-facet:has(.ai-childage) { grid-column: 2; grid-row: 2; }
.ai-enum { display: flex; flex-wrap: wrap; gap: 8px; }
.ai-enum-wrap { gap: 8px 10px; }
.ai-tick-wrap { display: inline-flex; align-items: flex-start; gap: 8px; }
.ai-tick {
  display: inline-flex; align-items: flex-start; gap: 9px; cursor: pointer;
  background: var(--paper); border: 1px solid var(--rule); border-radius: 3px;
  padding: 8px 13px 8px 10px; font-family: var(--sans); font-size: 13px; color: var(--ink-2);
  transition: border-color var(--mo-fast), color var(--mo-fast), background var(--mo-fast);
}
@media (hover: hover) { .ai-tick:hover {border-color: var(--ink-3); color: var(--ink); } }
.ai-tick.on { border-color: var(--accent); color: var(--ink); background: color-mix(in oklab, var(--accent) 8%, var(--paper)); }
.ai-tick-box {
  box-sizing: border-box; width: 16px; height: 16px; min-width: 16px; flex: 0 0 16px; margin-top: 1px;
  border: 1.5px solid var(--rule); border-radius: 2px;
  display: inline-flex; align-items: center; justify-content: center; background: var(--paper);
}
.ai-tick.on .ai-tick-box { background: var(--accent); border-color: var(--accent); }
.ai-tick-text { display: inline-flex; flex-direction: column; gap: 1px; text-align: left; padding-top: 1px; }
.ai-tick-label { line-height: 1.2; }
.ai-tick-hint { color: var(--ink-3); font-size: 11px; line-height: 1.2; }
.ai-plus { font-family: var(--sans); font-size: 11.5px; color: var(--accent-2); white-space: nowrap; margin-top: 8px; display: inline-block; }
.ai-tick-wrap .ai-plus { margin-top: 9px; }
.ai-plus-row { display: block; opacity: 0; }
.ai-plus-row.on { opacity: 1; }
@media (prefers-reduced-motion: no-preference) { .ai-plus-row { transition: opacity var(--mo-fast) var(--mo-ease); } }
.ai-slider { padding-top: 4px; }
.ai-slider-track { position: relative; height: 26px; --ai-thumb: 18px; }
.ai-slider-track::before { content: ""; position: absolute; left: calc(var(--ai-thumb) / 2); right: calc(var(--ai-thumb) / 2); top: 11px; height: 3px; background: var(--rule); border-radius: 2px; }
.ai-slider-fill { position: absolute; top: 11px; height: 3px; background: var(--accent); border-radius: 2px; }
.ai-slider-track input[type=range] {
  position: absolute; top: 0; left: 0; width: 100%; height: 26px; margin: 0; background: none; pointer-events: none;
  -webkit-appearance: none; appearance: none;
}
.ai-slider-track input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none; pointer-events: all; cursor: grab;
  width: 18px; height: 18px; border-radius: 50%; background: var(--paper); border: 2px solid var(--accent);
  box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}
.ai-slider-track input[type=range]::-moz-range-thumb {
  pointer-events: all; cursor: grab; width: 18px; height: 18px; border-radius: 50%;
  background: var(--paper); border: 2px solid var(--accent); box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}
.ai-slider-vals { display: flex; justify-content: space-between; margin-top: 6px; }
.ai-slider-val { display: inline-flex; flex-direction: column; gap: 1px; }
.ai-slider-val-hi { align-items: flex-end; }
.ai-slider-usd { font-family: var(--mono); font-size: 11.5px; color: var(--ink); }
.ai-slider-approx { font-family: var(--sans); font-style: italic; font-size: 10.5px; color: var(--ink-3); }
.ai-apply-fix { display: inline-grid; text-align: center; font-variant-numeric: tabular-nums; }
.ai-apply-fix > span { grid-area: 1 / 1; white-space: nowrap; }
.ai-apply-fix > .ai-apply-sizer { visibility: hidden; }
.ai-childage { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.ai-childage-lbl { font-family: var(--sans); font-size: 13px; color: var(--ink-2); }
.ai-childage-sel {
  font-family: var(--sans); font-size: 14px; color: var(--ink); background: var(--paper);
  border: 1px solid var(--rule); padding: 9px 30px 9px 12px; border-radius: 3px; cursor: pointer; min-width: 160px;
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);
  background-position: calc(100% - 15px) 55%, calc(100% - 10px) 55%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat;
}
.ai-apply-row {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px;
  margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--rule-soft);
}
.ai-apply-count { font-family: var(--sans); font-size: 15px; color: var(--ink-2); }
.ai-apply-count strong { font-family: var(--display); font-size: 22px; color: var(--ink); font-weight: 400; }
.ai-apply-cue { color: var(--accent-2); font-weight: 600; }
.ai-apply-nil { font-style: italic; color: var(--ink-3); font-size: 14px; }
.ai-apply-btns { display: inline-flex; align-items: center; gap: 16px; }
.ai-clear { background: none; border: none; cursor: pointer; font-family: var(--sans); font-size: 13px; color: var(--ink-3); text-decoration: underline; text-underline-offset: 3px; }
@media (hover: hover) { .ai-clear:hover {color: var(--ink); } }
.ai-apply-row.dirty .ai-apply-btns button.btn { box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 35%, transparent); }
.ai-roster-wrap { position: relative; }
.ai-roster { display: flex; flex-direction: column; gap: 20px; transition: opacity var(--mo-enter) var(--mo-ease), filter var(--mo-enter) var(--mo-ease); }
.ai-roster-wrap.pending .ai-roster { opacity: 0.5; filter: blur(2px); pointer-events: none; }
.ai-pending-live {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.ai-grid { display: grid; gap: 20px; }
.ai-grid-wide { grid-template-columns: 1fr 1fr; }
.ai-consider { margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--rule); display: flex; flex-direction: column; gap: 20px; }
.ai-consider-head { display: flex; flex-direction: column; gap: 3px; }
.ai-consider-eyebrow { font-family: var(--display); font-size: 22px; letter-spacing: -0.01em; color: var(--ink); }
.ai-consider-note { font-family: var(--sans); font-size: 13.5px; color: var(--ink-3); }
.ai-relax-head {
  font-family: var(--display); font-size: 22px; line-height: 1.3; letter-spacing: -0.01em; color: var(--ink);
  padding: 4px 0 14px; border-bottom: 1px solid var(--rule-soft); margin-bottom: 2px;
}
.ai-relax-head em { color: var(--accent-2); font-style: italic; }
.ai-card {
  position: relative; display: flex; flex-direction: column; height: 100%;
  background: var(--paper); border: 1px solid var(--rule-soft); overflow: hidden;
  transition: border-color var(--mo-base), box-shadow var(--mo-base);
}
@media (hover: hover) { .ai-card:hover {border-color: var(--accent); box-shadow: 0 14px 30px -22px rgba(0,0,0,0.35); } }
.ai-card-link { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; }
.ai-card-wide .ai-card-link { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: stretch; }
.ai-card-wide .ai-card-link > * { min-width: 0; }
.ai-card-wide .fc-card-route { flex-shrink: 1; min-width: 0; white-space: normal; overflow-wrap: break-word; } * item 5 — the longest producer name wraps instead of clipping */
.ai-card-wide .ai-card-actions { flex-shrink: 1; min-width: 0; }
.ai-card-img { width: 100%; overflow: hidden; }
.ai-card-img.inset { padding: 10px 10px 0; background: var(--paper); }
.ai-card-wide .ai-card-img { height: 100%; }
.ai-card-img .fc-card-ph { display: block; }
.ai-card-body { position: relative; }
.ai-card-wide .ai-card-body { padding: 24px 26px 22px; justify-content: center; }
.ai-card-wide .fc-card-name { font-size: 25px; overflow-wrap: break-word; }
.ai-rating { display: inline-flex; align-items: center; gap: 6px; font-family: var(--sans); font-size: 12.5px; color: var(--ink-2); margin-top: 1px; white-space: nowrap; }
.ai-rating-score { font-weight: 600; color: var(--ink); }
.ai-rating-count { color: var(--ink-3); }
.ai-card-approx { display: block; font-family: var(--sans); font-style: italic; font-size: 11.5px; color: var(--ink-3); margin-top: 1px; }
.ai-gap {
  font-family: var(--sans); font-size: 12px; line-height: 1.45; color: var(--ink-2);
  background: color-mix(in oklab, var(--accent) 7%, var(--paper)); border-left: 2px solid var(--accent);
  padding: 8px 11px; margin-top: 2px;
}
.ai-gap span { color: var(--ink); font-weight: 500; }
.ai-card-foot { align-items: flex-end; }
.ai-card-actions { display: inline-flex; flex-direction: column; align-items: flex-end; gap: 6px; flex-shrink: 0; }
.ai-book { display: inline-flex; align-items: center; gap: 5px; font-family: var(--sans); font-size: 11px; font-weight: 600; color: var(--accent-2); }
.ai-book::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }
.ai-card-wide .ai-heart { right: auto; left: calc(50% - 46px); }
.ai-gate-empty {
  text-align: center; padding: 60px 22px; background: var(--paper-2); border: 1px solid var(--rule);
}
.ai-panel-m .ai-facets { grid-template-columns: 1fr; gap: 22px; }
.ai-panel-m .ai-facet:has(.ai-enum-wrap) { grid-column: auto; }
.ai-panel-m .ai-facets:has(.ai-enum-wrap) .ai-facet:has(.ai-childage) { grid-column: auto; grid-row: auto; }
.ai-panel-m .ai-enum { flex-direction: column; align-items: stretch; gap: 8px; }
.ai-panel-m .ai-enum .ai-tick-wrap { display: flex; width: 100%; }
.ai-panel-m .ai-tick { width: 100%; }
.ai-panel-m .ai-tick-wrap .ai-tick { flex: 1; }
.ai-panel-m .ai-tick-wrap .ai-plus { flex-shrink: 0; }
.ai-panel-m .ai-childage-sel { width: 100%; }
.ai-panel-m .ai-apply-row { flex-direction: column; align-items: stretch; }
.ai-panel-m .ai-apply-btns { justify-content: space-between; }
@media (max-width: 720px) {
  .ai-facets { grid-template-columns: 1fr; gap: 22px; }
  .ai-facet:has(.ai-enum-wrap) { grid-column: auto; }
  .ai-facets:has(.ai-enum-wrap) .ai-facet:has(.ai-childage) { grid-column: auto; grid-row: auto; }
  .ai-enum { flex-direction: column; align-items: stretch; gap: 8px; }
  .ai-enum .ai-tick-wrap { display: flex; width: 100%; }
  .ai-tick { width: 100%; }
  .ai-tick-wrap .ai-tick { flex: 1; }
  .ai-tick-wrap .ai-plus { flex-shrink: 0; }
  .ai-childage-sel { width: 100%; }
  .ai-grid-wide { grid-template-columns: 1fr; }
  .ai-apply-row { flex-direction: column; align-items: stretch; }
  .ai-apply-btns { justify-content: space-between; }
}
@media (prefers-reduced-motion: reduce) {
  .ai-roster { transition: none; }
  .ai-roster-wrap.pending .ai-roster { filter: none; opacity: 0.55; }
}
.ai-row-unrevealed { display: none; }
.ai-reveal { display: flex; justify-content: center; padding: 26px 0 4px; }
.ai-reveal-btn { display: inline-flex; align-items: baseline; gap: 12px; padding: 13px 26px;
  background: var(--paper); border: 1px solid var(--ink); border-radius: 999px;
  font-family: var(--sans); font-weight: 500; font-size: 14px; color: var(--ink); cursor: pointer;
  transition: background var(--mo-base) var(--mo-ease), color var(--mo-base) var(--mo-ease); }
@media (hover: hover) { .ai-reveal-btn:hover {background: var(--ink); color: var(--paper); } }
.ai-reveal-rest { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.13em;
  text-transform: uppercase; color: var(--ink-3); }
@media (hover: hover) { .ai-reveal-btn:hover .ai-reveal-rest {color: var(--paper-2); } }
.ai-orient-lead { font-family: var(--sans); font-size: 16px; line-height: 1.6; color: var(--ink-2);
  margin: 0 0 18px; max-width: 720px; }
.ai-orient-lead em { font-style: italic; color: var(--ink); }
.ai-head-note { font-family: var(--sans); font-size: 18px; line-height: 1.6; color: var(--ink-2);
  margin: 20px 0 0; max-width: 760px; }
.ai-head-note em { font-style: italic; color: var(--ink); }
@media (max-width: 720px) { .ai-head-note { font-size: 16px; margin-top: 14px; } }
.ai-orient-lead { font-size: 15.5px; }
.co-anchor-wrap { }
.co-anchor {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 20px 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
  flex-wrap: wrap;
}
.co-anchor-left { display: flex; align-items: center; gap: 16px; min-width: 0; }
.co-anchor-diamond {
  width: 12px; height: 12px; flex-shrink: 0; transform: rotate(45deg);
  background: var(--accent); box-shadow: 0 0 0 4px color-mix(in oklch, var(--accent) 18%, transparent);
}
.co-anchor-textcol { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.co-anchor-marker {
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--accent-2); white-space: nowrap;
}
.co-anchor-nameline { display: flex; flex-direction: column; align-items: flex-start; gap: 0; }
.co-anchor-name { font-family: var(--display); font-size: 27px; line-height: 1.05; letter-spacing: -0.018em; color: var(--ink); }
.co-anchor-line { font-family: var(--sans); font-size: 14.5px; color: var(--ink-2); }
.co-anchor-route {
  display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; flex-shrink: 0;
  font-family: var(--sans); font-size: 14px; font-weight: 500; color: var(--ink);
  text-decoration: none; border-bottom: 1.5px solid var(--accent); padding-bottom: 3px;
  transition: color var(--mo-base) var(--mo-ease);
}
@media (hover: hover) { .co-anchor-route:hover {color: var(--accent-2); } }
.co-node { padding: 56px 0 8px; }
.co-node-plate { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.co-node-plate.img-right .co-node-media { order: 2; }
.co-node-media { position: relative; }
.co-node-media .ph { width: 100%; height: 460px; }
.co-node-body { min-width: 0; }
.co-node-head { display: flex; align-items: baseline; gap: 16px; margin-bottom: 16px; }
.co-node-namecol { display: flex; flex-direction: column; gap: 0; min-width: 0; }
.co-node-num {
  font-family: var(--mono); font-weight: 600; font-size: 28px; line-height: 1;
  color: var(--accent-2); letter-spacing: 0.01em; flex-shrink: 0;
}
.co-node-name { font-family: var(--display); font-size: 40px; line-height: 1.0; letter-spacing: -0.02em; color: var(--ink); margin: 0; }
.co-node-lead { font-family: var(--sans); font-size: 18px; line-height: 1.6; color: var(--ink-2); margin: 0 0 22px; }
.co-beat { margin: 0 0 20px; }
.co-beat-label { font-family: var(--mono); font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--ink-3); display: block; margin-bottom: 8px; }
.co-beat-body { font-family: var(--sans); font-size: 15.5px; line-height: 1.62; color: var(--ink-2); margin: 0; }
.co-see { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.co-see li { display: grid; grid-template-columns: 16px 1fr; gap: 12px; align-items: start; font-family: var(--sans); font-size: 15px; line-height: 1.5; color: var(--ink-2); }
.co-see-dot { margin-top: 7px; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }
.co-legshape {
  margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--rule-soft);
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.04em; color: var(--ink-3); line-height: 1.5;
}
.co-node-route {
  display: inline-flex; align-items: center; gap: 9px; margin-top: 4px;
  font-family: var(--sans); font-size: 15px; font-weight: 500; color: var(--ink);
  text-decoration: none; border-bottom: 1.5px solid var(--accent); padding-bottom: 3px; width: fit-content;
  transition: color var(--mo-base) var(--mo-ease);
}
@media (hover: hover) { .co-node-route:hover {color: var(--accent-2); } }
.co-node-domaincue { font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 12px; }
.co-map-caption {
  font-family: var(--sans); font-size: 13px; line-height: 1.55; color: var(--ink-3);
  margin: 14px 0 0; max-width: 620px;
}
@media (max-width: 720px) {
  .co-anchor { padding: 16px 0; gap: 12px; }
  .co-anchor-name { font-size: 23px; }
  .co-node { padding: 36px 0 4px; }
  .co-node-plate { grid-template-columns: 1fr; gap: 22px; }
  .co-node-plate.img-right .co-node-media { order: 0; }
  .co-node-media .ph { height: 240px; }
  .co-node-name { font-size: 30px; }
  .co-node-num { font-size: 22px; }
  .co-node-lead { font-size: 16px; }
}
.ex-kind {
  display: inline-flex; align-items: center; white-space: nowrap;
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink-2); border: 1px solid var(--rule); border-radius: 999px;
  padding: 4px 10px; background: var(--paper);
}
.ex-meta { font-family: var(--sans); font-size: 12.5px; line-height: 1.4; color: var(--ink-2); letter-spacing: 0.005em; }
.ex-onenq-v { font-family: var(--display); font-size: 18px; line-height: 1; color: var(--ink-2); }
.ai-card-wide .ex-onenq-v { font-size: 21px; }
@media (max-width: 720px) { .ex-meta { font-size: 12px; } }
.ai-cur { display: inline-flex; align-items: center; gap: 10px; }
.exr-pattern { margin-top: 40px; }
.exr-pattern-head { font-family: var(--display); font-size: 22px; letter-spacing: -0.01em; color: var(--ink); margin-bottom: 6px; }
.exr-pattern-note { font-family: var(--sans); font-style: italic; font-size: 12.5px; color: var(--ink-3); margin: 12px 0 0; }
.exr-pattern-table { table-layout: fixed; }
.exr-pattern-wrap { overflow-x: visible; }
.exr-pattern-table tbody td { font-variant-numeric: tabular-nums; }
.exr-pattern-table thead th:first-child { width: 40%; }
.exr-pattern-table thead th:last-child, .exr-pattern-table tbody td:last-child { text-align: right; padding-right: 0; }
.exr-pattern-table:not(.as-table--stack) thead th:last-child { padding-right: 0; }
.as-table--stack.exr-pattern-table tbody td:last-child { text-align: left; }
@media (hover: hover) { .exr-pattern-table tbody tr:hover {background: none; } }
.ex-hl-own { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); border: 1px solid var(--rule); padding: 2px 6px; border-radius: 2px; margin-left: 8px; white-space: nowrap; vertical-align: 3px; }
.pk-route-line {
  font-family: var(--sans); font-size: 12.5px; line-height: 1.4; color: var(--ink-2);
  letter-spacing: 0.005em;
}
.pk-jtype {
  display: inline-flex; align-items: center;
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink-2); border: 1px solid var(--rule); border-radius: 999px;
  padding: 4px 10px; background: var(--paper);
}
.fc-card-price-v.pk-range { font-size: 18px; letter-spacing: -0.005em; white-space: nowrap; }
.pk-onenq-v { font-family: var(--display); font-size: 18px; line-height: 1; color: var(--ink-2); }
.ai-card-wide .fc-card-price-v.pk-range { font-size: 21px; }
.ai-card-wide .pk-onenq-v { font-size: 21px; }
@media (max-width: 720px) {
  .pk-route-line { font-size: 12px; }
}
.pk { padding-top: 26px; }
.pk-m { padding-top: 14px; }
.pk .sr-only {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.pk-shell {
  display: grid; grid-template-columns: 1fr 0.72fr; align-items: stretch;
  background: var(--paper); border: 1px solid var(--rule-soft);
  box-shadow: 0 22px 44px -32px rgba(0,0,0,0.35);
  height: 640px;
}
.pk-shell-m, .pk-m .pk-shell { display: block; min-height: 0; height: auto; }
@media (max-width: 920px) {
  .ai-card-wide .ai-card-link { grid-template-columns: 1fr; }
  .ai-card-wide .ai-heart { right: 12px; left: auto; }
  .pk-shell { display: block; min-height: 0; height: auto; }
}
.lgs-rail { scrollbar-width: none; -ms-overflow-style: none; overflow-x: auto; flex-wrap: nowrap; }
.lgs-rail::-webkit-scrollbar { display: none; }
.lgs-rail.pd-ofl { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28px); mask-image: linear-gradient(90deg, transparent 0, #000 28px); }
.lgs-rail.pd-ofr { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent 100%); mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent 100%); }
.lgs-rail.pd-ofl.pd-ofr { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 28px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 28px), transparent 100%); }
.pk-shell-body { padding: 44px 52px 46px; outline: none; display: flex; flex-direction: column; overflow-y: auto; }
.pk-m .pk-shell-body { padding: 26px 22px 32px; }
.pk-shell-img { position: relative; overflow: hidden; border-left: 1px solid var(--rule-soft); min-height: 100%; }
.pk-img { display: block; object-fit: cover; }
.pk-progress {
  display: flex; justify-content: space-between; align-items: baseline;
  font-size: 10px; letter-spacing: 0.16em; color: var(--ink-3);
  margin-bottom: 34px;
}
.pk-m .pk-progress { margin-bottom: 22px; }
.pk-back {
  background: none; border: none; padding: 0; cursor: pointer;
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-3);
}
@media (hover: hover) { .pk-back:hover {color: var(--ink); } }
.pk-q { font-size: 38px; line-height: 1.05; letter-spacing: -0.02em; margin: 0 0 12px; max-width: 520px; }
.pk-m .pk-q { font-size: 27px; }
.pk-sub { font-family: var(--sans); font-size: 15px; line-height: 1.6; color: var(--ink-2); margin: 0 0 26px; max-width: 480px; }
.pk-m .pk-sub { font-size: 14px; margin-bottom: 20px; }
.pk-micro { font-family: var(--sans); font-size: 12.5px; line-height: 1.5; color: var(--ink-3); margin: 14px 0 0; max-width: 440px; }
.pk-hint { min-height: 19px; }
.pk-quiet { color: var(--ink-2); }
@media (hover: hover) { .pk-quiet:hover {color: var(--ink); } }
.pk-note {
  font-family: var(--sans); font-size: 13px; line-height: 1.55; color: var(--ink-2);
  border-left: 2px solid var(--bronze); padding: 8px 12px; margin: 0 0 20px;
  background: color-mix(in oklab, var(--bronze) 6%, var(--paper));
  max-width: 480px;
}
.pk-opts { display: flex; flex-direction: column; gap: 10px; max-width: 440px; }
.pk-opt {
  display: flex; flex-direction: column; gap: 3px; text-align: left; cursor: pointer;
  background: var(--paper); border: 1px solid var(--rule); border-radius: 3px;
  padding: 15px 18px; min-height: 44px;
}
@media (prefers-reduced-motion: no-preference) {
  .pk-opt { transition: border-color var(--mo-fast), background var(--mo-fast), transform var(--mo-fast); }
@media (hover: hover) { .pk-opt:hover {transform: translateX(2px); } }
}
@media (hover: hover) { .pk-opt:hover {border-color: var(--accent); } }
.pk-opt.on { border-color: var(--accent); background: color-mix(in oklab, var(--accent) 8%, var(--paper)); }
.pk-opt-label { font-family: var(--sans); font-size: 15px; font-weight: 500; color: var(--ink); line-height: 1.3; }
.pk-opt-hint { font-family: var(--sans); font-size: 12.5px; color: var(--ink-3); line-height: 1.35; }
.pk-years { display: flex; gap: 8px; margin-bottom: 14px; }
.pk-year {
  font-family: var(--mono); font-size: 12.5px; letter-spacing: 0.06em; cursor: pointer;
  background: var(--paper); border: 1px solid var(--rule); border-radius: 3px;
  padding: 10px 20px; color: var(--ink-2); min-height: 40px;
}
@media (hover: hover) { .pk-year:hover {border-color: var(--ink-3); color: var(--ink); } }
.pk-year.on { border-color: var(--accent); background: color-mix(in oklab, var(--accent) 10%, var(--paper)); color: var(--ink); }
.pk-months { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; max-width: 480px; }
.pk-m .pk-months { grid-template-columns: repeat(4, 1fr); max-width: none; }
.pk-month {
  font-family: var(--sans); font-size: 13px; cursor: pointer;
  background: var(--paper); border: 1px solid var(--rule); border-radius: 3px;
  padding: 11px 0; color: var(--ink-2); min-height: 42px;
}
@media (hover: hover) { .pk-month:hover:not(:disabled) {border-color: var(--accent); color: var(--ink); } }
.pk-month.on { border-color: var(--accent); background: color-mix(in oklab, var(--accent) 10%, var(--paper)); color: var(--ink); font-weight: 500; }
.pk-month:disabled { opacity: 0.32; cursor: default; text-decoration: line-through; }
.pk-continue { margin-top: 28px; }
.pk-childage { margin-top: 20px; }
.pk-slider-wrap { max-width: 440px; margin: 4px 0 6px; }
.pk-zones { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; max-width: 560px; }
.pkc-band4 { grid-template-columns: 1fr 1fr 1fr 1fr; }
@media (max-width: 980px) { .pkc-band4 { grid-template-columns: 1fr 1fr; } }
.pk-m .pk-zones { grid-template-columns: 1fr; }
.pk-zone {
  border: 1px dashed var(--rule); border-radius: 3px; padding: 14px;
  display: flex; flex-direction: column; gap: 8px; min-height: 150px;
  align-items: flex-start;
}
.pk-zone-star { border-color: color-mix(in oklab, var(--bronze) 55%, var(--rule)); background: color-mix(in oklab, var(--bronze) 4%, var(--paper)); }
.pk-zone.hot { border-style: solid; border-color: var(--accent); }
.pk-zone-head { font-size: 9.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); }
.pk-zone-empty { font-family: var(--sans); font-size: 12.5px; font-style: italic; color: var(--ink-3); line-height: 1.45; }
.pk-chip {
  display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
  background: var(--paper); border: 1px solid var(--rule); border-radius: 999px;
  padding: 9px 16px 9px 13px; font-family: var(--sans); font-size: 13.5px; color: var(--ink);
  min-height: 38px; text-align: left;
}
@media (hover: hover) { .pk-chip:hover {border-color: var(--accent); } }
.pk-chip.on { border-color: color-mix(in oklab, var(--bronze) 60%, var(--rule)); background: color-mix(in oklab, var(--bronze) 7%, var(--paper)); }
.pk-chip[draggable="true"] { cursor: grab; }
.pk-computing { text-align: center; padding: 120px 20px 140px; }
.pk-computing-pulse {
  width: 10px; height: 10px; border-radius: 50%; background: var(--accent);
  margin: 0 auto 22px;
}
@media (prefers-reduced-motion: no-preference) {
  .pk-computing-pulse { animation: pk-pulse 1.1s ease-in-out infinite; }
  @keyframes pk-pulse { 0%, 100% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.7); opacity: 1; } }
}
.pk-results { display: flex; flex-direction: column; gap: 22px; }
.pk-results-head { padding: 8px 0 4px; }
.pk-results-h { font-size: 42px; line-height: 1.02; letter-spacing: -0.025em; margin: 12px 0 12px; max-width: 760px; }
.pk-m .pk-results-h { font-size: 29px; }
.pk-basis { font-family: var(--sans); font-size: 15px; line-height: 1.55; color: var(--ink-2); margin: 0 0 14px; max-width: 640px; }
.pk-results-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding-top: 4px; }
.pk-tool {
  background: none; border: none; padding: 0; cursor: pointer;
  font-family: var(--sans); font-size: 13px; color: var(--ink-2);
  border-bottom: 1px solid var(--rule); padding-bottom: 1px;
}
@media (hover: hover) { .pk-tool:hover {color: var(--ink); border-color: var(--ink-3); } }
.pk-tool-div { color: var(--rule); }
.pk-save-hint { font-family: var(--sans); font-size: 12.5px; color: var(--ink-3); display: inline-flex; align-items: center; gap: 5px; margin-left: auto; }
.pk-m .pk-save-hint { margin-left: 0; width: 100%; }
.pk-hero { display: flex; flex-direction: column; gap: 10px; }
.pk-hero-eyebrow { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--bronze); }
.pk-hero .ai-card-wide .ai-card-link { min-height: 420px; }
.pk-hero .ai-card-wide .fc-card-name { font-size: 34px; letter-spacing: -0.015em; }
.pk-hero .ai-card-wide .ai-card-body { padding: 34px 40px 30px; }
.pk-hero .ai-card { box-shadow: 0 26px 52px -34px rgba(0,0,0,0.4); }
.pk-hero-line { font-family: var(--serif); font-size: 16.5px; line-height: 1.5; color: var(--ink-2); margin: 2px 0 0; max-width: 720px; }
.pk-hero-matches { color: var(--ink); font-style: italic; }
.pk-hero-gap { color: var(--ink-3); }
.pk-hero-m .ai-card-link { min-height: 0; }
.pk-hero-m .fc-card-name { font-size: 24px; }
.pk-hero-m .pk-hero-line { font-size: 14.5px; }
@media (prefers-reduced-motion: no-preference) {
  .pk-results > * { animation: pk-rise 0.55s ease both; }
  .pk-results > *:nth-child(2) { animation-delay: 0.1s; }
  .pk-results > *:nth-child(3) { animation-delay: 0.2s; }
  .pk-results > *:nth-child(4) { animation-delay: 0.28s; }
  .pk-results > *:nth-child(n+5) { animation-delay: 0.34s; }
  @keyframes pk-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
}
.pk-over { margin-top: 8px; }
.pk-rest { padding: 18px 0 6px; border-top: 1px solid var(--rule-soft); margin-top: 10px; }
.pk-rest-link {
  display: inline-flex; align-items: center; gap: 7px; text-decoration: none;
  font-family: var(--sans); font-size: 14.5px; font-weight: 500; color: var(--ink);
  border-bottom: 1px solid var(--rule); padding-bottom: 2px;
}
@media (hover: hover) { .pk-rest-link:hover {border-color: var(--accent); } }
.pk-terminal { text-align: center; padding: 70px 24px 90px; max-width: 620px; margin: 0 auto; }
.pk-terminal-h { font-size: 34px; letter-spacing: -0.02em; margin-bottom: 14px; }
.pk-m .pk-terminal-h { font-size: 26px; }
.pk-terminal-p { font-family: var(--sans); font-size: 15.5px; line-height: 1.65; color: var(--ink-2); margin: 0 0 26px; }
.pk-terminal-btns { display: flex; align-items: center; justify-content: center; gap: 18px; flex-wrap: wrap; }
.pk-intro-shell { min-height: 480px; }
.pk-intro-h { font-size: 50px; line-height: 1.0; letter-spacing: -0.028em; margin: 0 0 16px; max-width: 540px; }
.pk-m .pk-intro-h { font-size: 33px; }
.pk-intro-sub { font-size: 16px; max-width: 470px; }
.pk a { color: var(--ink-2); }
@media (hover: hover) { .pk a:hover {color: var(--ink); } }
.sxf-row-wide .sw-card-name { font-size: 27px; }
.sxf-row-wide .sw-card-hook { font-size: 14px; }
.sxf-row-wide .sw-card .sw-card-body { padding: 18px 20px 20px; }
.eh-note { font-family: var(--sans); font-size: 14px; line-height: 1.6; color: var(--ink-2); margin: 14px 0 0; max-width: 720px; }
.eh-note em { font-style: italic; color: var(--ink); }
.eh-panel .ai-enum { flex-wrap: wrap; }
.ai-foot-hole .ai-card-actions { margin-left: auto; }
.fx-pole-head { font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); margin: 0 0 10px; }
.sc-head { background: var(--paper); }
.sc-clear { position: absolute; top: 2px; right: 0; background: none; border: none; cursor: pointer;
  font-family: var(--sans); font-size: 13px; color: var(--ink-3); text-decoration: underline; text-underline-offset: 3px; }
@media (hover: hover) { .sc-clear:hover {color: var(--ink); } }
.sc-body { background: var(--paper); }
.sc-notice { font-family: var(--sans); font-size: 14px; line-height: 1.5; color: var(--ink-2);
  background: color-mix(in oklab, var(--accent) 8%, var(--paper)); border-left: 2px solid var(--accent);
  padding: 12px 16px; margin-bottom: 24px; }
.sc-empty { text-align: center; padding: 64px 22px; background: var(--paper-2); border: 1px solid var(--rule); }
.sc-empty-routes { display: inline-flex; align-items: center; gap: 22px; flex-wrap: wrap; justify-content: center; }
.sc-group { margin-bottom: 44px; }
.sc-group-head { display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding-bottom: 14px; margin-bottom: 20px; border-bottom: 1px solid var(--rule); }
.sc-group-title { font-family: var(--display); font-size: 26px; letter-spacing: -0.015em; color: var(--ink); margin: 0; font-weight: 400; display: inline-flex; align-items: baseline; gap: 10px; }
.sc-group-n { font-family: var(--mono); font-size: 13px; color: var(--ink-3); letter-spacing: 0.06em; }
.sc-group-n-inline { font-family: var(--display); color: var(--ink-3); }
.sc-group-head-m { display: block; padding-bottom: 12px; margin-bottom: 0; }
.sc-group-head-m + .sc-compare-row-m { margin: 12px 0 20px; }
.sc-compare-row-m { margin-bottom: 20px; }
.sc-compare-toggle.full { display: flex; width: 100%; justify-content: center; padding: 12px 15px; }
.sc-compare-toggle { display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
  font-family: var(--sans); font-size: 13.5px; font-weight: 500; color: var(--ink); background: var(--paper);
  border: 1px solid var(--rule); border-radius: 3px; padding: 9px 15px; transition: border-color var(--mo-fast), background var(--mo-fast); }
@media (hover: hover) { .sc-compare-toggle:hover {border-color: var(--accent); background: color-mix(in oklab, var(--accent) 6%, var(--paper)); } }
.sc-compare-toggle.cancel { color: var(--ink-3); }
.sc-nudge, .sc-select-hint { font-family: var(--sans); font-size: 14px; line-height: 1.5; color: var(--ink-2);
  background: var(--paper-2); border: 1px solid var(--rule-soft); border-radius: 3px; padding: 11px 15px; margin-bottom: 18px; }
.sc-select-hint strong { color: var(--ink); font-weight: 600; }
.sc-card .ai-card-img { padding: 0 !important; background: none; }
.sc-card.sc-selected { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent), 0 16px 34px -24px rgba(0,0,0,0.45); }
.sc-pkg-meta { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ink-3); margin-bottom: -1px; }
.sc-pkg-tag { display: inline-flex; align-self: flex-start; font-family: var(--sans); font-size: 11px; font-weight: 500; color: var(--ink-2);
  border: 1px solid var(--rule); border-radius: 100px; padding: 3px 10px; }
.sc-select { position: absolute; top: 12px; left: 12px; z-index: 4; display: inline-flex; align-items: center; gap: 7px; cursor: pointer;
  border: none; background: rgba(255,255,255,0.92); backdrop-filter: blur(3px); border-radius: 4px; padding: 6px 11px 6px 8px;
  font-family: var(--sans); font-size: 12px; font-weight: 600; color: var(--ink); box-shadow: 0 2px 8px rgba(0,0,0,0.18); }
.sc-select-box { width: 16px; height: 16px; border: 1.5px solid var(--ink-3); border-radius: 3px; display: inline-flex; align-items: center; justify-content: center; background: var(--paper); }
.sc-select.on { background: var(--accent); color: #fff; }
.sc-select.on .sc-select-box { background: transparent; border-color: rgba(255,255,255,0.9); }
.sc-select-lbl { line-height: 1; }
.sc-selbar { position: sticky; bottom: 0; z-index: 30; background: var(--paper); border-top: 1px solid var(--rule); box-shadow: 0 -8px 24px -12px rgba(0,0,0,0.2); }
.sc-selbar-inner { margin: 0 auto; padding: 14px 48px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.sc-selbar-m .sc-selbar-inner { padding: 12px 18px; }
.sc-selbar-msg { font-family: var(--sans); font-size: 14.5px; color: var(--ink-2); }
.sc-selbar-msg strong { font-family: var(--display); font-size: 19px; color: var(--ink); font-weight: 400; }
.sc-selbar-sub { color: var(--ink-3); }
.sc-refuse { color: var(--accent-2); font-weight: 500; }
.sc-selbar-btns { display: inline-flex; align-items: center; gap: 16px; }
.sc-selbar-cancel { background: none; border: none; cursor: pointer; font-family: var(--sans); font-size: 13px; color: var(--ink-3); text-decoration: underline; text-underline-offset: 3px; }
@media (hover: hover) { .sc-selbar-cancel:hover {color: var(--ink); } }
.cm-topbar { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; margin-bottom: 16px; padding-left: 18px; }
.cm-back { display: inline-flex; align-items: center; gap: 7px; background: none; border: none; cursor: pointer;
  font-family: var(--sans); font-size: 13.5px; font-weight: 500; color: var(--accent-2); }
@media (hover: hover) { .cm-back:hover {text-decoration: underline; text-underline-offset: 3px; } }
.cm-topbar-note { font-family: var(--sans); font-size: 13.5px; color: var(--ink-3); font-style: italic; }
.cm { border: 1px solid var(--rule); background: var(--paper); }
.cm-row { display: grid; align-items: stretch; }
.cm-head { position: sticky; top: 62px; z-index: 20; background: var(--paper); border-bottom: 1px solid var(--rule); box-shadow: 0 8px 18px -14px rgba(0,0,0,0.4); }
.cm-head-gutter { display: flex; align-items: flex-start; padding-left: 18px; font-family: var(--sans); font-variant-caps: all-small-caps; letter-spacing: 0.05em; font-weight: 600; font-size: 13px; color: var(--ink-3); }
.cm-col-head { position: relative; padding: 14px 16px 14px; border-left: 1px solid var(--rule-soft); }
.cm-col-link { display: block; text-decoration: none; color: inherit; }
.cm-col-img { width: 100%; overflow: hidden; margin-bottom: 10px; }
.cm-col-name { font-family: var(--display); font-size: 18px; line-height: 1.1; letter-spacing: -0.01em; color: var(--ink); }
@media (hover: hover) { .cm-col-link:hover .cm-col-name {color: var(--accent-2); } }
.cm-col-price { font-family: var(--display); font-size: 17px; color: var(--bronze); margin-top: 6px; }
.cm-col-price-u { font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3); }
.cm-remove { position: absolute; top: 10px; right: 10px; z-index: 3; width: 30px; height: 30px; border-radius: 50%; cursor: pointer;
  border: 1px solid var(--rule); background: var(--paper); display: inline-flex; align-items: center; justify-content: center; transition: background var(--mo-fast), transform var(--mo-fast); }
@media (hover: hover) { .cm-remove:hover {background: var(--paper-2); transform: scale(1.06); } }
.cm-group-eyebrow { font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-3);
  padding: 16px 20px 10px; }
.cm-group-eyebrow.cm-b { color: var(--accent-2); }
.cm-group-b { background: var(--paper-2); border-top: 1px solid var(--rule); }
.cm-gutter { padding: 15px 18px; border-right: 1px solid var(--rule-soft);
  font-family: var(--sans); font-size: 13.5px; font-weight: 500; color: var(--ink-2); display: flex; flex-direction: column; justify-content: center; gap: 4px; }
.cm-gutter-b { background: transparent; }
.cm-gutter-label { font-weight: 600; color: var(--ink); }
.cm-cell { padding: 15px 18px; border-left: 1px solid var(--rule-soft); font-family: var(--sans); font-size: 14px; color: var(--ink); display: flex; align-items: center; }
.cm-fact-row, .cm-basis-row, .cm-survey-row { border-top: 1px solid var(--rule-soft); }
.cm-price-v { font-family: var(--display); font-size: 19px; color: var(--bronze); }
.cm-onenq { font-family: var(--display); font-size: 17px; color: var(--bronze); }
.cm-book { font-family: var(--sans); color: var(--ink); }
.cm-amn { display: inline-flex; align-items: center; gap: 5px; font-size: 13.5px; }
.cm-amn-yes { color: var(--ink); font-weight: 500; }
.cm-amn-no { color: var(--ink-3); }
.cm-amn-null { color: var(--ink-3); font-style: italic; }
.cm-shared { padding: 13px 20px; font-family: var(--sans); font-size: 13px; color: var(--ink-2); border-top: 1px solid var(--rule-soft); background: color-mix(in oklab, var(--accent) 4%, var(--paper)); }
.cm-salient-v { font-family: var(--sans); font-size: 13.5px; color: var(--ink); }
.cm-salient-shared { grid-column: 2 / -1; padding: 15px 18px; border-left: 1px solid var(--rule-soft);
  display: flex; align-items: center; font-family: var(--sans); font-size: 13.5px; font-weight: 500; color: var(--ink); }
.cm-m-salient-shared { font-family: var(--sans); font-size: 13.5px; font-weight: 500; font-style: normal; color: var(--ink); }
.cm-basis { font-family: var(--sans); font-size: 12.5px; line-height: 1.5; color: var(--ink-2); font-style: italic; align-items: flex-start; }
.cm-gutter-baseline { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.03em; color: var(--ink-3); line-height: 1.4; }
.cm-rating-none { display: inline-flex; align-items: baseline; gap: 6px; font-family: var(--sans); font-size: 12.5px; color: var(--ink-3); }
.cm-cell-survey { justify-content: flex-start; }
.cm-figure { font-family: var(--display); font-size: 22px; letter-spacing: -0.01em; color: var(--ink); }
.cm-dash { font-family: var(--display); font-size: 20px; color: var(--ink-3); }
.cm-rating { display: flex; flex-direction: column; gap: 1px; }
.cm-rating-v { font-family: var(--display); font-size: 22px; letter-spacing: -0.01em; color: var(--ink); }
.cm-rating-n { font-family: var(--sans); font-size: 11px; color: var(--ink-3); }
.cm-collapse .cm-gutter-b { color: var(--ink); }
.cm-collapse-band { grid-column: 2 / -1; padding: 15px 20px; border-left: 1px solid var(--rule-soft);
  display: flex; align-items: center; font-family: var(--serif); font-size: 15.5px; font-style: italic; line-height: 1.5; color: var(--ink); }
.cm-cta-row { border-top: 1px solid var(--rule); background: var(--paper); }
.cm-cta-cell { border-left: 1px solid var(--rule-soft); padding: 16px 18px; }
.cm-viewlodge { display: inline-flex; align-items: center; gap: 6px; font-family: var(--sans); font-size: 13.5px; font-weight: 500;
  color: var(--accent-2); text-decoration: none; }
@media (hover: hover) { .cm-viewlodge:hover {text-decoration: underline; text-underline-offset: 3px; } }
.cm-legend { padding: 13px 20px; border-top: 1px solid var(--rule-soft); font-family: var(--sans); font-size: 12px; line-height: 1.5; color: var(--ink-3); }
.cm-legend-dash { font-family: var(--display); font-size: 15px; color: var(--ink-2); margin-right: 4px; }
.cm-legend-m { padding: 12px 15px; border-top: 1px solid var(--rule-soft); }
.cm-group-b .gep-line { margin-top: 0; padding: 13px 20px; border-top: 1px solid var(--rule-soft); max-width: none; }
.cm-group-b .gep-p { font-size: 12px; line-height: 1.5; color: var(--ink-3); }
.cm-topbar-m { margin-bottom: 12px; }
.cm-mobile { border: none; background: transparent; }
.cm-m-key { position: sticky; top: 52px; z-index: 20; display: flex; flex-wrap: wrap; gap: 6px 12px;
  background: var(--ink); padding: 9px 14px; margin: 0 -16px 14px; }
.cm-m-key-item { display: inline-flex; align-items: center; gap: 6px; font-family: var(--sans); font-size: 11px; font-weight: 500; color: rgba(255,255,255,0.9); }
.cm-m-key-i { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 50%;
  background: var(--accent); color: #fff; font-family: var(--mono); font-size: 9.5px; }
.cm-m-note { font-family: var(--sans); font-size: 13px; font-style: italic; color: var(--ink-3); margin-bottom: 16px; }
.cm-m-basis-block { border: 1px solid var(--rule); background: var(--paper-2); margin-bottom: 22px; }
.cm-m-basis-item { padding: 13px 15px; border-bottom: 1px solid var(--rule-soft); display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; align-items: center; }
.cm-m-basis-item:last-child { border-bottom: none; }
.cm-m-basis-name { display: inline-flex; align-items: center; gap: 8px; font-family: var(--display); font-size: 17px; letter-spacing: -0.01em; color: var(--ink); text-decoration: none; }
.cm-m-remove { justify-self: end; display: inline-flex; align-items: center; gap: 5px; background: none; border: none; cursor: pointer; font-family: var(--sans); font-size: 11.5px; color: var(--accent-2); }
.cm-m-basis-line { grid-column: 1 / -1; font-family: var(--sans); font-size: 12.5px; font-style: italic; line-height: 1.5; color: var(--ink-2); }
.cm-m-group { margin-bottom: 8px; }
.cm-m-group-b { background: var(--paper-2); border: 1px solid var(--rule); margin-top: 18px; }
.cm-m-group-b .cm-group-eyebrow { padding: 14px 15px 4px; }
.cm-m-mod { padding: 14px 15px; border-top: 1px solid var(--rule-soft); }
.cm-m-group .cm-m-mod:first-of-type { border-top: 1px solid var(--rule); }
.cm-m-mod-label { font-family: var(--sans); font-variant-caps: all-small-caps; font-weight: 600; letter-spacing: 0.05em; font-size: 14px; color: var(--ink); margin-bottom: 10px; }
.cm-m-val { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 5px 0; border-bottom: 1px dotted var(--rule-soft); }
.cm-m-val:last-child { border-bottom: none; }
.cm-m-baseline { border-bottom: 1px solid var(--rule); }
.cm-m-baseline .cm-m-name { font-style: italic; color: var(--ink-2); }
.cm-m-name { font-family: var(--sans); font-size: 13.5px; color: var(--ink-2); }
.cm-m-fig { font-family: var(--display); font-size: 19px; color: var(--ink); text-align: right; flex-shrink: 0; }
.cm-m-fig-txt { font-family: var(--sans); font-size: 13.5px; font-weight: 500; }
.cm-m-rating { display: inline-flex; align-items: baseline; gap: 7px; }
.cm-m-fig.cm-rating-none { font-family: var(--sans); font-size: 12.5px; font-weight: 400; color: var(--ink-3); gap: 5px; }
.cm-m-collapse { font-family: var(--serif); font-size: 14.5px; font-style: italic; line-height: 1.5; color: var(--ink); }
.cm-shared-m { margin: 4px 0 0; }
.cm-m-cta-block { border: 1px solid var(--rule); margin-top: 18px; }
.cm-m-cta-block .cm-group-eyebrow { padding: 14px 15px 8px; }
.cm-m-cta-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 15px; border-top: 1px solid var(--rule-soft); }
.cm-m-cta-item .cm-m-name { font-family: var(--display); font-size: 16px; color: var(--ink); }
@media (max-width: 720px) {
  .sc-selbar-inner { padding: 12px 18px; }
}
.so-head-inner { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; }
.so-head-main { min-width: 0; }
.so-seal {
  flex-shrink: 0; mix-blend-mode: multiply; transform: rotate(-8deg); pointer-events: none;
}
.so-seal--desktop { width: 152px; height: 152px; opacity: 0.9; align-self: flex-end; margin: 0 150px 4px 0; }
@media (max-width: 1160px) { .so-seal--desktop { margin-right: 24px; } }
.so-seal--mobile  { width: 108px; height: 108px; opacity: 0.82; align-self: flex-start; margin-top: 150px; }
.so-card-body { display: flex; flex-direction: column; gap: 9px; padding: 20px 22px 18px; }
.ai-card-wide .so-card-body { padding: 26px 30px 24px; gap: 11px; justify-content: flex-start; }
.so-type {
  font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--accent-2); margin-bottom: -2px;
}
.so-mechanic {
  font-family: var(--display); font-size: 26px; line-height: 1.05; letter-spacing: -0.015em;
  color: var(--ink); margin: 0; font-weight: 400;
}
@media (max-width: 720px) { .so-mechanic { font-size: 25px; } }
.ai-card-wide .so-mechanic { font-size: 32px; }
.so-eligibility {
  font-family: var(--sans); font-size: 13.5px; line-height: 1.45; color: var(--ink);
  background: color-mix(in oklab, var(--bronze) 8%, var(--paper));
  border-left: 2px solid var(--bronze); padding: 8px 12px; border-radius: 0 3px 3px 0;
}
.so-eligibility-k {
  display: block; font-family: var(--mono); font-size: 9px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--bronze); margin-bottom: 3px;
}
.so-windows {
  display: flex; gap: 9px; font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.04em; color: var(--ink-2); line-height: 1.5;
}
.so-windows-k {
  flex-shrink: 0; font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-3); padding-top: 1px;
}
.so-windows-list { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.so-window { white-space: nowrap; }
.so-window-ends { display: block; color: var(--accent-2); }
.so-whynow {
  font-family: var(--sans); font-size: 13.5px; line-height: 1.55; color: var(--ink-2);
  margin: 2px 0 0; text-wrap: pretty;
}
.ai-card-wide .so-whynow { font-size: 14.5px; max-width: 48ch; }
.so-lodge {
  margin-top: auto; padding-top: 13px; border-top: 1px solid var(--rule-soft);
  display: flex; flex-direction: column; gap: 2px;
}
.so-lodge-name { font-family: var(--display); font-size: 16px; letter-spacing: -0.01em; color: var(--ink); }
.so-lodge-what { font-family: var(--sans); font-size: 12px; line-height: 1.4; color: var(--ink-3); }
.so-card-foot { margin-top: 12px; padding-top: 0; border-top: none; }
.fc-card-price-v.so-from-v { font-size: 18px; letter-spacing: -0.005em; }
.so-terms {
  font-family: var(--sans); font-size: 10.5px; line-height: 1.5; color: var(--ink-3);
  margin-top: 11px; padding-top: 9px; border-top: 1px dotted var(--rule-soft);
}
.so-card.ai-card-wide .ai-card-img { border-right: 1px solid var(--rule-soft); }
.so-when-years { display: flex; gap: 6px; margin-bottom: 10px; }
.so-when-year {
  font-family: var(--mono); font-size: 12px; letter-spacing: 0.04em; padding: 6px 14px;
  border: 1px solid var(--rule); border-radius: 3px; background: var(--paper); color: var(--ink-2); cursor: pointer;
  transition: border-color var(--mo-fast), background var(--mo-fast), color var(--mo-fast);
}
@media (hover: hover) { .so-when-year:hover {border-color: var(--ink-3); } }
.so-when-year.on { border-color: var(--accent); background: color-mix(in oklab, var(--accent) 8%, var(--paper)); color: var(--ink); }
.so-when-months { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }
.so-when-month {
  font-family: var(--sans); font-size: 12px; padding: 7px 0; text-align: center;
  border: 1px solid var(--rule); border-radius: 3px; background: var(--paper); color: var(--ink-2); cursor: pointer;
  transition: border-color var(--mo-fast), background var(--mo-fast), color var(--mo-fast);
}
@media (hover: hover) { .so-when-month:hover:not(:disabled) {border-color: var(--ink-3); } }
.so-when-month.on { border-color: var(--accent); background: color-mix(in oklab, var(--accent) 8%, var(--paper)); color: var(--ink); }
.so-when-month:disabled { opacity: 0.35; cursor: not-allowed; }
.so-when-hint { font-family: var(--sans); font-size: 11px; color: var(--ink-3); margin: 8px 0 0; }
.rt-yearbtn { transition-property: background, color; transition-duration: var(--mo-fast); transition-timing-function: var(--mo-ease); }
.chev-flip { transition: transform var(--mo-base) var(--mo-ease); }
.nav-pin { transition: background .3s, border-color .3s; }
.nav-pin .nav-bar { transition: min-height .3s var(--mo-curve); }
.nav-pin .nav-lockup { transition: padding .3s; }
.midx-row { transition: background var(--mo-fast) var(--mo-ease); }
.sh-modal-x { transition: background var(--mo-fast) var(--mo-ease), color var(--mo-fast) var(--mo-ease); }
.pr-hero-save { transition: background var(--mo-fast) var(--mo-ease); }
.pr-dock-save { transition: border-color var(--mo-fast) var(--mo-ease), color var(--mo-fast) var(--mo-ease); }
.sh-input { transition: border-color var(--mo-fast) var(--mo-ease), background var(--mo-fast) var(--mo-ease); }
.sh-quiet-link { transition: color var(--mo-fast) var(--mo-ease); }
.site-search-icon { transition: background var(--mo-fast) var(--mo-ease); }
.site-search-close { transition: background var(--mo-fast) var(--mo-ease), color var(--mo-fast) var(--mo-ease); }
.site-search-result { transition: background var(--mo-fast) var(--mo-ease); }
.so-route { transition: color var(--mo-fast) var(--mo-ease), border-bottom-color var(--mo-fast) var(--mo-ease); }
.sw-cast-more { transition: color var(--mo-fast) var(--mo-ease); }
.rg-activate-btn { transition: border-color var(--mo-fast) var(--mo-ease), color var(--mo-fast) var(--mo-ease); }
.rg-map-reset { transition: color var(--mo-fast) var(--mo-ease), border-color var(--mo-fast) var(--mo-ease); }
a.rg-sector-card { transition: border-color var(--mo-fast) var(--mo-ease), box-shadow var(--mo-fast) var(--mo-ease); }
.saved-cue-x { transition: color var(--mo-fast) var(--mo-ease); }
a.fc-card { transition: border-color var(--mo-fast) var(--mo-ease), box-shadow var(--mo-fast) var(--mo-ease); }
.mm-play { transition: color var(--mo-fast) var(--mo-ease), border-color var(--mo-fast) var(--mo-ease); }
.mm-step-arrow:not(:disabled) { transition: border-color var(--mo-fast) var(--mo-ease), color var(--mo-fast) var(--mo-ease); }
.sm-skip { transition: background var(--mo-fast) var(--mo-ease), border-color var(--mo-fast) var(--mo-ease); }
.sm-restart { transition: color var(--mo-fast) var(--mo-ease); }
.plm-activate svg { transition: stroke var(--mo-fast) var(--mo-ease); }
.plm-ctrl { transition: border-color var(--mo-fast) var(--mo-ease), color var(--mo-fast) var(--mo-ease); }
.jm-activate svg { transition: stroke var(--mo-fast) var(--mo-ease); }
.jm-restart { transition: background var(--mo-fast) var(--mo-ease); }
.fq-chip { transition: color var(--mo-fast) var(--mo-ease), border-color var(--mo-fast) var(--mo-ease); }
.fq-inline { transition: color var(--mo-fast) var(--mo-ease); }
.pt-inline { transition: color var(--mo-fast) var(--mo-ease); }
.jx-pgn a { transition: color var(--mo-fast) var(--mo-ease); }
.gep-route { transition: color var(--mo-fast) var(--mo-ease); }
.trx-mailto { transition: color var(--mo-fast) var(--mo-ease); }
.lgs-dismiss { transition: color var(--mo-fast) var(--mo-ease), border-bottom-color var(--mo-fast) var(--mo-ease); }
.nf-route { transition: color var(--mo-fast) var(--mo-ease), background var(--mo-fast) var(--mo-ease); }
.atx-official a { transition: border-color var(--mo-fast) var(--mo-ease); }
.ai-picker-route { transition: border-bottom-color var(--mo-fast) var(--mo-ease); }
.ai-clear { transition: color var(--mo-fast) var(--mo-ease); }
.ai-reveal-btn .ai-reveal-rest { transition: color var(--mo-fast) var(--mo-ease); }
.pk-back { transition: color var(--mo-fast) var(--mo-ease); }
.pk-quiet { transition: color var(--mo-fast) var(--mo-ease); }
.pk-year { transition: border-color var(--mo-fast) var(--mo-ease), color var(--mo-fast) var(--mo-ease); }
.pk-month:not(:disabled) { transition: border-color var(--mo-fast) var(--mo-ease), color var(--mo-fast) var(--mo-ease); }
.pk-chip { transition: border-color var(--mo-fast) var(--mo-ease); }
.pk-tool { transition: color var(--mo-fast) var(--mo-ease), border-color var(--mo-fast) var(--mo-ease); }
.pk-rest-link { transition: border-color var(--mo-fast) var(--mo-ease); }
.pk a { transition: color var(--mo-fast) var(--mo-ease); }
.sc-clear { transition: color var(--mo-fast) var(--mo-ease); }
.sc-selbar-cancel { transition: color var(--mo-fast) var(--mo-ease); }
.cm-col-link .cm-col-name { transition: color var(--mo-fast) var(--mo-ease); }
.pd-rail-a { color: var(--ink-2); border-bottom: 1.5px solid transparent; transition: color var(--mo-fast) var(--mo-ease), border-bottom-color var(--mo-fast) var(--mo-ease); white-space: nowrap; flex-shrink: 0; }
.pd-rail-a[aria-current="true"] { color: var(--ink); border-bottom-color: var(--ink); }
@media (hover: hover) { .pd-rail-a:hover {color: var(--ink); } }
.pd-spy { border-bottom: 1.5px solid transparent; transition: border-bottom-color var(--mo-fast) var(--mo-ease); }
.pd-spy.pd-on { border-bottom-color: var(--ink); }
@keyframes g1Fade { from { opacity: 0; } }
@keyframes g1Rise { from { opacity: 0; transform: translateY(14px); } }
.g1-img { animation: g1Fade 420ms var(--mo-ease) both; }
.g1-rise > * { animation: g1Fade var(--mo-enter) var(--mo-ease) 120ms both; }
@media (prefers-reduced-motion: no-preference) { .g1-rise > * { animation: g1Rise var(--mo-enter) var(--mo-curve) 120ms both; } }
.il-card { border: 1px solid var(--rule); transition: border-color var(--mo-fast) var(--mo-ease), box-shadow var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .il-card:hover {border-color: var(--accent); box-shadow: 0 14px 30px -22px rgba(0,0,0,0.35); } }
.il-arrow { transition: transform var(--mo-fast) var(--mo-curve); }
@media (hover: hover) { .il-card:hover .il-arrow {transform: translate(2px, -2px); } }
.pk-rel-card { border: 1px solid var(--rule); transition: border-color var(--mo-fast) var(--mo-ease), box-shadow var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .pk-rel-card:hover {border-color:  var(--accent); box-shadow: 0 14px 30px -22px rgba(0,0,0,0.35); } }
.lk { color: var(--ink-2); transition: color var(--mo-fast) var(--mo-ease), border-bottom-color var(--mo-fast) var(--mo-ease), text-decoration-color var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .lk:hover {color: var(--ink); border-bottom-color: var(--accent); text-decoration-color: var(--accent); } }
.lk.u { border-bottom: 1px solid var(--rule); }
.lk.i3 { color: var(--ink-3); }
.lk.inh { color: inherit; }
.lk.a2 { color: var(--accent); text-decoration-color: color-mix(in oklch, var(--accent) 60%, transparent); }
.lk.pri { color: var(--ink); border-bottom: 1.5px solid color-mix(in oklch, var(--accent) 60%, transparent); }
@media (hover: hover) { .lk.u:hover, .lk.i3:hover, .lk.inh:hover, .lk.a2:hover, .lk.pri:hover {color: var(--ink); border-bottom-color: var(--accent); text-decoration-color: var(--accent); } }
.site-search-empty-routes a { transition: color var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .site-search-empty-routes a:hover {color: var(--ink); } }
.lgd-panel a { transition: background var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .lgd-panel a:hover {background: var(--paper-2); } }
.btn { transition: background var(--mo-fast) var(--mo-ease), border-color var(--mo-fast) var(--mo-ease), color var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .btn:hover {background: color-mix(in oklab, var(--ink) 86%, var(--paper)); border-color: color-mix(in oklab, var(--ink) 86%, var(--paper)); } }
@media (hover: hover) { .btn.accent:hover {background: color-mix(in oklab, var(--accent) 88%, var(--ink)); border-color: color-mix(in oklab, var(--accent) 88%, var(--ink)); } }
@media (hover: hover) { .btn.ghost:hover {background: var(--paper-2); border-color: var(--ink); color: var(--ink); } }
.btn.ghost.nav-fv-paper { color: var(--nav-fg, var(--paper)); border-color: var(--nav-fg, var(--paper)); background: transparent; }
@media (hover: hover) { .btn.ghost.nav-fv-paper:hover {background: rgba(255,255,255,0.16); border-color: var(--nav-fg, var(--paper)); color: var(--nav-fg, var(--paper)); } }
.lgc-quiet { background: none; border: none; border-bottom: 1.5px solid var(--accent); transition: border-bottom-color var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .lgc-quiet:hover {border-bottom-color: var(--paper); } }
.cta-quiet { background: var(--paper); border: 1px solid var(--rule); transition: border-color var(--mo-fast) var(--mo-ease), background var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .cta-quiet:hover {border-color: var(--ink); } }
.rt-yearbtn { background: transparent; color: var(--ink); transition: background var(--mo-fast) var(--mo-ease), color var(--mo-fast) var(--mo-ease); }
.rt-yearbtn.on { background: var(--ink); color: var(--paper); }
@media (hover: hover) { .rt-yearbtn:not(.on):hover {background: var(--paper-2); } }
.a-acc-head, .acc-head { background: none; border: none; transition: background var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .a-acc-head:hover, .acc-head:hover {background: var(--paper-2); } }
@media (hover: hover) { .a-acc-head.on-p2:hover {background: var(--paper); } }
.ai-panel-head { transition: background var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .ai-panel-head:hover {background: var(--paper-2); } }
.rg-toggle { transition: border-color var(--mo-fast) var(--mo-ease), color var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .rg-toggle:not(.on):hover {border-color: var(--ink); color: var(--ink); } }
.sc-select { transition: border-color var(--mo-fast) var(--mo-ease), color var(--mo-fast) var(--mo-ease), background var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .sc-select:not(.on):hover {border-color: var(--ink); color: var(--ink); } }
.lrow { transition: background var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .lrow:hover {background: var(--paper-2); } }
button.btn { appearance: none; -webkit-appearance: none; margin: 0; line-height: inherit; letter-spacing: inherit; text-align: inherit; font-style: inherit; font-variant: inherit; text-rendering: inherit; }
button.plm-cluster { appearance: none; -webkit-appearance: none; margin: 0; padding: 0; line-height: inherit; letter-spacing: inherit; font-style: inherit; font-weight: inherit; text-rendering: inherit; text-align: inherit; unicode-bidi: isolate; }
.sr-reveal:focus-visible,
.btn:focus-visible, .nav-ctl:focus-visible, .brand-home:focus-visible, .lgc-quiet:focus-visible, .cta-quiet:focus-visible, .rt-yearbtn:focus-visible, .acc-head:focus-visible, .ai-panel-head:focus-visible, .ai-reveal-btn:focus-visible, .ai-tick:focus-visible, .ai-clear:focus-visible, .ai-heart:focus-visible, .rg-toggle:focus-visible, .rg-activate-btn:focus-visible, .rg-map-reset:focus-visible, .rg-poster-activate:focus-visible, .sc-select:focus-visible, .sc-compare-toggle:focus-visible, .sc-selbar-cancel:focus-visible, .sc-clear:focus-visible, .cm-back:focus-visible, .cm-viewlodge:focus-visible, .cm-remove:focus-visible, .cm-m-remove:focus-visible, .cm-col-link:focus-visible, .saved-cue-x:focus-visible, .lgs-dismiss:focus-visible, .sh-modal-x:focus-visible, .sh-quiet-link:focus-visible, .sh-door:focus-visible, .site-search-icon:focus-visible, .site-search-close:focus-visible, .site-search-result:focus-visible, .mm-play:focus-visible, .mm-step-arrow:focus-visible, .mm-month:focus-visible, .mm-activate:focus-visible, .sm-begin:focus-visible, .sm-dot:focus-visible, .sm-skip:focus-visible, .sm-restart:focus-visible, .plm-activate:focus-visible, .plm-ctrl:focus-visible, .jm-activate:focus-visible, .jm-ctrl:focus-visible, .jm-exit:focus-visible, .jm-restart:focus-visible, .jm-seg-dot:focus-visible, .jm-sheet-handle:focus-visible, .sw-cast-more:focus-visible, .fq-chip:focus-visible, .fq-inline:focus-visible, .pt-inline:focus-visible, .pk-opt:focus-visible, .pk-chip:focus-visible, .pk-month:focus-visible, .pk-year:focus-visible, .pk-back:focus-visible, .pk-quiet:focus-visible, .pk-tool:focus-visible, .pk-rest-link:focus-visible, .so-when-month:focus-visible, .so-when-year:focus-visible, .so-route:focus-visible, .ht-replay:focus-visible, .a-dayctl:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.sr-row:focus-visible, .sr-door:focus-visible, .site-search-all:focus-visible,
.il-card:focus-visible, .ai-card-link:focus-visible, .fc-card:focus-visible, .rg-sector-card:focus-visible, .sw-card:focus-visible, .pk-rel-card:focus-visible, .lk:focus-visible, .idx-row:focus-visible, .midx-row:focus-visible, .jx-pgn a:focus-visible, .gep-route:focus-visible, .trx-mailto:focus-visible, .nf-route:focus-visible, .atx-official a:focus-visible, .ai-picker-route:focus-visible, .site-search-empty-routes a:focus-visible, .lgd-panel a:focus-visible, .pd-rail-a:focus-visible, .pd-spy:focus-visible, .crumb-link:focus-visible, .pk a:focus-visible, .ai-sort-sel:focus-visible, .ai-childage-sel:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.site-search-input:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.sh-input:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.lgn-input:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.ai-cur-field:has(select:focus-visible), .rt-cursel:has(select:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.nav-fv-paper:focus-visible, .icon-btn.dk:focus-visible { outline-color: var(--paper); }
.a-dayctl { appearance: none; -webkit-appearance: none; background: none; border: 0; padding: 0; margin: 0; font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; cursor: pointer; }
.gal-tile { appearance: none; -webkit-appearance: none; display: block; padding: 0; margin: 0; border: 0; background: none; font: inherit; color: inherit; text-align: inherit; cursor: pointer; width: 100%; }
.gal-tile:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.gv-scrim { position: fixed; inset: 0; z-index: 60; background: oklch(0.16 0.015 60 / 0.94); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity var(--mo-base) var(--mo-ease); }
.gv-scrim.on { opacity: 1; }
.gv-close { position: absolute; top: 22px; right: 22px; z-index: 2; }
.gv-stage { position: relative; width: min(1100px, calc(100vw - 160px)); display: flex; flex-direction: column; align-items: center; gap: 16px; }
.gv-hero { position: relative; width: 100%; height: min(64vh, 620px); transform-origin: top left; will-change: transform; }
.gv-hero.travel { transition: transform var(--mo-slow) var(--mo-curve); }
.gv-img, .gv-phwrap { width: 100%; height: 100%; display: block; }
.gv-img { object-fit: contain; }
.gv-xfade { animation: gvXfade var(--mo-fast) var(--mo-ease); }
@keyframes gvXfade { from { opacity: 0.25; } to { opacity: 1; } }
.gv-prev, .gv-next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; }
.gv-prev { left: -64px; } .gv-next { right: -64px; }
.gv-meta { display: flex; align-items: baseline; gap: 14px; max-width: 100%; color: rgba(255,255,255,0.92); font-family: var(--sans); opacity: 0; transform: translateY(8px); transition: opacity var(--mo-enter) var(--mo-ease) 80ms, transform var(--mo-enter) var(--mo-curve) 80ms; }
.gv-scrim.on .gv-meta { opacity: 1; transform: none; }
.gv-count { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.62); white-space: nowrap; }
.gv-cap { font-size: 14.5px; line-height: 1.4; }
.gv-strip { display: flex; gap: 8px; overflow-x: auto; max-width: 100%; padding: 2px; opacity: 0; transform: translateY(12px); transition: opacity var(--mo-enter) var(--mo-ease) 140ms, transform var(--mo-enter) var(--mo-curve) 140ms; scrollbar-width: none; }
.gv-strip::-webkit-scrollbar { display: none; }
.gv-scrim.on .gv-strip { opacity: 1; transform: none; }
.gv-thumb { appearance: none; -webkit-appearance: none; padding: 0; margin: 0; border: 1.5px solid rgba(255,255,255,0.18); background: none; cursor: pointer; width: 74px; height: 50px; flex-shrink: 0; }
.gv-thumb.on { border-color: var(--accent); }
.gv-thumb img, .gv-thumb .ph { width: 100%; height: 100%; object-fit: cover; }
.gv-close:focus-visible, .gv-prev:focus-visible, .gv-next:focus-visible, .gv-thumb:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.gv-m .gv-stage { width: calc(100vw - 32px); gap: 12px; }
.gv-m .gv-hero { height: 46vh; }
.gv-m .gv-prev { left: 8px; } .gv-m .gv-next { right: 8px; }
.gv-m .gv-close { top: 14px; right: 14px; }
.gv-m .gv-meta { flex-direction: column; align-items: center; gap: 6px; text-align: center; padding: 0 8px; }
@media (prefers-reduced-motion: reduce) {
  .gv-scrim, .gv-hero.travel, .gv-meta, .gv-strip { transition: none !important; }
  .gv-xfade { animation: none; }
}
a.sw-card:active, a.fc-card:active, a.rg-sector-card:active, .ai-card:active { border-color: var(--accent); background: var(--paper-2); transition: none; }
.sr-row:active { background: var(--paper-2); transition: none; }
.sr-row:active .sr-row-title { color: var(--accent-2); }
.sc-inline-link:active { color: var(--accent-2); border-bottom-color: var(--accent-2); transition: none; }
.so-route:active { color: var(--ink); border-bottom-color: var(--accent); transition: none; }
.lk:active, .lk.u:active, .lk.i3:active, .lk.inh:active, .lk.a2:active, .lk.pri:active { color: var(--ink); border-bottom-color: var(--accent); text-decoration-color: var(--accent); transition: none; }
.crumb-link:active { color: var(--ink); }
a.so-tile:active { background: var(--paper-2); transition: none; }
.sh-door:active { background: var(--paper-2); border-color: var(--accent); transition: none; }
.icon-btn:not(.dk):active { border-color: var(--ink-3); background: var(--paper-2); color: var(--ink); transition: none; }
.heart:active { border-color: var(--ink-3); background: var(--paper-2); transition: none; }
.cb-card { position: fixed; bottom: 24px; left: max(24px, calc((100% - 1440px) / 2 + 24px)); z-index: 80; width: 400px; max-width: calc(100% - 48px); background: var(--paper); border: 1px solid var(--rule); box-shadow: 0 20px 50px -20px oklch(0.22 0.018 60 / 0.5); padding: 22px 24px 18px; }
.cb-sheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; background: var(--paper); border-top: 1px solid var(--rule); box-shadow: 0 -16px 40px -16px oklch(0.22 0.018 60 / 0.45); padding: 20px 18px calc(16px + env(safe-area-inset-bottom, 0px)); }
.cb-title { font-family: var(--display); font-size: 21px; line-height: 1.15; letter-spacing: -0.01em; margin: 0 0 8px; color: var(--ink); }
.cb-body { font-size: 13.5px; line-height: 1.55; color: var(--ink-2); margin: 0 0 16px; text-wrap: pretty; }
.cb-link { color: var(--ink); border-bottom: 1.5px solid var(--accent); text-decoration: none; transition: color var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .cb-link:hover { color: var(--accent-2); } }
.cb-link:active { color: var(--accent-2); transition: none; }
.cb-pair { display: flex; gap: 10px; }
.cb-pair .btn { flex: 1 1 0; }
.cb-choose { display: block; margin: 13px auto 0; background: none; border: none; border-bottom: 1.5px solid var(--accent); padding: 0 1px 3px; font-family: var(--sans); font-size: 13.5px; font-weight: 500; color: var(--ink); cursor: pointer; transition: color var(--mo-fast) var(--mo-ease), border-bottom-color var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .cb-choose:hover { color: var(--accent-2); } }
.cb-choose:active { color: var(--accent-2); border-bottom-color: var(--accent-2); transition: none; }
.cb-sheet .cb-pair .btn { padding: 13px 16px; font-size: 14px; }
.cb-sheet .cb-choose { margin-top: 8px; font-size: 14px; padding: 12px 1px; border-bottom: none; text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
.cb-scrim { position: fixed; inset: 0; z-index: 200; background: oklch(0.22 0.018 60 / 0.55); backdrop-filter: blur(3px); display: flex; align-items: center; justify-content: center; padding: 24px; }
.cb-panel { width: 560px; max-width: 100%; max-height: calc(100vh - 48px); overflow: auto; background: var(--paper); border: 1px solid var(--rule); padding: 26px 30px 24px; }
.cb-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin: 0 0 6px; }
.cb-panel-title { font-family: var(--display); font-size: 26px; line-height: 1.1; letter-spacing: -0.015em; margin: 0; color: var(--ink); }
.cb-x { flex: none; }
.cb-intro { font-size: 13.5px; line-height: 1.55; color: var(--ink-2); margin: 0 0 18px; text-wrap: pretty; }
.cb-rows { display: flex; flex-direction: column; }
.cb-row { display: grid; grid-template-columns: 1fr auto; column-gap: 18px; align-items: start; padding: 14px 0; border-top: 1px solid var(--rule-soft); }
.cb-row-label { font-family: var(--sans); font-weight: 600; font-size: 14px; color: var(--ink); margin-bottom: 4px; }
.cb-row-desc { font-size: 12.5px; line-height: 1.5; color: var(--ink-2); margin: 0; text-wrap: pretty; }
.cb-panel-actions { display: flex; gap: 10px; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--rule); }
.cb-sw { position: relative; flex: none; width: 46px; height: 26px; border-radius: 999px; border: 1px solid var(--rule); background: var(--paper-3); cursor: pointer; padding: 0; margin-top: 2px; appearance: none; -webkit-appearance: none; transition: background var(--mo-fast) var(--mo-ease), border-color var(--mo-fast) var(--mo-ease); }
.cb-knob { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--paper); border: 1px solid var(--rule); box-shadow: 0 1px 2px oklch(0.22 0.018 60 / 0.25); transition: transform var(--mo-fast) var(--mo-ease); }
.cb-sw.on { background: var(--accent); border-color: var(--accent); }
.cb-sw.on .cb-knob { transform: translateX(20px); border-color: var(--accent-2); }
.cb-sw.lock { background: var(--ink-2); border-color: var(--ink-2); cursor: default; }
@media (hover: hover) { .cb-sw:not(.on):not(.lock):hover { border-color: var(--ink-3); } }
.cb-sw:focus-visible, .cb-choose:focus-visible, .cb-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.cb-panel-m { position: fixed; inset: 0; width: auto; max-width: none; max-height: none; border: none; padding: 0; display: flex; flex-direction: column; overflow: hidden; }
.cb-panel-m .cb-panel-head { padding: 18px 18px 12px; border-bottom: 1px solid var(--rule-soft); align-items: center; }
.cb-panel-m .cb-intro { padding: 12px 18px 0; margin: 0 0 8px; }
.cb-panel-m .cb-rows { flex: 1 1 auto; overflow-y: auto; padding: 0 18px 8px; }
.cb-panel-m .cb-row { padding: 16px 0; }
.cb-panel-m .cb-sw { width: 51px; height: 31px; }
.cb-panel-m .cb-knob { width: 23px; height: 23px; }
.cb-panel-m .cb-sw.on .cb-knob { transform: translateX(20px); }
.cb-panel-m .cb-panel-actions { flex: none; margin: 0; padding: 14px 18px calc(14px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--rule); background: var(--paper); }
.cb-panel-m .cb-panel-actions .btn { flex: 1 1 0; padding: 13px 16px; font-size: 14px; }
@keyframes cbIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.cb-card, .cb-sheet { animation: cbIn var(--mo-base) var(--mo-ease) both; }
@media (prefers-reduced-motion: reduce) { .cb-card, .cb-sheet { animation: none; } .cb-sw, .cb-knob, .cb-link, .cb-choose { transition: none; } .cb-scrim { backdrop-filter: none; } }
.ph-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0; transition: opacity 600ms var(--mo-ease); }
.ph-video.on { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .ph-video { display: none; } }
.cb-door-line { margin: 14px 0 0; }
.cb-door { background: none; border: none; padding: 0 1px 3px; border-bottom: 1.5px solid var(--accent); font-family: var(--sans); font-size: 13.5px; font-weight: 500; color: var(--ink); cursor: pointer; transition: color var(--mo-fast) var(--mo-ease), border-bottom-color var(--mo-fast) var(--mo-ease); }
@media (hover: hover) { .cb-door:hover { color: var(--accent-2); } }
.cb-door:active { color: var(--accent-2); border-bottom-color: var(--accent-2); transition: none; }
.cb-door:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.ai-card{display:flex;flex-direction:column}
.ai-card>.ai-card-link{flex:1 1 auto}
.ai-card-footwrap{padding:0 18px 16px;margin-top:-2px}
.ai-card-footwrap .fc-card-foot{margin-top:0}
.ai-card-wide>.ai-card-footwrap{width:50%;margin-left:auto;padding:0 26px 20px}
@media (max-width:920px){.ai-card-wide>.ai-card-footwrap{width:100%;padding:0 18px 16px}}
a.fc-card-route{text-decoration:none}
@media (hover:hover){a.fc-card-route:hover{color:var(--accent)}}
.ai-door{align-self:flex-end}
.btn.sm.ai-door{padding:7px 12px;font-size:12px}
.acc-body { display: none; }
.acc-body.open { display: block; }
.r2page{container:r2page / inline-size}
.r2page{--r2-1:-116px;--r2-2:60px 60px 80px;--r2-3:14px;--r2-4:16px;--r2-5:108px;--r2-6:20px;--r2-7:13px;--r2-8:22px;--r2-9:16px;--r2-11:22px;--r2-12:18px;--r2-13:78px 60px 56px;--r2-15:46px;--r2-14:22px;--r2-17:380px;--r2-16:14px 0 30px;--r2-18:18px;--r2-20:18px;--r2-19:30px;--r2-21:176px;--r2-23:24px;--r2-22:2.24em;--r2-24:78px 60px 8px;--r2-26:46px;--r2-25:18px;--r2-28:18px;--r2-27:30px;--r2-29:150px;--r2-30:21px;--r2-31:78px;--r2-32:0 60px 30px;--r2-34:flex;--r2-33:16px;--r2-35:46px;--r2-36:0px;--r2-37:18px;--r2-38:540px;--r2-39:32px;--r2-40:0 0 26px;--r2-41:78px 60px 104px;--r2-42:100%;--r2-45:46px;--r2-44:18px;--r2-43:100%;--r2-47:16.5px;--r2-46:26px;--r2-48:44px;--r2-49:34px;--r2-52:center;--r2-51:16px;--r2-50:row;--r2-53:18px;--r2-55:0 60px 56px;--r2-54:-48px;--r2-56:18px;--r2-57:18px;--r2-58:24px;--r2-59:82px 60px 56px;--r2-60:grid;--r2-61:0px;--r2-62:28px;--r2-63:28px;--r2-64:16px;--r2-66:56px;--r2-65:28px 60px 20px;--r2-69:row;--r2-68:baseline;--r2-67:22px;--r2-70:2px;--r2-71:15px;--r2-72:92px 60px 52px;--r2-73:1000px;--r2-75:44px;--r2-74:1.18;--r2-77:32px;--r2-76:18px;--r2-78:40px;--r2-79:4px;--r2-80:36px 60px;--r2-81:14px;--r2-83:row;--r2-82:28px;--r2-84:15px;--r2-85:80px 60px;--r2-86:26px;--r2-87:14px;--r2-88:32px;--r2-89:78px 60px 64px;--r2-91:46px;--r2-90:26px;--r2-92:20px}
@container r2page (max-width: 720px){.r2page>*{--r2-1:-92px;--r2-2:16px 22px 40px;--r2-3:10px;--r2-4:12px;--r2-5:46px;--r2-6:15px;--r2-7:12px;--r2-8:16px;--r2-9:12px;--r2-11:16px;--r2-12:16px;--r2-13:40px 22px 32px;--r2-15:30px;--r2-14:16px;--r2-17:240px;--r2-16:8px 0 22px;--r2-18:16px;--r2-20:16px;--r2-19:22px;--r2-21:168px;--r2-23:22px;--r2-22:2.24em;--r2-24:40px 22px 8px;--r2-26:30px;--r2-25:14px;--r2-28:16px;--r2-27:22px;--r2-29:150px;--r2-30:20px;--r2-31:44px;--r2-32:0 22px 24px;--r2-34:block;--r2-33:14px;--r2-35:30px;--r2-36:14px;--r2-37:16px;--r2-38:320px;--r2-39:24px;--r2-40:0 0 20px;--r2-41:44px 22px 64px;--r2-42:72%;--r2-45:30px;--r2-44:14px;--r2-43:78%;--r2-47:15px;--r2-46:20px;--r2-48:34px;--r2-49:26px;--r2-52:flex-start;--r2-51:12px;--r2-50:column;--r2-53:12px;--r2-55:0 22px 36px;--r2-54:-28px;--r2-56:14px;--r2-57:12px;--r2-58:22px;--r2-59:40px 22px 44px;--r2-60:block;--r2-61:32px;--r2-62:26px;--r2-63:26px;--r2-64:15.5px;--r2-66:32px;--r2-65:24px 22px 18px;--r2-69:column;--r2-68:flex-start;--r2-67:6px;--r2-70:0px;--r2-71:14px;--r2-72:52px 22px 40px;--r2-73:100%;--r2-75:26px;--r2-74:1.25;--r2-77:22px;--r2-76:12px;--r2-78:24px;--r2-79:0px;--r2-80:26px 22px;--r2-81:10px;--r2-83:column;--r2-82:8px;--r2-84:14px;--r2-85:44px 22px;--r2-86:18px;--r2-87:10px;--r2-88:26px;--r2-89:40px 22px 40px;--r2-91:30px;--r2-90:18px;--r2-92:18px}}
.r2page>*{--r2h-chpl:64px 60px 8px;--r2h-chp:78px 60px 8px;--r2h-hero:820px;--r2h-chl:58px;--r2h-ch:46px;--r2fs-provpad:0 24px 14px;--r2fs-provdisp:flex}
.r2fs-stars{display:none}
.r2-sib-arrow{display:none}
.r2-dt{display:inline}
@container r2page (max-width: 720px){
.r2page>*{--r2h-chpl:40px 22px 8px;--r2h-chp:40px 22px 8px;--r2h-hero:780px;--r2h-chl:32px;--r2h-ch:30px;--r2h-rooms:1fr;--r2h-addons:1fr;--r2h-offers:1fr;--r2fs-provpad:0 22px 14px;--r2fs-provdisp:block}
.so-pin svg{width:34px;height:34px}
.r2-qstars svg{width:11px!important;height:11px!important}
.r2-qstars span{font-size:11px!important}
.r2-dt{display:none}
.r2fs{padding:12px 22px;justify-content:space-between;align-items:baseline;gap:12px}
.r2fs-auth,.r2fs-l,.r2fs-unit,.r2fs-rpre{display:none}
.r2fs-cell{flex:0 0 auto!important;padding:0!important;border-right:none!important}
.r2fs-rating{order:1}
.r2fs-rate{order:2}
.r2fs-v{font-size:14px!important;line-height:inherit!important}
.r2fs-rv{display:flex;align-items:baseline}
.r2fs-stars{display:inline-flex}
.r2fs-rtext{margin-left:8px;font-family:var(--sans);font-weight:500;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-3)}
.r2fs-fv{font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:0.04em;text-transform:uppercase;color:var(--bronze);white-space:nowrap}
.r2fs-fv::before{content:"FROM "}
.r2fs-nofeed{display:none!important}
.r2-sibs{display:block!important}
.r2-sib{display:flex!important;flex-direction:row!important;gap:14px;padding:14px 0!important;border:none!important;border-top:1px solid var(--rule-soft)!important;align-items:center;text-decoration:none;background:transparent!important;box-shadow:none!important;border-radius:0!important;text-align:left}
.r2-sib-ph{width:90px!important;height:90px!important;flex-shrink:0}
.r2-sib-body{flex:1;min-width:0;padding:0!important;display:block!important}
.r2-sib-name{font-size:16px!important;margin:0 0 4px!important;line-height:1.15!important;color:var(--ink);font-weight:400}
.r2-sib-region{font-size:13px!important;margin:0 0 4px!important}
.r2-sib-rate{margin-top:0!important}
.r2-sib-arrow{display:inline}
}
.r2page>*{--r2h-sealt:141px;--r2h-sealr:200px;--r2h-sealw:150px;--r2h-sealo:0.88;--r2h-sealbm:multiply;--r2h-sealz:2}
@container r2page (max-width: 720px){
.r2page>*{--r2h-sealt:168px;--r2h-sealr:2px;--r2h-sealw:110px;--r2h-sealo:0.92;--r2h-sealbm:normal;--r2h-sealz:0}
.r2-rr{display:block!important}
.r2-rr-img{height:240px!important}
.r2-rr p{font-size:15px!important}
}
.r2v-padding{padding:var(--r2d-padding)}.r2v-margin-top{margin-top:var(--r2d-margin-top)}.r2v-margin-bottom{margin-bottom:var(--r2d-margin-bottom)}.r2v-gap{gap:var(--r2d-gap)}.r2v-max-width{max-width:var(--r2d-max-width)}.r2v-font-size{font-size:var(--r2d-font-size)}.r2v-line-height{line-height:var(--r2d-line-height)}.r2v-display{display:var(--r2d-display)}.r2v-grid-template-columns{grid-template-columns:var(--r2d-grid-template-columns)}.r2v-flex-direction{flex-direction:var(--r2d-flex-direction)}.r2v-align-items{align-items:var(--r2d-align-items)}.r2v-justify-self{justify-self:var(--r2d-justify-self)}.r2v-bottom{bottom:var(--r2d-bottom)}.r2v-height{height:var(--r2d-height)}.r2v-width{width:var(--r2d-width)}.r2v-border-radius{border-radius:var(--r2d-border-radius)}.r2v-flex{flex:var(--r2d-flex)}
@container r2page (max-width: 720px){
.r2v-padding{padding:var(--r2m-padding)}.r2v-margin-top{margin-top:var(--r2m-margin-top)}.r2v-margin-bottom{margin-bottom:var(--r2m-margin-bottom)}.r2v-gap{gap:var(--r2m-gap)}.r2v-max-width{max-width:var(--r2m-max-width)}.r2v-font-size{font-size:var(--r2m-font-size)}.r2v-line-height{line-height:var(--r2m-line-height)}.r2v-display{display:var(--r2m-display)}.r2v-grid-template-columns{grid-template-columns:var(--r2m-grid-template-columns)}.r2v-flex-direction{flex-direction:var(--r2m-flex-direction)}.r2v-align-items{align-items:var(--r2m-align-items)}.r2v-justify-self{justify-self:var(--r2m-justify-self)}.r2v-bottom{bottom:var(--r2m-bottom)}.r2v-height{height:var(--r2m-height)}.r2v-width{width:var(--r2m-width)}.r2v-border-radius{border-radius:var(--r2m-border-radius)}.r2v-flex{flex:var(--r2m-flex)}
.r2v-band.pkc-band4{grid-template-columns:1fr}
}
.r2-ell{display:none}
.r2gl-btnrow{display:none}
.r2gal-btn-m{display:none}
@container r2page (max-width: 720px){
.r2-crumbs{padding:6px 22px}
.r2-crumbs .crumb-link,.r2-crumbs .crumb-current{padding:15px 0}
.r2-crumbs .crumb-list{font-size:13px}
.r2-crumbs .r2mid{display:none}
.r2-crumbs .r2-ell{display:inline-flex}
.r2gl{display:block}
.r2gl .so-tile{grid-column:auto!important}
.r2gl-btnrow{display:block}
.r2gal-head{display:block;margin-bottom:0}
.r2gal-btn-d{display:none}
.r2gal-btn-m{display:inline-flex}
.r2gal-grid{grid-template-columns:1fr 1fr!important;grid-auto-rows:auto!important;gap:6px!important}
.r2gal-grid .gal-tile{height:110px}
.r2gal-grid .gal-tile.r2feat{height:var(--r2m-feath);order:-1;grid-row:auto!important;grid-column:span 2!important}
}
.r2v-background{background:var(--r2d-background)}
.r2v-letter-spacing{letter-spacing:var(--r2d-letter-spacing)}
.r2gp-btnrow{display:none}
.r2gp-cb{display:none}
.r2gp-lbl-less{display:none}
@container r2page (max-width: 720px){
.r2v-background{background:var(--r2m-background)}
.r2v-letter-spacing{letter-spacing:var(--r2m-letter-spacing)}
.r2gp{display:block!important}
.r2gp-cb:not(:checked)~.r2gp .r2gp-rest{display:none}
.r2gp-cb:not(:checked)~.r2gp .r2gp-peek{max-height:var(--r2gp-peek);overflow:hidden;position:relative}
.r2gp-cb:not(:checked)~.r2gp .r2gp-peek::after{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--r2gp-peek);background:linear-gradient(180deg,transparent,var(--r2gp-fade));pointer-events:none}
.r2gp-head{display:block}
.r2gp-btnrow{display:block}
.r2gp-cb:checked~.r2gp-btnrow .r2gp-lbl-more{display:none}
.r2gp-cb:checked~.r2gp-btnrow .r2gp-lbl-less{display:inline}
.r2gp-cb:checked~.r2gp-btnrow .chev-flip{transform:rotate(180deg)}
.r2gp-cb{display:block;position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0);overflow:hidden}
.r2gp-cb:focus-visible~.r2gp-btnrow label{outline:2px solid var(--ink);outline-offset:3px}
.r2gp-cb:not(:checked)~.r2gl .r2gl-rest:not(.r2gl-peek){display:none}
.r2gp-cb:not(:checked)~.r2gl .r2gl-peek{max-height:84px;overflow:hidden;position:relative}
.r2gp-cb:not(:checked)~.r2gl .r2gl-peek::after{content:"";position:absolute;left:0;right:0;bottom:0;height:84px;background:linear-gradient(180deg,transparent,var(--paper));pointer-events:none}
}
.lgm-cb{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0);overflow:hidden}
.lgm-lbl-less{display:none}
.lgm-cb:not(:checked)~.lgm-fold{max-height:84px;overflow:hidden;position:relative}
.lgm-cb:not(:checked)~.lgm-fold>.so-tile:not(:first-child){display:none}
.lgm-cb:not(:checked)~.lgm-fold::after{content:"";position:absolute;left:0;right:0;bottom:0;height:84px;background:linear-gradient(180deg,transparent,var(--paper));pointer-events:none}
.lgm-cb:checked~.lgm-btnrow .lgm-lbl-more{display:none}
.lgm-cb:checked~.lgm-btnrow .lgm-lbl-less{display:inline}
.lgm-cb:checked~.lgm-btnrow .chev-flip{transform:rotate(180deg)}
.lgm-cb:focus-visible~.lgm-btnrow label{outline:2px solid var(--ink);outline-offset:3px}
.r2rt .r2rt-ml{display:none}
.r2rt .r2rt-mc{display:none}
@container r2page (max-width: 720px){
.r2rt{display:grid!important;grid-template-columns:1fr;border-top:none;border-bottom:none}
.r2rt thead,.r2rt tbody,.r2rt tr{display:contents}
.r2rt .r2rt-d{display:none}
.r2rt thead th.r2rt-mh{grid-row:var(--mr);width:auto;text-align:left;padding:12px 2px 8px;font-family:var(--display);font-size:20px;font-weight:400;letter-spacing:normal;text-transform:none;color:var(--ink);border-top:1px solid var(--ink);border-bottom:1px solid var(--rule-soft)}
.r2rt thead th.r2rt-mh:not(:nth-child(2)){margin-top:22px}
.r2rt .r2rt-mv{display:block;grid-row:var(--mr);width:auto;padding:13px 0;text-align:right;border-bottom:1px solid var(--rule-soft)}
.r2rt .r2rt-mv::after{content:"";display:block;clear:both}
.r2rt .r2rt-mc{display:flex;grid-row:var(--mr);justify-content:space-between;align-items:flex-start;gap:12px;width:auto;padding:13px 0;text-align:right;border-bottom:1px solid var(--rule-soft)}
.r2rt .r2rt-mv.r2rt-lastp,.r2rt .r2rt-mc.r2rt-lastp{border-bottom:1px solid var(--ink)}
.r2rt .r2rt-ml{display:block;float:left;max-width:60%;text-align:left}
.r2rt .r2rt-ml .pr-rt-range{font-size:14.5px}
.r2rt .r2rt-mv>span:last-child{white-space:nowrap}
.r2rt .rt-approx{height:auto;opacity:1}
.r2rt .rt-approx[data-empty]{display:none}
.r2rt .rt-dash{font-family:var(--display);color:var(--bronze);font-size:20px}
.r2rt .pr-rt-closedrow{opacity:1}
.r2rt .r2rt-mc{opacity:0.6}
.r2rt .r2rt-mc .pr-rt-closednote{white-space:normal;text-align:right}
}
.pr-tip{border-left:2px solid var(--accent);background:var(--paper-2);padding:18px 22px;margin:8px 0 4px}
.pr-tip-k{font-family:var(--mono);font-size:9.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent-2);margin-bottom:8px}
.pr-caveat{border:1px solid var(--rule);background:var(--paper);padding:22px 24px 18px;margin:20px 0 4px;position:relative}
.pr-caveat-k{font-family:var(--mono);font-size:9.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}
.pr-offers{border:1px solid var(--rule);border-left:3px solid var(--accent);background:var(--paper-2);padding:26px 28px}
.pr-offer{background:var(--paper);border:1px solid var(--rule-soft);padding:20px 22px}
.pr-redirect{margin-top:22px;padding-top:18px;border-top:1px solid var(--rule-soft)}
.pr-hero-ph .ph-label{position:absolute;top:150px;left:60px;transform:none;margin:0;max-width:440px;text-align:left}
.t-ink3{color:var(--ink-3)}
html{background:var(--paper-2)}
.lg-slab .t-accent{color:oklch(0.74 0.13 70)}
.r2ch{container:r2ch / inline-size}
.r2nav .nav-bar{padding:0 40px;min-height:116px}
.r2nav.nav-cond .nav-bar{min-height:62px}
.r2nav .nav-lockup{padding:18px 0}
.r2nav.nav-cond .nav-lockup{padding:10px 0}
.r2nav{top:-54px;height:116px;box-sizing:content-box;display:flex;flex-direction:column;justify-content:flex-end}
@media (max-width:720px){
.r2nav{top:-40px;height:92px}
}
.r2nav-d{display:inline-flex;align-items:center}
.r2nav-m{display:none!important}
.pd-form-d{display:flex}
.pd-form-m{display:none}
.lgs-split2{grid-template-columns:1fr 1fr}
.lgs-split2-m{grid-template-columns:1fr}
.mnp-m .mnp-arrow svg{width:15px;height:15px}
.mnp-m .mnp-sub .mnp-arrow svg{width:13px;height:13px}
.mnp-m .mnp-lockup .brand-mark{height:24px!important}
.mnp-m .mnp-lockup .brand-wordmark{font-size:15px!important}
.mnp-m .mnp-close svg{width:18px;height:18px}
@container r2ch (max-width:720px){
.r2nav-d{display:none!important}
.r2nav-m{display:inline-flex!important}
.r2nav .nav-bar{padding:0 16px;min-height:92px}
.r2nav.nav-cond .nav-bar{min-height:52px}
.r2nav .nav-lockup{padding:14px 0}
.r2nav.nav-cond .nav-lockup{padding:8px 0}
.r2nav .brand-crest .brand-mark{height:34px!important}
.r2nav .brand-crest .brand-wordmark{font-size:14px!important;margin-top:8px!important}
.r2nav-long .brand-crest .brand-wordmark{font-size:12.5px!important}
.r2nav .mark-only .brand-mark{height:24px!important}
.r2nav .mark-only .brand-wordmark{font-size:15px!important}
.r2nav-long .mark-only .brand-wordmark{font-size:13px!important}
.r2nav .brand-lockup{gap:10px!important}
.pd-form-d{display:none}
.pd-form-m{display:flex}
.sh-modal{padding:28px 22px 26px;width:100%;max-width:380px}
.lgs-split2{grid-template-columns:1fr}
.mnp-chrome{padding:14px 16px 6px}
.mnp-scroll{padding:14px 22px 72px}
.mnp-cols{column-count:1;column-gap:0;max-width:none}
.mnp-cluster{padding-bottom:44px}
.mnp-row{padding:13px 0 15px;gap:14px}
.mnp-title{font-size:28px}
.mnp-row.mnp-sub{padding:11px 0 13px 22px}
.mnp-row.mnp-sub .mnp-title{font-size:19px}
.mnp-colophon{padding:22px 0 6px}
.mnp-colophon img{height:38px}
.mnp-arrow svg{width:15px;height:15px}
.mnp-sub .mnp-arrow svg{width:13px;height:13px}
.mnp-lockup .brand-mark{height:24px!important}
.mnp-lockup .brand-wordmark{font-size:15px!important}
.mnp-close svg{width:18px;height:18px}
.gv-stage{width:calc(100vw - 32px);gap:12px}
.gv-hero{height:46vh}
.gv-prev{left:8px}
.gv-next{right:8px}
.gv-close{top:14px;right:14px}
.gv-meta{flex-direction:column;align-items:center;gap:6px;text-align:center;padding:0 8px}
}
.r2page{--r4-1:96px;--r4-2:16px 60px 4px;--r4-3:15.5px;--r4-4:92px 60px 12px;--r4-5:22px;--r4-6:42px;--r4-7:1.18;--r4-8:28px;--r4-9:96px 60px 24px;--r4-10:1.05fr 1fr;--r4-11:56px;--r4-12:480px;--r4-13:0;--r4-14:0px;--r4-15:0;--r4-16:60px;--r4-17:18px;--r4-18:row;--r4-19:20px;--r4-20:center;--r4-21:flex-start;--r4-22:9px 16px;--r4-23:56px 60px;--r4-24:36px 40px;--r4-25:flex;--r4-26:560px;--r4-27:32px;--r4-28:16px;--r4-29:0px;--r4-30:flex-end;--r4-31:18px;--r4-32:44px;--r4-33:72px 60px;--r4-34:1fr 1fr;--r4-35:52px;--r4-36:30px;--r4-37:inline-block;--r4-38:360px;--r4-39:center;--r4-40:40px;--r4-41:600px;--r4-42:30px;--r4-43:15.5px;--r4-44:76px 60px;--r4-45:24px;--r4-46:24px;--r4-47:30px 32px;--r4-48:30px;--r4-49:44px 60px;--r4-50:16px;--r4-51:26px;--r4-52:15px;--r4-53:96px 60px;--r4-54:52px;--r4-55:20px;--r4-56:32px;--r4-57:26px;--r4-58:680px;--r4-59:60px 60px 84px;--r4-60:14px;--r4-61:18px;--r4-62:92px;--r4-63:20px;--r4-64:36px 60px 16px;--r4-65:20px;--r4-66:62px;--r4-67:0.98;--r4-68:20px;--r4-69:92px 60px 8px;--r4-70:46px;--r4-71:17.5px;--r4-72:34px;--r4-73:420px;--r4-74:112px 60px 116px;--r4-75:88px;--r4-76:-30px;--r4-77:-40px;--r4-78:440px;--r4-79:1080px;--r4-80:64px;--r4-81:1.13;--r4-82:80px 60px 28px;--r4-83:80px 60px;--r4-84:34px;--r4-85:760px;--r4-86:40px 60px 28px;--r4-87:40px 60px 72px;--r4-88:460px;--r4-89:40px;--r4-90:88px 60px 8px;--r4-91:0}
@container r2page (max-width: 720px){.r2page>*{--r4-1:72px;--r4-2:13px 22px 2px;--r4-3:14px;--r4-4:44px 22px 8px;--r4-5:16px;--r4-6:27px;--r4-7:1.22;--r4-8:22px;--r4-9:44px 0 8px;--r4-10:1fr;--r4-11:28px;--r4-12:300px;--r4-13:2;--r4-14:26px 22px 0;--r4-15:1;--r4-16:40px;--r4-17:16px;--r4-18:column;--r4-19:12px;--r4-20:stretch;--r4-21:center;--r4-22:11px 16px;--r4-23:36px 22px;--r4-24:26px 22px;--r4-25:block;--r4-26:100%;--r4-27:26px;--r4-28:15px;--r4-29:20px;--r4-30:flex-start;--r4-31:14px;--r4-32:30px;--r4-33:40px 22px;--r4-34:1fr;--r4-35:34px;--r4-36:22px;--r4-37:block;--r4-38:240px;--r4-39:flex-start;--r4-40:14px;--r4-41:100%;--r4-42:24px;--r4-43:14.5px;--r4-44:40px 22px;--r4-45:18px;--r4-46:12px;--r4-47:22px 20px;--r4-48:26px;--r4-49:30px 22px;--r4-50:12px;--r4-51:8px;--r4-52:14px;--r4-53:48px 22px;--r4-54:32px;--r4-55:16px;--r4-56:24px;--r4-57:16px;--r4-58:600px;--r4-59:16px 22px 40px;--r4-60:10px;--r4-61:12px;--r4-62:40px;--r4-63:15px;--r4-64:44px 22px 8px;--r4-65:14px;--r4-66:34px;--r4-67:1;--r4-68:17px;--r4-69:44px 22px 8px;--r4-70:30px;--r4-71:15.5px;--r4-72:24px;--r4-73:220px;--r4-74:60px 22px 64px;--r4-75:40px;--r4-76:-20px;--r4-77:-40px;--r4-78:240px;--r4-79:100%;--r4-80:32px;--r4-81:1.18;--r4-82:36px 22px 16px;--r4-83:40px 22px;--r4-84:26px;--r4-85:600px;--r4-86:8px 22px 16px;--r4-87:8px 22px 36px;--r4-88:220px;--r4-89:22px;--r4-90:40px 22px 8px;--r4-91:3}}
.r2page .r4-seed-m{display:none}
.r2page .htm-topveil,.r2page .htm-botveil{display:none}
.r2page .r2-mbr{display:none}
@container r2page (max-width: 720px){
.r2page .r4-seed-d{display:none}
.r2page .r4-seed-m{display:block}
.r2page .htm-topveil,.r2page .htm-botveil{display:block}
.r2page .ht-textveil,.r2page .ht-coordscrim{display:none}
.r2page .r2-mbr{display:inline}
.r2page .r4-dot{display:none}
.r2page .r4-fold1{grid-template-columns:1fr!important}
.r2page .r4-ch2{grid-template-columns:1fr!important;gap:22px!important}
.r2page .r4-ctarow .btn,.r2page .ht-cta .btn{width:100%}
.r2page .il-arrow svg{width:22px;height:22px}
.r2page .ht-stage .ht-frame{inset:14px}
.r2page .ht-footchip{top:14px;left:14px;font-size:8.5px}
.r2page .ht-coord{top:20px;left:22px;right:auto;font-size:9px;letter-spacing:0.1em}
.r2page .ht-text{inset:auto 22px 36px 22px;padding:0;justify-content:flex-start}
.r2page .ht-word{font-size:58px}
.r2page .ht-thesis{font-size:17px;line-height:1.3;margin:14px 0 0;max-width:none}
.r2page .ht-cta{flex-direction:column;gap:12px;margin-top:22px;align-items:stretch}
.r2page .ht-link{justify-content:center}
.r2page .idx-row{grid-template-columns:auto 1fr auto;grid-template-areas:"num main arrow" "num hook arrow";gap:5px 14px;align-items:start;padding:18px 4px 18px 16px}
.r2page .idx-num{grid-area:num;font-size:11px;padding-top:7px}
.r2page .idx-main{grid-area:main}
.r2page .idx-hook{grid-area:hook;font-size:13.5px;margin-top:2px}
.r2page .idx-arrow{grid-area:arrow;padding-top:6px;justify-self:end}
.r2page .idx-title{font-size:24px;line-height:1.02}
.r2page .idx-cta{font-size:9.5px;color:var(--accent-2);opacity:1;transform:none}
.r2page .idx-arrow svg{width:17px;height:17px}
.r2page .idx-row::before{top:19px;bottom:auto;height:22px;transform:none}
.r2page .bt-cell-sig{display:none}
.r2page .bt-cell{align-items:center;background:var(--paper)}
.r2page .bt-cell-bar{height:46px}
.r2page .bt-cell-body{padding:5px 0 7px;gap:0}
.r2page .bt-cell-m{font-size:8px;letter-spacing:0;color:var(--ink-2)}
}
.r2page{--r4-92:-116px;--r4-93:60px 60px 84px;--r4-94:14px;--r4-95:18px;--r4-96:96px;--r4-97:20px;--r4-98:row;--r4-99:center;--r4-100:20px;--r4-101:30px;--r4-102:36px 60px 16px;--r4-103:20px;--r4-104:62px;--r4-105:0.98;--r4-106:20px;--r4-107:24px;--r4-108:46px;--r4-109:22px;--r4-110:18px;--r4-111:420px;--r4-112:112px 60px 116px;--r4-113:88px;--r4-114:-30px;--r4-115:-40px;--r4-116:440px;--r4-117:1080px;--r4-118:64px;--r4-119:1.13;--r4-120:92px 60px;--r4-121:80px;--r4-122:grid;--r4-123:16px;--r4-124:42px;--r4-125:18px;--r4-126:17.5px;--r4-127:0px;--r4-128:0px;--r4-129:26px;--r4-130:clamp(15px, 6.5cqw, 28px);--r4-131:88px 60px;--r4-132:0px;--r4-133:16px;--r4-134:16px;--r4-135:80px 60px 28px;--r4-136:44px;--r4-137:80px 60px;--r4-138:24px;--r4-139:30px 32px;--r4-140:30px;--r4-141:15.5px;--r4-142:96px 60px;--r4-143:52px;--r4-144:20px;--r4-145:34px;--r4-146:26px;--r4-147:760px;--r4-148:36px 60px 16px;--r4-149:92px 60px;--r4-150:88px 60px;--r4-151:80px 60px 28px;--r4-152:80px 60px;--r4-153:96px 60px}
@container r2page (max-width: 720px){.r2page>*{--r4-92:-92px;--r4-93:16px 22px 40px;--r4-94:10px;--r4-95:12px;--r4-96:40px;--r4-97:15px;--r4-98:column;--r4-99:stretch;--r4-100:12px;--r4-101:22px;--r4-102:44px 22px 8px;--r4-103:14px;--r4-104:34px;--r4-105:1;--r4-106:17px;--r4-107:18px;--r4-108:30px;--r4-109:16px;--r4-110:16px;--r4-111:220px;--r4-112:60px 22px 64px;--r4-113:40px;--r4-114:-20px;--r4-115:-40px;--r4-116:240px;--r4-117:100%;--r4-118:32px;--r4-119:1.18;--r4-120:44px 22px;--r4-121:8px;--r4-122:block;--r4-123:12px;--r4-124:28px;--r4-125:14px;--r4-126:16px;--r4-127:22px;--r4-128:24px;--r4-129:20px;--r4-130:clamp(15px, 6.5cqw, 22px);--r4-131:44px 22px;--r4-132:28px;--r4-133:14px;--r4-134:15px;--r4-135:36px 22px 16px;--r4-136:30px;--r4-137:40px 22px;--r4-138:12px;--r4-139:22px 20px;--r4-140:26px;--r4-141:14.5px;--r4-142:48px 22px;--r4-143:32px;--r4-144:16px;--r4-145:26px;--r4-146:16px;--r4-147:600px;--r4-148:44px 22px 8px;--r4-149:44px 22px;--r4-150:44px 22px;--r4-151:36px 22px 16px;--r4-152:40px 22px;--r4-153:48px 22px}}
.r2page .so-pin,.r2page .so-map-whisper{--r5x:var(--r5x-d);--r5y:var(--r5y-d)}
.r2page .so-locator.wf-d.wf-m{--wash-ar:1236 / 760}
.r2page .wash-art-serengeti-overview.wf-d.wf-m::after{background-image:url("assets/wash-serengeti-overview-desktop-2x.webp")}
.r2page .wash-art-moremi-overview.wf-d.wf-m::after{background-image:url("assets/wash-moremi-overview-desktop-2x.webp")}
@container r2page (max-width: 720px){
.r2page .so-pin,.r2page .so-map-whisper{--r5x:var(--r5x-m);--r5y:var(--r5y-m)}
.r2page .so-locator.wf-d.wf-m{--wash-ar:784 / 660}
.r2page .wash-art-serengeti-overview.wf-d.wf-m::after{background-image:url("assets/wash-serengeti-overview-mobile-2x.webp")}
.r2page .wash-art-moremi-overview.wf-d.wf-m::after{background-image:url("assets/wash-moremi-overview-mobile-2x.webp")}
.r2page .so-locator .so-pin svg{width:30px;height:30px}
}
.r2page{--r4-154:540px;--r4-155:80px 60px 8px;--r4-156:80px 60px 72px;--r4-157:100px;--r4-158:250px;--r4-159:44px 0 30px;--r4-160:62px;--r4-161:20px 0 0;--r4-162:18px;--r4-163:0 0 18px;--r4-164:10px 0 30px;--r4-165:0 48px}
.r2page .rg-r6-poster{background-image:var(--rg-poster-d)}
.r2page .rg-act-m{display:none}
.r2page .ai-card-img{--so-h:var(--so-h-d)}
.r2page .so-fp.so-fp-off .ai-panel-body{display:none}
.r2page .so-fpc-m{display:none}
@container r2page (max-width: 720px){.r2page>*{--r4-154:380px;--r4-155:40px 22px 8px;--r4-156:36px 22px 36px;--r4-157:44px;--r4-158:178px;--r4-159:26px 0 20px;--r4-160:38px;--r4-161:14px 0 0;--r4-162:15.5px;--r4-163:0 0 14px;--r4-164:6px 0 40px;--r4-165:0 22px}}
@container r2page (max-width: 720px){
.r2page .rg-r6-poster{background-image:var(--rg-poster-m);filter:none;transform:none}
.r2page .rg-r6m-hide{display:none}
.r2page .rg-act-d{display:none}
.r2page .rg-act-m{display:inline-flex}
.r2page .rg-activate{display:none}
.r2page .rg-sectors{grid-template-columns:1fr!important}
.r2page .rg-sectors>div{grid-column:auto!important}
.r2page .rg-sector-feat .rg-sector-ph{width:100%;height:180px}
.r2page .rg-sector-card:not(.rg-sector-feat) .rg-sector-ph{height:168px!important}
.r2page #species{padding:44px 22px 8px!important}
.r2page #species>div>.t-eyebrow{margin-bottom:12px!important}
.r2page #species>div>h2.t-display{font-size:30px!important;margin-bottom:12px!important}
.r2page #species>div>p.t-sans{font-size:15.5px!important;margin-bottom:26px!important}
.r2page .sw-tier{grid-template-columns:1fr 1fr!important}
.r2page .sw-tier>div:last-child:nth-child(odd){grid-column:1/-1}
.r2page .sw-tier-label~.sw-tier-label{margin-top:34px!important}
.r2page .sw-cast{grid-template-columns:1fr 1fr!important}
.r2page .sxf-row{grid-template-columns:1fr 1fr!important}
.r2page .sxf-row>div:last-child:nth-child(odd){grid-column:1/-1}
.r2page .sw-card-feat>.ph{height:150px!important}
.r2page .sw-card-cast>.ph{height:116px!important}
.r2page .ai-grid{grid-template-columns:1fr!important}
.r2page .ai-card-img{--so-h:var(--so-h-m)}
.r2page .ai-card-img.inset{padding:0;background:none}
.r2page .ai-card-wide .ai-card-link{grid-template-columns:1fr}
.r2page .ai-card-wide .ai-heart{right:12px;left:auto}
.r2page .ai-card-wide>.ai-card-footwrap{width:100%;padding:0 18px 16px}
.r2page .so-seal{width:108px!important;height:108px!important;opacity:0.82!important;align-self:flex-start!important;margin:150px 0 0!important}
.r2page .so-fp:not(.so-fp-on) .ai-panel-body{display:none}
.r2page .so-fpc-d{display:none}
.r2page .so-fpc-m{display:inline}
.r2page .ai-panel .ai-facets{grid-template-columns:1fr;gap:22px}
.r2page .ai-panel .ai-facet:has(.ai-enum-wrap){grid-column:auto}
.r2page .ai-panel .ai-facets:has(.ai-enum-wrap) .ai-facet:has(.ai-childage){grid-column:auto;grid-row:auto / span 2}
.r2page .ai-panel .ai-enum{flex-direction:column;align-items:stretch;gap:8px}
.r2page .ai-panel .ai-enum .ai-tick-wrap{display:flex;width:100%}
.r2page .ai-panel .ai-tick{width:100%}
.r2page .ai-panel .ai-tick-wrap .ai-tick{flex:1}
.r2page .ai-panel .ai-tick-wrap .ai-plus{flex-shrink:0}
.r2page .ai-panel .ai-childage-sel{width:100%}
.r2page .ai-panel .ai-apply-row{flex-direction:column;align-items:stretch}
.r2page .ai-panel .ai-apply-btns{justify-content:space-between}
}
@media (hover: hover){
.idx-row.idx-pending:hover{background:transparent}
.idx-row.idx-pending:hover > *{transform:none}
.idx-row.idx-pending:hover::before{transform:scaleX(0)}
.idx-row.idx-pending:hover .idx-num{color:var(--ink-3)}
.idx-row.idx-pending:hover .idx-cta{opacity:0;transform:translateY(-3px);color:var(--ink-3)}
}
@container (max-width: 240px){
.r2page .sw-card-note{display:block}
.r2page .sw-card-note .sw-card-note-mark{display:block;margin-bottom:3px}
}
.r2page{--r4-166:720px;--r4-167:60px 60px 80px;--r4-168:14px;--r4-169:18px;--r4-170:84px;--r4-171:20px;--r4-172:30px;--r4-173:row;--r4-174:center;--r4-175:26px;--r4-176:20px 60px 4px;--r4-177:40px 60px 16px;--r4-178:20px;--r4-179:58px;--r4-180:0.99;--r4-181:28px;--r4-182:24px;--r4-183:56px 60px 8px;--r4-184:32px;--r4-185:16px;--r4-186:38px 60px 4px;--r4-187:82px 60px 8px;--r4-188:26px;--r4-189:46px;--r4-190:12px;--r4-191:22px;--r4-192:84px 60px 28px;--r4-193:84px 60px 72px;--r4-194:22px;--r4-195:44px;--r4-196:88px 60px 8px;--r4-197:16px;--r4-198:44px;--r4-199:18px;--r4-200:17.5px;--r4-201:28px;--r4-202:92px 60px;--r4-203:18px;--r4-204:50px;--r4-205:20px;--r4-206:18px;--r4-207:34px;--r4-208:18px;--r4-209:44px 0 26px;--r4-210:10px 0 64px;--r4-211:34px;--r4-212:17px;--r4-213:250px}
.lge-fields{grid-template-columns:1fr 1fr}
@container r2ch (max-width: 720px){.lge-fields{grid-template-columns:1fr}}
@container r2page (max-width: 720px){.r2page>*{--r4-166:560px;--r4-167:16px 22px 40px;--r4-168:10px;--r4-169:12px;--r4-170:40px;--r4-171:15px;--r4-172:22px;--r4-173:column;--r4-174:stretch;--r4-175:16px;--r4-176:18px 22px 4px;--r4-177:44px 22px 8px;--r4-178:14px;--r4-179:34px;--r4-180:1.0;--r4-181:22px;--r4-182:18px;--r4-183:34px 22px 8px;--r4-184:24px;--r4-185:12px;--r4-186:24px 22px 2px;--r4-187:40px 22px 8px;--r4-188:21px;--r4-189:30px;--r4-190:10px;--r4-191:16px;--r4-192:40px 22px 16px;--r4-193:40px 22px 36px;--r4-194:14px;--r4-195:30px;--r4-196:44px 22px 8px;--r4-197:12px;--r4-198:30px;--r4-199:14px;--r4-200:15.5px;--r4-201:20px;--r4-202:48px 22px;--r4-203:14px;--r4-204:32px;--r4-205:16px;--r4-206:16px;--r4-207:26px;--r4-208:16px;--r4-209:26px 0 18px;--r4-210:6px 0 40px;--r4-211:26px;--r4-212:15px;--r4-213:190px}
.r2page .as-wrap{overflow-x:visible;margin-left:0}
.r2page .as-table,.r2page .as-table tbody{display:block;width:100%}
.r2page .as-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.r2page .as-table tr{display:block;padding:18px 0;border-bottom:1px solid var(--rule-soft)}
.r2page .as-table tbody tr:hover{background:none}
.r2page .as-table tbody th{display:block;padding:0 0 12px;font-size:18px}
.r2page .as-table tbody td{display:grid;grid-template-columns:104px 1fr;column-gap:12px;align-items:baseline;padding:5px 0}
.r2page .as-table tbody td::before{content:attr(data-label);white-space:nowrap;align-self:baseline;font-family:var(--mono);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-3)}
.r2page .as-table tbody td.as-td-empty{display:none}
}
.r2page{--r4-214:36px 60px;--r4-215:14px;--r4-216:row;--r4-217:28px;--r4-218:15px;--r4-219:7px 22px;--r4-220:center;--r4-221:16px;--r4-222:18px;--r4-223:grid;--r4-224:1.6fr 1fr;--r4-225:14px 4px;--r4-226:0px;--r4-227:right;--r4-228:row-reverse;--r4-229:22px;--r4-230:13px;--r4-231:72px;--r4-232:320px;--r4-233:56px 60px 0;--r4-234:10px;--r4-235:38px;--r4-236:18px;--r4-237:17px;--r4-238:20px 60px;--r4-239:baseline;--r4-240:22px;--r4-241:2px;--r4-242:96px 60px 100px;--r4-243:1000px;--r4-244:44px;--r4-245:1.18;--r4-246:32px;--r4-247:40px;--r4-248:4px;--r4-249:22px;--r4-250:250px;--r4-251:44px 0 26px;--r4-252:62px;--r4-253:18px;--r4-254:20px 0 0;--r4-255:0 0 18px;--r4-256:56px 48px 72px;--r4-257:20px;--r4-258:44px;--r4-259:16px;--r4-260:14px 0 0;--r4-261:10px 0 20px;--r4-262:0 48px;--r4-263:34px;--r4-264:52px 60px 8px;--r4-265:74px;--r4-266:30px;--r4-267:19px;--r4-268:18px 0 8px;--r4-269:0 60px;--r4-270:6px 60px;--r4-271:460px;--r4-272:28px 0 8px;--r4-273:16px;--r4-274:84px 60px 76px;--r4-275:48px;--r4-276:46px;--r4-277:80px;--r4-278:80px 60px;--r4-279:26px;--r4-280:32px;--r4-281:repeat(3, 1fr);--r4-282:100%;--r4-283:170px;}
@container r2page (max-width: 720px){.r2page>*{--r4-214:26px 18px;--r4-215:10px;--r4-216:column;--r4-217:8px;--r4-218:14px;--r4-219:6px 16px;--r4-220:flex-start;--r4-221:12px;--r4-222:12px;--r4-223:block;--r4-224:auto;--r4-225:13px 4px;--r4-226:6px;--r4-227:left;--r4-228:row;--r4-229:20px;--r4-230:12px;--r4-231:56px;--r4-232:200px;--r4-233:32px 18px 0;--r4-234:6px;--r4-235:26px;--r4-236:14px;--r4-237:15px;--r4-238:18px 18px;--r4-239:flex-start;--r4-240:6px;--r4-241:0px;--r4-242:52px 22px 40px;--r4-243:100%;--r4-244:26px;--r4-245:1.25;--r4-246:22px;--r4-247:24px;--r4-248:0px;--r4-249:18px;--r4-250:190px;--r4-251:26px 0 18px;--r4-252:38px;--r4-253:15.5px;--r4-254:14px 0 0;--r4-255:0 0 14px;--r4-256:34px 22px 40px;--r4-257:14px;--r4-258:30px;--r4-259:14.5px;--r4-260:12px 0 0;--r4-261:6px 0 40px;--r4-262:0 22px;--r4-263:26px;--r4-264:30px 22px 8px;--r4-265:40px;--r4-266:20px;--r4-267:16.5px;--r4-268:10px 0 8px;--r4-269:0 22px;--r4-270:6px 22px;--r4-271:240px;--r4-272:20px 0 8px;--r4-273:15px;--r4-274:44px 22px 40px;--r4-275:24px;--r4-276:30px;--r4-277:36px;--r4-278:44px 22px;--r4-279:18px;--r4-280:26px;--r4-281:1fr;--r4-282:78%;--r4-283:0px;}}
.r2page{--r4-284:82px 60px 8px}
.r2page .a-day-cols{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:48px;align-items:center}
.r2page .a-day-cols.nonote{grid-template-columns:1fr}
.r2page .a-day-prose{font-size:16px}
.r2page .a-day-meta{display:grid;grid-template-columns:1fr 1fr;gap:4px 40px}
.r2page .a-day-note{font-family:var(--hand-note);font-size:22px;line-height:1.35;color:var(--ink);transform:rotate(-1deg);text-align:center}
.r2page .a-day-sig{font-size:18px;margin-top:8px;opacity:0.7}
.r2page .rt-seal{position:absolute;top:58px;right:64px;z-index:2}
@container r2page (max-width:720px){
.r2page>*{--r4-284:40px 22px 8px}
.r2page .a-day-stay{display:none}
.r2page .a-dot-sep{display:none}
.r2page .rt-usd-note{display:none}
.r2page .a-day-cols{display:flex;flex-direction:column;gap:0}
.r2page .a-day-left{display:contents}
.r2page .a-day-prose{order:0;font-size:15px}
.r2page .a-day-note{order:1;font-size:16px;line-height:1.4;transform:none;margin:0 0 18px}
.r2page .a-day-sig{display:inline;font-size:16px;margin:0}
.r2page .a-day-meta{order:2;grid-template-columns:1fr;gap:0}
.r2page .rt-seal{top:6px;right:10px;z-index:0;transform:scale(0.703);transform-origin:top right}
}
.r2page.a-pkg{--r4-285:-116px;--r4-286:820px;--r4-287:60px 60px 80px;--r4-288:linear-gradient(180deg, rgba(0,0,0,0.28) 0%, transparent 20%, transparent 55%, rgba(0,0,0,0.55) 100%);--r4-289:10px;--r4-290:0.18em;--r4-291:110px;--r4-292:16px;--r4-293:0.92;--r4-294:18px;--r4-295:80px 60px 0;--r4-296:14px;--r4-297:60px;--r4-298:0.98;--r4-299:28px;--r4-300:20px;--r4-301:1.65;--r4-302:56px 60px 64px;--r4-303:18px;--r4-304:48px;--r4-305:48px 60px 24px;--r4-306:8px;--r4-307:44px;--r4-308:48px 60px 0;--r4-309:16px;--r4-310:20px;--r4-311:56px 60px 0;--r4-312:48px;--r4-313:30px;--r4-314:28px;--r4-315:4px;--r4-316:40px;--r4-317:56px 60px 64px;--r4-318:28px;--r4-319:16px;--r4-320:15px;--r4-321:14px;--r4-322:15px;--r4-323:48px 60px 56px;--r4-324:24px;--r4-325:56px 60px 40px;--r4-326:32px;--r4-327:56px}
.r2page.a-pkg{display:flex;flex-direction:column}
.a-pkg .a-pkg-seasons{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:20px}
.a-pkg .a-pkg-btvnote{margin-top:28px;padding:20px 24px;background:var(--paper-2);border:1px solid var(--rule)}
.a-pkg .a-pkg-whygrid{display:grid;grid-template-columns:1fr 1fr;gap:60px}
.a-pkg .a-pkg-relgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px}
.a-pkg .a-pkg-seal{top:92px;right:200px;width:150px;height:150px}
.a-pkg .a-pkg-seasons-m{display:none}
.a-pkg .a-pkg-rel-m{display:none}
.a-pkg .a-pkg-departures{padding:0 60px}
.a-pkg .a-pkg-facts-m{display:none}
.a-pkg .a-mo-l{display:none}
.a-pkg .a-pkg-vg-m{display:none}
@container r2page (max-width:720px){
.a-pkg>*{--r4-285:-92px;--r4-286:680px;--r4-287:16px 18px 36px;--r4-288:linear-gradient(180deg, rgba(0,0,0,0.30) 0%, transparent 25%, transparent 55%, rgba(0,0,0,0.65) 100%);--r4-289:8px;--r4-290:0.16em;--r4-291:38px;--r4-292:6px;--r4-293:0.95;--r4-294:14px;--r4-295:44px 18px 32px;--r4-296:8px;--r4-297:28px;--r4-298:1.0;--r4-299:14px;--r4-300:15px;--r4-301:1.7;--r4-302:32px 18px 24px;--r4-303:8px;--r4-304:24px;--r4-305:32px 18px 14px;--r4-306:6px;--r4-307:24px;--r4-308:32px 18px 0;--r4-309:14px;--r4-310:18px;--r4-311:32px 18px 0;--r4-312:26px;--r4-313:16px;--r4-314:22px;--r4-315:3px;--r4-316:28px;--r4-317:32px 18px 36px;--r4-318:24px;--r4-319:15px;--r4-320:14px;--r4-321:12px;--r4-322:14px;--r4-323:32px 18px 28px;--r4-324:16px;--r4-325:32px 18px 40px;--r4-326:24px;--r4-327:32px}
.a-pkg>*{order:0}
.a-pkg .a-pkg-why{order:1}
.a-pkg .a-pkg-ess,.a-pkg .a-pkg-rel{order:2}
.a-pkg>*:last-child{order:3}
.a-pkg .a-pkg-dayctl{display:none}
.a-pkg .a-pkg-desk-eyebrow{display:none}
.a-pkg .a-mo-w{display:none}
.a-pkg .a-mo-l{display:inline}
.a-pkg .a-pkg-molabel{font-size:10px;margin-top:4px}
.a-pkg .a-pkg-facts-d{display:none}
.a-pkg .a-pkg-facts-m{display:block}
.a-pkg .a-pkg-vg-d{display:none}
.a-pkg .a-pkg-vg-m{display:block}
.a-pkg .a-pkg-maphead{display:block!important}
.a-pkg .a-pkg-stops{display:block;margin-top:4px;text-transform:lowercase;letter-spacing:0.02em;font-size:12px}
.a-pkg .a-pkg-seasons{grid-template-columns:1fr;gap:12px}
.a-pkg .a-pkg-seasons-d{display:none}
.a-pkg .a-pkg-seasons-m{display:block}
.a-pkg .a-pkg-btv+.a-pkg-quote,.a-pkg .a-pkg-why+.a-pkg-quote{margin-top:32px}
.a-pkg .a-pkg-btvnote{margin-top:18px;padding:14px;border:none;background:var(--paper-2)}
.a-pkg .a-pkg-whygrid{display:grid;grid-template-columns:1fr;row-gap:32px}
.a-pkg .a-pkg-relgrid{grid-template-columns:1fr;gap:0}
.a-pkg .a-pkg-rel-d{display:none}
.a-pkg .a-pkg-rel-m{display:block}
.a-pkg .a-pkg-departures{padding:0 18px}
.a-pkg .a-pkg-seal{top:132px;right:12px;width:110px;height:110px}
}
.r2page .ai-facets{grid-auto-flow:dense}
.r2page .ai-facets:has(.ai-enum-wrap):not(:has(> *:nth-child(6))) .ai-facet:has(.ai-childage){grid-column:auto;grid-row:auto / span 2}
@media (hover:none){.ai-card:active{border-color:var(--accent);box-shadow:0 6px 14px -12px rgba(0,0,0,0.4)}}
.r2page .ai-facet{display:grid;grid-template-rows:subgrid;grid-row:span 2;row-gap:0;align-content:start}
.r2page .ai-facets:has(.ai-enum-wrap) .ai-facet:has(.ai-childage){grid-column:2;grid-row:3 / span 2}
.ai-facet-body{min-width:0}
.bt-character{font-family:var(--sans);font-size:16px;line-height:1.62;color:var(--ink-2);margin:14px 0 0;max-width:820px}
.bt-ratenote{font-family:var(--sans);font-size:15.5px;line-height:1.6;color:var(--ink-2);margin:16px 0 0;max-width:820px}
.scv-m, .pkv-m { display: none; }
.r2page { --r4-340: 12px 0 80px; --r4-341: 0 48px; --r4-350: 8px 40px 72px; }
@container r2page (max-width: 720px) {
  .r2page .scv-d, .r2page .pkv-d { display: none; }
  .r2page .scv-m, .r2page .pkv-m { display: block; }
  .r2page > * { --r4-340: 6px 0 60px; --r4-341: 0 16px; --r4-350: 4px 18px 44px; }
}
.r2page{--r4-360:62px;--r4-361:52px 60px 8px;--r4-362:16px;--r4-363:62px;--r4-364:20px;--r4-365:19px}
@container r2page (max-width: 720px){.r2page>*{--r4-360:52px;--r4-361:26px 22px 4px;--r4-362:12px;--r4-363:38px;--r4-364:14px;--r4-365:16px}}
.sm-video-wrap .sm-video-el{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sm-video-wrap .sm-video-poster{position:absolute;inset:0;background-size:cover;background-position:center}
.sm-wrap .sm-video-el,.sm-wrap .sm-video-poster{filter:brightness(.84) saturate(.75) hue-rotate(8deg)}
.sm-wrap .sm-map{opacity:.999}
.sm-wrap .sm-video-wrap{opacity:.999}
html:has(.sm-wrap.active){scroll-snap-type:y proximity;scroll-padding-top:62px}
.sm-wrap.active .sm-step-video{scroll-snap-align:start}
html.sm-live:has(.sm-wrap.active){scroll-padding-top:0}
.sm-route.sm-route-pending{cursor:default}
@media (hover: hover){.sm-route.sm-route-pending:hover{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.14)}}
.sm-merged.active .sm-map{top:var(--r4-360);height:calc(100vh - var(--r4-360))}
.sm-merged.active .sm-steps{margin-top:calc(-100vh + var(--r4-360))}
.sm-merged.active .sm-step{min-height:calc(100vh - var(--r4-360))}
.sm-merged.active .sm-step-video .sm-video-wrap{top:var(--r4-360);height:calc(100vh - var(--r4-360))}
@container r2page (max-width: 720px){
.sm-merged .sm-overlay{height:82vh;min-height:460px}
.sm-merged .sm-poster-h2{font-size:34px}
.sm-merged .sm-poster-sub{font-size:15px}
.sm-merged .sm-steps{padding:4px 20px}
.sm-merged .sm-card-title{font-size:27px}
.sm-merged .sm-badge{top:16px;left:16px;padding:7px 12px;gap:7px;max-width:calc(100% - 120px)}
.sm-merged .sm-badge-phase{display:none}
.sm-merged .sm-badge-month{font-size:14px}
.sm-merged .sm-skip{top:16px;right:16px}
.sm-merged.active .sm-card{max-width:none;width:100%;padding:22px 22px}
.sm-merged .sm-progress{display:none}
.sm-merged.active .sm-step{padding:0 16px}
.sm-merged.active .sm-step-close{min-height:auto;padding:34px 14px 30px;align-items:stretch}
.sm-merged .sm-close{padding:24px 18px 22px}
.sm-merged .sm-close-h{font-size:25px;margin-bottom:18px}
.sm-merged .sm-route-grid{grid-template-columns:1fr;gap:8px}
.sm-merged .sm-route{padding:12px 15px}
.sm-merged .sm-route-kicker{margin-bottom:3px}
.sm-merged .sm-route-cta{font-size:17px;margin-bottom:0}
.sm-merged .sm-route-hook{display:none}
.sm-merged .sm-seam{flex-direction:row;align-items:center;gap:12px;padding:15px 16px;margin-top:8px}
.sm-merged .sm-seam-hook{display:none}
.sm-merged .sm-seam-title{font-size:18px;margin-bottom:0}
.sm-merged .sm-seam-ic svg{width:22px;height:22px}
.sm-merged .sm-restart{margin-top:16px}
.sm-merged .sm-video-cap{font-size:19px}
.sm-merged.active .sm-step-video{padding:0;min-height:150vh}
.sm-merged.active .sm-step-video .sm-video-wrap{min-height:0}
}
html.sm-live .r2dock{display:none}
@media (max-width: 720px){html.sm-live .nav-pin{display:none}}
@container r2page (max-width: 720px){html.sm-live .r2page>*{--r4-360:0px}}
html.sm-live .sm-wrap.active.is-mobile .sm-map{top:0;height:100vh}
html.sm-live .sm-wrap.active.is-mobile .sm-steps{margin-top:-100vh}
html.sm-live .sm-wrap.active.is-mobile .sm-step{min-height:100vh}
html.sm-live .sm-wrap.active.is-mobile .sm-step-video .sm-video-wrap{top:0;height:100vh}
.sm-wrap.active.is-mobile .sm-progress{display:flex;right:8px;gap:8px;pointer-events:none}
.sm-wrap.active.is-mobile .sm-dot{width:6px;height:6px}
.sm-wrap.active .sm-card{background:rgba(20,15,10,0.72);backdrop-filter:blur(9px);padding:24px 26px}
.sm-wrap.active .sm-card-title{font-size:30px}
.sm-wrap.active .sm-card-body{font-size:15px;line-height:1.6}
.sm-wrap.active.is-mobile .sm-card-num{margin-bottom:6px}
.sm-wrap.active.is-mobile .sm-card-title{font-size:21px;margin:0 0 8px}
.sm-wrap.active.is-mobile .sm-card-body{font-size:16px;line-height:1.5;margin:0 0 6px}
.sm-wrap.active.is-mobile .sm-card-body:last-child{margin-bottom:0}
@container r2page (max-width: 720px){
.sm-merged.active .sm-progress{display:flex;right:8px;gap:8px;pointer-events:none}
.sm-merged.active .sm-dot{width:6px;height:6px}
.sm-merged.active .sm-card-num{margin-bottom:6px}
.sm-merged.active .sm-card-title{font-size:21px;margin:0 0 8px}
.sm-merged.active .sm-card-body{font-size:16px;line-height:1.5;margin:0 0 6px}
.sm-merged.active .sm-card-body:last-child{margin-bottom:0}
}
.sm-wrap.active.is-mobile .sm-step:not(.sm-step-close):not(.sm-step-video){padding:0 14px}
.sm-wrap.active.is-mobile .sm-card{padding:12px 16px;max-width:none;width:100%}
@container r2page (max-width: 720px){
.sm-merged.active .sm-step:not(.sm-step-close):not(.sm-step-video){padding:0 14px}
.sm-merged.active .sm-card{padding:12px 16px;max-width:none;width:100%}
}
@media (min-width: 1441px){
#root:has(.sm-wrap){max-width:none}
.wf:has(.sm-wrap) .nav-pin .nav-bar{padding:0 calc(50vw - 680px)}
.wf:has(.sm-wrap) .r2dock .pd-form-d{padding:0 calc(50vw - 660px) !important}
}
@media print{#root:has(.sm-wrap){max-width:1440px}}
.r2page{--r4-366:-116px;--r4-367:720px;--r4-368:60px 60px 80px;--r4-369:14px;--r4-370:18px;--r4-371:104px;--r4-372:20px;--r4-373:40px 60px 16px;--r4-374:20px;--r4-375:58px;--r4-376:0.99;--r4-377:28px;--r4-378:19px;--r4-379:80px 60px;--r4-380:grid;--r4-381:0px;--r4-382:16px;--r4-383:42px;--r4-384:18px;--r4-385:17.5px;--r4-386:26px;--r4-387:28px;--r4-388:400px;--r4-389:82px 60px 8px;--r4-390:46px;--r4-391:22px;--r4-392:18px;--r4-393:24px;--r4-394:88px 60px 8px;--r4-395:16px;--r4-396:46px;--r4-397:18px;--r4-398:18px;--r4-399:34px;--r4-400:188px;--r4-401:repeat(2,1fr);--r4-402:84px 60px 72px;--r4-403:22px;--r4-404:44px;--r4-405:80px 60px;--r4-406:26px;--r4-407:14px;--r4-408:36px;--r4-409:repeat(3,1fr);--r4-410:18px;--r4-411:22px 22px;--r4-412:23px;--r4-413:26px 30px;--r4-414:18px;--r4-415:28px;--r4-416:15.5px;--r4-417:92px 60px;--r4-418:18px;--r4-419:50px;--r4-420:20px;--r4-421:18px;--r4-422:34px;--r4-423:row;--r4-424:26px}
.sev-m{display:none}
@container r2page (max-width: 720px){
.r2page>*{--r4-366:-92px;--r4-367:560px;--r4-368:16px 22px 40px;--r4-369:10px;--r4-370:12px;--r4-371:44px;--r4-372:15px;--r4-373:44px 22px 8px;--r4-374:14px;--r4-375:34px;--r4-376:1.0;--r4-377:22px;--r4-378:17px;--r4-379:44px 22px;--r4-380:block;--r4-381:24px;--r4-382:12px;--r4-383:28px;--r4-384:14px;--r4-385:16px;--r4-386:20px;--r4-387:22px;--r4-388:280px;--r4-389:40px 22px 8px;--r4-390:30px;--r4-391:16px;--r4-392:16px;--r4-393:18px;--r4-394:44px 22px 8px;--r4-395:12px;--r4-396:30px;--r4-397:14px;--r4-398:16px;--r4-399:24px;--r4-400:168px;--r4-401:1fr;--r4-402:40px 22px 36px;--r4-403:14px;--r4-404:30px;--r4-405:44px 22px;--r4-406:18px;--r4-407:10px;--r4-408:26px;--r4-409:1fr;--r4-410:10px;--r4-411:18px 18px;--r4-412:21px;--r4-413:20px 18px;--r4-414:12px;--r4-415:24px;--r4-416:14.5px;--r4-417:48px 22px;--r4-418:14px;--r4-419:32px;--r4-420:16px;--r4-421:16px;--r4-422:26px;--r4-423:column;--r4-424:16px}
.r2page .sev-d{display:none}
.r2page .sev-m{display:block}
.r2page .se-pin-ic svg{width:30px;height:30px}
.r2page .se-seam-ic svg{width:22px;height:22px}
.r2page .se-doors .btn{width:100%}
.r2page>*{--r4-425:44px 22px;--r4-426:18px;--r4-427:10px;--r4-428:26px;--r4-429:1fr;--r4-430:10px;--r4-431:18px 18px;--r4-432:21px;--r4-433:20px 18px;--r4-434:12px;--r4-435:24px;--r4-436:14.5px}
.r2page .sl-seam-ic svg{width:22px;height:22px}
.r2page .fs-table tbody td{grid-template-columns:130px 1fr}
.r2page .fs-comp{display:block}
.r2page .fs-comp .fs-comp-head{margin-bottom:14px}
.r2page .fs-mech-row{display:block}
.r2page .fs-mech-row .fs-mech-label{margin-bottom:5px}
}
.r2page{--r4-425:80px 60px;--r4-426:26px;--r4-427:14px;--r4-428:36px;--r4-430:18px;--r4-431:22px 22px;--r4-432:23px;--r4-433:26px 30px;--r4-434:18px;--r4-435:28px;--r4-436:15.5px}
.r2page{--r4-437:-116px;--r4-438:720px;--r4-439:60px 60px 80px;--r4-440:14px;--r4-441:18px;--r4-442:86px;--r4-443:20px;--r4-444:40px 60px 16px;--r4-445:20px;--r4-446:58px;--r4-447:0.99;--r4-448:28px;--r4-449:19px;--r4-450:82px 60px 8px;--r4-451:46px;--r4-452:22px;--r4-453:18px;--r4-454:24px;--r4-455:84px 60px 72px;--r4-456:22px;--r4-457:44px;--r4-458:72px 60px;--r4-459:24px;--r4-461:24px;--r4-462:30px 32px;--r4-463:30px;--r4-464:15.5px;--r4-465:92px 60px;--r4-466:18px;--r4-467:50px;--r4-468:20px;--r4-469:18px;--r4-470:34px;--r4-471:row;--r4-472:26px}
.wxv-m{display:none}
@container r2page (max-width: 720px){
.r2page>*{--r4-437:-92px;--r4-438:560px;--r4-439:16px 22px 40px;--r4-440:10px;--r4-441:12px;--r4-442:38px;--r4-443:15px;--r4-444:44px 22px 8px;--r4-445:14px;--r4-446:34px;--r4-447:1.0;--r4-448:22px;--r4-449:17px;--r4-450:40px 22px 8px;--r4-451:30px;--r4-452:16px;--r4-453:16px;--r4-454:18px;--r4-455:40px 22px 36px;--r4-456:14px;--r4-457:30px;--r4-458:40px 22px;--r4-459:18px;--r4-460:1fr;--r4-461:12px;--r4-462:22px 20px;--r4-463:26px;--r4-464:14.5px;--r4-465:48px 22px;--r4-466:14px;--r4-467:32px;--r4-468:16px;--r4-469:16px;--r4-470:26px;--r4-471:column;--r4-472:16px}
.r2page .wxv-d{display:none}
.r2page .wxv-m{display:block}
.r2page .wx-seam-ic svg{width:22px;height:22px}
.r2page .wx-doors .btn{width:100%}
.r2page .wx-table-wrap{overflow-x:visible}
.r2page .wx-table{min-width:0;display:block;width:100%}
.r2page .wx-table tbody{display:block;width:100%}
.r2page .wx-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.r2page .wx-table tr{display:grid;grid-template-columns:1fr 1fr;gap:5px 22px;padding:13px 0;border-bottom:1px solid var(--rule-soft)}
.r2page .wx-table tbody tr:hover{background:none}
.r2page .wx-table tbody th{grid-column:1 / -1;padding:0 0 7px;font-size:16px}
.r2page .wx-table tbody td{display:grid;grid-template-columns:78px 1fr;align-items:baseline;justify-items:start;column-gap:9px;padding:0;text-align:left;font-size:13.5px;color:var(--ink)}
.r2page .wx-table tbody td::before{content:attr(data-label);white-space:nowrap;align-self:baseline;font-family:var(--mono);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-3)}
.r2page .wx-table tbody td.wx-td-empty{display:none}
.r2page>*{--r4-473:40px 22px;--r4-474:18px;--r4-475:22px 20px;--r4-476:26px;--r4-477:14.5px;--r4-478:30px 22px 4px;--r4-479:22px 0 6px}
.r2page .xwv-d{display:none}
.r2page .xwv-m{display:block}
.r2page .xw-seam-ic svg{width:22px;height:22px}
.r2page .wx-il-3,.r2page .wx-il-2{grid-template-columns:1fr}
.r2page .wxp-head,.r2page .wxp-row{grid-template-columns:1fr 1fr;gap:3px 18px;padding:12px 16px}
.r2page .wxp-head{padding-top:16px;padding-bottom:11px}
.r2page .wxp-head>span[aria-hidden="true"]{display:none}
.r2page .wxp-col{font-size:19px}
.r2page .wxp-fact{grid-column:1 / -1;padding-top:0}
.r2page .wxp-val{font-size:13px;line-height:1.45}
.r2page .wxp-basis{padding:11px 16px}
}
.r2page{--r4-473:80px 60px;--r4-474:24px;--r4-475:30px 32px;--r4-476:30px;--r4-477:15.5px;--r4-478:44px 60px 8px;--r4-479:30px 0 8px;--r4-480:56px 60px 8px;--r4-481:1fr 1fr;--r4-482:60px}
.xwv-m{display:none}
@container r2page (max-width: 720px){
.r2page>*{--r4-480:36px 22px 4px;--r4-481:1fr;--r4-482:22px;--r4-483:1fr}
.r2page .co-node-num{font-size:22px}
.r2page .co-node-name{font-size:30px}
}
@container r2page (max-width: 720px) {
  .r2page .pkv-intro { padding-top: 14px; }
  .r2page .pkv-intro .pk-shell { display: block; min-height: 0; height: auto; }
  .r2page .pkv-intro .pk-shell-body { padding: 26px 22px 32px; }
  .r2page .pkv-intro .pk-intro-h { font-size: 33px; }
  .r2page .pkv-intro .pk-sub { font-size: 14px; margin-bottom: 20px; }
  .r2page .pkv-intro .pk-shell-img { display: none; }
}
.sc-crumbrow .crumb-strip { padding-inline: 0; }
.r2page{--r4-484:64px 60px 8px;--r4-485:14px;--r4-486:40px;--r4-487:16px;--r4-488:17.5px;--r4-489:22px;--r4-490:80px 60px;--r4-491:26px;--r4-492:14px;--r4-493:36px;--r4-495:18px;--r4-496:22px 22px;--r4-497:23px;--r4-498:24px;--r4-499:80px 60px;--r4-500:26px;--r4-501:14px;--r4-502:36px;--r4-504:18px;--r4-505:22px 22px;--r4-506:23px;--r4-507:18px}
@container r2page (max-width: 720px){
.r2page>*{--r4-484:36px 22px 8px;--r4-485:10px;--r4-486:28px;--r4-487:12px;--r4-488:15.5px;--r4-489:16px;--r4-490:44px 22px;--r4-491:18px;--r4-492:10px;--r4-493:26px;--r4-494:1fr;--r4-495:10px;--r4-496:18px 18px;--r4-497:21px;--r4-498:18px;--r4-499:44px 22px;--r4-500:18px;--r4-501:10px;--r4-502:26px;--r4-503:1fr;--r4-504:10px;--r4-505:18px 18px;--r4-506:21px;--r4-507:16px}
.r2page .acd-seq::before{display:none}
.r2page .acd-beat{grid-template-columns:1fr;padding:15px 0}
.r2page .acd-node{display:none}
.r2page .acd-name{font-size:21px}
.r2page .hyt .hyt-row { grid-template-columns: 62px 1fr; gap: 14px; padding: 13px 0 12px; }
.r2page .hyt .hyt-year { font-size: 12px; }
.r2page .hyt .hyt-entry { font-size: 14.5px; }
}
.r2page{--r4-508:78px 60px 54px;--r4-509:16px;--r4-510:70px;--r4-511:19px;--r4-512:18px;--r4-513:42px 60px 6px;--r4-514:18px 60px 4px;--r4-515:8px 60px 64px;--r4-516:18px;--r4-517:40px 60px 8px;--r4-518:64px;--r4-519:64px;--r4-520:18px;--r4-521:24px;--r4-522:18px;--r4-523:72px;--r4-524:18px;--r4-525:72px}
@container r2page (max-width: 720px){
.r2page>*{--r4-508:38px 22px 30px;--r4-509:12px;--r4-510:42px;--r4-511:15px;--r4-512:14px;--r4-513:28px 22px 2px;--r4-514:14px 22px 2px;--r4-515:4px 22px 40px;--r4-516:16px;--r4-517:26px 22px 8px;--r4-518:36px;--r4-519:36px;--r4-520:16px;--r4-521:18px;--r4-522:16px;--r4-523:48px;--r4-524:16px;--r4-525:48px}
.r2page .fq-chips{gap:8px}
.r2page .fq-chips .fq-chip{padding:17px 15px}
.r2page .fq-group-h{font-size:26px;padding-top:20px}
.r2page .pkl-groups{grid-template-columns:1fr;gap:10px}
.r2page .as-table.tpr-table tbody td{grid-template-columns:84px 1fr}
}
.r2page{--r4-526:24px 60px 72px;--r4-527:16.5px;--r4-528:40px 60px 8px;--r4-529:18px 0 28px;--r4-530:72px;--r4-531:120px 60px 0;--r4-532:68px;--r4-533:21px;--r4-534:20px;--r4-535:48px 60px 0;--r4-536:40px 60px 96px;--r4-537:0 40px;--r4-538:26px 0 72px;--r4-539:repeat(2, minmax(0, 1fr));--r4-540:36px;--r4-541:104px 48px 120px;--r4-542:14px;--r4-543:44px;--r4-544:15px;--r4-545:12px 0 0;--r4-546:26px;--r4-547:auto}
@container r2page (max-width: 720px){
.r2page>*{--r4-526:10px 22px 44px;--r4-527:15.5px;--r4-528:26px 22px 4px;--r4-529:8px 0 20px;--r4-530:48px;--r4-531:56px 22px 0;--r4-532:40px;--r4-533:16px;--r4-534:14px;--r4-535:30px 22px 0;--r4-536:26px 22px 60px;--r4-537:0 22px;--r4-538:18px 0 44px;--r4-539:1fr;--r4-540:26px;--r4-541:56px 22px 64px;--r4-542:12px;--r4-543:34px;--r4-544:14.5px;--r4-545:10px 0 0;--r4-546:22px;--r4-547:100%}
.lx-grouphead { padding: 34px 22px 0; }
.lx-grouphead .lx-grouphead-h { font-size: 24px; padding-top: 16px; }
.jx .jx-head { padding: 42px 22px 4px; }
.jx .jx-h1 { font-size: 42px; margin-bottom: 12px; }
.jx .jx-intro { font-size: 15px; }
.jx .jx-roster { padding: 4px 22px 34px; }
.jx .jx-lead { grid-template-columns: 1fr; gap: 18px; padding: 26px 0 36px; }
.jx .jx-lead-ph { height: 240px; }
.jx .jx-lead .jx-hl { font-size: 32px; }
.jx .jx-lead--text { padding: 34px 0 40px; gap: 14px; }
.jx .jx-lead--text .jx-hl { font-size: 36px; }
.jx .jx-row, .jx .jx-row--img { grid-template-columns: 1fr; gap: 16px; padding: 26px 0 28px; }
.jx .jx-row-ph { width: 100%; height: 200px; order: -1; }
.jx .jx-row .jx-hl { font-size: 27px; }
.jx .jx-grid { grid-template-columns: 1fr; gap: 38px; padding: 30px 0 18px; }
.jx .jx-grid--2 { grid-template-columns: 1fr; }
.jx .jx-grid--2 .jx-hl, .jx .jx-grid--2 .jx-gcard--text .jx-hl { font-size: 27px; }
.jx .jx-solo { grid-template-columns: 1fr; gap: 16px; padding: 28px 0; }
.jx .jx-solo-ph { height: 220px; }
.jx .jx-solo .jx-hl { font-size: 28px; }
.jx .jx-solo--text { padding: 32px 0; }
.jx .jx-solo--text .jx-hl { font-size: 30px; }
.jp .jp-hero { margin-top: -92px; }
.jp .jp-hero-ph { height: 440px; }
.jp .jp-headwrap { padding: 36px 22px 0; }
.jp .jp-headwrap--sub { padding-top: 0; }
.jp .jp-h1 { font-size: 37px; }
.jp .jp-stand { font-size: 16.5px; margin-top: 14px; }
.jp .jp-meta { gap: 8px 16px; margin-top: 20px; }
.jp .jp-body { padding: 34px 22px 48px; }
.jp .jp-p { font-size: 16px; line-height: 1.68; }
.jp .jp-sub { font-size: 25px; margin: 34px 0 14px; }
.jp .jp-fig { margin: 30px 0; }
.jp .jp-fig--wide { --jp-bleed: 22px; }
.jp .jp-fig-ph, .jp .jp-fig--wide .jp-fig-ph { height: 240px; }
.jp .jp-fig--wide .jp-figcap { margin-left: var(--jp-bleed); padding-right: var(--jp-bleed); }
.jp .jp-quote { font-size: 25px; margin: 34px 0; }
.jp .jp-author { grid-template-columns: 64px 1fr; padding: 20px; margin-top: 42px; }
.jp .jp-author--noportrait { grid-template-columns: 1fr; }
.jp .jp-author-ph { width: 64px; height: 64px; }
.jp .jp-rel { padding: 42px 22px 46px; margin-top: 0; }
.jp .jp-rel-grid { grid-template-columns: 1fr; gap: 28px; }
}
.site-search-input{min-width:0}
.ac-chwrap{scroll-margin-top:96px}
