:root{--vx-ink:#10151f;--vx-ink-soft:#48505f;--vx-page:#ffffff;--vx-surface:#f4f6fa;--vx-line:#d3d9e3;--vx-brand:#14508c;--vx-brand-ink:#ffffff;--vx-danger:#a4192b;--vx-ok:#1c6b3c;--vx-focus:#0b5fff;--vx-radius:8px;--vx-measure:68ch}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;overflow-x:hidden}body{background:var(--vx-page);color:var(--vx-ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.55;min-height:100vh;display:flex;flex-direction:column}main{flex:1 0 auto;width:100%;max-width:1100px;margin:0 auto;padding:1.5rem 1rem 3rem}img,video{max-width:100%;height:auto}a{color:var(--vx-brand)}:focus-visible{outline:3px solid var(--vx-focus);outline-offset:2px}.skip-link{position:absolute;left:-9999px;top:0;background:var(--vx-brand);color:var(--vx-brand-ink);padding:.6rem 1rem;z-index:10}.skip-link:focus{left:0}.site-header{border-bottom:1px solid var(--vx-line);background:var(--vx-page)}.site-header__inner{max-width:1100px;margin:0 auto;padding:.75rem 1rem;display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center}.site-header__brand{font-weight:700;font-size:1.15rem;color:var(--vx-ink);text-decoration:none}.site-header__nav{display:flex;flex-wrap:wrap;gap:.25rem 1rem;align-items:center;margin-left:auto}.site-footer{border-top:1px solid var(--vx-line);padding:1rem;color:var(--vx-ink-soft);font-size:.9rem;text-align:center}h1{font-size:clamp(1.5rem,1.2rem + 1.2vw,2.1rem);line-height:1.2;margin:0 0 .5rem}h2{font-size:clamp(1.2rem,1.05rem + .6vw,1.5rem);line-height:1.25;margin:2rem 0 .75rem}h3{font-size:1.05rem;margin:0 0 .25rem}p{max-width:var(--vx-measure)}.lede{font-size:1.1rem}.lede,.muted{color:var(--vx-ink-soft)}.button{display:inline-block;border:1px solid var(--vx-brand);background:var(--vx-brand);color:var(--vx-brand-ink);border-radius:var(--vx-radius);padding:.6rem 1.1rem;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.button:hover{background:#0e3d6d}.button--secondary{background:transparent;color:var(--vx-brand)}.button--secondary:hover{background:var(--vx-surface)}.button[disabled]{opacity:.6;cursor:not-allowed}.field{display:block;margin-bottom:1rem;max-width:30rem}.field label{display:block;font-weight:600;margin-bottom:.25rem}.field input{width:100%;font:inherit;padding:.55rem .6rem;border:1px solid var(--vx-line);border-radius:var(--vx-radius);background:var(--vx-page);color:var(--vx-ink)}.field__hint{font-size:.85rem;color:var(--vx-ink-soft);margin:.25rem 0 0}.notice{border:1px solid var(--vx-line);border-left:4px solid var(--vx-brand);background:var(--vx-surface);border-radius:var(--vx-radius);padding:.75rem 1rem;margin:1rem 0}.notice--error{border-left-color:var(--vx-danger)}.notice--ok{border-left-color:var(--vx-ok)}.notice p{margin:0}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));grid-gap:1rem;gap:1rem;padding:0;margin:1rem 0;list-style:none}.card{border:1px solid var(--vx-line);border-radius:var(--vx-radius);padding:1rem;background:var(--vx-page);height:100%}.card a{font-weight:600}.stack{list-style:none;padding:0;margin:1rem 0;flex-direction:column;gap:.5rem}.row,.stack{display:flex}.row{border:1px solid var(--vx-line);border-radius:var(--vx-radius);padding:.75rem 1rem;flex-wrap:wrap;gap:.5rem 1rem;align-items:baseline;justify-content:space-between}.badge{display:inline-block;font-size:.8rem;font-weight:700;border-radius:999px;padding:.1rem .6rem;border:1px solid var(--vx-line);background:var(--vx-surface);color:var(--vx-ink-soft)}.badge--ok{border-color:var(--vx-ok);color:var(--vx-ok)}.badge--warn{border-color:var(--vx-danger);color:var(--vx-danger)}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:30rem}td,th{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--vx-line)}.player{max-width:24rem;aspect-ratio:9/16;width:100%;background:#000;border-radius:var(--vx-radius)}.progress-meter{height:.5rem;border-radius:999px;background:var(--vx-line);overflow:hidden;max-width:24rem}.progress-meter__fill{height:100%;background:var(--vx-brand)}