/* Stable city control: the label may truncate, the chevron always keeps its shape. */
.header .city-button{display:inline-flex;align-items:center;justify-content:flex-end;gap:9px;min-width:0;white-space:nowrap;overflow-wrap:normal;line-height:1.3}
.header .city-button .city-label{display:block;min-width:0;margin:0;color:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto}
.header .city-chevron{display:block;flex:0 0 14px;width:14px;height:14px;color:var(--gold);transition:transform 180ms ease}
.header .city-button:hover .city-chevron{transform:translateY(1px)}
.header .city-button:focus-visible{border-radius:5px}

/* Independent lighting remains soft even when the hero photograph changes. */
.catalog-hero,.event-hero{background:radial-gradient(ellipse at 74% 40%,#333442 0,transparent 64%),var(--bg)}
.catalog-hero::before,.event-hero::before{background:radial-gradient(ellipse 40% 22% at 10% 0%,#202430 0%,#202430da 32%,transparent 100%),radial-gradient(ellipse 62% 18% at 76% -2%,#202430 0%,#202430a8 35%,transparent 100%),radial-gradient(ellipse 63% 23% at 107% 102%,#202430 0%,#202430eb 30%,transparent 100%),radial-gradient(ellipse 48% 17% at 28% 102%,#202430 0%,#202430d9 32%,transparent 100%),radial-gradient(ellipse 46% 52% at 83% 42%,#dfb44f0d,transparent 80%),linear-gradient(0deg,#202430 0%,transparent 19%,transparent 80%,#202430 100%)}

/* A deeper closing surface, with broad light instead of a hard dividing border. */
.manifesto{border-top:0}
.footer{position:relative;isolation:isolate;overflow:hidden;border-top:0;padding-top:78px;padding-bottom:30px;background:radial-gradient(ellipse 58% 95% at 14% 44%,#30323d88,transparent 78%),radial-gradient(ellipse 56% 110% at 91% 72%,#6c542c1c,transparent 78%),linear-gradient(180deg,#202430 0%,#181c26 34%,#11151d 100%)}
.footer::before{content:'';position:absolute;pointer-events:none;z-index:-1;inset:0;background:radial-gradient(ellipse 53% 22% at 27% 0%,#202430 15%,transparent 100%),radial-gradient(ellipse 43% 28% at 91% -3%,#202430 20%,transparent 100%)}
.footer-grid{position:relative;row-gap:32px}
.footer-grid .brand{align-self:start;text-shadow:0 3px 24px #0004}
.footer-grid div a{font-size:13px;line-height:1.5;color:#c3c7d0;transition:color 160ms ease}
.footer-grid div a:hover{color:var(--gold)}
.footer-grid .link{color:#c3c7d0;text-decoration-color:#c3c7d047}
.footer-bottom{position:relative;padding-top:26px;margin-top:40px;line-height:1.6;letter-spacing:.12em}
.footer-bottom::before{content:'';position:absolute;top:0;left:48px;right:48px;height:1px;background:linear-gradient(90deg,transparent,#ffffff15 20%,#ffffff15 80%,transparent)}
@media(max-width:1000px){.footer-bottom::before{left:28px;right:28px}}
@media(max-width:650px){.header .city-button{gap:7px}.header .city-chevron{flex-basis:12px;width:12px;height:12px}.footer{padding-top:52px;padding-bottom:30px}.footer-grid{column-gap:22px;row-gap:26px}.footer-grid div a{font-size:12px}.footer-bottom{margin-top:26px;padding-top:22px;font-size:9px;flex-wrap:wrap;gap:9px 18px}.footer-bottom::before{left:18px;right:18px}}

/* Hero depth: broad, image-agnostic planes that survive changing admin artwork. */
.catalog-hero{
  --hero-x:0px;
  --hero-y:0px;
  --hero-scroll:0px;
  min-height:clamp(470px,38vw,560px);
  box-shadow:inset 0 -1px 0 #ffffff08,0 28px 70px #0b0d1242;
}
.catalog-hero .hero-photo{
  inset:-12px;
  width:calc(100% + 24px);
  height:calc(100% + 24px);
  max-width:none;
  transform:translate3d(calc(var(--hero-x) * .45),calc(var(--hero-y) * .45 + var(--hero-scroll)),0) scale(1.025);
  filter:saturate(.9) contrast(1.035);
  will-change:transform;
  transition:transform 900ms cubic-bezier(.2,.7,.2,1),filter 700ms ease;
}
.catalog-hero::before{
  z-index:0;
  background:
    radial-gradient(ellipse 52% 26% at 16% -4%,#202430f2 0%,#2024309c 40%,transparent 100%),
    radial-gradient(ellipse 58% 22% at 84% 104%,#202430e8 0%,#2024307a 45%,transparent 100%),
    linear-gradient(180deg,#202430d1 0%,transparent 25%,transparent 68%,#202430f2 100%);
}
.catalog-hero::after{
  z-index:1;
  opacity:.96;
  background:
    linear-gradient(90deg,#0d0f15f5 0%,#0d0f15ce 25%,#0d0f1554 54%,#0d0f1514 78%),
    radial-gradient(ellipse 43% 88% at 21% 58%,#0b0d12ad 0%,transparent 76%),
    linear-gradient(180deg,#0a0c111f 0%,transparent 52%,#0a0c1152 100%);
  mask-image:none;
}
.hero-atmosphere{
  position:absolute;
  inset:-8%;
  z-index:1;
  pointer-events:none;
  transform:translate3d(calc(var(--hero-x) * -.18),calc(var(--hero-y) * -.18),0);
  background:
    radial-gradient(ellipse 34% 54% at 66% 44%,#ffffff0d 0%,transparent 72%),
    radial-gradient(ellipse 55% 76% at 86% 34%,#dfb44f0a 0%,transparent 74%);
  filter:blur(10px);
  mix-blend-mode:screen;
  will-change:transform;
  transition:transform 1200ms cubic-bezier(.2,.7,.2,1);
}
.hero-atmosphere::after{
  content:"";
  position:absolute;
  inset:0;
  opacity:.2;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E");
}
.catalog-hero .hero-copy,.catalog-hero .hero-side{z-index:2}
.catalog-hero .hero-copy{text-shadow:0 10px 42px #05060acc}
.catalog-hero .hero-copy .eyebrow,.catalog-hero .hero-caption{text-shadow:0 2px 18px #05060af2}
.catalog-hero .hero-side{
  color:#f7f5ef;
  padding:0;
  max-width:130px;
  text-shadow:0 2px 9px #05060aff,0 0 24px #05060acc;
}
.catalog-hero .hero-side::before{content:none}
.catalog-hero .hero-side[data-tone=dark]{color:#f7f5ef}
.catalog-hero .hero-side[data-tone=dark]::before{content:none}

@media (prefers-reduced-motion:no-preference){
  .catalog-hero .hero-photo{animation:hero-photo-in 1250ms cubic-bezier(.16,.8,.22,1) both}
  .catalog-hero .hero-copy .eyebrow{animation:hero-copy-in 650ms 140ms cubic-bezier(.2,.75,.22,1) both}
  .catalog-hero .hero-copy h1{animation:hero-copy-in 850ms 220ms cubic-bezier(.16,.8,.22,1) both}
  .catalog-hero .hero-copy h1 span{animation:hero-copy-in 700ms 350ms cubic-bezier(.2,.75,.22,1) both}
  .catalog-hero .hero-caption{animation:hero-copy-in 650ms 460ms cubic-bezier(.2,.75,.22,1) both}
  .catalog-hero .hero-side{animation:hero-side-in 650ms 560ms cubic-bezier(.2,.75,.22,1) both}
}
@keyframes hero-photo-in{from{opacity:0;filter:saturate(.72) contrast(1.02);transform:translate3d(0,8px,0) scale(1.055)}to{opacity:1;filter:saturate(.9) contrast(1.035);transform:translate3d(calc(var(--hero-x) * .45),calc(var(--hero-y) * .45 + var(--hero-scroll)),0) scale(1.025)}}
@keyframes hero-copy-in{from{opacity:0;transform:translate3d(0,16px,0);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}
@keyframes hero-side-in{from{opacity:0;transform:translate3d(10px,0,0)}to{opacity:1;transform:none}}

@media(max-width:650px){
  .catalog-hero{min-height:390px;box-shadow:0 18px 42px #0b0d1238}
  .catalog-hero .hero-photo{inset:-5px;width:calc(100% + 10px);height:calc(100% + 10px);transform:scale(1.012);animation:none;will-change:auto;transition:none}
  .catalog-hero::before{background:linear-gradient(180deg,#202430a6 0%,transparent 27%,transparent 62%,#202430f5 100%)}
  .catalog-hero::after{background:linear-gradient(90deg,#0d0f15df 0%,#0d0f1578 57%,#0d0f1524 100%),linear-gradient(0deg,#0d0f15c9 0%,transparent 55%)}
  .hero-atmosphere{display:none}
  .catalog-hero .hero-copy{text-shadow:0 7px 28px #05060ae6}
  .catalog-hero .hero-side{right:18px;top:26px;text-shadow:0 2px 8px #05060aff}
}
@media(prefers-reduced-motion:reduce){
  .catalog-hero .hero-photo,.hero-atmosphere{transform:none;transition:none;will-change:auto}
}
