: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);--safe-top: env(safe-area-inset-top, 0px);--day-topbar-height: 3.15rem}*,*: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))}body.has-day-topbar .shell{padding-top:calc(1rem + var(--day-topbar-height) + var(--safe-top))}.day-topbar{position:fixed;top:0;left:0;right:0;z-index:45;padding:var(--safe-top) .65rem 0;background:#fffcf7eb;border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.day-topbar-inner{width:min(720px,100%);margin:0 auto;min-height:var(--day-topbar-height);display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;padding:.3rem 0}.day-topbar-label{flex:1;min-width:0;font-weight:700;font-size:.95rem;letter-spacing:.02em;color:var(--accent);text-align:left;white-space:nowrap}.view-switch{display:flex;flex:0 0 auto;gap:.3rem}.view-switch button{width:2.5rem;height:2.5rem;padding:0;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);display:grid;place-items:center}.view-switch svg{width:1.35rem;height:1.35rem;display:block}.view-switch button.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.eat-note{margin:0 0 .75rem;color:var(--muted);line-height:1.45}.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}.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,.bilingual .romaji{font-size:.88rem;color:var(--muted)}.bilingual .romaji{user-select:text;-webkit-user-select:text}.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:after{content:"";display:block;clear:both}.stop-thumb{float:right;width:4.5rem;height:4.5rem;margin:0 0 .4rem .75rem;object-fit:cover;border-radius:10px;pointer-events:none}.stop-slide:after{content:"";display:block;clear:both}.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}.hotel-address{margin:.45rem 0 0;font-size:.9rem;color:var(--muted);line-height:1.45}.mapcode-value{margin:.85rem 0 0;padding:.85rem .75rem;border-radius:12px;background:var(--accent-soft);border:1px dashed var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:clamp(1.25rem,5.5vw,1.55rem);font-weight:700;letter-spacing:.06em;text-align:center;color:var(--ink);user-select:text;-webkit-user-select:text}.mapcode-missing{margin:.85rem 0 0;padding:.75rem;border-radius:12px;background:#fff4e5;color:var(--today);font-size:.92rem}.mapcode-tip{margin:.65rem 0 0;font-size:.82rem;color:var(--muted);line-height:1.45}.empty-note{color:var(--muted);font-size:.92rem}
