@font-face {
  font-family: "Newsreader Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url("/fonts/newsreader-latin-opsz-normal.woff2")
    format("woff2-variations");
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
    U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Newsreader Fallback";
  src: local("Georgia");
  size-adjust: 91.5%;
  ascent-override: 80.9%;
  descent-override: 28.4%;
  line-gap-override: 0%;
}

:root {
  --vn-nav-clear: 5.5rem;
  --vn-hard-shadow-sm: 3px 3px 0 var(--accent);
  --vn-hard-shadow: 5px 5px 0 var(--accent);
  --vn-snap: 100ms steps(1, end);
  --inset-top: env(safe-area-inset-top, 0px);
  --inset-right: env(safe-area-inset-right, 0px);
  --inset-bottom: env(safe-area-inset-bottom, 0px);
  --inset-left: env(safe-area-inset-left, 0px);
}

@property --vn-p {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}

html {
  scroll-padding-top: calc(var(--inset-top) + 5rem);
}

.vn-page {
  --vn-dock-band: 60px;
  container: venue-page / inline-size;
  min-height: 100svh;
  background: var(--surface);
}

.vn-container {
  width: 100%;
  max-width: var(--measure-shell);
  margin-inline: auto;
  padding-inline: max(16px, var(--inset-left)) max(16px, var(--inset-right));
}

.vn-reading {
  max-width: var(--measure-article);
}

.vn-reading a {
  overflow-wrap: anywhere;
}

.vn-skip {
  position: absolute;
  top: 0;
  left: max(16px, var(--inset-left));
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: var(--tap-min);
  max-width: calc(100% - 32px);
  padding-inline: 16px;
  border-radius: var(--radius-control);
  border: 1px solid var(--hairline);
  background: var(--surface);
  color: var(--ink);
  text-decoration: none;
  overflow-wrap: anywhere;
  transform: translateY(-120%);
}

.vn-skip:focus-visible {
  transform: translateY(var(--space-2));
}

.vn-topbar {
  border-bottom: 1px solid var(--hairline);
  background: var(--surface);
}

.vn-topbar-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2) var(--space-3);
  min-height: 4rem;
  padding-block: var(--space-1);
}

.vn-home,
.vn-topbar-nav a,
.vn-footer a {
  display: inline-flex;
  align-items: center;
  min-height: var(--tap-min);
  color: var(--ink-secondary);
  text-decoration: none;
}

.vn-home {
  gap: var(--space-1);
  min-width: 0;
  max-width: 100%;
  color: var(--ink);
  font-weight: var(--weight-semibold);
}

.vn-home span,
.vn-topbar-nav a {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.vn-home img {
  width: 28px;
  height: 28px;
  object-fit: contain;
}

.vn-topbar-nav,
.vn-footer-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 var(--space-3);
}

.vn-topbar-nav {
  font-size: var(--size-footnote);
}

.vn-topbar-nav a[aria-current="page"],
.vn-topbar-nav a:hover,
.vn-footer a:hover {
  color: var(--ink);
}

.vn-topbar-nav a,
.vn-footer-nav > a {
  justify-content: center;
  min-width: var(--tap-min);
}

.vn-venue-header {
  position: sticky;
  top: var(--inset-top);
  z-index: 1;
  border-bottom: 3px solid var(--ink);
}

.vn-venue-header-inner {
  display: grid;
  grid-template-areas: "brand nav dock";
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: center;
  gap: var(--space-1) var(--space-3);
  min-height: calc(var(--vn-dock-band) + var(--space-1) * 2);
  padding-block: var(--space-1);
}

.vn-venue-header-inner .vn-home {
  grid-area: brand;
}

.vn-venue-header-inner .vn-topbar-nav {
  grid-area: nav;
}

.vn-shelf-pass {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-width: 0;
  min-height: var(--tap-min);
  padding: 4px 12px;
  border: 1px solid var(--accent);
  border-radius: var(--radius-control);
  background: var(--accent);
  color: var(--accent-ink);
  text-decoration: none;
  transition:
    background-color var(--dur-fast) ease,
    border-color var(--dur-fast) ease;
}

.vn-shelf-pass::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(115deg, transparent 38%, rgba(255, 255, 255, 0.42) 50%, transparent 62%) no-repeat;
  background-size: 250% 100%;
  background-position: 120% 0;
  pointer-events: none;
}

.vn-page[data-venue-cta-ready] .vn-shelf-pass::after {
  animation: vn-cta-sheen 1.2s ease-out 1.1s 1 backwards;
}

.vn-shelf-pass:hover::after {
  animation: vn-cta-sheen 0.9s ease-out 1 backwards;
}

@keyframes vn-cta-sheen {
  from {
    background-position: 120% 0;
  }

  to {
    background-position: -30% 0;
  }
}

.vn-shelf-pass:hover,
.vn-shelf-pass:focus-visible {
  background: color-mix(in srgb, var(--accent) 88%, var(--ink));
  border-color: color-mix(in srgb, var(--accent) 88%, var(--ink));
}

.vn-shelf-pass:active {
  background: color-mix(in srgb, var(--accent) 80%, var(--accent-ink));
}

.vn-shelf-pass span:first-child {
  font-size: var(--size-callout);
  line-height: var(--leading-snug);
  font-weight: var(--weight-semibold);
}

.vn-shelf-pass span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.vn-shelf-pass span:nth-child(2) {
  color: color-mix(in srgb, var(--accent-ink) 74%, var(--accent));
  font-size: var(--size-footnote);
  font-variant-numeric: tabular-nums;
}

.vn-shelf-pass-note {
  position: absolute;
  top: calc(100% + var(--space-1));
  left: 0;
  z-index: 2;
  width: min(22rem, 80vw);
  padding: var(--space-2);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-control);
  background: var(--surface-raised);
  color: var(--ink-secondary);
  font-size: var(--size-footnote);
  line-height: var(--leading-snug);
  text-align: start;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity var(--dur-fast),
    visibility var(--dur-fast);
}

.vn-shelf-pass:hover .vn-shelf-pass-note,
.vn-shelf-pass:focus-visible .vn-shelf-pass-note {
  opacity: 1;
  visibility: visible;
}

@media (min-width: 46rem) {
  .vn-page[data-venue-cta="docked"] .vn-shelf-pass-note {
    right: 0;
    left: auto;
  }
}

.vn-shelf-store {
  margin-left: 0;
}

.vn-store-link {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-height: var(--vn-dock-band, 60px);
  min-width: 139.66px;
  padding: 10px;
  border-radius: var(--radius-control);
}

.vn-store-link img {
  display: block;
  width: 119.66px;
  height: 40px;
}

.vn-main {
  padding-block: var(--space-4) var(--space-6);
}

