:root{--bordeaux:#310a12;--deep:#19070b;--brass:#c39a53;--brass-light:#f0d293;--night:#071521;--linen:#f0e4ca;--ink:#291d18;--blue:#17344b;--progress:0;--lamp:1;--scroll-v:0;--dawn:0}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:var(--brass) var(--deep)}body{margin:0;background:var(--night);color:var(--linen);font-family:'Manrope',sans-serif;overflow-x:hidden}.skip-link{position:fixed;top:8px;left:50%;z-index:1000;transform:translate(-50%,-150%);padding:12px 18px;background:var(--linen);color:var(--deep)}.skip-link:focus{transform:translate(-50%,0)}a{color:inherit}.world{position:fixed;inset:0;z-index:-3;overflow:hidden;background:#06111b;transition:filter .8s}.sky{position:absolute;inset:0;background:radial-gradient(circle at 78% 18%,rgba(183,207,226,.16),transparent 12%),linear-gradient(to bottom,#081928 0%,#10283a 47%,#071117 73%);transition:background 1.2s}.sky:after{content:"";position:absolute;inset:0;background-image:radial-gradient(#d6e3df 0.7px,transparent .9px),radial-gradient(#d6e3df .5px,transparent .7px);background-size:91px 83px,137px 121px;background-position:22px 13px,70px 57px;opacity:.45;transform:translateX(calc(var(--progress)*-70px))}.moon{position:absolute;top:13%;right:15%;width:88px;aspect-ratio:1;border-radius:50%;background:#e7e0c8;box-shadow:0 0 70px #d9e3e177,0 0 180px #b9d2e233;transform:translateX(calc(var(--progress)*-24vw));opacity:calc(1 - var(--dawn)*.7)}.moon:after{content:"";position:absolute;width:13px;height:13px;border-radius:50%;background:#c7c6ba;left:21px;top:24px;opacity:.38}.moon span{position:absolute;left:42%;top:100%;width:24%;height:56vh;background:linear-gradient(#dce0d1aa,transparent);filter:blur(8px);clip-path:polygon(35% 0,65% 0,100% 100%,0 100%)}.landscape{position:absolute;left:0;width:200%;will-change:transform}.landscape-far{height:52%;bottom:14%;transform:translateX(calc(var(--progress)*-31%));filter:drop-shadow(0 -15px 30px #0c2534)}.landscape-near{height:41%;bottom:5%;transform:translateX(calc(var(--progress)*-45%));filter:blur(.2px)}.signals{fill:#111c20}.signal-glow{fill:#e97946;filter:drop-shadow(0 0 8px #ff6a33) drop-shadow(0 0 18px #ff6a33)}.trackside{position:absolute;left:0;right:-30%;bottom:3%;height:20%}.trackside span{position:absolute;left:var(--x);bottom:0;width:5px;height:100%;background:#0a0e10;transform:skewX(-5deg)}.trackside span:before{content:"";position:absolute;top:14%;left:-24px;width:52px;height:5px;background:#0a0e10}.lake{position:absolute;inset:58% 0 0;background:linear-gradient(#102c3c,#07141c);opacity:0;transition:opacity 1.3s}.lake i{position:absolute;left:5%;right:10%;top:calc(5% + var(--i)*12%);height:1px;background:linear-gradient(90deg,transparent,#8ca9b3aa,transparent);transform:translateX(calc(var(--progress)*var(--i)*-20px))}.lake i:nth-child(1){--i:1}.lake i:nth-child(2){--i:2}.lake i:nth-child(3){--i:3}.lake i:nth-child(4){--i:4}.lake i:nth-child(5){--i:5}.platform{position:absolute;left:120%;bottom:3%;width:130%;height:42%;background:linear-gradient(transparent 0 26%,#775f3f 27% 29%,#191612 30%);transform:translateX(calc(var(--progress)*-200%));color:#d3bd8b;padding:6% 10%;font-size:13px;letter-spacing:.2em}.platform span{background:#17222a;padding:7px 16px;border:1px solid #a78951}.platform b{display:inline-block;width:8px;height:140px;margin:0 11%;background:#171614}.glass-reflection{position:absolute;inset:0;opacity:0;transition:opacity .5s;background:linear-gradient(110deg,transparent 10%,#80544310 40%,transparent 50%)}.ref-lamp{position:absolute;right:19%;top:19%;width:72px;height:45px;border-radius:50%;background:#dfae58;filter:blur(2px);box-shadow:0 0 80px #e4b358}.ref-berth{position:absolute;left:12%;bottom:16%;width:38%;height:19%;border:12px solid #5a3027;background:#4d2023;opacity:.5}.ref-reader{position:absolute;left:54%;top:38%;font-family:'Abril Fatface';font-size:4vw;color:#e3cfa5;opacity:.35;text-align:center}.ref-reader small{font:10px 'Manrope';letter-spacing:.2em}.grain{position:absolute;inset:-40%;opacity:.12;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");animation:grain .18s steps(2) infinite}.window-frame{position:fixed;inset:0;z-index:20;pointer-events:none}.frame-top,.frame-bottom,.frame-left,.frame-right{position:absolute;background:linear-gradient(90deg,#20070c,#50101b 45%,#1e060a);box-shadow:inset 0 0 0 1px #743226,0 0 18px #000}.frame-top{left:0;right:0;top:0;height:26px;border-bottom:3px solid var(--brass)}.frame-top span{position:absolute;right:13%;top:6px;font-size:8px;letter-spacing:.25em;color:#dbbb7d}.frame-bottom{left:0;right:0;bottom:0;height:22px;border-top:3px solid var(--brass)}.frame-left,.frame-right{top:0;bottom:0;width:22px}.frame-left{left:0;border-right:3px solid var(--brass)}.frame-right{right:0;border-left:3px solid var(--brass)}.journey-progress{display:block;height:3px;width:calc(var(--progress)*100%);background:#f5d993;box-shadow:0 0 9px #ffdc83}.window-latch{position:absolute;right:11px;top:47%;width:25px;height:90px;border-radius:4px;background:linear-gradient(90deg,#76501f,#e0bd6a,#6b451a);box-shadow:0 3px 12px #000}.train-header{position:fixed;left:34px;right:34px;top:38px;z-index:30;height:60px;display:flex;align-items:center;gap:18px;background:linear-gradient(90deg,#2c080feb,#490d19e6);border:1px solid #b78847;box-shadow:0 12px 35px #02000099;backdrop-filter:blur(8px)}.monogram{width:58px;height:58px;display:grid;place-items:center;text-decoration:none;font:35px 'Abril Fatface';color:var(--brass-light);border-right:1px solid #a7773b}.route-name{font-size:10px;letter-spacing:.21em;text-transform:uppercase;margin:0 auto 0 0}.route-name span{font-family:'Abril Fatface';font-size:15px;text-transform:none;letter-spacing:.04em;color:var(--brass-light);margin-right:12px}.lamp-switch,.menu-toggle{min-height:44px;border:0;color:var(--linen);font:600 9px 'Manrope';text-transform:uppercase;letter-spacing:.14em;background:transparent;cursor:pointer}.lamp-switch{padding:0 18px;border-left:1px solid #956436}.lamp-switch span{display:inline-block;width:8px;height:8px;border-radius:50%;background:#f2c566;box-shadow:0 0 13px #ffca5d;margin-right:8px}.lamp-switch[aria-pressed="false"] span{background:#745f43;box-shadow:none}.menu-toggle{display:none}.timetable{position:fixed;left:34px;top:112px;bottom:38px;width:146px;z-index:18;display:flex;flex-direction:column;padding:20px 14px;background:#25080cc7;border:1px solid #765024;backdrop-filter:blur(5px)}.timetable-label{margin:0 0 auto;font:12px 'Abril Fatface';color:#ddbe80}.timetable a{position:relative;display:block;padding:13px 3px 13px 23px;text-decoration:none;border-bottom:1px solid #72512d66;min-height:55px}.timetable time{display:block;font-size:9px;letter-spacing:.15em;color:#d0a85f}.timetable a span{font-size:9px;letter-spacing:.05em}.timetable a i{position:absolute;left:2px;top:19px;width:7px;height:7px;border:1px solid var(--brass);border-radius:50%}.timetable a i:after{content:"";position:absolute;left:2px;top:9px;width:1px;height:43px;background:#74542d}.timetable a:last-child i:after{display:none}.timetable a.active i{background:#edc36f;box-shadow:0 0 12px #ffc85e}.timetable a:hover span{color:#f6d38b}.timetable a:focus-visible,.monogram:focus-visible,.lamp-switch:focus-visible,.menu-toggle:focus-visible,.return-ticket:focus-visible,.knock-button:focus-visible,.hotspot:focus-visible{outline:2px solid #fff;outline-offset:3px}main{position:relative;z-index:2}.hero,.story-section,.tunnel-section,.arrival{min-height:100vh;padding:150px max(7vw,100px) 100px max(20vw,230px);position:relative;display:flex;align-items:center}.hero{min-height:120vh;align-items:flex-start;padding-top:25vh}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#050b12aa 0 30%,transparent 75%),linear-gradient(0deg,#061018aa,transparent 50%);z-index:-1}.hero-ticket{position:relative;width:min(780px,72vw);padding:44px 60px 36px;background:linear-gradient(105deg,#310812f5,#510f1ced);border:1px solid #d1a95f;box-shadow:0 30px 80px #0009,0 0 0 9px #23080ccc,0 0 0 10px #89632d;clip-path:polygon(0 0,100% 0,100% 88%,96% 88%,96% 100%,90% 88%,0 88%)}.eyebrow,.chapter{text-transform:uppercase;letter-spacing:.22em;font-size:10px;font-weight:700;color:#d4af67}.hero h1{font:clamp(76px,12vw,180px)/.76 'Abril Fatface';letter-spacing:-.04em;margin:30px 0 20px;color:var(--linen);text-shadow:7px 7px 0 #170507}.hero h1 span{color:var(--brass-light)}.hero-route{font:28px 'Abril Fatface';letter-spacing:.03em;display:flex;align-items:center;gap:18px;margin:0}.hero-route i{height:1px;background:var(--brass);width:100px}.ticket-meta{margin-top:27px;padding-top:16px;border-top:1px dashed #c99b56;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.2em}.departure-board{position:absolute;right:8vw;top:64vh;background:#101515ed;border:5px solid #14110c;outline:1px solid #ae8b4d;padding:20px 25px;width:260px;box-shadow:15px 18px 40px #000}.departure-board span{font:43px 'Abril Fatface';color:#eadbbd}.departure-board p{font-size:11px;line-height:1.6}.departure-board b{font-size:8px;letter-spacing:.18em;color:#e59c59;text-transform:uppercase}.scroll-cue{position:absolute;left:max(21vw,240px);bottom:9vh;font-size:10px;line-height:1.7;letter-spacing:.15em;text-transform:uppercase;padding-left:40px}.scroll-cue:before{content:"";position:absolute;left:0;top:6px;width:25px;height:1px;background:var(--brass)}.story-section{gap:5vw;min-height:120vh}.linen-card{width:min(650px,60vw);padding:clamp(34px,5vw,70px);color:var(--ink);background:linear-gradient(120deg,#f3e8d0,#dfcfaf);box-shadow:20px 25px 70px #0009;transform:rotate(-1deg);border-left:8px solid #b78b47}.linen-card h2,.lake-caption h2{font:clamp(39px,5.5vw,78px)/.98 'Abril Fatface';margin:18px 0 28px;letter-spacing:-.02em}.linen-card p{font-size:clamp(14px,1.3vw,17px);line-height:1.85}.linen-card .chapter{color:#7b431f}.conductor-note{margin-top:35px;padding:18px 0 0;border-top:1px solid #947c59;display:flex;flex-direction:column;gap:5px}.conductor-note span{font:22px 'Abril Fatface'}.conductor-note b{font-size:9px;letter-spacing:.12em}.small-note{align-self:flex-end;margin-bottom:13vh;width:240px;padding:24px;background:#2f0911ed;border:1px solid #b48a4e;box-shadow:12px 15px 30px #0008}.small-note span{font-size:8px;text-transform:uppercase;letter-spacing:.2em;color:#cba55d}.small-note strong{font:27px 'Abril Fatface';display:block;margin:10px 0}.small-note p{font-size:10px;line-height:1.5}.stamp{position:relative;z-index:4;margin:0 10vw 0 auto;width:185px;height:185px;border:4px double #be8356;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#d59a67;transform:rotate(10deg);text-align:center;mix-blend-mode:screen;box-shadow:inset 0 0 0 5px transparent,inset 0 0 0 7px #b57d53}.stamp span{font:18px 'Abril Fatface';border-bottom:2px solid;padding-bottom:4px}.stamp b,.stamp i{font-size:8px;letter-spacing:.14em;margin-top:7px}.stamp i{font-style:normal}.compartment{align-items:center}.anatomy{width:min(500px,42vw);height:600px;padding:35px;background:#340b13de;border:2px solid #b78848;box-shadow:20px 30px 60px #000}.berth-diagram{position:relative;width:100%;height:100%;border:9px solid #6d361f;background:linear-gradient(110deg,#42111a,#23080d);overflow:visible}.upper-berth{position:absolute;left:8%;right:9%;top:12%;height:26%;background:#8d1d29;border:6px solid #d2ad68;box-shadow:0 18px 26px #0008}.upper-berth span{position:absolute;right:12px;top:9px;border-radius:50%;border:1px solid var(--brass);padding:5px;font:10px 'Manrope'}.blanket{position:absolute;left:20%;right:5%;bottom:7%;height:38%;background:repeating-linear-gradient(90deg,#6d1722 0 32px,#d0a056 32px 36px,#26383b 36px 65px,#c6ad75 65px 70px),repeating-linear-gradient(0deg,transparent 0 26px,#d4b365 26px 30px);background-blend-mode:multiply;transform:perspective(300px) rotateX(6deg);box-shadow:0 -10px 25px #0007}.blanket i{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 29px,#e0bd6b99 30px 33px)}.pillow{position:absolute;bottom:34%;left:24%;width:42%;height:18%;background:#eee1c5;border-radius:50%;transform:rotate(-4deg);box-shadow:0 5px 12px #0005}.brass-ladder{position:absolute;left:4%;top:17%;bottom:5%;width:35px;border-left:6px solid #d2a855;border-right:6px solid #8b622c;z-index:2}.brass-ladder i{display:block;height:5px;background:linear-gradient(90deg,#7c5524,#e7c879,#77501e);margin-top:61px}.hotspot{position:absolute;border:0;background:transparent;color:var(--linen);cursor:pointer;z-index:4}.hotspot b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#d3a553;color:#301019;font-size:10px;box-shadow:0 0 0 4px #d3a55344}.hotspot span{position:absolute;width:170px;background:#eadfc6;color:#29170f;padding:10px;text-align:left;opacity:0;transform:translateY(5px);pointer-events:none;transition:.25s;font:14px 'Abril Fatface';box-shadow:0 8px 20px #0009}.hotspot small{font:8px/1.4 'Manrope';letter-spacing:.06em;text-transform:uppercase}.hotspot:hover span,.hotspot:focus span,.hotspot.active span{opacity:1;transform:none}.h1{left:-21px;top:49%}.h1 span{left:40px;top:-4px}.h2{right:16%;bottom:18%}.h2 span{right:40px;bottom:-4px}.h3{right:10%;top:17%}.h3 span{right:40px;top:-4px}.knock-button{display:flex;align-items:center;gap:15px;width:100%;margin-top:25px;padding:17px 0;border:0;border-top:1px solid #907653;background:transparent;color:var(--ink);cursor:pointer;text-align:left}.knock-button b{font:14px 'Abril Fatface'}.knock-button small{margin-left:auto;font-size:7px;text-transform:uppercase;letter-spacing:.1em}.knock-dots{display:flex;gap:4px}.knock-dots i{width:8px;height:8px;background:#681722;border-radius:50%}.knock-button.knocking i{animation:knock .8s ease}.knock-button.knocking i:nth-child(2){animation-delay:.16s}.knock-button.knocking i:nth-child(3){animation-delay:.32s}.tunnel-section{min-height:120vh;justify-content:center;text-align:center}.tunnel-message p{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:#d3aa62}.tunnel-message h2{font:clamp(50px,7vw,105px)/1.02 'Abril Fatface';margin:30px 0;color:#e7d9bb;text-shadow:0 0 50px #d89e5c44}.tunnel-message span{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:#c4b79c}.stamp-italy{margin-left:15vw;margin-right:auto;transform:rotate(-11deg);border-color:#a76d5f;color:#c98c78}.dining{align-items:center}.menu-card{width:min(650px,56vw);background:#e8dcc1;color:#2b1912;padding:9px;box-shadow:22px 30px 70px #000b;transform:rotate(.7deg)}.menu-card>header,.menu-card>footer,.menu-card>div{border-left:1px solid #9c7744;border-right:1px solid #9c7744;padding-left:35px;padding-right:35px}.menu-card>header{border-top:1px solid #9c7744;text-align:center;padding-top:35px;padding-bottom:28px}.menu-card header p{font-size:8px;letter-spacing:.27em;text-transform:uppercase}.menu-card h2{font:55px 'Abril Fatface';margin:5px}.menu-card header span{font-size:8px;text-transform:uppercase;letter-spacing:.15em}.menu-line{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:10px;padding-top:15px}.menu-line span{font:20px 'Abril Fatface'}.menu-line i{border-bottom:1px dotted #8d7657;height:15px}.menu-line b{font-size:11px}.menu-line small{grid-column:1/-1;font-size:8px;letter-spacing:.1em;color:#66503e}.menu-card>footer{border-bottom:1px solid #9c7744;padding-top:30px;padding-bottom:30px;margin-bottom:0;display:flex;justify-content:space-between;font-size:8px;text-transform:uppercase;letter-spacing:.1em}.dining-note{width:300px;padding:35px;background:#2d0810e8;border:1px solid #ae8448}.dining-note blockquote{font:27px/1.35 'Abril Fatface';margin:28px 0}.dining-note cite{font-size:9px;color:#cca765}.lake-section{min-height:140vh;justify-content:space-between}.lake-caption{width:min(600px,50vw);padding:50px;color:#eee3c9;background:#0b1b26d6;border:1px solid #8b806b;backdrop-filter:blur(5px)}.lake-caption p:not(.chapter){font-size:15px;line-height:1.8;max-width:48ch}.night-log{align-self:flex-end;width:330px;background:#e7dbc0;color:#291c17;padding:30px 34px;box-shadow:15px 20px 40px #0008}.night-log>span{font:18px 'Abril Fatface'}.night-log dl{margin:22px 0 0}.night-log dl div{display:grid;grid-template-columns:65px 1fr;padding:10px 0;border-top:1px solid #a18a67}.night-log dt{font-size:9px;font-weight:800}.night-log dd{margin:0;font-size:10px}.arrival{min-height:150vh;justify-content:center;text-align:center;padding-bottom:30vh}.arrival:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#e2a96e33,transparent 60%);z-index:-1}.arrival-inner{max-width:850px}.arrival h2{font:clamp(76px,11vw,160px)/.82 'Abril Fatface';margin:30px 0;color:#f1ddbd;text-shadow:0 8px 50px #260d0d}.arrival-inner>p:not(.chapter):not(.final-note){max-width:620px;margin:40px auto;font-size:16px;line-height:1.9}.arrival-time{display:flex;justify-content:center;align-items:center;gap:20px;margin:80px 0 25px}.arrival-time span{font:clamp(76px,12vw,160px)/1 'Abril Fatface';color:#2e0b12;background:#e8d5ae;padding:10px 25px;box-shadow:inset 0 0 0 2px #a37d3c,12px 16px 0 #2d0910}.arrival-time i{font:70px 'Abril Fatface';color:#e6c989}.final-note{font:15px 'Abril Fatface';letter-spacing:.03em;line-height:1.6}.return-ticket{display:inline-flex;gap:40px;align-items:center;margin-top:40px;padding:15px 20px;border:1px solid var(--brass);text-decoration:none;font-size:10px;letter-spacing:.14em;text-transform:uppercase}.return-ticket:hover{background:var(--brass);color:#260a10}.site-footer{position:relative;z-index:25;min-height:150px;background:#21070c;border-top:1px solid #a4783f;padding:55px max(5vw,45px);display:flex;align-items:center;gap:30px;font-size:9px;letter-spacing:.1em;text-transform:uppercase}.site-footer span{margin-right:auto;color:#b99861}.site-footer a{text-decoration:none;border-bottom:1px solid #806033;padding-bottom:5px}.site-footer a:hover{color:#f1cf89}.reveal{opacity:0;transform:translateY(35px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.8,.2,1)}.reveal.visible{opacity:1;transform:translateY(0)}body.lamp-off .world{filter:brightness(.63)}body.lamp-off .linen-card,body.lamp-off .menu-card,body.lamp-off .night-log{filter:brightness(.83)}body.scene-tunnel .sky,body.scene-tunnel .landscape,body.scene-tunnel .trackside,body.scene-tunnel .moon{opacity:0}body.scene-tunnel .world{background:#030303}body.scene-tunnel .glass-reflection{opacity:.82}body.scene-lake .lake{opacity:1}body.scene-lake .landscape-near{opacity:.45}body.scene-platform .platform{opacity:1}body.scene-dawn .sky{background:linear-gradient(#6e8290,#c48b6e 50%,#e1b178 75%,#9ab1b3);}.sky,.landscape,.trackside,.moon{transition:opacity .6s,background 1.2s}.departure-board.reveal{transition-delay:.35s}.scroll-cue.reveal{transition-delay:.6s}@keyframes grain{0%{transform:translate(0)}25%{transform:translate(2%,-1%)}50%{transform:translate(-1%,2%)}75%{transform:translate(1%,1%)}}@keyframes knock{0%,100%{transform:scale(1);box-shadow:none}35%{transform:scale(1.8);box-shadow:0 0 18px #681722}}
@media(max-width:900px){.train-header{left:25px;right:25px}.route-name span{display:block}.timetable{left:25px;width:125px}.hero,.story-section,.tunnel-section,.arrival{padding-left:185px;padding-right:55px}.hero-ticket{width:100%;padding:38px}.departure-board{right:5vw}.story-section{flex-direction:column;justify-content:center;gap:40px}.linen-card,.menu-card,.lake-caption{width:100%;max-width:600px}.small-note,.dining-note,.night-log{align-self:flex-end}.anatomy{width:100%;max-width:500px}.lake-section{justify-content:center}.site-footer{flex-wrap:wrap}.site-footer span{width:100%}}
@media(max-width:600px){.frame-left,.frame-right{width:10px}.frame-top{height:18px}.frame-bottom{height:14px}.frame-left{border-right-width:2px}.frame-right{border-left-width:2px}.frame-top span{display:none}.window-latch{right:3px;width:15px;height:62px}.train-header{left:13px;right:13px;top:26px;height:52px;gap:8px}.monogram{width:52px;height:50px}.route-name{font-size:7px;line-height:1.5;letter-spacing:.12em}.route-name span{font-size:13px;margin:0}.lamp-switch{font-size:0;width:45px;padding:0;border:0}.lamp-switch span{width:10px;height:10px;margin:0}.menu-toggle{display:block;padding:0 10px;font-size:8px}.timetable{left:13px;right:13px;top:83px;bottom:auto;width:auto;max-height:0;overflow:hidden;padding:0 14px;opacity:0;transition:.3s;display:grid;grid-template-columns:1fr 1fr}.timetable.open{max-height:390px;padding:15px 14px;opacity:1}.timetable-label{grid-column:1/-1;margin-bottom:8px}.timetable a{min-height:51px;padding:10px 2px 9px 19px}.timetable a i{top:16px}.timetable a i:after{display:none}.hero,.story-section,.tunnel-section,.arrival{padding-left:30px;padding-right:30px}.hero{padding-top:22vh;min-height:115vh}.hero-ticket{padding:28px 25px 32px;clip-path:none}.hero h1{font-size:72px;margin-top:23px}.hero-route{font-size:21px}.hero-route i{width:50px}.ticket-meta{gap:8px;font-size:7px}.departure-board{top:auto;bottom:17vh;right:25px;width:220px;padding:13px 18px}.departure-board span{font-size:31px}.scroll-cue{left:35px;bottom:7vh}.story-section{min-height:130vh;padding-top:130px;padding-bottom:100px}.linen-card{padding:32px 27px;border-left-width:5px}.linen-card h2,.lake-caption h2{font-size:41px}.small-note{width:210px;margin-bottom:0}.stamp{width:145px;height:145px;margin-right:9vw}.stamp span{font-size:14px}.anatomy{height:440px;padding:18px}.hotspot span{width:145px}.h2 span,.h3 span{right:0;left:auto;bottom:38px;top:auto}.knock-button{align-items:flex-start}.knock-button small{display:none}.tunnel-section{min-height:115vh}.tunnel-message h2{font-size:47px}.menu-card{padding:6px}.menu-card>header,.menu-card>footer,.menu-card>div{padding-left:20px;padding-right:20px}.menu-card h2{font-size:42px}.menu-line span{font-size:17px}.menu-card>footer{gap:10px}.dining-note{width:87%}.lake-section{min-height:145vh}.lake-caption{padding:30px 27px}.night-log{width:91%;padding:25px}.arrival{min-height:140vh;padding-bottom:20vh}.arrival h2{font-size:68px}.arrival-time{gap:9px;margin-top:55px}.arrival-time span{font-size:65px;padding:9px 15px;box-shadow:8px 10px 0 #2d0910}.arrival-time i{font-size:44px}.site-footer{padding:45px 30px;gap:20px;flex-direction:column;align-items:flex-start}.site-footer span{margin:0}.ref-reader{font-size:9vw}.moon{right:7%;width:62px}.landscape{width:300%}.landscape-far{transform:translateX(calc(var(--progress)*-52%))}.landscape-near{transform:translateX(calc(var(--progress)*-62%))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.grain{animation:none}.reveal{opacity:1;transform:none;transition:none}.landscape-far{transform:translateX(-18%)}.landscape-near{transform:translateX(-25%)}.sky:after{transform:none}.knock-button.knocking i{animation:none}*{transition-duration:.01ms!important}}

/* Pass 1 visual refinements */
.moon span{left:19%;width:62%;background:repeating-linear-gradient(180deg,#dce0d199 0 2px,transparent 3px 13px);filter:blur(4px);clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);opacity:0;transition:opacity 1s}
.trackside span{animation:tracksideRush 12s linear infinite}.trackside span:nth-child(1){animation-delay:-2s}.trackside span:nth-child(2){animation-delay:-4s}.trackside span:nth-child(3){animation-delay:-6s}.trackside span:nth-child(4){animation-delay:-8s}.trackside span:nth-child(5){animation-delay:-10s}.trackside span:nth-child(6){animation-delay:-12s}
.timetable{bottom:auto;background:#25080cdb;transition:opacity .5s,transform .7s cubic-bezier(.2,.8,.2,1)}
.timetable-label{margin-bottom:16px}
.hero-ticket{clip-path:none}
.hero-ticket:after{content:"";position:absolute;right:0;bottom:-42px;border-style:solid;border-width:42px 0 0 42px;border-color:transparent transparent transparent #4f0f1c;filter:drop-shadow(0 8px 6px #0005)}
body.scene-lake .moon span{opacity:.9}
body.scene-dawn .sky{background:linear-gradient(#8295a0,#d39d83 46%,#efc78d 69%,#98b4b8)}
body.scene-dawn .lake{opacity:.82;background:linear-gradient(#b5c0b9,#6f969c 34%,#294f5c)}
body.scene-dawn .landscape-far{opacity:.08}
body.scene-dawn .landscape-near{opacity:.18;transform:translateX(calc(var(--progress)*-45%)) scaleY(.3);transform-origin:bottom}
body.scene-dawn .trackside{opacity:.12}
body.scene-dawn .timetable{opacity:0;transform:translateX(-130%);pointer-events:none}
body.scene-dawn .arrival{color:#321019}body.scene-dawn .arrival h2{color:#3a0a13;text-shadow:0 4px 35px #f1cf9f99}body.scene-dawn .chapter{color:#4f1a1e}body.scene-dawn .return-ticket{border-color:#4b1820;color:#351018;background:#eed9b144}
@keyframes tracksideRush{from{translate:105vw 0}to{translate:-105vw 0}}
@media(max-width:600px){.hero{min-height:105vh}.story-section{min-height:108vh;padding-top:110px;padding-bottom:80px}.tunnel-section{min-height:100vh}.lake-section{min-height:118vh}.arrival{min-height:125vh;padding-bottom:15vh}.site-footer{gap:8px}.site-footer span{margin-bottom:8px}.site-footer a{min-height:44px;display:flex;align-items:center}}
@media(prefers-reduced-motion:reduce){.trackside span{animation:none}}

/* Pass 2 — the carriage, glass and passing world become one instrument */
:root{--velocity:0}
.world{background:#030b12;box-shadow:inset 0 0 180px #000}
.world:before{content:"";position:absolute;inset:0;z-index:8;pointer-events:none;background:radial-gradient(ellipse at center,transparent 38%,#02040866 76%,#000c 118%),linear-gradient(90deg,#02030555,transparent 10% 90%,#02030566)}
.world:after{content:"";position:absolute;inset:0;z-index:9;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent,#f7dba022 44%,#fff8df77 50%,#f7dba022 56%,transparent);transform:translateX(-115%)}
.cloud-band{position:absolute;inset:5% -25% 42%;opacity:.23;filter:blur(26px);background:radial-gradient(ellipse at 20% 52%,#31536a 0 8%,transparent 25%),radial-gradient(ellipse at 62% 28%,#4c6677 0 9%,transparent 29%),radial-gradient(ellipse at 83% 69%,#213e53 0 7%,transparent 27%);transform:translateX(calc(var(--progress) * -16%));transition:opacity .8s}
.telegraph-wire{position:absolute;left:-8%;right:-8%;bottom:27%;height:21%;opacity:.65;transform:translateX(calc(var(--progress) * -9%));transition:opacity .7s}
.telegraph-wire i{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#182021 7% 93%,transparent);transform-origin:center}
.telegraph-wire i:nth-child(1){top:18%;transform:rotate(-1deg)}.telegraph-wire i:nth-child(2){top:26%;transform:rotate(.6deg)}.telegraph-wire i:nth-child(3){top:35%;transform:rotate(-.4deg)}
.foreground-rush{position:absolute;inset:auto -20% 2% -10%;height:39%;z-index:4;overflow:hidden;opacity:.88;filter:blur(calc(.3px + var(--velocity) * 1.4px));transition:opacity .7s}
.foreground-rush i{position:absolute;bottom:-5%;left:var(--left);width:8px;height:var(--height);background:linear-gradient(90deg,#020405,#111717 48%,#020405);transform:skewX(-7deg);animation:foregroundSweep var(--duration) linear infinite;animation-delay:var(--delay)}
.foreground-rush i:before,.foreground-rush i:after{content:"";position:absolute;left:50%;width:var(--crown);height:var(--crown);background:#070d0e;clip-path:polygon(50% 0,100% 100%,0 100%);transform:translateX(-50%)}
.foreground-rush i:before{top:-14%}.foreground-rush i:after{top:8%;width:calc(var(--crown) * .78);height:calc(var(--crown) * .78)}
.foreground-rush i:nth-child(1){--left:2%;--height:52%;--crown:76px;--duration:8.6s;--delay:-3s}.foreground-rush i:nth-child(2){--left:18%;--height:83%;--crown:120px;--duration:11.3s;--delay:-7s}.foreground-rush i:nth-child(3){--left:35%;--height:61%;--crown:88px;--duration:7.8s;--delay:-5s}.foreground-rush i:nth-child(4){--left:52%;--height:93%;--crown:132px;--duration:12.7s;--delay:-10s}.foreground-rush i:nth-child(5){--left:68%;--height:58%;--crown:82px;--duration:9.2s;--delay:-1s}.foreground-rush i:nth-child(6){--left:84%;--height:78%;--crown:108px;--duration:10.6s;--delay:-6s}.foreground-rush i:nth-child(7){--left:97%;--height:66%;--crown:92px;--duration:8.2s;--delay:-4s}
.speed-lines{position:absolute;inset:18% 0 9%;z-index:6;opacity:calc(.04 + var(--velocity) * .32);transition:opacity .18s;overflow:hidden}
.speed-lines i{position:absolute;right:-5%;width:clamp(90px,24vw,420px);height:1px;background:linear-gradient(90deg,transparent,#d9b98799);filter:blur(.3px);animation:speedLine 2.8s linear infinite}
.speed-lines i:nth-child(1){top:8%;animation-delay:-.4s}.speed-lines i:nth-child(2){top:23%;width:32vw;animation-delay:-1.7s}.speed-lines i:nth-child(3){top:39%;width:18vw;animation-delay:-2.2s}.speed-lines i:nth-child(4){top:57%;animation-delay:-1.1s}.speed-lines i:nth-child(5){top:74%;width:29vw;animation-delay:-2.6s}.speed-lines i:nth-child(6){top:91%;width:15vw;animation-delay:-.8s}
.lamp-wash{position:absolute;right:-10%;top:-12%;width:58vw;height:72vh;z-index:7;pointer-events:none;opacity:.19;background:radial-gradient(ellipse at 70% 18%,#f2b85755,transparent 58%);mix-blend-mode:screen;transition:opacity .7s}
.reflection-reading{position:absolute;left:17%;right:14%;bottom:22%;margin:0;color:#e8d9bd;font:clamp(25px,5vw,78px)/.9 'Abril Fatface';letter-spacing:-.03em;text-align:right;opacity:.12;transform:scaleX(-1) rotate(-2deg);filter:blur(.45px)}
.curtain{position:absolute;top:18px;bottom:14px;width:18px;z-index:2;background:repeating-linear-gradient(90deg,#26070c 0 4px,#5c1420 5px 8px,#1c0509 10px 14px);box-shadow:0 0 25px #000,inset 0 0 3px #9b3b37}
.curtain-left{left:20px}.curtain-right{right:20px;transform:scaleX(-1)}
.frame-screw{position:absolute;width:6px;height:6px;border-radius:50%;z-index:3;background:radial-gradient(circle at 35% 35%,#f1d58b,#76501f 65%,#1b0b05);box-shadow:0 0 0 1px #1b0906}
.screw-one{left:17px;top:15%}.screw-two{right:17px;top:15%}.screw-three{left:17px;bottom:14%}.screw-four{right:17px;bottom:14%}
.train-header{background:linear-gradient(103deg,#26060cef,#4e0d19f5 44%,#27060ceF);box-shadow:inset 0 1px #7c2933,inset 0 -1px #150205,0 18px 50px #000b}
.train-header:after{content:"";position:absolute;inset:6px;pointer-events:none;border-top:1px solid #e5bd7044;border-bottom:1px solid #110306}
.train-header>*{position:relative;z-index:1}
.monogram{background:linear-gradient(135deg,#4c0e18,#25070c);text-shadow:0 2px #000}
.travel-status{position:fixed;right:47px;bottom:39px;z-index:16;width:225px;padding:14px 17px;color:#d8bd88;background:#071016d9;border:1px solid #7b5e33;border-right:4px solid #b28d4f;backdrop-filter:blur(7px);box-shadow:10px 14px 35px #0008;pointer-events:none;transition:opacity .6s,transform .6s}
.travel-status span,.travel-status b,.travel-status i{display:block}.travel-status span{font-size:7px;letter-spacing:.22em;text-transform:uppercase;color:#8fa5ac}.travel-status b{margin:7px 0 3px;font:17px 'Abril Fatface';color:#edd8ab}.travel-status i{font-style:normal;font-size:7px;letter-spacing:.12em;text-transform:uppercase;color:#c59c57}
.timetable{box-shadow:inset 0 0 24px #0006,8px 18px 42px #0007}
.timetable:after{content:"417";display:block;margin-top:15px;padding-top:11px;border-top:1px solid #76502b;font:9px 'Manrope';letter-spacing:.25em;color:#906f45}
.timetable a{transition:padding-left .25s,color .25s}.timetable a.active{padding-left:28px;background:linear-gradient(90deg,#c3995315,transparent)}
.hero,.story-section,.tunnel-section,.arrival{overflow:clip}
.hero{min-height:112vh;padding-top:23vh}
.hero-ticket{width:min(800px,68vw);padding:52px 68px 42px 92px;background:linear-gradient(112deg,#2c0710f5 0%,#5b1020f2 58%,#370912f8 100%);box-shadow:0 35px 100px #000b,0 0 0 10px #21060bcc,0 0 0 11px #a47636,inset 0 0 55px #16030799}
.hero-ticket:before{content:"";position:absolute;inset:10px;border:1px solid #d6b369;pointer-events:none}
.ticket-series{position:absolute;left:21px;top:26px;bottom:26px;width:45px;display:flex;align-items:center;justify-content:center;border-right:1px dashed #c8a35f;color:#d4ad65;font-size:7px;line-height:1.8;letter-spacing:.18em;text-align:center;writing-mode:vertical-rl;transform:rotate(180deg)}
.ticket-punch{position:absolute;right:27px;top:26px;width:27px;height:27px;border-radius:50%;border:1px solid #e1bd7088;box-shadow:inset 0 0 0 5px #23060c,0 0 0 1px #26060c;background:#b48645}
.ticket-punch:after{content:"S";display:grid;place-items:center;height:100%;font:13px 'Abril Fatface';color:#2b0810}
.hero h1{font-size:clamp(82px,11.5vw,170px);margin:34px 0 24px;line-height:.72;text-shadow:7px 7px 0 #160306,0 0 28px #e9c67512}
.hero-route{font-size:30px}.hero-route i{width:min(10vw,140px)}
.departure-board{top:62vh;right:7vw;width:280px;padding:24px 28px;background:linear-gradient(145deg,#0d1516f5,#060b0df5);border-width:7px;box-shadow:16px 22px 55px #000d}
.departure-board:before{content:"ABFAHRT / PARTENZA";display:block;margin-bottom:12px;font-size:7px;letter-spacing:.2em;color:#748b8c}
.platform-whisper{position:absolute;right:31%;bottom:6vh;display:flex;align-items:flex-end;gap:18px;color:#b48c52;opacity:.65;transform:rotate(-90deg);transform-origin:right bottom}
.platform-whisper span{font:22px 'Abril Fatface';letter-spacing:.08em}.platform-whisper i{display:grid;place-items:center;width:34px;height:34px;border:1px solid currentColor;font:16px 'Abril Fatface'}.platform-whisper b{font-size:8px;letter-spacing:.2em}
.story-section{min-height:108vh;gap:6vw}
.story-section:before{content:attr(id);position:absolute;right:3.5vw;top:50%;transform:rotate(90deg) translateX(50%);transform-origin:right top;font-size:7px;letter-spacing:.5em;text-transform:uppercase;color:#b58d5144}
.linen-card,.menu-card,.night-log{background-image:linear-gradient(120deg,#f3e8d0f5,#dfcfaff5),repeating-linear-gradient(0deg,transparent 0 5px,#6c4e2708 6px);background-blend-mode:multiply;box-shadow:22px 30px 90px #000c,0 1px 0 #fff8 inset}
.linen-card{position:relative}.linen-card:after{content:"WL / 417";position:absolute;right:18px;bottom:16px;font-size:7px;letter-spacing:.2em;color:#6d4d2e;transform:rotate(-90deg);transform-origin:right bottom}
.small-note,.dining-note{backdrop-filter:blur(8px);box-shadow:15px 22px 60px #0009}
.stamp{opacity:.18;filter:blur(2px);transform:rotate(10deg) scale(.72);transition:none}
.stamp-italy{transform:rotate(-11deg) scale(.72)}
.stamp.struck{animation:passportStrike .68s cubic-bezier(.16,.86,.24,1.25) both}
.stamp-italy.struck{animation-name:passportStrikeItaly}
.tunnel-section{min-height:106vh;background:radial-gradient(ellipse at 52% 49%,#7d5a4014,transparent 38%)}
.tunnel-message{position:relative;max-width:980px}.tunnel-message:before,.tunnel-message:after{content:"";position:absolute;top:50%;width:12vw;height:1px;background:linear-gradient(90deg,transparent,#b5894e)}.tunnel-message:before{right:104%}.tunnel-message:after{left:104%;transform:scaleX(-1)}
.tunnel-counter{margin:52px auto 0;display:flex;width:max-content;align-items:center;gap:7px;color:#b6894e}
.tunnel-counter b{display:grid;place-items:center;width:60px;height:48px;border:1px solid #7a5b38;background:#090908;font:31px 'Abril Fatface';box-shadow:inset 0 0 18px #000}.tunnel-counter i{font:24px 'Abril Fatface'}
.menu-card{transform:rotate(-.8deg);outline:1px solid #5b371f;outline-offset:-17px}
.lake-caption{position:relative;background:linear-gradient(135deg,#091822eb,#102a38d9);box-shadow:18px 25px 70px #000a}.lake-caption:before{content:"MOON / WATER / 11 KM";position:absolute;top:17px;right:20px;font-size:7px;letter-spacing:.18em;color:#82a4ad}
.arrival{min-height:132vh;padding-bottom:18vh;text-align:left}
.arrival-inner{width:min(1050px,80vw);max-width:none;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(390px,.9fr);gap:14px 70px;align-items:center}
.arrival-inner>.chapter,.arrival-inner>h2,.arrival-inner>p,.arrival-inner>.return-ticket{grid-column:1}
.arrival h2{font-size:clamp(80px,9vw,142px);margin:15px 0 20px;line-height:.82}
.arrival-inner>p:not(.chapter):not(.final-note){margin:0;max-width:56ch}
.arrival-time{grid-column:2;grid-row:1/6;margin:0;align-self:center;gap:12px}
.arrival-time span{font-size:clamp(82px,8.5vw,132px);padding:12px 20px}
.arrival-time i{font-size:55px}.final-note{margin:16px 0 0}.return-ticket{justify-self:start;margin-top:18px}
.site-footer{min-height:165px;background:linear-gradient(110deg,#180408,#30080e 55%,#190408);border-top:3px double #a4783f;box-shadow:inset 0 18px 55px #0005}
body.lamp-off .lamp-wash{opacity:0}body.lamp-off .travel-status{filter:brightness(.75)}
body.scene-tunnel .cloud-band,body.scene-tunnel .telegraph-wire,body.scene-tunnel .foreground-rush,body.scene-tunnel .speed-lines{opacity:0}
body.scene-tunnel .lamp-wash{opacity:.34}body.scene-platform .platform{transform:translateX(-36%);transition:transform 1.8s cubic-bezier(.12,.72,.2,1)}body.scene-platform .foreground-rush{opacity:.18}
body.scene-lake .telegraph-wire,body.scene-lake .foreground-rush{opacity:.12}body.scene-lake .speed-lines{opacity:.04}body.scene-lake .cloud-band{opacity:.42}
body.scene-dawn .cloud-band{opacity:.12}body.scene-dawn .foreground-rush,body.scene-dawn .telegraph-wire,body.scene-dawn .speed-lines{opacity:0}body.scene-dawn .travel-status{opacity:0;transform:translateY(30px)}
body.scene-transition .world:after{animation:glassFlash .7s cubic-bezier(.2,.7,.2,1)}
body.stamp-impact .window-frame{animation:carriageImpact .4s cubic-bezier(.3,.8,.3,1)}
body.page-hidden *,body.page-hidden *:before,body.page-hidden *:after{animation-play-state:paused!important}
body:not(.journey-ready) .hero-ticket{opacity:0;transform:translateY(28px) scale(.985)}
body:not(.journey-ready) .train-header{opacity:0;transform:translateY(-20px)}
.journey-ready .train-header{transition:opacity .7s .05s,transform .7s .05s cubic-bezier(.16,.84,.24,1)}
.journey-ready .hero-ticket{transition:opacity 1s .18s,transform 1s .18s cubic-bezier(.16,.84,.24,1)}
@keyframes foregroundSweep{from{translate:118vw 0}to{translate:-120vw 0}}
@keyframes speedLine{from{transform:translateX(15vw) scaleX(.2);opacity:0}20%{opacity:1}to{transform:translateX(-125vw) scaleX(1.5);opacity:0}}
@keyframes passportStrike{0%{opacity:0;filter:blur(7px);transform:rotate(18deg) translateY(-45px) scale(.72)}65%{opacity:.94;filter:blur(0);transform:rotate(8deg) scale(1.08)}100%{opacity:.8;filter:blur(0);transform:rotate(10deg) scale(1)}}
@keyframes passportStrikeItaly{0%{opacity:0;filter:blur(7px);transform:rotate(-2deg) translateY(-45px) scale(.72)}65%{opacity:.94;filter:blur(0);transform:rotate(-13deg) scale(1.08)}100%{opacity:.8;filter:blur(0);transform:rotate(-11deg) scale(1)}}
@keyframes glassFlash{0%{opacity:0;transform:translateX(-115%)}35%{opacity:.8}100%{opacity:0;transform:translateX(115%)}}
@keyframes carriageImpact{0%,100%{transform:translate(0)}30%{transform:translate(-2px,1px)}55%{transform:translate(2px,-1px)}75%{transform:translate(-1px,0)}}

@media(max-width:900px){
  .travel-status{right:31px;bottom:31px;width:190px}.travel-status span{display:none}.travel-status b{font-size:14px;margin-top:0}
  .hero-ticket{width:100%;padding:45px 45px 40px 72px}.ticket-series{left:17px}
  .platform-whisper{display:none}.story-section{min-height:104vh}.arrival{min-height:125vh;text-align:center}.arrival-inner{width:100%;display:flex;flex-direction:column;gap:10px}.arrival-inner>p:not(.chapter):not(.final-note){margin:15px auto}.arrival-time{margin:42px 0 12px}.return-ticket{align-self:center}
}
@media(max-width:600px){
  .curtain{top:14px;bottom:11px;width:7px}.curtain-left{left:9px}.curtain-right{right:9px}.frame-screw{display:none}
  .foreground-rush{height:30%;opacity:.52}.foreground-rush i:nth-child(even){display:none}.telegraph-wire{left:0;right:0;bottom:24%}.lamp-wash{right:0}.speed-lines{opacity:calc(.02 + var(--velocity) * .2)}
  .travel-status{display:none}.timetable:after{display:none}
  .hero{min-height:104vh;padding-top:20vh}.hero-ticket{padding:34px 24px 33px}.hero-ticket:before{inset:7px}.ticket-series{position:static;display:block;width:auto;height:auto;margin:0 0 13px;padding-bottom:8px;border:0;border-bottom:1px dashed #b99151;writing-mode:initial;transform:none;text-align:left}.ticket-punch{right:18px;top:18px;width:23px;height:23px}.hero h1{font-size:clamp(65px,19vw,76px);margin:23px 0 18px}.hero-route{font-size:21px}.departure-board{bottom:14vh;right:24px;width:222px}.scroll-cue{bottom:5vh}
  .story-section{min-height:102vh}.story-section:before{display:none}.stamp{margin-top:-20px;margin-bottom:-20px}.tunnel-section{min-height:96vh}.tunnel-message h2{font-size:44px}.tunnel-message:before,.tunnel-message:after{display:none}.tunnel-counter{margin-top:35px}.tunnel-counter b{width:48px;height:42px;font-size:27px}
  .lake-section{min-height:110vh}.arrival{min-height:118vh;padding-top:125px;padding-bottom:14vh}.arrival h2{font-size:64px}.arrival-inner>p:not(.chapter):not(.final-note){font-size:14px;line-height:1.75}.arrival-time{margin-top:38px}.arrival-time span{font-size:61px;padding:9px 14px}
  .site-footer{display:grid;grid-template-columns:1fr;min-height:0;padding:38px 30px 46px}.site-footer span{font-size:8px}.site-footer a{width:max-content}
  .ref-reader{left:48%;right:8%;width:auto;font-size:9vw}.ref-reader small{display:block;font-size:7px;line-height:1.5;white-space:normal}
  .hotspot{min-width:44px;min-height:44px}.hotspot b{width:44px;height:44px}
}
@media(prefers-reduced-motion:reduce){
  .foreground-rush i,.speed-lines i,.stamp.struck,.stamp-italy.struck,.journey-ready .train-header,.journey-ready .hero-ticket{animation:none;transition:none}
  .foreground-rush i{animation:none}.speed-lines{display:none}.stamp,.stamp-italy{opacity:.8;filter:none;transform:rotate(0)}.world:after{display:none}
}
.guide-back:focus-visible,.site-footer a:focus-visible{outline:2px solid #fff;outline-offset:4px}

/* Pass 3 — art direction: tactile glass, optical type and finished controls */
::selection{background:#d2a653;color:#21070c;text-shadow:none}
html::-webkit-scrollbar{width:12px}
html::-webkit-scrollbar-track{background:#19070b;border-left:1px solid #4e241e}
html::-webkit-scrollbar-thumb{background:linear-gradient(#e0bd70,#89632f);border:3px solid #19070b;border-radius:999px}
body{font-optical-sizing:auto;font-kerning:normal;font-feature-settings:'kern' 1,'liga' 1}
h1,h2,.guide-mast h1{text-wrap:balance;font-kerning:normal}
p,blockquote{ text-wrap:pretty }
time,.ticket-meta,.departure-board span,.arrival-time,.tunnel-counter,[data-distance],.night-log dt{font-variant-numeric:tabular-nums lining-nums}
.hero h1{letter-spacing:-.052em}
.hero-route{letter-spacing:-.012em}
.linen-card h2,.lake-caption h2,.arrival h2{letter-spacing:-.028em}
.linen-card p,.lake-caption p:not(.chapter),.arrival-inner>p:not(.chapter):not(.final-note){max-width:62ch}

.mist-switch{position:relative;display:flex;align-items:center;gap:9px;min-height:44px;padding:0 17px;border:0;border-left:1px solid #956436;background:transparent;color:var(--linen);font:600 9px 'Manrope';letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .28s,color .28s}
.mist-switch b{font:inherit;white-space:nowrap}
.mist-switch span{position:relative;width:12px;height:15px;border:1px solid #d7b46b;border-radius:70% 30% 65% 35%;transform:rotate(45deg);box-shadow:inset 2px 2px 5px #f0d89833}
.mist-switch[aria-pressed="true"]{background:#d2aa5a;color:#26070d}
.mist-switch[aria-pressed="true"] span{border-color:#26070d;background:#6f1a25;box-shadow:0 0 15px #f4d18c}
.lamp-switch,.menu-toggle,.mist-switch,.monogram,.return-ticket,.site-footer a,.guide-back{transition:background-color .28s,color .28s,transform .28s cubic-bezier(.2,.8,.2,1),border-color .28s}
.lamp-switch:hover,.menu-toggle:hover,.mist-switch:hover{background:#d0a0521c;color:#f8dd9e}
.monogram:hover{background:#6b1725;transform:translateY(-1px)}
.timetable a:hover{padding-left:28px;background:linear-gradient(90deg,#c3995322,transparent)}
.return-ticket:hover span{transform:translateY(-3px)}
.return-ticket span{transition:transform .28s cubic-bezier(.2,.8,.2,1)}
.site-footer a:hover,.guide-back:hover{transform:translateY(-2px)}
.mist-switch:focus-visible{outline:2px solid #fff;outline-offset:3px}

.window-mist{position:fixed;inset:26px;z-index:19;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .65s cubic-bezier(.2,.8,.2,1),visibility 0s .65s;box-shadow:inset 0 0 90px #f2ead477}
.window-mist.active{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s}
.window-mist canvas{position:absolute;inset:0;z-index:2;width:100%;height:100%;touch-action:none;cursor:crosshair}
.mist-inscription{position:absolute;left:50%;top:53%;z-index:1;width:min(530px,76vw);transform:translate(-50%,-50%) rotate(-2deg);color:#4b131d;text-align:center;opacity:.28;filter:blur(.5px);transition:opacity .7s,filter .7s,transform .7s cubic-bezier(.2,.8,.2,1)}
.mist-inscription span,.mist-inscription small{display:block;font-size:8px;font-weight:700;letter-spacing:.25em;text-transform:uppercase}
.mist-inscription strong{display:block;margin:18px 0 22px;font:clamp(54px,8vw,120px)/.78 'Abril Fatface';letter-spacing:-.04em;text-shadow:0 1px #f4e8c7}
.mist-inscription small{color:#18303a}
.window-mist.message-found .mist-inscription{opacity:.92;filter:none;transform:translate(-50%,-50%) rotate(-1deg) scale(1.015)}
.mist-status{position:fixed;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body.mist-active .world{filter:brightness(.88) saturate(.78)}
body.mist-active .window-frame{filter:drop-shadow(0 0 18px #e0c48844)}

.world{transition:filter .8s,opacity 1.15s,transform 1.15s cubic-bezier(.16,.84,.24,1)}
body:not(.journey-ready) .world{opacity:.35;transform:scale(1.025)}
body:not(.journey-ready) .curtain-left{transform:translateX(12px)}
body:not(.journey-ready) .curtain-right{transform:scaleX(-1) translateX(12px)}
.curtain{transition:transform 1s .08s cubic-bezier(.16,.84,.24,1)}
.journey-ready .departure-board.visible{transition-delay:.48s}
.journey-ready .scroll-cue.visible{transition-delay:.72s}
.journey-ready .platform-whisper.visible{transition-delay:.9s}

@media(max-width:900px){
  .mist-switch{padding:0 13px}
  .mist-switch b{display:none}
}

@media(max-width:600px){
  html::-webkit-scrollbar{width:7px}
  .mist-switch{width:44px;padding:0;justify-content:center;border-left:0}
  .mist-switch span{width:11px;height:14px}
  .window-mist{inset:15px 11px 13px}
  .mist-inscription{width:84vw;top:55%}
  .mist-inscription strong{font-size:54px}
  .mist-inscription small{font-size:7px;line-height:1.6}
  .route-name{min-width:0}
}

@media(prefers-reduced-motion:reduce){
  .window-mist,.mist-inscription,.world,.curtain{transition:none}
  body:not(.journey-ready) .world{opacity:1;transform:none}
  body:not(.journey-ready) .curtain-left{transform:none}
  body:not(.journey-ready) .curtain-right{transform:scaleX(-1)}
}
