:root{color-scheme:light;--paper:#faf7ef;--ink:#24352f;--muted:#52665e;--green:#284f40;--line:#dcded2;--white:#fffdf7;--sage:#e7efe2;font:16px/1.75 system-ui,"Noto Sans SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink)}
a{color:var(--green);text-underline-offset:4px}
a:focus-visible,summary:focus-visible{outline:3px solid #9c5833;outline-offset:3px}
.shell{width:min(1120px,calc(100% - 36px));margin-inline:auto}
.top{background:var(--white);border-bottom:1px solid var(--line)}
.mast,.foot,.paging{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.mast{padding-block:16px;color:var(--muted);font-size:.87rem}
.brand{font-family:Georgia,"Noto Serif SC","Songti SC",serif;text-decoration:none;font-size:1.28rem;font-weight:700}
.tabs{display:flex;gap:6px;overflow-x:auto;padding:3px 3px 12px}
.tabs a,.paging a{flex:none;text-decoration:none;padding:7px 14px;border-radius:999px}
.tabs a:hover,.paging a:hover{background:var(--sage)}
.tabs [aria-current]{background:var(--green);color:white}
.hero{display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:clamp(12px,4vw,52px);padding-block:clamp(32px,7vw,88px)}
.hero img{width:100%;height:auto;mix-blend-mode:multiply;border-radius:32px}
h1,h2{font-family:Georgia,"Noto Serif SC","Songti SC",serif;line-height:1.25;margin:0 0 .6em}
h1{font-size:clamp(3rem,7vw,5.8rem);letter-spacing:-.055em}
h1 span{display:block;font-size:.38em;letter-spacing:.03em;margin-top:.65em}
h2{font-size:clamp(1.45rem,3vw,2rem)}
p{margin:0 0 .8em}
.date,.time{font-weight:700;color:#3f6559;letter-spacing:.045em}
.lead,.slogan{font-size:clamp(1.15rem,2vw,1.45rem)}
.primary{display:inline-block;background:var(--green);color:white;text-decoration:none;padding:9px 18px;border-radius:24px;margin-top:8px}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.card,.box{background:var(--white);border:1px solid var(--line);border-radius:20px}
.card{display:grid;grid-template-rows:auto auto auto 1fr auto;gap:4px;padding:14px 18px;color:inherit;text-decoration:none}
.card:hover{border-color:var(--green);background:#fdfff8}
.card strong{font-size:1.28rem}
.card .date,.read{font-size:.85rem}
.read{color:var(--green);font-weight:700;margin-top:8px}
.sticker{display:block;background:url(stickers.png) no-repeat;background-size:400% 200%;aspect-ratio:1;mix-blend-mode:multiply}
.motif-1{background-position:0 0}.motif-2{background-position:33.333% 0}.motif-3{background-position:66.667% 0}.motif-4{background-position:100% 0}
.motif-5{background-position:0 100%}.motif-6{background-position:33.333% 100%}.motif-7{background-position:66.667% 100%}.motif-8{background-position:100% 100%}
.box{padding:clamp(16px,4vw,30px);margin-block:20px}
.box p:last-child{margin-bottom:0}
.travel{margin-block:36px}
.dayhead{display:grid;grid-template-columns:1fr min(32%,250px);align-items:center;gap:16px;padding:clamp(34px,6vw,60px) 0 8px}
.dayhead h1{margin-bottom:10px;font-size:clamp(2.3rem,6.5vw,4.5rem)}
.slogan{color:#8a4b36;font-weight:700}
.route,.muted{color:var(--muted)}
.care{background:var(--sage)}
.care h2{font-size:1.2rem}
.seats{width:min(100%,540px);border-spacing:4px;margin:14px 0}
.seats th{font-size:.78rem;font-weight:500}
.seat{display:grid;place-content:center;min-height:50px;text-align:center;border-radius:8px;font-weight:750}
.reserved{background:#dfead8}
.unused{background:#f3eee5;color:var(--muted)}
.seat small{display:block;font-size:.66rem;font-weight:400}
.aisle{width:42px;text-align:center;color:var(--muted)}
.schedule{margin-top:34px}
.timeline{list-style:none;margin:0;padding:0}
.timeline li{display:grid;grid-template-columns:minmax(130px,22%) 1fr;gap:20px;border-top:1px solid var(--line);padding:18px 0}
.timeline h3{margin:0;font-size:1.14rem}
.timeline p{margin:.25em 0 .5em}
details{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:0 12px;width:fit-content;max-width:100%}
details[open]{width:100%;padding-bottom:10px}
summary{padding:5px 0;cursor:pointer;color:var(--green);font-weight:700}
details a{display:inline-block;margin-right:12px;font-size:.9rem}
.paging{margin:14px 0 32px}
.foot{border-top:1px solid var(--line);padding:22px 0;color:var(--muted);font-size:.85rem}
.sr,.skip:not(:focus){position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.skip:focus{display:block;padding:10px;background:var(--white)}
@media(max-width:760px){.hero{grid-template-columns:1fr}.hero img{max-height:380px;object-fit:contain}.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:530px){.timeline li{grid-template-columns:1fr;gap:2px}.card{padding:10px}.tabs a{padding-inline:10px}.dayhead{grid-template-columns:1fr 30%}}
.guide-story{border-top:1px solid var(--line);padding-top:.6em}
.family img{display:block;width:100%;height:auto;border-radius:12px}
.trip-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.trip-stats div{padding:12px 16px;background:var(--white);border:1px solid var(--line);border-radius:14px}
.trip-stats dt{color:var(--muted);font-size:.84rem}
.trip-stats dd{margin:0;font-weight:700}
.weather{margin-block:12px}
.weather h2{font-size:1.2rem}
.forecast-list{display:grid;gap:8px;margin-bottom:10px}
.forecast a{margin-right:12px;font-weight:700}
.forecast span{font-size:.9rem;color:var(--muted)}
.dayhead{grid-template-columns:1fr}
.day-art{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:720px;margin:12px auto 22px}
.day-art>span{border-radius:12px}
.extra-art{display:block;aspect-ratio:1;background:url(day-art.png) no-repeat;background-size:800% 200%;background-position:var(--art-x) var(--art-y);mix-blend-mode:multiply}
.art-top{--art-y:0%}.art-bottom{--art-y:100%}
.art-1{--art-x:0%}.art-2{--art-x:14.2857%}.art-3{--art-x:28.5714%}.art-4{--art-x:42.8571%}.art-5{--art-x:57.1429%}.art-6{--art-x:71.4286%}.art-7{--art-x:85.7143%}.art-8{--art-x:100%}
.van-leg{background:var(--sage);padding:7px 12px;margin:6px 0;border-radius:10px;font-size:.87rem}
.timeline .van-leg ul{margin:0;padding-inline-start:18px}
.timeline .van-leg li{display:list-item;padding:0;border:0}
.guide-tip{color:var(--muted)}
.seats{width:min(100%,690px);table-layout:fixed}
.seat{min-height:72px;padding:4px;word-break:normal;overflow-wrap:anywhere}
.seat small{font-size:.76rem;line-height:1.2}
.seats .aisle{width:32px}
@media(max-width:530px){.trip-stats{grid-template-columns:1fr}.dayhead{grid-template-columns:1fr}.seats .aisle{width:22px}.seats th{font-size:.65rem}}
.pdf-guide{padding:12px 0}
.timeline .pdf-guide h3{margin-bottom:12px}
.pdf-guide h4{font-size:1rem;margin:1.05em 0 .35em;color:var(--green)}
.timeline .pdf-guide p,.pdf-day p{margin:.45em 0 .85em}
.pdf-guide ul{padding-inline-start:1.4em}
.timeline .pdf-guide li{display:list-item;border:0;padding:0;margin-bottom:.55em}
.pdf-menu{padding:.6em .8em;border-left:3px solid #a8ba9d;background:#f3f6ef}
.pdf-day{width:100%}