.vn-back {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  width: fit-content;
  min-height: var(--tap-min);
  margin-bottom: var(--space-2);
  color: var(--ink-secondary);
  text-decoration: none;
  overflow-wrap: anywhere;
}

.vn-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin: 0 0 var(--space-3);
  color: var(--ink-secondary);
  font-size: var(--size-footnote);
}

.vn-breadcrumb > span {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
  max-width: 100%;
}

.vn-breadcrumb a {
  display: inline-flex;
  align-items: center;
  min-height: var(--tap-min);
  color: var(--ink-secondary);
  overflow-wrap: anywhere;
}

.vn-breadcrumb svg {
  width: 18px;
  height: 18px;
  color: var(--ink-quiet);
}

.vn-hero {
  padding-block: var(--space-3) var(--space-4);
}

.vn-hero-grid {
  display: grid;
  gap: var(--space-4);
}

.vn-back svg,
.vn-search-wrap svg,
.vn-rail-controls svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.vn-title,
.vn-section-title,
.vn-card-title {
  font-family: var(--font-editorial);
  color: var(--ink);
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.vn-title {
  max-width: 16ch;
  margin: 0;
  font-size: var(--size-display);
  font-weight: 500;
  line-height: var(--leading-tight);
  letter-spacing: -0.02em;
}

.vn-hero .vn-title {
  max-width: 100%;
}

.vn-lede {
  max-width: var(--measure-article);
  margin: var(--space-2) 0 0;
  color: var(--ink-secondary);
  font-size: var(--size-body-editorial);
  text-wrap: pretty;
}

.vn-hero-cta-eyebrow {
  margin: var(--space-4) 0 0;
  color: var(--accent);
  font-size: var(--size-callout);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  opacity: calc(1 - var(--vn-cta-p, 0));
  translate: 0 calc(var(--vn-cta-p, 0) * -6px);
}

.vn-hero-cta-sentinel {
  height: 0;
}

.vn-hero-cta {
  position: relative;
  z-index: 2;
  margin: 0 0 var(--space-4);
  min-height: var(--vn-dock-band);
}

.vn-page[data-venue-cta-ready] .vn-hero-cta {
  position: sticky;
  top: calc(var(--inset-top) + var(--space-1));
}

.vn-hero-cta-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1);
  width: fit-content;
  translate: var(--vn-cta-x, 0px) 0;
  will-change: translate;
}

.vn-page[data-venue-cta="docked"] .vn-hero-cta-group {
  flex-wrap: nowrap;
}

.vn-hero-cta-eyebrow,
.vn-hero-cta-group > a {
  animation: vn-cta-rise var(--dur-reveal) var(--ease-spring) backwards;
}

.vn-hero-cta-group > a:first-child {
  animation-delay: 80ms;
}

.vn-hero-cta-group > a:last-child {
  animation-delay: 160ms;
}

@keyframes vn-cta-rise {
  from {
    opacity: 0;
    translate: 0 12px;
  }
}

.vn-hero-figure {
  margin: 0;
  max-width: 34rem;
}

.vn-hero-figure img,
.vn-evidence-card img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius-card);
}

.vn-hero-figure figcaption,
.vn-evidence-card figcaption {
  margin-top: var(--space-1);
  color: var(--ink-secondary);
  font-size: var(--size-caption);
}

.vn-section {
  padding-block: var(--space-5);
  border-bottom: 1px solid var(--hairline);
  scroll-margin-top: calc(var(--inset-top) + 5rem);
}

.vn-page:has(.vn-venue-header) .vn-section {
  border-bottom: 0;
  scroll-margin-top: calc(var(--inset-top) + 9rem);
}

.vn-page:has(.vn-venue-header) {
  font-weight: 500;
  line-height: 1.55;
}

.vn-page:has(.vn-venue-header) .vn-container {
  padding-inline:
    max(clamp(var(--space-3), 3vw, var(--space-5)), var(--inset-left))
    max(clamp(var(--space-3), 3vw, var(--space-5)), var(--inset-right));
}

.vn-page:has(.vn-venue-header) .vn-title {
  font-size: clamp(2.25rem, 1.75rem + 2.4vw, 3.5rem);
}

.vn-page:has(.vn-venue-header) .vn-lede {
  font-size: clamp(1.125rem, 1rem + 0.6vw, 1.375rem);
}

.vn-page:has(.vn-venue-header) .vn-section-title,
.vn-page:has(.vn-venue-header) .vn-collection-block > .vn-card-title {
  font-size: clamp(1.75rem, 1.25rem + 1.6vw, 2.5rem);
}

.vn-page:has(.vn-venue-header) .vn-section:not(.vn-flow),
.vn-page:has(.vn-venue-header) .vn-flow-static {
  padding-block: clamp(var(--space-6), 6vw, 5rem);
}

.vn-page:has(.vn-venue-header) .vn-close .vn-cta {
  margin-top: var(--space-5);
}

.vn-page:has(.vn-venue-header) .vn-section.vn-where {
  max-width: var(--measure-article);
  padding-top: 0;
}

.vn-section-title {
  margin: 0 0 var(--space-3);
  font-size: var(--size-section);
  font-weight: 500;
  line-height: var(--leading-tight);
}

.vn-section p,
.vn-section li {
  text-wrap: pretty;
}

.vn-section p {
  margin: 0 0 var(--space-2);
}

.vn-collection-strengths,
.vn-work-qualification,
.vn-qualification,
.vn-bootstrap-status,
.vn-noscript {
  color: var(--ink-secondary);
  font-size: var(--size-callout);
}

.vn-experience-grid {
  display: grid;
  gap: var(--space-4);
  align-items: start;
}

.vn-experience-copy {
  min-width: 0;
  max-width: var(--measure-article);
}

.vn-flow-phones {
  display: grid;
  gap: var(--space-4);
  min-width: 0;
}

.vn-flow-static .vn-flow-phones {
  display: contents;
}

.vn-flow-static .vn-photo-demo {
  order: 1;
}

.vn-flow-static .vn-experience-copy {
  order: 2;
}

.vn-flow-static .vn-walks {
  order: 3;
}

.vn-collection-block {
  text-align: start;
}

.vn-collection-block > .vn-card-title,
.vn-collection-block > p,
.vn-works > .vn-work-qualification {
  max-width: var(--measure-article);
  margin-inline: 0;
}

.vn-collection-block > .vn-card-title {
  margin-bottom: var(--space-3);
  font-size: var(--size-section);
}

.vn-works {
  margin-top: var(--space-4);
}

.vn-works > .vn-work-qualification {
  margin: var(--space-4) 0 0;
  font-size: var(--size-footnote);
}

.vn-photo-demo {
  display: grid;
  justify-items: start;
  gap: var(--space-2);
  min-width: 0;
  margin: 0;
}

