@font-face{font-family:IBM Plex Sans;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-400-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-500-normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-600-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-400-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-latin-600-normal.woff2)format("woff2")}:root,[data-theme=dark]{--bg:#0b1020;--surface:#121a2e;--surface-2:#1a2440;--line:#2a3656;--text:#e8ecf5;--text-muted:#9aa6c2;--accent:#f5a524;--accent-ink:#1b1200;--arc:#38bdf8;--danger:#f87171;--ok:#4ade80;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f4f1e8;--surface:#fffdf7;--surface-2:#ece7da;--line:#c9c2b0;--text:#1b2236;--text-muted:#4f5873;--accent:#955600;--accent-ink:#fff;--arc:#0369a1;--danger:#b91c1c;--ok:#136f36;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root{--font:"IBM Plex Sans", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--r:4px;--bar-h:56px;--ease:cubic-bezier(.2,.7,.2,1)}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);color:var(--text);font:400 1rem/1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0}.mono{font-family:var(--mono)}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skip{left:var(--s2);background:var(--accent);color:var(--accent-ink);padding:var(--s2) var(--s3);border-radius:var(--r);z-index:100;transition:top .15s var(--ease);position:absolute;top:-64px}.skip:focus{top:var(--s2)}.bar{z-index:30;height:var(--bar-h);align-items:center;gap:var(--s4);padding:0 var(--s4);background:var(--surface);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.brand{align-items:center;gap:var(--s2);color:var(--text);font:600 1rem var(--mono);letter-spacing:.12em;text-decoration:none;display:inline-flex}.brand svg{color:var(--accent)}.search{flex:260px;max-width:460px;position:relative}.search input{background:var(--bg);width:100%;height:36px;color:var(--text);border:1px solid var(--line);border-radius:var(--r);padding:0 var(--s3);font:400 .875rem var(--mono);transition:border-color .15s var(--ease)}.search input:hover:not(:disabled){border-color:var(--text-muted)}.search input:disabled{opacity:.55;cursor:not-allowed}.search input::placeholder{color:var(--text-muted)}#results{padding:var(--s1);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);z-index:40;max-height:320px;margin:0;list-style:none;position:absolute;top:40px;left:0;right:0;overflow:auto}#results li{padding:var(--s2) var(--s3);font:400 .8125rem var(--mono);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:2px;overflow:hidden}#results li:hover,#results li[aria-selected=true]{background:var(--bg);color:var(--accent)}.tools{align-items:center;gap:var(--s2);margin-left:auto;display:flex}.sel{background:var(--bg);height:36px;color:var(--text);border:1px solid var(--line);border-radius:var(--r);padding:0 var(--s2);font:400 .8125rem var(--mono)}.sel:disabled{opacity:.5}.icon-btn{width:36px;height:36px;color:var(--text);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;transition:background .15s var(--ease), border-color .15s var(--ease), transform .15s var(--ease);background:0 0;place-items:center;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--text-muted)}.icon-btn:active:not(:disabled){transform:translateY(1px)}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.stage{height:calc(100svh - var(--bar-h));background:var(--bg);border-bottom:1px solid var(--line);min-height:520px;position:relative;overflow:hidden}#city{touch-action:none;outline-offset:-2px;width:100%;height:100%;display:block;position:absolute;inset:0}.coords{left:var(--s4);bottom:var(--s3);color:var(--text-muted);background:var(--surface);border:1px solid var(--line);padding:2px var(--s2);border-radius:var(--r);font-size:.75rem;position:absolute}.hero{left:var(--s6);width:min(520px, calc(100% - 2 * var(--s4)));background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r);padding:var(--s5);z-index:5;position:absolute;top:50%;transform:translateY(-50%)}.hero[hidden]{display:none}.eyebrow{margin:0 0 var(--s3);letter-spacing:.14em;color:var(--accent);font-size:.75rem}.hero h1{margin:0 0 var(--s3);font:600 2.5rem/1.1 var(--font);letter-spacing:-.01em}.lede{margin:0 0 var(--s5);color:var(--text-muted);font-size:1.125rem}.cta{gap:var(--s2);flex-wrap:wrap;display:flex}.privacy{margin:var(--s4) 0 0;color:var(--text-muted);font-size:.75rem}.btn{height:40px;padding:0 var(--s4);background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:var(--r);font:500 .875rem var(--font);cursor:pointer;transition:background .15s var(--ease), border-color .15s var(--ease), transform .15s var(--ease), box-shadow .15s var(--ease)}.btn:hover:not(:disabled){border-color:var(--text-muted);background:var(--bg)}.btn:active:not(:disabled){transform:translateY(1px)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.btn.primary:hover:not(:disabled){background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent)}.btn.ghost{background:0 0}.drop-overlay{inset:var(--s3);z-index:20;border:2px dashed var(--accent);background:color-mix(in srgb, var(--bg) 86%, transparent);border-radius:var(--r);font:600 1.375rem var(--font);text-align:center;pointer-events:none;place-items:center;display:grid;position:absolute}.drop-overlay[hidden]{display:none}.progress{top:var(--s4);left:var(--s4);z-index:6;align-items:center;gap:var(--s3);padding:var(--s2) var(--s4) var(--s2) var(--s2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);font-size:.8125rem;display:flex;position:absolute}.progress[hidden]{display:none}#ring{transition:stroke-dashoffset .15s linear}.tooltip{z-index:12;pointer-events:none;background:var(--surface-2);border:1px solid var(--accent);color:var(--text);padding:var(--s2) var(--s3);border-radius:var(--r);word-break:break-all;max-width:320px;font-size:.75rem;position:absolute;transform:translate(12px,12px)}.tooltip[hidden],.legend[hidden],.inspector[hidden],.notice[hidden],.coach[hidden]{display:none}.legend{left:var(--s4);z-index:6;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s3);max-width:220px;font-size:.75rem;position:absolute;bottom:52px}.legend h2{margin:0 0 var(--s2);font:600 .75rem var(--mono);letter-spacing:.1em;color:var(--text-muted)}.legend ul{gap:var(--s1);margin:0;padding:0;list-style:none;display:grid}.legend li{align-items:center;gap:var(--s2);display:flex}.legend .sw{border:1px solid var(--line);border-radius:2px;flex:none;width:12px;height:12px}.legend .n{font-family:var(--mono);color:var(--text-muted);margin-left:auto}.inspector{top:var(--s3);right:var(--s3);bottom:var(--s3);width:380px;max-width:calc(100% - 2 * var(--s3));z-index:8;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;display:flex;position:absolute;overflow:hidden}.insp-head{align-items:flex-start;gap:var(--s2);padding:var(--s3) var(--s3) var(--s2);border-bottom:1px solid var(--line);display:flex}.crumbs{font:400 .75rem/1.4 var(--mono);color:var(--text-muted);word-break:break-all;flex:1}.crumbs strong{color:var(--text);font-weight:600}.insp-body{padding:var(--s3);gap:var(--s4);flex:1;grid-template-columns:minmax(0,1fr);align-content:start;display:grid;overflow:auto}.insp-body>*{min-width:0}.metrics{border-collapse:collapse;width:100%;font:400 .8125rem var(--mono)}.metrics th{text-align:left;color:var(--text-muted);padding:2px 0;font-weight:400}.metrics td{text-align:right;padding:2px 0}.insp-body h3{margin:0 0 var(--s2);font:600 .75rem var(--mono);letter-spacing:.1em;color:var(--text-muted)}.fnlist{gap:2px;max-height:160px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.fnlist button{gap:var(--s2);text-align:left;width:100%;color:var(--text);padding:var(--s1) var(--s2);font:400 .8125rem var(--mono);cursor:pointer;transition:background .15s var(--ease);background:0 0;border:0;border-radius:2px;align-items:baseline;display:flex}.fnlist button:hover,.fnlist button[aria-pressed=true]{background:var(--surface-2)}.fnlist .cx{color:var(--accent);margin-left:auto}.fnlist .nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.code{border:1px solid var(--line);border-radius:var(--r);background:var(--bg);max-height:360px;font:400 .75rem/1.6 var(--mono);overflow:auto}.code .ln{grid-template-columns:44px 1fr;display:grid}.code .ln>i{text-align:right;padding-right:var(--s2);color:var(--text-muted);-webkit-user-select:none;user-select:none;font-style:normal}.code .ln>code{white-space:pre;padding-right:var(--s3)}.code .ln.hl{background:color-mix(in srgb, var(--accent) 18%, transparent)}.code .ln.hl>i{color:var(--accent)}.notice{z-index:15;width:min(440px, calc(100% - 2 * var(--s4)));background:var(--surface);border:1px solid var(--danger);border-radius:var(--r);padding:var(--s5);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.notice h2{margin:0 0 var(--s2);font:600 1.125rem var(--font)}.notice p{margin:0 0 var(--s4);color:var(--text-muted)}.notice.info{border-color:var(--line)}.notice .row{gap:var(--s2);flex-wrap:wrap;display:flex}.coach{left:50%;bottom:var(--s5);z-index:18;width:min(460px, calc(100% - 2 * var(--s4)));background:var(--surface-2);border:1px solid var(--accent);border-radius:var(--r);padding:var(--s4);position:absolute;transform:translate(-50%)}.coach h2{margin:0 0 var(--s1);font:600 1rem var(--font)}.coach p{margin:0 0 var(--s3);color:var(--text-muted);font-size:.875rem}.coach .row{align-items:center;gap:var(--s2);display:flex}.coach .step{font:400 .75rem var(--mono);color:var(--text-muted);margin-right:auto}.toasts{right:var(--s4);bottom:var(--s4);z-index:25;gap:var(--s2);pointer-events:none;display:grid;position:absolute}.toast{background:var(--surface-2);border:1px solid var(--line);border-left:3px solid var(--ok);border-radius:var(--r);padding:var(--s2) var(--s3);animation:tin .2s var(--ease);font-size:.8125rem}@keyframes tin{0%{opacity:0;transform:translateY(8px)}}.how{max-width:1080px;padding:var(--s8) var(--s4);margin:0 auto}.how h2{font:600 1.75rem/1.1 var(--font);margin:0 0 var(--s5)}.highlights{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.highlights li{gap:var(--s4);padding:var(--s4) 0;border-bottom:1px solid var(--line);grid-template-columns:minmax(180px,1fr) 2fr;display:grid}.highlights strong{font:600 .9375rem var(--mono)}.highlights span{color:var(--text-muted)}.foot{justify-content:space-between;gap:var(--s4);padding:var(--s5) var(--s4);color:var(--text-muted);border-top:1px solid var(--line);flex-wrap:wrap;font-size:.75rem;display:flex}@media (width<=720px){.bar{gap:var(--s2);padding:0 var(--s2);height:auto;min-height:var(--bar-h);padding-block:var(--s2);flex-wrap:wrap}.brand span{display:none}.search{flex:140px}.tools{flex-wrap:nowrap;width:100%;margin-left:0}.sel{min-width:0;max-width:none;padding:0 var(--s1);flex:1 1 0;font-size:.75rem}.icon-btn{flex:none;width:36px}.stage{height:calc(100svh - 104px);min-height:480px}.hero{left:var(--s3);right:var(--s3);width:auto;top:auto;bottom:var(--s3);padding:var(--s4);transform:none}.hero h1{font-size:1.75rem}.lede{margin-bottom:var(--s4);font-size:1rem}.inspector{border-radius:var(--r) var(--r) 0 0;width:auto;max-width:none;max-height:56%;inset:auto 0 0}.legend{bottom:auto;top:var(--s3);right:var(--s3);max-width:150px;left:auto}.progress{top:var(--s3);left:var(--s3)}.coords{display:none}.highlights li{gap:var(--s1);grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
