@font-face{font-family:Anton;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/anton-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Anton;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/anton-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/ibm-plex-mono-300-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/ibm-plex-mono-300-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/ibm-plex-mono-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/ibm-plex-mono-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/ibm-plex-sans-300-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/ibm-plex-sans-300-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f8fafc;--bg-elev: #ffffff;--bg-elev-2: #f1f5f9;--border: #e2e8f0;--border-strong: #cbd5e1;--text: #0f172a;--text-dim: #475569;--text-faint: #5e6b81;--clean: #047857;--mid: #b45309;--dirty: #b91c1c;--accent: #2563eb;--accent-dim: #1d4ed8;--accent-soft: #eff6ff;--cyan: var(--accent);--amber: #b45309;--gp-sidebar-w: 268px;--gp-content-maxw: 120rem}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--text);font-family:IBM Plex Sans,Noto Sans TC,sans-serif;font-weight:300;-webkit-font-smoothing:antialiased;min-height:100vh}@media(max-width:900px){html,body{overflow-x:hidden}}body{background:var(--bg)}.mono{font-family:IBM Plex Mono,monospace}.display{font-family:Anton,sans-serif;letter-spacing:.02em}.demo-banner{position:relative;z-index:3;background:#dc2626;color:#fff;padding:8px 16px;text-align:center;font-family:IBM Plex Sans,sans-serif;font-weight:500;font-size:13px;letter-spacing:.02em}.disclaimer-note{position:relative;z-index:2;background:#fef2f2;border-left:3px solid #dc2626;padding:10px 16px;font-family:IBM Plex Sans,Noto Sans TC,sans-serif;font-size:12px;color:#991b1b;line-height:1.5}.disclaimer-note strong{color:#7f1d1d}header{position:relative;z-index:2;padding:20px 16px 12px;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}.brand-mark{display:inline-block;width:10px;height:10px;background:var(--cyan);border-radius:2px;box-shadow:0 0 10px var(--cyan);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.brand-title{font-family:Anton,sans-serif;font-size:22px;letter-spacing:.08em;color:var(--text)}.brand-sub{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--text-dim);letter-spacing:.15em;text-transform:uppercase}.timestamp{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--text-faint);letter-spacing:.1em;margin-top:4px}.timestamp .live-dot{display:inline-block;width:6px;height:6px;background:var(--clean);border-radius:50%;margin-right:6px;animation:pulse 1.5s ease-in-out infinite;vertical-align:middle}.demo-tag{display:inline-block;margin-left:8px;padding:2px 6px;font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--amber);border:1px solid var(--amber);letter-spacing:.15em;border-radius:2px}.kpi-strip{position:relative;z-index:2;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);border-bottom:1px solid var(--border)}.kpi{background:var(--bg);padding:14px 16px}.kpi-label{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--text-faint);letter-spacing:.18em;text-transform:uppercase;margin-bottom:4px}.kpi-value{font-family:Anton,sans-serif;font-size:26px;letter-spacing:.02em;line-height:1}.kpi-unit{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--text-dim);margin-left:4px}@media(min-width:720px){.kpi-strip{grid-template-columns:repeat(4,1fr)}}.section{position:relative;z-index:2;padding:24px 16px;border-bottom:1px solid var(--border)}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:14px}.section-title{font-family:Anton,sans-serif;font-size:16px;letter-spacing:.1em}.section-hint{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--text-faint);letter-spacing:.12em}.spectrum{display:flex;height:64px;gap:2px;margin-bottom:8px}.spectrum-bar{flex:1;border-radius:1px;cursor:pointer;transition:transform .15s ease;position:relative}.spectrum-bar:hover{transform:scaleY(1.1)}.spectrum-axis{display:flex;justify-content:space-between;font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--text-faint);letter-spacing:.1em}.axis-tick{display:flex;align-items:center;gap:6px}.axis-swatch{width:10px;height:10px;border-radius:2px}.controls{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.ctrl{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.12em;padding:7px 12px;background:transparent;color:var(--text-dim);border:1px solid var(--border-strong);border-radius:2px;cursor:pointer;text-transform:uppercase;transition:all .15s ease}.ctrl:hover{color:var(--text);border-color:var(--text-dim)}.ctrl.active{background:var(--cyan);color:var(--bg);border-color:var(--cyan);font-weight:600}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:600px){.grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:900px){.grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:1200px){.grid{grid-template-columns:repeat(5,1fr)}}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:3px;padding:12px;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--card-color, var(--text-faint));transition:width .2s ease}.card:hover{border-color:var(--border-strong);background:var(--bg-elev-2);transform:translateY(-1px)}.card:hover:before{width:6px}.card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;margin-left:8px}.country-name{font-family:IBM Plex Sans,Noto Sans TC,sans-serif;font-weight:500;font-size:13px;color:var(--text);line-height:1.2}.country-code{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--text-faint);letter-spacing:.1em;margin-top:2px}.country-flag{font-size:18px;line-height:1}.card-metric{margin-left:8px;margin-bottom:8px}.metric-label{font-family:IBM Plex Mono,monospace;font-size:8px;color:var(--text-faint);letter-spacing:.15em;text-transform:uppercase;margin-bottom:2px}.metric-value{font-family:Anton,sans-serif;font-size:18px;line-height:1}.metric-value .unit{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--text-dim);margin-left:3px;font-weight:300;letter-spacing:.08em}.ren-bar{margin-left:8px;margin-top:6px;height:4px;background:var(--bg);border-radius:2px;overflow:hidden}.ren-fill{height:100%;background:linear-gradient(90deg,var(--clean),#34d399);border-radius:2px}.ren-text{margin-left:8px;margin-top:4px;font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--text-dim);letter-spacing:.05em}.modal-bg{position:fixed;inset:0;background:#0f172a73;backdrop-filter:blur(4px);z-index:50;display:none;align-items:flex-start;justify-content:center;overflow-y:auto;padding:16px}.modal-bg.active{display:flex}.modal{background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:4px;max-width:640px;width:100%;margin-top:20px;margin-bottom:40px;animation:slideUp .25s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-head{padding:20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start}.modal-title{display:flex;align-items:center;gap:12px}.modal-flag{font-size:36px;line-height:1}.modal-name-block .country-name{font-size:20px}.modal-name-block .country-code{font-size:11px;margin-top:4px}.modal-close{background:transparent;border:1px solid var(--border-strong);color:var(--text-dim);font-family:IBM Plex Mono,monospace;font-size:14px;padding:4px 10px;cursor:pointer;border-radius:2px;transition:all .15s ease}.modal-close:hover{color:var(--text);border-color:var(--text-dim)}.modal-body{padding:20px}.modal-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);margin-bottom:24px}.modal-stat{background:var(--bg-elev);padding:12px}.modal-stat .kpi-label{font-size:8px;margin-bottom:4px}.modal-stat .kpi-value{font-size:20px}.mix-title{font-family:Anton,sans-serif;font-size:13px;letter-spacing:.1em;margin-bottom:12px;color:var(--text-dim)}.mix-bar{display:flex;height:28px;border-radius:2px;overflow:hidden;margin-bottom:14px;background:var(--bg)}.mix-seg{transition:opacity .15s ease;position:relative}.mix-seg:hover{opacity:.85}.mix-legend{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.mix-item{display:flex;align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:10px}.mix-swatch{width:10px;height:10px;flex-shrink:0;border-radius:1px}.mix-name{flex:1;color:var(--text-dim);letter-spacing:.05em}.mix-pct{color:var(--text);font-weight:500}footer{position:relative;z-index:2;padding:24px 16px;border-top:1px solid var(--border);text-align:center}.footer-line{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--text-faint);letter-spacing:.1em;margin-bottom:6px}.footer-line a{color:var(--cyan);text-decoration:none}.clean{color:var(--clean)}.mid{color:var(--mid)}.dirty{color:var(--dirty)}.td-body h2{font-size:20px;color:var(--text);margin:28px 0 12px;font-weight:600}.td-body h3{font-size:17px;color:var(--text);margin:22px 0 10px}.td-body p{margin:0 0 16px}.td-body ul,.td-body ol{margin:0 0 16px;padding-left:22px}.td-body li{margin-bottom:8px;line-height:1.8}.td-body strong{color:var(--text)}.td-body a{color:var(--cyan);text-decoration:none}.td-body a:hover{text-decoration:underline}.td-body blockquote{border-left:3px solid var(--amber);background:var(--bg-elev);margin:0 0 20px;padding:12px 16px;color:var(--text-dim);border-radius:0 6px 6px 0}.td-body blockquote p{margin:0}.pl-term{color:var(--cyan);text-decoration:none;border-bottom:1px dashed var(--cyan);cursor:help}.pl-term:hover{border-bottom-style:solid}.gp-app{display:flex;min-height:100vh}.gp-content{flex:1;min-width:0}.gp-sidebar{width:var(--gp-sidebar-w);flex-shrink:0;background:var(--bg-elev);border-right:1px solid var(--border);position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;z-index:40}.gp-sidebar::-webkit-scrollbar{width:8px}.gp-sidebar::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}.gp-sb-brand{padding:18px 18px 14px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;align-items:flex-start;gap:3px}.gp-sb-name{font-family:Anton,sans-serif;font-size:22px;letter-spacing:.04em;color:var(--cyan);text-decoration:none}.gp-sb-name:hover{color:var(--text);text-decoration:none}.gp-sb-sub{color:var(--text-faint);font-size:9px;letter-spacing:.14em;text-transform:uppercase}.gp-sb-sec{margin:18px 10px 7px;color:var(--text-faint);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.gp-sb-nav{flex:1;padding:0 10px}.gp-nav-item{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:8px;color:var(--text-dim);font-size:14px;text-decoration:none}.gp-nav-item:hover{background:var(--bg-elev-2);color:var(--text);text-decoration:none}.gp-nav-item.gp-active{color:var(--accent-dim);background:var(--accent-soft);font-weight:500;box-shadow:inset 2px 0 0 var(--cyan)}.gp-ic{width:20px;text-align:center;flex-shrink:0}.gp-nav-soon{color:var(--text-faint);cursor:default}.gp-nav-soon:hover{background:transparent;color:var(--text-faint)}.gp-soon{margin-left:auto;padding:2px 6px;border:1px dashed var(--border-strong);border-radius:999px;color:var(--text-faint);font-size:9px;white-space:nowrap}.gp-sb-foot{border-top:1px solid var(--border);padding:12px 18px}.gp-sb-admin{color:var(--text-faint);font-size:12px;text-decoration:none}.gp-sb-admin:hover{color:var(--text);text-decoration:none}.gp-sb-admin.gp-active{color:var(--cyan)}.gp-topbar,.gp-scrim{display:none}.gp-nav-item:focus-visible,.gp-sb-name:focus-visible,.gp-sb-admin:focus-visible,.gp-hamb:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}@media(max-width:900px){.gp-sidebar{position:fixed;left:0;top:0;transform:translate(-100%);transition:transform .2s;box-shadow:2px 0 16px #0f172a1f}body.nav-open .gp-sidebar{transform:translate(0)}body.nav-open .gp-scrim{display:block;position:fixed;inset:0;background:#0f172a59;z-index:35}.gp-topbar{display:flex;align-items:center;gap:10px;padding:8px 12px;position:sticky;top:0;background:var(--bg-elev);border-bottom:1px solid var(--border);z-index:20}.gp-hamb{min-width:40px;min-height:40px;padding:0;background:transparent;border:0;color:var(--text);font-size:1.3rem;cursor:pointer}.gp-tb-brand{font-family:Anton,sans-serif;color:var(--cyan);letter-spacing:.04em}}@media(prefers-reduced-motion:reduce){.gp-sidebar{transition:none}}
