/* 西湖長照資源島｜樣式 */
:root{
  --primary:#2f7a6b; --primary-ink:#ffffff; --accent:#d9792f; --accent-ink:#5a2a06;
  --font:"Noto Sans TC","Microsoft JhengHei","PingFang TC",sans-serif;
  --radius:16px; --shadow:0 10px 30px rgba(20,30,40,.18);
  --fs:17px;
  transition:background-color 1.6s ease;
}
html[data-theme="morning"]{--bg:#f6f0e4;--surface:#fffaf1;--surface2:#f1e7d3;--ink:#2b2418;--muted:#5c5141;--line:#d9ccb3;--glass:rgba(255,250,241,.9);--primary-text:#24614f;--accent-text:#8a4510}
html[data-theme="mist"]{--bg:#dcebee;--surface:#f4fafb;--surface2:#d3e5e9;--ink:#15282d;--muted:#3f5a60;--line:#b7cfd4;--glass:rgba(244,250,251,.9);--primary-text:#1f5f52;--accent-text:#80400c}
html[data-theme="night"]{--bg:#16222e;--surface:#1e2d3b;--surface2:#263a4b;--ink:#eef3f7;--muted:#b4c3cf;--line:#3a5064;--glass:rgba(24,37,50,.9);--primary-text:#7fd3bf;--accent-text:#f2b27a}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--fs);line-height:1.6;-webkit-text-size-adjust:100%}
body{transition:background-color 1.6s ease,color 1.6s ease}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:8px;top:-60px;z-index:100;background:var(--primary);color:#fff;padding:10px 14px;border-radius:10px}
.skip:focus{top:8px}
.muted{color:var(--muted)}
.demo-tag{display:inline-block;margin-left:6px;padding:0 8px;border-radius:999px;background:#fff1c9;color:#6b4a00;font-size:13px;font-weight:700;vertical-align:middle;border:1px solid #e8cf86}
.todo{color:var(--accent-text);font-weight:700}

/* 3D 舞台 */
#stage{position:fixed;inset:0;z-index:0}
#scene{display:block;width:100%;height:100%;touch-action:none;outline:none}
#meteorCanvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.ilabel{position:absolute;left:0;top:0;transform:translate(-50%,-100%);pointer-events:auto;display:flex;align-items:center;gap:6px;min-height:44px;padding:6px 14px 6px 8px;border-radius:999px;border:2px solid #fff;background:rgba(255,250,241,.95);color:#2b2418;font-weight:700;font-size:15px;box-shadow:0 4px 14px rgba(0,0,0,.22);white-space:nowrap;transition:opacity .3s ease;will-change:transform}
.ilabel .num{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:50%;background:#a9520f;color:#fff;font-size:13px}
.ilabel.center .num{background:var(--primary)}
.ilabel.board .num{background:#3d6e9e}
.ilabel.visited::after{content:"✓";color:var(--primary);font-weight:900}
.ilabel:hover,.ilabel:focus-visible{background:#fff;transform:translate(-50%,-100%) scale(1.06)}
.ilabel.hide{opacity:0;pointer-events:none}
.ilabel.dim{opacity:.25}
body.no3d #stage{display:none}
body.no3d .tool-3d,body.no3d .only-3d{display:none!important}

/* 上方工具列 */
.topbar{position:fixed;left:12px;right:12px;top:12px;z-index:20;display:flex;align-items:center;gap:12px;padding:8px 10px 8px 14px;border-radius:20px;background:var(--glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow);transition:background-color 1.6s ease}
.brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}
.brand h1{margin:0;font-size:22px;font-weight:900;line-height:1.2;color:var(--primary-text);letter-spacing:.02em}
.tagline{margin:0;font-size:14px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-mascot,.intro-mascot,.mascot{display:inline-block;width:44px;height:44px;flex:0 0 auto;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='34' r='26' fill='%23ffd9b8'/%3E%3Cpath d='M8 30c2-16 14-24 24-24s22 8 24 24c-6-6-14-9-24-9S14 24 8 30z' fill='%233b2a1e'/%3E%3Ccircle cx='23' cy='35' r='3.4' fill='%23222'/%3E%3Ccircle cx='41' cy='35' r='3.4' fill='%23222'/%3E%3Ccircle cx='17' cy='42' r='4' fill='%23ff9e8f' opacity='.7'/%3E%3Ccircle cx='47' cy='42' r='4' fill='%23ff9e8f' opacity='.7'/%3E%3Cpath d='M25 46q7 6 14 0' stroke='%23a3442c' stroke-width='3' fill='none' stroke-linecap='round'/%3E%3Crect x='20' y='56' width='24' height='8' rx='3' fill='%232f7a6b'/%3E%3Crect x='27' y='54' width='10' height='6' rx='2' fill='%23fff'/%3E%3Cpath d='M47 12l3 6 6 1-4.5 4 1 6-5.5-3-5.5 3 1-6L38 19l6-1z' fill='%23d9792f'/%3E%3C/svg%3E") center/contain no-repeat}
.search{position:relative;flex:0 1 300px}
.search input{width:100%;min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink)}
.search-results{position:absolute;left:0;right:0;top:50px;max-height:60vh;overflow:auto;border-radius:14px;background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--line);padding:6px}
.search-results button{display:block;width:100%;text-align:left;min-height:44px;padding:8px 10px;border:0;border-radius:10px;background:transparent}
.search-results button:hover,.search-results button:focus-visible{background:var(--surface2)}
.search-results small{display:block;color:var(--muted);font-size:13px;line-height:1.4}
.search-results .empty{padding:10px;color:var(--muted)}
.tools{display:flex;gap:6px;flex:0 0 auto}
.tool{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:52px;min-height:48px;padding:2px 8px;border-radius:14px;border:0;background:transparent;color:var(--ink);font-size:18px;line-height:1.1}
.tool b{font-size:12px;font-weight:700}
.tool:hover,.tool[aria-expanded="true"],.tool[aria-pressed="true"]{background:var(--surface2)}
.menu{position:absolute;right:8px;top:calc(100% + 8px);display:grid;gap:2px;min-width:230px;padding:8px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--line)}
.menu button{min-height:44px;padding:0 12px;border:0;border-radius:10px;background:transparent;text-align:left}
.menu button:hover,.menu button:focus-visible{background:var(--surface2)}

/* 左下：時間與主題 */
.hud-left{position:fixed;left:12px;bottom:12px;z-index:15;display:grid;gap:8px;max-width:calc(100vw - 24px)}
.timebox,.themebox{display:flex;align-items:center;gap:6px;padding:6px;border-radius:16px;background:var(--glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow);flex-wrap:wrap}
.clock{min-width:104px;padding:0 8px;font-weight:900;font-variant-numeric:tabular-nums;color:var(--primary-text)}
.seg{display:flex;gap:4px}
.seg button,.themebox button{min-width:44px;min-height:44px;padding:0 8px;border-radius:12px;border:1.5px solid transparent;background:var(--surface);font-size:16px}
.themebox button{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700}
.seg button[aria-pressed="true"],.themebox button[aria-pressed="true"]{border-color:var(--primary);background:var(--primary);color:#fff}
.chip{display:inline-block;width:16px;height:16px;border-radius:50%;border:1.5px solid rgba(0,0,0,.25)}
.chip-auto{background:conic-gradient(#f6f0e4 0 33%,#dcebee 0 66%,#16222e 0)}

/* 右下 */
.hud-right{position:fixed;right:12px;bottom:12px;z-index:15;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.pill{min-height:44px;padding:0 16px;border-radius:999px;border:0;background:var(--glass);color:var(--ink);font-weight:700;box-shadow:var(--shadow);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.pill:hover{background:var(--surface)}
#btnGuide{background:var(--primary);color:#fff}
.pill.bump{animation:bump .5s ease}
@keyframes bump{30%{transform:scale(1.18)}60%{transform:scale(.95)}}
.credit{position:fixed;left:50%;bottom:6px;transform:translateX(-50%);z-index:14;font-size:12px;color:var(--muted);background:var(--glass);padding:2px 10px;border-radius:999px;text-decoration:none}
.credit:hover{text-decoration:underline}

/* 面板 */
.panel{position:fixed;z-index:30;right:12px;top:88px;bottom:12px;width:min(440px,calc(100vw - 24px));display:flex;flex-direction:column;border-radius:20px;background:var(--surface);color:var(--ink);box-shadow:0 18px 50px rgba(0,0,0,.28);overflow:hidden;animation:slidein .35s ease}
@keyframes slidein{from{transform:translateX(30px);opacity:0}}
.panel-grip{display:none}
.panel-head{display:flex;align-items:center;gap:10px;padding:14px 14px 10px 16px;border-bottom:1px solid var(--line);background:var(--surface2)}
.panel-icon{font-size:30px}
.panel-titles{flex:1;min-width:0}
.panel-kicker{margin:0;font-size:13px;color:var(--accent-text);font-weight:700}
.panel-head h2{margin:0;font-size:22px;line-height:1.3}
.icon-btn{flex:0 0 auto;width:44px;height:44px;border-radius:50%;border:0;background:rgba(127,127,127,.15);font-size:18px}
.icon-btn:hover{background:rgba(127,127,127,.28)}
.panel-body{flex:1;overflow:auto;padding:14px 18px 24px;-webkit-overflow-scrolling:touch}
.intro-line{font-size:18px;font-weight:700;margin:0 0 10px}
.say{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;padding:10px 12px;border-radius:14px;background:var(--surface2)}
.say p{margin:0}
.landmark{font-size:14px;color:var(--muted);margin:0 0 12px}
.cblock{margin:0 0 16px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}
.cblock h3{margin:0 0 6px;font-size:18px;color:var(--primary-text)}
.cblock ul{margin:0;padding-left:1.2em}
.cblock li{margin:4px 0}
.cblock p{margin:0}
.src{margin-top:8px;font-size:13px;color:var(--muted);line-height:1.5}
.src a{color:var(--primary-text)}
table.amt{width:100%;border-collapse:collapse;font-size:16px}
table.amt th,table.amt td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left}
table.amt th{background:var(--surface2)}
.scenario{margin:0 0 16px;border-radius:14px;border:2px dashed var(--accent);padding:12px 14px;background:var(--surface)}
.scenario h3{margin:0 0 4px;font-size:18px}
.scenario .who{margin:0 0 8px;color:var(--muted);font-size:14px}
.scene-card{margin:6px 0;padding:10px 12px;border-radius:12px;background:var(--surface2);font-size:17px}
.scene-nav{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.btn{min-height:44px;padding:0 16px;border-radius:12px;border:1.5px solid var(--primary);background:var(--surface);color:var(--primary-text);font-weight:700}
.btn.primary{background:var(--primary);color:#fff}
.btn:disabled{opacity:.45;cursor:not-allowed}
.support{margin-top:10px;padding:10px 12px;border-radius:12px;background:#e6f4ef;color:#173f35}
html[data-theme="night"] .support{background:#1d3d36;color:#dff5ee}
.support h4{margin:0 0 4px}
.support ul{margin:0;padding-left:1.2em}
.quiz{margin:16px 0;padding:12px 14px;border-radius:14px;background:var(--surface2)}
.quiz h3{margin:0 0 8px;font-size:18px}
.quiz .q{margin:10px 0 6px;font-weight:700}
.quiz .opts{display:grid;gap:6px}
.quiz .opts button{min-height:44px;text-align:left;padding:6px 12px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface)}
.quiz .opts button.right{border-color:#2f7a6b;background:#dff2eb;color:#173f35}
.quiz .opts button.wrong{border-color:#b3261e;background:#fbe3e1;color:#5e120d}
.quiz .fb{margin:6px 0 0;font-size:15px}
.selfcheck label{display:flex;gap:10px;align-items:center;min-height:44px;padding:4px 8px;border-radius:10px;cursor:pointer}
.selfcheck label:hover{background:var(--surface2)}
.selfcheck input{width:24px;height:24px;accent-color:var(--primary)}
.result{margin-top:10px;padding:12px;border-radius:12px;background:#fff1c9;color:#3d2c00}
.residents-list{margin:16px 0 0;font-size:15px}
.residents-list dt{font-weight:700;margin-top:6px}
.residents-list dd{margin:0 0 0 1em;color:var(--muted)}
.panel-foot{margin-top:18px;font-size:13px;color:var(--muted)}

/* 清單版 */
.listview{position:fixed;inset:0;z-index:40;overflow:auto;background:var(--bg);-webkit-overflow-scrolling:touch}
.listview-inner{max-width:860px;margin:0 auto;padding:20px 16px 60px}
.listview-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 0;background:var(--bg)}
.listview-head h2{margin:0;font-size:26px}
.listview-head p{margin:0;flex:1}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 16px}
.tabs button{min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface)}
.tabs button[aria-selected="true"]{background:var(--primary);color:#fff;border-color:var(--primary)}
.litem{margin:0 0 12px;border-radius:16px;background:var(--surface);border:1px solid var(--line);overflow:hidden}
.litem>summary{list-style:none;display:flex;gap:10px;align-items:center;min-height:56px;padding:10px 14px;cursor:pointer;font-weight:700;font-size:18px}
.litem>summary::-webkit-details-marker{display:none}
.litem>summary .n{display:inline-grid;place-items:center;min-width:32px;height:32px;border-radius:50%;background:#a9520f;color:#fff;font-size:14px}
.litem>summary small{display:block;font-weight:400;font-size:14px;color:var(--muted)}
.litem>summary .seen{margin-left:auto;color:var(--primary-text);font-size:14px}
.litem .lbody{padding:0 14px 14px}
.sources{margin-top:28px;padding:16px;border-radius:16px;background:var(--surface);border:1px solid var(--line);font-size:15px}
.sources h2{margin:0 0 8px;font-size:20px}
.sources li{margin:4px 0;overflow-wrap:anywhere}
.sources a{color:var(--primary-text)}

/* 對話框 */
.modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px;background:rgba(10,20,30,.45)}
.modal-card{width:min(560px,100%);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;border-radius:20px;background:var(--surface);color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.35);overflow:hidden}
.modal-head{display:flex;align-items:center;gap:10px;padding:12px 14px 12px 18px;border-bottom:1px solid var(--line)}
.modal-head h2{margin:0;flex:1;font-size:21px}
.modal-body{padding:16px 18px 20px;overflow:auto}
.modal-body label{display:grid;gap:4px;margin:8px 0;font-weight:700}
.modal-body input[type=text],.modal-body select{min-height:44px;padding:0 10px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink)}
.row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.bag-grid{display:flex;gap:10px;flex-wrap:wrap;font-size:20px}
.bag-grid span{padding:6px 12px;border-radius:12px;background:var(--surface2)}
.prog-list{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.prog-list li{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:10px;background:var(--surface2)}
.cert-preview{width:100%;height:auto;border-radius:12px;border:1px solid var(--line);margin-top:10px}
.guide-log{display:grid;gap:8px;max-height:46vh;overflow:auto;margin-bottom:10px}
.guide-msg{padding:10px 12px;border-radius:14px;background:var(--surface2)}
.guide-msg.me{justify-self:end;background:var(--primary);color:#fff}
.guide-msg .goto{margin-top:6px}
.guide-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.guide-chips button{min-height:40px;padding:0 12px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface)}
.guide-form{display:flex;gap:8px}
.guide-form input{flex:1;min-height:44px;padding:0 12px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink)}
.livebox h3{margin:10px 0 6px}
.wx-now{display:flex;gap:14px;align-items:center;font-size:18px}
.wx-now .big{font-size:44px}
.wx-days{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:10px}
.wx-days div{padding:8px 4px;border-radius:12px;background:var(--surface2);text-align:center;font-size:14px}
.yb-list{list-style:none;padding:0;margin:8px 0;display:grid;gap:6px}
.yb-list li{padding:8px 10px;border-radius:10px;background:var(--surface2)}
.yb-bar{height:10px;border-radius:5px;background:var(--line);overflow:hidden;margin-top:4px}
.yb-bar i{display:block;height:100%;background:#2f7a6b}
.yb-zero{color:#b3261e;font-weight:900}
html[data-theme="night"] .yb-zero{color:#ff8a80}
.live-src{font-size:13px;color:var(--muted);margin-top:8px}

/* 泡泡 */
.bubble{position:fixed;z-index:35;left:0;top:0;width:min(320px,calc(100vw - 24px));padding:12px 14px;border-radius:18px;background:#fffdf7;color:#2b2418;box-shadow:0 12px 34px rgba(0,0,0,.3);transform:translate(-50%,-100%)}
.bubble::after{content:"";position:absolute;left:50%;bottom:-10px;margin-left:-10px;border:10px solid transparent;border-bottom:0;border-top-color:#fffdf7}
.bubble-who{margin:0;font-size:14px;color:#8a4510;font-weight:700}
.bubble-line{margin:4px 0 8px;font-size:17px}
.bubble-actions{display:flex;gap:6px;flex-wrap:wrap}
.bubble-actions button{min-height:44px;padding:0 12px;border-radius:12px;border:1.5px solid #2f7a6b;background:#fff;color:#1f5f52;font-weight:700}
.bubble-actions button.close{border-color:#999;color:#444;min-width:44px}
.bubble-actions button:disabled{opacity:.5}
.bubble-hint{flex-basis:100%;margin:2px 0 0;font-size:13px;color:#6b5a44}

/* 導覽卡、漫遊 */
.tourcard{position:fixed;z-index:25;left:50%;bottom:24px;transform:translateX(-50%);width:min(560px,calc(100vw - 24px));padding:12px 16px 14px;border-radius:18px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.tour-progress{height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.tour-progress i{display:block;height:100%;width:0;background:var(--accent);transition:width .25s linear}
.tour-step{margin:8px 0 0;font-size:13px;color:var(--accent-text);font-weight:700}
.tourcard h3{margin:0;font-size:20px}
.tourcard p{margin:2px 0 8px}
.tour-btns{display:flex;gap:6px;flex-wrap:wrap}
.tour-btns button{flex:1 1 auto;min-height:44px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface2);font-weight:700}
.walkui{position:fixed;inset:0;z-index:22;pointer-events:none}
.walk-hint{position:absolute;left:50%;top:96px;transform:translateX(-50%);margin:0;padding:8px 16px;border-radius:999px;background:rgba(0,0,0,.6);color:#fff;font-size:15px;transition:opacity 1s;text-align:center;max-width:calc(100vw - 24px)}
.walk-hint.fade{opacity:0}
.dpad{position:absolute;right:20px;bottom:24px;display:grid;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(3,56px);pointer-events:auto}
.dpad button{width:56px;height:56px;border-radius:14px;border:0;background:rgba(255,255,255,.85);font-size:20px;box-shadow:0 4px 12px rgba(0,0,0,.2);touch-action:none;user-select:none;-webkit-user-select:none}
.dpad [data-dir=f]{grid-column:2;grid-row:1}.dpad [data-dir=l]{grid-column:1;grid-row:2}.dpad [data-dir=r]{grid-column:3;grid-row:2}.dpad [data-dir=b]{grid-column:2;grid-row:3}
.walk-exit{position:absolute;left:20px;bottom:24px;min-height:48px;padding:0 18px;border-radius:14px;border:0;background:rgba(255,255,255,.92);font-weight:700;pointer-events:auto}
body.walking .hud-left,body.walking .hud-right,body.walking #labels,body.walking .credit{display:none}

/* 開場、載入、提示 */
.intro{position:fixed;inset:0;z-index:50;display:grid;place-items:center;pointer-events:auto;background:radial-gradient(ellipse at center,rgba(255,255,255,0) 40%,rgba(0,0,0,.25))}
.intro-title{text-align:center;color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.45);animation:fadein 1.4s ease both .4s}
.intro-title h2{margin:8px 0 4px;font-size:clamp(30px,6vw,56px);font-weight:900}
.intro-title p{margin:0;font-size:clamp(16px,2.4vw,22px)}
.intro-mascot{width:84px;height:84px}
.intro-skip{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);margin:0;color:#fff;background:rgba(0,0,0,.45);padding:6px 14px;border-radius:999px;font-size:14px}
@keyframes fadein{from{opacity:0;transform:translateY(12px)}}
.loading{position:fixed;inset:0;z-index:70;display:grid;place-items:center;align-content:center;gap:12px;background:var(--bg);font-weight:700;color:var(--primary-text)}
.loading[hidden]{display:none}
.spinner{width:42px;height:42px;border-radius:50%;border:5px solid var(--line);border-top-color:var(--primary);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.toast{position:fixed;z-index:80;left:50%;top:92px;transform:translateX(-50%);max-width:calc(100vw - 24px);padding:10px 18px;border-radius:999px;background:#1f2b36;color:#fff;font-weight:700;box-shadow:var(--shadow);text-align:center}
.notice3d{position:fixed;z-index:41;left:12px;right:12px;top:12px;padding:10px 14px;border-radius:12px;background:#fff1c9;color:#3d2c00;font-weight:700}
.noscript{padding:20px}

/* 訪客計數器放在左上，避開左下的時間面板 */
.visit-pill{top:94px!important;bottom:auto!important;left:12px!important}
@media (max-width:760px){.visit-pill{top:128px!important;left:8px!important}}
/* 平板 */
@media (max-width:1100px){
  .tagline{display:none}
  .brand h1{font-size:19px;white-space:nowrap}
  .search{flex-basis:220px}
}
/* 手機 */
@media (max-width:760px){
  :root{--fs:16px}
  .topbar{left:8px;right:8px;top:8px;flex-wrap:wrap;gap:4px 6px;padding:6px 6px 6px 10px;border-radius:16px}
  .brand{flex:1 1 0;min-width:0}
  .brand h1{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .brand-mascot{display:none}
  .search{order:3;flex:1 1 100%}
  .search input{min-height:44px}
  .tools{gap:0}
  .tool{min-width:44px;min-height:44px;padding:0 2px}
  .tool b{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .hud-left{left:8px;bottom:8px;gap:6px}
  .timebox,.themebox{padding:4px;gap:4px;border-radius:14px}
  .clock{min-width:auto;font-size:14px;padding:0 4px}
  .seg button{min-width:44px;padding:0 4px}
  .themebox button{min-width:44px;padding:0 6px;font-size:12px}
  .themebox button .chip{display:none}
  .hud-right{right:8px;bottom:120px;gap:6px}
  .pill{padding:0 12px;font-size:14px}
  .credit{bottom:auto;top:auto;left:8px;transform:none;display:none}
  .panel{left:0;right:0;top:auto;bottom:0;width:100%;max-height:64dvh;border-radius:22px 22px 0 0;animation:sheetup .35s ease}
  @keyframes sheetup{from{transform:translateY(40px);opacity:0}}
  .panel-grip{display:block;width:48px;height:5px;border-radius:3px;background:var(--line);margin:8px auto 0}
  .panel-head{padding:8px 12px}
  .panel-head h2{font-size:20px}
  .panel-body{padding:12px 14px 28px}
  .tourcard{bottom:8px}
  .dpad{right:12px;bottom:16px}
  .walk-exit{left:12px;bottom:16px}
  .walk-hint{top:118px;font-size:13px}
  .wx-days{grid-template-columns:repeat(5,minmax(0,1fr))}
  .ilabel{font-size:13px;min-height:40px;padding:4px 10px 4px 6px}
  .ilabel .num{min-width:24px;height:24px;font-size:12px}
}
@media (max-width:760px) and (max-height:500px){ .hud-right{bottom:12px} }
@media (prefers-reduced-motion:reduce){ *{animation:none!important;transition:none!important} }
body.reduce-motion *{animation:none!important;transition-duration:0s!important}
@media print{ body *{visibility:hidden} #printArea,#printArea *{visibility:visible} #printArea{position:fixed;inset:0} }
