@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Playfair+Display:ital,wght@0,400;0,600;1,400;1,600&display=swap');
:root{--paper:#f6f1e8;--paper2:#eee6d7;--red:#863d43;--deep:#642e36;--green:#50624b;--ink:#3f3935;--muted:#82786d;--blue:#bacbd9;--line:#d6c8b8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Songti SC','STSong','Noto Serif CJK SC','SimSun',serif;overflow-x:hidden}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #b48e72;outline-offset:3px}img{max-width:100%;display:block}.grain{position:fixed;inset:0;pointer-events:none;z-index:1000;opacity:.22;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.15'/%3E%3C/svg%3E")}.intro{position:fixed;inset:0;z-index:200;background:var(--paper);display:grid;place-items:center;transition:opacity .65s ease,visibility .65s ease;overflow:hidden}.intro.closed{opacity:0;visibility:hidden;pointer-events:none}.intro-inner{text-align:center;position:relative;z-index:2;padding:20px}.intro-inner h1{font-size:clamp(28px,4vw,54px);font-weight:normal;letter-spacing:.12em;color:var(--deep);margin:18px 0 4px}.intro-inner p{color:var(--muted);font-size:16px}.eyebrow,.chapter{font:600 11px/1.4 Arial,sans-serif;letter-spacing:.23em;color:var(--red)}.orbit-one,.orbit-two{position:absolute;border:1px solid #ddd0bd;border-radius:50%;width:720px;height:720px}.orbit-two{width:960px;height:960px;opacity:.55}.envelope{width:240px;height:178px;margin:45px auto 48px;position:relative;filter:drop-shadow(0 16px 14px #715c4330)}.envelope-back{position:absolute;inset:0;background:#d8bea3;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.envelope-note{position:absolute;left:23px;right:23px;top:-22px;height:130px;background:#fff8e9;font:italic 24px/1.4 'Playfair Display',Georgia,serif;color:var(--red);padding:22px;transform:rotate(-3deg)}.envelope-flap{position:absolute;inset:0;background:#ead4b9;clip-path:polygon(0 0,50% 62%,100% 0,100% 100%,0 100%)}.seal{position:absolute;left:calc(50% - 24px);top:84px;width:48px;height:48px;background:var(--red);border-radius:50%;color:#fff;display:grid;place-items:center;font-size:19px}.pill{border:1px solid var(--red);border-radius:100px;padding:14px 25px;background:transparent;color:var(--red);transition:transform .25s,background .25s,color .25s;white-space:nowrap}.pill:hover{transform:translateY(-3px)}.pill.primary{background:var(--red);color:white}.pill.primary:hover{background:var(--deep)}.text-btn{display:block;border:0;background:none;color:var(--muted);margin:18px auto;text-decoration:underline;text-underline-offset:5px}.site-header{position:fixed;z-index:90;top:0;left:0;right:0;height:77px;display:flex;justify-content:space-between;align-items:center;padding:0 5.3%;background:#f6f1e8ed;border-bottom:1px solid #e5d8ca;backdrop-filter:blur(15px)}.brand{display:flex;gap:10px;align-items:center;font-size:19px;color:var(--deep);font-weight:bold}.brand-mark{font-size:23px}.brand small{display:block;font:9px Arial,sans-serif;letter-spacing:.15em;margin-top:4px;color:var(--muted)}.desktop-nav{display:flex;gap:30px;font-size:13px}.desktop-nav a:hover{color:var(--red)}.menu-button{display:none;border:0;background:none;font-size:25px;color:var(--red)}.mobile-nav{display:none}.hero{min-height:850px;height:min(900px,100svh);margin-top:77px;display:grid;grid-template-columns:52% 48%;position:relative;overflow:hidden}.hero-left{padding:9vh 0 65px 10.4%;position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center}.huge-title{font-size:clamp(65px,7vw,118px);font-weight:800;line-height:1.21;letter-spacing:-.09em;color:var(--red);white-space:nowrap;margin-top:40px}.huge-title span{display:block}.huge-title .indent{padding-left:1.05em}.period{color:#bd8687}.script{font:italic clamp(34px,4vw,68px)/1.2 'Playfair Display','DM Serif Display',Georgia,serif;color:#aa7d7e;transform:rotate(-9deg);margin-top:-5px;white-space:nowrap}.script span{display:block;margin-left:140px}.hero-bottom{display:flex;gap:22px;align-items:start;margin-top:56px;font-size:15px;line-height:2.1}.red-rule{width:56px;height:3px;flex:none;margin-top:14px;background:var(--red)}.hero-bottom p{margin:0}.hero-meta{display:flex;flex-wrap:wrap;gap:30px;align-items:center;margin-top:40px;color:var(--red);font-size:17px}.hero-meta em{font-weight:normal;padding:0 5px}.hero-meta span{font:11px Arial,sans-serif;letter-spacing:.15em}.scroll-prompt{margin-top:55px;color:var(--muted);font-size:12px;letter-spacing:.1em}.scroll-prompt span{margin-left:20px;color:var(--red)}.hero-right{position:relative;background:#e5e6db;min-width:0}.hero-right:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 60% 26%,#e3e7d6,transparent 48%),linear-gradient(130deg,#dce3d5,#f0e6dd 65%,#e5dccf)}.poster-frame{position:absolute;top:12%;right:9%;width:66%;height:59%;padding:12px;background:#eee8db;box-shadow:15px 25px 32px #46382828;transform:rotate(6deg)}.poster-frame img{height:100%;width:100%;object-fit:cover}.paper-tape{position:absolute;top:-15px;left:38%;height:34px;width:92px;background:#ebe1c7aa;transform:rotate(-9deg)}.apple-illustration{position:absolute;bottom:4%;left:-5%;width:52%;max-width:350px;transform:rotate(-11deg);filter:drop-shadow(8px 18px 8px #42362c20);animation:apple-float 5s ease-in-out infinite}.apple-tag{display:block;text-align:center;font:11px Arial,sans-serif;letter-spacing:.18em;color:var(--red);transform:rotate(8deg)}@keyframes apple-float{50%{transform:rotate(-8deg) translateY(-12px)}}.hero-doodle{position:absolute;color:var(--red);z-index:2}.sun-doodle{font-size:58px;left:8%;top:9%;transform:rotate(15deg)}.star-doodle{font-size:43px;right:8%;bottom:9%}.hero-stamp{position:absolute;right:6%;bottom:20%;border:2px dashed var(--red);border-radius:50%;width:88px;height:88px;display:grid;place-items:center;text-align:center;color:var(--red);font:12px/1.2 Arial,sans-serif;transform:rotate(16deg)}.corner-flower{position:absolute;right:40%;top:5%;font-size:23px;color:#e0a5a7}.hero-index{position:absolute;bottom:17px;right:5%;font:10px Arial,sans-serif;letter-spacing:.25em;color:var(--muted)}.section-space{padding:100px max(7vw,24px)}.section-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:18px;font:10px Arial,sans-serif;letter-spacing:.2em;color:var(--muted);margin-bottom:72px}.section-head .chapter{color:var(--red)}h2{font-size:clamp(42px,5vw,80px);font-weight:600;letter-spacing:-.05em;line-height:1.36;margin:12px 0 25px;color:var(--deep)}h2 i{font-weight:normal;color:var(--red)}p{line-height:1.9}.quote-section{min-height:830px}.story-grid{display:grid;grid-template-columns:46% 54%;gap:5%;align-items:center}.story-intro{position:relative;padding-left:5%}.side-note{writing-mode:vertical-rl;position:absolute;left:-15px;top:0;font:9px Arial;letter-spacing:.25em;color:var(--muted)}.story-intro p{max-width:490px;font-size:16px;color:#6a625b}.accent-script{display:block;margin:60px 0 0;transform:rotate(-7deg);font-size:42px}.scrapbook{height:500px;position:relative}.photo-card{position:absolute;background:#fffaf0;padding:12px 12px 33px;box-shadow:6px 18px 35px #4a3b2b23;width:48%;height:70%}.photo-card small{font:10px Arial;letter-spacing:.13em;color:var(--muted)}.photo-one{top:5%;left:10%;transform:rotate(-11deg)}.photo-two{top:23%;right:4%;transform:rotate(9deg)}.photo-placeholder{height:100%;background:linear-gradient(135deg,#b7c7a2,#f2e5bd);display:flex;flex-direction:column;gap:24px;align-items:center;justify-content:center;color:#58674f;font-size:13px}.photo-placeholder>span:first-child{font-size:85px}.photo-placeholder.blue{background:linear-gradient(135deg,#acc6d4,#e2dedb);color:#638398}.sticker-round{position:absolute;right:32%;bottom:0;background:#a83f4e;color:#fff;border-radius:50%;height:118px;width:118px;display:grid;place-items:center;text-align:center;font:12px/1.8 Arial;transform:rotate(-15deg)}.scrap-flower{position:absolute;left:0;bottom:0;font-size:74px;color:var(--red)}.chapter-divider{display:flex;align-items:center;justify-content:center;gap:30px;margin:120px auto 0;color:var(--red);font:10px Arial;letter-spacing:.2em}.chapter-divider span:first-child,.chapter-divider span:last-child{font-size:32px}.ticket-section{background:#e9e5d9}.ticket-layout{display:grid;grid-template-columns:43% 1fr;gap:8%;align-items:center;min-height:570px}.ticket-intro p{color:#72675d}.track-line{display:flex;align-items:center;gap:10px;margin:50px 0 34px;color:var(--red)}.train-icon{font-size:33px}.track-dots{height:3px;flex:1;border-top:3px dashed var(--red)}.helper-note{font-size:12px!important;color:var(--muted)!important}.ticket-card{min-height:330px;background:#f8efdd;color:var(--deep);padding:32px 35px;box-shadow:11px 20px 30px #61523f2b;position:relative;transform:rotate(3deg);border:2px solid #c69b84}.ticket-hole{position:absolute;top:48%;height:38px;width:21px;background:#e9e5d9;border:2px solid #c69b84}.left-hole{left:-2px;border-left:0;border-radius:0 30px 30px 0}.right-hole{right:-2px;border-right:0;border-radius:30px 0 0 30px}.ticket-top,.ticket-bottom{display:flex;justify-content:space-between;font:11px Arial;letter-spacing:.15em}.ticket-mark{font-size:45px;color:var(--red);margin:23px 0;text-align:center}.ticket-middle{display:flex;justify-content:space-between;align-items:center;text-align:center;border-top:2px dashed #d0afa0;border-bottom:2px dashed #d0afa0;padding:23px 0}.ticket-middle div{display:flex;flex-direction:column;gap:10px}.ticket-middle small{font-size:11px;color:#8c786a}.ticket-middle strong{font-size:29px}.ticket-arrow{font-size:40px;color:#a97d71}.ticket-people{text-align:center;margin:20px 0;font-size:22px}.ticket-people span{color:var(--red);margin:0 11px}.journey-section{background:var(--paper)}.journey-header{text-align:center}.journey-header p{color:var(--muted)}.journey-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:60px auto 25px;max-width:1030px}.journey-tabs button{border:1px solid #d9c9b9;border-radius:5px;background:transparent;padding:18px 8px;font-size:16px;color:var(--ink)}.journey-tabs button small{display:block;font:11px Arial;margin-top:7px;color:var(--muted)}.journey-tabs button.active{background:var(--red);color:white;border-color:var(--red)}.journey-tabs button.active small{color:#f1d9d2}.journey-board{display:grid;grid-template-columns:35% 65%;max-width:1030px;margin:auto;background:#ebe4d6;min-height:380px;border:1px solid var(--line)}.route-deco{background:#d9ddd1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:24px;overflow:hidden}.route-apple{width:180px;height:180px;background:#a13e4b;clip-path:path('M 91 30 C 30 -4 0 39 7 95 C 13 148 50 175 92 164 C 133 177 174 146 178 94 C 182 38 142 -4 91 30 Z');display:grid;place-items:center;font-size:72px;color:#ffe8dd}.route-deco>span{font:10px Arial;letter-spacing:.2em;color:var(--deep)}.journey-list{padding:30px 55px}.journey-item{display:grid;grid-template-columns:76px 26px 1fr;gap:20px;align-items:start;min-height:63px}.journey-time{font:14px Arial;letter-spacing:.05em;color:var(--red);padding-top:5px}.journey-bullet{position:relative;height:100%}.journey-bullet:before{content:"";position:absolute;left:5px;top:10px;width:10px;height:10px;border:2px solid var(--red);border-radius:50%;background:#e9e4d8}.journey-bullet:after{content:"";position:absolute;left:11px;top:23px;bottom:-3px;width:1px;background:#bb9b92}.journey-item:last-child .journey-bullet:after{display:none}.journey-content strong{font-size:17px;font-weight:normal}.journey-content p{font-size:12px;color:#81736b;margin:4px 0 16px}.timeline-footnote{text-align:center;font-size:12px;color:var(--muted);margin-top:20px}.venue-section{background:#e3e8e0}.venue-header{display:flex;align-items:end;justify-content:space-between;gap:35px}.venue-header p{max-width:350px;color:#68705f}.venue-gallery{display:grid;grid-template-columns:1.6fr 1fr;gap:18px;margin-top:45px}.venue-gallery figure{margin:0;background:#f6f1e8;overflow:hidden}.venue-gallery img{width:100%;object-fit:cover;transition:transform .7s}.venue-gallery figure:hover img{transform:scale(1.035)}.venue-main img{aspect-ratio:1.21}.venue-aside{display:grid;grid-template-rows:1fr 1fr;gap:18px}.venue-aside img{aspect-ratio:2.4}.venue-gallery figcaption{display:flex;justify-content:space-between;gap:8px;padding:14px 16px;color:var(--red);font:11px Arial;letter-spacing:.1em}.scene-note{font-size:12px;color:#6a7268;margin-top:18px}.letters-section{background:var(--paper)}.letters-layout{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.letters-copy p{max-width:420px;color:#71665d}.mailbox{width:205px;height:220px;background:var(--red);border-radius:100px 100px 10px 10px;position:relative;margin:90px auto 15px;box-shadow:10px 16px 0 #d7b7a1}.mailbox:after{content:"";position:absolute;bottom:-48px;left:88px;background:var(--deep);width:30px;height:48px}.mailbox-slot{position:absolute;left:43px;top:80px;width:119px;height:16px;border-radius:10px;background:#512c32}.mailbox-heart{position:absolute;top:118px;left:81px;color:#ffdfd7;font-size:38px}.mailbox-flag{position:absolute;width:17px;height:65px;background:#42604c;right:-20px;top:61px;transform:rotate(-14deg)}.mailbox-post{position:absolute;bottom:19px;left:51px;font:12px Arial;letter-spacing:.18em;color:#f8dfd8}.letter-form-card{position:relative;background:#fff9ed;box-shadow:10px 15px 0 #e6d5bf;padding:43px 40px;border:1px solid #dfd2c5;transform:rotate(1deg)}.letter-form-card h3{font-size:28px;color:var(--red);font-weight:normal}.letter-form-card label{display:block;color:var(--deep);font-size:14px;margin-top:22px;margin-bottom:9px}.letter-form-card input,.letter-form-card textarea{width:100%;border:1px solid #d9c9b9;border-radius:3px;padding:13px;background:#fffcf5;color:var(--ink);outline-color:#ad6970;resize:vertical}.letter-form-card button{margin-top:23px;max-width:100%;white-space:normal}.stamp-sticker{position:absolute;right:-20px;top:-22px;width:87px;height:100px;background:#a8bcc9;color:white;transform:rotate(12deg);display:grid;place-items:center;text-align:center;font:13px/1.35 Arial;letter-spacing:.1em;clip-path:polygon(0 0,10% 3%,20% 0,30% 3%,40% 0,50% 3%,60% 0,70% 3%,80% 0,90% 3%,100% 0,97% 10%,100% 20%,97% 30%,100% 40%,97% 50%,100% 60%,97% 70%,100% 80%,97% 90%,100% 100%,90% 97%,80% 100%,70% 97%,60% 100%,50% 97%,40% 100%,30% 97%,20% 100%,10% 97%,0 100%)}.form-feedback{color:var(--green);font-size:13px}.local-letter-preview{font-size:12px;color:var(--muted)}.final-section{background:#e7e0d5;text-align:center;min-height:670px;display:flex;justify-content:center;align-items:center;flex-direction:column;position:relative;overflow:hidden}.final-section h2{font-size:clamp(35px,4.3vw,69px);line-height:1.6;margin:34px 0}.final-section>p{color:var(--red);font-size:20px}.final-date{font:14px Arial;letter-spacing:.3em;color:var(--deep)}.final-flower{position:absolute;font-size:160px;color:#b85162;opacity:.18}.final-flower.one{left:5%;top:12%}.final-flower.two{right:5%;bottom:9%;color:#738770}.countdown{font:13px Arial;letter-spacing:.15em;color:var(--muted);margin-top:24px}.back-top{font-size:13px;color:var(--red);margin-top:55px;border-bottom:1px solid var(--red);padding-bottom:5px}footer{display:flex;justify-content:space-between;gap:15px;padding:24px 7%;background:var(--deep);color:#f0e6df;font:10px Arial;letter-spacing:.14em}.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:translateY(0)}
@media(max-width:1000px){.desktop-nav{gap:13px;font-size:12px}.hero-left{padding-left:7%}.huge-title{font-size:clamp(55px,7vw,95px)}.hero{min-height:700px}.ticket-layout{gap:4%}.journey-list{padding:25px}}
@media(max-width:700px){.site-header{height:64px;padding:0 20px}.brand{font-size:16px}.brand small{font-size:7px}.desktop-nav{display:none}.menu-button{display:block}.mobile-nav{display:none;position:fixed;z-index:89;top:64px;left:0;right:0;background:#f6f1e8f5;box-shadow:0 12px 20px #51412e22;padding:15px 25px}.mobile-nav.open{display:flex;flex-direction:column;gap:0}.mobile-nav a{padding:13px 8px;border-bottom:1px solid var(--line);font-size:14px}.hero{margin-top:64px;height:auto;min-height:0;display:flex;flex-direction:column}.hero-left{padding:72px 24px 45px;min-height:640px}.huge-title{font-size:clamp(54px,11.5vw,80px);margin-top:37px}.script{font-size:37px;margin-top:16px}.script span{margin-left:68px}.hero-bottom{margin-top:36px;font-size:13px}.hero-meta{gap:14px;margin-top:32px;font-size:14px}.scroll-prompt{margin-top:40px}.hero-right{height:470px;flex:none}.poster-frame{height:75%;width:65%;top:8%;right:10%}.apple-illustration{width:49%;left:0;bottom:2%}.sun-doodle{font-size:36px}.hero-index{bottom:10px}.section-space{padding:70px 24px}.section-head{margin-bottom:50px}.story-grid,.ticket-layout,.letters-layout{grid-template-columns:1fr;gap:30px}.story-intro{padding-left:20px}.scrapbook{height:390px}.photo-card{height:70%}.accent-script{font-size:30px;margin-top:30px}.chapter-divider{margin-top:60px;gap:10px;font-size:8px}.ticket-card{margin:40px 3px 30px;min-height:270px;padding:25px 22px}.ticket-middle strong{font-size:22px}.ticket-middle{gap:4px}.ticket-people{font-size:17px}.ticket-top,.ticket-bottom{font-size:9px}.journey-tabs{grid-template-columns:repeat(2,1fr);gap:9px;margin-top:36px}.journey-tabs button{font-size:13px;padding:14px 7px}.journey-board{grid-template-columns:1fr}.route-deco{height:120px}.route-apple{width:80px;height:80px;clip-path:none;border-radius:42% 42% 48% 48%;font-size:38px}.route-deco>span{font-size:8px}.journey-list{padding:26px 18px}.journey-item{grid-template-columns:59px 20px 1fr;gap:10px}.journey-time{font-size:12px}.journey-content strong{font-size:15px}.venue-header{display:block}.venue-gallery{grid-template-columns:1fr}.venue-aside{grid-template-columns:1fr 1fr;grid-template-rows:1fr;gap:12px}.venue-aside img{aspect-ratio:1}.venue-gallery figcaption{font-size:9px}.letters-copy{padding-bottom:20px}.mailbox{margin-top:50px}.letter-form-card{padding:34px 24px}.stamp-sticker{right:-7px;top:-29px}.final-section{min-height:600px}.final-flower{font-size:95px}footer{flex-direction:column;align-items:center;text-align:center;gap:9px}.intro-inner h1{font-size:30px}.orbit-one{width:470px;height:470px}.orbit-two{width:650px;height:650px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
/* LOVE EXPRESS · illustrated editable railway */
.rail-section{padding:100px clamp(18px,5vw,92px);background:#f6eee0;color:#573d3b;position:relative;overflow:hidden}.rail-section:before{content:'✽';position:absolute;right:-20px;top:15px;font-size:230px;color:#d8d5b0;opacity:.16;pointer-events:none}.rail-heading{text-align:center;max-width:920px;margin:0 auto 32px}.rail-heading h2{font-size:clamp(36px,5.5vw,78px);line-height:1.25;color:#74333d;margin:15px 0}.rail-heading h2 i{font-weight:400}.rail-heading p{line-height:1.9;color:#826c62}.rail-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:27px}.rail-toolbar .pill{font-size:13px;padding:13px 20px}.rail-toolbar .subtle,.rail-editor-actions .subtle,.rail-editor-top .subtle,.rail-detail .subtle{background:#fff7ed;color:#783945;border:1px solid #bda69b}.rail-toolbar #railState{font-size:12px;color:#8f7b6d;margin-left:10px}.rail-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(285px,.85fr);gap:18px;align-items:stretch;max-width:1560px;margin:auto}.rail-world{border:2px solid #b9a391;border-radius:25px;box-shadow:8px 9px 0 #e7d9c9;background:#f1e7d7;overflow:hidden;position:relative;min-height:480px}.rail-world-head{padding:22px 27px 0;display:flex;justify-content:space-between;gap:12px;align-items:baseline}.rail-world-head strong{font-family:serif;font-size:22px;color:#773c45}.rail-world-head small{font-size:10px;letter-spacing:.11em;color:#9b7c75}.rail-world svg{width:100%;display:block;max-height:550px}.rail-legend{text-align:center;color:#886e61;font-size:12px;padding:10px 12px 23px}.rail-marker{cursor:pointer;outline:none}.rail-marker:hover circle,.rail-marker:focus circle{stroke-width:6}.rail-train{pointer-events:none;filter:drop-shadow(2px 5px 3px #70594a77)}.rail-detail{border:1px solid #d5b8a8;border-radius:23px;background:#fffbf3;padding:28px 28px 22px;box-shadow:0 15px 35px #704e4220;max-height:630px;overflow:auto;scrollbar-width:thin;position:relative}.rail-detail:before{content:'';height:9px;position:absolute;top:0;left:26px;right:26px;border-radius:0 0 8px 8px;background:#a8535d}.rail-detail.theme-ticket:before{background:#d28b71}.rail-detail.theme-letter:before{background:#9b8e6a}.rail-detail.theme-photo:before{background:#7a9c89}.rail-detail.theme-curtain:before{background:#926584}.rail-card-art{height:85px;margin:10px 0 16px;border:1px dashed #d3bdb1;border-radius:13px;background:linear-gradient(125deg,#f6ebe1,#e2e9d5);font-size:39px;display:flex;align-items:center;justify-content:space-evenly}.rail-card-art small{font-size:12px;letter-spacing:.12em;color:#896b64}.rail-card-time{letter-spacing:.08em;font-size:13px;font-weight:bold;color:#a04c55}.rail-detail h3{font-size:30px;margin:8px 0 10px;color:#6d343c}.rail-card-desc{line-height:1.75;color:#765b55}.rail-detail h4{margin:21px 0 7px;color:#824a4e;font-size:14px}.rail-detail ul{padding-left:20px;margin:8px 0;color:#635851;line-height:1.75;font-size:13px}.rail-detail li{margin-bottom:7px}.rail-field{font-size:12px;padding:7px 0;border-bottom:1px solid #eee0d2}.rail-hint{background:#f4e3dd;border-radius:9px;padding:12px;margin-top:18px;color:#8f4750;font-size:13px}.rail-detail #railEditThis{margin-top:15px}.rail-shelf{max-width:1560px;margin:25px auto 0}.rail-shelf-head{display:flex;align-items:baseline;gap:20px;margin-bottom:14px;color:#82434b}.rail-stations{display:flex;gap:10px;overflow-x:auto;padding:3px 0 17px;scrollbar-width:thin}.rail-stop{background:#fff9ed;border:1px solid #d9c5b7;border-radius:12px;min-width:132px;max-width:165px;padding:13px;text-align:left;cursor:pointer;color:#67474b;transition:transform .2s}.rail-stop:hover{transform:translateY(-4px)}.rail-stop.current{background:#873d4b;color:#fff;border-color:#873d4b}.rail-stop span{font-size:11px;display:block;margin-bottom:9px;white-space:nowrap}.rail-stop strong{font-size:13px;display:block}.rail-source{font-size:12px;color:#968174;max-width:1560px;margin:13px auto 0;line-height:1.8}.rail-modal[hidden]{display:none!important}.rail-modal{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:20px}.rail-modal-mask{position:absolute;inset:0;background:#241b1bd9;backdrop-filter:blur(6px)}.rail-modal-card{position:relative;z-index:1;max-width:850px;width:100%;max-height:90vh;overflow:auto;background:#fff9ef;color:#634743;border:2px solid #b9a095;box-shadow:14px 14px 0 #3e2b2a;border-radius:20px;padding:clamp(20px,4vw,38px)}.rail-close{position:absolute;right:20px;top:15px;border:0;background:transparent;font-size:34px;cursor:pointer;color:#9f4952}.rail-modal h2{font-size:32px;color:#7b3643;margin:16px 0}.rail-modal label{display:flex;flex-direction:column;gap:7px;font-size:13px;color:#795750;font-weight:bold;margin-bottom:13px}.rail-modal input:not([type=checkbox]),.rail-modal textarea,.rail-modal select{width:100%;border:1px solid #d4bcae;background:#fffef8;border-radius:9px;padding:12px;color:#52433e;font:inherit;min-width:0}.rail-modal textarea{resize:vertical}.rail-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 15px}.rail-editor-top,.rail-editor-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:17px}.rail-editor-top select{flex:1}.rail-editor-actions{margin-top:15px}.rail-modal .inline-check{display:flex;flex-direction:row;align-items:center}.rail-modal .inline-check input{width:auto}.rail-admin-hint,#railEditorMsg{font-size:12px;color:#8d695f;line-height:1.6}.rail-modal .pill{padding:12px 20px;font-size:13px}
@media(max-width:980px){.rail-layout{grid-template-columns:1fr}.rail-world{min-height:0}.rail-detail{max-height:none}.rail-world-head{padding:17px 19px 0}}@media(max-width:600px){.rail-section{padding:70px 14px}.rail-heading h2{font-size:39px}.rail-toolbar{gap:7px}.rail-toolbar .pill{padding:10px 12px;font-size:12px}.rail-toolbar #railState{width:100%;margin:6px 0}.rail-world svg{height:325px}.rail-world-head strong{font-size:17px}.rail-world-head small{font-size:8px}.rail-legend{font-size:10px}.rail-detail{padding:22px}.rail-card-art{height:70px}.rail-form-grid{grid-template-columns:1fr}.rail-modal{padding:9px}.rail-modal-card{max-height:95vh;padding:20px 15px}.rail-stations{scroll-snap-type:x mandatory}.rail-stop{scroll-snap-align:start}}
@media(prefers-reduced-motion:reduce){.rail-stop{transition:none}}

/* V2.1 immersive B+C railway */
.rail-section{padding:85px clamp(12px,2.2vw,40px) 75px;overflow:visible}
.rail-heading{max-width:1100px}.rail-heading h2{font-size:clamp(36px,4.8vw,66px)}
.rail-scene-tabs{max-width:1800px;margin:0 auto 14px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.rail-scene-tab{padding:13px 11px;border-radius:16px;border:1px solid #d3b8a9;background:#fff8ee;color:#774a4b;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:6px;transition:background .2s,transform .2s}
.rail-scene-tab:hover{transform:translateY(-2px)}.rail-scene-tab.active{background:#893f4c;color:#fff;border-color:#893f4c}
.rail-scene-tab span{font-size:clamp(12px,1.1vw,17px);font-weight:700}.rail-scene-tab small{font-size:11px;opacity:.8}
.rail-layout{position:relative;max-width:1800px;display:grid;grid-template-columns:minmax(0,1fr) clamp(340px,27vw,470px);gap:14px;min-height:clamp(590px,82vh,900px);align-items:stretch;transition:grid-template-columns .3s ease}
.rail-layout.detail-collapsed{grid-template-columns:minmax(0,1fr) 0px;gap:0}
.rail-world{min-height:clamp(590px,82vh,900px);height:100%;display:flex;flex-direction:column;border-radius:22px;box-shadow:3px 5px 0 #e7d9c9;min-width:0}
.rail-world-head{position:absolute;z-index:1;left:0;right:0;padding:22px 26px;pointer-events:none;background:linear-gradient(#fff6e7ba,transparent)}
.rail-world-head strong{font-size:clamp(23px,2.3vw,37px)}.rail-world-head small{font-size:11px}
.rail-world svg{height:100%;max-height:none;flex:1;min-height:0;width:100%;object-fit:fill}
.rail-legend{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;padding:13px 23px 17px;font-size:12px;background:#f4ead8}
.rail-detail{max-height:none;height:100%;padding:29px 26px 25px;min-width:0;transition:opacity .25s,visibility .25s}
.rail-layout.detail-collapsed .rail-detail{opacity:0;visibility:hidden;pointer-events:none;overflow:hidden;padding:0;border:0}
.rail-detail-toggle{position:absolute;right:calc(clamp(340px,27vw,470px) + 24px);z-index:5;top:18px;border:1px solid #ba9d90;border-radius:30px;padding:10px 15px;background:#fff8ef;color:#7f3f4b;font-size:13px;cursor:pointer;box-shadow:0 3px 13px #6c504626;transition:right .3s}
.rail-layout.detail-collapsed .rail-detail-toggle{right:17px}
.rail-train{filter:drop-shadow(3px 9px 4px #70594a66)}.rail-marker{cursor:pointer}.rail-marker:hover{filter:drop-shadow(0 0 8px #ae6b77)}
.rail-shelf{max-width:1800px}
@media(min-width:1350px){.rail-section{padding-left:22px;padding-right:22px}}
@media(max-width:980px){.rail-layout,.rail-layout.detail-collapsed{grid-template-columns:minmax(0,1fr);gap:12px}.rail-world{min-height:67vh;height:67vh}.rail-layout{min-height:0}.rail-detail{height:auto;max-height:520px;overflow:auto}.rail-layout.detail-collapsed .rail-detail{display:none}.rail-detail-toggle,.rail-layout.detail-collapsed .rail-detail-toggle{right:14px;top:13px}.rail-scene-tabs{display:flex;overflow-x:auto;padding-bottom:5px;scroll-snap-type:x mandatory}.rail-scene-tab{min-width:146px;scroll-snap-align:start}.rail-world-head{padding:18px}.rail-world-head small{display:none}}
@media(max-width:600px){.rail-section{padding:55px 10px}.rail-world{height:60vh;min-height:410px}.rail-world svg{height:100%}.rail-legend{font-size:10px;padding:9px 12px}.rail-world-head strong{font-size:23px}.rail-detail-toggle{font-size:11px;padding:7px 9px}.rail-scene-tab{min-width:138px}.rail-detail{max-height:none}}
@media(prefers-reduced-motion:reduce){.rail-layout,.rail-detail,.rail-detail-toggle,.rail-scene-tab{transition:none}}
