:root{--bg:#101418;--bg-raised:#171d24;--bg-input:#0b0f13;--line:#2a3440;--text:#e6edf3;--muted:#8b98a5;--accent:#7aa2f7;--accent-strong:#4d7ee8;--warn:#e0af68;--danger:#f7768e;--ok:#9ece6a;--radius:10px;--max:1100px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);flex-direction:column;min-height:100vh;font:16px/1.55 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;display:flex}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}header.site,footer.site{border-bottom:1px solid var(--line);padding:.9rem 1.25rem}footer.site{border-bottom:none;border-top:1px solid var(--line);color:var(--muted);margin-top:3rem;font-size:.85rem}header.site .inner,footer.site .inner,main{max-width:var(--max);margin:0 auto}header.site .inner{align-items:center;gap:1.25rem;display:flex}header.site .brand{letter-spacing:.02em;color:var(--text);font-weight:700}header.site nav{gap:1rem;margin-left:auto;font-size:.95rem;display:flex}main{flex:1;width:100%;padding:2rem 1.25rem 0}h1{margin:0 0 .5rem;font-size:2rem;line-height:1.15}h2{margin:2rem 0 .75rem;font-size:1.25rem}h3{margin:1.5rem 0 .5rem;font-size:1rem}p.lede{color:var(--muted);max-width:60ch;margin:0 0 1.5rem}.card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem}.grid{gap:1rem;display:grid}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}button,.button{font:inherit;color:var(--text);background:var(--bg-input);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:.5rem .9rem}button:hover,.button:hover{border-color:var(--accent);text-decoration:none}button.primary,.button.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff;font-weight:600}button.danger{color:var(--danger)}button:disabled{opacity:.5;cursor:default}input,select{font:inherit;color:var(--text);background:var(--bg-input);border:1px solid var(--line);border-radius:8px;width:100%;padding:.45rem .6rem}label.field{margin-bottom:.9rem;display:block}label.field>span{margin-bottom:.3rem;font-size:.9rem;display:block}label.field small{color:var(--muted);margin-top:.25rem;font-size:.8rem;display:block}.check{align-items:center;gap:.5rem;display:flex}.check input{width:auto}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.row.between{justify-content:space-between}.muted{color:var(--muted)}.small{font-size:.85rem}.badge{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.1rem .6rem;font-size:.78rem;display:inline-block}.badge.ok{color:var(--ok);border-color:var(--ok)}.badge.warn{color:var(--warn);border-color:var(--warn)}.badge.off{color:var(--muted)}.notice{border-left:3px solid var(--warn);background:#e0af6814;border-radius:0 8px 8px 0;margin:0 0 1rem;padding:.6rem .9rem}.error{color:var(--danger)}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;border-bottom:1px solid var(--line);padding:.5rem .4rem}th{color:var(--muted);font-weight:500}code{background:var(--bg-input);border:1px solid var(--line);border-radius:6px;padding:.05rem .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.dial-frame{border:1px solid var(--line);border-radius:var(--radius);background:#000;place-items:center;padding:.75rem;display:grid}.dial-frame img{width:min(100%,520px);height:auto;display:block}.dial-lens{aspect-ratio:1;border:1px solid var(--line);touch-action:none;background:#000;border-radius:50%;width:100%;max-width:520px;margin:0 auto;position:relative;overflow:hidden}.dial-lens img{will-change:transform;-webkit-user-drag:none;user-select:none;pointer-events:none;width:100%;height:100%;display:block}.dial-lens.is-loading:after{content:"loading";color:var(--muted);letter-spacing:.04em;pointer-events:none;background:#0009;place-items:center;font-size:.8rem;display:grid;position:absolute;inset:0}.app-card{color:inherit;display:block}.app-card:hover{border-color:var(--accent);text-decoration:none}.app-card h2{margin:.9rem 0 .2rem}.app-card-link{color:var(--accent);font-size:.9rem}.features{margin:0;padding-left:1.1rem}.features li{margin-bottom:.35rem}.scenarios{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.scenarios button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
