:root{--cream: #fffcf3;--beige: #e6dccb;--orange: #f39800;--orange-deep: #d66c18;--ink: #3a3834;--ink-soft: #6b655c;--ink-faint: #8a8478;--card: #ffffff;--sea: #79bfd0;--radius: 16px}*{box-sizing:border-box}html,body{margin:0;background:var(--cream);color:var(--ink);font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;line-height:1.6}button,select{font:inherit;color:inherit}a{color:var(--orange-deep)}.island{max-width:1180px;margin:0 auto;padding:16px 16px 40px}.island-head{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:8px 0 14px}.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font-weight:700}.brand img{height:44px;width:auto}.titles .eyebrow{margin:0;font-size:12px;letter-spacing:.14em;color:var(--orange-deep);font-weight:700}.titles h1{margin:0;font-size:clamp(26px,4vw,38px);line-height:1.2}.titles .lead{margin:4px 0 0;color:var(--ink-soft);font-size:15px}.back{font-size:14px;text-decoration:none;border:1px solid var(--beige);padding:8px 12px;border-radius:999px;background:#fff;white-space:nowrap}.layer-tabs,.cat-chips{display:flex;flex-wrap:wrap;gap:8px}.layer-tabs{margin-bottom:8px}.layer-tabs button{border:0;background:transparent;padding:8px 4px;margin-right:12px;font-weight:700;font-size:16px;color:var(--ink-soft);border-bottom:3px solid transparent;cursor:pointer}.layer-tabs button[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--orange)}.cat-chips button{border:1px solid var(--beige);background:#fff;padding:7px 14px;border-radius:999px;cursor:pointer;font-size:14px}.cat-chips button[aria-pressed=true]{background:var(--orange);border-color:var(--orange);color:#fff;font-weight:700}.cat-note{margin:8px 0 0;font-size:13px;color:var(--ink-faint)}.island-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;margin-top:14px;align-items:start}.stage{background:#fff;border:1px solid var(--beige);border-radius:var(--radius);padding:10px}.scene-options{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}.scene-options button,.camera-tools button,.travel button,.display-info button{border:1px solid var(--beige);background:var(--cream);padding:6px 12px;border-radius:10px;cursor:pointer;font-size:13px}.scene-options button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}button:disabled{opacity:.45;cursor:default}.legend{margin-left:auto;font-size:12px;color:var(--ink-faint);display:inline-flex;align-items:center;gap:4px}.legend i{display:inline-block;width:46px;height:10px;border-radius:5px;vertical-align:middle}.legend .ramp{background:linear-gradient(90deg,#fae0b0,#d66c18)}.legend .none{width:12px;height:12px;border-radius:50%;background:#d9d2c0;margin-left:6px}.scene-wrap{position:relative;height:clamp(420px,66vh,640px);border-radius:12px;overflow:hidden;background:var(--sea)}.is-night .scene-wrap{background:#16242c}.three-host{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none}.three-host canvas{width:100%;height:100%;display:block}.flat-map{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.scene-caption{position:absolute;left:12px;top:10px;background:#fffcf3eb;border-radius:10px;padding:6px 12px;font-weight:700;font-size:14px;pointer-events:none}.scene-caption i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--orange);margin-right:8px}.scene-caption small{display:block;font-weight:400;color:var(--ink-soft);font-size:12px}.fallback-note{position:absolute;left:12px;bottom:10px;background:#fffcf3eb;border-radius:10px;padding:4px 10px;font-size:12px}.camera-tools{position:absolute;right:10px;top:10px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:60%}.display-info{margin-top:8px;font-size:13px;color:var(--ink-soft)}.display-info summary{cursor:pointer}.display-info summary span{color:var(--orange-deep);font-weight:700;margin-left:6px}.display-info label{display:inline-flex;gap:6px;align-items:center;margin-right:8px}.display-info select{padding:4px 8px;border-radius:8px;border:1px solid var(--beige);background:#fff}.travel{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.travel label{display:inline-flex;gap:6px;align-items:center;font-size:14px}.travel select{padding:6px 10px;border-radius:10px;border:1px solid var(--beige);background:#fff}.travel .where{color:var(--ink-soft);font-size:13px;margin-left:auto}.stage-note{margin:8px 2px 0;font-size:12px;color:var(--ink-faint)}.panel{background:#fff;border:1px solid var(--beige);border-radius:var(--radius);padding:18px;position:sticky;top:12px}.panel-kicker{font-size:12px;color:var(--orange-deep);font-weight:700;letter-spacing:.06em}.panel h2{margin:2px 0 6px;font-size:30px}.count{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;margin-bottom:10px}.count b{font-size:44px;line-height:1;color:var(--orange-deep)}.count span{font-size:16px;color:var(--ink-soft)}.count .zero{font-size:15px}.count small{margin-left:auto;background:var(--cream);border:1px solid var(--beige);border-radius:999px;padding:2px 10px;font-size:12px;color:var(--ink-soft)}.places{list-style:none;margin:0;padding:0;max-height:360px;overflow:auto;border-top:1px solid var(--beige)}.places li{padding:10px 2px;border-bottom:1px solid var(--beige)}.place-name{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;font-weight:700}.place-name a{color:var(--ink);text-decoration:none}.place-name a:hover{color:var(--orange-deep);text-decoration:underline}.place-name em{font-style:normal;background:var(--orange);color:#fff;border-radius:6px;font-size:11px;padding:0 6px}.place-name small{color:var(--ink-faint);font-weight:400;font-size:12px}.addr{display:block;font-size:13px;color:var(--ink-soft);text-decoration:none}.addr:hover{text-decoration:underline}.more-note{margin:8px 0 0;font-size:12px;color:var(--ink-faint)}.more{display:block;margin-top:12px;padding:12px 14px;border-radius:12px;background:var(--orange);color:#fff;text-align:center;font-weight:700;text-decoration:none}.walk-here{width:100%;margin-top:8px;padding:10px;border:1px solid var(--beige);background:var(--cream);border-radius:12px;cursor:pointer}.rank{margin-top:18px;background:#fff;border:1px solid var(--beige);border-radius:var(--radius);padding:16px 18px}.rank h2{margin:0 0 10px;font-size:20px}.rank h2 small{margin-left:10px;font-size:13px;font-weight:400;color:var(--ink-soft)}.rank ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 28px}.rank li button{width:100%;display:grid;grid-template-columns:56px 1fr 34px;gap:10px;align-items:center;border:0;background:transparent;padding:6px 4px;border-radius:8px;cursor:pointer;text-align:left}.rank li button[aria-pressed=true]{background:var(--cream);outline:2px solid var(--orange)}.r-bar{height:12px;background:var(--cream);border-radius:6px;overflow:hidden;border:1px solid var(--beige)}.r-bar i{display:block;height:100%;border-radius:6px}.r-n{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.rank-note{margin:10px 0 0;font-size:12px;color:var(--ink-faint)}.foot{margin-top:22px;font-size:12px;color:var(--ink-faint)}.foot p{margin:4px 0}@media(max-width:900px){.island-grid{grid-template-columns:minmax(0,1fr)}.panel{position:static}.island-head{grid-template-columns:1fr}.back{justify-self:start}.rank ol{grid-template-columns:minmax(0,1fr)}.camera-tools{max-width:70%}.travel .where{margin-left:0;width:100%}}@media(max-width:600px){.island{padding:10px 12px 32px}.island-head{grid-template-columns:1fr auto;gap:4px 8px;padding:0 0 8px}.island-head .brand{grid-column:1;grid-row:1}.island-head .back{grid-column:2;grid-row:1;justify-self:end;padding:5px 10px;font-size:13px}.island-head .titles{grid-column:1 / -1;grid-row:2}.titles h1{font-size:24px}.titles .eyebrow{display:none}.titles .lead{font-size:13px;margin-top:2px}.brand img{height:32px}.layer-tabs button{font-size:15px;padding:6px 2px}.cat-chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;margin:0 -12px;padding-left:12px;padding-right:12px;scrollbar-width:none}.cat-chips button{white-space:nowrap;flex:none}.scene-wrap{height:62vh;min-height:380px}.scene-caption{padding:4px 10px;font-size:13px}.scene-caption small{display:none}.camera-tools{top:auto;bottom:10px;right:10px;max-width:78%}.fallback-note{bottom:52px}.legend{margin-left:0;width:100%}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.enter-district{width:100%;margin-top:8px;padding:12px;border:0;background:var(--ink);color:#fff;font-weight:700;border-radius:12px;cursor:pointer}.district-options{margin:4px 0 10px}.dwalk .crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:14px;margin-bottom:8px}.dwalk .crumbs button{border:1px solid var(--beige);background:#fff;padding:6px 12px;border-radius:999px;cursor:pointer}.dwalk .crumbs .jump{margin-left:auto;display:inline-flex;gap:6px;align-items:center}.dwalk .crumbs select{padding:5px 8px;border-radius:8px;border:1px solid var(--beige);background:#fff}.dhead h2{margin:2px 0;font-size:clamp(24px,3.6vw,34px)}.dhead p{margin:0 0 10px;color:var(--ink-soft)}.dhead .eyebrow{font-size:12px;letter-spacing:.12em;font-weight:700;color:var(--orange-deep)}.dlayout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}.dstage{background:#fff;border:1px solid var(--beige);border-radius:var(--radius);padding:10px;position:sticky;top:10px}.dscene{height:clamp(420px,62vh,620px)}.dtools{top:10px;right:10px}.dstatus{position:absolute;left:10px;bottom:10px;display:flex;align-items:center;gap:8px;background:#fffcf3f0;border-radius:12px;padding:6px 12px;font-size:13px;max-width:calc(100% - 20px)}.dstatus small{color:var(--ink-faint)}.dot{width:9px;height:9px;border-radius:50%;background:var(--beige);flex:none}.dot.walking{background:var(--orange);animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.35}}.dpanel{display:flex;flex-direction:column;gap:12px}.dpanel>section,.dpanel>details,.dpanel>nav,.dpanel>.complete{background:#fff;border:1px solid var(--beige);border-radius:var(--radius);padding:14px 16px}.arrival .a-kicker{font-size:12px;font-weight:700;color:var(--orange-deep);letter-spacing:.04em}.arrival h3{margin:4px 0;font-size:22px;line-height:1.3}.arrival h3 em{font-style:normal;background:var(--orange);color:#fff;border-radius:6px;font-size:11px;padding:0 6px;margin-left:8px;vertical-align:middle}.arrival .a-type{margin:0 0 4px;font-size:13px;color:var(--ink-faint)}.arrival .stamp{width:100%;margin-top:8px;padding:11px;border-radius:12px;border:2px solid var(--orange);background:#fff;color:var(--orange-deep);font-weight:700;cursor:pointer}.arrival .stamp:disabled{background:var(--cream);border-color:var(--beige);color:var(--ink-soft);cursor:default;opacity:1}.a-note{margin:8px 0 0;font-size:12px;color:var(--ink-faint)}.invite b{display:block;margin-bottom:2px}.invite p{margin:0;font-size:13px;color:var(--ink-soft)}.guide summary{cursor:pointer;display:flex;align-items:center;gap:8px;list-style:none}.guide summary::-webkit-details-marker{display:none}.g-ico{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#2f8f83;color:#fff;font-size:14px}.guide summary small{margin-left:auto;color:var(--ink-faint)}.g-lines p{margin:8px 0 0;font-size:13.5px;color:var(--ink-soft)}.missions{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}.missions li{display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:start}.m-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--beige);display:grid;place-items:center;font-size:13px;color:#fff}.missions .done .m-check{background:#2f8f83;border-color:#2f8f83}.missions b{display:block;font-size:14px}.missions small{display:block;font-size:12px;color:var(--ink-faint)}.m-bar{height:6px;border-radius:3px;background:var(--cream);border:1px solid var(--beige);margin-top:4px;overflow:hidden}.m-bar i{display:block;height:100%;background:var(--orange)}.m-n{font-size:12px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.dests h4{margin:0 0 6px;font-size:14px}.dests button{width:100%;display:grid;grid-template-columns:30px 28px 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;text-align:left;border:0;background:transparent;border-radius:10px;padding:7px 6px;cursor:pointer}.dests button:hover,.dests button[aria-current=true]{background:var(--cream)}.dests button[aria-current=true]{outline:2px solid var(--orange)}.d-i{grid-row:1 / 3;font-size:12px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.d-ico{grid-row:1 / 3;font-size:18px}.dests b{font-size:14px;line-height:1.3}.dests small{font-size:12px;color:var(--ink-faint);grid-column:3}.complete{background:#fff8e6!important;border-color:var(--orange)!important}.complete p{margin:4px 0 8px;font-size:13px}.complete button{border:0;background:var(--orange);color:#fff;padding:9px 14px;border-radius:10px;font-weight:700;cursor:pointer}.passport{margin-top:18px;background:#fff;border:1px solid var(--beige);border-radius:var(--radius);padding:0 18px}.passport>summary{display:flex;align-items:center;gap:14px;cursor:pointer;list-style:none;padding:14px 0}.passport>summary::-webkit-details-marker{display:none}.passport summary small{display:block;font-size:11px;letter-spacing:.1em;color:var(--orange-deep);font-weight:700}.passport summary b{font-size:18px}.p-progress{margin-left:auto;font-size:26px;font-weight:800;color:var(--orange-deep)}.p-progress small{display:inline;font-size:13px;letter-spacing:0;color:var(--ink-soft);font-weight:400}.p-open{font-size:13px;color:var(--ink-soft)}.p-body{padding:0 0 16px}.p-intro{margin:0 0 4px;font-size:14px}.p-storage{margin:0 0 12px;font-size:12px;color:var(--ink-faint)}.p-stamps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.p-stamps button{width:100%;text-align:left;border:1px dashed var(--beige);background:var(--cream);border-radius:12px;padding:10px 12px;cursor:pointer;display:grid;gap:1px}.p-stamps button.on{border-style:solid;border-color:var(--orange);background:#fff4dc}.p-stamps b{font-size:15px}.p-stamps small{font-size:12px;color:var(--ink-soft)}.p-stamps em{font-style:normal;font-size:11px;color:var(--ink-faint)}.p-body h3{margin:16px 0 6px;font-size:15px}.p-empty{margin:0;font-size:13px;color:var(--ink-soft)}.p-recent{list-style:none;margin:0;padding:0}.p-recent button{width:100%;display:grid;grid-template-columns:26px 1fr auto auto;gap:10px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--beige);background:transparent;padding:8px 2px;cursor:pointer}.p-recent small{color:var(--ink-faint)}.p-recent em{font-style:normal;color:var(--orange-deep);font-size:12px}.p-more,.p-reset button{margin-top:10px;border:1px solid var(--beige);background:var(--cream);padding:6px 12px;border-radius:10px;cursor:pointer;font-size:13px}.p-reset{margin-top:6px;font-size:13px;display:flex;gap:8px;align-items:center}@media(max-width:900px){.dlayout{grid-template-columns:minmax(0,1fr)}.dstage{position:static}.dwalk .crumbs .jump{margin-left:0}}@media(max-width:600px){.in-district .island-head .lead,.dhead p,.dhead .eyebrow{display:none}.dhead h2{font-size:22px;margin:0 0 6px}.district-options{margin:0 0 6px}.dscene{height:62vh;min-height:380px}.dtools{top:10px;bottom:auto;right:10px;max-width:80%}.dstatus{font-size:12px}.p-recent button{grid-template-columns:24px 1fr auto}.p-recent small{display:none}}.region-switch{display:flex;align-items:center;gap:0;margin:4px 0 14px;flex-wrap:wrap}.region-switch button{border:2px solid var(--ink);background:#fff;padding:9px 20px;font-weight:700;font-size:15px;cursor:pointer}.region-switch button:first-child{border-radius:999px 0 0 999px;border-right-width:1px}.region-switch button:nth-child(2){border-radius:0 999px 999px 0;border-left-width:1px}.region-switch button[aria-pressed=true]{background:var(--ink);color:#fff}.region-switch small{margin-left:12px;color:var(--ink-faint);font-size:13px}@media(max-width:600px){.region-switch{margin:0 0 10px}.region-switch button{padding:8px 16px;flex:1}.region-switch small{display:none}}.top-crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:14px;margin-bottom:8px}.top-crumbs button{border:1px solid var(--beige);background:#fff;padding:6px 12px;border-radius:999px;cursor:pointer}.crumb-note{color:var(--ink-faint);font-size:12px}.legend .dot-on{width:12px;height:12px;border-radius:50%;background:#f6b24c}.src-note{margin:-4px 0 10px;font-size:12px;color:var(--ink-faint)}.sub-h{margin:14px 0 4px;font-size:14px}.taipei-cta{margin:4px 0 12px;padding:12px 14px;border-radius:12px;background:#fff4dc;border:1px solid var(--orange)}.taipei-cta b{display:block;font-size:15px}.taipei-cta p{margin:4px 0 0;font-size:13px;color:var(--ink-soft)}.taipei-cta .enter-district{margin-top:10px;background:var(--orange)}.invite-card{margin:8px 0 12px;padding:12px 14px;border-radius:12px;background:var(--cream);border:1px dashed var(--beige)}.invite-card b{display:block}.invite-card p{margin:4px 0 0;font-size:13px;color:var(--ink-soft)}.legend.walk-legend{margin-left:10px;padding:2px 8px;border-radius:999px;background:#fff3dc;border:1px solid var(--orange);color:var(--ink-soft)}.no-enter{margin:4px 0 12px;padding:12px 14px;border-radius:12px;background:#f4f1ea;border:1px dashed #b9b2a3}.no-enter b{display:block;font-size:15px}.no-enter p{margin:4px 0 0;font-size:13px;color:var(--ink-soft)}.no-enter-alt{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.no-enter-alt button{border:1px solid var(--orange);background:#fff;color:var(--ink);padding:4px 10px;border-radius:999px;font-size:12px;cursor:pointer}.svc-card{margin:4px 0 12px;padding:12px 14px;border-radius:12px;background:#fff;border:1px solid var(--beige)}.svc-card h3{margin:0 0 8px;font-size:15px;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.svc-card h3 small{font-size:12px;font-weight:400;color:var(--ink-faint)}.svc-card ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}.svc-card li button{width:100%;display:flex;align-items:baseline;gap:6px;padding:8px 10px;border-radius:10px;border:1px solid #ece4d4;background:var(--cream);cursor:pointer;text-align:left;font-size:13px;color:var(--ink)}.svc-card li button[aria-pressed=true]{border-color:var(--orange);background:#fff3dc}.svc-card .svc-label{flex:1}.svc-card li b{font-size:17px;color:#c2620f}.svc-card li small{color:var(--ink-faint)}.svc-note{margin:8px 0 0;font-size:12px;color:var(--ink-faint)}@media(max-width:600px){.crumb-note{display:none}.legend.walk-legend{margin-left:0;width:auto}}
