:root { --primary:#f5891f; --primary-dark:#e66f00; --dark:#162033; --muted:#6b7280; --cream:#fff7ef; --light:#fff; --line:#ecddd1; --soft-orange:#fff0e2; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--dark); background:#fffdfa; font-family:"Be Vietnam Pro",system-ui,sans-serif; overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
.site-header { position:fixed; z-index:100; top:12px; left:0; width:100%; pointer-events:none; transition:transform .3s ease; }
.site-header.header-hidden { transform:translateY(-95px); }
.site-header .navbar { min-height:64px; padding-inline:20px!important; background:rgba(255,255,255,.87); border:1px solid rgba(255,255,255,.9); border-radius:18px; box-shadow:0 12px 35px rgba(34,33,30,.08); backdrop-filter:blur(13px); pointer-events:auto; }
.navbar-brand,.footer-brand { font-size:15px; font-weight:600; letter-spacing:-.03em; white-space:nowrap; }
.navbar-brand strong,.footer-brand strong { color:var(--primary); }
.brand-mark { display:inline-grid; width:32px; height:32px; place-items:center; color:#fff; background:linear-gradient(135deg,#ffad49,var(--primary-dark)); border-radius:10px; box-shadow:0 5px 10px rgba(230,111,0,.25); }
.navbar-nav .nav-link { position:relative; padding:9px 12px!important; color:#4a5361; font-size:13px; font-weight:600; }
.navbar-nav .nav-link:hover,.navbar-nav .nav-link.active { color:var(--primary-dark); }
.navbar-nav .nav-link.active:after { position:absolute; bottom:3px; left:12px; width:calc(100% - 24px); height:2px; background:var(--primary); border-radius:4px; content:""; }
.btn { border-radius:12px; padding:11px 18px; font-size:13px; font-weight:700; transition:transform .25s ease,box-shadow .25s ease,background .25s ease; }
.btn:hover { transform:translateY(-2px); }
.btn-primary { border-color:var(--primary); background:var(--primary); box-shadow:0 9px 20px rgba(245,137,31,.24); }
.btn-primary:hover,.btn-primary:focus { border-color:var(--primary-dark); background:var(--primary-dark); }
.btn-lg { padding:14px 22px; font-size:14px; }
.btn-ghost { border:1px solid #e7dcd1; color:var(--dark); background:#fff; }
.btn-ghost:hover { border-color:#ffbf80; background:var(--soft-orange); color:var(--primary-dark); }
.hero-section { position:relative; min-height:100vh; background:linear-gradient(125deg,#fffdf9 4%,#fff7ed 49%,#fdf1e1 100%); }
.hero-section:after { position:absolute; width:58vw; height:58vw; top:-32vw; right:-12vw; border:1px solid rgba(245,137,31,.14); border-radius:50%; box-shadow:0 0 0 70px rgba(245,137,31,.035),0 0 0 140px rgba(245,137,31,.025); content:""; }
.hero-orb { position:absolute; border-radius:50%; filter:blur(2px); }
.orb-one { width:32px; height:32px; top:21%; right:50%; background:#ffd19b; }.orb-two { width:14px; height:14px; bottom:18%; left:12%; background:#f5891f; }
.hero-copy { position:relative; z-index:2; }
.eyebrow { display:inline-flex; align-items:center; gap:7px; padding:8px 12px; color:var(--primary-dark); background:#fff2e4; border:1px solid #ffe3c4; border-radius:999px; font-size:11px; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { letter-spacing:-.055em; }
.hero-copy h1 { max-width:640px; margin:20px 0 20px; font-size:clamp(2.55rem,5vw,4.8rem); font-weight:800; line-height:1.08; }
.hero-copy h1 span { color:var(--primary); }
.hero-description { max-width:560px; margin-bottom:30px; color:var(--muted); font-size:16px; line-height:1.8; }
.hero-note { display:flex; align-items:center; margin-top:34px; color:#8f8074; font-size:12px; font-weight:600; }.hero-note span { width:31px; height:1px; margin-right:10px; background:var(--primary); }
.hero-visual { position:relative; width:min(100%,620px); height:500px; margin:0 auto; border-radius:48% 48% 28px 28px; background:radial-gradient(circle at 58% 36%,#fff9ef 1%,#ffe8cb 45%,#ffd19d 100%); overflow:hidden; box-shadow:inset 0 0 0 1px rgba(255,255,255,.65); }
.sun { position:absolute; top:51px; right:95px; width:75px; height:75px; border-radius:50%; background:#ffba61; box-shadow:0 0 0 15px rgba(255,255,255,.22); }
.cloud { position:absolute; height:16px; border-radius:20px; background:rgba(255,255,255,.72); }.cloud:before,.cloud:after { position:absolute; bottom:0; border-radius:50%; background:inherit; content:""; }.cloud:before { width:23px;height:23px;left:9px; }.cloud:after { width:18px;height:18px;left:26px; }.cloud-a{top:115px;left:98px;width:50px}.cloud-b{top:170px;right:53px;width:43px;transform:scale(.65)}
.mountains { position:absolute; right:0; bottom:112px; left:0; height:150px; opacity:.48; }.mountains span { position:absolute; bottom:0; display:block; width:0; height:0; border-right:100px solid transparent; border-bottom:140px solid #c4815f; border-left:100px solid transparent; }.mountains span:nth-child(1){left:-28px;border-right-width:160px;border-bottom-width:145px;border-left-width:160px}.mountains span:nth-child(2){right:65px;border-right-width:145px;border-bottom-width:122px;border-left-width:145px;border-bottom-color:#b66e4c}.mountains span:nth-child(3){right:-90px;border-bottom-width:110px;border-bottom-color:#9e634a}
.hero-city { position:absolute; right:0; bottom:105px; left:0; height:85px; opacity:.64; }.hero-city i{position:absolute;bottom:0;display:block;width:24px;background:#9d6b58;border-radius:4px 4px 0 0}.hero-city i:nth-child(1){left:7%;height:35px}.hero-city i:nth-child(2){left:15%;height:58px}.hero-city i:nth-child(3){left:23%;height:40px}.hero-city i:nth-child(4){right:20%;height:68px}.hero-city i:nth-child(5){right:12%;height:43px}.hero-city i:nth-child(6){right:4%;height:61px}
.hero-track { position:absolute; right:-20%; bottom:65px; left:-20%; height:45px; transform:perspective(130px) rotateX(42deg); }.hero-rail { position:absolute; right:0; left:0; height:4px; background:#5f5762; box-shadow:0 10px 0 #765943,0 20px 0 #765943; }.rail-top{top:0}.rail-bottom{top:25px}
.train-art { position:absolute; z-index:5; width:373px; height:121px; filter:drop-shadow(0 17px 12px rgba(126,64,21,.19)); }
.hero-train { right:54px; bottom:94px; transform:scale(.95); transform-origin:right bottom; }
.engine-cab { position:absolute; top:14px; right:0; width:122px; height:72px; border-radius:15px 23px 8px 8px; background:linear-gradient(135deg,#ffb14c,#e96b0c); box-shadow:inset -10px -7px 0 rgba(177,65,0,.17); }.engine-cab:after { position:absolute; right:-10px; bottom:9px; width:16px; height:26px; border-radius:2px 9px 9px 2px; background:#c85200; content:""; }
.engine-window { position:absolute; top:13px; left:18px; width:44px; height:30px; border:4px solid #bf4c00; border-radius:7px 11px 5px 5px; background:#ffe6b5; }.head-light { position:absolute; top:38px; right:9px; width:8px; height:8px; border-radius:50%; background:#ffe68a; box-shadow:0 0 13px 5px rgba(255,224,106,.85); }
.train-car { position:absolute; top:28px; height:60px; border-radius:9px 6px 5px 5px; background:linear-gradient(180deg,#ffac42,#f07913); box-shadow:inset 0 -8px 0 rgba(186,72,0,.15); }.car-one{right:128px;width:120px}.car-two{right:254px;width:105px}.train-car:after{position:absolute;right:-5px;bottom:11px;width:7px;height:5px;background:#914006;content:""}.train-car span{position:relative;top:14px;display:inline-block;width:30px;height:18px;margin-left:13px;border:3px solid #c85907;border-radius:4px;background:#ffe6ae}.train-car span+span{margin-left:6px}
.train-wheel { position:absolute; z-index:2; bottom:1px; width:28px; height:28px; border:6px solid #493c42; border-radius:50%; background:repeating-conic-gradient(#de7720 0deg 25deg,#fff0cb 25deg 40deg); box-shadow:0 0 0 2px #2e2b31; }.wheel-one{right:25px}.wheel-two{right:91px}.wheel-three{right:163px}.wheel-four{right:294px}
.train-smoke { position:absolute; z-index:1; top:-20px; right:78px; }.train-smoke b{position:absolute;display:block;width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,.75)}.train-smoke b:nth-child(1){right:0;bottom:0}.train-smoke b:nth-child(2){right:14px;bottom:16px;width:23px;height:23px;opacity:.75}.train-smoke b:nth-child(3){right:37px;bottom:31px;width:17px;height:17px;opacity:.48}
.scroll-cue { position:absolute; z-index:3; bottom:28px; left:50%; display:flex; flex-direction:column; align-items:center; gap:7px; color:#87766a; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; transform:translateX(-50%); }.mouse{position:relative;width:20px;height:31px;border:1.5px solid #b7957c;border-radius:16px}.mouse i{position:absolute;top:6px;left:8px;width:2px;height:6px;border-radius:2px;background:var(--primary);animation:scrollCue 1.6s infinite}@keyframes scrollCue{0%{transform:translateY(0);opacity:1}100%{transform:translateY(11px);opacity:0}}
.section-space { padding:116px 0; }.journey-intro { position:relative; z-index:2; background:#fffdfa; }.journey-intro h2,.stats-section h2,.final-cta h2 { max-width:740px; margin:18px auto; font-size:clamp(2rem,4vw,3.45rem); font-weight:800; line-height:1.13; }.section-lead { max-width:630px; color:var(--muted); font-size:15px; line-height:1.8; }
.journey-section { position:relative; background:linear-gradient(120deg,#fff 0%,#fff9f2 38%,#ffe8cc 72%,#ffd7a8 100%); isolation:isolate; }
.journey-stage { position:relative; height:100vh; overflow:hidden; }
.journey-panels-track { display:flex; flex-direction:row; height:100%; will-change:transform; }
.journey-backdrop,.track-scene { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.journey-backdrop { background:linear-gradient(118deg,#fff 0%,#fff8f0 42%,#ffecd6 78%,#ffe0b8 100%); }
.backdrop-grid { position:absolute; inset:0; opacity:.22; background-image:linear-gradient(rgba(245,137,31,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(245,137,31,.08) 1px,transparent 1px); background-size:64px 64px; mask-image:linear-gradient(to right,transparent 0,#000 12%,#000 88%,transparent 100%); }
.backdrop-orb{position:absolute;border-radius:50%;filter:blur(2px)}.backdrop-a{top:8%;left:-8%;width:38vw;height:38vw;background:radial-gradient(circle,rgba(255,186,97,.35),transparent 68%)}.backdrop-b{right:-10%;bottom:8%;width:42vw;height:42vw;background:radial-gradient(circle,rgba(255,214,153,.45),transparent 66%)}
.track-scene { z-index:5; top:auto; bottom:24%; height:78px; }.track-moving { position:absolute; top:50%; left:-20%; width:220%; height:78px; transform:translateY(-50%); }.track-glow { position:absolute; top:50%; right:0; left:0; height:18px; transform:translateY(-50%); background:linear-gradient(90deg,transparent,rgba(255,186,97,.35) 20%,rgba(255,214,153,.55) 50%,rgba(255,186,97,.35) 80%,transparent); filter:blur(8px); opacity:.65; animation:trackGlowPulse 2.4s ease-in-out infinite; }
.rail { position:absolute; right:0; left:0; height:4px; background:#c4a484; box-shadow:0 0 12px rgba(245,137,31,.25),0 2px 0 rgba(139,94,54,.18); }.rail-upper{top:12px}.rail-lower{bottom:12px}.rail-ties { position:absolute; top:7px; right:0; bottom:7px; left:0; background:repeating-linear-gradient(90deg,transparent 0 35px,rgba(166,102,48,.75) 36px 45px,transparent 46px 73px); opacity:.85; animation:tiesSlide 1.1s linear infinite; }
.train-wrapper { position:absolute; z-index:20; bottom:24%; left:0; width:100%; height:121px; pointer-events:none; }.journey-train { position:absolute; left:6vw; bottom:0; width:373px; height:121px; transform:translateY(-2px); transition:filter .35s ease; }.journey-train.is-running .head-light { animation:headlightPulse 1.2s ease-in-out infinite; }.journey-train.is-at-station { filter:drop-shadow(0 0 22px rgba(245,137,31,.45)); }.journey-train:after { position:absolute; right:-15px; bottom:3px; width:41px; height:8px; border-radius:3px; background:#903b00; content:""; }
.train-speed-lines { position:absolute; left:6vw; bottom:38px; width:280px; height:50px; opacity:.85; pointer-events:none; }.train-speed-lines i { position:absolute; top:50%; display:block; height:2px; border-radius:2px; background:linear-gradient(90deg,rgba(245,137,31,.05),rgba(245,137,31,.55)); transform:translateY(-50%); animation:speedLine 0.75s linear infinite; }.train-speed-lines i:nth-child(1){left:0;width:90px;animation-delay:0s}.train-speed-lines i:nth-child(2){left:24px;width:120px;animation-delay:.12s;opacity:.75}.train-speed-lines i:nth-child(3){left:48px;width:70px;animation-delay:.24s;opacity:.55}.train-speed-lines i:nth-child(4){left:72px;width:110px;animation-delay:.08s;opacity:.65}.train-speed-lines i:nth-child(5){left:96px;width:80px;animation-delay:.18s;opacity:.45}
.train-headlight-beam { position:absolute; left:calc(6vw + 318px); bottom:52px; width:min(42vw,520px); height:120px; background:radial-gradient(ellipse at left center,rgba(255,224,140,.55) 0%,rgba(255,196,90,.18) 35%,transparent 72%); clip-path:polygon(0 42%,100% 0,100% 100%,0 58%); opacity:.75; animation:beamFlicker 2.8s ease-in-out infinite; pointer-events:none; will-change:transform; }
.train-sparks { position:absolute; right:18px; bottom:2px; width:70px; height:20px; overflow:visible; }.train-sparks b { position:absolute; bottom:0; display:block; width:4px; height:4px; border-radius:50%; background:#ffd56a; box-shadow:0 0 8px #ffb347; opacity:0; animation:wheelSpark 0.55s ease-out infinite; }.train-sparks b:nth-child(1){right:8px;animation-delay:0s}.train-sparks b:nth-child(2){right:22px;animation-delay:.14s}.train-sparks b:nth-child(3){right:36px;animation-delay:.28s}.train-sparks b:nth-child(4){right:50px;animation-delay:.07s}
.journey-ambient { position:absolute; inset:0; z-index:3; overflow:hidden; pointer-events:none; }.journey-ambient span { position:absolute; width:6px; height:6px; border-radius:50%; background:rgba(255,186,97,.55); box-shadow:0 0 12px rgba(255,186,97,.65); animation:ambientFloat 8s ease-in-out infinite; }.journey-ambient span:nth-child(1){top:12%;left:8%;animation-delay:0s}.journey-ambient span:nth-child(2){top:22%;left:24%;animation-delay:1.1s;width:4px;height:4px}.journey-ambient span:nth-child(3){top:18%;left:52%;animation-delay:2.2s}.journey-ambient span:nth-child(4){top:30%;left:72%;animation-delay:.6s;width:5px;height:5px}.journey-ambient span:nth-child(5){top:8%;left:88%;animation-delay:1.8s}.journey-ambient span:nth-child(6){top:42%;left:15%;animation-delay:3s;width:3px;height:3px}.journey-ambient span:nth-child(7){top:55%;left:38%;animation-delay:.9s}.journey-ambient span:nth-child(8){top:48%;left:61%;animation-delay:2.5s;width:4px;height:4px}.journey-ambient span:nth-child(9){top:62%;left:82%;animation-delay:1.4s}.journey-ambient span:nth-child(10){top:70%;left:28%;animation-delay:3.2s;width:5px;height:5px}.journey-ambient span:nth-child(11){top:75%;left:55%;animation-delay:.3s;width:3px;height:3px}.journey-ambient span:nth-child(12){top:68%;left:92%;animation-delay:2s}
.panel-arrival { position:absolute; z-index:15; top:50%; left:50%; width:1px; height:1px; pointer-events:none; }.panel-arrival i { position:absolute; display:block; width:8px; height:8px; border-radius:50%; background:var(--primary); opacity:0; transform:translate(-50%,-50%) scale(0); }.year-panel.is-active .panel-arrival i { animation:arrivalBurst 0.9s ease-out forwards; }.panel-arrival i:nth-child(1){animation-delay:0s;background:#ffb347}.panel-arrival i:nth-child(2){animation-delay:.05s;--burst-x:-90px;--burst-y:-40px;background:#ff9a3c}.panel-arrival i:nth-child(3){animation-delay:.08s;--burst-x:80px;--burst-y:-55px;background:#ffd56a}.panel-arrival i:nth-child(4){animation-delay:.03s;--burst-x:-60px;--burst-y:50px;background:#f5891f}.panel-arrival i:nth-child(5){animation-delay:.1s;--burst-x:100px;--burst-y:30px;background:#ffba61}.panel-arrival i:nth-child(6){animation-delay:.06s;--burst-x:0px;--burst-y:-80px;background:#ffe0a8}
.year-panel { position:relative; z-index:10; flex:0 0 100vw; width:100vw; height:100vh; color:var(--dark); }.year-panel .container { position:relative; z-index:2; }.year-panel.is-active:before { position:absolute; inset:0; background:radial-gradient(circle at 50% 45%,rgba(255,186,97,.22),transparent 55%); opacity:0; animation:panelGlowIn 0.8s ease forwards; content:""; pointer-events:none; z-index:0; }.year-content { position:relative; padding:30px; border:1px solid rgba(245,137,31,.16); border-radius:24px; background:rgba(255,255,255,.92); box-shadow:0 20px 45px rgba(245,137,31,.12); backdrop-filter:blur(8px); transition:transform .5s cubic-bezier(.22,1,.36,1),box-shadow .5s ease,border-color .5s ease; }.year-panel.is-active .year-content { transform:translateY(-6px) scale(1.02); border-color:rgba(245,137,31,.35); box-shadow:0 28px 55px rgba(245,137,31,.22),0 0 0 1px rgba(255,186,97,.25); }.station-label { display:inline-flex; align-items:center; gap:7px; margin-bottom:8px; color:var(--primary-dark); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.year-number { position:relative; margin-left:-4px; color:var(--primary); font-size:clamp(3.4rem,6vw,5.4rem); font-weight:800; line-height:1; letter-spacing:-.08em; }.year-content h3 { margin:4px 0 13px; font-size:clamp(1.8rem,3vw,2.55rem); font-weight:800; }.year-content p { max-width:390px; margin-bottom:22px; color:var(--muted); font-size:14px; line-height:1.75; }.milestone-card { display:flex; align-items:center; gap:12px; padding-top:16px; border-top:1px solid rgba(245,137,31,.14); }.milestone-icon { display:grid; flex:0 0 42px; width:42px; height:42px; place-items:center; color:var(--primary); background:#fff0df; border-radius:13px; font-size:19px; }.milestone-card strong,.milestone-card small { display:block; }.milestone-card strong { margin-bottom:3px; font-size:12px; }.milestone-card small { color:#9a8b7d; font-size:10px; line-height:1.4; }
.station { position:absolute; z-index:12; top:50%; display:flex; align-items:center; gap:9px; color:#8f7a66; font-size:11px; font-weight:700; white-space:nowrap; transform:translateY(-50%); transition:color .35s ease,transform .35s ease; }.station i { position:relative; z-index:2; display:grid; width:38px; height:38px; place-items:center; color:var(--primary); border:2px solid #ffc894; border-radius:50%; background:#fff; font-size:15px; transition:all .35s ease; }.station-ring { position:absolute; z-index:1; top:50%; width:38px; height:38px; border:2px solid rgba(245,137,31,.35); border-radius:50%; transform:translateY(-50%) scale(1); opacity:0; }.station-right .station-ring { right:0; }.station-left .station-ring { left:0; }.platform-light { position:absolute; bottom:-28px; width:8px; height:8px; border-radius:50%; background:#ffd89a; box-shadow:0 0 10px rgba(255,186,97,.5); opacity:.35; }.station-right .platform-light:nth-of-type(2){right:52px}.station-right .platform-light:nth-of-type(3){right:88px}.station-left .platform-light:nth-of-type(2){left:52px}.station-left .platform-light:nth-of-type(3){left:88px}.station-right{right:clamp(22px,12vw,16%)}.station-left{left:clamp(22px,12vw,16%);flex-direction:row-reverse}.year-panel.is-active .station { color:var(--primary-dark); animation:stationPop .55s cubic-bezier(.22,1.3,.36,1); }.year-panel.is-active .station i { color:#fff; border-color:var(--primary); background:var(--primary); box-shadow:0 0 0 7px rgba(245,137,31,.16),0 0 25px rgba(245,137,31,.35); transform:scale(1.12); animation:stationIconPulse 1.6s ease-in-out infinite; }.year-panel.is-active .station-ring { animation:stationRingBurst 1.1s ease-out forwards; }.year-panel.is-active .platform-light { animation:platformBlink 1.2s ease-in-out infinite; }.year-panel.is-active .platform-light:nth-of-type(3){animation-delay:.25s}
.panel-scenery { position:absolute; z-index:1; top:0; right:0; bottom:0; left:0; overflow:hidden; opacity:.62; }.scenery-start .s-start-flag{position:absolute;top:23%;right:17%;width:3px;height:180px;background:#d4b89a}.scenery-start .s-start-flag:after{position:absolute;top:0;left:3px;width:96px;height:60px;border-radius:0 7px 7px 0;background:linear-gradient(135deg,var(--primary),#ffbd6b);content:""}.s-start-hill{position:absolute;right:-10%;bottom:0;width:43%;height:37%;border-radius:50% 50% 0 0;background:rgba(255,186,120,.35)}.scenery-rise{right:3%;left:auto;width:42%}.s-chart{position:absolute;bottom:17%;width:52px;border-radius:9px 9px 0 0;background:linear-gradient(#ffa143,#e87515)}.s-chart:nth-child(1){right:34%;height:23%}.s-chart:nth-child(2){right:19%;height:39%}.s-chart:nth-child(3){right:4%;height:58%}.scenery-storm span{position:absolute;right:0;left:0;height:2px;background:rgba(245,137,31,.22);transform:rotate(-19deg)}.scenery-storm span:nth-child(1){top:25%}.scenery-storm span:nth-child(2){top:45%;left:28%}.scenery-storm span:nth-child(3){top:68%;left:-24%}.scenery-idea .idea-bulb{position:absolute;top:22%;right:18%;display:grid;width:130px;height:130px;place-items:center;color:#ffb347;border:2px solid rgba(255,179,71,.45);border-radius:50%;font-size:60px;box-shadow:0 0 0 25px rgba(255,179,71,.06),0 0 45px rgba(255,179,71,.18)}.scenery-idea i{position:absolute;right:calc(18% + 61px);top:14%;width:3px;height:27px;background:#ffb347;transform-origin:bottom}.scenery-idea i:nth-of-type(1){transform:rotate(-45deg)}.scenery-idea i:nth-of-type(2){transform:rotate(0)}.scenery-idea i:nth-of-type(3){transform:rotate(45deg)}.scenery-map{right:0;left:auto;width:45%}.scenery-map svg{position:absolute;top:32%;right:6%;width:75%;overflow:visible}.scenery-map path{stroke:#ffa74c;stroke-width:3;stroke-dasharray:7 9}.map-dot{position:absolute;width:13px;height:13px;border:3px solid #ffe0b5;border-radius:50%;background:var(--primary);box-shadow:0 0 0 7px rgba(245,137,31,.16)}.d1{top:62%;right:72%}.d2{top:40%;right:39%}.d3{top:48%;right:11%}.scenery-star span{position:absolute;color:#ffb347;font-size:42px;text-shadow:0 0 25px rgba(255,179,71,.45)}.scenery-star span:nth-child(1){top:18%;right:24%}.scenery-star span:nth-child(2){top:39%;right:9%;font-size:25px}.scenery-star span:nth-child(3){bottom:23%;right:31%;font-size:22px}.scenery-star span:nth-child(4){top:68%;right:48%;font-size:17px}.scenery-heart span{position:absolute;top:27%;right:19%;display:grid;width:130px;height:130px;place-items:center;color:#fb9165;border-radius:50%;background:rgba(252,130,93,.14);font-size:64px;box-shadow:0 0 0 25px rgba(252,130,93,.05)}.scenery-heart i{position:absolute;top:46%;right:15%;width:110px;height:45px;border-top:2px solid rgba(255,175,139,.55);border-radius:50%;transform:rotate(-28deg)}.scenery-heart i:nth-of-type(2){top:58%;right:37%;transform:rotate(18deg)}.scenery-heart i:nth-of-type(3){top:35%;right:42%;transform:rotate(40deg)}.scenery-speed{right:4%;left:auto;width:42%}.scenery-speed span{position:absolute;right:0;height:3px;border-radius:3px;background:linear-gradient(90deg,transparent,#f9a24a)}.scenery-speed span:nth-child(1){top:32%;width:76%}.scenery-speed span:nth-child(2){top:43%;width:47%}.scenery-speed span:nth-child(3){top:55%;width:91%}.scenery-speed span:nth-child(4){top:66%;width:61%}.scenery-speed i{position:absolute;top:40%;right:5%;color:#ffbd62;font-size:110px}.scenery-horizon .horizon-sun{position:absolute;right:20%;bottom:20%;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,#ffe4a7,#f7a547 68%,transparent 70%);opacity:.85}.horizon-line{position:absolute;right:0;bottom:19%;left:0;height:1px;background:rgba(245,137,31,.28)}.paper-plane{position:absolute;right:13%;top:27%;color:#f5891f;font-size:44px;transform:rotate(-18deg)}
.journey-progress { position:absolute; z-index:50; bottom:clamp(18px,3.5vh,34px); left:50%; display:flex; flex-direction:row; align-items:center; gap:clamp(6px,1.2vw,12px); padding:0 12px; transform:translateX(-50%); }.progress-line{position:absolute;top:50%;right:0;left:0;height:2px;background:rgba(245,137,31,.22);transform:translateY(-50%)}.progress-line span{position:absolute;top:0;left:0;width:0;height:100%;background:linear-gradient(90deg,#ffb347,var(--primary));box-shadow:0 0 12px rgba(245,137,31,.45);transition:width .3s ease}.progress-stop{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;color:rgba(120,90,60,.55);font-size:9px;font-weight:700;transition:all .3s ease}.progress-stop i{display:block;width:16px;height:16px;border:3px solid #e8c4a0;border-radius:50%;background:#fff;transition:all .3s ease}.progress-stop b{font-weight:700;opacity:0;transform:translateY(4px);transition:all .3s ease}.progress-stop:hover b,.progress-stop.active b{opacity:1;transform:none}.progress-stop.active{color:var(--primary-dark)}.progress-stop.active i{border-color:#fff;background:var(--primary);box-shadow:0 0 0 4px rgba(245,137,31,.18),0 0 16px rgba(245,137,31,.35);animation:progressPulse 1.4s ease-in-out infinite}
@keyframes trackGlowPulse{0%,100%{opacity:.45;transform:translateY(-50%) scaleX(.95)}50%{opacity:.85;transform:translateY(-50%) scaleX(1.04)}}
@keyframes tiesSlide{from{background-position:0 0}to{background-position:-73px 0}}
@keyframes headlightPulse{0%,100%{box-shadow:0 0 13px 5px rgba(255,224,106,.85)}50%{box-shadow:0 0 22px 10px rgba(255,224,106,1),0 0 40px 14px rgba(255,186,97,.45)}}
@keyframes speedLine{0%{transform:translate(0,-50%) scaleX(.4);opacity:0}30%{opacity:1}100%{transform:translate(-120px,-50%) scaleX(1);opacity:0}}
@keyframes beamFlicker{0%,100%{opacity:.55}45%{opacity:.9}70%{opacity:.65}}
@keyframes wheelSpark{0%{opacity:0;transform:translate(0,0) scale(.5)}20%{opacity:1}100%{opacity:0;transform:translate(-28px,-14px) scale(0)}}
@keyframes ambientFloat{0%,100%{transform:translateY(0) scale(1);opacity:.35}50%{transform:translateY(-18px) scale(1.15);opacity:.85}}
@keyframes arrivalBurst{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(calc(-50% + var(--burst-x,40px)),calc(-50% + var(--burst-y,-30px))) scale(0)}}
@keyframes panelGlowIn{from{opacity:0}to{opacity:1}}
@keyframes stationPop{0%{transform:translateY(-50%) scale(.85)}60%{transform:translateY(-50%) scale(1.08)}100%{transform:translateY(-50%) scale(1)}}
@keyframes stationIconPulse{0%,100%{box-shadow:0 0 0 7px rgba(245,137,31,.16),0 0 25px rgba(245,137,31,.35)}50%{box-shadow:0 0 0 12px rgba(245,137,31,.12),0 0 35px rgba(245,137,31,.55)}}
@keyframes stationRingBurst{0%{opacity:.85;transform:translateY(-50%) scale(1)}100%{opacity:0;transform:translateY(-50%) scale(2.8)}}
@keyframes platformBlink{0%,100%{opacity:.35;box-shadow:0 0 6px rgba(255,186,97,.3)}50%{opacity:1;box-shadow:0 0 14px rgba(255,186,97,.85)}}
@keyframes progressPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
.scenery-star span{animation:starTwinkle 2.4s ease-in-out infinite}.scenery-star span:nth-child(2){animation-delay:.4s}.scenery-star span:nth-child(3){animation-delay:.8s}.scenery-star span:nth-child(4){animation-delay:1.2s}
.scenery-rise .s-chart{animation:chartGrow 2.8s ease-in-out infinite alternate}.scenery-rise .s-chart:nth-child(2){animation-delay:.3s}.scenery-rise .s-chart:nth-child(3){animation-delay:.6s}
.scenery-heart span{animation:heartBeat 2s ease-in-out infinite}.scenery-idea .idea-bulb{animation:bulbGlow 2.5s ease-in-out infinite}
.scenery-speed span{animation:speedStreak 1.2s ease-in-out infinite}.scenery-speed span:nth-child(2){animation-delay:.15s}.scenery-speed span:nth-child(3){animation-delay:.3s}.scenery-speed span:nth-child(4){animation-delay:.45s}
.scenery-horizon .horizon-sun{animation:sunPulse 3s ease-in-out infinite}.paper-plane{animation:planeFly 4s ease-in-out infinite}
.map-dot{animation:dotPulse 2.2s ease-in-out infinite}.map-dot.d2{animation-delay:.35s}.map-dot.d3{animation-delay:.7s}
.year-panel.is-active .milestone-icon{animation:milestonePop .6s cubic-bezier(.22,1.3,.36,1)}
@keyframes dotPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 7px rgba(245,137,31,.16)}50%{transform:scale(1.15);box-shadow:0 0 0 12px rgba(245,137,31,.28)}}
@keyframes milestonePop{0%{transform:scale(.7) rotate(-8deg)}100%{transform:scale(1) rotate(0)}}
@keyframes starTwinkle{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}
@keyframes chartGrow{from{transform:scaleY(.85)}to{transform:scaleY(1.08)}}
@keyframes heartBeat{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes bulbGlow{0%,100%{box-shadow:0 0 0 25px rgba(255,179,71,.06),0 0 45px rgba(255,179,71,.18)}50%{box-shadow:0 0 0 35px rgba(255,179,71,.1),0 0 65px rgba(255,179,71,.35)}}
@keyframes speedStreak{0%{transform:translateX(20px);opacity:0}50%{opacity:1}100%{transform:translateX(-40px);opacity:0}}
@keyframes sunPulse{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.06);opacity:1}}
@keyframes planeFly{0%,100%{transform:rotate(-18deg) translate(0,0)}50%{transform:rotate(-12deg) translate(18px,-12px)}}
.train-smoke b:nth-child(4){right:52px;bottom:24px;width:20px;height:20px;opacity:.35;animation:smokeDrift 2.2s ease-out infinite}.train-smoke b:nth-child(5){right:68px;bottom:38px;width:14px;height:14px;opacity:.25;animation:smokeDrift 2.8s ease-out infinite .4s}
@keyframes smokeDrift{0%{transform:translate(0,0) scale(.6);opacity:.6}100%{transform:translate(-35px,-45px) scale(1.4);opacity:0}}
.stats-section { background:var(--cream); }.stats-section h2 { margin:17px 0 0; }.stats-intro { color:var(--muted); font-size:14px; line-height:1.8; }.stat-card { min-height:183px; padding:25px; border:1px solid #fff; border-radius:20px; background:#fff; box-shadow:0 12px 30px rgba(110,74,41,.06); transition:transform .25s ease,box-shadow .25s ease; }.stat-card:hover{transform:translateY(-5px);box-shadow:0 18px 35px rgba(110,74,41,.11)}.stat-card>i{display:grid;width:39px;height:39px;place-items:center;margin-bottom:20px;color:var(--primary);border-radius:12px;background:#fff0df;font-size:18px}.stat-card strong{display:block;margin-bottom:4px;font-size:18px;letter-spacing:-.04em}.stat-card strong em{color:var(--primary-dark);font-size:32px;font-style:normal}.stat-card span{color:var(--muted);font-size:11px;font-weight:600}
.final-cta { position:relative; padding:124px 0; overflow:hidden; color:#fff; background:linear-gradient(120deg,#db6304,#f38a22 55%,#ffa547); }.final-cta:before,.final-cta:after{position:absolute;border:1px solid rgba(255,255,255,.22);border-radius:50%;content:""}.final-cta:before{top:-280px;left:-190px;width:570px;height:570px}.final-cta:after{right:-160px;bottom:-330px;width:650px;height:650px}.cta-glow{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 32%,rgba(255,255,255,.24),transparent 40%)}.eyebrow-light{color:#fff4e5;background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.32)}.final-cta h2{margin:19px auto 18px;font-size:clamp(2.45rem,5vw,4.2rem)}.final-cta p{max-width:600px;margin:0 auto 30px;color:#fff8f0;line-height:1.8;font-size:15px}.final-cta .btn-light{color:var(--primary-dark);background:#fff;box-shadow:0 13px 25px rgba(146,58,0,.18)}
.site-footer { padding:74px 0 21px; color:#b3becc; background:#131f31; }.footer-brand { margin-bottom:17px; color:#fff; }.site-footer p { max-width:315px; font-size:12px; line-height:1.8; }.social-links{display:flex;gap:8px;margin-top:22px}.social-links a{display:grid;width:33px;height:33px;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:50%;font-size:13px;transition:all .2s}.social-links a:hover{color:#fff;border-color:var(--primary);background:var(--primary)}.site-footer h3{margin-bottom:16px;color:#fff;font-size:13px;font-weight:700;letter-spacing:0}.site-footer ul{margin:0;padding:0;list-style:none}.site-footer li{margin-bottom:11px;font-size:12px}.site-footer li a:hover{color:#ffae56}.footer-text{margin-bottom:10px}.footer-email{color:#ffb25b;font-size:12px;font-weight:700}.footer-email i{margin-left:4px}.footer-bottom{display:flex;justify-content:space-between;padding-top:21px;border-top:1px solid rgba(255,255,255,.1);font-size:10px}.footer-bottom a:hover{color:#ffb25b}
@media (max-width: 991.98px) { .site-header{top:7px}.site-header .navbar{border-radius:14px}.navbar-collapse{padding:12px 0 5px}.navbar-nav{align-items:flex-start!important}.hero-copy h1{font-size:clamp(2.5rem,8vw,4.3rem)}.hero-visual{max-width:580px}.journey-progress{bottom:16px;gap:5px}.station-right{right:4%}.station-left{left:4%}.year-content{max-width:450px}.panel-left .year-content{margin-left:5vw}.panel-right .year-content{margin-right:5vw;margin-left:auto}.scenery-start .s-start-flag{right:8%}.section-space{padding:85px 0}.stats-section h2{font-size:clamp(2rem,5vw,3rem)} }
@media (max-width: 767.98px) { .site-header .navbar{margin-inline:10px;padding-inline:14px!important}.navbar-brand{font-size:13px}.brand-mark{width:29px;height:29px}.hero-section{min-height:850px}.hero-section .row{min-height:auto;padding-top:130px!important;padding-bottom:110px!important}.hero-copy{text-align:center}.hero-copy h1{margin-right:auto;margin-left:auto;font-size:2.45rem}.hero-description{margin-right:auto;margin-left:auto;font-size:14px}.hero-copy .d-flex{justify-content:center}.hero-note{justify-content:center;margin-top:26px;font-size:10px}.hero-visual{width:100%;height:360px;border-radius:42% 42% 20px 20px}.hero-train{right:calc(50% - 187px);bottom:77px;transform:scale(.72);transform-origin:center bottom}.sun{top:40px;right:62px;width:53px;height:53px}.mountains{bottom:84px;transform:scale(.8);transform-origin:bottom}.hero-city{bottom:80px;transform:scale(.8);transform-origin:bottom}.hero-track{bottom:48px}.scroll-cue{bottom:18px}.journey-intro{padding:74px 0}.journey-intro h2{font-size:2rem}.track-scene{bottom:22%}.train-wrapper{bottom:22%}.journey-train{left:4vw;transform:scale(.62);transform-origin:left bottom}.track-moving{height:56px}.rail-upper{top:15px}.rail-lower{bottom:15px}.rail-ties{top:10px;bottom:10px}.year-panel .container{padding-top:12vh;padding-bottom:28vh}.panel-left .year-content,.panel-right .year-content{max-width:100%;margin:0}.year-content{padding:24px;border-radius:20px}.year-number{font-size:3.55rem}.year-content h3{font-size:2rem}.year-content p{font-size:13px}.station{top:auto;bottom:16%;transform:none}.station-right{right:7%}.station-left{left:7%;flex-direction:row}.station span{display:none}.station i{width:34px;height:34px}.panel-scenery{opacity:.45}.scenery-start .s-start-flag{top:10%;right:16%;transform:scale(.65)}.scenery-rise{right:4%;width:55%;opacity:.4}.scenery-idea .idea-bulb,.scenery-heart span{right:10%;transform:scale(.7)}.scenery-map{width:73%;opacity:.45}.scenery-speed{width:58%}.scenery-horizon .horizon-sun{right:5%;transform:scale(.7);transform-origin:bottom right}.journey-progress{display:none!important}.stats-section{padding:78px 0}.stats-section h2{font-size:2rem}.stat-card{min-height:148px;padding:17px}.stat-card>i{margin-bottom:13px}.stat-card strong em{font-size:25px}.stat-card strong{font-size:15px}.final-cta{padding:90px 0}.final-cta h2{font-size:2.5rem}.final-cta p{font-size:13px}.site-footer{padding-top:56px}.footer-bottom{gap:12px;font-size:9px}.footer-bottom span{max-width:190px} }
@media (prefers-reduced-motion: reduce) { *,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important} }
