/* Readable copy and a consistent, symmetrical section rhythm. */
body{font-size:1rem}
:where(.fine,.text-link,.primary,.eyebrow,.small-index,.sheet-heading,.sheet-tag,.sheet-bottom>span,.sidebar nav a,.sidebar-bottom p,.sidebar-caption,.organization-link,.brand small,.page-top,.page-top button,.hero-description,.start-column>p,.quick-categories a,.start-note .text-link,.story-copy>p:not(.eyebrow),.course-tabs small,.course-sheet>p,.price-list dt,.price-list dt small,.alternate-course p,.alternate-course .text-link,.programs>.fine,.route-steps p,.route-intro .eyebrow,.timetable>p,.timetable .fine,.timetable-heading .eyebrow,.timetable li,.weekend,.questions .eyebrow,.questions summary,.questions details p,.question-call>span,.ticket-label,.contact-ticket>a.contact-email,.contact-ticket dl,.address-sign p,.address-sign a,.footer>a,.footer>p,.footer>span,.org-layout nav a,.org-layout section p,.organization>p:not(.eyebrow),dialog>p,dialog .email-action){font-size:max(.875rem,1em)}
.eyebrow,.small-index{font-size:.875rem;letter-spacing:.09em;line-height:1.55}.brand small{font-size:.6875rem;letter-spacing:.09em}.sidebar nav a{font-size:.875rem;line-height:1.4}.sidebar nav a>span{font-size:.75rem}.sidebar nav{margin-top:28px}.sidebar-bottom p,.sidebar-caption,.organization-link{font-size:.875rem}.sidebar-phone{font-size:.9375rem}.sidebar-bottom{padding-top:22px}.page-top{height:auto;min-height:46px;font-size:.75rem;letter-spacing:.06em;padding-top:8px;padding-bottom:8px}.page-top button{font-size:.875rem}.page-top>span{max-width:none}.hero-description,.start-column>p{font-size:1rem;line-height:1.65}.start-column .small-index{font-size:.75rem}.quick-categories a{font-size:.875rem;gap:9px}.quick-categories a>span:first-child{min-width:38px}.start-column .start-note,.start-note .text-link{font-size:.875rem;line-height:1.5}.start-note br{display:none}
.school-story,.programs,.learning-route,.time-and-questions{padding-top:32px;padding-bottom:32px}.story-copy>p:not(.eyebrow){font-size:1rem;line-height:1.7}.story-copy .eyebrow{font-size:.8125rem}.school-story .year-mark>span{font-size:.75rem;letter-spacing:.08em}.school-story .year-mark{align-self:center}.story-actions{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:15px}.story-actions>.text-link{font-size:.9375rem}.school-story .story-stamp{position:static;inset:auto;display:flex;flex:0 0 96px;width:96px;height:96px;margin:0 5px 0 0;border-radius:20px;transform:rotate(6deg)}.school-story .story-stamp .stamp-theory,.school-story .story-stamp .stamp-practice{font-size:.6875rem}.school-story .story-stamp b{font-size:1.5rem}.city-eras figcaption{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:8px;padding:0 6px}.city-eras figcaption>span{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:1.375rem;line-height:1.3}.city-eras figcaption small{font-size:.875rem;line-height:1.5;text-align:center}.city-eras figcaption>span:nth-child(2){font-size:1.75rem}
.section-heading{display:block;margin-bottom:22px}.section-heading .eyebrow{max-width:none;font-size:.8125rem;margin:0 0 12px}.section-heading h2{max-width:none;margin:0;font-size:clamp(2rem,3.3vw,3.2rem)}.course-tabs small,.sheet-heading,.sheet-tag,.sheet-bottom>span{font-size:.875rem}.sheet-heading{flex-wrap:wrap;gap:10px}.course-sheet>p{font-size:1rem;max-width:550px;line-height:1.7}.price-list dt{font-size:1rem}.price-list dt small{font-size:.875rem}.sheet-bottom{flex-wrap:wrap;align-items:center;gap:16px}.sheet-bottom>span{max-width:none}.primary,.text-link{font-size:.9375rem}.alternate-course p,.alternate-course .text-link{font-size:.9375rem}.alternate-course{flex-wrap:wrap;gap:15px}.fine,.programs>.fine{font-size:.875rem;line-height:1.65;margin-bottom:0}.programs>.fine{margin-top:16px}
.route-intro{align-self:center}.route-intro .eyebrow{font-size:.8125rem}.route-steps h3{font-size:1.125rem;line-height:1.4;margin:5px 0 8px}.route-steps p{font-size:1rem;line-height:1.65;max-width:440px}.route-steps li{padding-bottom:22px}.route-steps li:last-child{padding-bottom:0}.step-number{font-size:.9375rem}.route-decor-arrow{left:3%;bottom:4%;font-size:7rem;color:#187c9b;opacity:.6}.route-decor-ring{width:132px;height:132px;left:35%;top:22px;bottom:auto;border-width:12px;border-color:#4daac6;opacity:.36}.route-decor-dashes{left:29%;bottom:8%;opacity:.65;border-color:#2685a4;transform:rotate(-15deg)}
/* Use translate rather than transform so each object's base rotation is preserved. */
.route-decor-arrow{animation:route-float 7s ease-in-out infinite}.route-decor-ring{animation:route-float 9s -2s ease-in-out infinite}.route-decor-dashes{animation:route-float 8s -4s ease-in-out infinite}.story-stamp{animation:route-float 8s -1s ease-in-out infinite}@keyframes route-float{0%,100%{translate:0 0}50%{translate:0 -9px}}
.timetable-heading .eyebrow{font-size:.75rem}.timetable>p,.timetable .fine{font-size:.875rem}.timetable li,.weekend{font-size:.9375rem}.timetable li b{font-size:1rem}.questions{padding-top:0;align-self:center}.questions .eyebrow{font-size:.8125rem}.questions summary,.questions details p{font-size:1rem;line-height:1.65}.question-call>span{font-size:.875rem}.question-call>a{font-size:1.25rem}.timetable h2{font-size:3.5rem}.time-and-questions{align-items:center}
/* Keep the road in its own complete image row: its height now determines layout. */
.contact-station{min-height:0;grid-template-rows:auto auto auto;padding-top:32px;padding-bottom:32px;row-gap:18px;overflow:hidden}.station-heading{align-self:center}.station-heading .eyebrow{font-size:.8125rem;margin-bottom:12px;background:none;padding:0;margin-left:0}.station-heading h2{font-size:clamp(2.3rem,3.8vw,3.8rem);padding:0;margin:0;background:none;text-shadow:none}.station-heading h2 em{color:#174e9e}.address-sign{grid-row:2;grid-column:1;margin:0;padding:12px 16px;align-self:start}.address-sign p{font-size:.8125rem}.address-sign b{font-size:1.25rem}.address-sign a{font-size:.9375rem}.contact-ticket{grid-column:2;grid-row:1 / 3;align-self:center}.ticket-label{font-size:.8125rem}.contact-ticket>a{font-size:1rem}.contact-ticket>a.contact-email{font-size:.9375rem;overflow-wrap:anywhere}.contact-ticket dl{font-size:.875rem}.contact-ticket .primary{font-size:.875rem}.station-road-stage{grid-column:1 / -1;grid-row:3;position:relative;min-width:0;z-index:0;margin-top:-12px;margin-bottom:0;pointer-events:none}.station-road{position:static;display:block;width:100%;height:auto;max-width:1500px;margin:0 auto;opacity:1;object-fit:contain}.footer{padding-top:24px;padding-bottom:24px;flex-wrap:wrap}.footer>span,.footer>a,.footer>p{font-size:.875rem}.footer>a{max-width:340px}.org-layout nav a,.org-layout section p{font-size:1rem}
@media(min-width:1700px){.contact-station{grid-template-columns:minmax(0,1fr) 360px;row-gap:20px}.contact-ticket>a.contact-phone{font-size:1.6rem}.station-road-stage{margin-top:-35px}.station-road{max-width:1400px}}
@media(max-width:1250px){.school-story,.programs,.learning-route,.time-and-questions{padding-top:28px;padding-bottom:28px}.school-story .year-mark{grid-row:1 / 3}.story-actions{justify-content:flex-start;gap:30px}.school-story .story-stamp{display:flex}.sheet-bottom{align-items:flex-start}.timetable li{gap:10px}.timetable li b{font-size:.9375rem}.route-decor-ring{left:28%;width:105px;height:105px;border-width:10px}.route-decor-dashes{left:24%;width:100px}.contact-ticket>a.contact-phone{font-size:1.3rem}.contact-ticket .primary{padding-left:12px;padding-right:12px}}
@media(max-width:1000px) and (min-width:761px){.contact-station{grid-template-columns:minmax(0,1fr);padding-top:28px;padding-bottom:28px}.station-heading{grid-column:1;grid-row:1}.address-sign{grid-row:2}.contact-ticket{grid-column:1;grid-row:3;width:100%;max-width:440px;justify-self:end}.station-road-stage{grid-row:4;margin-top:0}.station-road{width:100%;opacity:1}.route-steps p{font-size:.9375rem}.learning-route{grid-template-columns:.85fr 1fr;gap:25px}.route-decor-dashes{display:none}.route-decor-ring{left:16%;top:15px}.timetable .fine{grid-row:auto}}
@media(max-width:760px){.page-top{gap:16px}.page-top>span{display:none}.page-top button{margin-left:auto}.sidebar nav a{font-size:1rem;min-height:48px}.sidebar nav a>span{font-size:.8125rem}.hero-stage .eyebrow{font-size:.75rem}.hero-description,.start-column>p:not(.start-note){font-size:1rem}.quick-categories a{font-size:.8125rem;gap:6px}.quick-categories a>span:first-child{min-width:32px}.start-column .small-index{font-size:.6875rem}.start-column .start-note,.start-note .text-link{font-size:.875rem}.school-story,.programs,.learning-route,.time-and-questions{padding-top:24px;padding-bottom:24px}.school-story .year-mark{grid-row:1;align-self:stretch}.school-story .year-mark>span{font-size:.625rem}.story-copy>p:not(.eyebrow){font-size:1rem}.story-copy .eyebrow{font-size:.75rem}.story-actions{flex-wrap:wrap;gap:16px;align-items:center}.story-actions>.text-link{font-size:.875rem}.school-story .story-stamp{width:86px;height:86px;flex-basis:86px;margin:0 0 5px 3px}.city-eras figcaption>span{font-size:1.125rem}.city-eras figcaption small{font-size:.8125rem}.city-eras figcaption{gap:8px;margin-top:10px}.section-heading .eyebrow{font-size:.75rem;line-height:1.6}.section-heading{margin-bottom:20px}.section-heading h2{font-size:2.1rem}.course-tabs small{font-size:.8125rem}.course-tabs button{padding-left:10px;padding-right:10px;min-height:98px}.sheet-heading,.sheet-tag{font-size:.75rem}.course-sheet>p,.price-list dt{font-size:1rem}.sheet-bottom>span{font-size:.875rem}.alternate-course p,.alternate-course .text-link{font-size:.875rem}.fine,.programs>.fine{font-size:.875rem}.route-steps p{font-size:1rem}.route-intro .eyebrow{font-size:.75rem}.route-steps h3{font-size:1.0625rem}.route-intro{padding-right:30px}.route-decor-arrow{left:auto;right:8px;top:24px;bottom:auto;font-size:5rem;opacity:.5}.route-decor-ring{left:6%;top:auto;bottom:35px;width:100px;height:100px;opacity:.24}.route-decor-dashes{display:none}.timetable-heading .eyebrow{font-size:.75rem}.timetable .fine{font-size:.875rem}.questions{padding-top:18px}.questions h2{font-size:2rem}.questions .eyebrow{font-size:.75rem}.questions summary,.questions details p{font-size:1rem}.contact-station{grid-template-columns:1fr;padding-top:24px;padding-bottom:24px;row-gap:20px}.station-heading{grid-column:1;grid-row:1}.station-heading h2{font-size:2.5rem;max-width:none}.station-heading .eyebrow{font-size:.75rem}.address-sign{grid-row:2;margin:0}.contact-ticket{grid-column:1;grid-row:3;max-width:440px}.station-road-stage{grid-row:4;margin-top:0;margin-bottom:0}.station-road{width:100%;opacity:1}.contact-ticket>a.contact-phone{font-size:1.5rem}.contact-ticket>a.contact-email,.contact-ticket dl{font-size:.875rem}.footer>span,.footer>a,.footer>p{font-size:.8125rem}.footer>a{max-width:none}.footer{padding-top:24px;padding-bottom:24px}}
.a11y-large-text .station-road-stage{display:none}.a11y-large-text .contact-ticket{margin-top:0}.a11y-hide-images .station-road-stage{display:none}
@media(prefers-reduced-motion:reduce){.route-decor-arrow,.route-decor-ring,.route-decor-dashes,.story-stamp{animation:none!important;translate:none}}
