:root{--paper:#f6f5f0;--white:#fffefb;--ink:#233f48;--muted:#6c787a;--line:#dce1db;--blue:#255a69;--blue-soft:#e8efed;--terra:#b96348;--terra-soft:#f3e8de;--serif:"Songti SC","STSong","Noto Serif CJK SC",Georgia,serif;--sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:190px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}
button,input{font:inherit}
button,a,summary{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a{color:inherit}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #b96348;outline-offset:5px}
button:disabled{cursor:default}
.icon-defs{position:absolute;width:0;height:0;overflow:hidden}
.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.skip-link{position:fixed;top:-70px;left:20px;z-index:30;background:var(--ink);color:var(--white);padding:12px 18px}
.skip-link:focus{top:12px}
.topbar{height:76px;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:10}
.topbar-inner{max-width:1120px;height:100%;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 32px}
.wordmark{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-family:Georgia,serif;font-size:20px;letter-spacing:2px}
.brand-dot{width:9px;height:9px;border-radius:50%;background:var(--terra);margin-right:2px}
.wordmark-divider{font-family:var(--sans);color:#a5b2b2;font-size:17px;font-weight:400;margin:0 2px}
.wordmark-note{font-family:var(--sans);font-size:10px;letter-spacing:1.5px}
.share-button{border:1px solid #bcc9c8;border-radius:6px;background:transparent;padding:9px 14px;display:flex;align-items:center;gap:8px;color:var(--ink);font-size:12px;transition:background .18s,border-color .18s}
.share-button:hover{background:var(--blue-soft);border-color:var(--blue)}
.share-button .icon{width:17px;height:17px}
.page{max-width:1120px;padding:0 32px;margin:0 auto}
.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;padding:64px 0 44px;align-items:center}
.eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 23px;font-size:10px;letter-spacing:2.1px;color:var(--muted);font-weight:500}
.eyebrow-line{width:27px;height:1px;background:var(--terra)}
h1{font-family:var(--serif);font-size:clamp(34px,4.1vw,48px);font-weight:500;line-height:1.45;letter-spacing:1px;margin:0 0 18px}
.title-period{color:var(--terra)}
.hero-description{font-size:13px;line-height:1.95;color:var(--muted);margin:0}
.trip-meta{display:flex;align-items:center;gap:0;margin-top:29px;font-size:11px;letter-spacing:.5px}
.trip-meta span+span{border-left:1px solid #c9d0cb;margin-left:17px;padding-left:17px}
.trip-meta span:first-child{font-family:Georgia,serif;font-size:16px;letter-spacing:1px}
.hero-art{border-left:1px solid var(--line);padding:0 0 0 32px}
.art-caption,.art-footer{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:9px;letter-spacing:1.5px}
.art-caption span:first-child{font-size:12px;letter-spacing:2px;color:var(--ink)}
.coast-art{display:block;width:100%;height:auto;margin:7px 0 14px}
.art-footer{font-family:Georgia,serif;font-size:9px;letter-spacing:.8px}
.trip-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;padding:15px 0;color:var(--muted);font-size:11px}
.trip-strip>span{display:flex;align-items:center;gap:8px}
.trip-strip>span:first-child{color:var(--ink)}
.trip-strip b{font-size:10px;font-weight:500;letter-spacing:.8px}
.tiny-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--blue)}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:56px;padding-top:32px;align-items:start}
.itinerary{min-width:0}
.day-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;position:sticky;top:76px;background:var(--paper);z-index:5;padding:12px 0 16px;margin-top:-12px;border-bottom:1px solid var(--line)}
.day-tabs button{min-width:0;text-align:left;border:1px solid var(--line);border-radius:8px;padding:13px 14px 12px;background:transparent;color:var(--muted);transition:background .2s,color .2s,border-color .2s}
.day-tabs button:hover{background:#edf0e9}
.day-tabs button[aria-selected="true"]{background:var(--blue);color:var(--white);border-color:var(--blue)}
.tab-top{display:flex;justify-content:space-between;gap:5px;font-size:9px;letter-spacing:.8px;white-space:nowrap}
.tab-top>span{font-size:9px;letter-spacing:0;opacity:.8}
.tab-date{display:block;font-family:Georgia,serif;font-size:27px;line-height:1.6;letter-spacing:.2px}
.tab-label{display:block;font-size:10px;line-height:1.5;white-space:nowrap}
#day-panel{outline-offset:6px;min-height:560px}
.day-intro{padding:30px 0 25px}
.day-heading-line{display:flex;align-items:center;gap:11px;margin-bottom:11px}
.day-heading-line h2{font-family:var(--serif);font-size:26px;letter-spacing:.6px;line-height:1.5;font-weight:500;margin:0}
.day-heading-line .count-label{font-size:9px;border:1px solid #c7d1ca;border-radius:4px;white-space:nowrap;padding:4px 6px;letter-spacing:.2px}
.day-description{font-size:12px;color:var(--muted);line-height:1.9;margin:0 0 13px}
.day-route{font-size:10px;color:var(--blue);display:flex;align-items:center;flex-wrap:wrap;gap:5px;line-height:1.8}
.day-route .icon{width:13px;height:13px;margin:0 2px}
.day-tip{background:var(--blue-soft);border-left:2px solid #8faeaa;padding:12px 14px;font-size:11px;line-height:1.9;color:#486366;margin-top:17px}
.day-tip b{font-weight:500;color:var(--ink)}
.timeline{list-style:none;padding:0;margin:0}
.timeline-item{display:grid;grid-template-columns:87px 24px minmax(0,1fr);column-gap:8px;position:relative}
.event-time{padding-top:21px;color:var(--muted);font-family:Georgia,serif;font-size:12px;letter-spacing:.1px;line-height:1.6;font-variant-numeric:tabular-nums}
.event-time span{display:block}
.event-time span+span{font-size:10px;color:#8b9592}
.event-rail{position:relative;display:flex;justify-content:center;padding-top:24px}
.event-rail::after{content:"";position:absolute;top:32px;bottom:-24px;left:50%;width:1px;background:var(--line)}
.timeline-item:last-child .event-rail::after{display:none}
.event-dot{width:9px;height:9px;border-radius:50%;border:1px solid #92a8a7;background:var(--paper);position:relative;z-index:1}
.is-pass .event-dot{background:var(--blue);border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-soft)}
.is-paid .event-dot{background:var(--terra);border-color:var(--terra);box-shadow:0 0 0 4px var(--terra-soft)}
.is-flight .event-dot{background:var(--ink);border-color:var(--ink)}
.event{border-bottom:1px solid var(--line);min-width:0}
.event>summary{list-style:none;display:flex;align-items:flex-start;gap:10px;padding:19px 0;cursor:pointer}
.event>summary::-webkit-details-marker{display:none}
.event-icon{color:#7c9190;padding-top:1px;flex-shrink:0}
.event-icon .icon{width:19px;height:19px}
.is-pass .event-icon{color:var(--blue)}
.is-paid .event-icon{color:var(--terra)}
.event-heading{flex:1;min-width:0}
.event-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:7px 8px}
.event-title{font-weight:500;line-height:1.65;font-size:14px}
.event-title-en{font-family:Georgia,serif;font-size:11px;line-height:1.5;color:var(--muted);display:block;margin-top:2px;letter-spacing:.1px}
.event-subtitle{font-size:11px;color:var(--muted);line-height:1.8;margin-top:5px;display:block}
.event-badge{display:inline-block;white-space:nowrap;font-size:9px;letter-spacing:.25px;padding:2px 5px;border-radius:3px;background:var(--blue-soft);color:var(--blue);line-height:1.6}
.event-badge.paid{background:var(--terra-soft);color:var(--terra)}
.event-badge.pending{background:#f2ecda;color:#8b6d34}
.event-badge.flight{background:#e8ece8;color:var(--ink)}
.event-chevron{width:16px;height:16px;color:#899b98;margin-top:4px;transition:transform .2s;flex-shrink:0}
.event[open] .event-chevron{transform:rotate(180deg)}
.event-detail{padding:0 0 19px 29px;font-size:11px;line-height:1.9;color:#657777}
.event-detail p{margin:0 0 9px}
.event-detail p:last-child{margin-bottom:0}
.event-detail .detail-emphasis{color:var(--terra)}
.event-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}
.event-actions a{display:inline-flex;align-items:center;gap:5px;border:1px solid #cbd5ce;border-radius:4px;padding:5px 8px;color:var(--blue);text-decoration:none;font-size:10px;transition:background .2s}
.event-actions a:hover{background:var(--blue-soft)}
.event-actions .icon{width:12px;height:12px}
.day-bottom{padding:25px 0 0;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px;gap:14px}
.next-day{display:flex;align-items:center;gap:7px;background:transparent;color:var(--blue);border:0;padding:8px 0;font-size:11px}
.next-day .icon{width:16px;height:16px}
.sidebar{padding-top:0}
.pass-card{background:var(--blue);color:var(--white);padding:21px 22px 20px;border-radius:8px;position:relative;overflow:hidden}
.pass-card-top{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1px}
.pass-card-top .icon{width:23px;height:23px;opacity:.8}
.pass-number{font-family:Georgia,serif;font-size:75px;font-weight:400;line-height:1.2;margin-top:12px;letter-spacing:-3px}
.pass-number>span{font-family:var(--sans);font-size:10px;letter-spacing:2px;margin-left:9px}
.pass-price{font-family:Georgia,serif;font-size:20px;margin-top:5px;letter-spacing:.2px}
.pass-price span{font-family:var(--sans);font-size:9px;opacity:.75;margin-left:5px}
.pass-perforation{position:relative;border-top:1px dashed #799aa1;margin:23px -22px 17px}
.pass-perforation::before,.pass-perforation::after{content:"";width:15px;height:15px;position:absolute;top:-8px;background:var(--paper);border-radius:50%}
.pass-perforation::before{left:-8px}.pass-perforation::after{right:-8px}
.pass-window-label{margin:0 0 9px;font-size:9px;opacity:.7;letter-spacing:.8px}
.pass-window{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:10px;font-variant-numeric:tabular-nums}
.pass-window .icon{width:16px;height:16px;opacity:.8}
.pass-window-note{font-size:9px;line-height:1.9;opacity:.7;margin:12px 0 0}
.side-section{margin-top:30px}
.section-kicker{font-size:8px;letter-spacing:1.7px;color:var(--muted);margin:0 0 7px}
.side-section h2{font-family:var(--serif);font-size:19px;letter-spacing:.4px;font-weight:500;margin:0 0 15px;line-height:1.5}
.pass-stops{margin:0;padding:0;list-style:none}
.pass-stops li{display:flex;align-items:center;border-bottom:1px solid var(--line);gap:10px;padding:9px 0;font-size:11px}
.stop-number{font-family:Georgia,serif;font-size:11px;color:#91a09a;min-width:17px}
.pass-stops li .stop-title{flex:1}
.stop-day{font-size:8px;color:#7b8c87;letter-spacing:.4px}
.pass-stops li.current{color:var(--blue)}
.pass-stops li.current .stop-day{color:var(--blue)}
.side-footnote{margin:13px 0 0;color:var(--muted);font-size:10px;line-height:1.9}
.booking-section{padding-top:6px}
.booking-list{margin:0;padding:0;list-style:none;display:grid;gap:18px}
.booking-list li{display:flex;gap:10px;align-items:flex-start}
.booking-list li>span{font-family:Georgia,serif;font-size:11px;margin-top:2px;color:var(--terra)}
.booking-list li>div{min-width:0}
.booking-list b{font-size:11px;font-weight:500}
.booking-list p{font-size:10px;color:var(--muted);line-height:1.9;margin:5px 0}
.booking-list a{font-size:9px;text-decoration-thickness:1px;text-underline-offset:3px;color:var(--blue)}
.sources{margin-top:27px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}
.sources summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:15px 0;list-style:none}
.sources summary::-webkit-details-marker{display:none}
.sources .icon{width:14px;height:14px}
.sources[open] .icon{transform:rotate(180deg)}
.source-links{display:grid;gap:12px;line-height:1.7;padding:0 0 10px}
.source-links a{text-underline-offset:3px}
.footer{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:23px 0;margin-top:55px;color:var(--muted);font-size:9px;letter-spacing:.6px}
.footer>span:first-child{font-family:Georgia,serif;letter-spacing:1.2px}
.footer>span:nth-child(2){font-family:var(--serif);font-size:12px;letter-spacing:1.2px}
.share-dialog{border:1px solid var(--line);border-radius:12px;padding:26px;background:var(--paper);color:var(--ink);width:min(460px,calc(100vw - 32px));box-shadow:0 20px 80px #17374126}
.share-dialog::backdrop{background:#17374155;backdrop-filter:blur(3px)}
.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
.dialog-heading h2{font-family:var(--serif);font-size:24px;font-weight:500;margin:0}
.dialog-heading button{border:0;background:transparent;color:var(--muted);font-size:25px;padding:0 4px;line-height:1.5}
.share-dialog>p{font-size:12px;color:var(--muted);line-height:1.9;margin:13px 0 20px}
.share-dialog label{display:block;font-size:10px;margin:0 0 8px;color:var(--muted)}
.share-dialog input{width:100%;padding:12px;border:1px solid #cbd5ce;background:var(--white);color:var(--ink);border-radius:5px;font-size:12px;outline-offset:3px}
.dialog-actions{display:flex;gap:9px;margin-top:15px}
.primary-button,.secondary-button{border:1px solid var(--blue);border-radius:5px;padding:11px 17px;font-size:12px;background:var(--blue);color:var(--white)}
.secondary-button{background:transparent;color:var(--blue)}
.primary-button:hover{background:#1c4b59}
.share-dialog .share-feedback{min-height:18px;margin:12px 0 0;font-size:11px}
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,10px);background:var(--ink);color:var(--white);padding:12px 18px;border-radius:6px;z-index:25;opacity:0;pointer-events:none;font-size:12px;transition:opacity .2s,transform .2s;max-width:calc(100vw - 32px);text-align:center}
.toast.visible{opacity:1;transform:translate(-50%,0)}
.no-script{padding:25px 0;line-height:2}
@media(min-width:1280px){.hero{padding-top:72px;padding-bottom:52px}.page,.topbar-inner{max-width:1160px}.layout{gap:65px;grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:900px){.layout{gap:30px;grid-template-columns:minmax(0,1fr) 250px}.hero{gap:25px}.hero-art{padding-left:22px}.tab-label{font-size:9px}.day-tabs button{padding:12px 10px}.timeline-item{grid-template-columns:72px 19px minmax(0,1fr);column-gap:5px}.pass-card{padding:20px 17px}.pass-perforation{margin-left:-17px;margin-right:-17px}.event-title{font-size:13px}.day-heading-line h2{font-size:24px}}
@media(max-width:720px){.topbar{height:62px}.topbar-inner,.page{padding-left:22px;padding-right:22px}.wordmark{font-size:18px;gap:7px}.wordmark-note{font-size:8px;letter-spacing:1px}.share-button{padding:8px 10px;font-size:11px;gap:6px}.hero{grid-template-columns:1fr;gap:0;padding:38px 0 28px;position:relative}.hero-copy{position:relative;z-index:1}.eyebrow{font-size:8px;letter-spacing:1.6px;margin-bottom:18px}h1{font-size:36px;line-height:1.45;letter-spacing:.5px}.hero-description{font-size:12px;line-height:1.9}.hero-art{position:absolute;width:190px;right:-4px;bottom:28px;padding:0;border:0;opacity:.37;pointer-events:none}.art-caption,.art-footer{display:none}.coast-art{margin:0}.trip-meta{font-size:10px;margin-top:25px}.trip-meta span:first-child{font-size:15px}.trip-meta span+span{margin-left:12px;padding-left:12px}.trip-strip{font-size:10px;padding:13px 0;gap:8px;align-items:center}.trip-strip>span{gap:6px}.trip-strip>span:last-child{font-size:9px;display:block;text-align:right;line-height:1.8;max-width:140px}.trip-strip b{display:block;font-size:8px}.layout{grid-template-columns:1fr;gap:35px;padding-top:25px}.day-tabs{top:62px;padding-bottom:13px;gap:8px}.day-tabs button{padding:12px 12px 11px}.tab-top{font-size:8px}.tab-top>span{font-size:8px}.tab-date{font-size:27px;line-height:1.6}.tab-label{font-size:10px}.day-intro{padding:25px 0 19px}.day-heading-line h2{font-size:25px}.day-description{font-size:12px}.day-tip{font-size:10px;padding:11px 12px}.timeline-item{grid-template-columns:72px 20px minmax(0,1fr);column-gap:7px}.event-time{font-size:11px;padding-top:20px}.event>summary{padding:18px 0;gap:9px}.event-title{font-size:14px}.event-title-en{font-size:10px}.event-subtitle{font-size:11px}.event-detail{padding-left:28px;font-size:11px}.event-rail{padding-top:23px}.event-icon .icon{width:18px;height:18px}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:25px 23px;align-items:start;border-top:1px solid var(--line);padding-top:27px}.pass-card{grid-column:1/-1;max-width:none;padding:22px 23px}.pass-number{margin-top:7px;line-height:1.2;font-size:66px}.pass-card-top{font-size:10px}.pass-price{font-size:21px}.pass-perforation{margin:19px -23px 16px}.pass-window{justify-content:flex-start;gap:17px;font-size:11px}.pass-window-label{font-size:10px}.pass-window-note{font-size:10px}.side-section{margin:0}.side-section h2{font-size:18px}.section-kicker{font-size:7px;letter-spacing:1.2px}.booking-list{gap:16px}.booking-list li{gap:7px}.booking-list li>span{font-size:10px}.booking-list b{font-size:10px}.booking-list p{font-size:10px}.booking-list a{font-size:9px}.pass-stops li{font-size:10px;gap:7px}.stop-day{font-size:7px}.stop-number{min-width:14px}.sources{grid-column:1/-1;margin-top:0}.footer{margin-top:25px;padding:20px 0;flex-wrap:wrap;font-size:8px;gap:11px}.footer>span:nth-child(2){display:none}}
@media(max-width:370px){.topbar-inner,.page{padding-left:16px;padding-right:16px}.wordmark-note{display:none}.wordmark-divider{display:none}.hero-art{width:156px;right:0;bottom:34px;opacity:.25}h1{font-size:33px}.hero-description{font-size:11px}.day-tabs{gap:6px}.day-tabs button{padding:10px 9px}.tab-label{font-size:9px}.tab-date{font-size:25px}.day-heading-line h2{font-size:23px}.timeline-item{grid-template-columns:61px 17px minmax(0,1fr);column-gap:5px}.event-time{font-size:10px}.event-title{font-size:13px}.event>summary{gap:7px}.event-subtitle{font-size:10px}.event-icon .icon{width:16px;height:16px}.event-detail{padding-left:23px}.sidebar{grid-template-columns:1fr}.side-section{grid-column:1/-1}.booking-list b{font-size:12px}.booking-list p{font-size:11px}.pass-stops li{font-size:12px}.trip-meta{font-size:9px}.trip-meta span+span{margin-left:10px;padding-left:10px}.tab-top{letter-spacing:.4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{body{background:white}.topbar,.hero-art,.share-button,.day-tabs,.sidebar,.day-bottom,.footer,.event-chevron,.event-actions{display:none}.page{max-width:none;padding:0}.hero{padding:0 0 20px}.hero-description{display:none}.trip-strip{padding:10px 0}.layout{display:block}.event-detail{display:block}.event{break-inside:avoid}.day-intro{padding-top:20px}}
