/* Colour, spacing and motion refinements. Keep the established page composition. */
:root{--ink:#123a60;--muted:#3b607c;--accent:#236bd2;--blue:#b8deff;--line:#8fbfe2;--paper:#f7fbff;--mint:#1e9a83;--amber:#ffc94b;--coral:#e87959}
.sidebar{background:#deefff;border-color:#9fc9eb;padding-top:26px}.brand-symbol{color:#2268cb;border-color:#2268cb}.brand b{color:#194f9f}.sidebar nav{margin-top:40px}.sidebar nav a{min-height:52px}.sidebar nav a:hover{background:#c3e1ff}.sidebar nav a>span{color:#2066b8}.organization-link{padding-bottom:15px}.sidebar-bottom{padding-top:25px}.page-top{background:#edf6ff;border-color:#9fc9eb;height:40px}.page-top>span{color:#235a91}.page-top button{color:#195db3}
.content-pad{padding-left:clamp(24px,3.25vw,52px);padding-right:clamp(24px,3.25vw,52px)}
.hero-stage{min-height:0;padding:26px clamp(24px,3.25vw,52px) 8px;background-color:#c5e5ff;background-image:repeating-linear-gradient(45deg,transparent 0,transparent 19px,#448cc124 19px,#448cc124 20px),repeating-linear-gradient(-45deg,transparent 0,transparent 19px,#448cc124 19px,#448cc124 20px)}
.hero-stage .eyebrow{margin-bottom:18px}.hero-stage h1{font-size:clamp(2.9rem,5vw,5.7rem);line-height:1.05;margin-bottom:16px}.hero-stage h1 em{color:#236bc0}.hero-description{margin-bottom:0;font-size:.875rem;line-height:1.65;color:#315b79;max-width:360px}
.scene{position:relative;inset:auto;width:100%;margin-top:-32px;pointer-events:none;display:flex;justify-content:flex-end}.scene img{position:relative;inset:auto;display:block;width:min(100%,580px);height:auto;object-fit:contain;transform:none;filter:drop-shadow(0 9px 13px #1b5b7c12)}
.start-column{padding:27px 24px 22px;background:#edf6ff}.start-column .small-index{margin-bottom:24px;color:#2067b4}.start-column h2{font-size:2.7rem;margin-bottom:15px}.start-column>p{font-size:.8125rem}.quick-categories{margin:6px 0 20px}.quick-categories a{min-height:51px}.quick-categories a>span:first-child{color:#246bd0}.quick-categories a:nth-child(2)>span:first-child{color:#12816e}.quick-categories a:nth-child(3)>span:first-child{color:#a7472b}.round-button{width:65px;height:65px;background:#236bd2}.round-button:hover{background:#174e9d}.start-column .start-note{margin-top:14px}
.school-story{padding-top:32px;padding-bottom:32px;gap:30px;background:white}.year-mark{flex-basis:175px;padding-right:28px}.year-mark b{font-size:4.4rem;color:#236bd2;margin:4px 0}.story-copy .eyebrow{margin-bottom:12px;color:#177766}.story-copy h2{margin-bottom:14px}.story-copy>p:not(.eyebrow){font-size:.8125rem;margin-bottom:13px}
.story-stamp{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 128px;width:128px;height:128px;padding:0;border:3px solid #fff;border-radius:28px;background:#ffd368;color:#173c5b;box-shadow:5px 5px 0 #7dc5ea;transform:rotate(-7deg);font-size:.6875rem;line-height:1.15;letter-spacing:.06em;margin-left:auto}.story-stamp .stamp-theory{font-size:.6875rem;color:#1d5596}.story-stamp b{font-size:1.7rem;line-height:1.1;margin:4px 0;color:#a94424}.story-stamp .stamp-practice{font-size:.6875rem;color:#126b59}.story-stamp i{font-style:normal;font-size:.4375rem;letter-spacing:.08em;margin-top:12px}
.programs{padding-top:36px;padding-bottom:28px}.section-heading{margin-bottom:24px}.section-heading h2{font-size:clamp(2rem,3.3vw,3.2rem)}.section-heading h2 em{color:#236bc0}.section-heading .eyebrow{color:#2467af}.course-selector{border-color:#245a98}.course-tabs{border-color:#9ec7e7}.course-tabs button{min-height:123px;padding:16px 22px}.course-tabs button[aria-selected="true"]{background:#b5dbff;color:#174d92;box-shadow:inset 4px 0 #236bd2}.course-tabs button:nth-child(2){color:#12755f}.course-tabs button:nth-child(3){color:#a74e2a}.course-panels{background:#e1f0ff}.course-sheet{height:auto;min-height:0;padding:23px 28px 24px}.sheet-heading{margin-bottom:19px}.sheet-tag{background:#c4e2ff;border-color:#87b6e0;color:#1c5594}.course-sheet h3{font-size:clamp(1.9rem,2.8vw,2.9rem);margin-bottom:13px}.course-sheet>p{margin-bottom:12px;font-size:.8125rem;max-width:430px}.price-list{margin:2px 0 16px}.price-list>div{padding:10px 0}.price-list dd{color:#1c5eb3}.sheet-bottom{margin-top:0;gap:16px}.sheet-bottom>span{font-size:.6875rem}.alternate-course{padding:16px 0 6px;gap:15px}.alternate-course>span{color:#168b74}.alternate-course .text-link{color:#1b61b8}.programs>.fine{margin-top:9px}
.learning-route{padding-top:32px;padding-bottom:32px;gap:40px;background:#c6e9f4}.route-intro{padding-top:4px}.route-intro h2{margin-bottom:19px}.route-intro .eyebrow{color:#126b67;margin-bottom:18px}.route-intro:after{font-size:7rem;line-height:.8;margin-top:17px;color:#50a8c4}.route-steps li{padding-bottom:21px;gap:20px}.route-steps h3{margin:8px 0}.route-steps p{max-width:350px}.route-steps:before{border-color:#2686a0}.step-number{background:#d6f1f8;border-color:#248aa3}.route-steps li:nth-child(2) .step-number{background:#bce9d9;border-color:#449b81;color:#155a4b}.route-steps li:nth-child(3) .step-number{background:#ffe29b;border-color:#d2a746;color:#7b4b0d}.route-steps li:last-child .step-number{background:#236bd2;border-color:#236bd2}
.time-and-questions{padding-top:36px;padding-bottom:36px;gap:clamp(28px,4vw,65px)}.timetable{padding:24px;background:#d4eaff;border-color:#88b9e4}.timetable h2{font-size:3.3rem;margin:0 0 19px}.timetable h2 em{color:#216bcb}.timetable-heading .eyebrow{color:#235ea4}.timetable-heading>span{color:#216bcb}.timetable li{padding:9px 0}.timetable ul{margin-bottom:10px}.weekend{padding:13px 0 15px}.weekend b{color:#1c5eb3}.questions{padding-top:16px}.questions .eyebrow{margin-bottom:18px;color:#b55331}.questions h2{margin-bottom:21px}.questions details{padding:15px 0}.questions summary:after{color:#246bd0}.question-call{margin-top:23px;border-color:#e9aa46}.question-call>a{color:#1b5eb9}
.contact-station{min-height:460px;grid-template-columns:minmax(0,1fr) 325px;column-gap:35px;padding:32px clamp(24px,3.25vw,52px) 42px;background-color:#b9defa;background-image:repeating-linear-gradient(45deg,transparent 0,transparent 25px,#3e8abd2c 25px,#3e8abd2c 26px),repeating-linear-gradient(-45deg,transparent 0,transparent 25px,#3e8abd2c 25px,#3e8abd2c 26px)}
.station-heading{z-index:2;max-width:650px}.station-heading .eyebrow{margin-bottom:17px;color:#1c5894}.station-heading h2{font-size:clamp(2.1rem,3.5vw,3.5rem);margin-bottom:18px;text-shadow:0 1px 12px #c8e6ff}.station-heading h2 em{color:#216bc8}.address-sign{z-index:2;margin-top:6px;padding:12px 15px 14px;border-color:#2069c7;background:#d6edffeb;backdrop-filter:blur(5px);width:fit-content;max-width:100%}.address-pin{display:none}.address-sign a{margin-top:12px;color:#1c5bb2}.contact-ticket{z-index:2;padding:25px 24px;box-shadow:7px 8px 0 #347dc82b;border-color:#236bd2;background:#fafdfff5;backdrop-filter:blur(6px)}.ticket-label{margin-bottom:17px;color:#2266b6}.contact-ticket>a.contact-phone{color:#1a57ad}.contact-ticket>a.contact-email{margin-top:15px;padding-bottom:16px}.contact-ticket dl{margin:14px 0 18px}.contact-ticket dl>div{padding:4px 0}.station-road{position:absolute;z-index:0;pointer-events:none;left:-1%;bottom:-4px;display:block;width:102%;height:auto;max-width:none;object-fit:contain}.footer{padding:20px 26px;background:#e1f0ff}.footer>span{color:#245c9e}
/* Reveal remains progressive enhancement: absent JS means fully visible content. */
.reveal-pending{opacity:0;transform:translateY(18px)}.reveal-in{opacity:1;transform:none;transition:opacity .5s ease,transform .55s cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0ms)}
.hero-stage h1{animation:hero-enter .6s ease both}.hero-description{animation:hero-enter .65s .08s ease both}.scene img{animation:diorama-enter .8s .08s cubic-bezier(.2,.7,.3,1) both}.course-sheet.panel-enter{animation:panel-enter .28s ease both}.sidebar nav.open{animation:panel-enter .22s ease both}dialog[open]{animation:dialog-enter .25s ease both}[data-accessibility-panel]:not([hidden]){animation:panel-enter .2s ease both}.primary,.round-button,.course-tabs button,.quick-categories a,.sidebar nav a{transition:background-color .2s,color .2s,box-shadow .2s}.primary:hover{background:#1853ad}.round-button:hover{box-shadow:0 5px 20px #236bd23d}
@keyframes hero-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes diorama-enter{from{opacity:0;transform:translateY(15px) scale(.98)}to{opacity:1;transform:none}}@keyframes panel-enter{from{opacity:.3;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes dialog-enter{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@media(min-width:1700px){.scene img{width:min(100%,720px)}.hero-stage{padding-top:30px}.start-column{padding:32px 30px}.start-column .small-index{margin-bottom:28px}.start-column h2{font-size:3.2rem}}
@media(max-width:1250px){.hero-stage h1{font-size:clamp(2.7rem,4.75vw,4rem)}.scene img{width:min(100%,510px)}.scene{margin-top:-15px}.story-stamp{display:none}.school-story{gap:26px}.year-mark{flex-basis:145px;padding-right:23px}.year-mark b{font-size:3.8rem}.sheet-bottom{gap:13px}.course-tabs button{min-height:123px}.course-sheet{padding:22px 25px}.contact-station{grid-template-columns:minmax(0,1fr) 295px;column-gap:25px}.contact-ticket{padding:23px 20px}.station-heading h2{font-size:2.6rem}}
@media(max-width:1000px) and (min-width:761px){.hero-stage h1{font-size:clamp(2.9rem,6.3vw,4.3rem)}.scene{margin-top:-40px}.scene img{width:min(100%,510px)}.start-column{padding:22px 27px;gap:7px 28px}.start-column .small-index{margin:0}.start-column h2{font-size:2rem;margin:0}.start-column .start-note{margin-top:7px}.school-story{gap:23px}.year-mark{flex-basis:110px}.year-mark b{font-size:3.1rem}.story-copy h2{font-size:1.7rem}.section-heading{margin-bottom:22px}.contact-station{grid-template-columns:minmax(0,1fr);padding-bottom:30px}.station-heading h2{font-size:2.8rem}.address-sign{margin:0 0 22px}.contact-ticket{max-width:370px}.station-road{bottom:40px;width:155%;left:-28%}}
@media(max-width:760px){.sidebar{padding:15px 20px}.sidebar nav{margin-top:15px}.sidebar nav a{min-height:46px}.page-top{height:auto;min-height:36px}.content-pad{padding-left:20px;padding-right:20px}.hero-stage{padding:23px 20px 5px}.hero-stage h1{font-size:clamp(2.5rem,10vw,4.4rem);margin-bottom:14px}.hero-stage .eyebrow{margin-bottom:20px}.hero-description{font-size:.8125rem;max-width:300px}.scene{margin-top:0}.scene img{width:100%;height:auto;max-width:540px}.start-column{padding:23px 20px;gap:9px 20px}.start-column .small-index{margin:0}.start-column h2{font-size:2.2rem;margin:0}.start-column>p:not(.start-note){font-size:.75rem}.quick-categories{margin:0}.quick-categories a{min-height:54px}.start-column .start-note{margin-top:5px;padding-top:14px}.school-story{padding-top:25px;padding-bottom:25px;gap:20px;flex-wrap:wrap}.year-mark{flex:0 0 65px;padding-right:16px}.year-mark b{font-size:3rem;margin:12px 0}.story-copy{flex:1;min-width:0}.story-copy h2{font-size:1.6rem}.story-copy>p:not(.eyebrow){font-size:.75rem}.story-stamp{display:flex;flex:0 0 108px;width:108px;height:108px;border-radius:22px;margin:3px 15px 0 auto;box-shadow:4px 4px 0 #7dc5ea;transform:rotate(-5deg)}.story-stamp .stamp-theory,.story-stamp .stamp-practice{font-size:.625rem}.story-stamp b{font-size:1.5rem}.story-stamp i{font-size:.375rem;margin-top:8px}.programs{padding-top:29px;padding-bottom:24px}.section-heading{margin-bottom:21px}.section-heading h2{font-size:2.2rem}.section-heading .eyebrow{margin-bottom:16px}.course-tabs button{min-height:88px;padding:15px 13px}.course-tabs button[aria-selected="true"]{box-shadow:inset 0 -3px #236bd2}.course-sheet{min-height:0;padding:21px 19px}.sheet-heading{margin-bottom:20px}.course-sheet h3{font-size:2.2rem}.course-sheet>p{font-size:.75rem}.sheet-bottom{gap:13px}.price-list{margin:1px 0 15px}.price-list dd{font-size:1.8rem}.alternate-course{padding-top:14px}.alternate-course .text-link{margin-left:32px}.programs>.fine{font-size:.625rem}.learning-route{padding-top:26px;padding-bottom:26px}.route-intro{margin-bottom:26px}.route-intro h2{font-size:2.1rem}.route-steps li{padding-bottom:21px}.time-and-questions{padding-top:27px;padding-bottom:27px;gap:10px}.timetable{padding:22px}.timetable h2{font-size:3rem;margin-bottom:15px}.questions{padding-top:26px}.questions h2{font-size:1.9rem;margin-bottom:20px}.questions details{padding:14px 0}.question-call{margin-top:19px}.contact-station{min-height:0;grid-template-columns:1fr;padding:27px 20px 30px}.station-heading h2{font-size:2.5rem;max-width:360px;margin-bottom:18px}.address-sign{margin:0 0 23px;padding:10px 14px}.contact-ticket{padding:23px 21px;max-width:390px}.contact-ticket>a.contact-phone{font-size:1.5rem}.station-road{bottom:170px;width:190%;left:-55%;opacity:.9}.footer{padding:20px}
  .reveal-pending{transform:translateY(12px)}
}
@media(max-width:360px){.hero-stage h1{font-size:2.4rem}.hero-description{font-size:.75rem}.story-copy h2{font-size:1.4rem}.contact-ticket>a.contact-phone{font-size:1.35rem}}
.a11y-large-text .hero-stage{min-height:0}.a11y-large-text .scene,.a11y-large-text .story-stamp{display:none}.a11y-large-text .contact-station{display:block}.a11y-large-text .contact-ticket{margin-top:25px}.a11y-large-text .sheet-bottom{flex-wrap:wrap}.a11y-large-text .station-road{opacity:.15}.a11y-large-text .year-mark{flex-basis:auto}
/* Two eras occupy the former empty space without widening the text column. */
.school-story{display:grid;grid-template-columns:135px minmax(300px,1.05fr) minmax(320px,1fr);gap:26px;position:relative;align-items:center;padding-top:25px;padding-bottom:25px}.school-story .year-mark{padding-right:20px}.school-story .year-mark b{font-size:3.8rem}.story-copy{max-width:none}.story-copy h2{font-size:clamp(1.65rem,2.25vw,2.7rem)}.city-eras{margin:0;min-width:0;align-self:center}.city-eras img{display:block;width:100%;height:auto}.city-eras figcaption{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:5px 8px 0;font-size:1rem;font-weight:700;color:#215fae}.city-eras figcaption>span{display:flex;align-items:baseline;gap:8px}.city-eras figcaption small{font-size:.5625rem;font-weight:500;color:#47677f}.city-eras figcaption>span:nth-child(2){color:#268f88;font-size:1.4rem}.school-story .story-stamp{position:absolute;right:clamp(24px,3.25vw,52px);bottom:8px;top:auto;width:75px;height:75px;border-radius:17px;border-width:2px;box-shadow:3px 3px 0 #7dc5ea;transform:rotate(8deg);z-index:1}.school-story .story-stamp .stamp-theory,.school-story .story-stamp .stamp-practice{font-size:.4375rem}.school-story .story-stamp b{font-size:1.1rem;margin:3px 0}.school-story .story-stamp i{display:none}
/* Solid local backing guarantees readability even where the road crosses. */
.station-heading h2{position:relative;width:fit-content;max-width:100%;padding:10px 15px 13px;margin-left:-15px;background:#cce8ff;border-radius:7px;text-shadow:none}.station-heading h2 em{color:#174e9e;white-space:nowrap}.station-heading .eyebrow{width:fit-content;background:#cce8ff;padding:4px 8px;margin-left:-8px;border-radius:3px}.station-heading{isolation:isolate}
.learning-route{position:relative;isolation:isolate;overflow:hidden}.route-intro{align-self:center;padding-top:0;position:relative;z-index:1}.route-intro:after{display:none}.route-steps{z-index:1}.route-decor{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.route-decor-arrow{position:absolute;left:3%;bottom:4%;font:8rem/1 Georgia,serif;color:#389cbb;opacity:.36;transform:rotate(-13deg)}.route-decor-ring{position:absolute;width:150px;height:150px;left:39%;top:-95px;border:18px solid #76c0d6;opacity:.18;border-radius:50%}.route-decor-dashes{position:absolute;left:29%;bottom:10%;width:130px;height:50px;border-bottom:2px dashed #4ca1bc;border-right:2px dashed #4ca1bc;border-radius:0 0 40px 0;opacity:.3;transform:rotate(-15deg)}
@media(min-width:1900px){.school-story{grid-template-columns:155px minmax(380px,1fr) minmax(400px,1.1fr);gap:30px}.school-story .story-stamp{right:28px}}
@media(max-width:1250px){.school-story{grid-template-columns:105px minmax(0,1fr);gap:16px 24px}.school-story .year-mark{grid-row:1 / 3}.school-story .story-copy{grid-column:2}.city-eras{grid-column:2;max-width:620px;width:100%;justify-self:end}.school-story .story-stamp{display:none}.city-eras img{max-height:190px;object-fit:contain}.city-eras figcaption{padding-top:0}.route-decor-dashes{left:22%;width:95px}}
@media(max-width:760px){.school-story{grid-template-columns:65px minmax(0,1fr);gap:18px}.school-story .year-mark{grid-row:1}.school-story .year-mark b{font-size:3rem}.school-story .story-copy h2{font-size:1.6rem}.city-eras{grid-column:1 / 3;max-width:620px}.city-eras img{max-height:none}.city-eras figcaption{padding:5px 3px 0;font-size:.875rem}.city-eras figcaption>span{gap:5px}.city-eras figcaption small{font-size:.5rem}.station-heading h2{padding:9px 12px 12px;margin-left:-12px}.route-intro{align-self:auto}.route-decor-arrow{font-size:5.5rem;left:auto;right:0;top:15px;bottom:auto;opacity:.18}.route-decor-ring{left:25%;top:auto;bottom:-115px;width:160px;height:160px}.route-decor-dashes{display:none}}
.a11y-large-text .school-story{display:block}.a11y-large-text .city-eras{display:none}.a11y-large-text .route-decor{display:none}.a11y-hide-images .city-eras{display:none}
@media(prefers-reduced-motion:reduce){.reveal-pending,.reveal-in{opacity:1;transform:none;transition:none}.hero-stage h1,.hero-description,.scene img,.course-sheet.panel-enter,dialog[open],[data-accessibility-panel]:not([hidden]){animation:none}}
