:root{ --cyan:#50dcff; --mag:#ff5aaa; --gold:#ffcf4a; --ink:#06030d; --v:0; } *{box-sizing:border-box;margin:0;padding:0} html,body{height:100%;background:var(--ink);color:#fff;overflow:hidden; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;} .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;opacity:.8} .hidden{display:none!important} #stage{position:fixed;inset:0} .screen{position:absolute;inset:0} /* live mirror */ #mirror{position:absolute;inset:0} #cam,#draw{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)} #cam{filter:saturate(.7) brightness(.62) contrast(1.05)} #session::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none; background:radial-gradient(120% 90% at 50% 18%,transparent 38%,rgba(6,3,13,.78) 100%)} /* top bar */ #topbar{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;justify-content:space-between; align-items:center;padding:18px 22px} .logo{font-weight:800;letter-spacing:.16em;font-size:20px;color:#fff;text-shadow:0 0 18px rgba(80,220,255,.6)} .logo span{color:var(--mag);text-shadow:0 0 18px rgba(255,90,170,.7)} .logo.big{font-size:54px;letter-spacing:.2em;margin-bottom:18px} .badges{display:flex;gap:10px;align-items:center} .badges>span{padding:6px 12px;border:1px solid rgba(255,255,255,.18);border-radius:999px; background:rgba(255,255,255,.05);backdrop-filter:blur(8px);font-size:13px} #state{color:var(--gold);font-weight:600} /* fx rack */ #rack{position:absolute;bottom:26px;left:0;right:0;z-index:5;display:flex;gap:18px; justify-content:center;padding:0 20px} .knob{width:104px;max-width:22vw} .knob .bar{height:10px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden;position:relative} .knob .bar::after{content:"";position:absolute;inset:0;width:calc(var(--v)*100%); background:linear-gradient(90deg,var(--cyan),#bff);box-shadow:0 0 14px var(--cyan); transition:width .05s linear} .knob .bar.mag::after{background:linear-gradient(90deg,var(--mag),var(--gold));box-shadow:0 0 14px var(--mag)} .knob label{display:block;text-align:center;margin-top:7px;font-size:12px;letter-spacing:.05em;opacity:.85} /* input source switcher */ #source{position:absolute;top:58px;left:0;right:0;z-index:6;display:flex;gap:10px; align-items:center;justify-content:center;flex-wrap:wrap;padding:0 16px} .src{font-size:13px;font-weight:600;color:#cbd2e0;cursor:pointer; padding:7px 15px;border-radius:999px;border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06);backdrop-filter:blur(8px)} .src.on{color:#06030d;border-color:transparent;background:linear-gradient(90deg,var(--cyan),var(--mag))} .srcnote{font-size:12px;color:var(--gold);opacity:.92;max-width:62vw;text-align:center} /* start card */ #start{display:grid;place-items:center; background:radial-gradient(110% 80% at 50% 0%,#1a0a2e 0%,var(--ink) 70%)} .card{max-width:520px;width:90%;text-align:center;padding:8px 24px 30px} .tag{font-size:18px;line-height:1.5;color:#cbd2e0;margin-bottom:22px} .tag b{color:#fff} .moves{list-style:none;text-align:left;display:grid;gap:10px;margin:0 auto 26px;max-width:430px} .moves li{padding:12px 16px;border:1px solid rgba(255,255,255,.1);border-radius:14px; background:rgba(255,255,255,.04);font-size:14.5px;line-height:1.4} .moves b{color:var(--cyan)} button#go{font-size:18px;font-weight:700;letter-spacing:.04em;color:#06030d;cursor:pointer; padding:15px 40px;border:0;border-radius:999px; background:linear-gradient(90deg,var(--cyan),var(--mag)); box-shadow:0 8px 30px rgba(255,90,170,.45),0 0 0 1px rgba(255,255,255,.15) inset} button#go:disabled{opacity:.7;cursor:wait} #hint{margin-top:16px}