
:root{--bg:#fdf8f4;--pink:#f48fb1;--pinksoft:#fce4ec;--ink:#3e2723;--muted:#795548;--line:#d7ccc8;--green:#f1f8e9;--yellow:#fff8e1;--link:#235b38;font-size:18px;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--bg);background-image:radial-gradient(#d7ccc8 1px,transparent 1px);background-size:20px 20px;color:var(--ink);font-family:"Microsoft JhengHei","PingFang TC",system-ui,sans-serif;line-height:1.75}a{color:var(--link);text-underline-offset:3px}button,select{font:inherit;color:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}:focus-visible{outline:3px solid #256c79;outline-offset:4px}.skip{position:fixed;top:-80px;background:white;z-index:9;padding:10px}.skip:focus{top:0}.mast{max-width:1080px;margin:24px auto 12px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.mast h1{font-size:1.7rem;margin:0;letter-spacing:.04em}.mast p{margin:0;color:var(--muted);font-size:.88rem}.postcard{margin:0;width:300px;flex:none}.postcard img{display:block;width:100%;height:85px;object-fit:cover;border:5px solid white;box-shadow:0 3px 12px #3e272318;border-radius:5px}.postcard figcaption{font-size:.7rem;color:var(--muted);text-align:right}.nav-container{position:sticky;top:0;z-index:5;background:#fdf8f4f5;border-block:2px dashed var(--line);backdrop-filter:blur(8px)}.nav-scroll{max-width:1080px;margin:auto;display:flex;gap:8px;overflow-x:auto;padding:14px 24px;scrollbar-width:thin}.tab-btn{flex:none;border:1px solid var(--line);border-radius:25px;background:white;padding:8px 18px;min-height:48px;text-decoration:none;color:var(--ink);font-size:.9rem;font-weight:700}.tab-btn[aria-current=page]{background:var(--pink);border-color:#ba5477;color:#3e2723;box-shadow:0 3px 6px #f48fb133}.main{max-width:1040px;margin:24px auto;padding:0 24px}.day-card{scroll-margin-top:110px;padding:30px 36px;background:white;border:1px solid #e8dcd6;border-radius:20px;box-shadow:0 6px 24px #3e27230d;margin-bottom:26px}.enhanced .day-card:not(.active){display:none}.eyebrow{font-size:.88rem;font-weight:700;color:var(--muted);margin:0}.day-card h2{font-size:1.65rem;line-height:1.45;margin:3px 0 15px}.day-header{border-bottom:2px dashed #e0e0e0;padding-bottom:18px;margin-bottom:22px}.meta{display:flex;flex-wrap:wrap;gap:8px}.tag{background:#f6f3f1;padding:6px 10px;border-left:4px solid var(--pink);border-radius:6px;font-size:.88rem}.weather{margin:12px 0 0;font-size:.86rem;color:#49606a}.tip{background:#fffde7;border-left:5px solid #e6bb40;padding:14px 18px;border-radius:10px;margin-bottom:16px}.tip strong{display:block}.tip p{margin:2px 0}.notice{padding:12px 18px;border:1px solid #dcb97a;border-radius:10px;background:#fffaf2;margin-bottom:18px;font-size:.92rem}.notice p{margin:6px 0}.notice a{font-size:.88rem}.section-title{font-size:1.2rem;margin:26px 0 10px}.timeline{list-style:none;padding:0;margin:0}.timeline li{display:flex;gap:16px;padding:18px 16px 18px 42px;position:relative;border-radius:9px}.timeline li:nth-child(odd){background:var(--green)}.timeline li:before{content:"";position:absolute;left:20px;top:29px;bottom:-28px;width:2px;background:var(--line)}.timeline li:last-child:before{display:none}.timeline li:after{content:"";position:absolute;left:16px;top:28px;width:10px;height:10px;background:var(--pink);border-radius:50%;box-shadow:0 0 0 3px white}.time{flex:0 0 130px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.event{flex:1;min-width:0}.map-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.map-link{display:inline-flex;align-items:center;min-height:44px;border:1px solid #afc8b3;background:#edf6ee;border-radius:20px;padding:4px 12px;font-size:.82rem;text-decoration:none}.food-section{background:var(--yellow);border:1px solid #efdc9b;border-radius:14px;padding:0 20px 20px;margin:26px 0}.food-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.food-card{background:white;padding:13px 16px;border:1px solid #f0e3bf;border-radius:9px}.food-label{font-weight:bold;color:#87511c;font-size:.88rem;margin:0 0 4px}.food-card p:last-child{margin:0}.references{font-size:.88rem;border-top:1px dashed var(--line);padding-top:14px;overflow-wrap:anywhere}summary{cursor:pointer;min-height:44px;padding:6px 0;font-weight:700}.references p{margin:8px 0}.refs-list{max-height:400px;overflow:auto;padding-right:10px}.pager{display:none;gap:12px;justify-content:space-between;margin:18px 0}.enhanced .pager{display:flex}.pager button,.print{border:1px solid var(--line);background:white;border-radius:20px;min-height:48px;padding:8px 20px}.footer{max-width:1000px;margin:0 auto 40px;padding:0 24px;color:var(--muted);font-size:.82rem}.footer p{margin:8px 0}.top-btn{position:fixed;right:18px;bottom:18px;border:1px solid #ba5477;border-radius:50%;width:50px;height:50px;background:var(--pink);color:var(--ink);font-weight:bold;display:none}.top-btn.visible{display:block}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0}.print{font-size:.86rem}.noscript{padding:10px}.source-code{font-family:monospace;font-size:.8em;color:var(--muted)}
@media(max-width:650px){:root{font-size:18px}.mast{padding:0 16px;margin-top:18px}.mast h1{font-size:1.25rem}.postcard{width:120px}.postcard img{height:70px}.postcard figcaption{font-size:.65rem}.main{padding:0 12px;margin-top:16px}.day-card{scroll-margin-top:110px;padding:20px 16px;border-radius:14px}.day-card h2{font-size:1.35rem}.timeline li{padding:15px 10px 15px 27px;gap:10px;flex-direction:column}.timeline li:before{left:10px}.timeline li:after{left:6px;top:25px}.time{flex:auto;font-size:.92rem}.food-grid{grid-template-columns:1fr}.nav-scroll{padding-inline:12px}.tag{width:100%}.food-section{padding-inline:14px}.pager button{padding:8px 14px}.postcard figcaption span{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media print{body{background:white;font-size:10pt}.mast{max-width:none}.postcard,.nav-container,.pager,.toolbar,.top-btn,.references,.footer,.skip{display:none!important}.main{max-width:none;margin:0;padding:0}.day-card,.enhanced .day-card:not(.active){display:block!important;box-shadow:none;border:0;border-radius:0;padding:0;break-before:page}.day-card:first-child{break-before:auto}.day-header{margin:0}.timeline li{padding:5px 0;break-inside:avoid;border-bottom:1px solid #ddd}.timeline li:before,.timeline li:after,.map-links{display:none}.time{flex-basis:100px}.tip,.notice{break-inside:avoid}.food-section{break-inside:avoid}.mast h1{font-size:16pt}.food-grid{grid-template-columns:1fr 1fr}.day-card h2{font-size:14pt}}
