:root{--bg:#070912;--panel:#121829;--panel-2:#1b2340;--line:#2e3a5c;--text:#f4f7ff;--muted:#aab6d3;--accent:#ffa62b;--accent-2:#ff4f8b;--accent-ink:#2b1300;--good:#3dff9a;--warn:#ffd23f;--bad:#ff4d6d;--radius:18px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);-webkit-tap-highlight-color:transparent;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-height:100dvh;margin:0}button,select,input{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h2{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-size:.8rem;font-weight:600}sub{vertical-align:baseline;color:var(--muted);margin-left:.04em;font-size:.45em;position:relative;bottom:-.1em}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{max-width:640px;padding:max(12px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));margin:0 auto}main{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.topbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.brand{letter-spacing:.02em;margin:0;font-size:1.35rem}.select select{appearance:none;background:var(--panel-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238b9aab' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center;border:1px solid var(--line);border-radius:999px;max-width:58vw;padding:8px 34px 8px 14px}.primary{background:var(--accent);width:100%;color:var(--accent-ink);text-align:center;border:0;border-radius:999px;padding:14px 20px;font-size:1.05rem;font-weight:700;text-decoration:none;display:block}.primary:disabled{opacity:.6}.primary--stop{background:var(--panel-2);color:var(--text);border:1px solid var(--line)}.chip{border:1px solid var(--line);background:var(--panel-2);border-radius:999px;padding:6px 12px;font-size:.85rem}.chip--on{border-color:var(--accent);color:var(--accent)}.footer{text-align:center;color:var(--muted);margin-top:24px;font-size:.8rem}.footer a{color:var(--accent)}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.app{max-width:1100px}.topbar{min-height:64px}.readout{--state:var(--text);align-items:center;gap:12px;display:flex}.readout--good{--state:var(--good)}.readout--ok{--state:var(--warn)}.readout--off{--state:var(--bad)}.readout__note{color:var(--state);text-align:right;min-width:2.4ch;font-size:2.6rem;font-weight:800;line-height:1}.readout__detail{font-variant-numeric:tabular-nums;color:var(--muted);min-width:8.5em;font-size:.85rem;display:grid}.readout__detail span:last-child{color:var(--state);font-weight:600}.stage{border-radius:var(--radius);border:1px solid var(--line);height:min(62vh,560px);min-height:300px;position:relative;overflow:hidden}.roll{cursor:pointer;touch-action:manipulation;width:100%;height:100%;display:block}.stage__overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#080b0f99;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.gate{text-align:center;max-width:340px;color:var(--muted);gap:12px;display:grid}.gate p{margin:0}.stage__badge{background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:700;position:absolute;top:12px;right:12px}.bar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.score{background:var(--panel);border:1px solid var(--line);border-radius:12px;min-width:96px;padding:8px 14px;display:grid}.score strong{font-variant-numeric:tabular-nums;font-size:1.3rem}.score span{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.72rem}.actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.btn{border:1px solid var(--line);background:var(--panel-2);border-radius:999px;min-height:44px;padding:0 16px;font-weight:600}.btn:disabled,.chip:disabled{opacity:.45}.btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.btn--quiet{background:0 0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px 24px;padding:16px;display:grid}.field{align-content:start;gap:8px;display:grid}.field>span{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:600}.field select{appearance:none;background:var(--panel-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238b9aab' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center;border:1px solid var(--line);border-radius:999px;padding:10px 34px 10px 14px}.row,.target{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.target output{text-align:center;font-variant-numeric:tabular-nums;min-width:9.5em;font-weight:600}.round{border:1px solid var(--line);background:var(--panel-2);border-radius:50%;width:40px;height:40px;font-size:1.2rem}.toggle{color:var(--muted);align-items:center;gap:8px;font-size:.85rem;display:flex}.toggle input{width:18px;height:18px;accent-color:var(--accent)}@media (width<=560px){.brand{font-size:1.05rem}.readout__note{font-size:2rem}.readout__detail{min-width:7em;font-size:.78rem}.stage{height:56vh}.actions{width:100%;margin-left:0}.actions .btn{flex:1}}.suite{background:var(--panel);border:1px solid var(--line);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.suite__item{color:var(--muted);white-space:nowrap;border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:600;text-decoration:none}a.suite__item:hover{color:var(--text);background:var(--panel-2)}.topbar{grid-template-columns:auto 1fr auto;grid-template-areas:"brand suite control";align-items:center;gap:12px;margin-bottom:16px;display:grid}.topbar .brand{grid-area:brand}.topbar .suite{grid-area:suite;justify-self:center}.topbar>:last-child{grid-area:control}.layout,.layout__primary,.layout__secondary{grid-template-columns:minmax(0,1fr);align-content:start;gap:16px;display:grid}@media (width<=639px){.topbar{grid-template-columns:auto 1fr;grid-template-areas:"brand control""suite suite";gap:10px}.topbar>:last-child{justify-self:end}.topbar .suite{text-align:center;grid-template-columns:repeat(3,1fr);justify-self:stretch;display:grid}}.side{align-content:start;gap:16px;display:grid}@media (width<=639px){.stage{height:max(280px,100dvh - 250px)}}@media (height<=500px) and (orientation:landscape){.topbar{grid-template-columns:auto 1fr auto;grid-template-areas:"brand suite control";margin-bottom:8px}.topbar .suite{justify-self:center;display:inline-flex}.app{padding-top:max(6px, env(safe-area-inset-top))}.topbar{min-height:0}.brand{font-size:1rem}.suite__item{padding:4px 10px}.readout__note{font-size:1.6rem}.stage{height:calc(100dvh - 58px);min-height:220px}}@media (width>=1024px){.app{max-width:1440px;padding-left:32px;padding-right:32px}.layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px}.stage{height:clamp(420px,100dvh - 120px,900px)}.side{position:sticky;top:16px}.bar{grid-template-columns:1fr 1fr;display:grid}.actions{grid-column:1/-1;margin-left:0}.actions .btn{flex:1}.panel{grid-template-columns:minmax(0,1fr)}.readout__note{font-size:3.2rem}.readout__detail{font-size:.95rem}}body{background:radial-gradient(60vmax 42vmax at -5% -12%, color-mix(in srgb, var(--accent) 24%, transparent), transparent 70%), radial-gradient(52vmax 40vmax at 105% 0%, color-mix(in srgb, var(--accent-2) 20%, transparent), transparent 70%), radial-gradient(70vmax 50vmax at 50% 125%, color-mix(in srgb, var(--accent-2) 12%, transparent), transparent 70%), var(--bg);background-attachment:fixed}.stage,.score,.panel{background:linear-gradient(180deg, #172036, var(--panel) 60%);border:1px solid color-mix(in srgb, var(--accent) 16%, var(--line));box-shadow:inset 0 1px #ffffff12,0 20px 44px -26px #000000e6}h2{color:color-mix(in srgb, var(--accent) 55%, var(--text))}.brand{background:linear-gradient(90deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:800}.brand__mark{color:inherit}.suite{border-color:var(--line);-webkit-backdrop-filter:blur(8px);background:#0a0e1cb3}.suite__item{color:var(--muted)}.suite__item--on{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:var(--accent-ink)}.primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:var(--accent-ink);box-shadow:0 12px 32px -12px var(--accent);transition:transform .12s,box-shadow .2s}.primary:hover{box-shadow:0 16px 36px -12px var(--accent);transform:translateY(-1px)}.primary:active{transform:translateY(1px)scale(.99)}.chip{background:var(--panel-2);border-color:var(--line);color:var(--text);transition:border-color .15s,background .15s,transform .1s}.chip:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 60%, var(--line))}.chip--on{background:color-mix(in srgb, var(--accent) 22%, var(--panel-2));border-color:var(--accent);color:var(--text);box-shadow:0 0 16px -6px var(--accent)}.select select{background-color:var(--panel-2);border-color:var(--line)}.footer{color:var(--muted)}.readout__note{text-shadow:0 0 24px color-mix(in srgb, var(--state) 60%, transparent)}.readout__detail{color:var(--muted)}.stage{border-color:color-mix(in srgb, var(--accent) 22%, var(--line));box-shadow:0 0 0 1px #ffffff08, 0 24px 60px -30px #000000e6, 0 0 80px -40px var(--accent)}.stage__overlay{background:radial-gradient(circle,#0b10208c,#070912cc)}.gate{color:#c3cde6}.stage__badge{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:var(--accent-ink)}.score span{color:var(--muted)}.score--good strong{color:var(--good);text-shadow:0 0 14px color-mix(in srgb, var(--good) 50%, transparent)}.score--ok strong{color:var(--warn)}.score--off strong{color:var(--bad)}.btn,.round,.field select{background-color:var(--panel-2);border-color:var(--line);transition:border-color .15s,transform 80ms}.btn:hover:not(:disabled),.round:hover{border-color:color-mix(in srgb, var(--accent) 60%, var(--line))}.btn:active:not(:disabled),.round:active{transform:scale(.96)}.btn[aria-pressed=true]{background:color-mix(in srgb, var(--accent) 20%, var(--panel-2))}.field>span{color:color-mix(in srgb, var(--accent) 55%, var(--text))}.toggle{color:#c3cde6}
