@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700&family=Noto+Serif+TC:wght@500;600;700;900&display=swap');
:root{--paper:#f5efdf;--ink:#303c33;--red:#ad4b36;--green:#254e48;--line:#d7cdb5;--muted:#756e5e}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;color:var(--ink);background:var(--paper);font-family:'Noto Sans TC',sans-serif;font-size:16px;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' opacity='.035' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}button,input,select{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button,select{cursor:pointer}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid #cb8b25;outline-offset:4px}button{border:0}header{max-width:1480px;margin:auto;padding:24px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:25px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-family:'Noto Serif TC',serif;font-size:25px;font-weight:900;letter-spacing:3px}.brand small{display:block;font:11px Arial;letter-spacing:2px;margin-top:4px}.radio{display:grid;place-content:center;width:49px;height:36px;border:2px solid var(--red);border-radius:8px;color:var(--red);font-size:28px;position:relative}.radio:before{content:'';position:absolute;width:24px;height:9px;border:2px solid var(--red);border-bottom:0;top:-11px;left:10px;border-radius:5px 5px 0 0}.radio i{position:absolute;width:6px;height:6px;background:var(--red);border-radius:50%;right:5px;top:7px}nav{display:flex;gap:30px}nav a{text-decoration:none;font-weight:500;font-size:15px;padding:10px 0}nav .active{border-bottom:2px solid var(--red);color:var(--red)}.channel{text-decoration:none;border:1px solid var(--ink);padding:11px 17px;font-size:14px;border-radius:3px}.intro{text-align:center;padding:45px 20px 38px;position:relative;max-width:1100px;margin:auto}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:600;color:var(--muted)}.intro .eyebrow{color:var(--red);display:flex;align-items:center;justify-content:center;gap:13px;letter-spacing:4px}.intro .eyebrow span{height:1px;width:24px;background:var(--red)}h1,h2,h3{font-family:'Noto Serif TC',serif}h1{font-weight:900;font-size:clamp(30px,3vw,44px);letter-spacing:3px;line-height:1.55;margin:17px 0 12px}h1 em{font-style:normal;color:var(--red)}.intro p{color:var(--muted);font-size:15px;line-height:2;letter-spacing:1px;margin:0}.stamp{position:absolute;right:40px;top:57px;transform:rotate(12deg);border:3px double var(--red);border-radius:50%;color:var(--red);width:72px;height:72px;display:grid;place-content:center;font-family:'Noto Serif TC';letter-spacing:3px;font-size:17px;opacity:.7}.mobile-break{display:none}.explorer{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(350px,1fr);max-width:1380px;margin:0 auto;border:1px solid #c4b89d;box-shadow:0 8px 0 #e5dcc8;border-radius:8px;overflow:hidden}.map-panel{background:var(--green);position:relative;display:flex;flex-direction:column;min-width:0;color:var(--paper)}.map-heading{display:flex;justify-content:space-between;align-items:center;padding:27px 30px 0;position:absolute;z-index:1;width:100%;pointer-events:none}.map-heading .eyebrow{color:#b6c4ab}.map-heading h2{font-size:23px;font-weight:600;letter-spacing:2px;margin:9px 0}.quiet{pointer-events:auto;border:1px solid #7c9382;color:#e3dfca;background:#254e48;border-radius:20px;font-size:13px;padding:8px 12px;min-height:36px}.map-stage{flex:1;min-height:650px;display:flex;align-items:center;justify-content:center;overflow:hidden}#taiwan{width:100%;max-height:760px;display:block}.county-shape{fill:#c6c99a;stroke:#687756;stroke-width:.8;cursor:pointer;transition:fill .2s}.county-shape.has-food{fill:#e7d6a1}.county-shape:hover,.county-shape.selected{fill:#eeb36d;stroke:#985035;stroke-width:2}.county-shape:focus{fill:#eeb36d}.county-name{fill:#4c5c43;font-size:14px;pointer-events:none}.map-bottom{display:flex;gap:10px;justify-content:space-between;padding:16px 23px;border-top:1px solid #57756a;font-size:12px;color:#d8dfcc;background:#21453f}.legend-dot{width:7px;height:7px;border-radius:50%;background:#dfb267;display:inline-block;margin-right:5px}.county-pin{cursor:pointer}.county-pin rect{fill:#f8efda;stroke:#77533e;stroke-width:1.4}.county-pin text{fill:#3d493c;font-size:16px;font-weight:600}.county-pin .badge{fill:#ac4a35;stroke:none}.county-pin .count{fill:white;font-size:14px}.county-pin:hover rect,.county-pin:focus rect{fill:#f0d69b}.county-pin:hover .badge{fill:#ac4a35}.food-pin{cursor:pointer}.food-pin circle{fill:var(--red);stroke:#fff2d2;stroke-width:2}.food-pin text{fill:#fff;font-size:15px;font-weight:700}.food-pin:hover circle{fill:#713a29}.wanderer{animation:wander 12s ease-in-out infinite alternate}.wanderer.reverse{animation-direction:alternate-reverse;animation-duration:17s}.boat{animation:boat 6s ease-in-out infinite alternate}.paused .wanderer,.paused .boat{animation-play-state:paused!important}@keyframes wander{from{transform:translate(-14px,0)}to{transform:translate(19px,-12px)}}@keyframes boat{to{transform:translate(12px,4px) rotate(2deg)}}.food-panel{padding:29px 27px 16px;display:flex;flex-direction:column;min-width:0;background:#f8f3e6}.panel-title h2{font-size:25px;letter-spacing:2px;margin:9px 0}.panel-title h2 span{font-family:Arial;font-size:15px;background:#e8dfc9;border-radius:20px;letter-spacing:0;padding:4px 9px;vertical-align:middle}.panel-title p{font-size:14px;color:var(--muted);margin:0 0 20px}.search{display:flex;align-items:center;border:1px solid #cfc3a8;background:#fffaf0;border-radius:4px;padding:0 12px;gap:8px}.search span{font-size:25px;color:#796d57}.search input{border:0;background:transparent;min-width:0;width:100%;padding:13px 0;font-size:14px;outline-offset:0}.select-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px}.select-row select{width:100%;padding:10px;border:1px solid #cfc3a8;border-radius:4px;background:#fffaf0;min-height:42px;font-size:14px}.categories{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0 10px}.categories button{font-size:13px;padding:7px 10px;border:1px solid #d3c6aa;border-radius:20px;background:transparent;min-height:34px}.categories button.selected{background:var(--green);color:white;border-color:var(--green)}.list-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);padding:7px 0 8px}.text-button{background:none;font-size:13px;color:var(--red);text-decoration:underline;text-underline-offset:3px;min-height:30px}.restaurant-list{height:397px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#c4b89e transparent;padding-right:6px}.restaurant-card{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:15px 0;border-top:1px solid #ded3bd;background:transparent;transition:background .2s;min-height:105px}.restaurant-card:hover{background:#efe6d2}.food-art{width:66px;height:66px;flex-shrink:0;background:#e5dfc9;border-radius:50%;display:grid;place-items:center}.food-art svg{width:57px;height:57px}.card-copy{flex:1;min-width:0}.card-copy .meta{font-size:12px;color:var(--red);letter-spacing:1px}.card-copy h3{font-size:17px;margin:5px 0;font-weight:700;line-height:1.5}.card-copy p{font-size:13px;color:var(--muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arrow{color:var(--red);font-size:20px}.source-note{font-size:12px;line-height:1.8;color:var(--muted);margin:12px 0 0;border-top:1px solid var(--line);padding-top:10px}.empty{padding:40px 12px;text-align:center;color:var(--muted);line-height:1.9}.empty b{display:block;color:var(--ink);font-size:18px;margin:10px}.empty button{margin-top:12px;padding:10px 16px;background:var(--green);color:white;border-radius:3px}.episodes{max-width:1300px;margin:65px auto 45px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:22px}.section-heading h2{font-size:27px;letter-spacing:2px;margin:9px 0}.section-heading p{font-size:14px;color:var(--muted)}.episode-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.episode-card{border:1px solid var(--line);padding:10px;background:#faf4e5;box-shadow:3px 3px 0 #e6dbc2}.episode-image{position:relative;aspect-ratio:16/9;background:#254e48;overflow:hidden}.episode-image img{width:100%;height:100%;object-fit:cover}.episode-image .ep-label{position:absolute;bottom:8px;left:8px;background:var(--red);color:white;padding:4px 8px;font:13px Arial;letter-spacing:1px}.episode-card h3{font-size:16px;line-height:1.6;margin:13px 3px 8px}.episode-actions{display:flex;justify-content:space-between;align-items:center;padding:0 3px}.episode-actions a,.episode-actions button{font-size:12px;color:var(--red);background:none;padding:8px 0}.about{max-width:1300px;margin:60px auto;display:grid;grid-template-columns:1fr 2fr;gap:50px;padding:35px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.about h2{font-size:27px;line-height:1.7;letter-spacing:2px}.about p{font-size:14px;line-height:2.1;color:var(--muted);margin:0 0 12px}.about p.small{font-size:12px}footer{max-width:1380px;margin:auto;padding:0 0 30px;display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}footer>span:first-child{font-family:'Noto Serif TC';font-size:17px;color:var(--ink);font-weight:700}footer i{font-size:13px;color:var(--red);margin-left:8px;font-style:normal}dialog{border:1px solid #b9a484;border-radius:8px;background:var(--paper);color:var(--ink);width:min(720px,calc(100% - 28px));max-height:90dvh;padding:0;box-shadow:0 20px 80px #132e2780}dialog::backdrop{background:#142c29b8;backdrop-filter:blur(4px)}.close{position:sticky;top:12px;float:right;margin:12px 12px -56px 0;z-index:2;width:42px;height:42px;border-radius:50%;background:#fbf4e1;border:1px solid #d1b997;font-size:28px}.detail-top{padding:35px 40px 27px;background:#e8dfc6;border-bottom:1px solid #c9b997}.detail-top h2{font-size:29px;line-height:1.6;letter-spacing:1px;margin:12px 0}.detail-top p{font-size:14px;color:var(--muted);line-height:1.9}.detail-content{padding:25px 40px 35px}.detail-content h3{font-size:18px;margin:24px 0 12px}.info-line{display:grid;grid-template-columns:60px 1fr;gap:15px;font-size:14px;line-height:1.9;margin-bottom:12px}.info-line dt{color:var(--muted)}.info-line dd{margin:0}.dish-list{padding:0;list-style:none;display:flex;gap:8px;flex-wrap:wrap}.dish-list li{border:1px solid #d6c7a8;border-radius:3px;padding:8px 13px;font-size:14px;background:#fcf7eb}.notice{background:#e9dfc9;border-left:3px solid #a36a37;padding:12px;font-size:13px;line-height:1.9;color:#66553d}.detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.detail-actions a{padding:12px 18px;border-radius:3px;background:var(--green);color:white;text-decoration:none;font-size:14px}.detail-actions a:first-child{background:var(--red)}.source-detail{font-size:12px;line-height:1.9;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.skip{position:absolute;top:-80px;left:20px;z-index:20;background:var(--paper);padding:15px}.skip:focus{top:10px}
@media(min-width:1500px){.map-stage{min-height:740px}.restaurant-list{height:470px}}@media(max-width:1420px){.explorer,.episodes,.about,footer{margin-left:4%;margin-right:4%}.stamp{right:20px}.map-stage{min-height:650px}}@media(max-width:1000px){header{padding:22px 4%;gap:15px}nav{gap:20px}.channel{display:none}.explorer{grid-template-columns:minmax(0,1.15fr) minmax(320px,1fr)}.food-panel{padding:23px 18px 15px}.map-heading{padding:23px 20px 0}.map-heading h2{font-size:19px}.quiet{font-size:12px;padding:6px 8px}.map-stage{min-height:650px}#taiwan{width:120%;max-width:none;flex-shrink:0}.stamp{display:none}.map-bottom{flex-direction:column;gap:8px}.episode-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){header{padding:19px 5%}.brand{font-size:21px}.radio{width:40px;height:30px;font-size:22px}.radio:before{width:20px;left:8px}.brand small{font-size:10px}nav a{font-size:13px}nav a:last-child{display:none}nav{gap:15px}.intro{padding:31px 15px 28px}.intro .eyebrow{font-size:11px;letter-spacing:2px}h1{font-size:29px;letter-spacing:1px;margin-top:12px}h1 em{display:block}.intro p{font-size:13px;letter-spacing:0}.mobile-break{display:block}.explorer{display:flex;flex-direction:column;margin-left:4%;margin-right:4%}.map-stage{min-height:0;padding-top:50px}#taiwan{width:100%;max-height:590px}.map-heading{padding:20px 18px 0}.map-heading h2{font-size:20px;margin:7px 0}.map-heading .eyebrow{font-size:10px}.map-bottom{font-size:11px;padding:12px 16px;flex-direction:row}.food-panel{padding:25px 20px 18px}.panel-title h2{font-size:25px}.restaurant-list{height:auto;max-height:500px}.categories button{min-height:40px}.search input{font-size:16px}.select-row select{font-size:15px;min-height:44px}.section-heading{display:block}.section-heading h2{font-size:24px}.episodes{margin-top:45px}.episode-cards{gap:12px}.episode-card{padding:7px}.episode-card h3{font-size:15px}.episode-actions{align-items:start;flex-direction:column;gap:0}.episode-actions a,.episode-actions button{font-size:13px;min-height:40px}.about{display:block;margin-top:40px;padding:25px 5px}.about h2{font-size:24px}.about p{font-size:14px}footer{gap:17px;flex-wrap:wrap}.detail-top{padding:30px 24px 20px}.detail-top h2{font-size:24px;padding-right:15px}.detail-content{padding:20px 24px}.detail-actions a{text-align:center;flex:1;white-space:nowrap}.county-pin text{font-size:18px}.county-pin .count{font-size:16px}.food-pin text{font-size:17px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
