@font-face{font-family:"DM Sans";src:url("assets/dm-sans-400.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"DM Sans";src:url("assets/dm-sans-500.ttf") format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"DM Sans";src:url("assets/dm-sans-600.ttf") format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:"DM Sans";src:url("assets/dm-sans-700.ttf") format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:"DM Serif Display";src:url("assets/dm-serif.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Kaushan Script";src:url("assets/kaushan-script.ttf") format("truetype");font-weight:400;font-display:swap}
:root{--ink:#101b3e;--paper:#f8f5ec;--white:#fffdf7;--lilac:#afa0ff;--coral:#ff8e87;--blue:#e5eff5;--line:#c9ccd4;--serif:"DM Serif Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--script:"Kaushan Script",cursive}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:85px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
body::selection{background:var(--lilac);color:var(--ink)}
::selection{background:var(--lilac);color:var(--ink)}
a{color:inherit;text-decoration:none;text-underline-offset:.24em}
button,input{font:inherit}
button{cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--coral);outline-offset:4px}
img{max-width:100%;display:block}
.skip-link{position:absolute;z-index:100;top:-60px;left:16px;background:var(--white);padding:12px 16px;border-radius:4px}
.skip-link:focus{top:12px}
.section-pad{padding:clamp(80px,9vw,150px) max(5vw,calc((100vw - 1440px)/2))}
.site-header{height:76px;padding:0 clamp(24px,4vw,72px);display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--white);position:relative;z-index:20}
.brand{display:inline-flex;align-items:center;gap:12px;white-space:nowrap;font:400 clamp(1.25rem,1.7vw,1.85rem)/1 var(--serif);letter-spacing:-.025em}
.main-nav{display:flex;align-items:center;gap:clamp(20px,2.65vw,46px)}
.main-nav>a:not(.nav-ticket){font-size:.91rem;font-weight:600;position:relative;padding:8px 0}
.main-nav>a:not(.nav-ticket)::after{content:"";height:1px;background:var(--ink);position:absolute;left:0;right:100%;bottom:2px;transition:right .25s ease}
.main-nav>a:not(.nav-ticket):hover::after{right:0}
.nav-ticket{font-size:.91rem;color:#cf4e4a;border:1.5px solid #e66c69;border-radius:100px;padding:13px 24px;white-space:nowrap;transition:background .25s ease,color .25s ease}
.nav-ticket:hover{background:var(--coral);color:var(--ink)}
.nav-ticket span{margin-left:8px;font-size:1.05rem}
.menu-toggle{display:none}
.hero{height:min(750px,calc(100svh - 76px));min-height:600px;position:relative;color:var(--white);overflow:hidden;isolation:isolate}
.hero-photo,.hero-shade{position:absolute;inset:0}
.hero-photo{background:url("assets/desire-doue-ville-aerial.png") center center/cover no-repeat;transform:scale(1.025);animation:hero-arrive 1.3s cubic-bezier(.19,1,.22,1) both}
.hero-shade{background:linear-gradient(0deg,rgba(8,12,28,.8) 0%,rgba(8,12,28,.32) 35%,rgba(8,12,28,0) 76%)}
.hero-inner{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:0 clamp(30px,4vw,72px) clamp(36px,4vw,62px)}
.hero-greeting{font:400 clamp(2.45rem,5vw,5.25rem)/1.1 var(--script);margin:0 0 -12px 8px;text-shadow:0 4px 20px rgba(0,0,0,.28);transform:rotate(-2deg);transform-origin:left center}
.hero-title{font:400 clamp(4.15rem,8.2vw,8.5rem)/1.14 var(--script);letter-spacing:-.038em;margin:0 0 14px -8px;white-space:nowrap;text-shadow:0 6px 22px rgba(0,0,0,.34)}
.title-lilac{color:var(--lilac)}.title-white{color:var(--white)}.title-coral{color:var(--coral)}
.hero-bottom{display:flex;align-items:end;justify-content:space-between;gap:24px}
.hero-cta{display:inline-flex;align-items:center;gap:28px;padding:17px 25px;background:var(--white);color:var(--ink);font:400 1.3rem/1 var(--serif);border-radius:3px;box-shadow:0 10px 25px rgba(0,0,0,.16);transition:transform .25s ease,box-shadow .25s ease}
.hero-cta:hover{transform:translateY(-4px);box-shadow:0 16px 30px rgba(0,0,0,.22)}
.hero-cta svg{width:20px;height:20px}
.hero-bottom p{margin:0 8px 3px 0;text-align:right;font-size:.82rem;line-height:1.6;font-weight:500;text-shadow:0 2px 12px rgba(0,0,0,.5)}
.hero-side-note{position:absolute;right:14px;top:50%;z-index:1;writing-mode:vertical-rl;font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;text-shadow:0 1px 6px #26314e}
@keyframes hero-arrive{from{transform:scale(1.08);filter:saturate(.8)}to{transform:scale(1.025);filter:saturate(1)}}

.welcome{padding-top:88px;padding-bottom:72px}
.welcome-heading{display:flex;justify-content:space-between;align-items:end;gap:35px}
h2,h3,p{margin-top:0}
.welcome h2,.neighborhoods h2{font:400 clamp(3.4rem,5.3vw,5.6rem)/1.04 var(--serif);letter-spacing:-.035em;margin:0 0 20px}
.coral-stop{color:#f56f6c}
.welcome-heading p:not(.welcome-stamp){font-size:1.07rem;line-height:1.6;max-width:550px;margin:0}
.welcome-stamp{text-align:right;text-transform:uppercase;letter-spacing:.15em;line-height:1.8;font-size:.68rem;transform:rotate(6deg);border:1px solid var(--ink);border-radius:50%;padding:22px 20px;margin:0 20px 5px 0;opacity:.8}
.welcome-stamp strong{font-weight:700;letter-spacing:.08em}
.route-map{display:flex;justify-content:space-between;position:relative;gap:20px;margin-top:82px}
.route-map::before{content:"";height:2px;background:#9ca6bd;position:absolute;left:0;right:0;top:10px}
.route-stop{display:flex;flex-direction:column;align-items:center;gap:17px;position:relative;min-width:110px;text-align:center;font-size:.85rem;line-height:1.3;white-space:nowrap}
.stop-dot{width:20px;height:20px;border:2px solid #5f7097;border-radius:50%;background:var(--paper);display:block;transition:background .25s ease,transform .25s ease}
.route-stop:hover .stop-dot{transform:scale(1.25);background:var(--lilac)}
.route-stop.current .stop-dot{background:var(--coral);border-color:#e6716a;box-shadow:0 0 0 4px var(--paper),0 0 0 6px var(--coral)}
.welcome-note{display:flex;align-items:start;gap:20px;margin-top:80px;max-width:780px}
.line-mark{width:42px;height:2px;background:var(--coral);margin-top:12px;flex:none}
.welcome-note p{font:400 clamp(1.45rem,2.1vw,2.15rem)/1.4 var(--serif);margin:0}

.station{background:var(--ink);color:var(--white);padding-top:34px;padding-bottom:110px}
.station-topline{display:flex;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.26);text-transform:uppercase;letter-spacing:.15em;font-size:.63rem;color:#cbd0df}
.station-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,.88fr);gap:clamp(65px,8vw,150px);align-items:center;padding-top:95px}
.handwritten{font:400 clamp(1.8rem,2.5vw,2.8rem)/1 var(--script);margin-bottom:21px;transform:rotate(-2deg);transform-origin:left center}
.lilac-ink{color:var(--lilac)}.coral-ink{color:#e96f6c}
.station h2,.mayor h2,.cinema h2{font:400 clamp(3.3rem,5.1vw,5.5rem)/1.04 var(--serif);letter-spacing:-.03em;margin:0 0 30px}
.station-copy>p:not(.handwritten){color:#d7dbe6;font-size:1.05rem;line-height:1.7;max-width:540px;margin-bottom:44px}
.departure-board{border-top:1px solid #69748d;max-width:540px}
.departure-board div{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid #69748d}
.departure-board span{color:#bbc4d9;font-size:.86rem}.departure-board strong{font-size:.88rem;font-weight:600;text-align:right}
.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#9be0b3;margin-right:5px;vertical-align:middle}
.ticket-area{padding-top:15px}
.ticket{background:#f9f1df;color:var(--ink);position:relative;border-radius:10px;box-shadow:0 20px 50px rgba(0,0,0,.25);overflow:hidden;transform:rotate(2deg);transition:transform .45s cubic-bezier(.18,1,.3,1)}
.ticket.is-issued{transform:rotate(0deg) scale(1.025)}
.ticket-top,.ticket-bottom{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:20px 26px;font-size:.61rem;font-weight:700;letter-spacing:.14em}
.ticket-top{border-bottom:1px dashed #a7a6a8}.ticket-top span:last-child{font-size:1.2rem;color:#d55f63}
.ticket-main{padding:35px 32px 42px}
.ticket-type{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#8b6470;margin-bottom:16px}
.ticket-destination{display:block;font:400 clamp(2.6rem,4.1vw,4.6rem)/1.05 var(--serif);letter-spacing:-.035em;margin-bottom:34px}
.ticket-fields{display:flex;justify-content:space-between;gap:18px;border-top:1px solid #b9b5b2;padding-top:20px}
.ticket-fields div{display:flex;flex-direction:column;gap:6px}.ticket-fields span{font-size:.6rem;letter-spacing:.14em;color:#777d89}.ticket-fields strong{font-size:.9rem;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}.ticket-fields div:last-child{text-align:right}
.ticket-bottom{background:#ece0cb;border-top:1px dashed #aea8a1;color:#636878}.ticket-code{font-variant-numeric:tabular-nums}
.ticket-stamp{position:absolute;right:13%;top:42%;border:4px double #d56766;border-radius:50%;width:115px;height:115px;display:grid;place-items:center;color:#d56766;font-weight:700;letter-spacing:.07em;transform:rotate(-16deg) scale(2);opacity:0;pointer-events:none}
.ticket.is-issued .ticket-stamp{animation:stamp .55s cubic-bezier(.12,1,.34,1) forwards}
@keyframes stamp{0%{opacity:0;transform:rotate(-16deg) scale(2)}75%{opacity:.8;transform:rotate(-16deg) scale(.9)}100%{opacity:.8;transform:rotate(-16deg) scale(1)}}
.ticket-form{margin-top:39px}.ticket-form label{display:block;font-size:.88rem;font-weight:600;margin-bottom:13px}.ticket-form label span{font-weight:400;color:#abb5cc}
.ticket-controls{display:flex;gap:8px}.ticket-controls input{min-width:0;flex:1;border:1px solid #aab4ca;background:#202e52;color:#fff;padding:15px 16px;border-radius:3px;caret-color:var(--coral)}.ticket-controls input::placeholder{color:#b8c1d6}.ticket-controls button{border:0;background:var(--coral);color:var(--ink);font-weight:700;padding:13px 16px;border-radius:3px;white-space:nowrap;transition:background .2s ease}.ticket-controls button:hover{background:#ffaaa3}.ticket-controls button span{margin-left:8px}.ticket-feedback{min-height:1.5em;font-size:.76rem;color:#b6c2dc;margin:11px 0 0}

.mayor{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1fr);gap:clamp(65px,10vw,160px);align-items:center;background:#f7f3ea}
.mayor-card{position:relative;max-width:580px;min-height:520px;padding:30px 34px 34px;background:var(--ink);color:var(--white);overflow:hidden;box-shadow:18px 18px 0 var(--lilac);isolation:isolate}
.mayor-card::after{content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.28);pointer-events:none}
.mayor-card-top{display:flex;justify-content:space-between;gap:18px;position:relative;z-index:1;font-size:.64rem;letter-spacing:.13em;color:#c9d0df}
.mayor-seal{width:188px;height:188px;margin:68px auto 42px;border:1px solid var(--coral);border-radius:50%;display:grid;place-content:center;text-align:center;transform:rotate(-8deg);position:relative;z-index:1;color:var(--coral)}
.mayor-seal::before,.mayor-seal::after{content:"✦";position:absolute;top:50%;transform:translateY(-50%);font-size:1.4rem}.mayor-seal::before{left:17px}.mayor-seal::after{right:17px}.mayor-seal span{font:400 4.2rem/1 var(--serif);color:var(--white)}.mayor-seal small{font-size:.55rem;letter-spacing:.16em;line-height:1.3;margin-top:8px}
.mayor-card-kicker{margin:0;color:var(--coral);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;position:relative;z-index:1}.mayor-card-title{font:400 clamp(2rem,3.5vw,3.2rem)/1 var(--serif);max-width:360px;margin:10px 0 20px;position:relative;z-index:1}.mayor-route{display:flex;align-items:center;gap:8px;position:relative;z-index:1;color:#bbc4d6;font-size:.72rem}.mayor-route span{width:7px;height:7px;border-radius:50%;background:var(--coral)}.mayor-route span:nth-child(2){width:44px;height:1px;border-radius:0;background:#bbc4d6}.mayor-route span:nth-child(3){background:var(--lilac)}.mayor-route b{margin-left:5px;color:var(--white);font-weight:500}.mayor-signature{display:flex;align-items:end;justify-content:space-between;margin-top:34px;position:relative;z-index:1;color:#bbc4d6;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}.mayor-signature strong{font:400 2.1rem/1 var(--script);text-transform:none;letter-spacing:0;color:var(--white);transform:rotate(-5deg)}
.mayor h2{max-width:660px}.mayor-copy>p:not(.handwritten){font-size:1.05rem;line-height:1.7;max-width:570px;margin-bottom:40px}
.mayor-message{border-top:1px solid #939ba9;border-bottom:1px solid #939ba9;padding:19px 0 21px;margin-bottom:31px;max-width:580px}.mayor-message span{font-size:.66rem;letter-spacing:.15em;text-transform:uppercase;font-weight:700;color:#68738d}.mayor-message p{font:400 1.45rem/1.38 var(--serif);margin:14px 0 0}
.text-link{font-weight:700;display:inline-flex;gap:22px;border-bottom:1px solid var(--ink);padding-bottom:8px}.text-link:hover{color:#d75e5c;border-color:#d75e5c}

.cinema{background:#eeded6;padding-bottom:120px}.cinema-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:55px}.cinema-heading h2{margin-bottom:0}.cinema-heading>p{max-width:215px;line-height:1.5;font-size:.87rem;margin:0 5px 5px 0}
.cinema-video{width:100%;max-width:1180px;margin:0 auto;aspect-ratio:16/9;background:var(--ink);box-shadow:14px 16px 0 rgba(16,27,62,.13)}.cinema-video iframe{display:block;width:100%;height:100%;border:0}
.cinema-body{display:grid;grid-template-columns:minmax(260px,.67fr) minmax(0,1fr);gap:clamp(60px,9vw,150px);align-items:center}.cinema-poster{justify-self:center;width:min(100%,350px)}.poster-frame{background:var(--ink);padding:15px 15px 0;box-shadow:14px 16px 0 rgba(16,27,62,.13);position:relative}.poster-frame img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 18%}.poster-label{display:block;color:var(--white);padding:14px 2px 16px;text-align:center;font-size:.65rem;font-weight:700;letter-spacing:.18em}.poster-caption{display:block;margin-top:22px;font-size:.67rem;color:#5d6070;text-align:center}.cinema-program{border-top:2px solid var(--ink);align-self:stretch;padding-top:14px;display:flex;flex-direction:column;justify-content:center}.program-header{font-size:.68rem;font-weight:700;letter-spacing:.15em}.program-header span{padding:0 9px;color:#d85f60}.cinema-program h3{font:400 clamp(2.4rem,4vw,4.3rem)/1.1 var(--serif);letter-spacing:-.03em;margin:26px 0 17px}.cinema-program>p{font-size:1.03rem;line-height:1.65;max-width:560px;margin-bottom:34px}.program-options{border-top:1px solid #a29496}.program-option{width:100%;border:0;border-bottom:1px solid #a29496;background:transparent;color:var(--ink);display:grid;grid-template-columns:65px 1fr 22px;gap:12px;text-align:left;align-items:center;padding:19px 10px;transition:background .2s ease}.program-option:hover,.program-option.is-active{background:rgba(255,255,255,.56)}.program-option span:first-child{font-size:.77rem;font-variant-numeric:tabular-nums}.program-option strong{font:400 1.3rem/1.1 var(--serif)}.program-option span:last-child{text-align:right}.cinema-link{font-weight:700;align-self:flex-start;border-bottom:1px solid var(--ink);margin-top:29px;padding-bottom:7px}.cinema-link:hover{color:#bf4c4d;border-color:#bf4c4d}.cinema-link span{margin-left:23px}

.neighborhoods{background:var(--paper);padding-top:120px;padding-bottom:135px}.neighborhoods-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:70px}.neighborhoods h2{margin:0}.neighborhoods-head p{max-width:220px;line-height:1.55;margin:0 0 6px;font-size:.9rem}.neighborhood-list{border-top:1px solid #abb2c1}.neighborhood-list>div{display:grid;grid-template-columns:70px minmax(0,1fr) minmax(160px,.45fr);gap:25px;align-items:center;padding:25px 5px;border-bottom:1px solid #abb2c1}.district-symbol{font:400 2rem/1 var(--serif);color:#d96161}.neighborhood-list h3{font:400 clamp(1.65rem,2.7vw,2.9rem)/1.12 var(--serif);letter-spacing:-.025em;margin:0}.neighborhood-list p{line-height:1.5;font-size:.83rem;margin:0;color:#5c6580}
.site-footer{background:var(--ink);color:var(--white);padding:70px max(5vw,calc((100vw - 1440px)/2)) 32px}.footer-main{display:flex;align-items:end;justify-content:space-between;gap:30px;padding-bottom:72px}.footer-brand{font:400 2.2rem/1.45 var(--script);transform:rotate(-2deg)}.footer-brand strong{font-size:clamp(2.6rem,5vw,5rem);font-weight:400;color:var(--lilac)}.back-top{font-size:.84rem;border-bottom:1px solid #b6bfd1;padding-bottom:8px}.footer-bottom{border-top:1px solid #65718c;padding-top:26px;display:flex;justify-content:space-between;gap:35px;color:#b8c2d7;font-size:.68rem;line-height:1.65}.footer-bottom p{margin:0;max-width:480px}.footer-bottom a{text-decoration:underline;text-decoration-color:#6e7d9a}.footer-bottom a:hover{color:#fff}

@media(max-width:1050px){.main-nav{gap:18px}.main-nav>a:not(.nav-ticket){font-size:.82rem}.brand{font-size:1.3rem}.station-grid{gap:55px}.ticket-controls{flex-wrap:wrap}.ticket-controls button{width:100%}}
@media(max-width:760px){html{scroll-padding-top:70px}.section-pad{padding:75px 24px}.site-header{height:68px;padding:0 20px}.brand{font-size:1.27rem;gap:8px}.menu-toggle{border:0;background:transparent;width:44px;height:44px;display:flex;flex-direction:column;justify-content:center;gap:7px;align-items:center}.menu-toggle span{height:2px;width:23px;background:var(--ink);transition:transform .25s ease}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(4.5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}.main-nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--white);padding:20px 24px 28px;box-shadow:0 15px 25px rgba(13,24,51,.12);align-items:stretch;flex-direction:column;gap:4px}.main-nav.is-open{display:flex}.main-nav>a:not(.nav-ticket){font-size:1.05rem;padding:11px 0}.nav-ticket{align-self:flex-start;margin-top:12px}.hero{height:calc(100svh - 68px);min-height:580px;max-height:750px}.hero-photo{background-position:56% center}.hero-shade{background:linear-gradient(0deg,rgba(8,12,28,.89) 0%,rgba(8,12,28,.38) 49%,rgba(8,12,28,0) 80%)}.hero-inner{padding:0 22px 35px}.hero-greeting{font-size:clamp(2.2rem,8vw,3.7rem);margin-bottom:2px}.hero-title{font-size:clamp(3.2rem,10.2vw,5.9rem);line-height:1.16;white-space:normal;max-width:660px;margin-bottom:28px}.title-lilac{display:block;margin-bottom:-.12em}.hero-bottom{align-items:start;flex-direction:column;gap:18px}.hero-bottom p{text-align:left;font-size:.72rem;margin:0}.hero-cta{font-size:1.1rem;padding:15px 20px;gap:18px}.hero-side-note{display:none}.welcome{padding-top:72px;padding-bottom:58px}.welcome-heading{align-items:start}.welcome h2,.neighborhoods h2{font-size:clamp(3.2rem,9vw,4.5rem)}.welcome-heading p:not(.welcome-stamp){font-size:.95rem}.welcome-stamp{display:none}.route-map{margin-top:58px;overflow-x:auto;justify-content:flex-start;gap:0;padding-bottom:15px;margin-right:-24px}.route-map::before{left:56px;right:auto;width:550px}.route-stop{min-width:140px;font-size:.74rem}.station{padding-top:25px;padding-bottom:80px}.station-topline span:last-child{display:none}.station-grid{display:block;padding-top:70px}.station h2,.mayor h2,.cinema h2{font-size:clamp(3.1rem,8.9vw,4.4rem)}.station-copy>p:not(.handwritten){font-size:.98rem}.ticket-area{max-width:530px;margin:70px auto 0}.ticket-controls{flex-wrap:nowrap}.ticket-controls button{width:auto}.mayor{display:flex;flex-direction:column;align-items:stretch;gap:65px}.mayor-card{width:min(100%,500px);margin:auto;min-height:500px;padding:26px 24px 28px;box-shadow:12px 12px 0 var(--lilac)}.mayor-seal{margin:58px auto 36px}.cinema-heading{margin-bottom:50px}.cinema-heading>p{display:none}.cinema-body{display:block}.cinema-poster{width:min(77%,350px);margin-bottom:70px}.cinema-program{padding-top:17px}.neighborhoods{padding-top:85px;padding-bottom:100px}.neighborhoods-head{display:block}.neighborhoods-head p{margin-top:25px}.neighborhood-list>div{grid-template-columns:44px 1fr;gap:10px 16px;padding:24px 0}.neighborhood-list p{grid-column:2}.site-footer{padding:60px 24px 28px}.footer-main{padding-bottom:60px}.footer-brand{font-size:1.6rem}.footer-brand strong{font-size:clamp(2.4rem,7.8vw,4rem)}.footer-bottom{display:block}.footer-bottom p+p{margin-top:12px}}
@media(max-width:450px){.brand{font-size:1.1rem}.hero{min-height:560px}.hero-title{font-size:clamp(3rem,10.1vw,4.1rem);margin-left:-4px}.hero-greeting{font-size:2.35rem}.hero-bottom p br{display:none}.station h2,.mayor h2,.cinema h2{font-size:3rem}.ticket-top,.ticket-bottom{padding-left:18px;padding-right:18px;font-size:.52rem}.ticket-main{padding:27px 22px 35px}.ticket-destination{font-size:2.8rem}.ticket-controls{flex-direction:column}.ticket-controls button{width:100%}.photo-caption{right:-8px;font-size:.57rem}.mayor-message p{font-size:1.3rem}.cinema-poster{width:90%}.program-option{grid-template-columns:50px 1fr 15px;gap:6px;padding:17px 5px}.program-option strong{font-size:1.1rem}.footer-brand strong{font-size:2.55rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-photo{animation:none}.ticket,.hero-cta,.nav-ticket,.stop-dot,.program-option,.menu-toggle span{transition:none}.ticket.is-issued .ticket-stamp{animation:none;opacity:.8;transform:rotate(-16deg)}}
@media print{.site-header,.hero,.welcome,.station-copy,.ticket-form,.mayor,.cinema,.neighborhoods,.site-footer{display:none!important}.station{background:#fff;color:#000;padding:0}.station-grid{display:block;padding:0}.ticket-area{margin:0}.ticket{box-shadow:none;border:1px solid #555;transform:none;max-width:520px}}

/* Small labels remain legible on high-density displays. */
.hero-side-note,.welcome-stamp,.station-topline,.ticket-top,.ticket-bottom,.ticket-fields span,.photo-caption,.poster-label,.poster-caption,.program-header,.mayor-message span,.footer-bottom{font-size:max(.75rem,12px)}
.ticket-type{font-size:.78rem}
.ticket-feedback{font-size:.81rem}
.coral-ink{color:#ac3e43}
.hero-side-note{text-shadow:0 1px 6px rgba(0,0,0,.55)}
@media(max-width:450px){.ticket-top,.ticket-bottom,.photo-caption{font-size:.71rem}}

/* The compact D doubles as a route line with a coral terminus. */
.site-footer{padding-bottom:70px}
.footer-main{padding-bottom:0}
@media(max-width:760px){.site-footer{padding-bottom:60px}.footer-main{padding-bottom:0}}
.footer-credit{border-top:1px solid #65718c;margin:54px 0 0;padding-top:22px;color:#b8c2d7;font-size:.78rem;letter-spacing:.015em}
.footer-credit strong{color:var(--white);font-weight:600}
