@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,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:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_d8ebd1{font-family:Inter,Inter Fallback;font-style:normal}.__variable_d8ebd1{--font-inter:"Inter","Inter Fallback"}@font-face{font-family:Sora;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/1d4eaed977255102-s.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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Sora;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f3f7e95f2dbc4fe4-s.p.woff2) format("woff2");unicode-range:u+00??,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:Sora Fallback;src:local("Arial");ascent-override:85.29%;descent-override:25.50%;line-gap-override:0.00%;size-adjust:113.73%}.__className_ac70e9{font-family:Sora,Sora Fallback;font-style:normal}.__variable_ac70e9{--font-sora:"Sora","Sora Fallback"}:root{color-scheme:dark;--bg:#05070a;--surface-0:#080b10;--surface-1:#0c1016;--surface-2:#121821;--surface-3:#19202b;--surface-4:#222a37;--silver-100:#eef1f5;--silver-200:#d5dbe3;--silver-300:#b4bdc9;--silver-400:#8a95a5;--silver-500:#5d6878;--hairline:rgb(196 208 224/8%);--hairline-2:rgb(196 208 224/14%);--hairline-3:rgb(196 208 224/26%);--metal:linear-gradient(135deg,#f6f8fb,#b9c1cc 30%,#7f8998 50%,#e3e7ec 72%,#a3acb8);--edge:linear-gradient(165deg,rgb(226 233 243/30%),rgb(226 233 243/8%) 32%,rgb(226 233 243/5%) 68%,rgb(226 233 243/16%));--edge-on:linear-gradient(165deg,rgb(90 169 255/75%),rgb(47 140 255/22%) 45%,rgb(47 140 255/40%));--text:#f4f7fb;--text-2:#b4bdc9;--text-3:#8a95a5;--accent:#2f8cff;--accent-hi:#5aa9ff;--accent-fill:linear-gradient(180deg,#1d6cf2,#1659d6);--accent-soft:rgb(47 140 255/14%);--accent-line:rgb(47 140 255/45%);--glow:0 0 0 1px rgb(47 140 255/30%),0 10px 32px -12px rgb(47 140 255/60%);--glow-icon:drop-shadow(0 0 6px rgb(47 140 255/70%));--danger:#ff6b78;--danger-soft:rgb(255 107 120/9%);--danger-line:rgb(255 107 120/38%);--warn:#f2b84b;--warn-soft:rgb(242 184 75/8%);--warn-line:rgb(242 184 75/32%);--radius-sm:10px;--radius:14px;--radius-lg:20px;--radius-xl:26px;--shadow-1:inset 0 1px 0 rgb(255 255 255/4%),0 12px 32px -20px rgb(0 0 0/85%);--shadow-2:inset 0 1px 0 rgb(255 255 255/6%),0 28px 56px -28px rgb(0 0 0/95%);--ease:cubic-bezier(0.2,0.8,0.2,1);--spring:cubic-bezier(0.34,1.45,0.64,1);--t-fast:150ms;--t:200ms;--t-slow:250ms;--font-sans:var(--font-inter),system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-display:var(--font-sora),var(--font-sans);--touch:44px;--gutter:16px;--page-max:1200px;--topbar-h:64px;--tabbar-h:64px;--voice-h:76px}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--topbar-h) + 12px)}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font:400 16px/1.5 var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(1100px 520px at 50% -220px,rgb(47 140 255/13%),transparent 70%),radial-gradient(700px 500px at 100% -10%,rgb(200 215 235/5%),transparent 65%),radial-gradient(600px 600px at 0 110%,rgb(47 140 255/4%),transparent 70%)}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.015em;line-height:1.2;margin:0}p{margin:0}a{color:var(--accent-hi);text-underline-offset:3px}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em;padding:1px 6px;border-radius:6px;background:var(--surface-3);border:1px solid var(--hairline)}::selection{background:rgb(47 140 255/35%);color:#fff}:focus-visible{outline:2px solid var(--accent-hi);outline-offset:2px}button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed}a{-webkit-tap-highlight-color:transparent}.muted{color:var(--text-3)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.card{--card-bg:linear-gradient(180deg,var(--surface-2),var(--surface-1));--card-edge:var(--edge);position:relative;background:var(--card-bg) padding-box,var(--card-edge) border-box;border:1px solid transparent;border-radius:var(--radius-lg);box-shadow:var(--shadow-1);transition:box-shadow var(--t) var(--ease)}.card.is-on{--card-edge:var(--edge-on);box-shadow:var(--shadow-1),var(--glow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--touch);min-width:var(--touch);padding:0 16px;border-radius:12px;font-size:.9375rem;font-weight:600;line-height:1;color:var(--text);background:var(--surface-3);border:1px solid var(--hairline-2);text-decoration:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),box-shadow var(--t) var(--ease),transform var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease)}.btn svg{flex:none}@media (hover:hover){.btn:hover:not(:disabled){background:var(--surface-4);border-color:var(--hairline-3)}}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.45}.btn-primary{color:#fff;background:var(--accent-fill);border-color:transparent;box-shadow:inset 0 1px 0 rgb(255 255 255/18%),0 10px 26px -12px rgb(47 140 255/80%)}@media (hover:hover){.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#2a78f8,#1a62e2);border-color:transparent;box-shadow:inset 0 1px 0 rgb(255 255 255/22%),0 12px 30px -10px rgb(47 140 255/90%)}}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-2)}@media (hover:hover){.btn-ghost:hover:not(:disabled){background:var(--surface-3);border-color:var(--hairline);color:var(--text)}}.btn-block{width:100%;min-height:50px;font-size:1rem}.btn-icon{padding:0;width:var(--touch);height:var(--touch)}.btn-sm{min-height:36px;padding:0 12px;font-size:.8125rem;border-radius:10px}.btn-link{min-height:0;min-width:0;padding:0;background:none;border:0;color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px}.seg{display:flex;gap:4px;padding:4px;border-radius:14px;background:var(--surface-0);border:1px solid var(--hairline)}.seg>button{flex:1 1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;min-width:0;padding:0 8px;border-radius:10px;font-size:.8125rem;font-weight:600;color:var(--text-2);border:1px solid transparent;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),box-shadow var(--t) var(--ease),transform var(--t-fast) var(--ease)}.seg>button svg{width:18px;height:18px;flex:none}@media (hover:hover){.seg>button:hover:not(:disabled){background:var(--surface-3);color:var(--text)}}.seg>button:active:not(:disabled){transform:scale(.95)}.seg>button[aria-pressed=true],.seg>button[data-active=true]{color:var(--text);background:linear-gradient(180deg,var(--surface-4),var(--surface-3));border-color:var(--accent-line);box-shadow:0 0 18px -6px rgb(47 140 255/70%)}.seg>button[aria-pressed=true] svg,.seg>button[data-active=true] svg{color:var(--accent-hi)}.seg>button:disabled{opacity:.45}.seg-lg>button{min-height:44px}.switch{position:relative;flex:none;width:48px;height:28px;border-radius:999px;background:var(--surface-4);border:1px solid var(--hairline-2);box-shadow:inset 0 1px 3px rgb(0 0 0/50%);transition:background var(--t) var(--ease),border-color var(--t) var(--ease),box-shadow var(--t) var(--ease)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--metal);box-shadow:0 2px 6px rgb(0 0 0/55%);transition:transform var(--t-slow) var(--spring)}.switch.on,[aria-pressed=true]>.switch{background:var(--accent-fill);border-color:transparent;box-shadow:inset 0 1px 0 rgb(255 255 255/15%),0 0 16px -2px rgb(47 140 255/65%)}.switch.on:after,[aria-pressed=true]>.switch:after{transform:translateX(20px);background:#fff}.slider{--val:0%;--fill:var(--accent);-moz-appearance:none;appearance:none;-webkit-appearance:none;display:block;width:100%;height:var(--touch);margin:0;background:transparent;cursor:pointer}.slider:disabled{cursor:not-allowed;opacity:.5}.slider.is-dim{--fill:var(--silver-500)}.slider::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(90deg,var(--fill) var(--val),var(--surface-4) var(--val));box-shadow:inset 0 1px 2px rgb(0 0 0/50%)}.slider::-moz-range-track{height:6px;border-radius:999px;background:var(--surface-4)}.slider::-moz-range-progress{height:6px;border-radius:999px;background:var(--fill)}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;margin-top:-9px;border-radius:50%;background:#fff;border:0;box-shadow:0 0 0 5px rgb(47 140 255/18%),0 2px 10px rgb(0 0 0/60%);-webkit-transition:box-shadow var(--t) var(--ease),transform var(--t-fast) var(--ease);transition:box-shadow var(--t) var(--ease),transform var(--t-fast) var(--ease)}.slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;border:0;box-shadow:0 0 0 5px rgb(47 140 255/18%),0 2px 10px rgb(0 0 0/60%)}.slider.is-dim::-webkit-slider-thumb{background:var(--silver-200);box-shadow:0 0 0 5px rgb(196 208 224/8%),0 2px 10px rgb(0 0 0/60%)}.slider:active::-webkit-slider-thumb{transform:scale(1.12);box-shadow:0 0 0 8px rgb(47 140 255/22%),0 2px 12px rgb(0 0 0/60%)}.slider:focus-visible{outline:none}.slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--accent-hi)}.slider:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--accent-hi)}.chip{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 10px;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.01em;color:var(--text-2);background:var(--surface-3);border:1px solid var(--hairline-2);white-space:nowrap}.chip svg{width:14px;height:14px}.chip.is-on{color:var(--accent-hi);background:var(--accent-soft);border-color:var(--accent-line)}.spin{animation:spin .9s linear infinite}.spin-soft{animation:breathe 1s ease-in-out infinite}.skeleton{min-height:180px;overflow:hidden}.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgb(196 208 224/5%) 50%,transparent 70%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}@keyframes spin{to{transform:rotate(1turn)}}.notice{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--radius);background:var(--surface-1);border:1px solid var(--hairline-2);color:var(--text-2);font-size:.9375rem;animation:rise var(--t-slow) var(--ease) both}.notice>svg{flex:none;margin-top:1px;width:20px;height:20px;color:var(--silver-300)}.notice-body{min-width:0;flex:1 1}.notice strong{display:block;color:var(--text);font-weight:600}.notice p{margin-top:4px}.notice-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.notice-error{background:linear-gradient(180deg,var(--danger-soft),transparent),var(--surface-1);border-color:var(--danger-line)}.notice-error strong,.notice-error>svg{color:var(--danger)}.notice-warn{background:linear-gradient(180deg,var(--warn-soft),transparent),var(--surface-1);border-color:var(--warn-line)}.notice-warn strong,.notice-warn>svg{color:var(--warn)}.notice-ok{background:linear-gradient(180deg,var(--accent-soft),transparent),var(--surface-1);border-color:var(--accent-line)}.notice-ok>svg{color:var(--accent-hi)}.notice-compact{padding:10px 12px;font-size:.8125rem;gap:10px}.notice-compact>svg{width:18px;height:18px}.inline-error{display:flex;gap:8px;align-items:flex-start;margin-top:8px;padding:8px 10px;border-radius:var(--radius-sm);font-size:.8125rem;color:var(--danger);background:var(--danger-soft);border:1px solid var(--danger-line);animation:rise var(--t) var(--ease) both}.inline-error svg{flex:none;width:16px;height:16px;margin-top:1px}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}.shell{min-height:100dvh}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:rgb(5 7 10/72%);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);border-bottom:1px solid var(--hairline);padding-top:env(safe-area-inset-top)}.topbar-inner{max-width:var(--page-max);margin:0 auto;height:var(--topbar-h);padding:0 var(--gutter);display:flex;align-items:center;gap:16px}.brand{display:inline-flex;align-items:center;gap:10px;min-height:var(--touch);text-decoration:none;color:var(--text);flex:none}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;color:var(--silver-200);background:linear-gradient(180deg,var(--surface-3),var(--surface-1)) padding-box,var(--edge) border-box;border:1px solid transparent;box-shadow:var(--shadow-1)}.brand-mark svg{width:22px;height:22px}.brand-mark .logo-dot{color:var(--accent);filter:drop-shadow(0 0 4px rgb(47 140 255/90%))}.wordmark{font-family:var(--font-display);font-weight:600;font-size:1.25rem;letter-spacing:-.02em;background:var(--metal);-webkit-background-clip:text;background-clip:text;color:transparent}.topnav{display:none;margin:0 auto;padding:4px;gap:4px;border-radius:14px;background:var(--surface-0);border:1px solid var(--hairline)}.topnav a{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border-radius:10px;color:var(--text-2);font-size:.9375rem;font-weight:600;text-decoration:none;border:1px solid transparent;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.topnav a svg{width:18px;height:18px}@media (hover:hover){.topnav a:hover{color:var(--text);background:var(--surface-3)}}.topnav a[aria-current=page]{color:var(--text);background:linear-gradient(180deg,var(--surface-4),var(--surface-3));border-color:var(--hairline-2)}.topnav a[aria-current=page] svg{color:var(--accent-hi);filter:var(--glow-icon)}.topbar-user{margin-left:auto;display:flex;align-items:center;gap:6px;min-width:0}.greeting{color:var(--text-2);font-size:.9375rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity var(--t-slow) var(--ease)}.greeting strong{color:var(--text);font-weight:600}.greeting[data-ready=false]{opacity:0}.page{max-width:var(--page-max);margin:0 auto;padding:20px var(--gutter) calc(var(--tabbar-h) + 32px + env(safe-area-inset-bottom))}.shell:has(.voicebar) .page{padding-bottom:calc(var(--tabbar-h) + var(--voice-h) + 32px + env(safe-area-inset-bottom))}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:1fr 1fr;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding:0 12px env(safe-area-inset-bottom);background:rgb(8 11 16/86%);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);border-top:1px solid var(--hairline-2)}.tabbar a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-3);font-size:.75rem;font-weight:600;text-decoration:none;transition:color var(--t-fast) var(--ease)}.tabbar a svg{width:24px;height:24px;transition:transform var(--t) var(--spring),filter var(--t) var(--ease)}.tabbar a[aria-current=page]{color:var(--text)}.tabbar a[aria-current=page] svg{color:var(--accent-hi);filter:var(--glow-icon);transform:translateY(-1px)}.tabbar a[aria-current=page]:before{content:"";position:absolute;top:-1px;left:50%;width:36px;height:2px;margin-left:-18px;border-radius:0 0 2px 2px;background:var(--accent);box-shadow:0 0 12px 1px rgb(47 140 255/80%)}.tabbar a:active svg{transform:scale(.9)}@media (min-width:720px){.topnav{display:flex}.tabbar{display:none}.page{padding:28px 24px 48px}.shell:has(.voicebar) .page{padding-bottom:calc(var(--voice-h) + 56px)}.topbar-inner{padding:0 24px}}@media (max-width:359px){.greeting-time{display:none}}.stack{display:grid;grid-gap:16px;gap:16px}.page>.stack{gap:20px}.section{display:grid;grid-gap:12px;gap:12px;animation:rise var(--t-slow) var(--ease) both}.section+.section{margin-top:12px}.section-head{display:flex;align-items:center;gap:10px;min-height:32px}.section-head h1,.section-head h2{font-size:1.125rem}.section-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;color:var(--silver-200);background:var(--surface-2);border:1px solid var(--hairline-2)}.section-icon svg{width:18px;height:18px}.section-meta{margin-left:auto;font-size:.8125rem;color:var(--text-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.section-meta.is-on{color:var(--accent-hi)}.subhead{font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin:6px 2px 0}.status{display:flex;align-items:center;gap:12px;min-height:60px;padding:8px 8px 8px 16px;border-radius:var(--radius-lg);background:linear-gradient(180deg,var(--surface-2),var(--surface-1)) padding-box,var(--edge) border-box;border:1px solid transparent}.status-dot{position:relative;flex:none;width:10px;height:10px;border-radius:50%;background:var(--silver-500)}.status[data-state=ok] .status-dot{background:var(--accent);box-shadow:0 0 10px 2px rgb(47 140 255/70%)}.status[data-state=ok] .status-dot:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid rgb(47 140 255/60%);animation:ping 2.4s var(--ease) infinite}.status[data-state=loading] .status-dot{background:var(--silver-400);animation:breathe 1.4s ease-in-out infinite}.status[data-state=error] .status-dot{background:var(--danger);box-shadow:0 0 10px 1px rgb(255 107 120/55%)}@keyframes ping{0%{transform:scale(.6);opacity:1}80%,to{transform:scale(1.8);opacity:0}}@keyframes breathe{50%{opacity:.35}}.status-text{display:grid;flex:1 1;min-width:0;line-height:1.3}.status-text strong{font-weight:600;font-size:.9375rem}.status-text span{font-size:.8125rem;color:var(--text-3)}.status-facts{display:none;gap:8px}@media (min-width:720px){.status-facts{display:flex}}.scenes{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(132px,1fr);grid-gap:10px;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 calc(var(--gutter) * -1);padding:2px var(--gutter) 6px;scroll-padding:0 var(--gutter)}.scenes::-webkit-scrollbar{display:none}@media (min-width:720px){.scenes{grid-auto-flow:row;grid-template-columns:repeat(auto-fit,minmax(124px,1fr));overflow:visible;margin:0;padding:0}}.scene{--card-bg:linear-gradient(180deg,var(--surface-2),var(--surface-1));scroll-snap-align:start;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:14px;min-height:92px;padding:14px;text-align:left;border-radius:var(--radius);transition:transform var(--t-fast) var(--ease),box-shadow var(--t) var(--ease)}.scene-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;color:var(--silver-200);background:var(--surface-3);border:1px solid var(--hairline);transition:color var(--t) var(--ease),background var(--t) var(--ease),border-color var(--t) var(--ease)}.scene-icon svg{width:20px;height:20px}.scene-name{font-weight:600;font-size:.9375rem;line-height:1.25}@media (hover:hover){.scene:hover:not(:disabled) .scene-icon{color:var(--accent-hi);border-color:var(--accent-line)}}.scene:active:not(:disabled){transform:scale(.97)}.scene.is-done .scene-icon,.scene.is-pending .scene-icon{color:var(--accent-hi);background:var(--accent-soft);border-color:var(--accent-line)}.scene.is-done{--card-edge:var(--edge-on);box-shadow:var(--shadow-1),var(--glow)}.scene:disabled{cursor:progress}.cctv-card{--card-bg:radial-gradient(420px 160px at 0% 0%,rgb(47 140 255/16%),transparent 70%),linear-gradient(180deg,var(--surface-2),var(--surface-1));--card-edge:linear-gradient(165deg,rgb(120 180 255/60%),rgb(226 233 243/8%) 40%,rgb(226 233 243/18%));display:flex;align-items:center;gap:16px;min-height:92px;padding:16px 16px 16px 18px;color:var(--text);text-decoration:none;overflow:hidden;transition:transform var(--t-fast) var(--ease),box-shadow var(--t) var(--ease)}@media (hover:hover){.cctv-card:hover{box-shadow:var(--shadow-2),var(--glow)}.cctv-card:hover .cctv-go{transform:translateX(3px);color:var(--accent-hi)}}.cctv-card:active{transform:scale(.985)}.cctv-icon{position:relative;display:grid;place-items:center;flex:none;width:56px;height:56px;border-radius:16px;color:var(--accent-hi);background:radial-gradient(circle at 50% 35%,rgb(47 140 255/30%),rgb(47 140 255/6%));border:1px solid var(--accent-line);box-shadow:0 0 28px -6px rgb(47 140 255/70%)}.cctv-icon svg{width:28px;height:28px;filter:var(--glow-icon)}.cctv-text{display:grid;grid-gap:2px;gap:2px;min-width:0}.cctv-title{font-family:var(--font-display);font-weight:600;font-size:1.1875rem;letter-spacing:-.015em}.cctv-sub{color:var(--text-2);font-size:.875rem}.cctv-tiles{display:none;margin-left:auto;grid-template-columns:repeat(4,54px);grid-template-rows:34px;gap:6px}.cctv-tiles span{border-radius:7px;background:linear-gradient(180deg,rgb(255 255 255/5%),transparent 60%),linear-gradient(135deg,#18202c,#0b0f15);border:1px solid var(--hairline-2)}.cctv-tiles span:first-child{border-color:var(--accent-line);box-shadow:0 0 14px -4px rgb(47 140 255/70%)}.cctv-go{display:grid;place-items:center;flex:none;margin-left:auto;width:var(--touch);height:var(--touch);border-radius:12px;color:var(--text-2);background:var(--surface-3);border:1px solid var(--hairline-2);transition:transform var(--t) var(--spring),color var(--t-fast) var(--ease)}.cctv-tiles+.cctv-go{margin-left:6px}@media (min-width:720px){.cctv-tiles{display:grid}}.rooms{columns:300px;column-gap:12px}.rooms>*{page-break-inside:avoid;break-inside:avoid;margin-bottom:12px}.section>.rooms:last-child{margin-bottom:-12px}.room{display:block;padding:6px 16px 10px}.room-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:10px 0 4px}.room-head h3{font-size:1rem}.room-meta{font-size:.8125rem;color:var(--text-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.room-meta.is-on{color:var(--accent-hi)}.dev{padding:6px 0}.dev+.dev{border-top:1px solid var(--hairline)}.dev-main{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:6px 0;text-align:left;border-radius:var(--radius-sm)}button.dev-main:active:not(:disabled) .dev-icon{transform:scale(.92)}button.dev-main:focus-visible{outline-offset:0}.dev-icon{position:relative;display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:13px;color:var(--silver-300);background:var(--surface-3);border:1px solid var(--hairline);transition:color var(--t) var(--ease),background var(--t) var(--ease),border-color var(--t) var(--ease),box-shadow var(--t) var(--ease),transform var(--t-fast) var(--ease)}.dev-icon svg{width:22px;height:22px;transition:filter var(--t) var(--ease)}.dev.is-on .dev-icon{color:var(--accent-hi);background:radial-gradient(circle at 50% 40%,rgb(47 140 255/26%),rgb(47 140 255/8%));border-color:var(--accent-line);box-shadow:0 0 22px -6px rgb(47 140 255/75%)}.dev.is-on .dev-icon svg{filter:var(--glow-icon)}.dev.is-pending .dev-icon:after{content:"";position:absolute;inset:-4px;border-radius:16px;border-left:2px solid transparent;border-bottom:2px solid transparent;border-top:2px solid transparent;border-top-color:var(--accent-hi);border-right:2px solid rgb(90 169 255/35%);animation:spin .9s linear infinite}.dev-label{display:grid;min-width:0;flex:1 1;line-height:1.3}.dev-name{font-weight:600;font-size:.9375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dev-state{font-size:.8125rem;color:var(--text-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;transition:color var(--t) var(--ease)}.dev.is-on .dev-state{color:var(--text-2)}.dev-slider{display:flex;align-items:center;gap:12px;padding-left:54px;margin-top:-6px}.dev-slider .slider{flex:1 1}.dev-slider output{min-width:3.2em;text-align:right;font-size:.8125rem;color:var(--text-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dev-controls{padding-left:54px;margin:2px 0 4px}.dev .inline-error{margin-left:54px}.dev.is-unavailable{opacity:.55}.zones{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));align-items:start}.zone{display:grid;grid-gap:14px;gap:14px;padding:16px}.zone-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.zone-head h3{font-size:1.0625rem}.zone-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;color:var(--text-3)}.zone-body{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.zone-now{display:grid}.temp-big{font-family:var(--font-display);font-size:2.75rem;font-weight:300;letter-spacing:-.04em;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.temp-big small{font-size:1.125rem;font-weight:400;margin-left:2px;color:var(--text-2);letter-spacing:0;vertical-align:top}.temp-label{margin-top:6px;font-size:.6875rem;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em}.stepper{display:flex;align-items:center;gap:4px;padding:4px;border-radius:16px;background:var(--surface-0);border:1px solid var(--hairline)}.stepper .btn{width:var(--touch);height:var(--touch);padding:0;border-radius:12px}.stepper-value{display:grid;justify-items:center;min-width:64px;line-height:1.1}.stepper-value strong{font-family:var(--font-display);font-size:1.25rem;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stepper-value span{font-size:.6875rem;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em}.zone-row{display:flex;gap:8px;align-items:center}.power-btn{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 12px 0 14px;border-radius:14px;background:var(--surface-0);border:1px solid var(--hairline);font-size:.875rem;font-weight:600;color:var(--text-2);transition:color var(--t) var(--ease),border-color var(--t) var(--ease)}.power-btn[aria-pressed=true]{color:var(--text);border-color:var(--accent-line)}.zone .seg{flex:1 1}.zone .seg>button{flex-direction:column;gap:3px;min-height:52px;padding:4px 2px;font-size:.75rem}.zone.is-off .temp-big{color:var(--text-2)}.zone.is-pending .zone-head h3:after{content:"";display:inline-block;width:12px;height:12px;margin-left:8px;border-radius:50%;border:2px solid var(--accent-hi);border-right:2px solid transparent;animation:spin .9s linear infinite;vertical-align:-1px}.empty{display:grid;justify-items:start;grid-gap:10px;gap:10px;padding:22px}.empty-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;color:var(--silver-200);background:var(--surface-3);border:1px solid var(--hairline-2)}.empty-icon svg{width:24px;height:24px}.empty h3{font-size:1.0625rem}.empty p{color:var(--text-2);max-width:60ch}.empty .muted{font-size:.8125rem}@media (min-width:720px){.empty{grid-template-columns:48px 1fr;column-gap:18px;align-items:start}.empty>*{grid-column:2}.empty>.empty-icon{grid-column:1;grid-row:1/span 3}}.empty-steps{margin:4px 0 0;padding-left:20px;color:var(--text-2);display:grid;grid-gap:4px;gap:4px}.activity>summary{list-style:none;display:flex;align-items:center;gap:12px;min-height:60px;padding:8px 16px;cursor:pointer;border-radius:var(--radius-lg)}.activity>summary::-webkit-details-marker{display:none}.activity>summary .chev{margin-left:auto;color:var(--text-3);transition:transform var(--t) var(--ease)}.activity[open]>summary .chev{transform:rotate(180deg)}.activity-last{display:grid;min-width:0;line-height:1.3}.activity-last strong{font-size:.9375rem}.activity-last span{font-size:.8125rem;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-list{margin:0;padding:0 8px 8px;list-style:none;animation:fade var(--t-slow) var(--ease) both}.activity-list li{display:grid;grid-template-columns:72px minmax(0,1.3fr) minmax(0,1.5fr) minmax(0,.9fr) 104px;align-items:center;grid-gap:12px;gap:12px;padding:10px 8px;border-top:1px solid var(--hairline);font-size:.8125rem}.activity-list .meta{display:contents}.activity-list .when{grid-column:1;grid-row:1;color:var(--text-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.activity-list .what{grid-column:2;grid-row:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-list .how{grid-column:3;grid-row:1;color:var(--text-2)}.activity-list .who{grid-column:4;grid-row:1;color:var(--text-3)}.activity-list .outcome{grid-column:5;grid-row:1}@media (max-width:640px){.activity-list li{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px}.activity-list .what{grid-column:1;grid-row:1}.activity-list .outcome{grid-column:2;grid-row:1/span 2}.activity-list .how{grid-column:1;grid-row:2}.activity-list .meta{display:flex;gap:8px;grid-column:1/-1;grid-row:3;font-size:.75rem}}.outcome{justify-self:end}.outcome.ok{color:var(--accent-hi)}.outcome.bad{color:var(--danger);border-color:var(--danger-line);background:var(--danger-soft)}.outcome.held{color:var(--warn);border-color:var(--warn-line);background:var(--warn-soft)}.voicebar{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));z-index:35;padding:10px var(--gutter);background:linear-gradient(180deg,transparent,rgb(5 7 10/85%) 40%);pointer-events:none}.voicebar-inner{pointer-events:auto;position:relative;max-width:760px;margin:0 auto;display:flex;align-items:center;gap:8px;padding:6px;border-radius:999px;background:linear-gradient(180deg,rgb(25 32 43/92%),rgb(12 16 22/92%)) padding-box,var(--edge) border-box;border:1px solid transparent;-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);box-shadow:var(--shadow-2);transition:box-shadow var(--t) var(--ease)}.voicebar-inner:focus-within{box-shadow:var(--shadow-2),0 0 0 1px var(--accent-line),0 0 28px -8px rgb(47 140 255/60%)}.voicebar input{flex:1 1;min-width:0;min-height:var(--touch);padding:0 4px;font:inherit;font-size:1rem;color:var(--text);background:transparent;border:0;outline:none}.voicebar input::placeholder{color:var(--text-3)}.voice-mic,.voice-send{display:grid;place-items:center;flex:none;width:var(--touch);height:var(--touch);border-radius:50%;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),box-shadow var(--t) var(--ease)}.voice-mic{color:var(--silver-200);background:var(--surface-4);border:1px solid var(--hairline-2)}.voice-mic:disabled{opacity:.4}.voice-mic.listening{color:#fff;background:var(--accent-fill);border-color:transparent;animation:listen 1.4s ease-in-out infinite}@keyframes listen{0%,to{box-shadow:0 0 0 0 rgb(47 140 255/55%)}50%{box-shadow:0 0 0 10px rgb(47 140 255/0)}}.voice-send{color:#fff;background:var(--accent-fill);box-shadow:inset 0 1px 0 rgb(255 255 255/18%)}.voice-send:disabled{color:var(--text-3);background:var(--surface-3);box-shadow:none}.voice-mic:active:not(:disabled),.voice-send:active:not(:disabled){transform:scale(.92)}.voice-said{pointer-events:auto;position:absolute;left:12px;right:12px;bottom:calc(100% + 8px);padding:10px 14px;border-radius:14px;font-size:.875rem;color:var(--text-2);background:var(--surface-2);border:1px solid var(--hairline-2);box-shadow:var(--shadow-2);animation:rise var(--t) var(--ease) both}.voice-said.bad{color:var(--danger);border-color:var(--danger-line)}.voice-said.held{color:var(--warn);border-color:var(--warn-line)}@media (min-width:720px){.voicebar{bottom:0;padding:12px 24px 20px}}.cams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin:0;padding:0;list-style:none}@media (min-width:560px){.cams{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}}.cam-tile{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;isolation:isolate;border-radius:var(--radius);color:var(--text);text-decoration:none;background:radial-gradient(120% 90% at 50% 0,rgb(47 140 255/6%),transparent 60%),linear-gradient(160deg,#10151d,#06080b);box-shadow:var(--shadow-1);transition:transform var(--t-fast) var(--ease),box-shadow var(--t) var(--ease)}.cam-tile:not(.skeleton):after,.viewer-stage:not(.skeleton):after{content:"";position:absolute;inset:0;z-index:5;padding:1px;border-radius:inherit;background:var(--edge);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.cam-tile.skeleton{min-height:0}@media (hover:hover){.cam-tile:hover{box-shadow:var(--shadow-2),var(--glow)}.cam-tile:hover:after{background:var(--edge-on)}}.cam-tile:active{transform:scale(.98)}.cam-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:fade var(--t-slow) var(--ease) both;transition:filter var(--t) var(--ease)}.cam-tile.is-offline img{filter:grayscale(1) brightness(.5)}.cam-tile.is-stale img{filter:saturate(.5) brightness(.75)}.cam-info{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:center;gap:8px;padding:22px 10px 8px;font-size:.8125rem;font-weight:600;background:linear-gradient(180deg,transparent,rgb(3 5 8/85%))}.cam-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 2px rgb(0 0 0/70%)}.cam-ptz{display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:7px;color:var(--silver-200);background:rgb(255 255 255/8%);border:1px solid var(--hairline-2)}.cam-ptz svg{width:14px;height:14px}.cam-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--silver-500)}.cam-dot[data-state=online]{background:var(--accent);box-shadow:0 0 8px 1px rgb(47 140 255/75%)}.cam-dot[data-state=offline]{background:var(--danger);box-shadow:0 0 8px 1px rgb(255 107 120/50%)}.cam-state{position:absolute;inset:0 0 26px;display:grid;place-content:center;justify-items:center;grid-gap:6px;gap:6px;color:var(--text-3);font-size:.75rem;font-weight:600}.cam-spinner,.cam-state svg{width:22px;height:22px}.cam-spinner{border-radius:50%;border:2px solid rgb(196 208 224/14%);border-top:2px solid var(--accent-hi);animation:spin .9s linear infinite}.cam-stale{position:absolute;top:8px;right:8px;z-index:2;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;color:var(--warn);background:rgb(5 7 10/72%);border:1px solid var(--warn-line)}.cam-stale svg{width:15px;height:15px}@media (max-width:559px){.cam-info{gap:6px;padding:18px 8px 6px;font-size:.75rem}}.viewer{display:grid;grid-gap:14px;gap:14px}.viewer-head{display:flex;align-items:center;gap:8px;min-height:var(--touch)}.viewer-head>.btn-ghost{margin-left:-10px}.viewer-title{display:grid;grid-gap:2px;gap:2px;flex:1 1;min-width:0}.viewer-title h1{font-size:1.375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-facts{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;font-size:.8125rem;color:var(--text-3)}.viewer-facts>span{display:inline-flex;align-items:center;gap:6px}.viewer-facts>span+span:before{content:"·";margin-right:2px}@media (max-width:479px){.viewer-facts>.viewer-channel{display:none}}.viewer-step{display:flex;align-items:center;gap:4px;flex:none}.viewer-count{min-width:2.8em;text-align:center;font-size:.8125rem;color:var(--text-3)}@media (max-width:479px){.viewer-count{display:none}}.viewer-body{display:grid;grid-gap:14px;gap:14px;align-items:start}.viewer-main{display:grid;grid-gap:10px;gap:10px;min-width:0}.viewer-side{display:grid;grid-gap:12px;gap:12px;align-items:start}@media (min-width:640px) and (max-width:999px){.viewer-side{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}}@media (min-width:1000px){.viewer-body{grid-template-columns:minmax(0,1fr) 340px;gap:20px}}.viewer-stage{position:relative;width:100%;aspect-ratio:16/9;min-height:180px;max-height:calc(100dvh - var(--topbar-h) - 96px);overflow:hidden;isolation:isolate;border-radius:var(--radius-lg);background:#000;box-shadow:var(--shadow-2);-moz-user-select:none;user-select:none;-webkit-user-select:none}.viewer-stage.skeleton{background:linear-gradient(180deg,var(--surface-2),var(--surface-1));box-shadow:var(--shadow-1)}@media (max-width:719px){.viewer-stage:not(.is-full){width:calc(100% + var(--gutter) * 2);margin:0 calc(var(--gutter) * -1);border-radius:0}}.stage-picture,.stage-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.stage-picture{animation:fade var(--t-slow) var(--ease) both}.stage-video{opacity:0;transition:opacity var(--t-slow) var(--ease)}.stage-video[data-ready=true]{opacity:1}.stage-state{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;grid-gap:8px;gap:8px;padding:56px 24px 24px;text-align:center;font-size:.875rem;color:var(--text-2);animation:fade var(--t) var(--ease) both}.stage-state.is-over{background:rgb(0 0 0/40%)}.stage-state svg{width:28px;height:28px;color:var(--silver-300)}.stage-state strong{color:var(--text);font-size:1rem;font-weight:600}.stage-state>span:not(.cam-spinner){max-width:44ch}.stage-state .cam-spinner{width:28px;height:28px}.stage-top{position:absolute;top:0;left:0;right:0;z-index:4;display:flex;align-items:center;gap:10px;padding:10px;pointer-events:none}.stage-top>*{pointer-events:auto}.stage-bottom{position:absolute;left:10px;bottom:10px;z-index:4;display:flex;pointer-events:none}.viewer-stage.is-full .stage-bottom{left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom))}.stage-pill{display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 10px;border-radius:999px;font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);background:rgb(5 7 10/62%);border:1px solid var(--hairline-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.stage-pill.is-live{color:#fff;background:rgb(22 89 214/45%);border-color:var(--accent-line);box-shadow:0 0 16px -4px rgb(47 140 255/70%)}.stage-pill.is-stale{color:var(--warn);border-color:var(--warn-line)}.live-dot{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 8px 2px rgb(90 169 255/90%);animation:breathe 1.6s ease-in-out infinite}.stage-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-weight:600;text-shadow:0 1px 3px rgb(0 0 0/70%)}.stage-btn{display:grid;place-items:center;flex:none;width:var(--touch);height:var(--touch);margin-left:auto;border-radius:12px;color:var(--text);background:rgb(5 7 10/55%);border:1px solid var(--hairline-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.stage-btn svg{width:20px;height:20px}@media (hover:hover){.stage-btn:hover{background:rgb(25 32 43/85%);border-color:var(--hairline-3)}}.stage-btn:active{transform:scale(.94)}.viewer-stage.is-full{aspect-ratio:auto;max-height:none;border-radius:0;box-shadow:none}.viewer-stage.is-full:after{display:none}.viewer-stage:-webkit-full-screen{width:100%;height:100%}.viewer-stage:fullscreen{width:100%;height:100%}.viewer-stage::-webkit-backdrop{background:#000}.viewer-stage::backdrop{background:#000}.viewer-stage.is-css-full{position:fixed;inset:0;z-index:100;margin:0;height:100dvh}.viewer-stage.is-full .stage-top{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 24px max(12px,env(safe-area-inset-left));background:linear-gradient(180deg,rgb(0 0 0/55%),transparent)}.stage-ptz{position:absolute;z-index:4;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:grid;justify-items:end;grid-gap:10px;gap:10px;animation:rise var(--t-slow) var(--ease) both}.stage-error{max-width:300px;padding:8px 10px;border-radius:10px;font-size:.8125rem;color:var(--danger);background:rgb(5 7 10/85%);border:1px solid var(--danger-line)}.ptz-card{display:grid;grid-gap:14px;gap:14px;padding:16px}.ptz-note{font-size:.8125rem;color:var(--text-3)}.ptz-card>.ptz-note{margin-top:-6px}.ptz{display:flex;align-items:center;justify-content:center;gap:18px;padding:4px 0}.ptz-pad{--cell:54px;display:grid;grid-template-columns:repeat(3,var(--cell));grid-template-rows:repeat(3,var(--cell));padding:6px;border-radius:50%;background:radial-gradient(circle at 50% 42%,var(--surface-3),var(--surface-0) 74%) padding-box,var(--edge) border-box;border:1px solid transparent;box-shadow:var(--shadow-2),inset 0 2px 14px rgb(0 0 0/55%)}.ptz-btn{display:grid;place-items:center;border-radius:16px;color:var(--silver-200);touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),box-shadow var(--t) var(--ease),transform var(--t-fast) var(--ease)}.ptz-btn svg{width:26px;height:26px}.ptz-down_left,.ptz-down_right,.ptz-up_left,.ptz-up_right{padding:9px}.ptz-up_left{place-items:end end}.ptz-up_right{place-items:end start}.ptz-down_left{place-items:start end}.ptz-down_right{place-items:start start}.ptz-down_left svg,.ptz-down_right svg,.ptz-up_left svg,.ptz-up_right svg{width:20px;height:20px}@media (hover:hover){.ptz-btn:hover{color:var(--text);background:rgb(255 255 255/4%)}}.ptz-btn:active{transform:scale(.94)}.ptz-btn[data-active=true]{color:var(--accent-hi);background:radial-gradient(circle,rgb(47 140 255/30%),rgb(47 140 255/6%) 72%);box-shadow:inset 0 0 0 1px var(--accent-line),0 0 22px -4px rgb(47 140 255/70%)}.ptz-btn[data-active=true] svg{filter:var(--glow-icon)}.ptz-hub{display:grid;place-items:center;margin:8px;border-radius:50%;color:var(--silver-400);background:linear-gradient(180deg,var(--surface-4),var(--surface-2));border:1px solid var(--hairline-2);box-shadow:inset 0 1px 0 rgb(255 255 255/7%),0 6px 16px -8px rgb(0 0 0/90%);transition:color var(--t) var(--ease),border-color var(--t) var(--ease),box-shadow var(--t) var(--ease)}.ptz-hub svg{width:18px;height:18px}.ptz-hub.is-on{color:var(--accent-hi);border-color:var(--accent-line);box-shadow:inset 0 1px 0 rgb(255 255 255/7%),0 0 20px -2px rgb(47 140 255/75%)}.ptz-hub.is-on svg{filter:var(--glow-icon)}.ptz-zoom{display:grid;grid-template-rows:64px 1px 64px;width:58px;padding:4px;border-radius:999px;background:linear-gradient(180deg,var(--surface-3),var(--surface-0)) padding-box,var(--edge) border-box;border:1px solid transparent;box-shadow:var(--shadow-2)}.ptz-zoom .ptz-btn{border-radius:999px}.ptz-zoom .ptz-btn svg{width:24px;height:24px}.ptz-zoom-rule{margin:0 12px;background:var(--hairline-2)}.ptz-compact{gap:12px;padding:0}.ptz-compact .ptz-pad{--cell:46px;background:radial-gradient(circle at 50% 42%,rgb(34 42 55/70%),rgb(8 11 16/55%) 74%) padding-box,var(--edge) border-box}.ptz-compact .ptz-pad,.ptz-compact .ptz-zoom{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.ptz-compact .ptz-zoom{grid-template-rows:54px 1px 54px;width:52px;background:linear-gradient(180deg,rgb(34 42 55/70%),rgb(8 11 16/55%)) padding-box,var(--edge) border-box}.ptz-compact .ptz-hub{margin:7px}.ptz-presets,.ptz-row{display:grid;grid-gap:8px;gap:8px}.ptz-presets .subhead,.ptz-row .subhead,.viewer-mode .subhead{margin:0 2px}.presets{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.preset{display:inline-flex;align-items:center;gap:8px;min-height:var(--touch);padding:0 14px 0 12px;border-radius:12px;font-size:.875rem;font-weight:600;color:var(--text-2);background:var(--surface-3);border:1px solid var(--hairline-2);transition:color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),box-shadow var(--t) var(--ease),transform var(--t-fast) var(--ease)}.preset svg{width:18px;height:18px;color:var(--silver-300)}@media (hover:hover){.preset:hover:not(:disabled){color:var(--text);background:var(--surface-4);border-color:var(--hairline-3)}}.preset:active:not(:disabled){transform:scale(.96)}.preset:disabled{cursor:progress}.preset:disabled:not(.is-pending){opacity:.55}.preset.is-pending svg{color:var(--accent-hi);animation:breathe 1s ease-in-out infinite}.preset.is-done{color:var(--text);border-color:var(--accent-line);box-shadow:0 0 18px -6px rgb(47 140 255/70%)}.preset.is-done svg{color:var(--accent-hi);filter:var(--glow-icon)}.viewer-fixed{display:flex;align-items:flex-start;gap:12px;padding:16px;font-size:.875rem;color:var(--text-2)}.viewer-fixed .section-icon{flex:none}.viewer-fixed strong{color:var(--text);font-weight:600}.viewer-mode{display:grid;grid-gap:10px;gap:10px;padding:16px}.viewer-mode .muted{font-size:.8125rem}main.auth{min-height:100dvh;display:grid;place-items:center;padding:32px var(--gutter)}.auth-card{width:100%;max-width:420px;padding:32px 24px 28px;border-radius:var(--radius-xl);background:linear-gradient(180deg,rgb(25 32 43/85%),rgb(12 16 22/92%)) padding-box,var(--edge) border-box;border:1px solid transparent;box-shadow:var(--shadow-2),0 40px 120px -60px rgb(47 140 255/45%);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:rise var(--t-slow) var(--ease) both}@media (min-width:480px){.auth-card{padding:40px 36px 32px}}.auth-brand{display:flex;align-items:center;gap:10px;margin:0 0 28px}.auth-brand .brand-mark{width:40px;height:40px;border-radius:12px}.auth-card h1{font-size:1.625rem;margin:0 0 8px}.auth-sub{margin:0 0 4px;color:var(--text-2);font-size:.9375rem}.auth-form{display:grid;grid-gap:16px;gap:16px;margin-top:24px}.auth-form label{display:grid;grid-gap:8px;gap:8px}.auth-form label>span{font-size:.8125rem;font-weight:600;color:var(--text-2);letter-spacing:.01em}.auth-form input[type=email],.auth-form input[type=password],.auth-form input[type=text],.field{font:inherit;font-size:1rem;color:var(--text);background:var(--surface-0);border:1px solid var(--hairline-2);border-radius:12px;min-height:50px;padding:0 14px;width:100%;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t) var(--ease),background var(--t-fast) var(--ease)}.auth-form input:hover{border-color:var(--hairline-3)}.auth-form input:focus-visible{outline:none;border-color:var(--accent);background:var(--surface-1);box-shadow:0 0 0 4px rgb(47 140 255/18%),0 0 24px -8px rgb(47 140 255/60%)}.auth-check{display:flex!important;align-items:center;gap:10px!important;min-height:var(--touch);cursor:pointer}.auth-check input{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;margin:0;border-radius:7px;background:var(--surface-0);border:1px solid var(--hairline-3);display:grid;place-items:center;cursor:pointer;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.auth-check input:after{content:"";width:10px;height:6px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:translateY(-1px) rotate(-45deg) scale(0);transition:transform var(--t) var(--spring)}.auth-check input:checked{background:var(--accent-fill);border-color:transparent;box-shadow:0 0 14px -2px rgb(47 140 255/70%)}.auth-check input:checked:after{transform:translateY(-1px) rotate(-45deg) scale(1)}.auth-check span{font-weight:400!important;font-size:.9375rem!important;color:var(--text-2)!important}.auth-rule{margin:-8px 0 0;font-size:.8125rem;color:var(--text-3)}.auth-rule.warn{color:var(--warn)}.auth-error{margin:0;padding:12px 14px;border-radius:12px;border:1px solid var(--danger-line);background:var(--danger-soft);color:var(--danger);font-size:.875rem;animation:rise var(--t) var(--ease) both}.auth-card>.auth-error{margin-top:20px}.auth-ok{margin:0;padding:14px;border-radius:12px;border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--text)}.auth-hints{margin:0;padding-left:18px;display:grid;grid-gap:4px;gap:4px}.auth-alt,.auth-hints{font-size:.875rem;color:var(--text-3)}.auth-alt{margin:4px 0 0;text-align:center}.auth-alt a,a.auth-alt{color:var(--accent-hi);font-weight:600;text-decoration:none}.auth-alt a:hover,a.auth-alt:hover{text-decoration:underline}.preview-bar{position:relative;z-index:50;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px var(--gutter);font-size:.75rem;color:var(--text-3);background:repeating-linear-gradient(-45deg,#0b0e13,#0b0e13 10px,#0e1218 0,#0e1218 20px);border-bottom:1px dashed var(--hairline-3)}.preview-bar strong{color:var(--warn);letter-spacing:.08em;text-transform:uppercase}.preview-bar nav{display:flex;flex-wrap:wrap;gap:4px}@media (max-width:719px){.preview-bar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.preview-bar>span{display:none}.preview-bar nav{flex-wrap:nowrap;white-space:nowrap}}.preview-bar a{padding:2px 8px;border-radius:6px;color:var(--text-2);text-decoration:none;border:1px solid var(--hairline-2)}.preview-bar a[aria-current=true]{color:var(--text);border-color:var(--accent-line);background:var(--accent-soft)}.preview-log{display:flex;flex-wrap:wrap;gap:2px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.6875rem;color:var(--text-2)}.preview-log small{color:var(--text-3)}.preview-log [data-bad]{color:var(--danger)}@media (max-width:719px){.preview-log{flex-wrap:nowrap;white-space:nowrap}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}