/* base.css — resets, tokens, typography. Theme-agnostic scaffolding. */
*,*::before,*::after{box-sizing:border-box}
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth }
body{ margin:0; font-family:var(--font-mono); font-size:16px; line-height:1.6;
  color:var(--fg); background:var(--bg); -webkit-font-smoothing:antialiased;
  overflow-x:hidden; min-height:100vh }
h1,h2,h3,h4{ font-family:var(--font-mono); font-weight:700; line-height:1.15; margin:0 0 .5em; letter-spacing:-.01em }
h1{ font-size:clamp(2rem,5vw,3.4rem) } h2{ font-size:clamp(1.5rem,3.5vw,2.2rem) } h3{ font-size:1.25rem }
p{ margin:0 0 1em } a{ color:var(--accent); text-decoration:none; transition:color .2s }
a:hover{ color:var(--accent-2) }
img,canvas,iframe{ max-width:100%; display:block }
button{ font:inherit; cursor:pointer }
ul{ margin:0; padding:0; list-style:none }
::selection{ background:var(--accent); color:#000 }
.muted{ color:var(--fg-muted) }
.mono{ font-variant-numeric:tabular-nums }
.hidden{ display:none !important }
:focus-visible{ outline:2px solid var(--accent); outline-offset:2px }
.wrap{ width:min(1200px,92vw); margin-inline:auto }
.glow{ text-shadow:0 0 24px color-mix(in srgb,var(--accent) 60%,transparent) }
hr{ border:0; border-top:1px solid var(--border); margin:2rem 0 }

/* CSS-generated cover art — never empty, themed per project via inline --g1/--g2/--g3.
   data-art switches the background motif (cave / slash / danmaku rings). */
.art{ position:relative; overflow:hidden; background:
    radial-gradient(120% 90% at 15% 10%, var(--g1,#1a2350), transparent 55%),
    radial-gradient(120% 90% at 85% 90%, var(--g2,#3a1240), transparent 55%),
    linear-gradient(135deg,#0a0e1c,#06080f) }
.art::before{ content:""; position:absolute; inset:-20%; opacity:.9; mix-blend-mode:screen;
  background:
    radial-gradient(circle at 20% 30%, var(--g3,#63f2ff) 0 2px, transparent 3px),
    radial-gradient(circle at 70% 60%, var(--g3,#63f2ff) 0 2px, transparent 3px),
    radial-gradient(circle at 45% 80%, var(--g1,#ff2e97) 0 3px, transparent 4px),
    radial-gradient(circle at 85% 25%, var(--g2,#a970ff) 0 3px, transparent 4px),
    repeating-linear-gradient(115deg, transparent 0 22px, rgba(255,255,255,.05) 22px 23px); }
.art[data-art="cave"]::before{ background:
    repeating-conic-gradient(from 0deg at 30% 40%, transparent 0 8deg, rgba(99,242,255,.10) 8deg 9deg),
    repeating-linear-gradient(45deg, transparent 0 16px, rgba(169,112,255,.12) 16px 18px) }
.art[data-art="slash"]::before{ background:
    linear-gradient(120deg, transparent 46%, var(--g3,#ff2e97) 49%, transparent 52%),
    linear-gradient(60deg, transparent 60%, rgba(99,242,255,.5) 62%, transparent 64%) }
.art[data-art="danmaku"]::before{ background:
    repeating-radial-gradient(circle at 50% 45%, var(--g3,#a970ff) 0 2px, transparent 2px 14px),
    radial-gradient(circle at 50% 45%, rgba(255,255,255,.25), transparent 40%) }
.art__glyph{ position:absolute; inset:0; display:grid; place-items:center; font-size:3.4rem;
  filter:drop-shadow(0 4px 20px rgba(0,0,0,.6)); z-index:1 }

/* hero brand panel — a unique radar/circuit motif, deliberately NOT project art */
.brand-art{ display:grid; place-items:center; background:
    radial-gradient(120% 120% at 50% 120%, #10204a, transparent 60%),
    radial-gradient(90% 80% at 20% 0%, rgba(99,242,255,.12), transparent 60%),
    linear-gradient(160deg,#0a1230,#06080f) }
.brand-art__lines{ position:absolute; inset:0; overflow:hidden;
  background:
    repeating-radial-gradient(circle at 50% 50%, transparent 0 26px, rgba(99,242,255,.10) 26px 27px),
    conic-gradient(from 0deg at 50% 50%, rgba(255,46,151,.16), transparent 25%, transparent 100%),
    repeating-linear-gradient(0deg, transparent 0 3px, rgba(0,0,0,.25) 3px 4px) }
.brand-art__core{ position:relative; z-index:2; display:grid; justify-items:center; gap:.3rem;
  padding:1.1rem 1.6rem; border-radius:16px;
  border:1px solid var(--border-strong); background:rgba(6,10,22,.55); backdrop-filter:blur(3px);
  box-shadow:0 0 40px rgba(99,242,255,.25) }
.brand-art__mark{ font-size:2.2rem; font-weight:800; letter-spacing:.04em; color:var(--accent);
  text-shadow:0 0 26px var(--accent) }
.brand-art__cap{ font-size:.66rem; letter-spacing:.32em; text-transform:uppercase; color:var(--fg-muted) }


