/* Material depth, photographic architecture and a live road scene. */
.hero::before { opacity: .035; }
.hero::after { background: radial-gradient(ellipse at 70% 50%, #46688045, transparent 65%); }
.venue-plinth { position: absolute; left: -9%; bottom: -16%; width: 123%; height: 43%; transform: rotateX(78deg) translateZ(-85px); transform-style: preserve-3d; background: linear-gradient(100deg,#153752,#4a6576 49%,#183348); box-shadow: 20px 80px 65px #010b1ea0; border: 1px solid #71899c60; }
.venue-plinth::after { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(0deg,transparent 0 49px,#bfd0da18 50px),repeating-linear-gradient(90deg,transparent 0 69px,#c2d5df18 70px); }
.venue-plinth i { position: absolute; height: 18px; top: 100%; left: 0; width: 100%; background: linear-gradient(#465b6b,#112a40); transform-origin: top; transform: rotateX(-90deg); }
.venue-plinth i:nth-child(2) { left: 100%; top: 0; height: 100%; width: 18px; transform: rotateY(90deg); transform-origin: left; }
.venue-plinth i:nth-child(3) { inset: auto 7% 7% auto; height: 2px; width: 44%; background: #c7eaff; transform: none; box-shadow: 0 0 16px #a6e5ff; }
.theater-exterior { border: 7px solid #294153; outline: 1px solid #7493a06b; box-shadow: 2px 3px 0 #a1b3be,8px 12px 0 #152d3e,14px 19px 0 #102639,20px 28px 28px #0108127a,40px 65px 75px #0005; }
.theater-exterior > img { object-position: 50% 86%; }
.theater-inset { background: linear-gradient(130deg,#e6eff6,#94aebf); box-shadow: 1px 2px 0 #e7f4ff,4px 5px 0 #647c8e,9px 14px 0 #19364b,14px 23px 40px #010b24b0; }
.theater-plaque { background: linear-gradient(130deg,#29445dee,#071c30f2); border-color: #839aac75; box-shadow: 1px 2px 0 #7593aa,5px 7px 0 #0c2338,13px 22px 24px #010e2460; }
.tour-motion .theater-tour { height: 240svh; }
.tour-motion .tour-sticky { min-height: 480px; }
.tour-motion .tour-picture { perspective: 1100px; overflow: hidden; background: #06101b; }
.tour-auditorium { position: absolute; inset: 0; transform: scale(.93); }
.tour-auditorium img,.tour-exterior img { width: 100%; height: 100%; object-fit: cover; }
.tour-auditorium img { object-position: 50% 53%; }
.tour-exterior { position: absolute; inset: 0; transform-origin: 50% 43%; }
.tour-exterior img { object-position: center 70%; }
.tour-architecture { position: absolute; inset: 0; transform-style: preserve-3d; }
.tour-architecture i { position: absolute; inset: 5% 8% 0; border: 20px solid #23313a; border-bottom-width: 28px; background: transparent; box-shadow: inset 0 0 0 2px #9fb3c257,inset 0 0 35px #000c,0 0 0 1px #a5b7c55e,0 0 50px #0008; }
.tour-architecture i:nth-child(2n) { border-color: #111d28; }
.tour-vignette { background: linear-gradient(180deg,#010c2180,transparent 27%,#010a1700 41%,#020f28e3 100%); }
.tour-motion .tour-copy h2 { font-size: clamp(40px,4.5vw,68px); }
.mobility-story { padding-top: 100px; background: #0a1829; }
.mobility-heading { padding-bottom: 48px; border-bottom: 0; }
.mobility-heading h2 { font-size: clamp(37px,4.2vw,62px); }
.mobility-heading h2 em { color: #bad7eb; }
.mobility-layout.shell { width: 100%; display: block; position: relative; }
.mobility-visual,.motion-paused .mobility-visual { top: 68px; position: sticky; width: 100%; height: calc(100svh - 68px); min-height: 480px; display: block; perspective: none; margin: 0; padding: 0; overflow: hidden; background: #0a1829; }
.road-stage { position: absolute; inset: 0; overflow: hidden; }
.road-stage::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,transparent 28%,#0a182900 50%,#0a1829ed 70%,#0a1829 100%),linear-gradient(180deg,#0a1829 0%,transparent 15%,transparent 79%,#0a1829 100%); pointer-events: none; }
.road-fallback { position: absolute; width: 100%; height: 100%; object-fit: cover; opacity: .9; }
.road-canvas { position: absolute; inset: 0; touch-action: pan-y; cursor: grab; }
.road-canvas.is-dragging { cursor: grabbing; }
.road-canvas canvas { display: block; width: 100%; height: 100%; opacity: 0; transition: opacity .7s; }
.scene-ready .road-canvas canvas { opacity: 1; }
.scene-ready .road-fallback { opacity: 0; }
.scene-top,.scene-bottom { position: absolute; left: max(48px,calc((100% - 1380px)/2)); width: 55%; z-index: 2; display: flex; align-items: center; justify-content: space-between; pointer-events: none; }
.scene-top { top: 32px; font: 8px monospace; letter-spacing: .12em; color: #b6c5d5; }
.scene-drag { font: 9px Arial,sans-serif; letter-spacing: 0; color: #8298ae; }
.scene-drag > span { margin-left: 12px; font-size: 20px; }
.scene-drag[hidden] { display: none; }
.scene-bottom { bottom: 35px; gap: 20px; }
.scene-views { display: flex; gap: 5px; pointer-events: auto; background: #122537c9; padding: 5px; border: 1px solid #a5c3dd26; box-shadow: 0 8px 25px #0003,inset 0 1px #e5f5ff0c; backdrop-filter: blur(15px); border-radius: 4px; }
.mobility-visual:not(:has(.scene-ready)) .scene-bottom { visibility: hidden; }
.scene-views button { background: transparent; border: 1px solid transparent; color: #b0c0d0; min-height: 44px; padding: 10px 13px; font-size: 10px; border-radius: 2px; cursor: pointer; }
.scene-views button > span { margin-right: 9px; font: 8px monospace; color: #90a2b9; }
.scene-views button[aria-pressed="true"] { background: linear-gradient(130deg,#d7e9f4,#97b1c6); color: #112539; border-color: #d4ebfa; box-shadow: 0 2px 4px #0005; }
.scene-views button[aria-pressed="true"] > span { color: #486277; }
.scene-progress { width: 95px; color: #9fbad0; }
.mobility-current { font: 7px monospace; letter-spacing: .04em; white-space: nowrap; }
.scene-progress > i { display: block; height: 1px; background: #a1bfd033; margin-top: 12px; }
.scene-progress b { display: block; height: 2px; background: #c3e5fa; width: 100%; transform: scaleX(var(--scene-progress,.01)); transform-origin: left; }
.mobility-chapters { position: relative; margin-top: calc(-100svh + 68px); z-index: 3; width: 30%; margin-left: 65%; pointer-events: none; }
.mobility-chapter,.motion-paused .mobility-chapter { min-height: calc(100svh - 68px); padding: 80px 0; border: 0; justify-content: center; }
.mobility-chapter .chapter-index { color: #abc1d7; font-size: 8px; letter-spacing: .1em; }
.mobility-chapter h3 { font-size: clamp(28px,2.7vw,41px); }
.mobility-chapter h3 em { color: #d0e7f7; }
.mobility-chapter p { font-size: 13px; line-height: 1.9; color: #a6b8ca; max-width: 340px; }
.mobility-chapter .chapter-link { pointer-events: auto; align-self: flex-start; font-size: 11px; margin-top: 28px; }
.mobility-credit { margin: 0 auto; padding-block: 23px 30px; font-size: 8px; line-height: 1.8; color: #8196aa; }
.mobility-credit a { text-decoration: underline; text-underline-offset: 3px; }
.motion-paused .scene-drag { display: none; }
.motion-paused .mobility-chapters { margin-top: 0; margin-inline: auto; width: var(--shell); display: grid; grid-template-columns: repeat(2,1fr); gap: 25px 45px; }
.motion-paused .mobility-visual { position: relative; top: 0; height: 680px; }
.motion-paused .mobility-chapter { min-height: 0; padding-block: 45px; }
.motion-paused .road-stage::after { background: linear-gradient(180deg,#0a1829,transparent 15%,transparent 80%,#0a1829); }
html:not(.has-scene-js) .mobility-visual { position:relative; top:0; height:680px; }
html:not(.has-scene-js) .mobility-chapters { margin:0 auto; width:var(--shell); display:grid; grid-template-columns:repeat(2,1fr); gap:35px; }
html:not(.has-scene-js) .mobility-chapter { min-height:0; padding-block:40px; }
.themes { background: #eaf0f5; }
.theme-grid { gap: 22px; perspective: 1500px; }
.theme-card { min-height: 390px; border: 1px solid #f0f7ff55; border-radius: 5px; box-shadow: 0 2px 0 #66829b,0 6px 0 #becbd6,0 16px 24px #0b233018; background: #102231; isolation: isolate; }
.theme-card::after { content: ''; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; box-shadow: inset 0 1px #e5f7ff44; background: linear-gradient(125deg,#e2f0ff12,transparent 40%,#00000015); }
.theme-card:nth-child(2) { background: #152736; }
.theme-card:nth-child(4) { background: #172d3b; }
.theme-card:nth-child(5) { background: #101e30; }
.theme-card img { filter: saturate(.6); }
.theme-card-copy { z-index: 3; text-shadow: 0 2px 15px #0008; }
.theme-card h3 { font-size: clamp(25px,2.1vw,33px); }
.theme-card small,.theme-card:nth-child(2) small { color: #b5d6ef; }
.theme-card .theme-shade { background: linear-gradient(180deg,transparent 20%,#0615273d 43%,#061527f0 100%); }
.theme-card:nth-child(4) .theme-shade { z-index: 1; pointer-events: none; }
.theme-no { z-index: 4; color: #c8dfef; border-bottom: 1px solid #cbe8fd40; padding-bottom: 10px; }
.theme-arrow { z-index: 5; background: #0b24387a; backdrop-filter: blur(8px); box-shadow: 0 3px 0 #03131f50; }
.object-view { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.object-view img { z-index: 0; object-fit: cover; opacity: .8; }
.object-view canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; transition: opacity .6s; }
.object-view.object-ready canvas { opacity: 1; }
.object-view.object-ready img { opacity: 0; }
.object-view::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 33%,#081b2973 61%,#081b29f5); pointer-events: none; }
.program-meta { padding: 26px 32px; border: 1px solid #bddef04a; background: linear-gradient(140deg,#294158,#152f45); box-shadow: 2px 3px 0 #617a90,6px 8px 0 #102334,17px 22px 32px #010d2255; transform: perspective(1000px) rotateY(-8deg); }
.program-meta strong { color: #dfedfa; }
.speaker-grid { gap: 19px; }
.speaker-card { background: linear-gradient(145deg,#ffffff,#f1f5f9); border: 1px solid #fff; box-shadow: 0 2px 0 #b7c7d4,0 5px 0 #d8e1e9,0 14px 25px #1230470c; border-radius: 4px; }
.speaker-card::before { text-shadow: 1px 2px 0 #fff,2px 3px 0 #19385212; color: #b2c7d629; }
.speaker-card-tag { background: #8aa7be; box-shadow: 0 1px 0 #ffffffe0,0 2px 3px #17354f4a; }
.venue-visual { border: 1px solid #d6e7f64f; box-shadow: inset 0 1px #fff4; }
.venue-shot { border-radius: 3px; border: 1px solid #ffffff55; box-shadow: 0 3px 0 #577187,0 7px 0 #09273d,0 15px 28px #00102640; }
.final-cta { background: radial-gradient(ellipse at 70% 100%,#406f91,#133b60 65%); }
.final-actions .button { box-shadow: 0 2px 0 #7c9fb9,0 6px 0 #06233c,0 15px 25px #00102040; }
@media (max-width:1160px) {
  .scene-top,.scene-bottom { left:32px; width:56%; }
  .scene-progress { display:none; }
  .mobility-chapters { width:32%; margin-left:65%; }
  .mobility-chapter h3 { font-size:31px; }
  .scene-drag { font-size:8px; }
}
@media (max-width:900px) {
  .mobility-story { padding-top:78px; }
  .mobility-visual,.motion-paused .mobility-visual { position:relative; top:0; height:560px; min-height:0; }
  html:not(.has-scene-js) .mobility-visual { height:560px; }
  .road-stage::after { background:linear-gradient(180deg,#0a1829,transparent 16%,transparent 72%,#0a1829); }
  .scene-top,.scene-bottom { left:24px; width:calc(100% - 48px); }
  .scene-top { top:15px; }
  .scene-bottom { bottom:14px; justify-content:center; }
  .scene-drag { display:none; }
  .scene-views button { padding-inline:16px; }
  .mobility-chapters,.motion-paused .mobility-chapters { display:grid; grid-template-columns:repeat(2,1fr); width:var(--shell); margin:0 auto; gap:24px; }
  .mobility-chapter,.motion-paused .mobility-chapter { min-height:0; padding-block:36px; justify-content:flex-start; }
  .mobility-chapter h3 { font-size:25px; }
  .mobility-chapter p { font-size:12px; }
  .mobility-chapter .chapter-index { font-size:6px; }
  .mobility-chapter .chapter-link { font-size:9px; margin-top:auto; padding-top:24px; }
  .mobility-credit { font-size:7px; }
  .theme-card { min-height:370px; }
  .program-meta { padding:22px; }
}
@media (max-width:620px) {
  .venue-plinth { left:-3%; width:111%; bottom:-12%; }
  .theater-exterior { border-width:5px; }
  .mobility-story { padding-top:65px; }
  .mobility-heading { padding-bottom:25px; }
  .mobility-heading h2 { font-size:clamp(33px,8.5vw,43px); }
  .mobility-visual,.motion-paused .mobility-visual { height:480px; }
  html:not(.has-scene-js) .mobility-visual { height:480px; }
  .scene-top,.scene-bottom { left:20px; width:calc(100% - 40px); }
  .scene-top { font-size:6px; }
  .scene-views { width:100%; gap:3px; display:grid; grid-template-columns:1fr 1fr; }
  .scene-views button { padding:11px 5px; font-size:10px; white-space:nowrap; }
  .scene-views button > span { margin-right:5px; font-size:7px; }
  .mobility-chapters,.motion-paused .mobility-chapters { display:block; }
  html:not(.has-scene-js) .mobility-chapters { display:block; }
  .mobility-chapter,.motion-paused .mobility-chapter { padding:37px 0; border-bottom:1px solid #bed8ef20; }
  .mobility-chapter h3 { font-size:32px; }
  .mobility-chapter .chapter-index { font-size:7px; }
  .mobility-chapter .chapter-link { font-size:10px; padding-top:22px; }
  .mobility-credit { padding-block:25px; font-size:7px; }
  .theme-grid { gap:23px; }
  .theme-card,.theme-card:last-child { min-height:360px; }
  .theme-card h3 { font-size:28px; }
  .speaker-grid { gap:16px 12px; }
  .program-meta { transform:none; }
}
@media (prefers-reduced-motion:reduce) {
  .road-canvas canvas,.object-view canvas { transition:none; }
}
