:root{color-scheme:light;--text:#26282b;--muted:#6f7378;--accent:#3d8f4a;--line:rgba(38,40,43,.09)}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{background:#e8e9e7;color:var(--text);font:13px/1.6 'Manrope','Noto Sans TC',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}h1,h2,h3,p{margin:0}button,input{-webkit-tap-highlight-color:transparent}button{color:inherit;font:inherit;cursor:pointer;touch-action:manipulation;transition:background .18s,color .18s;min-height:40px}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}#stage{position:fixed;inset:0;width:100%;height:100dvh;overflow:hidden;outline:none}canvas{display:block;touch-action:none;width:100%;height:100%}.glass{border:1px solid rgba(255,255,255,.85);background:rgba(255,255,255,.74);backdrop-filter:saturate(145%) blur(24px);-webkit-backdrop-filter:saturate(145%) blur(24px);box-shadow:0 0 0 1px rgba(24,26,29,.025),0 1px 2px rgba(24,26,29,.045),0 3px 6px rgba(24,26,29,.03),0 10px 22px rgba(24,26,29,.035),0 30px 60px rgba(24,26,29,.025)}
.topbar{position:fixed;z-index:2;top:20px;left:20px;right:20px;min-height:76px;border-radius:22px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 23px}.brand{display:flex;gap:11px;align-items:center}.brand img{border-radius:50%}.brand strong{display:block;font-size:14px;letter-spacing:.025em}.brand span{display:block;font-size:9px;letter-spacing:.13em;color:var(--muted)}.product-tabs{display:flex;gap:4px;padding:4px;border-radius:15px;background:rgba(38,40,43,.045)}.product-tabs button{border:1px solid transparent;background:transparent;border-radius:11px;padding:8px 18px;font-size:12px;white-space:nowrap;color:var(--muted)}.product-tabs button:hover{background:rgba(255,255,255,.65);color:var(--text)}.product-tabs button[aria-pressed=true]{background:#fff;border-color:rgba(61,143,74,.18);color:#347a40;box-shadow:0 2px 6px #00000005}.live-badge{font-size:11px;white-space:nowrap;display:flex;align-items:center;gap:7px;color:#347a40}.live-badge i{width:6px;height:6px;border-radius:50%;background:var(--accent)}.scene-caption{position:fixed;left:24px;top:116px;padding:17px 20px;border-radius:20px;pointer-events:none;max-width:calc(100vw - 395px);background:rgba(255,255,255,.48);box-shadow:0 2px 12px #00000003}.eyebrow{font-size:9px;font-weight:500;letter-spacing:.14em;color:var(--muted)}.scene-caption h1{font-size:25px;font-weight:500;letter-spacing:-.03em;margin-top:6px}.scene-caption p{font-size:11px;color:var(--muted);margin-top:4px}
.floating-panel{position:fixed;z-index:2;top:116px;right:20px;width:310px;max-height:calc(100dvh - 136px);display:flex;flex-direction:column;overflow:hidden;border-radius:24px}.panel-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:21px 20px 17px}.panel-header h2{font-size:22px;font-weight:500;letter-spacing:-.035em;line-height:1.4;margin-top:4px}.panel-header h2>span{color:var(--accent);margin-left:2px}.icon-button{display:grid;place-items:center;width:40px;min-width:40px;height:40px;padding:0;border:0;border-radius:12px;background:rgba(38,40,43,.045);font-size:21px}.icon-button:hover{background:rgba(38,40,43,.09)}#panel-toggle{width:30px;min-width:30px;background:transparent}#panel-toggle:hover{background:rgba(38,40,43,.05)}#panel-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}#panel-toggle[aria-expanded=false] svg{transform:rotate(180deg)}#panel-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;padding:0 20px 18px}#panel-content::-webkit-scrollbar{display:none;width:0;height:0}#panel-content:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}h3{font-size:11px;font-weight:500;color:var(--muted)}.section-note{font-size:9px;color:var(--muted)}.pill{border-radius:999px;padding:3px 8px;background:rgba(61,143,74,.09);font-size:9px;color:#347a40}.views{display:grid;gap:4px}.views button{text-align:left;display:flex;align-items:center;gap:12px;border:1px solid transparent;border-radius:11px;background:transparent;padding:8px 10px;font-size:12px;white-space:nowrap;min-height:40px}.views strong{font-weight:500}.view-num{font-size:10px;color:var(--muted)}.arrow{margin-left:auto;color:#929a94;font-size:17px}.views button:hover{background:rgba(255,255,255,.65)}.views button[aria-pressed=true]{background:#fff;border-color:rgba(61,143,74,.2);box-shadow:0 2px 6px #00000004}.views button[aria-pressed=true] .view-num,.views button[aria-pressed=true] .arrow{color:var(--accent)}.settings,.camera-section{border-top:1px solid var(--line);margin-top:17px;padding-top:15px}.settings label{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;cursor:pointer;font-size:12px}.settings small{display:block;font-size:9px;color:var(--muted);margin-top:1px}.switch{appearance:none;-webkit-appearance:none;position:relative;width:35px;height:21px;border-radius:999px;background:#cdd2ce;border:0;cursor:pointer;margin:0;flex-shrink:0;transition:background .18s}.switch::after{content:'';position:absolute;top:3px;left:3px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .18s}.switch:checked{background:var(--accent)}.switch:checked::after{transform:translateX(14px)}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:4px;border-radius:13px;background:rgba(38,40,43,.05)}.mode-switch button{background:transparent;border:0;border-radius:9px;font-size:11px;min-height:32px;color:var(--muted)}.mode-switch button[aria-pressed=true]{background:#fff;color:#347a40;box-shadow:0 1px 4px #00000005}.toolbar{display:flex;align-items:center;gap:7px;margin-top:8px}.toolbar .icon-button{background:rgba(255,255,255,.65);border:1px solid rgba(38,40,43,.055)}.toolbar button:hover{background:#fff}#reset{flex:1;height:40px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(38,40,43,.055);border-radius:12px;background:rgba(255,255,255,.65);font-size:11px}#reset>span{font-size:21px}.product-facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:17px;padding-top:15px;gap:8px}.product-facts strong{font-size:25px;font-weight:400;letter-spacing:-.05em;line-height:1.3;display:block}.product-facts strong span{font-size:10px;margin-left:4px;color:var(--muted)}.product-facts small{font-size:9px;color:var(--muted)}.module-note{font-size:10px;color:var(--muted);margin-top:12px}footer{margin-top:15px;border-top:1px solid var(--line);padding-top:12px;font-size:10px;color:var(--muted)}.status{font-size:9px;margin-top:4px}.status[data-ready=true]{color:#347a40}
@media(max-width:1000px){.topbar{display:grid;grid-template-columns:1fr auto;gap:8px 12px}.product-tabs{grid-column:1/-1;grid-row:2;justify-content:center}.scene-caption{top:164px}.floating-panel{top:164px;max-height:calc(100dvh - 184px)}.scene-caption{max-width:calc(100vw - 390px)}.scene-caption h1{font-size:22px}}
@media(max-width:600px){.topbar{top:12px;left:12px;right:12px;min-height:64px;padding:11px 15px;border-radius:20px;gap:10px}.brand{gap:8px}.brand img{width:32px;height:32px}.brand strong{font-size:12px}.brand span{font-size:7px}.live-badge{font-size:9px;gap:5px}.scene-caption{display:none}.floating-panel{top:88px;right:12px;width:min(278px,calc(100vw - 24px));max-height:calc(100dvh - 100px);border-radius:22px}.panel-header{padding:14px 17px}.panel-header h2{font-size:18px}.eyebrow{font-size:8px}#panel-content{padding:0 17px 16px}.views button{min-height:42px}.settings label{min-height:44px}}
@media(max-height:820px) and (min-width:601px){.panel-header{padding:16px 19px 13px}.panel-header h2{font-size:20px}#panel-content{padding:0 19px 14px}.views{gap:2px}.views button{min-height:34px;padding:5px 9px}.settings,.camera-section{margin-top:12px;padding-top:11px}.settings label{min-height:40px}.settings small{display:none}.product-facts{margin-top:12px;padding-top:11px}.product-facts strong{font-size:23px}.module-note{margin-top:8px}footer{margin-top:11px;padding-top:10px}}
@media(prefers-reduced-motion:reduce){*,*::after{transition:none!important}}

@media(max-height:820px) and (min-width:601px){.section-heading{margin-bottom:7px}.views button{min-height:30px;padding:3px 9px}.settings label{min-height:34px}.settings,.camera-section{margin-top:10px;padding-top:9px}.toolbar .icon-button,#reset{height:34px;min-height:34px}.mode-switch button{min-height:28px}.product-facts{margin-top:10px;padding-top:9px}.module-note{margin-top:6px}footer{margin-top:9px;padding-top:8px}}

@media(max-width:600px){.topbar{gap:7px 8px;padding:11px 10px}.brand{padding-left:3px}.product-tabs{width:100%;gap:2px;padding:3px}.product-tabs button{flex:1;min-width:0;padding:7px 5px;font-size:11px;min-height:38px}.floating-panel{top:132px;max-height:calc(100dvh - 144px)}}

#traffic-settings{padding:18px 0;border-bottom:1px solid var(--line,rgba(35,49,42,.12))}.phase-status{font-size:11px;color:#68736c;margin:10px 0 0}#traffic-settings[hidden]{display:none}

/* Soften clipped content without covering the scroll controls or the card edge. */
.floating-panel::after{content:'';position:absolute;z-index:1;inset:auto 0 0;height:42px;pointer-events:none;opacity:0;background:linear-gradient(to bottom,rgba(250,251,250,0),rgba(250,251,250,.72) 72%,rgba(250,251,250,.94));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);mask-image:linear-gradient(to bottom,transparent,#000 85%);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 85%);transition:opacity .18s ease}
.floating-panel[data-scroll-bottom="more"]::after{opacity:1}
.floating-panel:has(#panel-content[hidden])::after{opacity:0}
/* The topbar brand link; this used to be an inline style attribute, moved here so the CSP can drop style-src unsafe-inline. */
a.brand{color:inherit;text-decoration:none}
