/* Pulse student-screen visual layer. Loaded after shell.css to override. */
#stu-bg{ position:fixed; inset:0; width:100%; height:100%; z-index:0; display:block; pointer-events:none; }
body.stu-shell::after{ content:""; position:fixed; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(10,18,30,.55) 0%, rgba(10,18,30,.16) 18%, transparent 38%, transparent 76%, rgba(8,16,26,.4) 100%); }
.stu{ position:relative; z-index:2; }

/* ---- login card ---- */
.stu-gate{ width:min(92vw,380px); background:rgba(13,24,38,.62); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  border:1px solid rgba(90,150,160,.22); border-radius:22px; padding:36px 30px 30px; text-align:center;
  box-shadow:0 36px 90px rgba(0,0,0,.55); }
.stu-wm{ position:relative; display:inline-block; font-size:42px; font-weight:800; letter-spacing:-.02em; line-height:1; color:#3df0b4;
  text-shadow:0 0 24px rgba(61,240,180,.45), 0 0 60px rgba(36,201,160,.25); }
.stu-beta{ position:absolute; right:-0.04em; top:0.12em; transform:translateY(-100%);
  font-size:0.24em; font-weight:700; letter-spacing:.16em; color:#3df0b4; text-shadow:0 0 10px rgba(61,240,180,.6); }
.stu-sub2{ margin-top:7px; font-family:'JetBrains Mono',monospace; font-weight:600; font-size:10.5px;
  letter-spacing:.2em; text-transform:uppercase; color:var(--sub); }
.stu-rule{ height:1px; background:linear-gradient(90deg,transparent,rgba(120,160,170,.25),transparent); margin:22px 0; }
.stu-gate-h{ font-size:15px; font-weight:600; color:var(--sub); margin:0 0 14px; letter-spacing:0; }
.stu-input{ width:100%; box-sizing:border-box; background:#0a1320; border:1.5px solid #25323f; color:var(--ink);
  border-radius:13px; padding:15px 16px; font-family:'JetBrains Mono',monospace; font-size:20px; font-weight:600;
  text-align:center; letter-spacing:.18em; text-transform:uppercase; outline:none; }
.stu-input:focus{ border-color:var(--accent); box-shadow:0 0 0 3px rgba(36,201,160,.15); }
.stu-anon{ margin-top:18px; display:inline-flex; align-items:center; gap:7px; font-size:12px; color:var(--sub); }
.stu-anon-dot{ width:6px; height:6px; border-radius:50%; background:var(--accent); box-shadow:0 0 8px var(--accent); }

/* ---- waiting wordmark + tagline + bare ECG ---- */
.wait-titlewrap{ display:inline-block; text-align:center; }
.wait-title{ position:relative; display:inline-block; font-size:clamp(64px,21vw,116px); letter-spacing:-.02em; line-height:.95;
  text-shadow:0 0 28px rgba(61,240,180,.45), 0 0 68px rgba(36,201,160,.26); }
.wait-beta{ position:absolute; right:-0.02em; top:0.12em; transform:translateY(-100%);
  font-size:0.2em; font-weight:700; letter-spacing:.16em; color:#3df0b4; text-shadow:0 0 10px rgba(61,240,180,.6); }
.wait-tagline{ margin-top:10px; font-weight:600; font-size:15px; text-transform:uppercase; color:var(--sub); white-space:nowrap; }
@keyframes pulseGlow{
  0%,100%{ text-shadow:0 0 28px rgba(61,240,180,.45), 0 0 68px rgba(36,201,160,.26); }
  50%{ text-shadow:0 0 44px rgba(61,240,180,.7), 0 0 100px rgba(36,201,160,.46); } }
.ecg{ border:none !important; background:none !important; box-shadow:none !important; aspect-ratio:690/170; }
.ecg-dot{ fill:#f4fffb;
  filter:drop-shadow(0 0 9px rgba(170,255,225,1)) drop-shadow(0 0 20px rgba(80,250,180,1))
    drop-shadow(0 0 40px rgba(40,220,160,.85)) drop-shadow(0 0 64px rgba(36,201,160,.5)); }

/* ---- poll card readability over a dark background ---- */
.poll-stu-card{ position:relative; z-index:2; }
