@font-face{font-family:RailSerif;src:url('assets/noto-serif.woff2') format('woff2');font-weight:400 800;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:#f5f1e7;color:#254d40;font:15px/1.9 system-ui,-apple-system,'Microsoft JhengHei',sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button,a,input,select{touch-action:manipulation}button{background:none;border:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #a4462f;outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3,.brand,.station-sign,.arrival-kicker{font-family:RailSerif,serif;font-weight:500}h1{font-size:clamp(40px,5vw,80px);line-height:1.5;letter-spacing:.04em}h2{font-size:clamp(30px,3.2vw,52px);line-height:1.55}h3{font-size:25px;line-height:1.6}p{max-width:43em}img,svg{display:block;max-width:100%}img{height:auto}[hidden]{display:none!important}.wrap{width:min(1240px,88%);margin:auto}.eyebrow{font-size:11px;letter-spacing:.2em;font-weight:600}.text-link{display:inline-block;padding:8px 0;border-bottom:1px solid #8f9c86;font-size:14px}.button{display:inline-flex;justify-content:center;align-items:center;gap:28px;padding:14px 28px;font-size:14px;border:1px solid currentColor}.green{background:#254d40;color:#fff9e9}.cream{background:#faf1da;color:#244b3a;border-color:#faf1da}.source-note{font-size:12px;line-height:1.9;color:#6c7469;margin-top:26px}.skip{position:fixed;left:15px;top:-100px;z-index:100;background:#fff;padding:12px}.skip:focus{top:10px}.mobile-only{display:none}header{height:98px;padding:0 4.5%;display:flex;align-items:center;justify-content:space-between;gap:30px;background:#f5f1e7;position:relative;z-index:20;border-bottom:1px solid #c7ccba}.brand{display:flex;align-items:center;gap:10px;font-size:26px;letter-spacing:.1em;line-height:1.3;white-space:nowrap}.brand svg{width:42px;height:42px}.brand small{display:block;font:9px/1.9 system-ui;letter-spacing:.35em}.brand>span>small{margin-top:4px}header nav{display:flex;gap:32px;font-size:13px}header nav a{padding:10px 0;border-bottom:1px solid transparent}header nav a[aria-current]{border-color:#a74931;color:#9e412c}.header-plan{font-size:13px;padding:10px 0;border-bottom:1px solid #a9b2a0}.header-plan span{margin-left:20px}body[data-page=index] header{position:absolute;inset:0 0 auto;background:linear-gradient(#f8efdaed,#f8efda9e);border:0}.rail-journey{height:700vh;position:relative}.journey-stage{position:sticky;top:0;height:100svh;overflow:hidden;background:#d9d5ba;isolation:isolate;perspective:1400px}.station-scene{position:absolute;inset:0;opacity:0;transform:scale(1.12)}.station-scene img{width:100%;height:100%;object-fit:cover}.station-light{position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,#f5edcf38 50%,transparent 75%)}.train-camera{position:absolute;inset:0;transform-origin:50% 54%;will-change:transform}.carriage-rock{position:absolute;inset:-1%;animation:cabin-sway 7.6s ease-in-out infinite;transform-origin:50% 70%}.carriage-art{width:max(100vw,150svh);height:max(100svh,66.667vw);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);isolation:isolate}.cabin-frame{position:absolute;inset:0;width:100%;height:100%;mask:url('assets/window-mask.svg') center/100% 100% no-repeat;-webkit-mask:url('assets/window-mask.svg') center/100% 100% no-repeat;z-index:3}.window-world{position:absolute;left:20.7%;top:24.1%;width:58.6%;height:35.9%;overflow:hidden;border-radius:7%;background:#8ca693}.scenery{position:absolute;max-width:none;width:205%;height:100%;object-fit:cover;object-position:left center;will-change:transform}.scenery-b{left:205%;transform:scaleX(-1)}.window-world:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 25px #192c2260;background:linear-gradient(90deg,#23483510,#fff7d415);pointer-events:none}.passing-trees{position:absolute;inset:0;width:250%;background:repeating-linear-gradient(93deg,transparent 0 38%,#384e3245 39%,transparent 40% 63%);filter:blur(5px);opacity:.35;animation:trees-pass 6s linear infinite}.window-sheen{position:absolute;inset:-40%;background:linear-gradient(112deg,transparent 40%,#fff8d42e 45%,transparent 60%);transform:translateX(-25%)}.window-story{position:absolute;z-index:4;top:29%;left:26%;width:48%;text-align:center;color:#fffdf0;text-shadow:0 2px 18px #173e2b,0 1px 3px #173e2b;will-change:transform,opacity}.window-story h2{font-size:clamp(28px,3vw,49px);line-height:1.55}.window-story p{margin:12px auto 10px;font-size:14px}.stop-kicker{font-size:11px;letter-spacing:.2em;display:block;margin-bottom:10px}.window-story a{font-size:12px;display:inline-block;border-bottom:1px solid #fff9}.window-story:before{content:'';position:absolute;z-index:-1;inset:-12% -10%;background:radial-gradient(ellipse,#163c2a70,transparent 72%)}.hero-title{position:absolute;top:12%;left:22%;width:56%;text-align:center;color:#36523d;pointer-events:none}.hero-title h1{font-size:clamp(30px,3.8vw,58px);line-height:1.4}.hero-title .eyebrow{font-size:10px;margin-bottom:5px}.journey-caption{position:absolute;left:50%;bottom:14%;transform:translateX(-50%);color:#fff6df;background:#234e40c9;padding:9px 24px;border:1px solid #e7d6a659;display:flex;gap:20px;align-items:center;white-space:nowrap;z-index:10;font-size:13px}.journey-count{font-size:10px;letter-spacing:.14em}.journey-controls{position:absolute;bottom:26px;left:5%;right:5%;display:flex;gap:24px;color:#fff4db;align-items:center;justify-content:center;z-index:15;text-shadow:0 1px 6px #1b281f}.journey-controls button,.journey-controls a{font-size:11px;padding:8px 10px;background:#203d32a8;border-radius:2px}.journey-track{position:absolute;bottom:0;left:0;right:0;height:3px;background:#f8efd540;z-index:18}.journey-track i{display:block;width:100%;height:100%;background:#b55436;transform:scaleX(0);transform-origin:left}.train-shell{position:absolute;inset:0;width:100%;height:100%;opacity:0;z-index:5;overflow:visible;filter:drop-shadow(0 20px 18px #10251e70)}.door-pair{position:absolute;z-index:6;left:26.7%;top:16.6%;width:46.6%;height:67.5%;overflow:hidden;opacity:0;border-radius:25px}.train-door{position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(90deg,#315d4c,#648b72 30%,#315d4c);border:4px solid #bac3a6;box-shadow:inset 0 0 0 6px #204332;display:flex;align-items:flex-end;justify-content:center;padding-bottom:15%;color:#f4e5b8;font:18px RailSerif}.left-door{left:0;transform:translateX(-102%)}.right-door{right:0;transform:translateX(102%)}.train-door i{position:absolute;left:14%;right:14%;top:10%;height:40%;background:linear-gradient(135deg,#567467,#bcc3a399,#29483b);border:7px solid #d6d2b9;border-radius:18px}.train-door b{position:absolute;top:65%;height:50px;width:9px;border-radius:9px;background:#d2b786}.left-door b{right:8%}.right-door b{left:8%}.rail-wheels{position:absolute;bottom:1%;left:8%;right:8%;display:flex;justify-content:space-between;opacity:0;z-index:2}.rail-wheels i{width:12%;aspect-ratio:1;border-radius:50%;background:radial-gradient(#b4b4a1 0 12%,#24372f 13% 45%,#888e7f 46% 54%,#15271e 55%);box-shadow:0 10px 10px #0005}.arrival{position:absolute;z-index:8;left:32%;top:23%;width:36%;text-align:center;opacity:0;visibility:hidden;filter:blur(18px);color:#173d2c;text-shadow:0 2px 18px #fff4d9}.arrival:before{content:'';position:absolute;inset:-15% -12%;z-index:-1;background:radial-gradient(#fff4d1d9 15%,#fff4d199 50%,transparent 75%);filter:blur(20px)}.arrival-kicker{font-size:16px;letter-spacing:.2em}.arrival h2{font-size:clamp(40px,5vw,78px);line-height:1.4;margin:16px 0}.arrival h2 em{font-style:normal;color:#8c3c29}.arrival p{margin:0 auto 25px}.steam{position:absolute;z-index:9;pointer-events:none;width:35%;height:65%;top:24%;left:34%;opacity:0;background:radial-gradient(ellipse at 30% 70%,#fff6e288,transparent 50%),radial-gradient(ellipse at 70% 35%,#fff8e8aa,transparent 45%);filter:blur(28px);border-radius:50%}.steam-b{left:38%;transform:rotate(25deg)}@keyframes cabin-sway{0%,100%{transform:translate3d(-2px,2px,0) rotate(-.12deg)}27%{transform:translate3d(3px,-3px,0) rotate(.09deg)}58%{transform:translate3d(-3px,-1px,0) rotate(-.05deg)}80%{transform:translate3d(2px,3px,0) rotate(.12deg)}}@keyframes trees-pass{from{transform:translateX(0)}to{transform:translateX(-55%)}}.motion-paused .carriage-rock,.motion-paused .passing-trees{animation-play-state:paused}.rail-notes{padding:120px 0}.intro-note{display:grid;grid-template-columns:1.05fr 1fr;column-gap:12%;align-items:center}.intro-note>.eyebrow{grid-column:1/-1;margin-bottom:25px;color:#a14a31}.intro-note>p{line-height:2.2}.route-ribbon{display:flex;justify-content:space-between;position:relative;margin:95px 0 80px;padding-top:50px}.route-ribbon>span{position:absolute;top:0;font-size:11px;letter-spacing:.1em}.route-ribbon:before{content:'';position:absolute;left:0;right:0;top:58px;border-top:1px solid #849b7b}.route-ribbon a{position:relative;background:#f5f1e7;padding-right:15px;display:flex;flex-direction:column}.route-ribbon i{width:15px;height:15px;border:1px solid #6a8460;border-radius:50%;background:#f5f1e7;margin-bottom:15px}.route-ribbon strong{font:28px RailSerif}.route-ribbon small{font-size:9px;letter-spacing:.18em;margin-top:8px}.note-pair{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.paper-note{padding:45px 40px;border:1px solid #c4c9b5;position:relative;background:#ece9db;transform:rotate(-2deg);box-shadow:8px 10px 0 #e4e2d3}.paper-note h3{font-size:34px;margin:20px 0}.paper-note p{margin-bottom:20px}.red-stamp{display:inline-block;border:1px solid #a44c36;padding:4px 10px;color:#a44c36;font-size:12px;transform:rotate(5deg)}.season-teaser{min-height:420px;position:relative;padding:35px;background:linear-gradient(90deg,#183d28c9,#183d2820),url('assets/landscape.webp') center/cover;color:#fff9e9}.season-teaser h3{font-size:50px;margin:30px 0}.season-teaser p{margin-bottom:20px}.season-teaser>span:last-child{font-size:13px}.route-heading{padding:80px 0 60px;position:relative}.route-heading>p:last-child{position:absolute;right:0;bottom:75px}.route-atlas{display:grid;grid-template-columns:35% 55%;gap:10%;align-items:start}.map-column{position:sticky;top:20px}.rail-map{width:100%;height:min(75vh,700px);overflow:visible}.map-river{fill:none;stroke:#bdd1bf;stroke-width:70}.map-hill{stroke:#b6c6a6;stroke-width:1;fill:none}.map-track{fill:none;stroke:#a75238;stroke-width:4;stroke-dasharray:8 5}.map-type{fill:#254d40;font:25px RailSerif}.map-column nav{display:flex;justify-content:space-between;font-size:12px}.station-sheet{padding:20px 0 65px;margin-bottom:50px;border-bottom:1px solid #bdc5b1;scroll-margin-top:35px}.station-sign{display:flex;align-items:center;gap:25px;border:1px solid #829b7b;padding:16px 25px;position:relative;margin-bottom:30px;background:linear-gradient(#faf7ee,#e6e8d8);box-shadow:0 7px 0 #264b3c}.station-sign>span{font:13px system-ui;border:1px solid #9aa78c;border-radius:50%;padding:8px}.station-sign h2{font-size:42px;letter-spacing:.2em}.station-sign small{font:11px system-ui;letter-spacing:.2em}.station-sign b{margin-left:auto;font-size:30px;font-weight:400}.station-sheet>h3{margin:15px 0;font-size:23px}.station-sheet dl{margin:25px 0}.station-sheet dl>div{display:grid;grid-template-columns:65px 1fr;padding:12px 0;border-top:1px solid #d0d3c1}.station-sheet dt{font-size:12px;color:#a44d35}.station-sheet dd{margin:0;font-size:14px}.station-links{display:flex;gap:25px;flex-wrap:wrap}.add-stop{margin-top:25px;border:1px solid #8b9b80;padding:8px 18px;font-size:13px}.add-stop[aria-pressed=true]{background:#254d40;color:#fff9e9}.planner{margin-top:40px;margin-bottom:110px;padding:50px 5%;background:#e6e9db;border-top:4px solid #254d40}.planner>div:first-child{max-width:720px}.planner p{margin:15px 0}.planner form{margin:35px 0;display:flex;flex-wrap:wrap;gap:25px;align-items:end}.planner fieldset,.ticket-calculator fieldset{border:0;padding:0;margin:0}.planner legend,.ticket-calculator legend{font-size:12px;margin-bottom:12px}.planner fieldset label{display:inline-flex;padding:9px 12px;border:1px solid #a6b39a;margin:0 6px 8px 0;gap:8px}.pace-label{display:flex;flex-direction:column;gap:8px;font-size:12px}select,input[type=number]{background:#faf7ec;border:1px solid #9daa94;color:#254d40;padding:10px;font-size:14px}#plan-result{border-top:1px dashed #839474;padding-top:20px}#plan-result h3{font-size:25px}#plan-result ol{padding-left:22px}#plan-result li{padding:5px 0}.ticket-counter{display:grid;grid-template-columns:1fr 1fr;gap:12%;padding:80px 0 70px;align-items:center}.counter-copy>p{margin:25px 0}.counter-number{font:140px/1 Georgia;color:#c8cfbc;border-top:1px solid #c8cfbc;padding-top:30px;margin-top:45px;display:flex;align-items:center;gap:25px}.counter-number small{font:14px RailSerif;color:#6e8066;writing-mode:vertical-rl;letter-spacing:.2em}.ticket{background:#e4b876;color:#563b21;box-shadow:12px 16px 0 #dedecb;position:relative;transform:rotate(3deg);padding:28px;border-radius:7px}.ticket:before,.ticket:after{content:'';position:absolute;width:30px;height:30px;border-radius:50%;background:#f5f1e7;bottom:52px;left:-15px}.ticket:after{left:auto;right:-15px}.ticket-brand{display:flex;justify-content:space-between;font-size:14px;border-bottom:1px solid #a48249;padding-bottom:15px}.ticket-brand span{font-size:10px}.ticket-main{display:flex;align-items:center;gap:15px;padding:25px 0}.ticket-main>span{font:120px/1 Georgia}.ticket-main>div{font:28px RailSerif}.ticket-main small{display:block;font:12px system-ui;margin-top:10px}.ticket-main i{font:13px/2 RailSerif;writing-mode:vertical-rl;margin-left:auto}.ticket-price{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #a48249;padding:18px 0;font-size:12px}.ticket-price strong{font-size:23px}.ticket-stub{border-top:1px dashed #a48249;padding-top:20px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.08em}#ticket-form{margin-top:45px}#ticket-form fieldset label{margin-right:28px}.ticket-qty{display:flex;gap:20px;margin:20px 0}.ticket-qty label{display:flex;flex-direction:column;font-size:12px;gap:8px;flex:1}.ticket-qty input{width:100%}#ticket-breakdown{font-size:14px}#ticket-form small{font-size:11px;color:#6b7761;display:block;margin-top:10px}.pass-rules{padding:40px 0 110px}.section-title{margin-bottom:40px}.section-title h2{margin-top:15px}.fare-table{display:grid;grid-template-columns:1fr 1fr;gap:8%;border-top:1px solid #a4b29a;padding-top:35px}table{width:100%;border-collapse:collapse;text-align:left;font-size:17px}caption{text-align:left;font-size:12px;margin-bottom:15px}td,th{padding:18px 12px;border-bottom:1px solid #ccd1bc}thead{font-size:12px}tbody th{font-weight:400}.fare-table p{margin:15px 0}.rule-strips{margin-top:60px}.rule-strips article{display:grid;grid-template-columns:50px 1fr 1fr;gap:35px;align-items:start;border-top:1px solid #bbc6ae;padding:30px 0}.rule-strips article>span{color:#a44d35;font-family:Georgia;font-size:23px}.rule-strips h3{font-size:23px}.official-next{margin-top:50px;padding:45px 0;border-top:3px double #839676;display:flex;justify-content:space-between;align-items:center;gap:25px}.season-cover{height:640px;position:relative;overflow:hidden;color:#fff8e6}.season-cover>img{width:100%;height:100%;object-fit:cover;object-position:40% 50%;filter:brightness(.72)}.season-cover>div{position:absolute;top:20%;left:8%}.season-cover h1{margin:20px 0;font-size:68px}.season-seal{position:absolute;right:10%;top:18%;border:1px solid #fff9;width:90px;height:120px;display:grid;place-content:center;text-align:center;font:22px/1.8 RailSerif;border-radius:50%}.almanac{padding:75px 0 100px}.calendar-intro{display:flex;justify-content:space-between;gap:35px;align-items:center}.calendar-intro p{font-size:13px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin:45px 0 25px}.filters button{padding:9px 18px;border:1px solid #a5b395;border-radius:50px;font-size:13px}.filters button[aria-pressed=true]{background:#254d40;color:#fff9e9}.event-row{display:grid;grid-template-columns:14% 1fr 25%;gap:5%;padding:35px 0;border-bottom:1px solid #bcc7b0}.event-num{font:54px/1.3 Georgia;color:#b45136}.event-num small{font:12px system-ui;color:#5c7257;display:block;margin-top:10px}.event-row h3{font-size:29px;margin:10px 0}.event-row p:not(.eyebrow){font-size:14px}.event-date{display:flex;flex-direction:column;align-items:start;justify-content:center;gap:15px}.event-date strong{font-size:13px;font-weight:500}.special-journey{margin-top:70px;background:#e5e8d9;padding:50px 6%;position:relative;border-left:6px solid #a44d35}.special-journey h2{margin:15px 0}.special-journey>p{max-width:700px;margin-bottom:25px}.special-journey>a{margin-right:25px}.companion-cover{display:grid;grid-template-columns:42% 58%;align-items:center;padding:65px 0 65px 6%;gap:0;overflow:hidden}.companion-cover>div{position:relative;z-index:2;margin-right:-40px}.companion-cover h1{font-size:clamp(36px,4.3vw,64px);margin:25px 0}.companion-cover img{width:100%;min-height:500px;object-fit:cover;object-position:center;border-radius:200px 0 0 0}.companion-cover>div>p{font-size:14px}.travel-journal{display:grid;grid-template-columns:25% 1fr;gap:10%;padding:50px 0 80px}.journal-margin{font:20px/2 RailSerif;writing-mode:vertical-rl;justify-self:start;padding:30px 0;border-left:1px solid #a0af94}.journal-margin span{font:11px system-ui;letter-spacing:.2em;margin-top:20px}.travel-journal article{padding:35px 0;border-bottom:1px solid #c4cdb9}.travel-journal article>span{font-size:11px;letter-spacing:.15em;color:#a44932}.travel-journal h2{font-size:32px;margin:20px 0}.departure-check{padding:50px 5%;display:grid;grid-template-columns:1fr 1.2fr;gap:10%;background:#e5e9da}.checklist label{display:flex;align-items:start;gap:15px;padding:13px 0;border-bottom:1px solid #bdc8ad}.checklist input{margin-top:8px;accent-color:#254d40}.checklist input:checked+span{text-decoration:line-through;color:#76866b}.sources{padding:80px 0}.sources h2{font-size:28px;margin-bottom:20px}.sources h3{margin:30px 0 10px;font-size:23px}.sources p{font-size:13px;max-width:900px}.sources ul{padding-left:20px}.sources li{font-size:13px}footer{background:#234e40;color:#f0edd9;padding:55px 6% 25px}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:30px}.return-ticket{border:1px dashed #d4d8b6;padding:10px 20px;text-align:center;font:16px RailSerif}.return-ticket small{display:block;font:8px system-ui;letter-spacing:.12em;margin-top:6px}.departure-board{border:1px solid #758c70;background:#1b3b32;padding:0 25px}.departure-board>div,.departure-board>a{display:grid;grid-template-columns:12% 1fr 25%;align-items:center;gap:20px;padding:16px 0;border-bottom:1px solid #556d57}.departure-board>a:last-child{border-bottom:0}.board-head{font-size:10px;letter-spacing:.2em;color:#bfc9ac}.departure-board a>span:first-child{font:23px Georgia;color:#d4bc7b}.departure-board strong{font:22px RailSerif;letter-spacing:.06em}.departure-board a>span:last-child{font-size:12px;text-align:right}.footer-base{display:flex;flex-wrap:wrap;gap:25px;align-items:center;justify-content:space-between;margin-top:35px;font-size:11px;color:#ccd4bc}.footer-base .brand{font-size:24px}.footer-base .brand span{font-size:13px}.footer-base>small{width:100%;font-size:9px;letter-spacing:.14em;margin-top:10px}dialog{max-width:620px;width:calc(100% - 32px);padding:50px;background:#f5f1e7;color:#254d40;border:1px solid #9fae91}dialog::backdrop{background:#132d25bb;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:12px;top:12px;font-size:28px;width:38px;height:38px;display:grid;place-content:center;line-height:1}dialog h2{font-size:32px;margin:15px 0}dialog p{margin:15px 0}dialog .button{margin-top:15px}.reduced .rail-journey{height:auto}.reduced .journey-stage{position:relative;height:90svh;min-height:600px}.reduced .carriage-rock,.reduced .passing-trees{animation:none}.reduced .journey-controls #journey-skip{display:none}.reduced .journey-controls{bottom:15px}.reduced .journey-caption{bottom:11%}
@media(min-width:1700px){.window-story{top:31%}.window-story h2{font-size:44px}.hero-title{top:10%}}@media(max-width:1000px){header{gap:20px;padding:0 4%;height:88px}header nav{gap:20px;font-size:12px}.header-plan{display:none}.hero-title{top:14%}.hero-title h1{font-size:34px}.window-story h2{font-size:35px}.window-story p{font-size:12px}.window-story{top:30%}.journey-caption{bottom:13%;font-size:12px}.arrival{left:29%;width:42%}.arrival h2{font-size:52px}.route-heading>p:last-child{position:static;margin-top:25px}.ticket-counter{gap:7%}.ticket{padding:20px}.ticket-main>span{font-size:100px}.ticket-price strong{font-size:20px}.companion-cover h1{font-size:40px}.calendar-intro{display:block}.calendar-intro p{margin-top:20px}}
@media(max-width:650px){body{font-size:14px}header{height:100px;flex-wrap:wrap;align-content:center;gap:10px;background:#f5f1e7!important;padding:10px 6%}.brand{font-size:21px;gap:8px}.brand svg{width:32px;height:32px}.brand small{font-size:8px}.brand>span{display:flex;align-items:center;gap:12px}.brand>span>small{margin:0}header nav{width:100%;gap:0;justify-content:space-between;font-size:11px}header nav a{padding:3px 0}.wrap{width:88%}.rail-journey{height:650svh}.journey-stage{background:#eee2c8}.carriage-art{width:100vw;height:66.667vw;top:48%}.carriage-rock{inset:0}.hero-title{top:17%;left:8%;width:84%}.hero-title h1{font-size:32px;line-height:1.6}.hero-title .eyebrow{font-size:8px}.window-story{top:29%;left:25%;width:50%}.window-story h2{font-size:16px;line-height:1.5}.window-story p,.window-story>a{display:none}.stop-kicker{font-size:6px;letter-spacing:.07em;margin-bottom:4px}.journey-caption{left:8%;right:8%;width:auto;bottom:18%;transform:none;white-space:normal;flex-direction:column;gap:7px;padding:15px;text-align:center;color:#254d40;background:none;border-top:1px solid #b9b896;border-bottom:1px solid #b9b896;font-size:15px}.journey-count{font-size:9px;color:#a44d35}.journey-controls{left:3%;right:3%;bottom:4%;gap:3px;flex-wrap:wrap}.journey-controls button,.journey-controls a{font-size:10px;padding:8px}.train-camera{transform-origin:50% 48%}.station-scene img{object-fit:cover;object-position:center}.station-scene{background:#e7e1c8}.arrival{left:13%;width:74%;top:24%;color:#214b38}.arrival h2{font-size:43px}.arrival p{font-size:14px}.arrival-kicker{font-size:13px}.arrival:before{inset:-10% -5%;background:radial-gradient(#fff4d1e8 20%,#fff4d1af 60%,transparent 78%)}.train-door{font-size:7px;border-width:2px;border-radius:0}.train-door i{border-width:3px;border-radius:5px}.train-door b{width:3px;height:15px}.door-pair{border-radius:6px}.train-shell text{font-size:32px}.rail-notes{padding:65px 0}.intro-note{display:block}.intro-note>.eyebrow{display:block;font-size:10px}.intro-note h2{font-size:30px;margin-bottom:25px}.route-ribbon{margin:50px 0}.route-ribbon strong{font-size:21px}.route-ribbon small{font-size:7px}.route-ribbon a{padding-right:10px}.note-pair{display:block}.paper-note{padding:30px 25px;margin:0 6px 45px}.paper-note h3{font-size:27px}.season-teaser{min-height:350px}.season-teaser h3{font-size:42px}.route-heading{padding:45px 0}.route-heading h1{font-size:35px}.route-heading>.eyebrow{font-size:9px;margin-bottom:18px}.route-atlas{display:block}.map-column{position:relative;top:auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;margin-bottom:45px}.rail-map{height:340px}.map-column nav{flex-direction:column;gap:18px;padding-left:20px;border-left:1px solid #bdc6b2}.station-sheet{padding-top:10px;margin-bottom:30px}.station-sign{padding:12px 18px}.station-sign h2{font-size:32px}.station-sign>span{font-size:11px;padding:5px}.station-sheet>h3{font-size:22px}.station-sheet dl>div{grid-template-columns:55px 1fr}.station-links{gap:15px}.text-link{font-size:12px}.planner{padding:35px 6%;margin-bottom:65px}.planner h2{font-size:27px}.planner form{display:block}.planner fieldset label{padding:8px;font-size:12px}.pace-label{margin:20px 0}.planner .button{width:100%}.ticket-counter{display:block;padding:45px 0 40px}.counter-copy h1{font-size:39px;margin-top:15px}.counter-copy>p{font-size:13px}.counter-number{display:none}.ticket-calculator{margin-top:50px}.ticket{margin:0 6px}.ticket-main>span{font-size:105px}.ticket-price strong{font-size:21px}.ticket-brand{font-size:13px}#ticket-form{padding:0 6px}.pass-rules{padding:35px 0 65px}.section-title h2{font-size:29px}.fare-table{display:block}.fare-table>div{margin-top:30px}.rule-strips{margin-top:35px}.rule-strips article{grid-template-columns:30px 1fr;gap:15px;padding:25px 0}.rule-strips article p{grid-column:2}.rule-strips h3{font-size:22px}.official-next{display:block;margin-top:25px;padding:30px 0}.official-next h3{font-size:23px;margin-bottom:20px}.season-cover{height:510px}.season-cover>div{left:7%;top:24%}.season-cover h1{font-size:43px}.season-cover .eyebrow{font-size:9px}.season-seal{right:8%;top:8%;width:55px;height:80px;font-size:15px}.almanac{padding:45px 0 60px}.calendar-intro h2{font-size:30px}.filters{gap:7px;margin-top:30px}.filters button{font-size:11px;padding:8px 12px}.event-row{grid-template-columns:45px 1fr;gap:18px;padding:28px 0}.event-num{font-size:33px}.event-num small{font-size:9px}.event-row h3{font-size:24px}.event-row .eyebrow{font-size:9px}.event-date{grid-column:2;gap:6px}.event-row p:not(.eyebrow){font-size:13px}.special-journey{padding:30px 7%;margin-top:40px}.special-journey h2{font-size:25px}.special-journey .button{padding:12px 18px;margin-bottom:15px}.companion-cover{display:flex;flex-direction:column;padding:40px 0 0;align-items:stretch}.companion-cover>div{margin:0;padding:0 6%}.companion-cover h1{font-size:37px;margin:20px 0}.companion-cover img{margin-top:35px;min-height:0;height:auto;aspect-ratio:1.5;border-radius:0;width:100%}.travel-journal{grid-template-columns:25px 1fr;gap:20px;padding:30px 0 50px}.journal-margin{font-size:14px;padding:20px 0}.travel-journal h2{font-size:25px}.travel-journal article>span{font-size:9px}.travel-journal article{padding:25px 0}.departure-check{display:block;padding:30px 6%}.departure-check h2{font-size:28px;margin:15px 0 25px}.checklist label{font-size:13px}.sources{padding:50px 0}.sources h2{font-size:25px}footer{padding:35px 6% 20px}.footer-top>.eyebrow{max-width:140px;font-size:10px;line-height:2}.return-ticket{font-size:13px;padding:9px 12px}.departure-board{padding:0 15px}.departure-board>div,.departure-board>a{grid-template-columns:25px 1fr 72px;gap:10px}.departure-board strong{font-size:18px}.departure-board a>span:last-child{font-size:10px}.departure-board a>span:first-child{font-size:19px}.board-head{font-size:8px;letter-spacing:.05em}.footer-base{gap:18px}.footer-base .brand{width:100%;font-size:24px}.footer-base>a:not(.brand){font-size:10px}.footer-base>small{font-size:8px}dialog{padding:40px 25px}dialog h2{font-size:27px}.reduced .journey-stage{height:740px;min-height:0}.reduced .hero-title{top:7%}.reduced .carriage-art{top:44%}.reduced .journey-caption{bottom:17%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.scenery-b{display:none}.counter-copy h1{font-size:clamp(36px,4vw,62px)}

.companion-cover img{background:url(assets/landscape.webp) center/cover}@media(max-width:650px){.travel-journal{display:block}.journal-margin{writing-mode:horizontal-tb;border-left:0;border-bottom:1px solid #a0af94;padding:10px 0;font-size:13px}.journal-margin br{display:none}.journal-margin span{margin:0 0 0 20px}}

.train-shell{mask:url(assets/exterior-mask.svg) center/100% 100% no-repeat;-webkit-mask:url(assets/exterior-mask.svg) center/100% 100% no-repeat;filter:drop-shadow(0 16px 13px #11291e60)}.rail-wheels{display:none}.door-pair{left:38.3%;top:31.5%;width:23.7%;height:42.7%;border-radius:0}.train-door{background-image:url(assets/exterior.webp);background-size:844% 234%;border:0;box-shadow:none;padding:0}.left-door{background-position:43.43% 55%}.right-door{background-position:56.87% 55%}.train-door>*{display:none}

@media(max-width:650px){.station-scene img{height:auto;position:absolute;top:48%;transform:translateY(-50%);object-fit:contain}.arrival{inset:14% 8% auto;width:84%;height:70%;text-shadow:none}.arrival-kicker{font-size:10px}.arrival h2{font-size:31px;margin:10px 0}.arrival h2 br{display:none}.arrival p{position:absolute;top:75%;left:0;right:0;font-size:12px;line-height:1.8}.arrival .button{position:absolute;top:88%;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;padding:9px 20px}.arrival:before{display:none}.steam{width:65%;left:18%}}

.window-story[data-scene=tickets]{background:#efcf92ed;color:#244c3b;text-shadow:none;left:30%;width:40%;top:27%;padding:15px 20px;border:1px dashed #846f49;box-shadow:6px 8px 0 #18382c40}.window-story[data-scene=tickets] h2{font-size:clamp(24px,2.4vw,37px)}.window-story[data-scene=tickets]:before{display:none}.window-story[data-scene=event] .stop-kicker{display:inline-block;border:1px solid #f6e8bc;padding:4px 16px;letter-spacing:.15em}.reduced-arrival{display:none}.reduced .reduced-arrival{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6%;padding:60px 6%}.reduced-arrival p{margin:20px 0}@media(max-width:650px){.window-story[data-scene=tickets]{top:26%;padding:5px;left:29%;width:42%}.window-story[data-scene=tickets] h2{font-size:14px}.window-story[data-scene=event] .stop-kicker{padding:2px 5px}.reduced .reduced-arrival{display:block;padding:40px 6%}.reduced-arrival h2{margin-top:25px}}

/* v1.1: camera retreats through an open doorway, then through the station. */
.platform-world{position:absolute;inset:0;transform-origin:50% 55%;will-change:transform;isolation:isolate}
.platform-backdrop{position:absolute;inset:0;opacity:0;background:#ddd8c5}.platform-backdrop img{width:100%;height:100%;object-fit:cover}
.interior-aperture,.cabin-view,.exterior-plane{position:absolute;inset:0;transform-origin:50.15% 52.85%}
.interior-aperture{clip-path:inset(0);background:#26392f;z-index:2}.cabin-view{background:#293b31}
.exterior-plane{z-index:5;pointer-events:none;will-change:transform}.train-shell,.door-pair{opacity:0}
.platform-note{position:absolute;left:8%;right:8%;bottom:14%;text-align:center;opacity:0;visibility:hidden;transform:translateY(15px);color:#fff9e5;text-shadow:0 2px 12px #152a21}
.platform-note span{font:32px RailSerif;letter-spacing:.12em}.platform-note p{font-size:13px;margin-top:10px}
.station-threshold{position:absolute;inset:14% 24%;border:18px solid #4b4637;border-top-width:65px;box-shadow:0 0 0 10px #b8ad8d,inset 0 0 35px #18251d;opacity:0;transform:scale(3);pointer-events:none}
.station-threshold span{position:absolute;top:-50px;left:0;right:0;text-align:center;font:16px RailSerif;color:#f0e7c7;letter-spacing:.3em}
.rail-journey{height:850svh}
@media(max-width:650px){.rail-journey{height:800svh}.platform-backdrop img{object-fit:contain}.platform-backdrop{background:#ddd8c5}.platform-note{bottom:19%}.platform-note span{font-size:24px}.platform-note p{font-size:11px}.station-threshold{inset:29% 7%;border-width:8px;border-top-width:35px}.station-threshold span{top:-27px;font-size:11px}.platform-world{transform-origin:50% 48%}}
.reduced .rail-journey{height:auto}.reduced .platform-backdrop,.reduced .station-threshold,.reduced .platform-note{display:none}

.station-front{position:absolute;width:max(100vw,150svh);height:max(100svh,66.667vw);left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:47.5% 46.3%;opacity:0;visibility:hidden;pointer-events:none;mask:url(assets/station-exit-mask.svg) center/100% 100% no-repeat;-webkit-mask:url(assets/station-exit-mask.svg) center/100% 100% no-repeat}
.station-front img{width:100%;height:100%}.platform-note{left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:86%;padding:14px 26px;background:#f5efdce8;color:#254d40;text-shadow:none;bottom:10%;border:1px solid #e1d3ac}.platform-note span{font-size:23px}.platform-note p{font-size:11px;margin:5px 0 0}.interior-aperture{background:linear-gradient(#11251f,#4d4a3a 55%,#292a21)}
@media(max-width:650px){.station-front{width:100vw;height:66.667vw;top:48%}.platform-note{bottom:19%;padding:12px;width:86%}.platform-note span{font-size:21px}}

.station-wide{position:absolute;inset:0;opacity:0;background:#eee2c8}.station-wide img{width:100%;height:100%;object-fit:cover;transform:scale(1.12)}
.rail-journey{height:950svh}.reduced .rail-journey{height:auto}.reduced .station-wide,.reduced .station-front{display:none}
@media(max-width:650px){.rail-journey{height:900svh}.reduced .rail-journey{height:auto}.station-wide img{height:auto;position:absolute;top:48%;transform-origin:center;translate:0 -50%;object-fit:contain}}

@media(min-width:651px){.arrival{top:65%;left:15%;width:70%}.arrival h2{font-size:clamp(30px,3.2vw,48px);margin:8px 0;line-height:1.25}.arrival h2 br{display:none}.arrival-kicker{font-size:12px}.arrival p{font-size:12px;line-height:1.6;margin-bottom:12px}.arrival .button{padding:10px 24px;font-size:12px}}
