:root{
  --bg:#000;
  --bg-2:#08080a;
  --ink:#F5F5F0;
  --mute:#6B6B6B;
  --line:#1a1a1d;
  --accent:#D4FF00;
  --accent-2:#B8A6FF;
  --accent-3:#FF4FB8;
  --grid:rgba(255,255,255,.04);
  --grid-size:80px;
  --transition-dur: 920ms;
  --transition-ease: cubic-bezier(0.16,1,0.3,1);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;cursor:none!important}
img,canvas{-webkit-user-drag:none;pointer-events:auto}

/* Lock window scroll — sections handle their own internal scroll */
html,body{
  height:100%;
  overflow:hidden;
  background:var(--bg);color:var(--ink);
  font-family:'Space Grotesk',sans-serif;
  -webkit-font-smoothing:antialiased;
}
body{cursor:none}
@media (hover:none){body{cursor:auto}}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit;color:inherit;background:none;border:0;cursor:none}
@media (hover:none){button{cursor:pointer}}
::selection{background:var(--accent);color:#000}
input,textarea,select{-webkit-user-select:text!important;-moz-user-select:text!important;user-select:text!important;cursor:text!important;}

/* Fixed atmosphere layers — z-index above sections (5) but below nav (50) */
.grid-overlay{
  position:fixed;inset:0;pointer-events:none;z-index:12;
  background-image:
    linear-gradient(var(--grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:var(--grid-size) var(--grid-size);
  mix-blend-mode:screen;
}
.noise{
  position:fixed;inset:0;pointer-events:none;z-index:13;opacity:.06;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* Transition cover — brief black flash hides section-swap seams */
#t-cover{
  position:fixed;inset:0;z-index:300;
  background:var(--bg);
  opacity:0;pointer-events:none;
  transition:opacity 140ms ease;
}
#t-cover.on{ opacity:1; }
