:root{--bg: #f3efe6;--bg-deep: #e7e0d2;--ink: #1c1914;--muted: #5c564c;--line: #d2c9b8;--card: #fffcf7;--accent: #0f5c4c;--accent-soft: #d8ebe4;--today: #b45309;--map: #1a56a8;--radius: 14px;--shadow: 0 8px 24px rgba(28, 25, 20, .06);--font-display: "Noto Serif TC", "Source Han Serif TC", "Songti TC", serif;--font-body: "Noto Sans TC", "PingFang TC", "Hiragino Sans GB", sans-serif;--safe-bottom: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;font-family:var(--font-body);color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,#fff8e8 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#e4f0ea 0%,transparent 50%),linear-gradient(180deg,var(--bg) 0%,var(--bg-deep) 100%);line-height:1.55}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.shell{width:min(720px,100%);margin:0 auto;padding:1rem 1rem calc(5.5rem + var(--safe-bottom))}.site-header{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1.25rem}.brand{font-family:var(--font-display);font-size:clamp(1.55rem,5.5vw,2rem);font-weight:700;letter-spacing:.02em;line-height:1.25}.subtitle{color:var(--muted);font-size:.95rem}.top-nav{display:flex;gap:.5rem;flex-wrap:wrap;margin:.75rem 0 1.25rem}.top-nav a{padding:.45rem .85rem;border-radius:999px;background:#fffcf7b3;border:1px solid var(--line);font-size:.9rem}.top-nav a[aria-current=page]{background:var(--accent);border-color:var(--accent);color:#fff}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.05rem;margin-bottom:.9rem}.panel h2{margin:0 0 .55rem;font-family:var(--font-display);font-size:1.15rem}.meta-list{margin:0;padding:0;list-style:none;display:grid;gap:.65rem}.meta-list li{display:grid;gap:.15rem}.meta-label{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.day-grid{display:grid;gap:.65rem}.day-link{display:grid;gap:.2rem;padding:.9rem 1rem;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}.day-link.is-today{border-color:var(--today);box-shadow:0 0 0 2px #b453092e}.day-link .day-num{font-weight:700;color:var(--accent)}.day-link .day-title{font-size:.95rem}.day-link .day-date{font-size:.82rem;color:var(--muted)}.bilingual{display:grid;gap:.1rem}.bilingual .zh{font-weight:650}.bilingual .ja{font-size:.88rem;color:var(--muted)}.stop-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem;margin-bottom:.75rem}.stop-card--swipeable{overflow:hidden}.swipe-hint{margin:0 0 .45rem;font-size:.78rem;color:var(--muted);letter-spacing:.02em}.stop-swipe-track{display:grid;grid-auto-flow:column;grid-auto-columns:100%;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;outline:none;cursor:grab;user-select:none;-webkit-user-select:none}.stop-swipe-track.is-dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}.stop-swipe-track a,.stop-swipe-track button{user-select:auto;-webkit-user-select:auto;cursor:pointer}.stop-swipe-track::-webkit-scrollbar{display:none}.stop-swipe-track:focus-visible{box-shadow:0 0 0 2px #0f5c4c59;border-radius:8px}.stop-slide{scroll-snap-align:start;scroll-snap-stop:always;min-width:0}.more-info-btn{background:var(--accent)}.swipe-dots{display:flex;justify-content:center;gap:.4rem;margin-top:.7rem}.swipe-dot{width:.45rem;height:.45rem;border-radius:999px;background:var(--line)}.swipe-dot.is-active{background:var(--accent);width:1rem}.stop-time{display:inline-block;font-size:.82rem;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:.2rem .55rem;border-radius:999px;margin-bottom:.55rem}.stop-details,.stop-food{margin:.45rem 0 0;font-size:.94rem}.stop-food-label{font-size:.78rem;color:var(--muted);margin-top:.7rem}.maps-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.85rem}.maps-btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.65rem .75rem;border-radius:12px;font-weight:700;font-size:.95rem;text-align:center;background:var(--map);color:#fff}.maps-btn.secondary{background:#fff;color:var(--map);border:1.5px solid var(--map)}.maps-btn:only-child{grid-column:1 / -1}.day-hero{margin-bottom:1rem}.day-hero h1{margin:0 0 .35rem;font-family:var(--font-display);font-size:clamp(1.35rem,5vw,1.75rem);line-height:1.3}.day-meta{color:var(--muted);font-size:.92rem}.tip-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;margin-bottom:.75rem;box-shadow:var(--shadow)}.tip-card h2{margin:0 0 .3rem;font-size:1.05rem;font-family:var(--font-display)}.tip-reminder{color:var(--today);font-weight:650;margin:0 0 .35rem;font-size:.92rem}.tip-guide{margin:0;color:var(--ink);font-size:.94rem}.day-nav{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:.55rem .65rem calc(.55rem + var(--safe-bottom));background:#fffcf7eb;border-top:1px solid var(--line);backdrop-filter:blur(10px)}.day-nav-inner{width:min(720px,100%);margin:0 auto;display:flex;gap:.4rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.day-nav-inner::-webkit-scrollbar{display:none}.day-chip{flex:0 0 auto;min-width:2.6rem;min-height:2.6rem;padding:.35rem .55rem;border-radius:999px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;font-weight:700;font-size:.9rem}.day-chip.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.day-chip.is-today:not(.is-active){border-color:var(--today);color:var(--today)}.hotel-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;margin-bottom:.75rem;box-shadow:var(--shadow)}.hotel-nights{color:var(--muted);font-size:.88rem;margin:.25rem 0 .45rem}.empty-note{color:var(--muted);font-size:.92rem}
