*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --y:      #FFD600;
  --y2:     #FFA500;
  --bg:     #05050A;
  --glass:  rgba(255,255,255,0.04);
  --border: rgba(255,255,255,0.09);
  --by:     rgba(255,214,0,0.28);
  --yd:     rgba(255,214,0,0.10);
  --text:   #F0F0F0;
  --muted:  rgba(240,240,240,0.65);
  --dim:    rgba(240,240,240,0.38);
}

/* ── CURSOR ── */
body { cursor: none; }
a, button, [role="button"] { cursor: none; }

#cur { position:fixed; width:10px; height:10px; background:var(--y); border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); mix-blend-mode:difference; transition:width .2s,height .2s; }
#cur-ring { position:fixed; width:36px; height:36px; border:1.5px solid rgba(255,214,0,0.5); border-radius:50%; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:width .3s,height .3s; }
#cur-burst { position:fixed; width:36px; height:36px; border:1.5px solid rgba(255,214,0,0.7); border-radius:50%; pointer-events:none; z-index:9997; transform:translate(-50%,-50%); opacity:0; }
#cur-burst.burst { animation:burst .4s ease-out forwards; }

@keyframes burst {
  0%   { width:36px; height:36px; opacity:.7; }
  100% { width:72px; height:72px; opacity:0; }
}

body.pressing #cur { width:6px !important; height:6px !important; }
body.pressing #cur-ring { width:28px !important; height:28px !important; }

body:has(a:hover) #cur,
body:has(.card:hover) #cur,
body:has(#snark:hover) #cur,
body:has(.chip:hover) #cur,
body:has(.od-card:hover) #cur { width:18px; height:18px; }

body:has(a:hover) #cur-ring,
body:has(.card:hover) #cur-ring,
body:has(#snark:hover) #cur-ring,
body:has(.chip:hover) #cur-ring,
body:has(.od-card:hover) #cur-ring { width:52px; height:52px; border-color:rgba(255,214,0,0.8); }

/* ── BACKGROUND ORBS ── */
.orb { position:fixed; border-radius:50%; filter:blur(80px); pointer-events:none; z-index:0; animation:orbFloat 8s ease-in-out infinite; }
.orb-a { width:440px; height:440px; background:rgba(255,214,0,0.05); top:-130px; left:-90px; }
.orb-b { width:330px; height:330px; background:rgba(255,165,0,0.04); bottom:-90px; right:80px; animation-duration:11s; animation-delay:-2s; animation-direction:reverse; }

@keyframes orbFloat {
  0%, 100% { transform:translateY(0); }
  50%       { transform:translateY(-28px); }
}

/* ── STAR CANVAS ── */
#stars { position:fixed; inset:0; z-index:0; pointer-events:none; }

/* ── SCAN LINE ── */
.scan { position:fixed; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,rgba(255,214,0,0.25),transparent); pointer-events:none; z-index:1; top:0; animation:scanLine 6s linear infinite; }

@keyframes scanLine {
  0%   { top:-2px; opacity:0; }
  5%   { opacity:1; }
  95%  { opacity:1; }
  100% { top:100vh; opacity:0; }
}

/* ── VIGNETTE ── */
body::after { content:''; position:fixed; inset:0; background:radial-gradient(ellipse at center,transparent 50%,rgba(5,5,10,0.65) 100%); pointer-events:none; z-index:0; }

/* ── CARD ENTRY ── */
@keyframes cardIn {
  from { opacity:0; transform:translateY(14px) scale(.97); filter:blur(3px); }
  to   { opacity:1; transform:none; filter:none; }
}
