:root{color-scheme:light;--paper:#f4efe6;--paper-2:#f7f3eb;--card:#fffaf3;--ink:#241c16;--muted:#5c534a;--line:#e3d5c4;--seal:#8e2d28;--seal-soft:#f8ece8;--moss:#1f4f43;--moss-soft:#e7f2ed;--gold:#6e5224;--shadow:0 10px 28px #3826120f;--serif:"Noto Serif TC", "Songti TC", "PMingLiU", serif;--sans:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;--display:"Fraunces", "Noto Serif TC", serif;--header-offset:7.25rem}*,:before,:after{box-sizing:border-box}html{overflow-x:clip}html,body{margin:0;padding:0}body{background:var(--paper);min-height:100vh;color:var(--ink);font-family:var(--sans);text-rendering:optimizelegibility;font-size:1rem;line-height:1.65;overflow-x:clip}img,svg,video{max-width:100%}a{color:inherit}:focus-visible{outline:3px solid var(--seal);outline-offset:2px}.skip{z-index:80;background:var(--card);color:var(--ink);border-radius:10px;padding:.6rem .8rem;position:absolute;top:-4rem;left:.75rem}.skip:focus{top:.5rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wrap{width:min(72rem,100% - 1.5rem);margin-inline:auto}.site-header{z-index:30;background:var(--paper-2);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top);position:sticky;top:0}.header-inner{gap:.45rem;width:min(72rem,100% - 1.5rem);margin-inline:auto;padding:.35rem 0 .55rem;display:grid}.brand-row,.day-row{align-items:center;gap:.5rem;display:flex}.brand-row{flex-wrap:wrap;justify-content:space-between}.brand{align-items:center;gap:.6rem;min-height:2.75rem;text-decoration:none;display:flex}.brand-mark{border:1.5px solid var(--seal);width:2.4rem;height:2.4rem;color:var(--seal);font-family:var(--serif);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.brand-title{font-family:var(--serif);font-weight:700;line-height:1.15;display:block}.brand-dates{color:var(--muted);font-size:.78rem;line-height:1.2;display:block}.main-nav{flex-wrap:wrap;gap:.25rem;display:flex}.main-nav a,.toggle a,.chip,.day-select select,.pager a,.dirs a,.link-row a,.legend-out,.legend button{touch-action:manipulation}.main-nav a{border-radius:999px;align-items:center;min-height:2.75rem;padding:0 .75rem;font-weight:700;text-decoration:none;display:inline-flex}.main-nav a[aria-current=page]{background:var(--ink);color:var(--paper)}.toggle{border:1px solid var(--ink);background:var(--card);border-radius:999px;flex:auto;min-width:0;display:flex;overflow:hidden}.toggle a{flex:1;place-items:center;min-width:4.5rem;min-height:2.75rem;font-weight:700;text-decoration:none;display:grid}.toggle a[aria-current=page]{background:var(--ink);color:var(--paper)}.day-select{flex:1.3 10rem;min-width:0}.day-select select{border:1px solid var(--ink);background:var(--card);width:100%;min-height:2.75rem;color:var(--ink);font:inherit;border-radius:999px;padding:0 .85rem;font-size:1rem}.day-chips{display:none}.chip{border:1px solid var(--line);background:var(--card);border-radius:14px;flex:none;place-items:center;min-width:4.4rem;min-height:3rem;padding:.25rem .45rem;line-height:1.1;text-decoration:none;display:grid}.chip-date{font-family:var(--display);font-size:.95rem;font-weight:650}.chip-week{color:var(--muted);font-size:.75rem}.chip[aria-current=page]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.chip[aria-current=page] .chip-week{color:#f0e4d4}.site-footer{padding:1.25rem 0 2rem;padding-bottom:calc(2rem + env(safe-area-inset-bottom));color:var(--muted);margin-top:2.5rem;font-size:.9rem}.site-footer p{margin:.3rem 0}.page-intro,.day-hero,.cover{padding-top:1.1rem}.eyebrow{color:var(--gold);letter-spacing:.08em;margin:0;font-size:.78rem;font-weight:700}h1,h2,h3{font-family:var(--serif);font-weight:700;line-height:1.25}.cover h1{letter-spacing:-.04em;margin:.15rem 0;font-size:clamp(4.2rem,20vw,7.5rem);line-height:.9}.range{font-family:var(--display);margin:.2rem 0 0;font-size:clamp(1.35rem,3vw,1.8rem);font-weight:650}.lede,.page-intro p,.day-hero p{color:var(--muted)}.lede{max-width:38rem;font-size:1.05rem}.ticket-grid,.day-list,.card-list,.group{gap:.75rem;display:grid}.section-head{justify-content:space-between;align-items:baseline;gap:.75rem;margin:1.6rem 0 .7rem;display:flex}.section-head h2{margin:0;font-size:1.45rem}.section-head a{color:var(--moss);align-items:center;min-height:2.75rem;font-weight:700;text-decoration:none;display:inline-flex}.ticket{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--seal);box-shadow:var(--shadow);border-radius:18px;padding:.95rem 1rem 1rem}.ticket-code{font-family:var(--display);letter-spacing:.02em;margin:0;font-size:1.7rem;font-weight:650}.ticket-route{font-family:var(--serif);margin:.1rem 0 .45rem;font-size:1.15rem}.times{gap:1rem;margin:0;display:flex}.times div{min-width:4.5rem}.times dt{color:var(--muted);font-size:.75rem}.times dd{font-family:var(--display);margin:0;font-size:1.35rem;font-weight:650}.meta-line{color:var(--muted);margin:.55rem 0 0;font-size:.92rem}.air-note{background:var(--seal-soft);color:#6d241f;border-radius:12px;margin:.65rem 0 0;padding:.5rem .65rem}.day-card{background:var(--card);border:1px solid var(--line);min-height:5.6rem;box-shadow:var(--shadow);border-radius:18px;grid-template-columns:4.6rem minmax(0,1fr);align-items:center;gap:.75rem;padding:.85rem .95rem;text-decoration:none;display:grid}.day-card-date{font-family:var(--display);line-height:.95}.day-card-date span{color:var(--muted);letter-spacing:.08em;font-size:.72rem;display:block}.day-card-date b{font-size:1.85rem;font-weight:650;display:block}.day-card h3{margin:0;font-size:1.08rem}.day-card p{color:var(--muted);margin:.2rem 0 0;font-size:.9rem}.summary-grid{gap:.75rem;margin-top:.75rem;display:grid}.summary-card{background:var(--moss);color:#f3faf6;border-radius:18px;min-height:5.5rem;padding:.95rem 1rem;text-decoration:none;display:block}.summary-card.alt{background:var(--card);color:var(--ink);border:1px solid var(--line)}.summary-card span{opacity:.85;font-size:.8rem;display:block}.summary-card strong{font-family:var(--serif);margin-top:.15rem;font-size:1.35rem;display:block}.day-hero h1,.page-intro h1{margin:.15rem 0 .35rem;font-size:clamp(1.7rem,4.5vw,2.5rem)}.is-map .day-hero{padding-top:.65rem}.is-map .day-hero h1{margin-bottom:.25rem;font-size:clamp(1.35rem,4vw,2rem)}.day-kicker{color:var(--muted);flex-wrap:wrap;gap:.45rem .7rem;margin:0;font-size:.92rem;display:flex}.day-en{font-family:var(--display);color:var(--ink);letter-spacing:.04em;font-weight:650}.pending-pill{color:#7a3e0c;background:#fbe8d4;border-radius:999px;align-items:center;min-height:1.7rem;padding:0 .55rem;font-size:.8rem;font-weight:700;display:inline-flex}.dirs{gap:.5rem;margin:.4rem 0 1rem;display:grid}.dirs a{background:var(--moss);color:#f4faf7;border-radius:14px;align-items:center;min-height:2.75rem;padding:.55rem .85rem;font-weight:700;text-decoration:none;display:flex}.timeline{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.stop{grid-template-columns:minmax(0,1fr);gap:.3rem;display:grid}.stop-time time{font-family:var(--display);font-variant-numeric:lining-nums;font-size:1.25rem;font-weight:650}.stop-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;min-width:0;padding:.9rem 1rem 1rem}.stop[data-kind=flight] .stop-card{border-left:4px solid var(--seal)}.stop[data-kind=stay] .stop-card{border-left:4px solid var(--moss)}.stop[data-kind=open] .stop-card{box-shadow:none;background:0 0;border-style:dashed}.stop-head{justify-content:space-between;align-items:flex-start;gap:.7rem;display:flex}.kicker{color:var(--gold);margin:0 0 .15rem;font-size:.75rem;font-weight:700}.stop-card h2,.item-card h2,.backup-card h2{margin:0;font-size:1.18rem}.detail{margin:.45rem 0 0}.facts{gap:.55rem;margin:.8rem 0 0;display:grid}.facts div{min-width:0}.facts dt{color:var(--muted);font-size:.75rem;font-weight:700}.facts dd{margin:.1rem 0 0}.line{display:block}.transport dd{border-left:3px solid var(--moss-soft);padding-left:.65rem}.badge{white-space:nowrap;border-radius:999px;flex:none;padding:.18rem .55rem;font-size:.75rem;font-weight:700;line-height:1.45}.badge.booked{color:#145c38;background:#e7f3ec}.badge.todo{color:#7a3e0c;background:#fbe8d4}.badge.check{color:#6a4b10;background:#f8f1dc}.badge.onsite{color:#1a4f78;background:#e7f1f8}.badge.free{color:#5c534a;background:#f3eee6}.badge.backup,.badge.cancelled{color:#5c534a;background:#eeeae4}.item-card.shelved,.backup-card{background:var(--card)}.item-card.shelved{opacity:.86}.link-row{flex-wrap:wrap;gap:.45rem;margin-top:.8rem;display:flex}.link-row a,.text-chip,.legend-out{border:1px solid var(--line);background:var(--moss-soft);min-height:2.75rem;color:var(--moss);overflow-wrap:anywhere;border-radius:999px;align-items:center;padding:.35rem .75rem;font-weight:700;text-decoration:none;display:inline-flex}.text-chip{color:var(--muted);background:0 0;font-weight:500}.pin-note{color:var(--gold);margin:.55rem 0 0;font-size:.92rem}.approx-hint,.noscript{color:var(--muted);margin:0 0 .7rem;font-size:.92rem}.map-layout{gap:.75rem;display:grid}.map-canvas{border:1px solid var(--line);background:#e7efe9;border-radius:18px;height:min(68dvh,40rem);min-height:18rem;overflow:hidden}.legend{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.legend li{align-items:stretch;gap:.4rem;display:flex}.legend button{text-align:left;border:1px solid var(--line);background:var(--card);min-width:0;min-height:2.75rem;color:inherit;font:inherit;cursor:pointer;border-radius:14px;flex:1;align-items:center;gap:.65rem;padding:.45rem .6rem;display:flex}.legend-num{background:var(--moss);color:#f4faf7;width:1.7rem;height:1.7rem;font-family:var(--display);border-radius:50%;flex:none;place-items:center;font-size:.85rem;font-weight:650;display:grid}.legend-num.flight{background:var(--seal)}.legend-num.approx{background:var(--gold)}.legend-copy{min-width:0;display:grid}.legend-time{color:var(--muted);font-size:.78rem}.legend-title{font-weight:700}.legend-note{color:var(--gold);font-size:.8rem}.legend-out{background:var(--card);flex:none}.pager{grid-template-columns:1fr 1fr;gap:.6rem;margin-top:1.25rem;display:grid}.pager a{border:1px solid var(--line);background:var(--card);border-radius:16px;flex-direction:column;justify-content:center;gap:.1rem;min-height:4.5rem;padding:.7rem .8rem;text-decoration:none;display:flex}.pager-next{text-align:right;align-items:flex-end}.pager-kicker{color:var(--muted);font-size:.78rem}.pager-date{font-family:var(--display);font-weight:650}.pager-title{font-size:.92rem}.group h2{margin:1.4rem 0 .65rem;font-size:1.3rem}.item-card,.backup-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:.9rem 1rem 1rem}.item-type{color:var(--muted);margin:.2rem 0 0;font-size:.9rem}.backup-when{margin:.35rem 0 0}.empty{border:1px dashed var(--line);color:var(--muted);border-radius:16px;padding:1rem}.leaflet-container{font-family:var(--sans);background:#e7efe9;width:100%;height:100%}.leaflet-div-icon.pin{background:var(--moss);color:#f4faf7;border:2px solid #fffaf3;border-radius:50%;place-items:center;margin:0;display:grid;box-shadow:0 1px 4px #241c1659;width:32px!important;height:32px!important}.leaflet-div-icon.pin span{font-family:var(--display);font-size:.85rem;font-weight:650;line-height:1}.leaflet-div-icon.pin-flight{background:var(--seal)}.leaflet-div-icon.pin-approx{background:var(--gold)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--card);color:var(--ink)}.leaflet-popup-content-wrapper{border-radius:14px;box-shadow:0 8px 24px #241c1629}.leaflet-popup-content{margin:.7rem .8rem}.pop strong{font-family:var(--serif);font-size:1rem;display:block}.pop p{margin:.2rem 0 0}.pop-note{color:var(--gold);font-size:.85rem}.pop a{min-height:2.75rem;color:var(--moss);align-items:center;margin-top:.35rem;font-weight:700;display:inline-flex}@media (width>=720px){.wrap,.header-inner{width:min(72rem,100% - 2.5rem)}.wrap:not(.is-map) .day-hero,.wrap:not(.is-map) .dirs,.wrap:not(.is-map) .timeline,.wrap:not(.is-map) .pager{max-width:46rem}.stop{grid-template-columns:5.2rem minmax(0,1fr);align-items:start;gap:.8rem}.stop-time{text-align:right;padding-top:.85rem}.ticket-grid,.summary-grid,.dirs,.day-list{grid-template-columns:1fr 1fr}}@media (width>=960px){.day-select{display:none}.toggle{flex:0 0 16rem}.day-chips{overscroll-behavior-x:contain;gap:.4rem;padding-bottom:.1rem;display:flex;overflow-x:auto}.map-layout{grid-template-columns:minmax(0,1fr) 22rem;align-items:start}.map-canvas,.legend{height:calc(100dvh - 13.5rem);min-height:28rem}.legend{padding-right:.15rem;overflow:auto}:root{--header-offset:9.5rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