.vn-photo-demo-label {
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: var(--tap-min);
  margin: 0;
  color: var(--ink-secondary);
  font-size: var(--size-footnote);
  font-weight: 600;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.vn-photo-demo-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  width: min(100%, 16rem);
}

.vn-photo-demo-phone {
  width: min(100%, 16rem);
  padding: 4px;
  border: 1px solid var(--hairline);
  border-radius: calc(var(--radius-card) + var(--space-1));
  background: var(--surface);
  box-shadow: var(--elev-2);
}

.vn-photo-demo-screen {
  --pl-u: calc(100cqi / 302);
  --pl-u-type: max(var(--pl-u), calc(10px / 11));
  --pl-space-1: calc(8 * var(--pl-u));
  --pl-space-2: calc(12 * var(--pl-u));
  --pl-space-3: calc(16 * var(--pl-u));
  --pl-radius-card: calc(18 * var(--pl-u));
  --pl-radius-nested: calc(12 * var(--pl-u));
  position: relative;
  isolation: isolate;
  container-type: inline-size;
  overflow: hidden;
  aspect-ratio: 302 / 523;
  min-width: 0;
  border-radius: var(--radius-card);
  background: hsl(0 0% 5%);
}

.vn-photo-demo-camera,
.vn-photo-demo-result {
  position: absolute;
  inset: 0;
  transition: opacity 300ms cubic-bezier(0.2, 0.9, 0.3, 1);
}

.vn-photo-demo-camera {
  opacity: 0;
}

.vn-photo-demo-result {
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: var(--pl-space-1);
  padding: calc(32 * var(--pl-u)) var(--pl-space-2) calc(14 * var(--pl-u));
  background: var(--surface);
  opacity: 1;
}

.vn-photo-demo[data-state="camera"] .vn-photo-demo-camera,
.vn-photo-demo[data-state="capture"] .vn-photo-demo-camera {
  opacity: 1;
}

.vn-photo-demo[data-state="camera"] .vn-photo-demo-result,
.vn-photo-demo[data-state="capture"] .vn-photo-demo-result {
  opacity: 0;
}

