:root{--font: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--mono: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--primary: #0151d9;--primary-dark: #0145b8;--on-primary: #fff;--bg: #fff;--surface: #fff;--surface-alt: #f6f7f8;--text: #1c1e21;--text-muted: #606770;--border: #dadde1;--shadow: 0 1px 2px 0 rgba(0, 0, 0, .1);--shadow-md: 0 5px 40px rgba(0, 0, 0, .1);--ok: #00a400;--ok-bg: #e6f6e6;--bad: #e13238;--bad-bg: #fdefef;--note-bg: #eef9fd;--note-border: #4cb3d4}[data-theme=dark]{--primary: #5acce6;--primary-dark: #3ec3e2;--on-primary: #12232b;--bg: #1b1b1d;--surface: #242526;--surface-alt: #1e1e20;--text: #e3e3e3;--text-muted: #b0b3b8;--border: #444950;--shadow: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 5px 40px rgba(0, 0, 0, .4);--ok: #4ddb4d;--ok-bg: #1e2d1e;--bad: #ff6b70;--bad-bg: #2d1e1f;--note-bg: #193c47;--note-border: #4cb3d4}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.65;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--mono);font-size:.92em}h1,h2,h3{line-height:1.25;margin:0 0 .6rem;font-weight:700}.wrap{max-width:1140px;margin:0 auto;padding:0 1.25rem}.navbar{position:sticky;top:0;z-index:10;height:3.75rem;display:flex;align-items:center;background:var(--surface);box-shadow:var(--shadow)}.navbar .wrap{display:flex;align-items:center;gap:.75rem;width:100%}.navbar__brand{font-weight:700;color:var(--text);font-size:1.05rem}.navbar__brand:hover{text-decoration:none}.navbar__version{font-size:.7rem;font-weight:600;padding:.05rem .4rem;border-radius:999px;border:1px solid var(--border);color:var(--text-muted)}.navbar__spacer{flex:1}.navbar__link{color:var(--text);font-weight:500;font-size:.94rem}.navbar__link:hover{color:var(--primary);text-decoration:none}.navbar__toggle{display:grid;place-items:center;width:2rem;height:2rem;border:0;border-radius:.4rem;background:transparent;color:var(--text);cursor:pointer;font-size:1rem}.navbar__toggle:hover{background:var(--surface-alt)}.hero{padding:4rem 0 2.5rem;text-align:center}.hero h1{font-size:clamp(2rem,5vw,3rem);letter-spacing:-.02em}.hero p{font-size:1.15rem;color:var(--text-muted);max-width:46rem;margin:0 auto 1.5rem}.hero__buttons{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.button{display:inline-block;padding:.55rem 1.4rem;border-radius:.4rem;font-weight:600;font-size:.97rem;border:2px solid var(--primary);cursor:pointer;font-family:inherit}.button:hover{text-decoration:none}.button--primary{background:var(--primary);color:var(--on-primary)}.button--primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.button--secondary{background:transparent;color:var(--primary)}.button--secondary:hover{background:var(--primary);color:var(--on-primary)}.install{display:inline-flex;align-items:center;gap:.6rem;margin:0 auto 1.5rem;padding:.5rem .9rem;border:1px solid var(--border);border-radius:.4rem;background:var(--surface-alt);font-family:var(--mono);font-size:.9rem}.install button{border:0;background:transparent;cursor:pointer;color:var(--text-muted);font-size:.8rem;font-family:inherit}.panel{padding:3.5rem 0;border-top:1px solid var(--border)}.panel__eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--primary);margin-bottom:.35rem}.panel__title{font-size:1.75rem;letter-spacing:-.01em}.panel__lead{color:var(--text-muted);max-width:52rem;margin:0 0 1.75rem}.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem;align-items:start}@media(max-width:900px){.grid{grid-template-columns:minmax(0,1fr)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;overflow:hidden}.card__head{display:flex;align-items:center;gap:.5rem;padding:.5rem .9rem;border-bottom:1px solid var(--border);background:var(--surface-alt);font-size:.84rem;font-weight:600;color:var(--text-muted)}.card__body{padding:1rem}.note{border-left:5px solid var(--note-border);background:var(--note-bg);border-radius:.4rem;padding:.85rem 1rem;margin:1.5rem 0 0;font-size:.93rem}.note strong{display:block;margin-bottom:.2rem}.vp{position:relative;width:100%;aspect-ratio:1;background:#000;border-radius:.4rem;overflow:hidden;touch-action:none}.vp--off{display:grid;place-items:center;background:var(--surface-alt);border:1px dashed var(--border);color:var(--text-muted);font-size:.9rem}.vp__overlay{position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;padding:.5rem .7rem;font-family:var(--mono);font-size:.8rem;color:#d8f7ff;text-shadow:0 1px 2px #000;pointer-events:none}.vp__hint{position:absolute;top:.5rem;right:.7rem;font-size:.75rem;color:#9fb6bf;pointer-events:none}.slider{width:100%;margin-top:.75rem;accent-color:var(--primary)}.track{margin-top:.35rem}.track__cells{display:flex;gap:1px;height:7px;border-radius:4px;overflow:hidden;background:var(--surface-alt)}.track__cell{flex:1;background:var(--border);transition:background .12s}.track__cell--loaded{background:var(--primary);opacity:.55}.track__cell--current{opacity:1;box-shadow:inset 0 0 0 1px var(--text)}.track__caption{margin-top:.35rem;font-size:.78rem;color:var(--text-muted)}.track__caption code{font-size:.78rem}.ind{font-family:var(--mono);font-size:1.6rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.ind--empty{color:var(--text-muted)}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:-1px}.tab{border:0;background:transparent;cursor:pointer;font:inherit;font-size:.9rem;font-weight:600;color:var(--text-muted);padding:.5rem .9rem;border-bottom:3px solid transparent}.tab[aria-selected=true]{color:var(--primary);border-bottom-color:var(--primary)}.tab span{font-weight:400;opacity:.75;margin-left:.35rem;font-size:.82rem}.code{border:1px solid var(--border);border-radius:.4rem;overflow:hidden;background:var(--surface-alt)}.code__head{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;border-bottom:1px solid var(--border);font-family:var(--mono);font-size:.78rem;color:var(--text-muted)}.code__copy{border:0;background:transparent;cursor:pointer;color:var(--text-muted);font:inherit}.code pre{margin:0;padding:.9rem 1rem;overflow:auto;font-family:var(--mono);font-size:.82rem;line-height:1.55}.code .line-no{display:inline-block;width:1.8rem;opacity:.35;-webkit-user-select:none;user-select:none}.controls{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.25rem;align-items:center}.controls__label{font-size:.85rem;color:var(--text-muted);margin-right:.15rem}.button--sm{padding:.32rem .85rem;font-size:.87rem;border-width:1px}.verdict{margin-top:1.25rem;padding:.85rem 1rem;border-radius:.4rem;font-size:.93rem;border-left:5px solid var(--border);background:var(--surface-alt)}.verdict--bad{border-left-color:var(--bad);background:var(--bad-bg)}.verdict--ok{border-left-color:var(--ok);background:var(--ok-bg)}.badge{font-size:.72rem;font-weight:700;padding:.05rem .45rem;border-radius:999px}.badge--bad{background:var(--bad);color:#fff}.badge--ok{background:var(--ok);color:#fff}.status{font-size:.85rem;color:var(--text-muted);margin-top:.4rem;min-height:1.6em}.footer{border-top:1px solid var(--border);padding:2.5rem 0 3.5rem;color:var(--text-muted);font-size:.9rem}.footer a{font-weight:500}.loading{padding:4rem 0;text-align:center;color:var(--text-muted)}.stage{display:grid;grid-template-columns:18rem minmax(0,1fr);gap:1.5rem;align-items:start}@media(max-width:760px){.stage{grid-template-columns:minmax(0,1fr)}}.stage__label{margin-top:.4rem;text-align:center;font-size:.82rem;color:var(--text-muted)}.stage__readouts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}@media(max-width:1000px){.stage__readouts{grid-template-columns:minmax(0,1fr)}}.steps{margin-top:1.5rem;padding:1rem 1.15rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface-alt)}.steps__dots{display:flex;gap:.4rem;margin-bottom:.6rem}.dot{width:1.6rem;height:4px;border-radius:999px;background:var(--border)}.dot--on{background:var(--primary)}.steps__caption{margin:0 0 .9rem;font-size:1rem;min-height:3em}.steps__buttons{display:flex;gap:.6rem}.button:disabled{opacity:.45;cursor:default}
