@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.scene-root{isolation:isolate;position:absolute;inset:0;overflow:hidden}.label-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.anchor{pointer-events:none;will-change:transform;display:none;position:absolute;top:0;left:0}.pod-minor{display:none!important}html[data-zoom=near] .pod-minor{display:flex!important}html[data-zoom=far] .show-mid,html[data-zoom=far] .show-near,html[data-zoom=mid] .show-near{display:none!important}.pod-tag,.node-tag,.service-tag,.gateway-tag,.client-tag,.tray-tag,.area-tag{font-family:var(--font-ui,system-ui, sans-serif);color:var(--text,#e8edf8);white-space:nowrap;-webkit-user-select:none;user-select:none;text-align:center;line-height:1.3}.arrow{opacity:.55;padding:0 .15em}.pod-tag{flex-direction:column;align-items:center;gap:2px;font-size:11px;display:flex}.pod-badge{color:var(--muted,#8896b5);background:#0a0f1dc7;border:1px solid #ffffff1a;border-radius:999px;align-items:center;gap:5px;padding:2px 7px 2px 5px;font-size:10.5px;font-weight:500;display:inline-flex}.pod-status:empty{display:none}.pod-badge:has(.pod-status:empty){padding:2px 4px}.pod-name{font-family:var(--font-mono,ui-monospace, monospace);color:#cfd8ee;background:#0a0f1db3;border-radius:4px;padding:1px 6px;font-size:10.5px}.pod-addr{font-family:var(--font-mono,ui-monospace, monospace);color:var(--muted,#8896b5);background:#0a0f1d99;border-radius:4px;padding:0 5px;font-size:10px}.pod-reason{white-space:normal;color:#cbd5ec;text-align:left;background:#0a0f1deb;border:1px solid #ffffff1f;border-radius:6px;max-width:230px;padding:5px 8px;font-size:11px}.pod-Pending .pod-badge{color:#ffc069;border-color:#ffc06959}.pod-ContainerCreating .pod-badge{color:#8db4ff;border-color:#8db4ff59}.pod-Running .pod-badge{color:#9aa7c2}.pod-Ready .pod-badge{color:#5ee0a0;border-color:#5ee0a04d}.pod-Overloaded .pod-badge{color:#ffa63d;border-color:#ffa63d80}.pod-CrashLoopBackOff .pod-badge{color:#ff6b81;border-color:#ff4d6a8c}.pod-Terminating .pod-badge{color:#8f9ab6;border-style:dashed}.pod-icon-hourglass{animation:3s ease-in-out infinite flip}.pod-icon-download{animation:1.1s ease-in-out infinite nudge}.pod-icon-pulse{animation:1.4s ease-in-out infinite breathe}.pod-icon-warning{animation:.7s steps(2,jump-none) infinite blink}.pod-icon-flame{animation:.45s steps(3,jump-none) infinite flicker}@keyframes flip{0%,45%{transform:rotate(0)}55%,to{transform:rotate(180deg)}}@keyframes nudge{50%{transform:translateY(2px)}}@keyframes breathe{50%{opacity:.35}}@keyframes blink{50%{opacity:.35}}@keyframes flicker{33%{transform:scale(1.15)rotate(-6deg)}66%{transform:scale(.9)rotate(5deg)}}.node-tag{background:#0a0f1db3;border:1px solid #ffffff12;border-radius:8px;padding:4px 10px;font-size:11px}.node-name{font-family:var(--font-mono,ui-monospace, monospace);font-size:12px;font-weight:600}.node-ip{color:var(--muted,#8896b5);margin-left:4px;font-weight:400}.node-cpu{color:var(--muted,#8896b5);font-size:10.5px}.node-pods{color:#aab6d3;font-size:10.5px}.node-state{font-size:11px;font-weight:600}.node-state:has(span:empty){display:none}.node-ready .node-state{display:none}.node-provisioning .node-state{color:#8db4ff}.node-cordoned .node-state,.node-draining .node-state{color:#ffc069}.node-machine-lost .node-state,.node-not-ready .node-state{color:#ff6b81}.node-machine-lost,.node-not-ready{border-color:#ff4d6a73}.service-tag{--tag:#9aa7c2;border:1px solid color-mix(in srgb, var(--tag) 45%, transparent);background:#0a0f1dbd;border-radius:8px;padding:5px 10px;font-size:11px;position:relative}.service-tag.selected{border-color:#fff}.service-name{font-size:12.5px;font-weight:600}.service-kind{color:var(--tag,#9aa7c2);margin-right:3px;font-size:10.5px;font-weight:500}.service-dns,.service-ip{font-family:var(--font-mono,ui-monospace, monospace);color:#bdc8e3;font-size:10.5px}.service-note{color:color-mix(in srgb, var(--tag) 75%, white);font-size:10.5px;font-style:italic}.service-endpoints{color:var(--muted,#8896b5);font-size:10.5px}.gateway-tag{background:#0a0f1dc7;border:1px solid #ffd16666;border-radius:10px;padding:6px 12px;font-size:11px;position:relative}.gateway-tag.selected{border-color:#fff}.gateway-title{font-size:13px;font-weight:600}.gateway-ip{font-family:var(--font-mono,ui-monospace, monospace);color:#ffd166;font-size:11.5px}.gateway-routes{text-align:left;border-top:1px solid #ffffff14;margin-top:4px;padding-top:4px}.tooltip{background:#0a0f1df2;border:1px solid #ffffff24;border-radius:8px;padding:6px 10px;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000073}.tooltip-above{bottom:calc(100% + 6px)}.tooltip-below{top:calc(100% + 6px)}.route-row code{font-family:var(--font-mono,ui-monospace, monospace);color:#ffd166;font-size:10.5px}.route-backend{margin-left:4px;font-weight:500}.client-tag{font-size:11px}.client-name{font-size:13px;font-weight:600}.client-ip{font-family:var(--font-mono,ui-monospace, monospace);color:var(--muted,#8896b5);font-size:10.5px}.tray-tag{pointer-events:auto;cursor:help;color:#ffc069;background:#0a0f1dc7;border:1px solid #ffa63d66;border-radius:999px;padding:4px 10px;font-size:11.5px;position:relative}.tray-icon{vertical-align:-3px;margin-right:4px;display:inline-flex}.tray-tag .tooltip{white-space:normal;text-align:left;color:#cbd5ec;width:280px;font-size:11px;display:none}.tray-tag:hover .tooltip{display:block}.tray-note{color:#ffc069;margin-bottom:2px;font-weight:600}.area-tag{text-align:left;color:var(--muted,#8896b5);text-align:center;font-size:11px}.area-note{white-space:normal;max-width:210px;margin:0 auto}.area-title{color:#b6b0e8;font-size:13px;font-weight:600}.wl-card{--tag:#9aa7c2;all:unset;box-sizing:border-box;cursor:pointer;pointer-events:auto;min-width:176px;font-family:var(--font-ui,system-ui, sans-serif);color:var(--text,#e8edf8);border:1px solid color-mix(in srgb, var(--tag) 40%, transparent);text-align:left;background:#101628e6;border-radius:12px;flex-direction:column;align-items:stretch;gap:6px;padding:9px 12px 10px;transition:border-color .25s,background .25s,box-shadow .25s;display:flex}.wl-card.selected{border-color:#fff}.wl-card:focus-visible{outline:2px solid #fff}.wl-head{align-items:baseline;gap:6px;display:flex}.wl-kind{color:color-mix(in srgb, var(--tag) 80%, white);font-size:10.5px;font-weight:500}.wl-name{font-size:14px;font-weight:600}.wl-body{align-items:center;gap:10px;display:flex}.wl-detail{flex-direction:column;gap:5px;min-width:0;display:flex}.wl-owner{color:var(--muted,#8896b5);font-size:10.5px}.wl-owner code{font-family:var(--font-mono,ui-monospace, monospace);color:#bdc8e3}.wl-meta{font-family:var(--font-mono,ui-monospace, monospace);color:var(--muted,#8896b5);font-size:10px}.wl-ring{flex:none}.wl-ring-track{fill:none;stroke:#ffffff1a;stroke-width:4px}.wl-ring-value{fill:none;stroke:#5ee0a0;stroke-width:4px;stroke-linecap:round;transition:stroke-dasharray .4s}.wl-ring-text{fill:#e8edf8;font-family:var(--font-mono,ui-monospace, monospace);font-size:11px;font-weight:600}.wl-slots{flex-wrap:wrap;gap:5px;max-width:229px;display:flex}.wl-slot{box-sizing:border-box;border-radius:4px;width:13px;height:13px}.wl-slot-ready{background:var(--tag)}.wl-slot-starting{background:color-mix(in srgb, var(--tag) 35%, transparent);border:1.5px solid var(--tag);animation:1.1s ease-in-out infinite breathe}.wl-slot-missing{background:#ff4d6a1f;border:1.5px dashed #ff4d6a;animation:.9s ease-in-out infinite breathe}.wl-degraded{background:#3c0e1ceb;border-color:#ff4d6a;box-shadow:0 0 0 1px #ff4d6a73,0 0 28px #ff4d6a59}.wl-degraded .wl-ring-value{stroke:#ff4d6a}.wl-settling{border-color:#ffa63d}.wl-settling .wl-ring-value{stroke:#ffa63d}.wl-alert{color:#fff;font-family:var(--font-mono,ui-monospace, monospace);letter-spacing:.02em;background:#ff4d6a;border-radius:999px;align-self:center;margin-top:2px;padding:2px 8px;font-size:10.5px;font-weight:700;animation:1.1s ease-in-out infinite alert-pulse}@keyframes alert-pulse{50%{box-shadow:0 0 0 5px #ff4d6a47}}.burst-label{font-family:var(--font-mono,ui-monospace, monospace);white-space:nowrap;background:#0a0f1dd9;border-radius:6px;padding:1px 7px;font-size:12px;font-weight:700}.burst-label:empty{display:none}.burst-label[data-tone=bad]{color:#ff6b81;border:1px solid #ff4d6a99}.burst-label[data-tone=ok]{color:#5ee0a0;border:1px solid #5ee0a073}@media (prefers-reduced-motion:reduce){.pod-icon,.wl-slot,.wl-alert{animation:none!important}}.callout{font-family:var(--font-ui,system-ui, sans-serif);white-space:pre-line;text-align:center;color:#e8edf8;background:#0a0f1de6;border:1px solid #ffffff2e;border-radius:12px;padding:3px 10px;font-size:11px;font-weight:500;line-height:1.3;box-shadow:0 4px 14px #0006}.callout-lookup{color:#ffd166;border-color:#ffd16680}.callout-waiting{color:#ffd166;border-color:#ffd16699;animation:1.2s ease-in-out infinite callout-wait}.callout-dns{color:#f6b6d3;border-color:#e98fb88c}@keyframes callout-wait{50%{opacity:.6}}@media (prefers-reduced-motion:reduce){.callout-waiting{animation:none}}.tour-marker{pointer-events:none}.app{isolation:isolate;position:fixed;inset:0}.topbar{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:linear-gradient(#0a0f1deb,#0a0f1d99);align-items:center;gap:22px;height:56px;padding:0 14px 0 18px;display:flex;position:absolute;inset:0 0 auto}.brand{letter-spacing:-.005em;white-space:nowrap;margin:0;font-size:14px;font-weight:600}.brand span{color:var(--muted);font-weight:400}.transport,.topbar-end{align-items:center;gap:4px;display:flex}.topbar-end{margin-left:auto}.clock{flex-direction:column;min-width:92px;line-height:1.15;display:flex}.clock-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:15px}.clock-label{color:var(--faint);font-size:11px}.speed{flex-direction:column;gap:2px;width:340px;display:flex}.speed-head{white-space:nowrap;align-items:baseline;gap:10px;display:flex}.speed-name{min-width:96px;font-size:12.5px;font-weight:600}.speed-badge{color:var(--muted);text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.speed-track{height:16px;position:relative}.speed-track input{width:100%;margin:0;position:absolute;inset:0}.speed-stops span{background:var(--faint);pointer-events:none;border-radius:50%;width:3px;height:3px;margin-left:-1.5px;position:absolute;top:12px}.speed-stops span.on{background:var(--text)}.icon-btn,.btn{color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;transition:background .12s,border-color .12s,color .12s}.icon-btn{width:32px;height:32px;color:var(--muted);border-radius:8px;place-items:center;display:grid}.icon-btn:hover{color:var(--text);background:#ffffff12}.icon-btn.play{color:var(--text);background:#ffffff17}.icon-btn[aria-pressed=true]{color:var(--text)}.btn{border-color:var(--line-strong);background:#ffffff0a;border-radius:8px;justify-content:center;align-items:center;gap:7px;height:32px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.btn:hover:not(:disabled){background:#ffffff17}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-traffic{background:var(--traffic);border-color:var(--traffic);color:#1a1300;font-weight:600}.btn-traffic:hover:not(:disabled){background:#ffdc85}.btn-danger{color:#ff9aab;border-color:#ff4d6a59}.btn-danger:hover:not(:disabled){background:#ff4d6a24}:where(button,input,select,[role=switch]):focus-visible{outline:2px solid var(--traffic);outline-offset:2px}.link{cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.link:hover{text-underline-offset:3px;text-decoration:underline}input[type=range]{appearance:none;cursor:pointer;background:0 0;height:16px}input[type=range]::-webkit-slider-runnable-track{background:var(--line-strong);border-radius:2px;height:3px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--text);border:0;border-radius:50%;width:14px;height:14px;margin-top:-5.5px}input[type=range]::-moz-range-track{background:var(--line-strong);border-radius:2px;height:3px}input[type=range]::-moz-range-thumb{background:var(--text);border:0;border-radius:50%;width:14px;height:14px}.segmented{background:#ffffff0d;border-radius:8px;padding:2px;display:inline-flex}.segmented button{color:var(--muted);font-family:var(--font-mono);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 9px;font-size:12px}.segmented button:hover{color:var(--text)}.segmented button.on{color:var(--text);background:#ffffff21}.switch{background:var(--line-strong);cursor:pointer;border:0;border-radius:9px;flex:none;width:32px;height:18px;padding:2px;transition:background .15s}.switch span{background:var(--text);border-radius:50%;width:14px;height:14px;transition:transform .15s;display:block}.switch.on{background:#4d6fd1}.switch.on span{transform:translate(14px)}.stepper{background:#ffffff0d;border-radius:8px;align-items:center;display:inline-flex}.stepper button{width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.stepper button:hover:not(:disabled){color:var(--text);background:#ffffff14}.stepper button:disabled{opacity:.3;cursor:default}.stepper output{text-align:center;min-width:22px;font-family:var(--font-mono);font-size:13px}.sidebar{z-index:9;background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);width:344px;box-shadow:var(--shadow);border-radius:14px;flex-direction:column;transition:transform .26s cubic-bezier(.3,.7,.2,1),opacity .2s;display:flex;position:absolute;top:68px;bottom:12px;right:12px}.sidebar.closed{opacity:0;pointer-events:none;transform:translate(calc(100% + 24px))}.sidebar-scroll{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;padding:4px 0 8px;overflow-y:auto}.section{padding:14px 16px 16px}.section+.section{border-top:1px solid var(--line)}.section header{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.section h2{color:var(--text);margin:0;font-size:13px;font-weight:600}.stack{flex-direction:column;gap:12px;display:flex}.field-row{align-items:center;gap:10px;display:flex}.field-row.between{justify-content:space-between;align-items:flex-start;gap:14px}.field-row input[type=range]{flex:1;min-width:0}.field-label{width:36px;color:var(--muted);flex:none;font-size:12px}.button-row{gap:8px;display:flex}.button-row .btn{flex:1}.hint{color:var(--faint);margin:0;font-size:12px;line-height:1.45;display:block}small.hint{margin-top:2px}.rate{text-align:right;width:64px;font-size:12.5px}.request-box{flex-direction:column;gap:10px;display:flex}.terminal{border:1px solid var(--line);font-family:var(--font-mono);word-break:break-all;background:#070b16;border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.55}.terminal .prompt{color:var(--faint)}.terminal .flag{color:var(--muted)}.send-row{align-items:center;gap:14px;display:flex}.send-row .btn{flex:1}.follow{color:var(--muted);cursor:pointer;align-items:center;gap:8px;font-size:12.5px;display:flex}.replica-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.replica-list li{align-items:center;gap:9px;display:flex}.dot{border-radius:50%;flex:none;width:8px;height:8px}.replica-name{font-family:var(--font-mono);flex:1;font-size:13px}.replica-state{color:var(--muted);text-align:right;min-width:28px;font-size:12.5px}.replica-state.bad{color:var(--bad)}.selected{border:1px solid var(--line);background:#ffffff0a;border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.selected-head{align-items:baseline;gap:8px;font-size:12px;display:flex}.selected-kind{color:var(--muted);margin-right:auto}.selected-focus{border:1px solid var(--line-strong);color:var(--muted);cursor:pointer;background:#ffffff0a;border-radius:6px;padding:1px 8px;font-size:11px}.selected-focus:hover{color:var(--text);background:#ffffff17}.status{font-weight:600}.tone-ok{color:var(--ok)}.tone-warn{color:var(--warn)}.tone-bad{color:var(--bad)}.tone-muted{color:var(--muted)}.selected-name{word-break:break-all;font-size:13.5px}.selected-row{color:var(--muted);justify-content:space-between;gap:12px;font-size:12px;display:flex}.selected-row .mono{color:var(--text);text-align:right}.tabs{border-bottom:1px solid var(--line);gap:2px;padding:8px 10px 0;display:flex}.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:7px 4px 9px;font-size:12.5px;font-weight:600}.tabs button:hover{color:var(--text)}.tabs button.on{color:var(--text);border-bottom-color:var(--traffic)}.status-dot{vertical-align:1px;background:currentColor;margin-right:3px;display:inline-block}.selected .note{margin:4px 0 6px}.describe{flex-direction:column;gap:3px;margin:0;display:flex}.describe-row{grid-template-columns:96px 1fr;gap:10px;font-size:12px;display:grid}.describe-row dt,.describe-label{color:var(--muted)}.describe-row dd{overflow-wrap:anywhere;min-width:0;margin:0}.conditions{flex-wrap:wrap;gap:4px 10px;margin:6px 0 0;padding:0;font-size:11.5px;list-style:none;display:flex}.conditions .ok{color:var(--ok)}.conditions .bad{color:var(--bad)}.pod-links{margin-top:8px;font-size:12px}.pod-links div{flex-wrap:wrap;gap:2px 12px;margin-top:2px;display:flex}.pod-links .link{color:var(--text);font-size:12px}.why h3{margin:0 0 8px;font-size:12.5px}.why ol{margin:0;padding:0;list-style:none}.why li{grid-template-columns:52px 1fr;gap:8px;padding-bottom:8px;display:grid;position:relative}.why li:not(.last):before{content:"";background:var(--line-strong);width:1px;position:absolute;top:14px;bottom:-2px;left:58px}.why li.why-trimmed{padding-left:60px;font-size:11px;display:block}.why-time{color:var(--faint);flex-direction:column;padding-top:2px;font-size:10.5px;display:flex}.why-time small{color:var(--warn);font-size:10px}.why-step{all:unset;flex-direction:column;gap:1px;min-width:0;padding-left:14px;font-size:12px;line-height:1.35;display:flex}button.why-step{cursor:pointer}button.why-step:hover .why-object{color:var(--text);text-decoration:underline}.why li.last .why-reason{color:var(--traffic)}.why-line{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.why-reason{font-weight:600}.why-reason.bad{color:var(--bad)}.why-object{color:var(--muted);font-size:11px}.why-message{color:var(--muted);overflow-wrap:anywhere}.wf-head{align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.wf-title{flex:1;font-size:13px}.wf-status{font-size:12px;font-weight:700}.wf-total{color:var(--muted);font-size:12px}.wf-routing{color:var(--muted);background:#ffffff0a;border-radius:6px;margin:0 0 8px;padding:6px 8px;font-size:11.5px;line-height:1.4;list-style:none}.wf-routing li+li{margin-top:2px}.wf-axis{color:var(--faint);border-bottom:1px solid var(--line);justify-content:space-between;padding-bottom:2px;font-size:10px;display:flex}.wf-rows{flex-direction:column;display:flex;position:relative}.wf-row{cursor:default;border-bottom:1px solid #ffffff0a;padding:4px 0 3px}.wf-row:hover{background:#ffffff0d}.wf-label{justify-content:space-between;gap:8px;font-size:11.5px;display:flex}.wf-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.wf-address{color:var(--faint);font-size:10.5px}.wf-ms{color:var(--muted);flex:none;font-size:10.5px}.wf-track{height:6px;margin-top:3px;position:relative}.wf-bar{background:var(--muted);border-radius:2px;min-width:2px;position:absolute;top:0;bottom:0}.wf-bar.kind-request{background:var(--traffic)}.wf-bar.kind-response{background:#fff0c4}.wf-bar.kind-dns-query,.wf-bar.kind-dns-answer{background:#e98fb8}.wf-bar.kind-processing{background:#7aa2ff}.wf-bar.kind-queued{background:var(--warn)}.wf-bar.kind-timeout,.wf-bar.kind-refused{background:var(--bad)}.wf-row.failed .wf-name{color:var(--bad)}.wf-fail{color:var(--bad);margin-top:2px;font-size:11px}.wf-bar.live{animation:.9s ease-in-out infinite wf-pulse;box-shadow:0 0 8px}@keyframes wf-pulse{50%{opacity:.45}}.wf-playhead{pointer-events:none;background:#fff;width:1px;position:absolute;top:0;bottom:0;box-shadow:0 0 6px #fff}.recent,.events{margin:0;padding:0;list-style:none}.recent button,.events button{all:unset;box-sizing:border-box;cursor:pointer;border-radius:6px;width:100%}.recent button{grid-template-columns:30px 1fr auto 52px;gap:8px;padding:4px 6px;font-size:12px;display:grid}.recent button:hover,.recent button.on,.events button:hover:not(:disabled){background:#ffffff12}.recent button.on{box-shadow:inset 2px 0 var(--traffic)}.recent-id{color:var(--faint)}.recent-path{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recent-ms{text-align:right;color:var(--muted)}.events button{grid-template-columns:46px auto 1fr;column-gap:8px;padding:5px 6px;font-size:12px;line-height:1.35;display:grid}.events button:disabled{cursor:default}.events li+li{border-top:1px solid #ffffff0a}.event-time{color:var(--faint);grid-row:span 2;padding-top:1px;font-size:10.5px}.event-reason{grid-column:2;font-weight:600}.events .warning .event-reason{color:var(--warn)}.event-object{color:var(--muted);grid-column:3;align-self:baseline;font-size:11px}.event-message{color:var(--muted);overflow-wrap:anywhere;grid-column:2/-1}@media (prefers-reduced-motion:reduce){.sidebar,.switch,.switch span{transition:none}}@media (width<=1100px){.brand{display:none}.speed{width:240px}}.speed{width:420px}.speed-badge{flex:1;min-width:0}.auto-speed{color:var(--muted);cursor:pointer;align-items:center;gap:7px;margin-left:auto;font-size:11.5px;display:inline-flex}.speed[data-auto=moment] .speed-name,.speed[data-auto=request] .speed-name{color:var(--traffic)}.speed[data-auto=skipping] .speed-name{color:#8fb0ff}.speed[data-auto] .speed-name{font-variant-numeric:tabular-nums;animation:.7s ease-out speed-pulse}@keyframes speed-pulse{0%{text-shadow:0 0 14px;transform:scale(1.18)}to{text-shadow:none;transform:scale(1)}}.director-wrap{z-index:8;pointer-events:none;justify-content:center;transition:right .2s;display:flex;position:absolute;top:66px;left:0}.director-banner{border:1px solid var(--line-strong);background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);max-width:min(720px,92%);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:9px;padding:8px 16px;font-size:13.5px;font-weight:500;animation:.32s cubic-bezier(.2,.9,.3,1.2) banner-in;display:inline-flex}.director-banner.skipping{color:#b7ccff;border-color:#8fb0ff66}.director-banner.moment,.director-banner.request{color:var(--traffic);box-shadow:var(--shadow), 0 0 26px #ffd16638;border-color:#ffd1668c}@keyframes banner-in{0%{opacity:0;transform:translateY(-10px)scale(.94)}to{opacity:1;transform:none}}.controls-hint{z-index:7;left:16px;bottom:max(16px, env(safe-area-inset-bottom));box-sizing:border-box;border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:calc(100vw - 32px);max-height:calc(100dvh - 88px);color:var(--muted);background:#0e1426b3;border-radius:12px;padding:10px 30px 10px 14px;font-size:12px;position:fixed;overflow-y:auto}.controls-hint dl{gap:2px;margin:0;display:grid}.controls-hint dl div{gap:10px;display:flex}.controls-hint dt{min-width:128px;color:var(--text);font-family:var(--font-mono);font-size:11.5px}.controls-hint dd{margin:0}.controls-hint-close{width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;font-size:16px;line-height:1;position:absolute;top:4px;right:6px}.controls-hint-close:hover{color:var(--text);background:#ffffff17}.context-menu{z-index:30;border:1px solid var(--line-strong);background:var(--panel-solid);min-width:190px;max-width:260px;box-shadow:var(--shadow);border-radius:10px;padding:4px;position:fixed}.context-menu-title{border-bottom:1px solid var(--line);color:var(--faint);white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;padding:6px 10px;font-size:11px;overflow:hidden}.context-menu-item{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;grid-template-columns:20px 1fr;align-items:center;column-gap:6px;padding:7px 10px;display:grid}.context-menu-item:hover:not(:disabled),.context-menu-item:focus-visible{background:#ffffff17;outline:none}.context-menu-item.danger:hover:not(:disabled){background:#ff4d6a29}.context-menu-item:disabled{color:var(--faint);cursor:not-allowed}.context-menu-icon{text-align:center}.context-menu-label{font-size:12.5px}.context-menu-reason{color:var(--faint);grid-column:2;font-size:11px}.narration{z-index:7;border:1px solid var(--line-strong);background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:290px;max-height:calc(100dvh - 330px);box-shadow:var(--shadow);border-radius:12px;padding:10px 12px;font-size:12.5px;line-height:1.4;transition:opacity .6s;position:absolute;top:112px;left:16px;overflow-y:auto}.narration.fading{opacity:0;pointer-events:none}.narration header{color:var(--traffic);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px;font-weight:600;display:flex}.narration header button{all:unset;cursor:pointer;color:var(--muted);padding:0 4px;font-size:16px;line-height:1}.narration ol{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.narration li{color:var(--muted);grid-template-columns:16px 1fr;gap:6px;display:grid}.narration li.current{color:var(--text);font-weight:500}.narration li.current .narration-n{color:var(--traffic)}.narration li.failed{color:var(--bad)}.narration-n{color:var(--muted);text-align:right;font-size:11px}.details-title{margin:0 0 4px;font-size:12.5px}.scene-loading{z-index:6;background:var(--ink);color:var(--muted);pointer-events:none;justify-content:center;align-items:center;gap:12px;font-size:13px;animation:.3s .15s backwards fade-in;display:flex;position:absolute;inset:0}.scene-loading .spinner{border:2px solid var(--line-strong);border-top-color:var(--traffic);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}}.help-btn{font-size:15px;font-weight:700}.tour-backdrop{z-index:40;pointer-events:none;-webkit-user-select:none;user-select:none;background:#0609148c;place-items:center;padding:16px;animation:.3s fade-in;display:grid;position:fixed;inset:0}.tour-welcome{text-align:center;border:1px solid var(--line-strong);background:var(--panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:min(480px,100%);box-shadow:var(--shadow);pointer-events:auto;-webkit-user-select:none;user-select:none;border-radius:18px;flex-direction:column;align-items:stretch;gap:10px;padding:36px 36px 28px;animation:.4s cubic-bezier(.2,.9,.3,1.1) banner-in;display:flex}.tour-welcome h2{letter-spacing:-.02em;margin:0;font-size:24px;font-weight:650}.tour-welcome p{color:var(--muted);margin:0 0 14px;font-size:15.5px}.tour-welcome .tour-primary{height:46px;font-size:16px}.tour-primary{color:#07101f;cursor:pointer;background:#8fb0ff;border:0;border-radius:10px;height:36px;padding:0 18px;font-weight:650;transition:background .12s}.tour-primary:hover{background:#aac3ff}.tour-quiet,.tour-link{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:13px}.tour-quiet{height:34px}.tour-quiet:hover,.tour-link:hover{color:var(--text);text-decoration:underline}.tour-link{padding:0;font-size:12px}.tour-link.faint{color:var(--faint)}.tour-card{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);width:320px;box-shadow:var(--shadow), 0 0 28px #8fb0ff29;-webkit-user-select:none;user-select:none;background:#0e1426f0;border:1px solid #8fb0ff73;border-radius:14px;flex-direction:column;gap:8px;padding:14px 16px 12px;animation:.3s cubic-bezier(.2,.9,.3,1.1) banner-in;display:flex;position:fixed}.tour-card p{margin:0;font-size:13.5px;line-height:1.5}.tour-finale{width:340px;bottom:28px;transform:translate(-50%)}.tour-head{align-items:baseline;gap:10px;display:flex}.tour-count{color:#8fb0ff;font-size:11px}.tour-title{font-size:15px;font-weight:650}.tour-wait{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.tour-dot{background:#8fb0ff;border-radius:50%;width:8px;height:8px;animation:1.3s ease-in-out infinite tour-pulse}.tour-wait.watching .tour-dot{background:var(--ok)}.tour-foot{justify-content:space-between;align-items:center;padding-top:2px;display:flex}.tour-dim{z-index:18;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.tour-dim-fill{fill:#06091466}.tour-ring{z-index:19;box-sizing:border-box;pointer-events:none;border:2px solid #8fb0ff;border-radius:12px;animation:1.8s ease-in-out infinite tour-ring;position:fixed}.tour-callout{color:#07101f;text-align:center;background:#8fb0ff;border-radius:8px;width:max-content;max-width:230px;padding:4px 9px;font-size:12px;font-weight:600;line-height:1.3;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tour-callout.below{top:calc(100% + 6px);bottom:auto}@keyframes tour-pulse{50%{opacity:.35;transform:scale(.8)}}@keyframes tour-ring{50%{box-shadow:0 0 0 5px #8fb0ff38}}@media (prefers-reduced-motion:reduce){.tour-dot,.tour-ring{animation:none}}:root{--font-ui:"Geist Variable", "Geist", system-ui, sans-serif;--font-mono:"Geist Mono Variable", "Geist Mono", ui-monospace, monospace;--ink:#0a0f1d;--panel:#0e1426d1;--panel-solid:#0e1426;--panel-raised:#151d36;--line:#ffffff14;--line-strong:#ffffff29;--text:#e8edf8;--muted:#8896b5;--faint:#5d6a88;--traffic:#ffd166;--ok:#5ee0a0;--warn:#ffa63d;--bad:#ff4d6a;--radius:12px;--shadow:0 10px 40px #00000073}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--ink);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45;overflow:hidden}button,input,select{font:inherit;color:inherit}code,.mono{font-family:var(--font-mono)}