.vn-photo-demo-shot {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.vn-photo-demo-reticle {
  position: absolute;
  top: 44%;
  left: 50%;
  z-index: 1;
  width: 46%;
  aspect-ratio: 1;
  border: 2px solid hsl(0 0% 100% / 0.92);
  border-radius: calc(14 * var(--pl-u));
  filter: drop-shadow(0 1px 3px rgb(0 0 0 / 0.45));
  -webkit-mask:
    linear-gradient(#000 0 0) top left / calc(22 * var(--pl-u))
      calc(22 * var(--pl-u)) no-repeat,
    linear-gradient(#000 0 0) top right / calc(22 * var(--pl-u))
      calc(22 * var(--pl-u)) no-repeat,
    linear-gradient(#000 0 0) bottom left / calc(22 * var(--pl-u))
      calc(22 * var(--pl-u)) no-repeat,
    linear-gradient(#000 0 0) bottom right / calc(22 * var(--pl-u))
      calc(22 * var(--pl-u)) no-repeat;
  mask:
    linear-gradient(#000 0 0) top left / calc(22 * var(--pl-u))
      calc(22 * var(--pl-u)) no-repeat,
    linear-gradient(#000 0 0) top right / calc(22 * var(--pl-u))
      calc(22 * var(--pl-u)) no-repeat,
    linear-gradient(#000 0 0) bottom left / calc(22 * var(--pl-u))
      calc(22 * var(--pl-u)) no-repeat,
    linear-gradient(#000 0 0) bottom right / calc(22 * var(--pl-u))
      calc(22 * var(--pl-u)) no-repeat;
  pointer-events: none;
  transform: translate(-50%, -50%);
}

.vn-photo-demo-scan {
  position: absolute;
  z-index: 2;
  top: -34%;
  right: 8%;
  left: 8%;
  height: 30%;
  background: linear-gradient(
    180deg,
    transparent,
    hsl(0 0% 100% / 0.05) 60%,
    hsl(0 0% 100% / 0.14)
  );
  opacity: 0;
  pointer-events: none;
}

.vn-photo-demo-chrome {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: calc(26 * var(--pl-u)) calc(14 * var(--pl-u)) calc(22 * var(--pl-u));
  pointer-events: none;
}

.vn-photo-demo-chrome::before,
.vn-photo-demo-chrome::after {
  content: "";
  position: absolute;
  right: 0;
  left: 0;
  z-index: 0;
  pointer-events: none;
}

.vn-photo-demo-chrome::before {
  top: 0;
  height: 22%;
  background: linear-gradient(to bottom, rgb(0 0 0 / 0.45), transparent);
}

.vn-photo-demo-chrome::after {
  bottom: 0;
  height: 34%;
  background: linear-gradient(
    to top,
    rgb(0 0 0 / 0.6),
    rgb(0 0 0 / 0.35) 55%,
    transparent
  );
}

.vn-photo-demo-chrome-top,
.vn-photo-demo-chrome-bottom {
  position: relative;
  z-index: 1;
}

.vn-photo-demo-chrome-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(6 * var(--pl-u));
}

.vn-photo-demo-chrome-bottom {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: calc(6 * var(--pl-u));
}

.vn-photo-demo-chrome-bottom > .vn-photo-demo-glyph {
  justify-self: start;
}

.vn-photo-demo-glyph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(34 * var(--pl-u));
  height: calc(34 * var(--pl-u));
  border-radius: 50%;
  border: 1px solid var(--hairline);
  background: color-mix(in srgb, var(--surface-raised) 82%, transparent);
  -webkit-backdrop-filter: blur(calc(16 * var(--pl-u))) saturate(1.4);
  backdrop-filter: blur(calc(16 * var(--pl-u))) saturate(1.4);
  color: var(--ink);
}

.vn-photo-demo-glyph svg {
  width: calc(18 * var(--pl-u));
  height: calc(18 * var(--pl-u));
}

.vn-photo-demo-brand {
  display: inline-flex;
  align-items: center;
  gap: calc(5 * var(--pl-u));
  color: var(--ink);
  font-size: calc(19 * var(--pl-u));
  font-weight: var(--weight-semibold);
  letter-spacing: 0.02em;
  text-shadow: 0 1px 8px rgb(0 0 0 / 0.55);
}

.vn-photo-demo-brand img {
  width: calc(17 * var(--pl-u));
  height: calc(17 * var(--pl-u));
  object-fit: contain;
}

.vn-photo-demo-shutter {
  grid-column: 2;
  width: calc(54 * var(--pl-u));
  height: calc(54 * var(--pl-u));
  border-radius: 50%;
  border: calc(3 * var(--pl-u)) solid var(--surface);
  background: var(--accent);
  box-shadow: 0 0 0 calc(1.5 * var(--pl-u)) var(--accent);
}

.vn-photo-demo-flash {
  position: absolute;
  inset: 0;
  z-index: 4;
  background: hsl(0 0% 100%);
  opacity: 0;
  pointer-events: none;
}

.vn-photo-demo[data-state="camera"] .vn-photo-demo-scan {
  animation: vn-photo-demo-scan 2.1s cubic-bezier(0.45, 0, 0.55, 1) infinite;
  will-change: transform, opacity;
}

.vn-photo-demo[data-state="capture"] .vn-photo-demo-flash {
  animation: vn-photo-demo-flash 400ms ease-out 1 both;
}

.vn-photo-demo-thread {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.vn-photo-demo-turn {
  transition: transform 2.4s cubic-bezier(0.2, 0.9, 0.3, 1);
}

.vn-photo-demo[data-state="camera"] .vn-photo-demo-turn {
  transition: none;
}

.vn-photo-demo[data-scrolled] .vn-photo-demo-turn {
  transform: translateY(calc(-1 * var(--vn-demo-scroll, 0px)));
}

.vn-photo-demo-card {
  display: grid;
  gap: calc(4 * var(--pl-u));
  padding: var(--pl-space-3);
  border: 1px solid var(--hairline);
  border-radius: var(--pl-radius-card);
  background: var(--surface-raised);
  text-align: start;
}

.vn-photo-demo-media {
  display: block;
  width: 100%;
  height: calc(0.42 * 523 * var(--pl-u));
  object-fit: cover;
  object-position: 50% 60%;
  border-radius: var(--pl-radius-nested);
}

.vn-photo-demo-tier {
  display: flex;
  align-items: center;
  gap: var(--pl-space-1);
  margin: 0;
  color: var(--ink-secondary);
  font-size: calc(12 * var(--pl-u-type));
  letter-spacing: var(--tracking-caps);
  line-height: var(--leading-snug);
  text-transform: uppercase;
}

.vn-photo-demo-dot {
  flex: none;
  width: calc(6 * var(--pl-u));
  height: calc(6 * var(--pl-u));
  border-radius: var(--radius-pill);
  background: var(--tier-high);
}

.vn-photo-demo-name {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-editorial);
  font-size: calc(28 * var(--pl-u-type));
  font-weight: 550;
  line-height: var(--leading-tight);
}

.vn-photo-demo-facts {
  display: grid;
  grid-template-columns: repeat(
    auto-fit,
    minmax(min(calc(136 * var(--pl-u)), 100%), 1fr)
  );
  gap: calc(6 * var(--pl-u)) var(--pl-space-2);
  margin: calc(4 * var(--pl-u)) 0 0;
}

.vn-photo-demo-facts dt {
  color: var(--ink-quiet);
  font-size: calc(12 * var(--pl-u-type));
  letter-spacing: var(--tracking-caps);
  line-height: var(--leading-snug);
  text-transform: uppercase;
}

.vn-photo-demo-facts dd {
  margin: 0;
  color: var(--ink);
  font-size: calc(13 * var(--pl-u-type));
  line-height: var(--leading-snug);
  overflow-wrap: anywhere;
}

.vn-photo-demo-lead {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  margin: calc(4 * var(--pl-u)) 0 0;
  color: var(--ink);
  font-size: calc(15 * var(--pl-u-type));
  line-height: var(--leading-snug);
}

.vn-photo-demo-more {
  justify-self: start;
  margin: calc(2 * var(--pl-u)) 0 0;
  color: var(--ink);
  font-size: calc(15 * var(--pl-u-type));
  font-weight: var(--weight-semibold);
  line-height: var(--leading-snug);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.vn-photo-demo-composer {
  display: flex;
  flex: none;
  align-items: center;
  gap: var(--pl-space-1);
  margin-top: var(--pl-space-1);
}

.vn-photo-demo-composer-glyph {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: calc(44 * var(--pl-u));
  height: calc(44 * var(--pl-u));
  color: var(--ink-quiet);
}

.vn-photo-demo-composer-glyph svg {
  width: calc(20 * var(--pl-u));
  height: calc(20 * var(--pl-u));
}

.vn-photo-demo-composer-field {
  flex: 1 1 auto;
  height: calc(44 * var(--pl-u));
  border: 1px solid var(--hairline);
  border-radius: var(--radius-pill);
  background: var(--surface-raised);
}

.vn-photo-demo-fallback {
  display: grid;
  align-content: center;
  gap: var(--space-1);
  width: min(100%, 14rem);
  min-height: 18rem;
  padding: var(--space-3);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-card);
  background: var(--surface-raised);
  color: var(--ink-secondary);
  font-size: var(--size-footnote);
}

.vn-photo-demo-fallback span:first-child {
  color: var(--ink);
  font-weight: var(--weight-semibold);
}

@keyframes vn-photo-demo-scan {
  0% {
    opacity: 0;
    transform: translateY(0);
  }

  10% {
    opacity: 1;
  }

  58% {
    opacity: 1;
    transform: translateY(440%);
  }

  66%,
  100% {
    opacity: 0;
    transform: translateY(440%);
  }
}

@keyframes vn-photo-demo-flash {
  0% {
    opacity: 0;
  }

  40% {
    opacity: 0.85;
  }

  100% {
    opacity: 0;
  }
}

.vn-works-heading {
  display: flex;
  align-items: start;
  justify-content: flex-end;
  min-height: var(--tap-min);
}

.vn-rail-controls {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-1);
  width: auto;
}

.vn-control,
.vn-filter-control {
  border: 1px solid var(--ink-secondary);
  border-radius: var(--radius-control);
  background: transparent;
  color: var(--ink);
  font: inherit;
  transition: background-color var(--dur-fast) ease;
}

.vn-control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--tap-min);
  min-height: var(--tap-min);
  padding-inline: var(--space-2);
}

.vn-control:hover,
.vn-filter-control:hover {
  background: color-mix(in srgb, var(--ink) 8%, transparent);
}

.vn-control:active,
.vn-filter-control:active {
  background: color-mix(in srgb, var(--ink) 14%, transparent);
}

.vn-control[aria-disabled="true"],
.vn-filter-control:disabled,
.vn-shelf-pass[aria-disabled="true"] {
  border-color: var(--ink-quiet);
  background: transparent;
  color: var(--ink-quiet);
  opacity: 1;
  cursor: default;
}

.vn-rail-controls .vn-control[aria-disabled="true"] {
  transform: none;
  box-shadow: none;
}

.vn-control:focus-visible,
.vn-filter-control:focus-visible,
.vn-shelf-pass:focus-visible,
.vn-store-link:focus-visible,
.vn-tile-link:focus-visible,
.vn-back:focus-visible,
.vn-map-place:focus-visible,
.vn-work-card .vn-work-link:focus-visible,
.vn-cta-button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.vn-page:has(.vn-venue-header) .vn-control:focus-visible,
.vn-page:has(.vn-venue-header) .vn-shelf-pass:focus-visible,
.vn-page:has(.vn-venue-header) .vn-store-link:focus-visible,
.vn-page:has(.vn-venue-header) .vn-back:focus-visible,
.vn-page:has(.vn-venue-header) .vn-map-place:focus-visible,
.vn-page:has(.vn-venue-header) .vn-work-link:focus-visible {
  outline-width: 3px;
}

.vn-works-list {
  display: flex;
  gap: var(--space-3);
  margin: 0;
  padding: var(--space-1) var(--space-1) var(--space-2) 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x proximity;
  scrollbar-width: auto;
  list-style: none;
}

.vn-work-card {
  display: flex;
  flex: 0 0 88%;
  min-width: 0;
  border-top: 1px solid var(--hairline);
  scroll-snap-align: start;
  text-align: start;
}

.vn-work-card article {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: var(--space-3) 0 0;
}

.vn-work-card article,
.vn-work-card p {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.vn-card-title {
  margin: 0;
  font-size: var(--size-subsection);
  font-weight: 500;
  line-height: var(--leading-snug);
}

.vn-work-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 var(--space-1);
  margin-top: 0.25rem;
  color: var(--ink-secondary);
  font-size: var(--size-footnote);
  line-height: var(--leading-snug);
}

.vn-work-card .vn-work-byline {
  margin: 0;
}

.vn-work-facts {
  position: relative;
  display: flex;
  gap: var(--space-1);
  min-width: 0;
  max-width: 100%;
  margin: 0;
}

.vn-work-facts::before {
  content: "\00b7";
}

.vn-work-facts dt {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.vn-work-facts dd {
  min-width: 0;
  max-width: 100%;
  margin: 0;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.vn-work-card .vn-work-summary {
  margin: var(--space-2) 0 var(--space-4);
  color: var(--ink);
  font-size: var(--size-callout);
}

.vn-work-card .vn-work-link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: var(--space-1);
  width: fit-content;
  max-width: 100%;
  min-height: var(--tap-min);
  margin-top: auto;
  color: var(--ink);
  font-size: var(--size-callout);
  font-weight: var(--weight-semibold);
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: color var(--dur-fast) ease;
}

.vn-work-card .vn-work-link svg {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  color: var(--ink-secondary);
  transition:
    color var(--vn-snap),
    transform var(--vn-snap);
}

.vn-work-card .vn-work-link:hover,
.vn-work-card .vn-work-link:hover svg {
  color: var(--brand-purple-lift);
}

.vn-work-card .vn-work-link:hover svg {
  transform: translateX(2px);
}

.vn-evidence-list {
  display: grid;
  gap: var(--space-3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.vn-evidence-card {
  padding: var(--space-3);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-card);
}

.vn-evidence-card figure {
  margin: var(--space-3) 0 0;
}

.vn-evidence-meta {
  display: grid;
  gap: var(--space-1);
  margin: var(--space-3) 0 0;
}

.vn-evidence-meta div {
  display: grid;
  grid-template-columns: minmax(7rem, max-content) minmax(0, 1fr);
  gap: var(--space-2);
}

.vn-evidence-meta dt {
  color: var(--ink-secondary);
}

.vn-evidence-meta dd {
  margin: 0;
}

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

.vn-steps li {
  position: relative;
  display: grid;
  grid-template-columns: var(--vn-step-disc) minmax(0, 1fr);
  column-gap: var(--space-3);
  counter-increment: vn-step;
}

.vn-steps li::before {
  content: counter(vn-step);
  grid-row: 1 / span 2;
  grid-column: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--vn-step-disc);
  height: var(--vn-step-disc);
  border-radius: 50%;
  background: var(--accent);
  color: var(--accent-ink);
  font-size: var(--size-body-editorial);
  font-weight: var(--weight-semibold);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.vn-steps li::after {
  content: "";
  position: absolute;
  top: var(--vn-step-disc);
  bottom: calc(-1 * var(--vn-step-gap));
  left: calc(var(--vn-step-disc) / 2);
  border-left: 1px solid var(--hairline);
}

.vn-steps li:last-child::after {
  display: none;
}

.vn-steps strong,
.vn-steps span {
  grid-column: 2;
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.vn-steps strong {
  padding-top: calc(
    (var(--vn-step-disc) - var(--size-subsection) * var(--leading-snug)) / 2
  );
  color: var(--ink);
  font-size: var(--size-subsection);
  font-weight: var(--weight-semibold);
  letter-spacing: -0.01em;
  line-height: var(--leading-snug);
}

.vn-steps span {
  margin-top: 0.25rem;
  color: var(--ink-secondary);
}

.vn-cta {
  display: grid;
  justify-items: start;
  gap: var(--space-1);
  margin-top: var(--space-4);
}

.vn-cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--tap-min);
  padding: var(--space-1) var(--space-4);
  border-radius: var(--radius-control);
  background: var(--accent);
  color: var(--accent-ink);
  font-weight: var(--weight-semibold);
  text-decoration: none;
  transition: background-color var(--dur-fast) ease;
}

.vn-cta-button:hover,
.vn-cta-button:focus-visible {
  background: color-mix(in srgb, var(--accent) 88%, var(--ink));
}

.vn-cta-button:active {
  background: color-mix(in srgb, var(--accent) 80%, var(--accent-ink));
}

.vn-section .vn-cta-note {
  margin: 0;
  color: var(--ink-secondary);
  font-size: var(--size-caption);
  line-height: var(--leading-snug);
}

.vn-close .vn-section-title {
  max-width: var(--measure-article);
}

.vn-map-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
  margin-top: var(--space-3);
}

.vn-map-photo {
  position: relative;
  min-width: 0;
  margin: 0;
  aspect-ratio: 1;
  border-radius: var(--radius-control);
  background: var(--surface-raised);
  overflow: hidden;
}

.vn-map-photo-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.vn-map-photo-credit {
  position: absolute;
  inset: auto 0 0 0;
  padding: var(--space-1) var(--space-2);
  background: rgb(0 0 0 / 0.55);
  color: #fff;
  font-size: var(--size-caption);
  line-height: var(--leading-snug);
  overflow-wrap: anywhere;
}

.vn-map-photo-credit a {
  color: inherit;
  text-decoration-line: underline;
  text-underline-offset: 2px;
}

.vn-map-place {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: var(--space-2);
  align-items: start;
}

.vn-map-place > svg {
  width: 24px;
  height: 24px;
  color: var(--ink-secondary);
}

a.vn-map-place {
  width: fit-content;
  color: inherit;
  text-decoration: none;
}

a.vn-map-place:hover .vn-map-name,
a.vn-map-place:focus-visible .vn-map-name {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.vn-map-name,
.vn-map-local-name,
.vn-map-locality {
  margin: 0;
}

.vn-map-name {
  color: var(--ink);
  font-weight: var(--weight-semibold);
}

.vn-map-local-name,
.vn-map-locality {
  color: var(--ink-secondary);
}

.vn-map-frame {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  aspect-ratio: 1;
  border-radius: var(--radius-control);
  overflow: hidden;
}

.vn-map-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0 var(--space-3);
  margin-top: var(--space-1);
}

.vn-map-privacy {
  display: inline-flex;
  align-items: center;
  min-height: var(--tap-min);
  margin-left: auto;
  color: var(--ink-secondary);
  font-size: var(--size-caption);
  text-decoration-line: underline;
  text-decoration-color: var(--ink-tertiary);
  text-underline-offset: 2px;
  overflow-wrap: anywhere;
}

.vn-map-privacy:hover {
  color: var(--ink);
  text-decoration-color: var(--ink-secondary);
}

.vn-map-frame iframe {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 100%;
  border: 0;
}

.vn-section .vn-fine-print {
  margin: var(--space-3) 0 0;
  color: var(--ink-quiet);
  font-size: var(--size-caption);
  line-height: var(--leading-snug);
}

.vn-section .vn-map-foot .vn-fine-print {
  flex: 1 1 16rem;
  margin: 0;
}

.vn-walks {
  display: grid;
  justify-items: start;
  gap: var(--space-2);
  min-width: 0;
  margin: 0;
}

.vn-walks-screen {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--pl-u));
  padding: calc(32 * var(--pl-u)) var(--pl-space-2) calc(12 * var(--pl-u));
  overflow: hidden;
  background: var(--surface);
  text-align: start;
}

.vn-walks-screen .sc-sheet {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.vn-walks-screen .sc-panel-t {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-editorial);
  font-size: calc(19 * var(--pl-u-type));
  font-weight: var(--weight-semibold);
  line-height: var(--leading-snug);
}

.vn-walks-screen .sc-plus {
  position: relative;
  width: calc(20 * var(--pl-u));
  height: calc(20 * var(--pl-u));
}

.vn-walks-screen .sc-plus::before,
.vn-walks-screen .sc-plus::after {
  content: "";
  position: absolute;
  inset: 50% 15%;
  border-top: 1.5px solid var(--ink-secondary);
}

.vn-walks-screen .sc-plus::after {
  transform: rotate(90deg);
}

.vn-walks-screen .sc-list {
  display: grid;
  align-content: start;
  gap: calc(8 * var(--pl-u));
  margin: 0;
  padding: 0;
  list-style: none;
}

.vn-walks-screen .sc-group {
  margin: calc(2 * var(--pl-u)) 0 calc(-2 * var(--pl-u));
  color: var(--ink-secondary);
  font-size: calc(12 * var(--pl-u-type));
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}

.vn-walks-screen .sc-item {
  display: flex;
  align-items: center;
  gap: calc(9 * var(--pl-u));
  padding: calc(4 * var(--pl-u)) calc(7 * var(--pl-u));
  border: 1px solid var(--hairline);
  border-radius: var(--pl-radius-card);
  background: var(--surface-raised);
}

.vn-walks-screen .sc-thumb {
  flex: none;
  width: calc(40 * var(--pl-u));
  height: calc(40 * var(--pl-u));
  border: 1px solid var(--hairline);
  border-radius: var(--pl-radius-nested);
  object-fit: cover;
}

.vn-walks-screen .sc-imain {
  display: grid;
  flex: 1;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "title meta"
    "sub meta";
  column-gap: calc(6 * var(--pl-u));
  align-items: baseline;
  min-width: 0;
}

.vn-walks-screen .sc-item-t {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  grid-area: title;
  overflow: hidden;
  color: var(--ink);
  font-size: calc(14 * var(--pl-u-type));
  font-weight: var(--weight-semibold);
  line-height: var(--leading-tight);
  overflow-wrap: anywhere;
}

.vn-walks-screen .sc-item-s {
  grid-area: sub;
  overflow: hidden;
  color: var(--ink-secondary);
  font-size: calc(12 * var(--pl-u-type));
  line-height: var(--leading-snug);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vn-walks-screen .sc-imeta {
  grid-area: meta;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  align-self: baseline;
  gap: calc(4 * var(--pl-u));
}

.vn-walks-screen .sc-itime {
  color: var(--ink-secondary);
  font-size: calc(12 * var(--pl-u-type));
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.vn-walks-screen .sc-icount {
  min-width: calc(17 * var(--pl-u));
  padding: 0 calc(5 * var(--pl-u));
  border: 1px solid var(--hairline);
  border-radius: var(--radius-pill);
  color: var(--ink-secondary);
  font-size: calc(12 * var(--pl-u-type));
  text-align: center;
}

@media (max-width: 45.99rem) {
  .vn-venue-header-inner {
    grid-template-areas: "brand nav";
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 0;
    padding-bottom: calc(var(--vn-dock-band) + var(--space-1) * 2);
  }

  .vn-page[data-venue-cta-ready] .vn-hero-cta {
    top: calc(var(--inset-top) + var(--space-1) * 2 + var(--tap-min));
  }
}

@container venue-page (max-width: 21.5em) {
  .vn-venue-header {
    position: static;
  }

  .vn-venue-header-inner {
    grid-template-areas:
      "brand"
      "nav";
    grid-template-columns: minmax(0, 1fr);
    padding-bottom: var(--space-1);
  }

  .vn-venue-header-inner .vn-topbar-nav {
    width: 100%;
  }

  .vn-page[data-venue-cta-ready] .vn-hero-cta {
    position: static;
  }

  .vn-venue-header-inner .vn-topbar-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vn-shelf-pass-note {
    right: auto;
    left: 0;
    width: 100%;
  }

  .vn-page:has(.vn-venue-header) .vn-section {
    scroll-margin-top: var(--inset-top);
  }
}

@container venue-page (max-width: 18em) {
  .vn-shelf-store {
    width: min(100%, 139.66px);
    min-width: 0;
    max-width: 100%;
  }

  .vn-shelf-store img {
    max-width: 100%;
    height: auto;
  }

  .vn-steps li {
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--space-1);
  }

  .vn-steps strong,
  .vn-steps span {
    grid-column: 1;
  }

  .vn-steps strong {
    padding-top: 0;
  }
}

.vn-footer {
  padding-block: var(--space-3) max(var(--space-5), var(--inset-bottom));
  border-top: 1px solid var(--hairline);
  color: var(--ink-secondary);
  font-size: var(--size-footnote);
}

.vn-site-footer {
  padding-block: var(--space-4) max(var(--space-4), var(--inset-bottom));
  border-top: 0;
  color: var(--ink-tertiary);
}

.vn-site-footer-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-1);
  text-align: center;
}

.vn-site-footer-brand {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  color: var(--ink-secondary);
}

.vn-site-footer-brand img {
  width: 18px;
  height: 18px;
  object-fit: contain;
}

.vn-site-footer-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: calc(var(--space-1) + 20px) var(--space-3);
}

