:root{--ink:#18202a;--muted:#697380;--line:rgba(22,31,42,.1);--purple:#6f66a0;--purple-soft:#eeebf7;--glass:rgba(255,255,255,.76);--shadow:0 18px 60px rgba(45,56,72,.10);font-family:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;color:var(--ink);background:#f4f6f8;scroll-behavior:smooth}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{overflow-x:hidden;background:linear-gradient(145deg,#fafafa,#f0f3f6 52%,#f7f4f7)}button,input,select{font:inherit}button{color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.glass{background:var(--glass);border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow);backdrop-filter:blur(24px) saturate(130%);-webkit-backdrop-filter:blur(24px) saturate(130%)}[hidden]{display:none!important}.ambient{position:fixed;z-index:-1;border-radius:50%;pointer-events:none}.ambient-one{width:420px;height:420px;right:-180px;top:-170px;background:radial-gradient(circle,#ddd8ed,transparent 68%)}.ambient-two{width:480px;height:480px;left:-250px;top:52vh;background:radial-gradient(circle,#dce9ee,transparent 70%)}
.side-index{position:fixed;z-index:600;left:18px;top:18px;bottom:18px;width:190px;border-radius:28px;padding:28px 18px 20px;display:flex;flex-direction:column}.side-brand{padding:0 12px 28px}.side-brand span{display:block;color:var(--purple);font-size:11px;letter-spacing:.15em;margin-bottom:7px}.side-brand strong{font-size:21px;line-height:1.25}.side-index nav{display:grid;gap:7px}.side-index nav button{position:relative;width:100%;height:52px;border:0;border-radius:16px;background:transparent;display:grid;grid-template-columns:24px 1fr;align-items:center;gap:11px;padding:0 13px;text-align:left;color:#737c86;transition:.2s}.side-index nav button:hover{background:#ffffff80}.side-index nav button.active{background:#6f66a0;color:#fff;box-shadow:0 12px 25px #6f66a02d}.side-index nav button>i{position:absolute;left:-20px;width:6px;height:6px;border-radius:50%;background:#c7cbd0;transition:.2s}.side-index nav button.active>i{height:20px;border-radius:5px;background:#6f66a0}.side-index nav svg{width:22px;height:22px}.side-index nav span{font-size:14px;font-weight:500}.side-date{margin-top:auto;padding:16px 12px 4px;border-top:1px solid var(--line)}.side-date b{display:block;color:var(--purple);font-size:14px}.side-date span{display:block;color:#969ca4;font-size:10px;margin-top:4px}
.site-content{margin-left:226px;width:min(calc(100% - 252px),940px);padding:38px 22px 120px}.guide-page{display:none;animation:pageIn .45s ease}.guide-page.active{display:block}.page-intro{padding:18px 5px 28px}.page-intro p{color:var(--purple);font-size:12px;font-weight:600;letter-spacing:.08em;margin:0 0 7px}.page-intro h1{font-size:32px;line-height:1.25;margin:0}.page-intro span{display:block;color:#7c858f;font-size:13px;margin-top:8px}.event-card,.map-card{border-radius:28px;padding:26px}.event-card{margin-bottom:20px}.eyebrow{font-size:12px;color:var(--purple);font-weight:600;letter-spacing:.08em;margin:0}.event-date{display:flex;align-items:center;gap:15px;padding:14px 0 22px;border-bottom:1px solid var(--line)}.event-date strong{font-size:52px;line-height:1;font-weight:600;letter-spacing:-.05em}.event-date span{font-size:14px;line-height:1.55;color:var(--muted);font-weight:500}.event-card dl{display:grid;grid-template-columns:1fr 1fr;margin:0}.event-card dl>div{padding:18px 0;border-bottom:1px solid var(--line)}.event-card dl>div:nth-child(odd){padding-right:18px}.event-card dl>div:nth-child(even){padding-left:18px;border-left:1px solid var(--line)}.event-card dl .event-address{grid-column:1/-1;padding:18px 0;border-left:0}.event-card dt{font-size:12px;color:#8a929c;margin-bottom:7px}.event-card dd{margin:0;font-size:17px;line-height:1.5;font-weight:600}.event-address dd{font-size:16px}.event-actions{display:flex;gap:9px;flex-wrap:wrap;padding-top:18px}.event-actions button,.event-actions a{border:0;border-radius:13px;padding:11px 15px;font-size:13px;background:#f0f1f4}.event-actions a{background:var(--purple);color:white}.event-actions a:last-child{background:#e7e9ed;color:#3e4650}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.section-heading h2{font-size:24px;line-height:1.25;margin:5px 0 0}.section-heading>button{border:0;background:transparent;font-size:12px;color:#7a838e}.section-heading>p{font-size:12px;color:#89919b}.map-card{padding:18px}.map-wrap{height:410px;margin-top:16px;border-radius:20px;overflow:hidden;position:relative;background:#e9edf0}.map-wrap #guideMap{height:100%;filter:saturate(.7) contrast(.96)}.map-loading{position:absolute;inset:0;display:grid;place-items:center;background:#e9edf0;color:#747e88;font-size:13px;transition:.3s}.map-loading.hidden{opacity:0;pointer-events:none}.leaflet-control-attribution{font-size:8px!important}.leaflet-control-zoom{border:0!important;box-shadow:0 8px 22px #30384625!important}.leaflet-control-zoom a{border:0!important}.map-pin{width:34px;height:34px;border-radius:50% 50% 50% 12%;transform:rotate(-45deg);display:grid;place-items:center;background:#fff;border:1px solid #fff;box-shadow:0 8px 20px #3441524a}.map-pin i{width:10px;height:10px;border-radius:50%;background:#6f66a0}.map-pin.venue i{background:#d17f9d}.map-legend{display:flex;align-items:center;gap:16px;padding:13px 3px 1px;color:#69737d;font-size:11px}.map-legend span{display:flex;align-items:center;gap:6px}.map-legend i{width:8px;height:8px;border-radius:50%}.venue-dot{background:#d17f9d}.station-dot{background:#6f66a0}.map-legend small{margin-left:auto;color:#a0a6ad}
.route-planner{padding:0}.route-controls{border-radius:26px;padding:22px}.route-controls label,.route-controls legend{display:flex;align-items:center;gap:10px;font-size:16px}.route-controls label span,.route-controls legend span{font-size:11px;background:var(--purple-soft);color:var(--purple);padding:5px 8px;border-radius:999px}.route-controls select{width:100%;margin:14px 0 23px;border:1px solid var(--line);background:#ffffffb5;border-radius:15px;padding:14px 15px;font-size:16px;color:#303945;outline:0}.route-controls select:focus{border-color:#8b82b4;box-shadow:0 0 0 3px #766ca81a}.route-controls fieldset{border:0;border-top:1px solid var(--line);padding:21px 0 0;margin:0}.route-controls legend{padding:0 12px 0 0}.route-controls fieldset:disabled{opacity:.42}.route-controls fieldset>button{width:calc(25% - 7px);border:1px solid var(--line);background:#ffffff9c;border-radius:16px;padding:13px 5px;margin:15px 5px 0 0;font-size:12px}.route-controls fieldset>button:last-child{margin-right:0}.route-controls fieldset>button svg{display:block;width:25px;height:25px;margin:0 auto 7px}.route-controls fieldset>button.active{background:#6f66a0;color:white;border-color:#6f66a0}.route-result{border-radius:26px;margin-top:14px;padding:22px;min-height:180px}.route-empty{min-height:136px;display:grid;place-items:center;text-align:center;color:#9299a2}.route-empty svg{width:32px;height:32px}.route-empty p{font-size:13px;line-height:1.7;margin:8px 0}.route-result-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;padding-bottom:18px;border-bottom:1px solid var(--line)}.route-result-head small{color:#8a929b;font-size:11px}.route-result-head h3{font-size:20px;margin:4px 0 0}.route-result-head>strong{font-size:22px;white-space:nowrap}.route-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:16px 0 8px}.route-metrics>span{background:#f3f4f6;border-radius:12px;padding:10px 8px;min-width:0}.route-metrics small{display:block;color:#9299a2;font-size:10px;margin-bottom:4px}.route-metrics b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.journey-timeline{list-style:none;margin:24px 0 8px;padding:0}.journey-leg{--segment:#cbd0d6;position:relative;display:grid;grid-template-columns:46px 1fr;gap:13px;padding-bottom:25px}.journey-leg:not(:last-child):before{content:"";position:absolute;left:21px;top:38px;bottom:-2px;width:4px;border-radius:4px;background:var(--segment)}.journey-leg.walk:before,.journey-leg.transfer:before{width:3px;background:repeating-linear-gradient(to bottom,#cbd0d6 0 5px,transparent 5px 11px)}.journey-marker{width:44px;height:44px;border:3px solid var(--segment);border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--segment);font-size:12px;font-weight:700;z-index:1}.journey-marker svg{width:22px;height:22px}.journey-leg.start .journey-marker{background:#37b77c;border-color:#37b77c;color:#fff}.journey-leg.end .journey-marker{background:#e96380;border-color:#e96380;color:#fff}.journey-leg.walk .journey-marker,.journey-leg.transfer .journey-marker{border-color:#d8dce1;color:#68737e}.journey-content{min-width:0;padding-top:1px}.journey-content>strong{display:block;font-size:17px;line-height:1.45;margin:7px 0 4px}.journey-content>b{display:block;font-size:12px;color:var(--segment);margin:1px 0 5px}.journey-content>p{font-size:12px;line-height:1.65;color:#747e88;margin:0}.line-badge{display:inline-flex;color:#fff;border-radius:7px;padding:5px 9px;font-size:12px;font-weight:600;vertical-align:middle}.direction{display:inline-block;font-size:11px;color:#717b85;margin-left:8px}.station-list{display:flex;align-items:center;flex-wrap:wrap;margin-top:12px;padding:11px 12px;background:#f5f6f7;border-radius:12px;gap:5px}.station-list span{display:flex;align-items:center;font-size:11px;color:#606b75}.station-list i{width:14px;height:2px;background:var(--segment);margin-left:5px}.journey-leg.rail .journey-content,.journey-leg.bus .journey-content,.journey-leg.drive .journey-content{padding:13px 14px;background:#ffffffb8;border:1px solid var(--line);border-radius:16px}.journey-leg.rail .journey-content>strong,.journey-leg.bus .journey-content>strong,.journey-leg.drive .journey-content>strong{margin-top:11px}.route-links{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding-top:5px}.route-links a{border-radius:14px;padding:12px;text-align:center;font-size:13px;background:#6f66a0;color:white}.route-links a:last-child{background:#e7e9ed;color:#3e4650}.route-notice{font-size:11px;color:#959ba2;margin:13px 0 0;line-height:1.6}
.parking-section{padding-top:50px}.parking-scroll{display:grid;grid-auto-flow:column;grid-auto-columns:min(70vw,330px);gap:14px;overflow:auto;scroll-snap-type:x mandatory;padding:20px 2px 14px;scrollbar-width:none}.parking-scroll::-webkit-scrollbar{display:none}.parking-card{margin:0;border-radius:22px;overflow:hidden;position:relative;scroll-snap-align:start}.parking-card>span{position:absolute;top:12px;right:12px;background:#ffffffe3;border-radius:999px;padding:6px 9px;font-size:11px}.parking-card img{width:100%;aspect-ratio:4/3;object-fit:cover}.parking-card figcaption{padding:16px 18px;font-size:14px;font-weight:600}.parking-note{border-radius:17px;padding:14px 16px;margin:0;font-size:12px;color:#66717b;box-shadow:0 10px 30px #39465712}.empty-page{min-height:calc(100vh - 80px);place-items:center}.empty-page.active{display:grid}.empty-card{width:min(100%,620px);min-height:390px;border-radius:30px;padding:44px;display:flex;flex-direction:column;justify-content:center}.empty-card>span{font-size:72px;font-weight:600;color:#eceaf4}.empty-card p{color:var(--purple);font-size:13px;margin:14px 0 5px}.empty-card h1{font-size:32px;margin:0}.empty-card small{font-size:13px;color:#8a929c;margin-top:12px}
.bottom-dock{position:fixed;z-index:600;bottom:max(18px,env(safe-area-inset-bottom));left:calc(226px + min(calc(100% - 252px),940px)/2);transform:translateX(-50%);width:min(calc(100% - 285px),620px);display:grid;grid-template-columns:1fr 52px;gap:8px;padding:8px;border-radius:24px}.bottom-dock button{border:0;height:50px;border-radius:17px}.bottom-dock button:first-child{display:flex;align-items:center;gap:10px;padding:0 16px;background:#6f66a0;color:white;text-align:left;font-size:14px}.bottom-dock button:last-child{background:#ffffffa3}.bottom-dock svg{width:22px;height:22px}.scrim{position:fixed;z-index:800;inset:0;background:#22293452;backdrop-filter:blur(5px);opacity:0;pointer-events:none;transition:.3s}.scrim.open{opacity:1;pointer-events:auto}.assistant-panel{position:fixed;z-index:950;inset:0;background:linear-gradient(145deg,#f8f9fa,#eef1f4);transform:translateY(105%);transition:.4s;display:flex;flex-direction:column}.assistant-panel.open{transform:none}.assistant-head{margin:12px auto 0;width:min(calc(100% - 24px),700px);display:grid;grid-template-columns:44px 1fr 44px;align-items:center;text-align:center;border-radius:20px;padding:9px}.assistant-head button{border:0;background:transparent}.assistant-head button>svg{width:22px}.assistant-head h2{font-size:18px;margin:0}.assistant-head small{font-size:10px;color:#858d97}.messages{width:min(calc(100% - 30px),680px);margin:auto;padding:25px 0 165px;overflow:auto;display:flex;flex:1;flex-direction:column;gap:12px}.message{max-width:88%;padding:13px 15px;border-radius:18px;font-size:14px;line-height:1.7;white-space:pre-wrap}.message.bot{align-self:flex-start;background:#ffffffc9;border:1px solid white;box-shadow:0 10px 30px #4b586617}.message.user{align-self:flex-end;background:#6f66a0;color:white;border-bottom-right-radius:5px}.message.typing{color:#8b929a}.assistant-route{align-self:stretch}.assistant-route .route-result{margin:0;background:#ffffffc9;border:1px solid white}.quick-questions{position:absolute;left:50%;bottom:86px;transform:translateX(-50%);width:min(calc(100% - 30px),680px);display:flex;gap:7px;overflow:auto;scrollbar-width:none}.quick-questions button{white-space:nowrap;border:1px solid var(--line);background:#ffffffd9;border-radius:999px;padding:8px 11px;font-size:11px}.ask-form{position:absolute;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100% - 24px),700px);display:grid;grid-template-columns:1fr 50px;gap:7px;padding:8px;border-radius:22px}.ask-form input{min-width:0;border:0;background:transparent;padding:0 10px;outline:0;font-size:14px}.ask-form button{border:0;border-radius:16px;background:#6f66a0;color:white}.bottom-sheet{position:fixed;z-index:960;left:50%;bottom:0;width:min(100%,700px);max-height:75vh;overflow:auto;padding:12px 20px max(25px,env(safe-area-inset-bottom));background:#fffffff0;border-radius:28px 28px 0 0;transform:translate(-50%,105%);transition:.35s}.bottom-sheet.open{transform:translate(-50%,0)}.sheet-handle{width:38px;height:4px;border-radius:5px;background:#d3d6da;margin:0 auto 17px}.panel-head{display:flex;align-items:center;justify-content:space-between}.panel-head h2{font-size:22px}.panel-head button{width:40px;height:40px;border:0;border-radius:50%;background:#f0eef7}.history-actions{display:flex;align-items:center;justify-content:space-between;color:#8d949d;font-size:11px}.history-actions button{border:0;background:transparent;color:#7169a0}.history-list{display:grid;gap:9px;margin-top:12px}.history-item{border:1px solid var(--line);background:#fff;border-radius:15px;padding:13px;text-align:left}.history-item strong{font-size:13px}.history-item p{font-size:11px;color:#888f98;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:5px 0 0}.history-empty{text-align:center;color:#9298a0;padding:40px 0}#toast{position:fixed;z-index:1000;top:22px;left:50%;transform:translate(-50%,-15px);opacity:0;background:#303744;color:white;border-radius:999px;padding:10px 15px;font-size:12px;transition:.25s}#toast.show{opacity:1;transform:translate(-50%,0)}.reveal{opacity:0;transform:translateY(16px);transition:opacity .65s,transform .65s}.reveal.visible{opacity:1;transform:none}@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:720px){.side-index{left:8px;top:8px;bottom:8px;width:78px;border-radius:22px;padding:17px 8px}.side-brand{padding:0 5px 18px;text-align:center}.side-brand span{font-size:9px}.side-brand strong{font-size:13px}.side-index nav button{height:58px;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:0;text-align:center}.side-index nav button>i{left:-10px}.side-index nav svg{width:21px;height:21px}.side-index nav span{font-size:10px}.side-date{padding:12px 0 0;text-align:center}.side-date b{font-size:10px}.side-date span{font-size:8px}.site-content{margin-left:91px;width:calc(100% - 91px);padding:18px 10px 110px}.page-intro{padding:10px 3px 21px}.page-intro h1{font-size:25px}.event-card{padding:19px}.event-date strong{font-size:42px}.event-card dl{grid-template-columns:1fr}.event-card dl>div,.event-card dl>div:nth-child(odd),.event-card dl>div:nth-child(even){padding:14px 0;border-left:0}.event-card dl .event-address{grid-column:auto}.event-card dd{font-size:15px}.event-actions a,.event-actions button{padding:10px 11px}.map-card{padding:11px}.map-wrap{height:310px}.section-heading h2{font-size:21px}.route-controls{padding:17px}.route-controls fieldset>button{width:calc(50% - 5px);font-size:11px}.route-result{padding:16px}.route-result-head>strong{font-size:18px}.route-metrics{grid-template-columns:1fr 1fr}.journey-leg{grid-template-columns:40px 1fr;gap:9px}.journey-marker{width:38px;height:38px}.journey-leg:not(:last-child):before{left:18px;top:34px}.journey-content>strong{font-size:15px}.direction{display:block;margin:7px 0 0}.route-links{grid-template-columns:1fr}.parking-scroll{grid-auto-columns:78vw}.bottom-dock{left:calc(91px + (100% - 91px)/2);width:calc(100% - 111px);bottom:max(10px,env(safe-area-inset-bottom))}.bottom-dock button:first-child{font-size:12px}.empty-card{min-height:330px;padding:26px}.empty-card>span{font-size:56px}.empty-card h1{font-size:26px}.assistant-route .route-metrics{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.assistant-panel,.bottom-sheet{transition:none}}

/* 手账书视觉 */
:root{--ink:#30302c;--muted:#736f68;--line:rgba(96,82,63,.14);--purple:#766b91;--purple-soft:#eee8f2;--glass:rgba(255,252,245,.91);--shadow:0 12px 28px rgba(86,71,53,.10);background:#eee7da}
body{background-color:#eee7da;background-image:radial-gradient(circle at 92% 9%,rgba(185,174,207,.24),transparent 25%),radial-gradient(circle at 15% 88%,rgba(158,183,164,.18),transparent 28%),repeating-linear-gradient(0deg,transparent 0 31px,rgba(105,129,147,.075) 31px 32px);background-attachment:fixed}
.ambient{display:none}.glass{background:var(--glass);border:1px solid rgba(130,108,80,.16);box-shadow:var(--shadow);backdrop-filter:blur(12px) saturate(108%);-webkit-backdrop-filter:blur(12px) saturate(108%)}
.side-index{left:14px;top:50%;bottom:auto;width:96px;padding:10px 8px 9px;border-radius:23px;transform:translateY(-50%);box-shadow:5px 7px 0 rgba(126,108,85,.11),0 18px 45px rgba(55,48,39,.11)}
.side-index:before{content:"";position:absolute;left:21px;right:21px;top:-7px;height:15px;background:rgba(210,190,151,.62);transform:rotate(-2deg);border-radius:2px;box-shadow:0 2px 4px #66594112}
.side-index nav{gap:4px}.side-index nav button{height:52px;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:3px;border-radius:15px;text-align:center}.side-index nav button>i{left:-10px}.side-index nav button.active{background:#766b91;box-shadow:3px 4px 0 rgba(83,70,108,.16)}.side-index nav svg{width:20px;height:20px}.side-index nav span{font-size:10px;font-weight:600}.side-date{padding:9px 0 2px;text-align:center}.side-date b{font-size:10px}.side-date span{display:none}
.site-content{position:relative;margin-left:126px;width:min(calc(100% - 150px),940px);padding:30px 22px 120px}.site-content:before{content:"";position:fixed;z-index:-1;top:0;bottom:0;left:126px;width:1px;background:rgba(194,104,103,.18)}
.guide-page{position:relative}.guide-page[data-page="home"]{padding-top:42px}.page-intro{padding:16px 6px 27px}.page-intro p{font-family:"STKaiti","KaiTi",serif;font-size:16px;letter-spacing:.04em}.page-intro h1,.section-heading h2,.empty-card h1{font-family:"STKaiti","KaiTi",serif;font-weight:600}.page-intro h1{font-size:34px}
.event-card,.map-card,.route-controls,.route-result,.parking-card,.parking-note,.empty-card{position:relative;border-radius:8px 20px 10px 18px;box-shadow:5px 7px 0 rgba(126,108,85,.10),var(--shadow)}
.event-card:before,.map-card:before,.route-controls:before,.empty-card:before{content:"";position:absolute;z-index:2;top:-10px;left:50%;width:76px;height:20px;background:rgba(219,197,151,.58);border:1px solid rgba(144,121,81,.06);transform:translateX(-50%) rotate(-1.5deg);box-shadow:0 2px 5px rgba(76,65,48,.06)}
.map-card:before{left:16%;transform:translateX(-50%) rotate(2deg);background:rgba(176,195,183,.58)}.route-controls:before{left:auto;right:34px;transform:rotate(3deg);background:rgba(186,177,207,.58)}
.event-card{margin-bottom:24px}.event-date strong{font-family:Georgia,"Times New Roman",serif;color:#665b7e}.event-actions button,.event-actions a{border-radius:7px 12px 8px 11px}.map-wrap{border-radius:6px 15px 8px 13px;border:6px solid rgba(255,255,255,.82);box-shadow:0 4px 12px rgba(76,67,54,.09)}
.route-controls select,.route-metrics>span,.station-list{border-radius:6px 12px 7px 10px}.route-controls fieldset>button{border-radius:8px 15px 9px 13px}.journey-leg.rail .journey-content,.journey-leg.bus .journey-content,.journey-leg.drive .journey-content{border-radius:7px 15px 8px 12px}.route-links a{border-radius:7px 13px 8px 11px}
.journal-doodle{position:absolute;z-index:3;pointer-events:none;background-repeat:no-repeat;background-size:contain;background-position:center;filter:drop-shadow(0 6px 8px rgba(74,59,42,.12))}.doodle-camera{top:3px;right:5px;width:126px;height:84px;background-image:url('/guide/guide-camera-v2.webp');transform:rotate(3deg);opacity:.9}
.parking-card{overflow:hidden}.empty-page.active{display:grid}.empty-card{background-color:rgba(255,252,245,.9);background-image:linear-gradient(90deg,transparent 0 42px,rgba(194,104,103,.11) 42px 43px,transparent 43px),repeating-linear-gradient(0deg,transparent 0 31px,rgba(105,129,147,.07) 31px 32px)}
.bottom-dock{left:calc(126px + min(calc(100% - 150px),940px)/2);width:min(calc(100% - 178px),620px);border-radius:12px 22px 13px 19px;box-shadow:4px 6px 0 rgba(126,108,85,.11),var(--shadow)}.bottom-dock button{border-radius:8px 15px 9px 13px}

@media(max-width:720px){.side-index{left:5px;width:58px;padding:8px 5px;border-radius:18px}.side-index:before{left:13px;right:13px}.side-index nav button{height:49px;border-radius:12px}.side-index nav button>i{left:-6px}.side-index nav svg{width:18px;height:18px}.side-index nav span{font-size:8px}.side-date{padding-top:7px}.side-date b{font-size:8px;line-height:1.3}.site-content{margin-left:67px;width:calc(100% - 67px);padding:16px 9px 106px}.site-content:before{left:67px}.guide-page[data-page="home"]{padding-top:28px}.page-intro{padding:12px 3px 22px}.page-intro h1{font-size:27px}.page-intro span{font-size:12px}.event-card{padding:18px}.event-date strong{font-size:40px}.event-card dd{font-size:15px}.doodle-map{top:-3px;right:-3px;width:94px;height:63px}.doodle-camera{top:5px;right:-5px;width:82px;height:55px;opacity:.72}.doodle-flowers{top:365px;right:-8px;width:70px;height:47px;opacity:.55}.bottom-dock{left:calc(67px + (100% - 67px)/2);width:calc(100% - 80px)}.empty-card{padding:24px}}

.guide-page[data-page="home"]{padding-top:8px}.home-hero{position:relative;min-height:560px;overflow:hidden;border-radius:10px 28px 12px 24px;background-color:rgba(255,252,245,.94);background-image:radial-gradient(circle at 78% 28%,rgba(207,199,222,.25),transparent 28%),repeating-linear-gradient(0deg,transparent 0 31px,rgba(105,129,147,.055) 31px 32px);box-shadow:7px 9px 0 rgba(126,108,85,.11),var(--shadow)}.home-hero:before{content:"";position:absolute;z-index:4;top:-3px;left:46%;width:92px;height:25px;background:rgba(219,197,151,.62);transform:translateX(-50%) rotate(-2deg);box-shadow:0 2px 5px rgba(76,65,48,.07)}.hero-copy{position:relative;z-index:3;width:48%;padding:54px 0 0 48px;color:#35322f}.hero-copy>p{margin:0 0 7px;font-family:"STKaiti","KaiTi",serif;font-size:20px;font-weight:700;color:#665b7e;letter-spacing:.04em}.hero-copy>p i{font-family:Georgia,serif;font-weight:400}.hero-copy h1{margin:0;font-family:"STKaiti","KaiTi",serif;font-size:39px;line-height:1.15;font-weight:700;letter-spacing:.03em}.hero-time{display:flex;align-items:baseline;gap:13px;margin:23px 0 20px;padding:11px 0;border-top:1px solid rgba(96,82,63,.15);border-bottom:1px solid rgba(96,82,63,.15)}.hero-time strong{font-family:Georgia,"Times New Roman",serif;font-size:48px;line-height:1;color:#766b91}.hero-time span{font-size:22px;font-weight:700}.hero-copy h2{margin:0;font-family:"STKaiti","KaiTi",serif;font-size:24px;line-height:1.25}.hero-copy h2 small{font-size:16px}.hero-copy>b{display:inline-block;margin-top:12px;padding:7px 13px;background:#eee8f2;border-radius:4px 12px 5px 10px;font-size:16px}.home-hero>img{position:absolute;z-index:2;width:min(51%,470px);height:auto;right:-8px;bottom:-18px;filter:drop-shadow(0 12px 12px rgba(56,48,40,.13))}.home-actions{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;margin:22px 0;padding:18px 20px;border-radius:8px 18px 9px 15px}.home-actions small{display:block;color:#948b80;font-size:11px;margin-bottom:5px}.home-actions strong{font-size:14px;line-height:1.55}.home-actions .event-actions{padding:0;flex-wrap:nowrap}

@media(max-width:720px){.guide-page[data-page="home"]{padding-top:3px}.home-hero{min-height:520px;border-radius:8px 21px 9px 17px}.home-hero:before{left:52%;width:72px;height:20px}.hero-copy{width:82%;padding:34px 0 0 18px}.hero-copy>p{font-size:16px}.hero-copy h1{font-size:28px}.hero-time{width:78%;gap:10px;margin:15px 0 14px;padding:8px 0}.hero-time strong{font-size:40px}.hero-time span{font-size:18px}.hero-copy h2{font-size:20px}.hero-copy h2 small{font-size:14px}.hero-copy>b{margin-top:9px;font-size:14px}.home-hero>img{width:265px;max-width:none;right:-33px;bottom:-8px}.home-actions{display:block;margin:16px 0;padding:14px}.home-actions strong{display:block;font-size:12px}.home-actions .event-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px}.home-actions .event-actions button,.home-actions .event-actions a{padding:9px 5px;text-align:center;font-size:11px}.map-card{margin-top:0}}

/* 加长目录与圆形助手入口 */
.side-index{top:38px;bottom:86px;width:104px;transform:none;padding:18px 9px 12px}.side-index nav{display:flex;flex:1;flex-direction:column;justify-content:center;gap:10px}.side-index nav button{height:62px;gap:4px}.side-index nav svg{width:23px;height:23px}.side-index nav span{font-size:13px;font-weight:700}.side-date{margin-top:8px}.side-date b{font-size:12px}.site-content{margin-left:134px;width:min(calc(100% - 158px),940px)}.site-content:before{left:134px}.bottom-dock{left:14px;bottom:max(14px,env(safe-area-inset-bottom));width:104px;height:58px;transform:none;display:flex;justify-content:center;padding:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.bottom-dock button:first-child{width:58px;height:58px;padding:0;display:grid;place-items:center;border-radius:50%;box-shadow:4px 6px 0 rgba(92,78,114,.16),0 12px 28px rgba(55,48,39,.16)}.bottom-dock button:first-child span{display:none}.bottom-dock button:first-child svg{width:25px;height:25px}.bottom-dock button:last-child{display:none}

@media(max-width:720px){.side-index{left:5px;top:19px;bottom:76px;width:68px;padding:13px 6px 9px}.side-index nav{gap:7px}.side-index nav button{height:58px;gap:3px}.side-index nav svg{width:21px;height:21px}.side-index nav span{font-size:11px}.side-index nav button>i{left:-7px}.side-date{margin-top:4px;padding-top:9px}.side-date b{font-size:9px}.site-content{margin-left:80px;width:calc(100% - 80px);padding-left:8px;padding-right:8px}.site-content:before{left:80px}.bottom-dock{left:5px;bottom:max(8px,env(safe-area-inset-bottom));width:68px;height:56px}.bottom-dock button:first-child{width:54px;height:54px}.home-hero>img{width:250px;right:-34px}.hero-copy{padding-left:16px}.hero-copy h1{font-size:27px}.hero-time strong{font-size:38px}}

/* 目录装饰与纵向节奏 */
.side-index nav{justify-content:space-evenly;gap:0}.side-index nav:before{content:"";flex:0 0 auto;align-self:center;width:50px;height:34px;background-image:url('/guide/guide-bow-v2.webp');background-repeat:no-repeat;background-size:contain;background-position:center;filter:drop-shadow(0 3px 3px rgba(74,59,42,.11));transform:rotate(-5deg);opacity:.9}.side-index nav:after{content:"♡  ✦  ♡";flex:0 0 auto;align-self:center;color:#9a88a4;font-family:Georgia,serif;font-size:14px;letter-spacing:1px;white-space:nowrap}.side-index nav button{flex:0 0 auto}.side-index nav button.active:after{content:"";position:absolute;right:7px;top:7px;width:5px;height:5px;border-radius:50%;background:#f5d8df;box-shadow:0 0 0 2px rgba(255,255,255,.24)}

@media(max-width:720px){.side-index nav{justify-content:space-evenly;gap:0}.side-index nav:before{width:43px;height:29px}.side-index nav:after{font-size:12px;letter-spacing:0}.side-index nav button.active:after{right:5px;top:5px}}

/* 交通方式按钮稳定排列 */
.route-controls fieldset{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.route-controls fieldset>button{width:100%;min-width:0;margin:15px 0 0}.route-controls fieldset>button:last-child{margin-right:0}
@media(max-width:720px){.route-controls fieldset{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.route-controls fieldset>button{width:100%;margin:12px 0 0;padding:13px 4px}}

/* 统一卡片圆角与自定义出发地选择器 */
:root{--card-radius:20px;--inner-radius:13px}.home-hero,.home-actions,.map-card,.route-controls,.route-result,.parking-card,.parking-note,.empty-card,.assistant-route .route-result{border-radius:var(--card-radius)}.route-metrics>span,.station-list,.journey-leg.rail .journey-content,.journey-leg.bus .journey-content,.journey-leg.drive .journey-content,.history-item{border-radius:var(--inner-radius)}.map-wrap{border-radius:var(--inner-radius)}
.route-controls fieldset{border-top:0;padding-top:0}.route-controls fieldset>button{border-radius:var(--inner-radius)}.route-controls legend{width:100%}.origin-step{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.step-heading{display:flex;align-items:center;gap:10px;font-size:16px}.step-heading span{font-size:11px;background:var(--purple-soft);color:var(--purple);padding:5px 8px;border-radius:999px}.origin-picker-button{width:100%;min-height:54px;margin-top:13px;border:1px solid rgba(118,107,145,.24);background:#fffdf9;border-radius:var(--inner-radius);display:flex;align-items:center;justify-content:space-between;padding:0 15px;text-align:left;font-size:15px;font-weight:600;box-shadow:0 5px 14px rgba(74,62,49,.05)}.origin-picker-button svg{width:20px;height:20px;color:var(--purple)}.drive-choice{margin-top:20px;padding:15px;border-top:1px solid var(--line);display:flex;align-items:center;gap:12px;background:rgba(238,232,242,.62);border-radius:var(--inner-radius)}.drive-choice>svg{width:27px;height:27px;color:var(--purple);flex:0 0 auto}.drive-choice strong,.drive-choice small{display:block}.drive-choice strong{font-size:14px}.drive-choice small{font-size:11px;color:#7d7782;margin-top:4px;line-height:1.5}
.origin-sheet{border-radius:var(--card-radius) var(--card-radius) 0 0}.origin-sheet .panel-head>div small{display:block;color:var(--purple);font-size:11px;margin-bottom:3px}.origin-sheet .panel-head h2{margin:0}.origin-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:18px 0 6px}.origin-options>button{min-height:74px;border:1px solid var(--line);background:#fffdfa;border-radius:var(--card-radius);padding:13px;display:grid;grid-template-columns:30px 1fr;align-items:center;gap:10px;text-align:left;transition:.2s}.origin-options>button:hover,.origin-options>button.selected{border-color:#8f84ac;background:#f1edf5;box-shadow:0 7px 18px rgba(84,70,105,.10)}.origin-options svg{width:26px;height:26px;color:var(--purple)}.origin-options strong,.origin-options small{display:block}.origin-options strong{font-size:14px}.origin-options small{font-size:10px;color:#8a8580;margin-top:4px;line-height:1.4}
@media(max-width:720px){.origin-step{margin-top:18px;padding-top:17px}.origin-options{grid-template-columns:1fr}.origin-options>button{min-height:65px;border-radius:var(--inner-radius)}.origin-sheet{padding-left:16px;padding-right:16px}.drive-choice{padding:13px}.drive-choice small{font-size:10px}}

/* 道路出行使用独立卡片，不沿用轨道时间轴 */
.road-trip{--road-accent:#668e78;--road-soft:#edf4ef;--road-line:rgba(102,142,120,.38)}.road-trip.drive{--road-accent:#766b91;--road-soft:#f0edf5;--road-line:rgba(118,107,145,.38)}.road-trip-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:17px;border-bottom:1px solid var(--line)}.road-trip-head>span{display:flex;align-items:center;gap:9px;color:var(--road-accent)}.road-trip-head svg{width:27px;height:27px}.road-trip-head b{font-size:18px}.road-trip-head>strong{font-size:21px;white-space:nowrap}.road-points{margin:17px 0;padding:17px;background:var(--road-soft);border-radius:var(--inner-radius)}.road-point{display:grid;grid-template-columns:18px 1fr;gap:11px;align-items:start}.road-point>i{width:12px;height:12px;margin-top:5px;border:3px solid var(--road-accent);border-radius:50%;background:#fff}.road-point.end>i{background:var(--road-accent)}.road-point small,.road-point strong,.road-point em{display:block}.road-point small{font-size:10px;color:#8b8882}.road-point strong{font-size:16px;margin-top:2px}.road-point em{font-size:11px;color:#7e7b76;font-style:normal;margin-top:4px}.road-connector{height:34px;margin-left:5px;border-left:2px dashed var(--road-line);position:relative}.road-connector span{position:absolute;left:13px;top:9px;font-size:10px;color:var(--road-accent);background:var(--road-soft);padding:1px 5px}.road-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px}.road-facts>span{padding:12px 13px;background:#f5f3ef;border-radius:var(--inner-radius)}.road-facts small,.road-facts b{display:block}.road-facts small{font-size:10px;color:#98928a;margin-bottom:5px}.road-facts b{font-size:13px}.parking-callout,.taxi-callout{margin:14px 0;padding:13px 14px;border-radius:var(--inner-radius);background:var(--road-soft);color:#625f5a;font-size:11px;line-height:1.55}.parking-callout{display:flex;align-items:center;gap:10px}.parking-callout b{color:var(--road-accent);white-space:nowrap}.taxi-callout{border-left:4px solid var(--road-accent)}
@media(max-width:720px){.road-trip-head b{font-size:16px}.road-trip-head>strong{font-size:18px}.road-points{padding:14px}.road-point strong{font-size:14px}.road-facts>span{padding:11px}.parking-callout{align-items:flex-start}}

.drive-nav-card h3{font-size:20px;margin:0 0 5px}.drive-nav-card>p{font-size:12px;line-height:1.6;color:#77736d;margin:0 0 18px}.drive-nav-card .route-links{padding:0}.branded-map-links a{display:flex;align-items:center;justify-content:center;gap:9px;padding:9px 12px}.branded-map-links .map-logo{display:block;width:32px;height:32px;flex:0 0 32px;overflow:hidden;border-radius:8px;clip-path:inset(.75px round 8px)}.branded-map-links .map-logo img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.04)}.parking-section:not([hidden]){padding-top:20px}
@media(max-width:720px){.drive-nav-card h3{font-size:18px}.drive-nav-card .route-links{grid-template-columns:1fr 1fr}.drive-nav-card .route-links a{padding:12px 5px;font-size:12px}}

.parking-guide-card{margin-top:16px;padding:20px;border-radius:var(--card-radius)}.parking-guide-card>h2{font-family:"STKaiti","KaiTi",serif;font-size:22px;margin:0}.parking-guide-card .parking-scroll{padding:15px 0 12px}.parking-guide-card .parking-card{background:#f7f3eb;border:1px solid var(--line);border-radius:var(--inner-radius);box-shadow:none}.parking-guide-card .parking-note{padding:12px 13px;background:#f1edf5;border-radius:var(--inner-radius);box-shadow:none}.parking-section.parking-guide-card:not([hidden]){padding-top:20px}
@media(max-width:720px){.parking-guide-card{padding:15px}.parking-guide-card>h2{font-size:20px}.parking-guide-card .parking-scroll{grid-auto-columns:88%;gap:10px;padding-top:12px}}

/* 合照区：手账式自助拍照指引 */
.photo-page{padding-top:8px;padding-bottom:34px}.photo-intro{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:22px 8px 26px}.photo-intro p{margin:0 0 7px;color:#7a7092;font-family:Georgia,"Times New Roman",serif;font-size:12px;font-weight:700;letter-spacing:.12em}.photo-intro h1{margin:0;font-family:"STKaiti","KaiTi",serif;font-size:34px;line-height:1.25}.photo-intro>div>span{display:block;margin-top:8px;color:#857e76;font-size:13px}.photo-intro-mark{color:rgba(111,102,160,.12);font-family:Georgia,"Times New Roman",serif;font-size:74px;font-weight:700;line-height:.8}
.photo-hero{position:relative;min-height:390px;overflow:hidden;padding:52px 42% 38px 38px;border-radius:var(--card-radius);background-color:rgba(255,252,245,.94);background-image:radial-gradient(circle at 82% 28%,rgba(209,197,220,.28),transparent 30%),repeating-linear-gradient(0deg,transparent 0 31px,rgba(105,129,147,.055) 31px 32px)}.photo-hero:before{content:"";position:absolute;z-index:3;top:-5px;left:25%;width:84px;height:23px;background:rgba(219,197,151,.62);transform:rotate(-3deg);box-shadow:0 2px 5px rgba(76,65,48,.07)}.photo-hero-copy{position:relative;z-index:3}.torn-label{display:inline-block;padding:7px 11px;background:#e9e4f1;color:#675d80;font-size:11px;font-weight:700;transform:rotate(-1deg);clip-path:polygon(2% 5%,98% 0,100% 91%,95% 100%,4% 95%,0 12%)}.photo-hero h2{margin:18px 0 9px;font-family:"STKaiti","KaiTi",serif;font-size:31px}.photo-hero p{margin:0;color:#6f6a64;font-size:14px;line-height:1.8}.photo-badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:24px}.photo-badges span{padding:7px 10px;border:1px dashed rgba(111,102,160,.32);border-radius:999px;background:#fffaf0b8;color:#6c6481;font-size:10px;font-weight:700}.photobooth-sticker{position:absolute;z-index:2;right:0;bottom:-20px;width:min(42%,340px);height:auto;filter:drop-shadow(0 14px 14px rgba(66,51,37,.16));transform:rotate(1deg)}.photo-sparkle{position:absolute;z-index:4;color:#a492bc;font-style:normal}.sparkle-one{top:48px;right:35%;font-size:28px}.sparkle-two{right:30px;bottom:34px;font-size:22px}
.photobooth-title span,.photobooth-title b{display:block}.photobooth-title span{font-family:Georgia,"Times New Roman",serif;font-size:.78em;font-weight:600;letter-spacing:.03em}.photobooth-title b{margin-top:5px;font-family:"STKaiti","KaiTi",serif;font-size:1em;font-weight:700}
.photo-steps{display:grid;gap:18px;margin-top:22px}.photo-step{position:relative;display:grid;grid-template-columns:82px minmax(0,1fr);gap:22px;min-height:230px;overflow:hidden;padding:30px 34px;border-radius:var(--card-radius);background-color:rgba(255,252,245,.92);background-image:repeating-linear-gradient(0deg,transparent 0 31px,rgba(105,129,147,.052) 31px 32px)}.photo-step:before{content:"";position:absolute;top:-8px;right:12%;width:70px;height:20px;background:rgba(181,199,186,.58);transform:rotate(2deg)}.photo-step:nth-child(2):before{right:auto;left:18%;background:rgba(219,197,151,.58);transform:rotate(-2deg)}.photo-step:nth-child(3):before{background:rgba(194,181,210,.58)}.photo-step-no{position:relative;z-index:2;padding-top:3px;text-align:center;color:#776c91}.photo-step-no span{display:block;font-family:Georgia,"Times New Roman",serif;font-size:9px;letter-spacing:.12em}.photo-step-no strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:52px;font-weight:400;line-height:1}.photo-step-body{position:relative;z-index:2;padding-right:155px}.photo-step-body>p:first-child{margin:0;color:#918998;font-size:11px;font-weight:700;letter-spacing:.08em}.photo-step h2{margin:5px 0 16px;font-family:"STKaiti","KaiTi",serif;font-size:25px;line-height:1.25}.photo-step ol{margin:0;padding:0;list-style:none;counter-reset:photo-guide;display:grid;gap:9px}.photo-step li{position:relative;padding-left:28px;color:#665f59;font-size:13px;line-height:1.55;counter-increment:photo-guide}.photo-step li:before{content:counter(photo-guide);position:absolute;left:0;top:1px;width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:#ebe6f2;color:#6c6283;font-family:Georgia,serif;font-size:10px;font-weight:700}.doodle-countdown{position:absolute;right:28px;bottom:30px;display:flex;align-items:flex-end;gap:7px;transform:rotate(-4deg)}.doodle-countdown b{display:grid;place-items:center;width:43px;height:43px;border:2px solid #786e8e;border-radius:47% 53% 48% 52%;background:#fffaf0;color:#786e8e;font-family:Georgia,serif;font-size:21px}.doodle-countdown b:nth-child(2){width:34px;height:34px;opacity:.72}.doodle-countdown b:nth-child(3){width:27px;height:27px;opacity:.5}
.print-ticket{position:absolute;right:35px;bottom:30px;width:118px;height:126px;padding:12px;background:#f7f1e6;border:2px solid #e4dacb;box-shadow:5px 7px 0 rgba(130,111,85,.09);transform:rotate(4deg)}.print-ticket:before{content:"";position:absolute;top:-17px;left:17px;right:17px;height:23px;border-radius:5px 5px 0 0;background:#7d563e;box-shadow:inset 0 -5px 0 #523827}.print-ticket span{display:block;height:24px;margin:7px 0;border:1px solid #d7ced5;background:linear-gradient(135deg,#e2d9e8,#f8f3e9 45%,#dce7df)}
.photo-step-memory{min-height:260px}.photo-step-memory .photo-step-body{padding-right:220px}.memory-copy{max-width:500px;margin:0;color:#665f59;font-size:14px;line-height:1.75}.photo-strip-sticker{position:absolute;right:28px;bottom:-48px;width:190px;height:auto;filter:drop-shadow(0 10px 9px rgba(78,61,43,.12));transform:rotate(5deg)}.photo-note{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:center;margin-top:18px;padding:17px 20px;border-radius:var(--card-radius)}.photo-note strong{white-space:nowrap;color:#6d6384;font-size:13px}.photo-note span{padding-left:13px;border-left:1px dashed rgba(111,102,160,.26);color:#746d65;font-size:12px;line-height:1.6}
@media(max-width:720px){.photo-page{padding-top:0}.photo-intro{align-items:center;padding:8px 3px 20px}.photo-intro p{font-size:9px}.photo-intro h1{font-size:23px}.photo-intro>div>span{font-size:11px}.photo-intro-mark{font-size:50px}.photo-hero{min-height:445px;padding:31px 20px 210px}.photo-hero:before{left:16%;width:66px}.photo-hero h2{font-size:27px}.photo-hero p{font-size:12px;line-height:1.7}.photo-badges{margin-top:14px}.photo-badges span{padding:6px 8px;font-size:9px}.photobooth-sticker{right:50%;bottom:-32px;width:210px;transform:translateX(50%) rotate(1deg)}.sparkle-one{top:auto;right:18px;bottom:172px}.sparkle-two{right:23px;bottom:31px}.photo-steps{gap:14px;margin-top:15px}.photo-step{display:block;min-height:0;padding:22px 18px 25px}.photo-step-no{display:flex;align-items:baseline;gap:5px;text-align:left}.photo-step-no span{font-size:8px}.photo-step-no strong{font-size:34px}.photo-step-body,.photo-step-memory .photo-step-body{padding-right:0}.photo-step-body>p:first-child{margin-top:5px}.photo-step h2{font-size:20px;margin:4px 0 13px}.photo-step li{font-size:11px;padding-left:25px}.doodle-countdown{position:relative;right:auto;bottom:auto;justify-content:flex-end;margin-top:15px}.doodle-countdown b{width:34px;height:34px;font-size:17px}.doodle-countdown b:nth-child(2){width:29px;height:29px}.doodle-countdown b:nth-child(3){width:24px;height:24px}.print-ticket{position:relative;right:auto;bottom:auto;width:92px;height:91px;margin:26px 3px 0 auto;padding:9px}.print-ticket:before{top:-13px;height:18px}.print-ticket span{height:17px;margin:5px 0}.photo-step-memory{min-height:310px}.memory-copy{width:64%;font-size:12px;line-height:1.65}.photo-strip-sticker{right:-1px;bottom:-5px;width:135px}.photo-note{grid-template-columns:1fr;gap:7px;padding:15px}.photo-note span{padding:7px 0 0;border-left:0;border-top:1px dashed rgba(111,102,160,.26);font-size:11px}}

/* 天气篇：实时预报与手账贴纸 */
.weather-page{padding-top:8px;padding-bottom:34px}.weather-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;padding:22px 8px 26px}.weather-intro p{margin:0 0 7px;color:#7a7092;font:700 12px Georgia,"Times New Roman",serif;letter-spacing:.12em}.weather-intro h1{margin:0;font-family:"STKaiti","KaiTi",serif;font-size:34px;line-height:1.25}.weather-intro>div>span{display:block;margin-top:8px;color:#857e76;font-size:13px}.weather-intro>span{color:rgba(111,102,160,.12);font:700 74px/.8 Georgia,"Times New Roman",serif}
.weather-hero{position:relative;min-height:360px;overflow:hidden;padding:52px 43% 42px 40px;border-radius:var(--card-radius);background-color:rgba(255,252,245,.94);background-image:radial-gradient(circle at 82% 25%,rgba(190,197,218,.3),transparent 29%),repeating-linear-gradient(0deg,transparent 0 31px,rgba(105,129,147,.055) 31px 32px)}.weather-hero:before{content:"";position:absolute;z-index:3;top:-5px;left:24%;width:86px;height:23px;background:rgba(181,199,186,.59);transform:rotate(-3deg);box-shadow:0 2px 5px rgba(76,65,48,.07)}.weather-loading{position:absolute;z-index:5;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;background:rgba(255,252,245,.84);color:#7a7380;font-size:12px;transition:.25s}.weather-loading i{width:28px;height:28px;border:3px solid #dcd5e5;border-top-color:#776c91;border-radius:50%;animation:weatherSpin .9s linear infinite}.weather-loading.error{gap:8px;padding:30px;text-align:center}.weather-loading.error i{display:none}.weather-loading.done{opacity:0;pointer-events:none}@keyframes weatherSpin{to{transform:rotate(360deg)}}.weather-hero-copy{position:relative;z-index:3}.weather-hero-copy>p:first-child{margin:0;color:#71678a;font-size:12px;font-weight:700;letter-spacing:.05em}.weather-condition{display:flex;align-items:baseline;gap:16px;margin:15px 0 11px}.weather-condition strong{font-family:"STKaiti","KaiTi",serif;font-size:39px;line-height:1}.weather-condition span{font:700 25px Georgia,"Times New Roman",serif;color:#736989;white-space:nowrap}.weather-summary{margin:0;color:#706a64;font-size:13px;line-height:1.7}.weather-key-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:22px}.weather-key-tags span{padding:7px 10px;border:1px dashed rgba(111,102,160,.3);border-radius:999px;background:#fffaf0bd;color:#686077;font-size:10px;font-weight:700}.weather-hero-sticker{position:absolute;z-index:2;right:-5px;bottom:-14px;width:min(43%,350px);height:auto;filter:drop-shadow(0 14px 14px rgba(66,51,37,.14));transform:rotate(2deg)}#refreshWeather{position:absolute;z-index:6;top:17px;right:17px;width:36px;height:36px;border:0;border-radius:50%;background:#ffffffb8;color:#71688a;font-size:20px;box-shadow:0 7px 18px rgba(70,59,48,.1)}#refreshWeather.refreshing{animation:weatherSpin .9s linear infinite}
.weather-hours,.weather-week{margin-top:18px;padding:23px;border-radius:var(--card-radius)}.weather-hours{position:relative}.weather-hours:before,.weather-week:before,.weather-advice:before{content:"";position:absolute;z-index:2;top:-8px;width:70px;height:19px;background:rgba(219,197,151,.56);transform:rotate(2deg)}.weather-hours:before{right:15%}.weather-week{position:relative}.weather-week:before{left:17%;background:rgba(181,199,186,.56);transform:rotate(-2deg)}.weather-hours>header,.weather-week>header{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:18px}.weather-hours header p,.weather-week header p{margin:0;color:#877e91;font-size:10px;font-weight:700}.weather-hours h2,.weather-week h2{margin:4px 0 0;font-family:"STKaiti","KaiTi",serif;font-size:23px}.weather-hours header>span{color:#8a837c;font-size:11px}.weather-hour-list{display:grid;grid-template-columns:repeat(7,minmax(70px,1fr));gap:8px;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}.weather-hour-list::-webkit-scrollbar{display:none}.weather-hour{min-width:70px;padding:12px 8px;border:1px solid rgba(105,94,83,.09);border-radius:var(--inner-radius);background:#f7f3eb;text-align:center}.weather-hour.focus{background:#eee8f2;border-color:rgba(118,107,145,.26);box-shadow:0 6px 14px rgba(91,76,111,.08)}.weather-hour time,.weather-hour span,.weather-hour strong,.weather-hour small{display:block}.weather-hour time{color:#817a72;font-size:10px}.weather-hour span{height:28px;margin:8px 0 3px;font-size:21px}.weather-hour strong{font:700 15px Georgia,"Times New Roman",serif}.weather-hour small{margin-top:6px;color:#918a82;font-size:9px}.weather-skeleton{height:105px;border-radius:var(--inner-radius);background:linear-gradient(90deg,#f2eee7,#faf7f1,#f2eee7);background-size:200% 100%;animation:weatherShimmer 1.3s infinite}@keyframes weatherShimmer{to{background-position:-200% 0}}
.weather-details{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.weather-details article{position:relative;overflow:hidden;padding:18px;border-radius:var(--card-radius);background-color:rgba(255,252,245,.9)}.weather-details article:after{content:"";position:absolute;right:-17px;bottom:-20px;width:54px;height:54px;border:1px dashed rgba(111,102,160,.16);border-radius:50%}.weather-details span,.weather-details strong,.weather-details small{display:block}.weather-details span{color:#857e77;font-size:10px}.weather-details strong{margin:9px 0 5px;color:#665d7d;font:700 25px Georgia,"Times New Roman",serif}.weather-details small{color:#aaa39a;font-size:9px}
.weather-advice{position:relative;min-height:285px;overflow:hidden;margin-top:18px;padding:35px 42% 34px 32px;border-radius:var(--card-radius);background-color:rgba(255,252,245,.93);background-image:repeating-linear-gradient(0deg,transparent 0 31px,rgba(105,129,147,.052) 31px 32px)}.weather-advice:before{left:18%;background:rgba(194,181,210,.58);transform:rotate(-2deg)}.weather-advice-copy{position:relative;z-index:3}.weather-advice-copy>p{margin:0;color:#857b91;font-size:10px;font-weight:700}.weather-advice-copy>p span{padding:5px 8px;border-radius:999px;background:#eee8f2;color:#665c7e}.weather-advice h2{margin:12px 0 17px;font-family:"STKaiti","KaiTi",serif;font-size:25px}.weather-advice-copy>div{white-space:pre-line;color:#655f59;font-size:13px;line-height:1.85}.weather-clothing-sticker{position:absolute;z-index:2;right:-5px;bottom:-30px;width:min(41%,320px);height:auto;filter:drop-shadow(0 12px 12px rgba(72,58,43,.13));transform:rotate(2deg)}
.weather-week-list{display:grid;grid-template-columns:repeat(7,minmax(82px,1fr));gap:8px;overflow-x:auto;padding:2px 0 5px;scrollbar-width:none}.weather-week-list::-webkit-scrollbar{display:none}.weather-day{min-width:82px;padding:13px 8px;border-radius:var(--inner-radius);background:#f7f3eb;text-align:center}.weather-day.event{background:#eee8f2;box-shadow:inset 0 0 0 1px rgba(118,107,145,.2)}.weather-day time,.weather-day span,.weather-day strong,.weather-day small{display:block}.weather-day time{color:#817a72;font-size:10px}.weather-day span{margin:8px 0 4px;font-size:20px}.weather-day strong{font:700 13px Georgia,"Times New Roman",serif}.weather-day small{margin-top:5px;color:#9a9289;font-size:9px}.weather-source{display:flex;justify-content:space-between;gap:15px;padding:13px 5px;color:#9b948c;font-size:9px}.weather-source a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:720px){.weather-page{padding-top:0}.weather-intro{align-items:center;padding:8px 3px 20px}.weather-intro p{font-size:9px}.weather-intro h1{font-size:23px}.weather-intro>div>span{font-size:11px}.weather-intro>span{font-size:50px}.weather-hero{min-height:430px;padding:34px 17px 215px}.weather-condition{display:block;margin:13px 0 10px}.weather-condition strong{font-size:32px}.weather-condition span{display:block;margin-top:8px;font-size:22px}.weather-summary{font-size:11px}.weather-key-tags{gap:5px;margin-top:13px}.weather-key-tags span{padding:6px 7px;font-size:8px}.weather-hero-sticker{right:50%;bottom:-28px;width:218px;transform:translateX(50%) rotate(2deg)}#refreshWeather{top:12px;right:12px;width:32px;height:32px}.weather-hours,.weather-week{padding:15px;margin-top:14px}.weather-hours h2,.weather-week h2{font-size:20px}.weather-hours header>span{max-width:95px;text-align:right;font-size:9px}.weather-hour-list{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:74px}.weather-details{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.weather-details article{padding:14px}.weather-details strong{font-size:21px}.weather-advice{min-height:390px;margin-top:14px;padding:25px 16px 210px}.weather-advice h2{font-size:22px}.weather-advice-copy>div{font-size:11px;line-height:1.75}.weather-clothing-sticker{right:50%;bottom:-30px;width:215px;transform:translateX(50%) rotate(2deg)}.weather-week-list{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78px}.weather-source{display:grid;gap:5px;padding-bottom:0}}

/* 宴会时段信息较长，允许温度行自然换行 */
.weather-condition span{font-size:20px;line-height:1.4;white-space:normal}
@media(max-width:720px){.weather-condition span{font-size:17px;line-height:1.45}.weather-hours header>span{max-width:110px}}

/* 留言板：Pad 签名与抽奖指引 */
.message-page{padding-top:8px;padding-bottom:34px}.message-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;padding:22px 8px 26px}.message-intro p{margin:0 0 7px;color:#7a7092;font:700 12px Georgia,"Times New Roman",serif;letter-spacing:.12em}.message-intro h1{margin:0;font-family:"STKaiti","KaiTi",serif;font-size:34px;line-height:1.25}.message-intro>div>span{display:block;margin-top:8px;color:#857e76;font-size:13px}.message-intro>span{color:rgba(111,102,160,.12);font:700 74px/.8 Georgia,"Times New Roman",serif}
.message-hero{position:relative;min-height:385px;overflow:hidden;padding:53px 45% 42px 40px;border-radius:var(--card-radius);background-color:rgba(255,252,245,.94);background-image:radial-gradient(circle at 82% 28%,rgba(207,199,222,.27),transparent 30%),repeating-linear-gradient(0deg,transparent 0 31px,rgba(105,129,147,.055) 31px 32px)}.message-hero:before{content:"";position:absolute;z-index:3;top:-5px;left:24%;width:86px;height:23px;background:rgba(219,197,151,.6);transform:rotate(-3deg);box-shadow:0 2px 5px rgba(76,65,48,.07)}.message-hero-copy{position:relative;z-index:3}.message-location{display:inline-block;padding:7px 11px;background:#e9e4f1;color:#675d80;font-size:11px;font-weight:700;transform:rotate(-1deg);clip-path:polygon(2% 5%,98% 0,100% 91%,95% 100%,4% 95%,0 12%)}.message-hero h2{margin:18px 0 10px;font-family:"STKaiti","KaiTi",serif;font-size:31px}.message-hero p{margin:0;color:#69635d;font-size:14px;line-height:1.8}.message-flow-mini{display:flex;align-items:center;gap:8px;margin-top:24px}.message-flow-mini span{padding:7px 12px;border-radius:999px;background:#f0ebf4;color:#675e7d;font-size:11px;font-weight:700}.message-flow-mini i{color:#a99eb6;font-style:normal}.message-pad-sticker{position:absolute;z-index:2;right:-2px;bottom:-18px;width:min(45%,360px);height:auto;filter:drop-shadow(0 14px 14px rgba(66,51,37,.14));transform:rotate(1deg)}.message-heart{position:absolute;z-index:4;color:#a18daf;font-style:normal}.heart-one{right:38%;top:52px;font-size:29px;transform:rotate(-10deg)}.heart-two{right:25px;bottom:38px;font-size:21px}
.message-guide{display:grid;gap:18px;margin-top:20px}.message-step{position:relative;display:grid;grid-template-columns:84px minmax(0,1fr);gap:22px;min-height:250px;overflow:hidden;padding:30px 34px;border-radius:var(--card-radius);background-color:rgba(255,252,245,.93);background-image:repeating-linear-gradient(0deg,transparent 0 31px,rgba(105,129,147,.052) 31px 32px)}.message-step:before{content:"";position:absolute;z-index:2;top:-8px;width:72px;height:20px;background:rgba(181,199,186,.58);box-shadow:0 2px 5px rgba(76,65,48,.05)}.message-step:nth-child(odd):before{right:13%;transform:rotate(2deg)}.message-step:nth-child(even):before{left:18%;background:rgba(194,181,210,.58);transform:rotate(-2deg)}.message-step-number{position:relative;z-index:3;padding-top:3px;text-align:center;color:#776c91}.message-step-number span{display:block;font:700 9px Georgia,"Times New Roman",serif;letter-spacing:.12em}.message-step-number strong{display:block;font:400 52px/1 Georgia,"Times New Roman",serif}.message-step-copy{position:relative;z-index:3;padding-right:260px}.message-step-copy>p:first-child{margin:0;color:#918998;font-size:11px;font-weight:700;letter-spacing:.08em}.message-step h2{margin:5px 0 17px;font-family:"STKaiti","KaiTi",serif;font-size:25px;line-height:1.25}.message-step ul{display:grid;gap:9px;margin:0;padding:0;list-style:none;counter-reset:message-guide}.message-step li{position:relative;padding-left:28px;color:#655f59;font-size:13px;line-height:1.55;counter-increment:message-guide}.message-step li:before{content:counter(message-guide);position:absolute;left:0;top:1px;width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:#ebe6f2;color:#6c6283;font:700 10px Georgia,serif}.signature-doodle{position:absolute;right:45px;bottom:48px;width:190px;height:92px;transform:rotate(-5deg)}.signature-doodle span{position:absolute;right:5px;top:0;color:#b3788a;font:34px Georgia,serif}.signature-doodle i{position:absolute;left:0;right:0;bottom:15px;height:55px;border-bottom:3px solid #70677d;border-radius:50%;transform:skewX(-28deg)}.signature-doodle i:after{content:"";position:absolute;left:35px;bottom:-7px;width:105px;height:36px;border-bottom:2px solid #8d8298;border-radius:50%;transform:rotate(8deg)}
.message-step-number-card{min-height:285px}.number-warning{max-width:430px;padding:15px 17px;border:1px dashed rgba(118,107,145,.32);border-radius:var(--inner-radius);background:#f1edf5}.number-warning strong,.number-warning span{display:block}.number-warning strong{color:#665b7e;font-size:13px}.number-warning span{margin-top:6px;color:#6d6660;font-size:12px;line-height:1.65}.message-number-sticker{position:absolute;right:24px;bottom:-36px;width:245px;height:auto;filter:drop-shadow(0 11px 10px rgba(74,58,40,.13));transform:rotate(4deg)}.message-step-raffle{min-height:315px}.raffle-copy{max-width:470px;margin:0;color:#655f59;font-size:13px;line-height:1.8}.message-raffle-sticker{position:absolute;right:-5px;bottom:-28px;width:285px;height:auto;filter:drop-shadow(0 12px 12px rgba(74,58,40,.14));transform:rotate(1deg)}
.message-reminder{display:flex;align-items:center;gap:14px;margin-top:18px;padding:17px 20px;border-radius:var(--card-radius)}.message-reminder>span{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#766b91;color:#fff;font:700 18px Georgia,serif}.message-reminder strong{font-size:13px}.message-reminder p{margin:4px 0 0;color:#766f68;font-size:11px;line-height:1.6}
.message-wall-entry{position:relative;display:grid;grid-template-columns:190px 1fr;align-items:center;gap:25px;min-height:190px;margin-top:18px;padding:25px 30px;overflow:hidden;border-radius:var(--card-radius);color:inherit;background-color:rgba(255,252,245,.94);background-image:radial-gradient(circle at 12% 25%,rgba(207,199,222,.25),transparent 32%),repeating-linear-gradient(0deg,transparent 0 31px,rgba(105,129,147,.05) 31px 32px);box-shadow:5px 7px 0 rgba(126,108,85,.1),var(--shadow)}.message-wall-entry:before{content:"";position:absolute;top:-7px;right:18%;width:78px;height:21px;background:rgba(181,199,186,.58);transform:rotate(2deg)}.message-wall-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:15px;border:1px solid rgba(118,107,145,.2);border-radius:var(--inner-radius);background:#f4efe7;transform:rotate(-2deg);box-shadow:3px 4px 0 rgba(118,107,145,.1)}.message-wall-preview i{position:relative;height:55px;border-radius:6px;background:#fffdf8;border:1px solid #ded4c7}.message-wall-preview i:before,.message-wall-preview i:after{content:"";position:absolute;left:9px;right:9px;height:2px;border-radius:99px;background:#877d98;opacity:.5;transform:rotate(-7deg)}.message-wall-preview i:before{top:20px}.message-wall-preview i:after{top:31px;left:15px;transform:rotate(5deg)}.message-wall-preview i:nth-child(2n):before{transform:rotate(8deg)}.message-wall-preview i:nth-child(3n):after{transform:rotate(-4deg)}.message-wall-copy{position:relative;z-index:2}.message-wall-copy p{display:flex;align-items:center;gap:7px;margin:0;color:#81778f;font-size:11px;font-weight:700;letter-spacing:.08em}.message-wall-copy p span{width:8px;height:8px;border-radius:50%;background:#6e9c7b;box-shadow:0 0 0 4px rgba(110,156,123,.13);animation:message-live 1.8s ease-in-out infinite}.message-wall-copy h2{margin:8px 0 18px;font-family:"STKaiti","KaiTi",serif;font-size:25px;line-height:1.3}.message-wall-copy strong{display:inline-flex;align-items:center;gap:10px;padding:10px 15px;border-radius:999px;background:#766b91;color:#fff;font-size:12px}.message-wall-copy b{font:400 16px Georgia,serif}@keyframes message-live{50%{opacity:.45;transform:scale(.78)}}
@media(max-width:720px){.message-page{padding-top:0}.message-intro{align-items:center;padding:8px 3px 20px}.message-intro p{font-size:9px}.message-intro h1{font-size:23px}.message-intro>div>span{font-size:11px}.message-intro>span{font-size:50px}.message-hero{min-height:455px;padding:31px 18px 235px}.message-hero h2{font-size:27px}.message-hero p{font-size:12px;line-height:1.7}.message-flow-mini{gap:5px;margin-top:14px}.message-flow-mini span{padding:6px 9px;font-size:9px}.message-pad-sticker{right:50%;bottom:-27px;width:230px;transform:translateX(50%) rotate(1deg)}.heart-one{right:18px;top:auto;bottom:184px}.heart-two{right:22px;bottom:30px}.message-guide{gap:14px;margin-top:15px}.message-step{display:block;min-height:0;padding:22px 18px 25px}.message-step-number{display:flex;align-items:baseline;gap:5px;text-align:left}.message-step-number span{font-size:8px}.message-step-number strong{font-size:34px}.message-step-copy{padding-right:0}.message-step-copy>p:first-child{margin-top:5px}.message-step h2{font-size:20px;margin:4px 0 13px}.message-step li{padding-left:25px;font-size:11px}.message-step-sign{min-height:325px}.signature-doodle{right:16px;bottom:19px;width:140px;height:62px}.signature-doodle span{font-size:25px}.message-step-number-card{min-height:365px}.number-warning{max-width:none;padding:13px}.number-warning span{font-size:11px}.message-number-sticker{right:50%;bottom:-49px;width:205px;transform:translateX(50%) rotate(3deg)}.message-step-raffle{min-height:445px}.raffle-copy{font-size:11px;line-height:1.7}.message-raffle-sticker{right:50%;bottom:-33px;width:235px;transform:translateX(50%) rotate(1deg)}.message-reminder{align-items:flex-start;padding:15px}.message-reminder p{font-size:10px}.message-wall-entry{grid-template-columns:90px 1fr;gap:13px;min-height:145px;padding:17px 14px}.message-wall-preview{gap:4px;padding:7px}.message-wall-preview i{height:34px}.message-wall-preview i:before,.message-wall-preview i:after{left:5px;right:5px;top:12px}.message-wall-preview i:after{top:21px;left:8px}.message-wall-copy p{font-size:9px}.message-wall-copy h2{margin:6px 0 11px;font-size:17px}.message-wall-copy strong{padding:8px 11px;font-size:10px}}

/* 交通篇：手账长页 */
.traffic-jumps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:9px;margin-bottom:18px;border-radius:var(--card-radius)}.traffic-jumps button{min-width:0;border:0;border-radius:var(--inner-radius);background:rgba(245,241,234,.82);padding:11px 5px;color:#5e5953;font-size:12px;font-weight:700}.traffic-jumps button span{display:block;color:#a39a90;font-family:Georgia,serif;font-size:9px;margin-bottom:3px}.traffic-jumps button:hover,.traffic-jumps button.active{background:#766b91;color:#fff}.traffic-jumps button.active span{color:#e8e2f0}.traffic-long-page{display:grid;gap:20px;padding-bottom:62px}.traffic-card{position:relative;padding:24px;border-radius:var(--card-radius);scroll-margin-top:38px;box-shadow:5px 7px 0 rgba(126,108,85,.10),var(--shadow)}.traffic-card:before{content:"";position:absolute;z-index:2;top:-9px;right:34px;width:68px;height:18px;background:rgba(186,177,207,.58);transform:rotate(2deg);box-shadow:0 2px 5px rgba(76,65,48,.06)}.traffic-card:nth-child(even):before{right:auto;left:38px;background:rgba(176,195,183,.58);transform:rotate(-2deg)}.traffic-card-head{display:flex;align-items:center;gap:13px;margin-bottom:18px}.traffic-card-head>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#eee8f2;color:#766b91;font:700 15px Georgia,serif}.traffic-card-head p{margin:0 0 2px;color:#81778f;font-size:11px;font-weight:700}.traffic-card-head h2{margin:0;font-family:"STKaiti","KaiTi",serif;font-size:24px}.traffic-card .parking-scroll{padding:2px 0 13px}.traffic-card .parking-card{background:#f7f3eb;border:1px solid var(--line);border-radius:var(--inner-radius);box-shadow:none}.traffic-card .parking-note{padding:12px 13px;background:#f1edf5;border-radius:var(--inner-radius);box-shadow:none}.taxi-address{padding:16px;background:#f5f1e9;border:1px dashed rgba(118,107,145,.32);border-radius:var(--inner-radius)}.taxi-address small,.taxi-address strong{display:block}.taxi-address small{color:#766b91;font-size:12px;font-weight:700;margin-bottom:7px}.taxi-address strong{font-size:16px;line-height:1.55}.taxi-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.taxi-actions button,.taxi-actions a{min-height:54px;border:0;border-radius:var(--inner-radius);display:flex;align-items:center;justify-content:center;gap:9px;font-size:13px;font-weight:700}.taxi-actions button{background:#eee8f2;color:#645a7e}.taxi-actions a{background:#ff4b0b;color:#fff}.taxi-actions img{width:31px;height:31px;border-radius:8px}.railway-rank{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px}.railway-rank article{padding:16px 14px;border:1px solid var(--line);border-radius:var(--inner-radius);background:#f8f4ec}.railway-rank article span,.railway-rank article strong{display:block}.railway-rank article span{color:#91897f;font-size:10px;margin-bottom:6px}.railway-rank article strong{font-size:16px}.railway-rank article.recommended{background:#eee8f2;border-color:rgba(118,107,145,.26)}.railway-rank article.recommended span,.railway-rank article.recommended strong{color:#665b7e}.east-warning{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:13px 15px;border-radius:var(--inner-radius);background:#f4eadf}.east-warning strong{font-size:12px;color:#8f603e}.east-warning span{font-size:14px;font-weight:800;color:#7b4a2e}.nearby-stations{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.nearby-stations article{padding:16px 14px;background:#f8f4ec;border:1px solid var(--line);border-radius:var(--inner-radius)}.nearby-stations article>strong{display:flex;align-items:center;gap:7px;font-size:16px;margin-bottom:11px}.nearby-stations article>strong em{display:inline-block;padding:3px 7px;border-radius:999px;background:#766b91;color:#fff;font-size:9px;font-style:normal;font-weight:700}.nearby-stations article.nearest-station{background:#f0ebf4;border-color:rgba(118,107,145,.28)}.nearby-stations article div{display:flex;flex-wrap:wrap;gap:6px}.nearby-stations article span{padding:5px 8px;border-radius:7px;color:#fff;font-size:11px;font-weight:700}.line-3{background:#2494cb}.line-4{background:#e7792d}.line-6{background:#c64d88}.bus-stops{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bus-stops article{padding:15px;background:#f8f4ec;border:1px solid var(--line);border-radius:var(--inner-radius)}.bus-stops strong{font-size:15px}.bus-stops p{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0}.bus-stops p span{min-width:40px;padding:5px 8px;border-radius:999px;background:#e8eef0;color:#4d6670;text-align:center;font-size:11px;font-weight:700}.traffic-map-dock{position:fixed;z-index:590;left:calc(134px + min(calc(100% - 158px),940px)/2);bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100% - 180px),560px);display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px;border-radius:18px}.traffic-map-dock a{height:52px;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:var(--inner-radius);font-size:13px;font-weight:700}.traffic-map-dock a:first-child{background:#766b91;color:#fff}.traffic-map-dock a:last-child{background:#f0f1f4;color:#444}.traffic-map-dock img{width:32px;height:32px;object-fit:cover;border-radius:8px}.traffic-map-dock a:last-child img{clip-path:inset(.75px round 8px);transform:scale(1.04)}
@media(max-width:720px){.traffic-jumps{display:flex;gap:7px;overflow-x:auto;padding:7px;margin-bottom:14px;scrollbar-width:none}.traffic-jumps::-webkit-scrollbar{display:none}.traffic-jumps button{flex:1 0 58px;padding:9px 4px;font-size:10px}.traffic-long-page{gap:15px;padding-bottom:68px}.traffic-card{padding:15px;scroll-margin-top:19px}.traffic-card:before{right:22px;width:56px;height:15px}.traffic-card-head{gap:10px;margin-bottom:14px}.traffic-card-head>span{width:36px;height:36px;font-size:13px}.traffic-card-head h2{font-size:20px}.traffic-card .parking-scroll{grid-auto-columns:88%;gap:10px}.taxi-address{padding:13px}.taxi-address strong{font-size:13px}.taxi-actions{grid-template-columns:1fr}.taxi-actions button,.taxi-actions a{min-height:50px}.railway-rank{grid-template-columns:1fr 1fr}.railway-rank article.recommended{grid-column:1/-1}.railway-rank article{padding:13px 11px}.east-warning{display:block;padding:12px}.east-warning span{display:block;margin-top:5px}.nearby-stations,.bus-stops{grid-template-columns:1fr}.nearby-stations article,.bus-stops article{padding:13px}.traffic-map-dock{left:calc(80px + (100% - 80px)/2);bottom:max(8px,env(safe-area-inset-bottom));width:calc(100% - 94px);padding:6px;gap:6px;border-radius:15px}.traffic-map-dock a{height:49px;gap:7px;font-size:11px}.traffic-map-dock img{width:29px;height:29px}.traffic-open .site-content{padding-bottom:120px}}

/* Shared chapter hierarchy and concise transport cards */
.chapter-intro{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;min-height:126px;padding:22px 8px 26px}.chapter-intro>div{position:relative;z-index:2;max-width:calc(100% - 112px)}.chapter-intro p{margin:0 0 7px;color:#7a7092;font:700 12px Georgia,"Times New Roman",serif;letter-spacing:.12em}.chapter-intro h1{margin:0;font-family:"STKaiti","KaiTi",serif;font-size:34px;line-height:1.18}.chapter-intro span{display:block;margin-top:8px;color:#857e76;font-size:13px}.chapter-intro>b{position:absolute;right:8px;bottom:23px;color:rgba(111,102,160,.1);font:700 74px/.8 Georgia,"Times New Roman",serif}.traffic-card-head p{margin-bottom:3px;font-size:12px}.traffic-card-head h2{font-size:31px;line-height:1.05}.parking-free{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:-2px 0 17px;padding:15px 18px;border-radius:var(--inner-radius);background:#eee8f2;border:1px dashed rgba(118,107,145,.3)}.parking-free span,.parking-free strong{display:block}.parking-free span{margin-bottom:5px;color:#766b91;font-size:10px;font-weight:700;letter-spacing:.08em}.parking-free strong{font-size:15px}.parking-free>b{flex:0 0 auto;padding-left:16px;border-left:1px solid rgba(118,107,145,.22);color:#665b7e;text-align:center;font-size:11px;line-height:1.3}.parking-free em{font:700 22px Georgia,"Times New Roman",serif}.photo-intro,.weather-intro,.message-intro{display:none}
@media(max-width:720px){.chapter-intro{min-height:106px;align-items:center;padding:8px 3px 20px}.chapter-intro>div{max-width:calc(100% - 55px)}.chapter-intro p{font-size:9px}.chapter-intro h1{font-size:25px}.chapter-intro span{margin-top:5px;font-size:10px}.chapter-intro>b{right:2px;bottom:28px;font-size:50px}.traffic-card-head h2{font-size:25px}.traffic-card-head p{font-size:10px}.parking-free{padding:12px 13px;margin-bottom:14px}.parking-free strong{font-size:12px}.parking-free>b{padding-left:11px;font-size:9px}.parking-free em{font-size:18px}.photo-hero{min-height:405px;padding-bottom:205px}.photo-hero p{max-width:185px}.photobooth-sticker{width:198px}.message-hero{min-height:425px;padding-bottom:225px}.weather-hero,.weather-advice{isolation:isolate}.weather-hero-sticker,.weather-clothing-sticker,.message-pad-sticker,.photobooth-sticker{z-index:1}.weather-hero-copy,.weather-advice-copy,.message-hero-copy,.photo-hero-copy{z-index:3}}

/* Mobile readability pass: preserve the scrapbook hierarchy without tiny copy. */
@media(max-width:720px){
  body{font-size:15px}
  .side-index nav span{font-size:11px;font-weight:700}
  .side-date b{font-size:11px}
  .side-date span{font-size:9px}
  .chapter-intro p,.photo-intro p,.message-intro p,.weather-intro p{font-size:11px}
  .chapter-intro span,.photo-intro>div>span,.message-intro>div>span,.weather-intro>div>span{font-size:12px;line-height:1.45}
  .home-actions small{font-size:12px}
  .home-actions strong{font-size:14px;line-height:1.6}
  .home-actions .event-actions button,.home-actions .event-actions a{font-size:12px;line-height:1.35}
  .map-legend{font-size:12px;gap:10px;flex-wrap:wrap}

  .traffic-jumps button{font-size:12px;line-height:1.35}
  .traffic-jumps button span{font-size:10px}
  .traffic-card{padding:19px 17px}
  .traffic-card-head p{font-size:12px}
  .traffic-card-head h2{font-size:28px;line-height:1.2}
  .parking-free span{font-size:11px}
  .parking-free strong{font-size:14px;line-height:1.5}
  .parking-free>b{font-size:11px}
  .parking-free em{font-size:20px}
  .parking-card figcaption{font-size:15px;line-height:1.5}
  .parking-note,.traffic-card .parking-note{font-size:13px;line-height:1.7}
  .taxi-address small{font-size:12px}
  .taxi-address strong{font-size:15px;line-height:1.55}
  .taxi-actions button,.taxi-actions a{font-size:14px}
  .railway-rank article span{font-size:12px}
  .railway-rank article strong{font-size:17px;line-height:1.4}
  .east-warning strong{font-size:13px}
  .east-warning span{font-size:15px;line-height:1.5}
  .nearby-stations article>strong,.bus-stops strong{font-size:17px}
  .nearby-stations article>strong em{font-size:10px}
  .nearby-stations article span,.bus-stops p span{font-size:12px;line-height:1.4}
  .traffic-map-dock a{font-size:12px}

  .photo-hero p{font-size:13px;line-height:1.75}
  .torn-label,.photo-step-body>p:first-child{font-size:12px}
  .photo-step h2{font-size:22px}
  .photo-step li{font-size:13px;line-height:1.65}
  .memory-copy{font-size:13px;line-height:1.75}
  .photo-note strong{font-size:14px}
  .photo-note span{font-size:13px;line-height:1.65}

  .message-location{font-size:12px}
  .message-hero p{font-size:13px;line-height:1.75}
  .message-flow-mini span{font-size:11px}
  .message-step-number span{font-size:10px}
  .message-step-copy>p:first-child{font-size:12px}
  .message-step h2{font-size:22px}
  .message-step li{font-size:13px;line-height:1.65}
  .number-warning strong{font-size:14px}
  .number-warning span{font-size:13px;line-height:1.7}
  .raffle-copy{font-size:13px;line-height:1.75}
  .message-wall-copy p{font-size:11px}
  .message-wall-copy h2{font-size:19px}
  .message-wall-copy strong{font-size:12px}

  .weather-summary{font-size:13px;line-height:1.7}
  .weather-key-tags span{font-size:11px}
  .weather-hours header p,.weather-week header p{font-size:11px}
  .weather-hours h2,.weather-week h2{font-size:22px}
  .weather-hours header>span{font-size:11px;line-height:1.45}
  .weather-hour time,.weather-day time{font-size:11px}
  .weather-hour small,.weather-day small{font-size:10px;line-height:1.35}
  .weather-details span{font-size:11px}
  .weather-details small{font-size:10px;line-height:1.4}
  .weather-advice-copy>p{font-size:11px}
  .weather-advice-copy>div{font-size:13px;line-height:1.8}
  .weather-source{font-size:11px;line-height:1.5}

  .assistant-head small{font-size:12px}
  .quick-questions button{font-size:12px}
  .history-actions,.history-item p{font-size:12px}
  .history-item strong{font-size:14px}
}

/* Transport cards lead with the mode itself; the content below explains the rest. */
.traffic-card-head{margin-bottom:18px}
.traffic-card-head h2{margin:0}
@media(max-width:720px){.traffic-card-head{margin-bottom:15px}}

/* Five-way transport index: visible at once on narrow phones. */
@media(max-width:720px){
  .traffic-jumps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;overflow:visible;padding:7px;margin-bottom:17px}
  .traffic-jumps button{position:relative;display:flex;min-width:0;height:57px;align-items:center;justify-content:center;flex-direction:column;gap:3px;padding:5px 1px;border:1px solid rgba(118,107,145,.15);border-radius:11px;background:#f8f3eb;color:#514b48;font-size:12px;font-weight:800;line-height:1;box-shadow:0 3px 0 rgba(126,108,85,.08)}
  .traffic-jumps button span{display:grid;width:22px;height:17px;place-items:center;margin:0;border-radius:999px;background:#ebe5f1;color:#706584;font-size:9px;line-height:1}
  .traffic-jumps button:hover,.traffic-jumps button.active{background:#766b91;color:#fff;border-color:#766b91;box-shadow:0 5px 10px rgba(83,70,108,.18)}
  .traffic-jumps button.active span{background:rgba(255,255,255,.2);color:#fff}
}
