airwaves / web /style.css
AndresCarreon's picture
AIRWAVES v0 — air-DJ (MediaPipe + Web Audio) + VoxCPM2 hype-man
860eb59 verified
Raw
History Blame Contribute Delete
3.73 kB
: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}