.vn-site-footer-nav a {
  min-width: 0;
  margin: -10px -6px;
  padding: 10px 6px;
  color: var(--ink-quiet);
}

.vn-site-footer-nav a:hover {
  color: var(--ink-secondary);
}

.vn-site-footer-copy {
  margin: 0;
  color: var(--ink-quiet);
}

.vn-site-footer-badge {
  display: block;
  margin-top: var(--space-2);
  line-height: 0;
}

.vn-site-footer-badge img {
  display: block;
  width: 119.66px;
  height: 40px;
}

.vn-hub-hero {
  max-width: var(--measure-article);
  padding-block: var(--space-5);
}

.vn-hub-hero .vn-title {
  max-width: 18ch;
}

.vn-filter-form {
  container: venue-filters / inline-size;
  padding-block: var(--space-4);
  border-block: 1px solid var(--hairline);
}

.vn-filter-form fieldset {
  display: grid;
  gap: var(--space-3);
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.vn-filter-form legend {
  margin-bottom: var(--space-2);
  color: var(--ink);
  font-weight: var(--weight-semibold);
}

.vn-field {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
}

.vn-field label {
  color: var(--ink-secondary);
  font-size: var(--size-footnote);
  font-weight: var(--weight-semibold);
}

.vn-search-wrap {
  position: relative;
  min-width: 0;
}

.vn-search-wrap svg {
  position: absolute;
  top: 50%;
  left: var(--space-2);
  color: var(--ink-secondary);
  transform: translateY(-50%);
  pointer-events: none;
}

.vn-filter-control {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: var(--tap-min);
  padding-inline: var(--space-2);
  font-size: 1rem;
}

.vn-search-wrap .vn-filter-control {
  padding-left: 2.5rem;
}

.vn-filter-reset {
  align-self: end;
  width: 100%;
  min-height: var(--tap-min);
}

.vn-bootstrap-status,
.vn-filter-status,
.vn-result-count {
  min-height: 3.2em;
  margin: 0;
  padding-block: var(--space-1);
}

.vn-filter-status {
  min-height: 1px;
  padding: 0;
}

.vn-hub-results {
  padding-block: var(--space-4) var(--space-6);
}

.vn-result-count {
  color: var(--ink-secondary);
}

.vn-tile-list {
  display: grid;
  gap: var(--space-3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.vn-tile-list > li {
  min-width: 0;
}

.vn-tile-link {
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-3);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-card);
  color: var(--ink);
  text-decoration: none;
  transition: background-color var(--dur-fast) ease;
}

.vn-tile-link:hover {
  background: color-mix(in srgb, var(--ink) 8%, transparent);
}

.vn-tile-locality,
.vn-tile-summary {
  margin: 0;
  color: var(--ink-secondary);
  overflow-wrap: anywhere;
}

.vn-tile-summary {
  flex: 1 1 auto;
}

.vn-tile-types {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1) var(--space-2);
  margin: 0;
  padding-top: var(--space-1);
  border-top: 1px solid var(--hairline);
  color: var(--ink-secondary);
  font-size: var(--size-footnote);
  list-style: none;
}

