:root {
  --ice: #eaf7fb;
  --paper: #fbfaf6;
  --navy: #102d50;
  --ink: #172c43;
  --muted: #61788d;
  --pink: #ed168e;
  --yellow: #f0dc2c;
  --teal: #55aec2;
  --poppins: "Poppins", sans-serif;
  --hand: "Caveat", cursive;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 82px; }
body { margin: 0; background: var(--paper); color: var(--navy); font-family: var(--poppins); -webkit-font-smoothing: antialiased; }
img, video { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
.skip-link { position: absolute; left: -9999px; top: 8px; z-index: 99; background: var(--navy); color: #fff; padding: 12px 18px; }
.skip-link:focus { left: 12px; }
.site-header { position: sticky; top: 0; z-index: 30; height: 80px; padding: 0 5vw; display: flex; align-items: center; justify-content: space-between; gap: 24px; background: rgba(251,250,246,.96); border-bottom: 1px solid rgba(16,45,80,.08); backdrop-filter: blur(14px); }
.brand { width: 137px; flex: 0 0 137px; }
.brand img, .footer-brand img { width: 100%; }
.site-header nav { display: flex; gap: clamp(18px, 3.3vw, 48px); align-items: center; font-size: 11px; font-weight: 500; color: #304b68; }
.site-header nav a { transition: color .2s; }
.site-header nav a:hover { color: var(--pink); }
.button { min-height: 58px; padding: 0 25px; display: inline-flex; align-items: center; justify-content: center; gap: 19px; border-radius: 3px; font-size: 13px; font-weight: 600; transition: transform .25s, background .25s, color .25s; }
.button span { display: inline-block; font-size: 20px; font-weight: 400; transition: transform .25s; }
.button:hover { transform: translateY(-3px); }
.button:hover span { transform: translate(4px,-3px); }
.button-small { min-height: 43px; padding: 0 16px; font-size: 10px; gap: 11px; border: 1px solid var(--navy); }
.button-small:hover { background: var(--navy); color: white; }
.button-primary { color: #fff; background: var(--pink); box-shadow: 0 9px 22px rgba(237,22,142,.16); }
.button-primary:hover { background: #d70e7b; }
.button-light { color: var(--navy); background: var(--yellow); }
.button-light:hover { background: #fff; }
.section-pad { padding-left: max(8vw, calc((100vw - 1440px)/2)); padding-right: max(8vw, calc((100vw - 1440px)/2)); }
.eyebrow { margin: 0 0 24px; font-size: 11px; line-height: 1.6; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }
.hero { height: min(930px, calc(100svh - 80px)); min-height: 670px; position: relative; overflow: hidden; color: #fff; background: var(--navy); }
.hero-photo, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-photo { object-fit: cover; object-position: center 47%; transform: scale(1.035); animation: hero-arrive 1.5s cubic-bezier(.2,.7,.2,1) both; }
.hero-shade { background: linear-gradient(90deg, rgba(9,29,52,.89) 0%, rgba(9,29,52,.77) 32%, rgba(9,29,52,.25) 69%, rgba(9,29,52,.08) 100%), linear-gradient(0deg, rgba(9,29,52,.58), transparent 34%); }
.hero-content { position: absolute; left: 10vw; top: 50%; transform: translateY(-49%); max-width: 720px; z-index: 2; animation: content-arrive .85s .12s ease both; }
.hero-eyebrow { font-size: 10px; letter-spacing: .17em; font-weight: 600; color: rgba(255,255,255,.88); }
.hero-eyebrow span, .eyebrow-dot { display: inline-block; height: 8px; width: 8px; margin-right: 9px; border-radius: 50%; background: var(--pink); }
.hero-kicker { margin: 38px 0 0; font-size: 13px; letter-spacing: .3em; font-weight: 600; }
.hero h1 { margin: -3px 0 0 -12px; font-size: clamp(156px, 22vw, 340px); line-height: .83; font-weight: 700; letter-spacing: -.105em; }
.hero h1 span { color: var(--pink); }
.hero-subtitle { margin: 23px 0 0; font-size: clamp(28px, 4.1vw, 58px); line-height: 1.12; letter-spacing: -.06em; font-weight: 500; }
.hero-desc { margin: 23px 0 24px; max-width: 430px; font-size: 16px; line-height: 1.8; color: rgba(255,255,255,.83); }
.hero-meta { position: absolute; z-index: 2; left: 10vw; right: 10vw; bottom: 35px; display: flex; justify-content: space-between; gap: 20px; font-size: 9px; font-weight: 600; letter-spacing: .17em; color: rgba(255,255,255,.82); }
.hero-photo-label { position: absolute; z-index: 2; right: 10vw; bottom: 75px; padding: 7px 10px; background: rgba(9,29,52,.58); color: rgba(255,255,255,.9); font-size: 8px; letter-spacing: .13em; }
.scroll-cue { position: absolute; right: 4.5vw; bottom: 35px; z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 8px; font-size: 8px; letter-spacing: .15em; color: white; }
.scroll-cue b { font-size: 21px; font-weight: 400; color: var(--yellow); animation: arrow-drift 1.4s ease-in-out infinite; }
.hero-stamp { position: absolute; z-index: 3; top: 17%; right: 9.5%; width: 148px; height: 148px; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--navy); background: var(--yellow); text-align: center; transform: rotate(9deg); box-shadow: 0 15px 42px rgba(0,0,0,.14); animation: stamp-arrive .7s .65s cubic-bezier(.2,.9,.25,1.2) both; }
.hero-stamp span { font-size: 8px; letter-spacing: .18em; }
.hero-stamp strong { font-size: 13px; line-height: 1.25; margin-top: 5px; }
.hero-stamp i { position: absolute; right: 24px; bottom: 14px; color: var(--pink); font-style: normal; font-size: 15px; }
.ticker { overflow: hidden; height: 75px; background: var(--yellow); display: flex; align-items: center; color: var(--navy); }
.ticker-track { width: max-content; display: flex; align-items: center; gap: 34px; white-space: nowrap; font-size: clamp(19px, 2.5vw, 30px); font-weight: 600; letter-spacing: -.04em; animation: ticker-run 25s linear infinite; }
.ticker-track i { color: var(--pink); font-size: 22px; font-style: normal; }
.experience { min-height: 720px; padding-top: 150px; padding-bottom: 150px; display: grid; grid-template-columns: .7fr 1.8fr; gap: 5vw; }
.section-side { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; padding-top: 8px; }
.section-index { font-size: 9px; font-weight: 600; letter-spacing: .15em; color: var(--pink); }
.side-line { width: 1px; height: 87px; margin-left: 2px; background: linear-gradient(var(--pink), transparent); }
.side-word { font: 600 24px var(--hand); color: var(--navy-soft, #536d86); transform: rotate(-6deg); }
.experience-main { max-width: 1050px; }
.experience-main .eyebrow { margin-bottom: 25px; }
.experience h2, .route-intro h2, .community-copy h2, .manifesto h2, .details h2, .rsvp h2, .faq h2 { margin: 0; font-size: clamp(60px, 9.4vw, 140px); line-height: .98; letter-spacing: -.085em; font-weight: 600; }
.experience h2 em, .route-intro h2 em, .community-copy h2 em, .manifesto h2 em, .details h2 em, .rsvp h2 em, .faq h2 em { color: var(--pink); font-style: normal; }
.experience-lower { margin-top: 64px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 6vw; align-items: start; }
.experience-big { max-width: 520px; margin: 0; font-size: clamp(25px, 3.2vw, 44px); line-height: 1.3; font-weight: 500; letter-spacing: -.045em; }
.experience-copy { max-width: 475px; padding-top: 3px; }
.experience-copy p { font-size: 17px; line-height: 1.9; color: #425d77; margin: 0 0 17px; }
.text-link { display: inline-flex; gap: 16px; align-items: center; margin-top: 9px; padding-bottom: 6px; border-bottom: 1px solid var(--pink); font-size: 12px; font-weight: 600; }
.text-link span { display: inline-block; color: var(--pink); font-size: 18px; transition: transform .25s; }
.text-link:hover span { transform: translateY(4px); }
.moment-band { min-height: 610px; display: grid; grid-template-columns: 1.08fr .92fr; position: relative; background: var(--ice); overflow: hidden; }
.moment-image { min-height: 610px; overflow: hidden; clip-path: polygon(0 0, 100% 0, 90% 100%, 0 100%); }
.moment-image img { height: 100%; min-height: 610px; object-fit: cover; object-position: 55% 42%; transform: scale(1.02); transition: transform 1.1s cubic-bezier(.2,.7,.2,1); }
.moment-band:hover .moment-image img { transform: scale(1.06); }
.moment-quote { align-self: center; padding: 50px 8vw 50px 5vw; position: relative; }
.quote-mark { display: block; color: var(--pink); font-size: 110px; font-weight: 600; line-height: .7; }
.moment-quote p { margin: 17px 0 26px; max-width: 600px; font-size: clamp(38px, 6.1vw, 86px); line-height: 1.03; font-weight: 500; letter-spacing: -.07em; }
.moment-quote em { color: var(--pink); font-style: normal; }
.quote-credit { font-size: 9px; color: var(--muted); letter-spacing: .18em; }
.band-arrow { position: absolute; width: 160px; right: 3%; bottom: 4%; color: var(--pink); overflow: visible; animation: arrow-sway 3s ease-in-out infinite; }
.band-arrow path { animation: dash-flow 1.8s linear infinite; }
.route-section { background: var(--ice); overflow: hidden; }
.route-intro { padding-top: 135px; padding-bottom: 90px; display: grid; grid-template-columns: .7fr 1.8fr; gap: 5vw; }
.route-intro .eyebrow { margin-bottom: 23px; }
.route-intro h2 { font-size: clamp(62px, 9.7vw, 145px); }
.route-intro-text { max-width: 590px; margin: 28px 0 0; color: #536d86; font-size: 18px; line-height: 1.85; }
.route-flow { position: relative; padding-left: 9.5vw; padding-right: 7vw; }
.route-rail { position: absolute; left: 4.2vw; top: 0; bottom: 2rem; width: 86px; z-index: 4; pointer-events: none; }
.rail-dots { position: absolute; left: 39px; top: 25px; bottom: 2px; border-left: 2px dashed rgba(16,45,80,.38); }
.route-train { width: 84px; height: 54px; position: absolute; left: -2px; top: 0; transition: top .45s cubic-bezier(.2,.7,.2,1); filter: drop-shadow(0 7px 5px rgba(16,45,80,.17)); }
.route-stop { min-height: 510px; display: grid; grid-template-columns: .85fr 1.15fr; gap: 5vw; align-items: center; padding: 28px 0 65px; position: relative; }
.route-stop::before { content: ""; position: absolute; left: -5.5vw; top: 68px; width: 12px; height: 12px; border: 2px solid var(--navy); border-radius: 50%; background: var(--ice); transition: background .25s, transform .25s; }
.route-stop.is-active::before { background: var(--pink); border-color: var(--pink); transform: scale(1.35); }
.route-stop:not(:last-child) { border-bottom: 1px solid rgba(16,45,80,.12); }
.stop-copy { position: relative; z-index: 1; padding-left: 1vw; }
.stop-label { margin: 0 0 13px; color: var(--pink); font-size: 9px; font-weight: 600; letter-spacing: .18em; }
.stop-label span { color: var(--navy); }
.stop-number { display: block; color: rgba(16,45,80,.12); font-size: clamp(100px, 13vw, 190px); font-weight: 700; line-height: .9; letter-spacing: -.1em; }
.route-stop h3 { position: relative; margin: -10px 0 15px; max-width: 570px; font-size: clamp(35px, 4.8vw, 66px); line-height: 1.02; letter-spacing: -.07em; font-weight: 500; }
.route-stop .stop-copy > p:not(.stop-label) { max-width: 490px; color: #536d86; font-size: 16px; line-height: 1.85; }
.handwritten { display: inline-block; margin-top: 14px; color: var(--pink); font: 600 26px var(--hand); transform: rotate(-4deg); }
.handwritten-blue { color: var(--navy); background: var(--yellow); padding: 0 10px 2px; transform: rotate(2deg); }
.route-stop figure { height: clamp(330px, 42vw, 610px); margin: 0; position: relative; overflow: hidden; background: #c8e1e8; clip-path: polygon(3% 0,100% 6%,96% 100%,0 92%); }
.route-stop figure img { width: 100%; height: 100%; object-fit: cover; object-position: center 42%; transition: transform .85s cubic-bezier(.2,.7,.2,1), filter .6s; }
.route-stop figure:hover img { transform: scale(1.045); filter: saturate(1.07); }
.route-stop figure figcaption { position: absolute; left: 22px; bottom: 20px; color: white; text-shadow: 0 1px 8px rgba(0,0,0,.45); font-size: 9px; letter-spacing: .17em; font-weight: 600; }
.stop-reverse .stop-copy { order: 2; }.stop-reverse figure { order: 1; clip-path: polygon(0 6%,97% 0,100% 92%,4% 100%); }
.video-story { min-height: 690px; display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 6vw; padding: 112px 8vw 122px; background: var(--navy); color: white; clip-path: polygon(0 3%,100% 0,100% 96%,0 100%); margin-top: -3px; position: relative; }
.video-copy { max-width: 560px; }
.video-copy .eyebrow { color: #b9d9e1; }
.video-copy h2 { margin: 0; font-size: clamp(45px, 6vw, 82px); line-height: 1.03; font-weight: 500; letter-spacing: -.07em; }
.video-copy > p:not(.eyebrow) { max-width: 430px; font-size: 16px; line-height: 1.9; color: rgba(255,255,255,.74); margin: 24px 0 10px; }
.video-copy .handwritten { color: var(--yellow); }
.video-frame { height: clamp(410px, 48vw, 590px); position: relative; overflow: hidden; background: #273d55; clip-path: polygon(4% 0,100% 4%,96% 100%,0 93%); }
.video-frame video { width: 100%; height: 100%; object-fit: cover; object-position: 50% 47%; }
.video-frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg,rgba(5,20,37,.5),transparent 35%); pointer-events: none; }
.video-caption { position: absolute; z-index: 2; bottom: 24px; left: 27px; font-size: 9px; letter-spacing: .17em; color: white; }
.video-toggle { position: absolute; z-index: 2; top: 50%; left: 50%; width: 58px; height: 58px; transform: translate(-50%,-50%); display: grid; place-items: center; padding: 0 0 0 2px; border: 0; border-radius: 50%; color: var(--navy); background: var(--yellow); font: 700 17px var(--poppins); cursor: pointer; animation: play-breathe 2.3s ease-in-out infinite; transition: scale .2s, background .2s; }
.video-toggle:hover { scale: 1.08; background: #fff; }
.community-strip { min-height: 770px; padding: 130px 10vw 138px; position: relative; display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 7vw; overflow: hidden; background: var(--paper); }
.community-copy { position: relative; z-index: 2; }
.community-copy h2 { font-size: clamp(61px, 8.2vw, 120px); }
.community-copy > p:not(.eyebrow) { max-width: 460px; margin: 28px 0 18px; color: #536d86; font-size: 17px; line-height: 1.9; }
.community-photo { height: clamp(430px, 50vw, 660px); position: relative; margin: 0; overflow: hidden; clip-path: polygon(5% 1%,100% 0,95% 100%,0 92%); transform: rotate(1.2deg); }
.community-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 51% 44%; transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.community-photo:hover img { transform: scale(1.05); }
.community-photo figcaption { position: absolute; left: 24px; bottom: 25px; color: white; text-shadow: 0 1px 8px rgba(0,0,0,.5); font-size: 9px; letter-spacing: .17em; }
.community-doodle { position: absolute; bottom: 16%; left: 39%; z-index: 2; font: 600 28px/.8 var(--hand); color: var(--pink); transform: rotate(-8deg); }
.manifesto { min-height: 610px; padding: 120px 8vw; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; overflow: hidden; text-align: center; color: white; background: #132b46; clip-path: polygon(0 5%,100% 0,100% 100%,0 95%); }
.manifesto .eyebrow { color: #bdd8e1; position: relative; z-index: 1; }
.manifesto h2 { max-width: 1150px; font-size: clamp(52px, 8.3vw, 122px); position: relative; z-index: 1; }
.manifesto h2 em { color: var(--yellow); }
.manifesto .button { margin-top: 35px; position: relative; z-index: 1; }
.manifesto-route { position: absolute; display: flex; align-items: center; gap: 22px; width: 80%; opacity: .34; transform: rotate(-13deg); }
.manifesto-route span { flex: 1; border-top: 2px dashed #a6d5e0; animation: dash-flow 2s linear infinite; }
.manifesto-route i { color: var(--pink); font-size: 27px; font-style: normal; }
.details { min-height: 700px; padding-top: 145px; padding-bottom: 150px; display: grid; grid-template-columns: .7fr 1.8fr; gap: 5vw; }
.details-content .eyebrow { color: var(--pink); }
.details h2 { font-size: clamp(66px, 9.6vw, 140px); }
.detail-ribbon { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 55px; border-top: 1px solid rgba(16,45,80,.22); border-bottom: 1px solid rgba(16,45,80,.22); }
.detail-ribbon div { min-height: 94px; padding: 18px 15px; display: flex; flex-direction: column; justify-content: center; gap: 9px; border-right: 1px solid rgba(16,45,80,.16); }
.detail-ribbon div:first-child { padding-left: 0; }.detail-ribbon div:last-child { border: 0; }
.detail-ribbon span { font-size: 10px; font-weight: 600; letter-spacing: .13em; color: var(--muted); }
.detail-ribbon strong { font-size: 16px; font-weight: 600; }
.venue-note { display: flex; align-items: center; gap: 11px; margin: 20px 0 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.venue-note span { color: var(--pink); font-size: 20px; }
.rsvp { min-height: 730px; display: grid; grid-template-columns: 1fr 1fr; background: var(--ice); overflow: hidden; }
.rsvp-photo { min-height: 730px; overflow: hidden; clip-path: polygon(0 0,100% 0,92% 100%,0 100%); }
.rsvp-photo img { height: 100%; object-fit: cover; object-position: center 48%; }
.rsvp-copy { align-self: center; padding: 70px 10vw 70px 6vw; }
.rsvp-copy .eyebrow { margin-bottom: 22px; }
.rsvp h2 { font-size: clamp(74px, 10vw, 145px); }
.rsvp-copy > p:not(.eyebrow):not(.rsvp-hint) { max-width: 520px; color: #536d86; font-size: 17px; line-height: 1.9; margin: 23px 0 28px; }
.rsvp-date { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; margin: 0 0 25px; }
.rsvp-date span { font-size: 9px; font-weight: 600; letter-spacing: .16em; color: var(--muted); }
.rsvp-date strong { font-size: 24px; font-weight: 600; color: var(--pink); }
.rsvp-hint { font-size: 11px; color: var(--muted); margin: 12px 0 0; }
.faq { display: grid; grid-template-columns: .7fr 1.8fr; gap: 5vw; padding-top: 135px; padding-bottom: 150px; }
.faq h2 { font-size: clamp(57px, 7vw, 100px); margin-bottom: 40px; }
.faq details { border-top: 1px solid rgba(16,45,80,.18); padding: 19px 0; }
.faq details:last-child { border-bottom: 1px solid rgba(16,45,80,.18); }
.faq summary { display: flex; justify-content: space-between; align-items: center; gap: 18px; list-style: none; cursor: pointer; font-size: 15px; font-weight: 500; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary span { color: var(--pink); font-size: 22px; font-weight: 300; transition: transform .25s; }
.faq details[open] summary span { transform: rotate(45deg); }
.faq details p { max-width: 700px; margin: 11px 40px 3px 0; font-size: 14px; line-height: 1.85; color: var(--muted); }
.site-footer { min-height: 180px; padding: 30px 8vw 25px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 30px; color: var(--navy); background: var(--ice); }
.footer-brand { width: 145px; }
.site-footer p { margin: 0; font-size: 13px; line-height: 1.6; font-weight: 500; }
.site-footer p span { color: var(--muted); font-size: 10px; }
.back-top { font-size: 11px; font-weight: 500; border-bottom: 1px solid var(--pink); padding-bottom: 5px; }
.site-footer small { grid-column: 1/-1; border-top: 1px solid rgba(16,45,80,.14); padding-top: 17px; color: var(--muted); font-size: 8px; letter-spacing: .1em; }
.reveal { opacity: 0; transform: translateY(38px); transition: opacity .7s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.in-view { opacity: 1; transform: translateY(0); }
.route-stop figure.reveal { transform: translateY(44px) rotate(1deg); }
.route-stop figure.reveal.in-view { transform: translateY(0) rotate(0); }
@keyframes hero-arrive { from { transform: scale(1.09); } to { transform: scale(1.035); } }
@keyframes content-arrive { from { opacity: 0; translate: 0 22px; } to { opacity: 1; translate: 0 0; } }
@keyframes stamp-arrive { from { opacity: 0; scale: .72; rotate: -9deg; } to { opacity: 1; scale: 1; rotate: 9deg; } }
@keyframes ticker-run { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes arrow-drift { 0%,100% { transform: translateY(0); } 50% { transform: translateY(7px); } }
@keyframes arrow-sway { 0%,100% { transform: translate(0,0) rotate(0); } 50% { transform: translate(5px,-5px) rotate(3deg); } }
@keyframes dash-flow { to { stroke-dashoffset: -44; } }
@keyframes play-breathe { 0%,100% { box-shadow: 0 0 0 0 rgba(240,220,44,.33); } 50% { box-shadow: 0 0 0 11px rgba(240,220,44,0); } }
@media (max-width: 950px) {
  .site-header { padding: 0 4vw; }.site-header nav { gap: 16px; font-size: 9px; }.brand { width: 122px; flex-basis: 122px; }
  .hero-content { left: 7vw; }.hero h1 { font-size: clamp(150px,25vw,230px); }.hero-meta { left: 7vw; right: 7vw; }
  .experience, .route-intro, .details, .faq { grid-template-columns: .55fr 1.75fr; gap: 4vw; }
  .experience h2, .route-intro h2, .community-copy h2 { font-size: clamp(62px,10vw,110px); }
  .route-flow { padding-left: 10vw; padding-right: 4vw; }.route-rail { left: 2.2vw; }
  .route-stop { grid-template-columns: .9fr 1.1fr; gap: 3vw; min-height: 445px; }.route-stop figure { height: 430px; }
  .video-story { padding-left: 6vw; padding-right: 6vw; gap: 4vw; }.community-strip { padding-left: 7vw; padding-right: 7vw; }
}
@media (max-width: 640px) {
  html { scroll-padding-top: 68px; }.site-header { height: 68px; padding: 0 16px; gap: 10px; }.brand { width: 105px; flex-basis: 105px; }
  .site-header nav { display: none; }.button-small { min-height: 39px; font-size: 9px; padding: 0 11px; }
  .section-pad { padding-left: 23px; padding-right: 23px; }
  .hero { min-height: 760px; height: calc(100svh - 68px); max-height: 940px; }
  .hero-photo { object-position: 58% 50%; }.hero-shade { background: linear-gradient(90deg,rgba(9,29,52,.83),rgba(9,29,52,.36)),linear-gradient(0deg,rgba(9,29,52,.65),transparent 60%); }
  .hero-content { left: 23px; right: 20px; top: 47%; transform: translateY(-42%); }.hero-eyebrow { max-width: 270px; font-size: 8px; line-height: 1.8; }.hero-kicker { margin-top: 34px; font-size: 10px; }
  .hero h1 { font-size: clamp(138px,36vw,220px); margin-left: -7px; }.hero-subtitle { font-size: clamp(33px,9.7vw,52px); }.hero-desc { max-width: 330px; font-size: 14px; }
  .hero-stamp { width: 106px; height: 106px; top: 7%; right: 7%; }.hero-stamp span { font-size: 6px; }.hero-stamp strong { font-size: 9px; }.hero-stamp i { right: 18px; bottom: 9px; font-size: 11px; }
  .hero-meta { left: 23px; right: 23px; bottom: 22px; display: flex; flex-direction: column; gap: 8px; font-size: 7px; }.scroll-cue { display: none; }.hero-photo-label { right: 23px; bottom: 90px; font-size: 7px; }
  .ticker { height: 61px; }.ticker-track { font-size: 19px; gap: 22px; }
  .experience { min-height: auto; padding-top: 85px; padding-bottom: 91px; display: block; }.experience .section-side { margin-bottom: 32px; flex-direction: row; align-items: center; gap: 12px; }.experience .side-line { height: 1px; width: 42px; margin: 0; }.side-word { font-size: 20px; }
  .experience h2, .route-intro h2, .community-copy h2 { font-size: clamp(54px,15vw,83px); }.eyebrow { font-size: 8px; letter-spacing: .16em; margin-bottom: 18px; }
  .experience-lower { margin-top: 34px; display: block; }.experience-big { font-size: 25px; margin-bottom: 18px; }.experience-copy p { font-size: 14px; }
  .moment-band { display: flex; flex-direction: column; }.moment-image { min-height: 370px; height: 58vw; clip-path: polygon(0 0,100% 0,96% 100%,0 94%); }.moment-image img { min-height: 370px; }
  .moment-quote { padding: 38px 26px 70px; }.quote-mark { font-size: 72px; }.moment-quote p { font-size: clamp(42px,12vw,63px); }.quote-credit { font-size: 7px; }.band-arrow { width: 100px; right: 0; bottom: 2%; }
  .route-intro { padding-top: 85px; padding-bottom: 47px; display: block; }.route-intro .section-side { flex-direction: row; align-items: center; gap: 12px; margin-bottom: 37px; }.route-intro .side-line { height: 1px; width: 36px; margin: 0; }.route-intro .side-word { font-size: 20px; }
  .route-intro h2 { font-size: clamp(56px,15vw,84px); }.route-intro-text { font-size: 14px; margin-top: 18px; }
  .route-flow { padding: 0 22px 10px 47px; }.route-rail { left: 8px; width: 46px; bottom: 2rem; }.rail-dots { left: 20px; }.route-train { width: 68px; height: 45px; left: -4px; }
  .route-stop { display: flex; flex-direction: column; align-items: stretch; gap: 20px; min-height: auto; padding: 25px 0 48px; }.route-stop::before { left: -27px; top: 59px; width: 9px; height: 9px; }
  .stop-copy { padding-left: 0; }.stop-reverse .stop-copy { order: 0; }.stop-reverse figure { order: 0; }
  .stop-label { font-size: 8px; margin-bottom: 8px; }.stop-number { position: absolute; right: 0; top: -6px; font-size: 78px; }.route-stop h3 { margin: 0; font-size: clamp(36px,10vw,53px); max-width: 400px; }.route-stop .stop-copy > p:not(.stop-label) { font-size: 14px; margin-bottom: 0; }
  .handwritten { font-size: 23px; margin-top: 10px; }.route-stop figure, .stop-reverse figure { width: calc(100% + 20px); margin-left: -10px; height: 72vw; max-height: 430px; clip-path: polygon(2% 0,100% 4%,96% 100%,0 94%); }
  .video-story { display: flex; flex-direction: column; align-items: stretch; padding: 86px 23px 92px; gap: 32px; clip-path: polygon(0 2%,100% 0,100% 98%,0 100%); }.video-copy h2 { font-size: clamp(43px,12vw,67px); }.video-copy > p:not(.eyebrow) { font-size: 14px; }.video-frame { height: 112vw; max-height: 600px; clip-path: polygon(3% 0,100% 4%,96% 100%,0 94%); }
  .community-strip { padding: 85px 23px 98px; display: flex; flex-direction: column; align-items: stretch; gap: 36px; }.community-copy h2 { font-size: clamp(60px,16vw,88px); }.community-copy > p:not(.eyebrow) { font-size: 14px; }.community-photo { width: 92%; height: 111vw; max-height: 570px; align-self: flex-end; }.community-doodle { left: 7%; bottom: 10%; font-size: 25px; }
  .manifesto { min-height: 500px; padding: 92px 22px; clip-path: polygon(0 3%,100% 0,100% 100%,0 97%); }.manifesto h2 { font-size: clamp(48px,13vw,76px); }.manifesto-route { width: 120%; }
  .details { min-height: auto; padding-top: 87px; padding-bottom: 95px; display: block; }.details .section-side, .faq .section-side { flex-direction: row; align-items: center; gap: 12px; margin-bottom: 35px; }.details .side-line, .faq .side-line { height: 1px; width: 35px; margin: 0; }.details .side-word, .faq .side-word { font-size: 20px; }
  .details h2 { font-size: clamp(59px,16vw,91px); }.detail-ribbon { grid-template-columns: 1fr 1fr; margin-top: 35px; }.detail-ribbon div { min-height: 78px; padding: 13px 10px; border-bottom: 1px solid rgba(16,45,80,.16); }.detail-ribbon div:nth-child(2) { border-right: 0; }.detail-ribbon div:nth-child(3), .detail-ribbon div:nth-child(4) { border-bottom: 0; }.detail-ribbon div:first-child { padding-left: 10px; }.detail-ribbon span { font-size: 8px; }.detail-ribbon strong { font-size: 13px; }.venue-note { font-size: 12px; }
  .rsvp { display: flex; flex-direction: column; }.rsvp-photo { min-height: 420px; height: 76vw; max-height: 580px; clip-path: polygon(0 0,100% 0,96% 100%,0 94%); }.rsvp-copy { padding: 60px 24px 68px; }.rsvp h2 { font-size: clamp(72px,19vw,110px); }.rsvp-copy > p:not(.eyebrow):not(.rsvp-hint) { font-size: 14px; }.rsvp-date strong { font-size: 22px; }
  .faq { display: block; padding-top: 86px; padding-bottom: 96px; }.faq h2 { font-size: clamp(48px,13vw,75px); margin-bottom: 30px; }.faq summary { font-size: 13px; }.faq details p { font-size: 13px; }
  .site-footer { min-height: 200px; padding: 28px 23px 20px; grid-template-columns: 1fr auto; gap: 14px; }.footer-brand { width: 118px; grid-column: 1; grid-row: 1; }.site-footer p { grid-column: 1/-1; grid-row: 2; font-size: 11px; }.back-top { grid-column: 2; grid-row: 1; font-size: 9px; }.site-footer small { grid-row: 3; font-size: 7px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Editorial refinements from the latest visual review */
.hero-shade { background: linear-gradient(0deg, rgba(8,27,49,.94) 0%, rgba(8,27,49,.79) 24%, rgba(8,27,49,.24) 63%, rgba(8,27,49,.06) 100%); }
.hero-content { top: auto; bottom: 11%; transform: none; }
.hero h1 { font-size: clamp(150px, 24vw, 330px); }
.hero-subtitle { max-width: 760px; font-size: clamp(35px, 5.4vw, 76px); }
.hero-desc { font-size: clamp(16px, 1.35vw, 20px); max-width: 470px; }
.hero-stamp { top: 14%; }
.button { border-radius: 999px; }
.button-light { background: var(--pink); color: white; box-shadow: 0 9px 28px rgba(237,22,142,.24); animation: button-heartbeat 2.2s ease-in-out infinite; }
.button-light:hover { color: var(--navy); background: white; }
.button-primary { border-radius: 999px; }
.button-small { border-radius: 999px; }
.ticker { background: var(--ice); color: var(--navy); }
.ticker-track i { color: var(--pink); }
.ticker-track { font-size: clamp(23px, 3.4vw, 45px); }
.experience { min-height: 780px; }
.experience .section-side { align-self: start; padding-top: 45px; }
.experience .section-index, .route-intro .section-index, .details .section-index, .faq .section-index { font-size: 12px; }
.experience h2 { font-size: clamp(82px, 12vw, 168px); max-width: 1080px; }
.experience-lower { margin-top: 45px; gap: 7vw; }
.experience-big { font-size: clamp(30px, 3.6vw, 52px); }
.experience-copy p { font-size: 17px; }
.moment-quote { padding-right: 7vw; }
.quote-credit { display: inline-block; padding: 12px 16px; border-radius: 99px; background: rgba(255,255,255,.58); font-size: 11px; letter-spacing: .12em; }
.route-section { background: #e4f5fa; }
.route-intro { padding-top: 110px; padding-bottom: 100px; }
.route-intro .section-side { padding-top: 8px; }
.route-intro .section-index { display: inline-block; max-width: 220px; font-size: 15px; line-height: 1.55; }
.route-intro h2 { font-size: clamp(76px, 10.4vw, 150px); }
.route-intro-text { max-width: 770px; font-size: clamp(19px, 2.1vw, 27px); line-height: 1.65; }
.route-topics { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; max-width: 800px; margin-top: 30px; color: var(--navy); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.route-topics i { color: var(--pink); font-style: normal; font-size: 20px; }
.route-stop { min-height: 590px; }
.route-stop:nth-child(even) .stop-copy { background: rgba(255,255,255,.5); }
.stop-copy { padding: 25px 24px; }
.stop-label { font-size: 12px; }
.route-stop figure { height: clamp(390px, 47vw, 650px); }
.route-stop .station-photo-wide img { object-position: center 36%; }
.route-stop .station-photo-wide { clip-path: polygon(0 4%,100% 0,96% 93%,4% 100%); }
.band-arrow { display: none; }
.details { background: #fffdf7; margin-top: 0; padding-top: 115px; padding-bottom: 118px; }
.details-content .eyebrow { font-size: 14px; }
.detail-ribbon { background: var(--ice); border: 0; border-radius: 20px; overflow: hidden; }
.detail-ribbon div { min-height: 130px; padding: 24px; }
.detail-ribbon span { font-size: 12px; }
.detail-ribbon strong { font-size: clamp(19px, 2.2vw, 27px); }
.detail-ribbon div:last-child { border-right: 0; }
.video-story { background: #132b46; }
.video-copy h2 { max-width: 660px; font-size: clamp(50px, 6.3vw, 86px); }
.rsvp { display: block; padding: 112px 8vw; background: var(--ice); position: relative; overflow: hidden; }
.rsvp::before { content: "✳"; position: absolute; right: 5vw; top: 1vw; color: rgba(237,22,142,.12); font-size: clamp(180px, 28vw, 410px); line-height: 1; }
.rsvp-copy { max-width: 1050px; margin: 0 auto; padding: 10px 0; position: relative; z-index: 1; }
.rsvp h2 { font-size: clamp(90px, 13vw, 176px); }
.rsvp-copy > p:not(.eyebrow):not(.rsvp-hint) { font-size: clamp(18px, 2vw, 23px); max-width: 750px; }
.rsvp-date { width: fit-content; padding: 18px 26px; margin: 28px 0; border-left: 5px solid var(--pink); background: white; }
.rsvp-date span { font-size: 12px; }
.rsvp-date strong { font-size: clamp(32px, 4.5vw, 56px); line-height: 1.1; }
.faq { background: #f3fbfd; }
.faq .section-index { max-width: 220px; line-height: 1.5; }
@keyframes button-heartbeat { 0%, 100% { box-shadow: 0 9px 28px rgba(237,22,142,.22); } 50% { box-shadow: 0 9px 34px rgba(237,22,142,.4), 0 0 0 8px rgba(237,22,142,.08); } }
@media (max-width: 950px) {
  .hero-content { top: auto; bottom: 11%; }
  .hero h1 { font-size: clamp(150px, 27vw, 260px); }
  .experience h2 { font-size: clamp(72px, 12vw, 115px); }
  .route-stop { min-height: 500px; }
  .details { padding-left: 6vw; padding-right: 6vw; }
}
@media (max-width: 640px) {
  .hero-shade { background: linear-gradient(0deg,rgba(8,27,49,.96) 0%,rgba(8,27,49,.78) 42%,rgba(8,27,49,.16) 100%); }
  .hero-content { top: auto; bottom: 15%; left: 23px; right: 20px; transform: none; }
  .hero-kicker { margin-top: 0; }
  .hero h1 { font-size: clamp(140px, 38vw, 215px); }
  .hero-subtitle { font-size: clamp(33px, 9.4vw, 54px); }
  .hero-stamp { top: 8%; }
  .ticker-track { font-size: 20px; }
  .experience { min-height: 0; }
  .experience h2 { font-size: clamp(63px, 16vw, 90px); }
  .experience-lower { margin-top: 28px; }
  .experience-big { font-size: 29px; line-height: 1.22; }
  .experience-copy p { font-size: 16px; }
  .moment-quote p { font-size: clamp(43px, 12vw, 64px); }
  .quote-credit { font-size: 9px; }
  .route-intro .section-index { font-size: 11px; max-width: 180px; }
  .route-intro h2 { font-size: clamp(58px, 15.5vw, 85px); }
  .route-intro-text { font-size: 17px; line-height: 1.7; }
  .route-topics { gap: 8px 11px; font-size: 9px; line-height: 1.6; }
  .route-stop figure, .stop-reverse figure { height: auto; aspect-ratio: 4 / 3; }
  .route-stop .station-photo-wide img { object-position: center 30%; }
  .route-stop .stop-copy { padding: 14px 12px; }
  .details { padding: 80px 23px 85px; }
  .details .section-index { font-size: 11px; }
  .detail-ribbon { border-radius: 15px; }
  .detail-ribbon div { min-height: 94px; padding: 13px; }
  .detail-ribbon span { font-size: 9px; }
  .detail-ribbon strong { font-size: 17px; }
  .video-copy h2 { font-size: clamp(45px, 12vw, 68px); }
  .rsvp { padding: 82px 24px 92px; }
  .rsvp h2 { font-size: clamp(74px, 20vw, 114px); }
  .rsvp-date { padding: 16px; }
  .rsvp-date strong { font-size: 33px; }
  .rsvp-copy > p:not(.eyebrow):not(.rsvp-hint) { font-size: 16px; }
  .faq .section-index { font-size: 11px; }
}
.hero-content { bottom: 9%; }
.hero h1 { font-size: clamp(130px, 17.5vw, 238px); line-height: .82; margin: 10px 0 14px; }
.hero-subtitle { font-size: clamp(38px, 4.5vw, 63px); line-height: 1.04; }
.hero-desc { margin: 14px 0 22px; }
@media (max-width: 950px) { .hero h1 { font-size: clamp(138px, 19vw, 218px); } }
@media (max-width: 640px) { .hero-content { bottom: 14%; } .hero h1 { font-size: clamp(126px, 34vw, 190px); } .hero-subtitle { font-size: clamp(33px, 8.5vw, 48px); } }
:root { --yellow: #eaf7fb; }
.hero { height: auto; min-height: 0; padding-top: 55vw; background: var(--navy); }
.hero-photo { position: absolute; top: 0; left: 0; width: 100%; height: 64vw; object-fit: contain; object-position: center top; }
.hero-shade { background: linear-gradient(0deg,var(--navy) 0%,rgba(16,45,80,.96) 15%,transparent 49%); }
.hero-content { position: relative; top: auto; bottom: auto; left: auto; right: auto; padding: 0 10vw 110px; margin-top: -9vw; transform: none; }
.hero h1 { font-size: clamp(130px,19vw,250px); }
.hero-subtitle { font-size: clamp(34px,4.5vw,65px); }
.hero-meta { bottom: 28px; }
.experience, .route-intro, .details, .faq { display: block; }
.section-side { display: flex !important; flex-direction: row !important; align-items: center; gap: 25px; width: 100%; padding: 22px 25px !important; margin: 0 0 55px !important; background: var(--navy); color: white; }
.section-side .section-index { font-size: clamp(17px,2vw,26px) !important; max-width: none !important; color: white; }
.section-side .side-word { font-size: clamp(28px,3vw,40px) !important; color: #bce4f1; }
.section-side .side-line { display: none; }
.experience-main { max-width: 1120px; margin: auto; }
.proposal { font-size: clamp(22px,2.8vw,35px); line-height: 1.6; max-width: 1050px; }
.proposal-topics { display: flex; flex-wrap: wrap; gap: 14px; margin: 35px 0; }
.proposal-topics span { padding: 16px 23px; border: 1px solid #8eb7cc; border-radius: 99px; font-size: clamp(18px,2vw,26px); }
.experience .button { font-size: 19px; min-height: 68px; }
.route-intro { background: #f9e5f0; }
.route-intro h2 { max-width: 1080px; }
.route-intro-text { max-width: 1000px; }
.route-stop:nth-child(even) .stop-copy { background: transparent; }
.route-stop .station-photo-wide { aspect-ratio: 4/3; height: auto; clip-path: none; }
.route-stop .station-photo-wide img { object-fit: contain; height: auto; }
.quote-credit { font-size: clamp(15px,1.5vw,21px); background: var(--navy); color: white; padding: 18px 22px; }
.community-strip { display: block; min-height: 0; }
.community-copy { max-width: 1100px; }
.community-copy .text-link { font-size: 23px; padding: 15px 0; }
.venue-photo { margin: 40px 0; }
.venue-photo img { max-height: 680px; object-fit: cover; object-position: center 68%; }
.venue-photo figcaption { padding: 15px 0; font-size: 16px; font-weight: 600; }
.detail-ribbon { grid-template-columns: repeat(2,1fr); }
.detail-ribbon strong { font-size: clamp(28px,4vw,48px); }
.detail-ribbon span { font-size: 15px; }
@media(max-width:640px) {
.hero { height:auto; max-height:none; min-height:0; padding-top:75vw; }
.hero-photo { height:75vw; }
.hero-content { position:relative; margin-top:0; padding:0 23px 135px; bottom:auto; left:auto; right:auto; }
.hero h1 { font-size:35vw; }
.hero-shade { background:linear-gradient(0deg,var(--navy) 45%,transparent 80%); }
.section-side { flex-wrap:wrap; gap:8px; padding:18px !important; margin-bottom:30px !important; }
.section-side .section-index { font-size:17px !important; }
.section-side .side-word { font-size:28px !important; }
.detail-ribbon span { font-size:11px; }
.detail-ribbon strong { font-size:26px; }
}
/* Focused full-bleed hero refinement */
.hero { width:100%; height: min(880px, calc(100svh - 80px)); min-height:650px; padding:0; background:var(--navy); overflow:hidden; }
.hero-photo { inset:0; width:100%; height:100%; object-fit:cover; object-position:center 40%; }
.hero-shade { background:linear-gradient(0deg,rgba(16,45,80,1) 0%,rgba(16,45,80,.96) 14%,rgba(16,45,80,.58) 38%,rgba(16,45,80,0) 72%); }
.hero-content { position:absolute; left:8vw; right:8vw; bottom:105px; top:auto; margin:0; padding:0; display:grid; grid-template-columns:minmax(250px,.72fr) minmax(300px,1fr); grid-template-rows:auto auto auto; align-items:center; column-gap:5vw; transform:none; max-width:none; }
.hero-kicker { grid-column:1/-1; font-size:15px; margin:0 0 10px; letter-spacing:.22em; }
.hero h1 { grid-column:1; grid-row:2/4; font-size:clamp(135px,18vw,250px); line-height:.83; margin:0; animation:year-beat 2.4s ease-in-out infinite; transform-origin:center; }
.hero-subtitle { grid-column:2; grid-row:2; max-width:720px; margin:0; font-size:clamp(33px,4.2vw,61px); line-height:1.08; }
.hero-desc { grid-column:2; grid-row:3; margin:13px 0 0; max-width:500px; font-size:17px; }
.hero-content .button { grid-column:2; grid-row:4; justify-self:start; margin-top:15px; }
.hero-meta { z-index:3; bottom:27px; }
.hero-photo-label { right:8vw; bottom:68px; }
@keyframes year-beat { 0%,100% { transform:scale(1); } 48% { transform:scale(1.025); } }
@media(max-width:800px) {
 .hero { height:calc(100svh - 68px); min-height:650px; }
 .hero-photo { object-position:center 36%; }
 .hero-shade { background:linear-gradient(0deg,rgba(16,45,80,1) 0%,rgba(16,45,80,.93) 23%,rgba(16,45,80,.35) 55%,rgba(16,45,80,.02) 78%); }
 .hero-content { left:24px; right:24px; bottom:88px; display:block; }
 .hero-kicker { margin-bottom:3px; font-size:11px; }
 .hero h1 { font-size:clamp(120px,23vw,180px); margin:0; }
 .hero-subtitle { max-width:680px; margin:5px 0 0; font-size:clamp(30px,6vw,48px); }
 .hero-desc { margin:9px 0 0; font-size:15px; }
 .hero-content .button { margin-top:14px; }
}
@media(max-width:640px) {
 .hero { height:calc(100svh - 68px); min-height:690px; }
 .hero-photo { object-position:center 28%; }
 .hero-content { left:22px; right:22px; bottom:110px; }
 .hero h1 { font-size:clamp(112px,32vw,170px); }
 .hero-subtitle { font-size:clamp(30px,8.6vw,43px); }
 .hero-desc { max-width:330px; font-size:14px; }
 .hero-meta { left:22px; right:22px; bottom:17px; font-size:7px; }
 .hero-photo-label { right:22px; bottom:76px; }
}
.hero-content { bottom: 66px; }
.scroll-cue { display: none !important; }
@media (max-width:800px) { .hero-content { bottom: 62px; } }
@media (max-width:640px) { .hero-content { bottom: 86px; } }
/* Give the hero a little more vertical room so its copy sits below the faces. */
.hero { height: min(980px, calc(100svh + 20px)); min-height: 760px; }
@media (max-width:800px) { .hero { height: min(970px, calc(100svh + 70px)); min-height: 760px; } }
@media (max-width:640px) { .hero { height: min(1000px, calc(100svh + 110px)); min-height: 790px; } }
.hero { height: min(1060px, calc(100svh + 100px)); min-height: 840px; }
@media(max-width:800px) { .hero { height: min(1050px, calc(100svh + 110px)); min-height: 820px; } }
@media(max-width:640px) { .hero { height: min(1080px, calc(100svh + 145px)); min-height: 850px; } }
/* Keep each section label bar flush with the content that follows it. */
.section-side { margin: 0 !important; }
/* Bring the section bars up to the previous color band; preserve breathing room below each bar. */
.experience { padding-top: 0 !important; }
.route-intro { padding-top: 0 !important; }
.details { padding-top: 0 !important; }
.faq { padding-top: 0 !important; }
.section-side { margin: 0 0 55px !important; }
@media(max-width:640px) { .section-side { margin: 0 0 30px !important; } }
/* Make every section label bar run edge to edge, even inside padded sections. */
.section-side { width: 100vw !important; margin-left: calc(50% - 50vw) !important; }
.section-side { position: relative; left: 50%; width: 100vw !important; margin-left: 0 !important; transform: translateX(-50%); }
.experience { padding-top: 0 !important; }

/* Hero identity: use the supplied event mark and clarify the edition. */
.hero-brand-mark { display:block; grid-column:1; grid-row:2/4; align-self:center; width:min(100%, 520px); max-height:360px; object-fit:contain; object-position:left center; filter:drop-shadow(0 8px 24px rgba(0,0,0,.08)); }
.hero-kicker { color:rgba(255,255,255,.9); }
.hero-kicker span { color:var(--pink); font-size:1.25em; padding:0 .2em; }
.hero-subtitle { grid-column:2; grid-row:2/4; }
@media(min-width:801px) {
  .hero-content { grid-template-rows:auto; }
  .hero-brand-mark, .hero-subtitle { grid-row:1; }
}
@media(max-width:800px) {
  .hero-brand-mark { width:min(100%, 450px); max-height:290px; margin:0 0 8px; object-position:left center; }
  .hero-subtitle { max-width:680px; margin:0; font-size:clamp(30px,6vw,48px); }
}
@media(max-width:640px) {
  .hero-brand-mark { width:min(100%, 370px); max-height:220px; margin:0 0 8px; }
  .hero-subtitle { font-size:clamp(27px,7.6vw,40px); line-height:1.08; }
}

/* Event information immediately beneath the hero */
.event-brief { display:grid; grid-template-columns:minmax(260px,.8fr) minmax(420px,1.2fr); align-items:center; gap:42px 7vw; padding:clamp(52px,7vw,92px) max(8vw,calc((100vw - 1440px)/2)); background:#eaf7fb; color:var(--navy); }
.brief-topline { display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-bottom:25px; }
.brief-topline > span:first-child { font-size:12px; font-weight:600; letter-spacing:.16em; color:#536d86; }
.free-badge { display:inline-flex; align-items:center; gap:8px; padding:9px 15px; border:1px solid var(--pink); border-radius:999px; background:#fff; color:var(--navy); font-size:15px; font-weight:600; transform:rotate(-3deg); box-shadow:0 6px 16px rgba(16,45,80,.07); }
.free-badge i { color:var(--pink); font-style:normal; }
.brief-intro h2 { max-width:520px; margin:0; font-size:clamp(36px,4.4vw,64px); line-height:1.05; letter-spacing:-.065em; font-weight:500; }
.brief-intro h2 em { color:var(--pink); font-style:normal; }
.brief-facts { display:grid; grid-template-columns:1fr 1fr; gap:0 28px; border-top:1px solid rgba(16,45,80,.2); }
.brief-fact { min-width:0; padding:20px 0 18px; border-bottom:1px solid rgba(16,45,80,.2); }
.brief-fact > span { display:block; margin-bottom:8px; color:#536d86; font-size:11px; font-weight:600; letter-spacing:.15em; }
.brief-fact strong { display:block; font-size:clamp(19px,2vw,27px); line-height:1.18; font-weight:600; letter-spacing:-.035em; }
.brief-fact p { margin:7px 0 0; color:#536d86; font-size:15px; line-height:1.5; }
.brief-cta { margin-top:23px; border-radius:999px; padding:17px 25px; font-size:15px; }
.brief-cta span { margin-left:12px; }
@media(max-width:800px) {
  .event-brief { grid-template-columns:1fr; gap:30px; padding:52px 24px 58px; }
  .brief-intro h2 { max-width:620px; font-size:clamp(37px,7.5vw,58px); }
}
@media(max-width:540px) {
  .event-brief { padding:44px 22px 50px; }
  .brief-topline { gap:12px; margin-bottom:20px; }
  .brief-topline > span:first-child { font-size:10px; }
  .free-badge { padding:8px 12px; font-size:14px; }
  .brief-facts { grid-template-columns:1fr; }
  .brief-fact { padding:16px 0; }
  .brief-fact strong { font-size:22px; }
  .brief-cta { width:100%; justify-content:center; }
}

/* First section: the event experience as three visual stops */
.journey-section { background:#e4f5fa; color:var(--navy); }
.journey-intro { display:grid; grid-template-columns:.7fr 1.8fr; gap:5vw; align-items:start; padding-top:105px; padding-bottom:28px; }
.journey-intro .section-side { margin:0; }
.journey-intro .section-index { display:inline-block; max-width:250px; font-size:14px; line-height:1.5; }
.journey-heading .eyebrow { margin:0 0 24px; }
.journey-heading h2 { max-width:1100px; margin:0; font-size:clamp(58px,8.5vw,122px); line-height:.98; letter-spacing:-.085em; font-weight:600; }
.journey-heading h2 em { color:var(--pink); font-style:normal; }
.journey-summary { max-width:820px; margin:25px 0 0; font-size:clamp(22px,2.7vw,34px); line-height:1.35; font-weight:500; letter-spacing:-.035em; }
.journey-section .route-flow { padding-bottom:45px; }
.moment-bonus { display:inline-flex; align-items:center; margin:0 0 14px; padding:8px 13px; border:1px solid var(--pink); border-radius:999px; color:var(--navy); background:#fff; font-size:11px; font-weight:700; letter-spacing:.1em; transform:rotate(-2deg); }
.moment-bonus { position:relative; padding:12px 18px; border:0; background:linear-gradient(135deg,#102d50 0%,#184b78 100%); color:#fff; font-size:clamp(14px,1.35vw,18px); letter-spacing:.08em; box-shadow:0 9px 22px rgba(16,45,80,.18); animation:bonus-heartbeat 2.4s ease-in-out infinite; }
@keyframes bonus-heartbeat { 0%,100% { transform:rotate(-2deg) scale(1); box-shadow:0 9px 22px rgba(16,45,80,.18); } 12% { transform:rotate(-2deg) scale(1.045); box-shadow:0 10px 28px rgba(16,45,80,.28); } 24% { transform:rotate(-2deg) scale(1); } 36% { transform:rotate(-2deg) scale(1.035); } 48% { transform:rotate(-2deg) scale(1); } }
.journey-section .route-stop .stop-copy > p:not(.stop-label) { max-width:560px; }
.journey-section .route-stop .stop-copy > p strong { color:var(--navy); font-weight:700; }
@media(max-width:800px) {
  .journey-intro { display:block; padding:86px 24px 18px; }
  .journey-intro .section-side { flex-direction:row; align-items:center; gap:12px; margin-bottom:34px; }
  .journey-intro .side-line { width:40px; height:1px; margin:0; }
  .journey-intro .side-word { font-size:20px; }
  .journey-heading h2 { font-size:clamp(54px,10vw,88px); }
  .journey-summary { margin-top:20px; font-size:clamp(20px,3.6vw,27px); }
  .journey-section .route-flow { padding-bottom:24px; }
}
@media(max-width:640px) {
  .journey-intro { padding:76px 23px 12px; }
  .journey-intro .section-side { margin-bottom:29px; }
  .journey-intro .section-index { font-size:11px; max-width:180px; }
  .journey-heading .eyebrow { margin-bottom:18px; }
  .journey-heading h2 { font-size:clamp(48px,13vw,76px); }
  .journey-summary { font-size:20px; line-height:1.45; }
  .moment-bonus { margin:0 0 10px; font-size:13px; padding:10px 15px; }
}

/* Keep full-width section bars from expanding their grid columns. */
.section-side { width:auto !important; margin-left:0 !important; position:relative !important; left:auto !important; transform:none !important; background:transparent !important; isolation:isolate; }
.section-side::before { content:""; position:absolute; z-index:-1; top:0; bottom:0; left:50%; width:100vw; transform:translateX(-50%); background:var(--navy); pointer-events:none; }
.journey-section-bar { margin:0 !important; padding:22px 25px !important; }
.journey-intro { display:block; padding-top:50px; padding-bottom:28px; }
.journey-heading h2 { font-size:clamp(54px,6.5vw,92px); }
body { overflow-x:clip; }
@media(max-width:800px) { .journey-intro { padding:42px 24px 20px; } .journey-heading h2 { font-size:clamp(48px,7vw,72px); } }
@media(max-width:640px) { .journey-section-bar { padding:16px 22px !important; } .journey-intro { padding:36px 23px 16px; } .journey-heading h2 { font-size:clamp(42px,10vw,58px); } }

/* White moving divider between event details and the experience section. */
.ticker { background:#fff !important; border-block:1px solid rgba(16,45,80,.10); }

/* Networking: an open invitation to exchange, anchored by real moments from 2025. */
.networking-section { position:relative; overflow:visible; padding:0; background:#102d50; color:#fff; --networking-overlap:-150px; }
.networking-copy { display:grid; grid-template-columns:1.05fr .8fr; align-items:start; gap:clamp(44px,7vw,112px); width:min(100% - 2 * max(7vw,calc((100vw - 1440px)/2)),1440px); margin:0 auto; padding-top:24px; }
.networking-kicker { display:flex; align-items:center; gap:11px; margin:0 0 26px; color:#c4e8f1; font-size:12px; font-weight:600; letter-spacing:.18em; }
.networking-kicker span { color:var(--pink); font-size:19px; }
.networking-heading h2 { max-width:800px; margin:0; font-size:clamp(50px,7.5vw,108px); line-height:.98; letter-spacing:-.075em; font-weight:500; }
.networking-heading h2 em { display:block; margin-top:.12em; color:#f052aa; font-style:normal; font-weight:600; }
.networking-message { max-width:590px; padding-top:47px; }
.networking-message h3 { margin:0 0 22px; color:#fff; font-size:clamp(28px,3vw,42px); line-height:1.12; letter-spacing:-.055em; font-weight:600; }
.networking-message p { margin:0 0 17px; color:rgba(255,255,255,.82); font-size:clamp(16px,1.35vw,19px); line-height:1.75; }
.networking-message .networking-note { margin-top:25px; padding-left:18px; border-left:3px solid var(--pink); color:#fff; }
.networking-gallery { position:relative; z-index:2; width:100%; overflow:hidden; margin:0 0 var(--networking-overlap); padding:0 0 clamp(28px,3vw,42px); transform:translateY(var(--networking-overlap)); }
.networking-gallery-track { display:flex; width:max-content; animation:networking-gallery-drift 52s linear infinite; }
.networking-gallery-group { display:flex; flex:none; gap:16px; padding-right:16px; }
.networking-photo { width:clamp(260px,29vw,390px); height:clamp(230px,25vw,330px); flex:none; margin:0; overflow:hidden; border-radius:5px; background:#1c4267; transform:rotate(-1.2deg); }
.networking-photo:nth-child(even) { transform:rotate(1deg) translateY(10px); }
.networking-photo img { width:100%; height:100%; object-fit:cover; object-position:center 50%; transition:transform .7s ease; }
.networking-photo:hover img { transform:scale(1.04); }
.networking-gallery-group:first-child .networking-photo:first-child img { object-position:center 64%; }
@keyframes networking-gallery-drift { from { transform:translateX(0); } to { transform:translateX(-50%); } }
.networking-gallery:hover .networking-gallery-track { animation-play-state:paused; }
@media(max-width:800px) {
  .networking-section { --networking-overlap:-130px; }
  .networking-copy { width:auto; margin:0 24px; grid-template-columns:1fr; gap:22px; }
  .networking-heading h2 { max-width:680px; font-size:clamp(48px,9vw,78px); }
  .networking-message { padding-top:0; }
  .networking-copy { padding-top:12px; }
  .networking-photo { width:clamp(250px,62vw,340px); height:260px; }
}
@media(max-width:540px) {
  .networking-section { --networking-overlap:-122px; }
  .networking-section { padding-top:0; }
  .networking-copy { margin:0 22px; }
  .networking-kicker { font-size:10px; }
  .networking-heading h2 { font-size:clamp(45px,12vw,62px); }
  .networking-message h3 { font-size:30px; }
  .networking-message p { font-size:16px; }
  .networking-gallery { padding:26px 0 27px; }
  .networking-gallery-group { gap:12px; padding-right:12px; }
  .networking-photo { width:75vw; height:245px; }
}
@media(prefers-reduced-motion:reduce) { .networking-gallery-track { animation:none; } }

/* Edge-to-edge hotel photo banner with centered text over the photographs. */
.hotel-banner { position:relative; display:grid; place-items:center; min-height:clamp(390px,44vw,620px); padding:70px 8vw; overflow:hidden; color:var(--navy); background:#eaf7fb; }
.hotel-banner-photo, .hotel-banner-wash { position:absolute; inset:0; width:100%; height:100%; }
.hotel-banner-photo { object-fit:cover; object-position:center 52%; opacity:0; animation-duration:16s; animation-timing-function:ease-in-out; animation-iteration-count:infinite; }
.hotel-banner-slide-one { animation-name:hotel-slide-one; }
.hotel-banner-slide-two { animation-name:hotel-slide-two; }
.hotel-banner-wash { z-index:1; background:rgba(255,255,255,.62); }
.hotel-banner-copy { position:relative; z-index:2; width:min(100%,1120px); padding:clamp(24px,4vw,50px); text-align:center; }
.hotel-banner-kicker { margin:0 0 23px; color:#4aa9c7; font-size:12px; line-height:1.5; font-weight:700; letter-spacing:.19em; text-shadow:0 1px 12px rgba(255,255,255,.96),0 0 3px rgba(255,255,255,.92); }
.hotel-banner-copy h2 { margin:0; color:#102d50; font-size:clamp(42px,6.5vw,88px); line-height:1.02; letter-spacing:-.075em; font-weight:600; text-shadow:0 2px 18px rgba(255,255,255,.98),0 1px 3px rgba(255,255,255,.96); }
.hotel-banner-copy h2 em { display:block; margin-top:.16em; color:#102d50; font-style:normal; font-weight:700; }
@keyframes hotel-slide-one { 0%,42% { opacity:1; } 50%,92% { opacity:0; } 100% { opacity:1; } }
@keyframes hotel-slide-two { 0%,42% { opacity:0; } 50%,92% { opacity:1; } 100% { opacity:0; } }
@media(max-width:640px) {
  .hotel-banner { min-height:430px; padding:58px 24px; }
  .hotel-banner-slide-one { object-position:30% center; }
  .hotel-banner-slide-two { object-position:25% center; }
  .hotel-banner-copy { padding:26px 8px; }
  .hotel-banner-wash { background:rgba(255,255,255,.68); }
  .hotel-banner-kicker { font-size:9px; margin-bottom:18px; }
  .hotel-banner-copy h2 { font-size:clamp(38px,10.5vw,54px); }
}
@media(prefers-reduced-motion:reduce) {
  .hotel-banner-photo { animation:none; }
  .hotel-banner-slide-one { opacity:1; }
  .hotel-banner-slide-two { opacity:0; }
}

/* Quiet monochrome supporter strip, inspired by the supplied reference. */
.trusted-brands { display:grid; gap:34px; justify-items:center; padding:50px clamp(22px,6vw,88px) 62px; background:#fbfaf7; text-align:center; }
.trusted-brands > p { margin:0; color:#3c3155; font-size:14px; line-height:1.4; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.trusted-brands-logos { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); justify-items:center; align-items:center; gap:30px clamp(32px,5vw,76px); width:min(100%,1280px); }
.trusted-brands-logos img { display:block; width:100%; max-width:250px; height:clamp(86px,10vw,118px); object-fit:contain; filter:none; opacity:.9; }
.trusted-brands-logos img:first-child { max-width:260px; height:clamp(92px,11vw,126px); }
@media(max-width:640px) {
  .trusted-brands { gap:24px; padding:38px 22px 44px; }
  .trusted-brands > p { max-width:320px; font-size:11px; }
  .trusted-brands-logos { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 30px; }
  .trusted-brands-logos img { max-width:40vw; height:78px; }
  .trusted-brands-logos img:first-child { max-width:40vw; height:86px; }
}

/* Final invitation: return to the practical details and make attendance easy to confirm. */
.event-close { position:relative; overflow:hidden; padding:clamp(68px,9vw,124px) max(7vw,calc((100vw - 1280px)/2)); background:#102d50; color:#fff; }
.event-close::before { content:""; position:absolute; top:0; right:0; width:42vw; height:100%; opacity:.18; background:radial-gradient(ellipse at 80% 30%,#65c6e0 0,transparent 62%); pointer-events:none; }
.event-close-inner { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); align-items:center; gap:44px clamp(42px,6vw,90px); width:min(100%,1280px); margin:0 auto; }
.event-close-main { min-width:0; }
.event-close-eyebrow { display:flex; align-items:center; gap:11px; margin:0 0 24px; color:#b7e8f3; font-size:12px; font-weight:700; letter-spacing:.18em; }
.event-close-eyebrow span { color:#f052aa; font-size:20px; }
.event-close h2 { max-width:900px; margin:0; color:#fff; font-size:clamp(54px,8vw,112px); line-height:.93; letter-spacing:-.075em; font-weight:600; }
.event-close h2 em { color:#f052aa; font-style:normal; font-weight:600; }
.event-close-intro { max-width:810px; margin:27px 0 42px; color:rgba(255,255,255,.82); font-size:clamp(17px,1.6vw,21px); line-height:1.65; }
.event-close-details { display:grid; grid-column:1/-1; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid rgba(255,255,255,.28); border-bottom:1px solid rgba(255,255,255,.28); }
.event-close-details > div { display:flex; flex-direction:column; align-items:flex-start; gap:9px; min-height:144px; padding:25px 28px 25px 0; }
.event-close-details > div + div { padding-left:28px; border-left:1px solid rgba(255,255,255,.22); }
.event-close-details span { color:#9fddeb; font-size:11px; line-height:1.4; font-weight:700; letter-spacing:.16em; }
.event-close-details strong { color:#fff; font-size:clamp(17px,1.5vw,21px); line-height:1.3; font-weight:600; }
.event-close-details small { color:rgba(255,255,255,.72); font-size:14px; line-height:1.5; }
.event-close-map { display:inline-flex; align-items:center; gap:7px; margin-top:2px; color:#b7e8f3; font-size:14px; line-height:1.4; font-weight:600; text-decoration-thickness:1px; text-underline-offset:4px; }
.event-close-map:hover { color:#fff; }
.event-close-video { position:relative; justify-self:center; width:100%; max-width:370px; aspect-ratio:9/16; margin:0; overflow:hidden; background:#18395e; clip-path:polygon(3% 0,100% 2%,97% 100%,0 97%); transform:rotate(1.3deg); box-shadow:0 22px 58px rgba(0,0,0,.24); }
.event-close-video::after { content:""; position:absolute; inset:48% 0 0; background:linear-gradient(0deg,rgba(8,25,46,.75),transparent); pointer-events:none; }
.event-close-video video { width:100%; height:100%; object-fit:cover; object-position:center; }
.event-close-video figcaption { position:absolute; z-index:1; right:18px; bottom:21px; left:18px; color:#fff; font-size:10px; line-height:1.4; font-weight:700; letter-spacing:.16em; text-align:center; }
.event-close-action { display:flex; align-items:center; gap:clamp(24px,5vw,66px); margin-top:38px; }
.event-close-button { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:62px; padding:0 31px; border-radius:999px; background:#ed168e; color:#fff; font-size:16px; font-weight:700; text-decoration:none; box-shadow:0 12px 34px rgba(237,22,142,.25); transition:transform .2s ease,background .2s ease; }
.event-close-button:hover { transform:translateY(-3px); background:#d80d7d; }
.event-close-button span { font-size:19px; }
.event-close-note { max-width:390px; margin:0; color:#bfe9f2; font-family:"Caveat",cursive; font-size:clamp(24px,3vw,34px); line-height:1.05; transform:rotate(-2deg); }
@media(max-width:760px) {
  .event-close { padding:65px 24px 74px; }
  .event-close-inner { grid-template-columns:1fr; gap:34px; }
  .event-close-video { width:min(100%,350px); }
  .event-close h2 { font-size:clamp(50px,11vw,76px); }
  .event-close-intro { margin:23px 0 32px; font-size:17px; }
  .event-close-details { grid-template-columns:1fr; }
  .event-close-details > div { min-height:0; padding:19px 0; }
  .event-close-details > div + div { padding-left:0; border-left:0; border-top:1px solid rgba(255,255,255,.22); }
  .event-close-action { align-items:flex-start; flex-direction:column; gap:22px; margin-top:30px; }
  .event-close-button { min-height:58px; padding:0 25px; font-size:15px; }
}

.event-faq { padding:80px max(7vw,calc((100vw - 1100px)/2)) 90px; background:#eaf7fb; color:#102d50; }
.event-faq h2 { margin:12px 0 38px; font-size:clamp(40px,6vw,76px); line-height:1.05; letter-spacing:-.06em; }
.event-faq details { border-top:1px solid #102d5033; }
.event-faq details:last-child { border-bottom:1px solid #102d5033; }
.event-faq summary { position:relative; padding:25px 42px 25px 0; cursor:pointer; list-style:none; font-size:clamp(19px,2vw,25px); line-height:1.4; font-weight:600; }
.event-faq summary::-webkit-details-marker { display:none; }
.event-faq summary::after { content:'+'; position:absolute; right:4px; color:#ed168e; font-size:30px; top:19px; }
.event-faq details[open] summary::after { content:'−'; }
.event-faq details > div { max-width:850px; padding:0 0 25px; font-size:17px; line-height:1.8; }
.event-faq details p { margin:0 0 13px; }
.event-faq details a { color:#102d50; font-weight:700; text-underline-offset:4px; }
@media(max-width:640px) { .event-faq { padding:55px 24px 65px; } .event-faq details > div { font-size:16px; } }

.reservation-toast[hidden] { display:none; }
.reservation-toast { position:fixed; z-index:99; left:24px; bottom:24px; display:flex; align-items:center; gap:13px; width:min(430px,calc(100vw - 48px)); padding:18px 16px; border:1px solid #d7e8ef; border-left:4px solid #ed168e; border-radius:15px; background:#fff; color:#102d50; box-shadow:0 8px 35px #102d5026; animation:toast-enter .4s ease both; }
.reservation-icon { display:grid; place-items:center; flex:none; width:38px; height:38px; border-radius:50%; background:#eaf7fb; color:#ed168e; font-size:25px; }
.reservation-toast p { margin:0; font-size:14px; line-height:1.5; }
.reservation-dismiss { align-self:flex-start; flex:none; margin-left:auto; padding:0 4px; border:0; background:none; color:#728397; font-size:22px; cursor:pointer; }
.angie-whatsapp { position:fixed; z-index:98; right:24px; bottom:24px; display:flex; align-items:center; gap:9px; padding:11px 17px 11px 12px; border-radius:99px; background:#20b860; color:#fff; text-decoration:none; box-shadow:0 5px 22px #102d5033; }
.angie-whatsapp svg { width:32px; height:32px; flex:none; }
.angie-whatsapp span { font-size:12px; font-weight:700; line-height:1.35; }
.angie-whatsapp small { display:block; font-size:11px; font-weight:400; }
@keyframes toast-enter { from { opacity:0; transform:translateY(15px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:640px) { .angie-whatsapp { right:16px; bottom:18px; padding:10px; } .angie-whatsapp span { display:none; } .reservation-toast { left:14px; bottom:87px; width:calc(100vw - 28px); padding:13px; } .reservation-toast p { font-size:13px; } }
@media(prefers-reduced-motion:reduce) { .reservation-toast { animation:none; } }

/* More prominent floating confirmations and contact button. */
.reservation-toast { width:min(490px,calc(100vw - 48px)); padding:22px 20px; gap:16px; }
.reservation-toast p { font-size:16px; }
.reservation-icon { width:46px; height:46px; font-size:29px; }
.angie-whatsapp { padding:14px 21px 14px 15px; gap:11px; }
.angie-whatsapp svg { width:39px; height:39px; }
.angie-whatsapp span { font-size:14px; }
.angie-whatsapp small { font-size:12px; }
@media(max-width:640px) {
  .reservation-toast { left:14px; bottom:98px; width:calc(100vw - 28px); padding:17px 15px; gap:12px; }
  .reservation-toast p { font-size:15px; }
  .reservation-icon { width:42px; height:42px; font-size:27px; }
  .angie-whatsapp { padding:12px; }
  .angie-whatsapp svg { width:39px; height:39px; }
}

.closing-photo-banner { display:grid; grid-template-columns:1fr 1fr; min-height:340px; background:#102d50; color:white; }
.closing-photo-banner > img { height:100%; max-height:390px; width:100%; object-fit:cover; object-position:center 49%; }
.closing-photo-banner > div { display:flex; flex-direction:column; justify-content:center; padding:38px clamp(28px,5vw,76px); }
.closing-photo-banner h2 { margin:0; font-size:clamp(30px,3.6vw,52px); line-height:1.08; letter-spacing:-.055em; font-weight:500; }
.closing-photo-banner h2 em { color:#f052aa; font-style:normal; }
.closing-photo-banner p { margin:20px 0 0; color:#bfe9f2; font-size:16px; line-height:1.5; }
@media(max-width:640px) { .closing-photo-banner { grid-template-columns:1fr; } .closing-photo-banner > img { height:260px; object-position:center 43%; } .closing-photo-banner > div { padding:32px 24px 40px; } .closing-photo-banner h2 { font-size:35px; } }