.vn-empty {
  max-width: var(--measure-article);
  padding-block: var(--space-5);
}

.vn-empty h2 {
  margin: 0 0 var(--space-1);
  font-family: var(--font-editorial);
  font-size: var(--size-section);
  font-weight: 500;
}

.vn-empty p {
  margin: 0;
  color: var(--ink-secondary);
}

.vn-empty a {
  display: inline-flex;
  align-items: center;
  min-height: var(--tap-min);
}

.vn-hub-footer-store {
  margin-left: auto;
}

@media (min-width: 30rem) {
  .vn-container {
    padding-inline: max(24px, var(--inset-left)) max(24px, var(--inset-right));
  }

  .vn-tile-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vn-skip {
    left: max(24px, var(--inset-left));
    max-width: calc(100% - 48px);
  }
}

@media (min-width: 46rem) {
  .vn-main {
    padding-top: var(--space-5);
  }

  .vn-section {
    padding-block: var(--space-6);
  }

  .vn-hero-grid:has(.vn-hero-figure) {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.8fr);
    align-items: center;
  }

  .vn-hero-grid:has(.vn-hero-figure) .vn-title {
    max-width: 16ch;
  }

  .vn-hero-grid:not(:has(.vn-hero-figure)) .vn-title {
    max-width: 23ch;
  }

  .vn-experience-grid {
    grid-template-columns: minmax(14rem, 16rem) minmax(0, 1fr);
    align-items: center;
    gap: var(--space-5);
  }

  .vn-site-footer-badge {
    position: absolute;
    right: 0;
    bottom: 0;
    margin-top: 0;
  }

  .vn-works-heading {
    display: none;
    min-height: 0;
  }

  .vn-rail-controls {
    display: none;
  }

  .vn-works-list {
    display: grid;
    justify-content: center;
    overflow: visible;
    padding-bottom: 0;
    scroll-snap-type: none;
  }

  .vn-works-list[data-count="2"],
  .vn-works-list[data-count="4"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vn-works-list[data-count="3"] {
    grid-template-columns: repeat(3, minmax(0, 16rem));
  }

  .vn-work-card {
    min-width: 0;
  }

  .vn-evidence-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vn-map-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vn-map-grid:has(.vn-map-photo[hidden]) {
    grid-template-columns: minmax(0, 24rem);
  }

  .vn-filter-form fieldset {
    grid-template-columns:
      minmax(14rem, 2fr) minmax(9rem, 1fr) minmax(9rem, 1fr)
      auto;
  }

  .vn-filter-reset {
    width: auto;
    padding-inline: var(--space-3);
  }

  .vn-tile-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  @container venue-filters (max-width: 40em) {
    .vn-filter-form fieldset {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vn-filter-form .vn-field:first-of-type,
    .vn-filter-reset {
      grid-column: 1 / -1;
    }

    .vn-filter-reset {
      justify-self: start;
    }
  }
}

@media (min-width: 46rem) and (min-height: 44rem) {
  .vn-flow:not(.vn-flow-static) {
    --vn-phone-w: min(16rem, calc((100svh - 16rem) * 302 / 523));
    padding-top: 0;
  }

  .vn-flow:not(.vn-flow-static) .vn-experience-grid {
    position: relative;
    grid-template-columns: var(--vn-phone-w) minmax(0, 1fr);
  }

  .vn-flow:not(.vn-flow-static) .vn-photo-demo-head,
  .vn-flow:not(.vn-flow-static) .vn-photo-demo-phone {
    width: min(100%, var(--vn-phone-w));
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-track {
    height: 400svh;
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-stage {
    position: sticky;
    top: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100svh;
    padding-top: calc(
      var(--inset-top) + var(--vn-nav-clear) + var(--space-2)
    );
    overflow: clip;
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-phones {
    position: static;
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-phones > figure {
    opacity: 0;
    transform: translateY(-2.5rem) scale(0.96);
  }

  .vn-flow.vn-flow-ready .vn-flow-phones > figure,
  .vn-flow.vn-flow-ready .vn-steps li {
    transition:
      opacity 480ms cubic-bezier(0.4, 0, 0.2, 1),
      transform 480ms cubic-bezier(0.4, 0, 0.2, 1);
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-phones > .vn-walks {
    position: absolute;
    top: 0;
    right: 0;
    align-content: start;
    width: var(--vn-phone-w);
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-stage[data-phase="0"] .vn-photo-demo {
    opacity: 1;
    transform: none;
    transition-delay: 200ms;
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-stage[data-phase="1"] .vn-photo-demo {
    transform: translateY(-2.5rem) scale(0.96);
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-stage[data-phase="1"] .vn-walks {
    opacity: 1;
    transform: none;
    transition-delay: 160ms;
  }

  .vn-flow:not(.vn-flow-static) .vn-steps {
    --vn-step-gap: var(--space-4);
  }

  .vn-flow:not(.vn-flow-static) .vn-steps li {
    --vn-at: 1;
    --vn-lit: clamp(0, (var(--vn-p) - var(--vn-at)) * 65, 1);
  }

  .vn-flow:not(.vn-flow-static) .vn-steps li:nth-child(1) {
    --vn-at: 0.0333;
  }

  .vn-flow:not(.vn-flow-static) .vn-steps li:nth-child(2) {
    --vn-at: 0.1833;
  }

  .vn-flow:not(.vn-flow-static) .vn-steps li:nth-child(3) {
    --vn-at: 0.3333;
  }

  .vn-flow:not(.vn-flow-static) .vn-steps li:nth-child(3)::after {
    display: none;
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-stage[data-phase="0"] .vn-steps li:nth-child(1) {
    transition-delay: 120ms;
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-stage[data-phase="0"] .vn-steps li:nth-child(2) {
    transition-delay: 160ms;
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-stage[data-phase="0"] .vn-steps li:nth-child(3) {
    transition-delay: 200ms;
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-stage[data-phase="1"] .vn-steps li:nth-child(-n + 3) {
    opacity: 0;
    transform: translateY(-1.5rem);
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-stage[data-phase="1"] .vn-steps li:nth-child(1) {
    transition-delay: 0ms;
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-stage[data-phase="1"] .vn-steps li:nth-child(2) {
    transition-delay: 40ms;
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-stage[data-phase="1"] .vn-steps li:nth-child(3) {
    transition-delay: 80ms;
  }

  .vn-flow:not(.vn-flow-static) .vn-steps li:nth-child(4) {
    --vn-at: 0.4233;
    --vn-step4-size: clamp(1.5rem, 1.1rem + 1.4vw, 2rem);
    position: absolute;
    top: 50%;
    left: 0;
    width: calc(100% - var(--vn-phone-w) - var(--space-5));
    opacity: 0;
    transform: translateY(calc(-50% + 1.5rem));
  }

  .vn-flow:not(.vn-flow-static) .vn-steps li:nth-child(4) strong {
    padding-top: calc(
      (var(--vn-step-disc) - var(--vn-step4-size) * var(--leading-snug)) / 2
    );
    font-size: var(--vn-step4-size);
  }

  .vn-flow:not(.vn-flow-static) .vn-steps li:nth-child(4) span {
    font-size: var(--size-body-editorial);
  }

  .vn-flow:not(.vn-flow-static) .vn-steps li:nth-child(4)::after {
    display: none;
  }

  .vn-flow:not(.vn-flow-static) .vn-flow-stage[data-phase="1"] .vn-steps li:nth-child(4) {
    opacity: 1;
    transform: translateY(-50%);
    transition-delay: 200ms;
  }

  .vn-flow:not(.vn-flow-static) .vn-steps li::before {
    background: color-mix(
      in srgb,
      var(--accent) calc(var(--vn-lit) * 100%),
      var(--surface-raised)
    );
    color: color-mix(
      in srgb,
      var(--accent-ink) calc(var(--vn-lit) * 100%),
      var(--ink-secondary)
    );
  }

}

@media (max-width: 21.49rem) {
  .vn-venue-header {
    position: static;
  }

  .vn-venue-header-inner {
    padding-bottom: var(--space-1);
  }

  .vn-page[data-venue-cta-ready] .vn-hero-cta {
    position: static;
  }

  .vn-shelf-pass {
    flex-basis: 100%;
  }

  html {
    scroll-padding-top: var(--inset-top);
  }

  .vn-section {
    scroll-margin-top: var(--inset-top);
  }
}

@media (max-height: 479px) {
  .vn-venue-header {
    position: static;
  }

  .vn-venue-header-inner {
    padding-bottom: var(--space-1);
  }

  .vn-page[data-venue-cta-ready] .vn-hero-cta {
    position: static;
  }

  .vn-page:has(.vn-venue-header) .vn-section {
    scroll-margin-top: var(--inset-top);
  }
}

@media (hover: hover) {
  .vn-control,
  .vn-filter-control,
  .vn-shelf-pass,
  .vn-tile-link {
    transition-duration: var(--dur-fast);
  }
}

@media (prefers-reduced-motion: reduce) {
  .vn-control,
  .vn-filter-control,
  .vn-shelf-pass,
  .vn-shelf-pass-note,
  .vn-tile-link,
  .vn-photo-demo-camera,
  .vn-photo-demo-result,
  .vn-photo-demo-turn {
    transition: none;
  }

  .vn-photo-demo-scan {
    display: none;
  }
}

@media print {
  .vn-hero-cta,
  .vn-hero-cta-eyebrow,
  .vn-shelf-pass,
  .vn-shelf-store,
  .vn-rail-controls,
  .vn-filter-form,
  .vn-hub-footer-store {
    display: none;
  }

  .vn-works-list,
  .vn-tile-list,
  .vn-evidence-list {
    display: grid;
    grid-template-columns: 1fr;
    overflow: visible;
  }
}

.vn-page [hidden] {
  display: none;
}

.vn-photo-demo:not([data-state="image-error"]) .vn-photo-demo-fallback {
  display: none;
}

.vn-photo-demo[data-state="image-error"] .vn-photo-demo-phone {
  display: none;
}
