/* Tron-Neon — near-black ground, single-hue (cyan) glowing line-art, thin
   circuit/grid overlay, sharp angular panel framing. The visual opposite
   of Lisa Frank in restraint: a second extreme stress-test of the plain-
   mode fallback rule, same as that pack's rainbow-maximalist stress-test
   at the other end -- every glow effect here is a pure CSS box-shadow/
   text-shadow keyed off the standard token set (--accent-1/--border), so a
   user on "simplified fonts" still gets a coherent, readable Tron-Neon
   read with just --font-display swapped to a system sans; no separate
   plain-mode CSS branch needed in this file.

   GLOBAL CONSTRAINT (task-3-brief.md #5): zero border-radius anywhere in
   this pack's scope, same style of audit as 8bit.css's override block --
   re-zeroes every border-radius theme.css declares (.card/.tile/button/
   input/select/.badge/.chip/.chip-wrap .help-pop/.tooltip/.bot-vibe/
   .dialog-box/.dialog-form input/.toast/.toast-action/.bulk-bar/
   #debug-theme-panel), including theme.css's own 700px mobile media block
   (each override selector is attribute-scoped, more specific than
   theme.css's plain-class/bare-id rules, so it wins regardless of cascade
   order). Audited: no other rule in this file declares border-radius.
   Sharp angular framing note: this is the same hard-edge discipline as
   8bit for a different aesthetic reason -- Tron's sci-fi vector geometry,
   not pixel-art blockiness -- so the visual language below leans on thin
   1px borders + glow rather than 8bit's thick offset "pixel" shadows.

   Font: JetBrains Mono is already self-hosted (vendored for cf-defcon.css);
   reused here as --font-mono via this pack's own @font-face pointing at
   the same file (same reuse pattern as 8bit.css's VT323 rule -- no new
   asset needed). --font-display gets a dedicated angular geometric sans
   instead of reusing JetBrains Mono for both roles: Orbitron (OFL-licensed,
   geometric/angular, the standard "sci-fi HUD" display face) reads truer
   to Tron's vector-line titling than a monospace face would.

   Contrast: --text/--text-2/--muted verified against all three grounds at
   full body-text WCAG rigor. This near-black/glow palette is exactly the
   brief's flagged risk case -- a first --muted draft (#4f8b9a) cleared
   bg/bg2 but only hit 4.47:1 on bg3 (just under the 4.5:1 AA bar),
   brightened to #54919f for 4.47->4.82:1 worst case. text 15.29:1,
   text-2 10.14:1 worst case. danger vs danger-dark: 5.31:1.
   Motion: the glow-pulse animation below respects prefers-reduced-motion,
   same pattern as matrix-terminal.css's cursor blink / 8bit.css's cursor
   blink.
   See: circuitforge-plans/vaportrade-clone/superpowers/specs/
   2026-08-13-ui-redesign-design.md §3 "Theme-pack roadmap". */
@font-face{
  font-family:"Orbitron";
  src:url("/vaportrade/static/fonts/orbitron/Orbitron-Variable.woff2") format("woff2");
  font-weight:400 900;
  font-display:swap;
}
/* 3270 (2026-09-02, --font-mono only -- --font-display stays Orbitron):
   picked via the font-gallery-generator drag-and-drop tool's exported
   picks, replacing JetBrains Mono here. Real IBM-3270-terminal-emulator
   font (x3270 project), BSD-3-clause licensed (not OFL, but equally
   permissive -- see static/fonts/threetwoseventy/LICENSE.txt), shared
   @font-face with matrix-terminal.css's own 3270 pick. JetBrains Mono
   itself is no longer referenced by any pack after this swap, but stays
   self-hosted (static/fonts/jetbrains-mono/) -- cheap to keep. */
@font-face{
  font-family:"3270";
  src:url("/vaportrade/static/fonts/threetwoseventy/3270-Regular.woff2") format("woff2");
  font-weight:400;
  font-display:swap;
}
/* Gradient Vector (2026-09-02, --font-h2, the new 3rd font role): shared
   with paragade.css/ps1-lowpoly.css's own Gradient Vector picks, SIL
   OFL. */
@font-face{
  font-family:"Gradient Vector";
  src:url("/vaportrade/static/fonts/gradient-vector/GradientVector-Regular.woff2") format("woff2");
  font-weight:400;
  font-display:swap;
}
[data-theme="tron-neon"]{
  --bg:#050a0c; --bg2:#0a1418; --bg3:#0f1e22; --border:#164048;
  --text:#d8f8ff; --text-2:#7fd4e6; --muted:#54919f;
  --accent-1:#00f0ff; --accent-2:#33bfff; --accent-3:#ffb300;
  --success:#00ffaa; --danger:#ff3355; --danger-dark:#2a0008; --warning:#ffb300;
  --font-display:"Orbitron",sans-serif;
  --font-mono:"3270","SFMono-Regular",Consolas,monospace;
  --font-h2:"Gradient Vector",sans-serif;
  --font-size-display:2rem; --font-size-mono:1.125rem; --font-size-h2:1.375rem;
}
/* Zero every border-radius theme.css declares -- see header comment. */
[data-theme="tron-neon"] .card,
[data-theme="tron-neon"] .tile,
[data-theme="tron-neon"] button,
[data-theme="tron-neon"] input,
[data-theme="tron-neon"] select,
[data-theme="tron-neon"] .badge,
[data-theme="tron-neon"] .chip,
[data-theme="tron-neon"] .chip-wrap .help-pop,
[data-theme="tron-neon"] .tooltip,
[data-theme="tron-neon"] .bot-vibe,
[data-theme="tron-neon"] .dialog-box,
[data-theme="tron-neon"] .dialog-form input,
[data-theme="tron-neon"] .toast,
[data-theme="tron-neon"] .toast-action,
[data-theme="tron-neon"] .bulk-bar,
[data-theme="tron-neon"] #debug-theme-panel{
  border-radius:0;
}
/* Thin circuit-line grid overlay -- a fixed full-viewport ::before, same
   pattern as matrix-terminal's scanlines / cf-defcon's grid / ps1-lowpoly's
   dither, but a faint two-axis line grid instead (Tron's circuit-board
   ground texture). */
[data-theme="tron-neon"] body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;
  background:
    repeating-linear-gradient(0deg,rgba(0,240,255,.05) 0px,rgba(0,240,255,.05) 1px,transparent 1px,transparent 32px),
    repeating-linear-gradient(90deg,rgba(0,240,255,.05) 0px,rgba(0,240,255,.05) 1px,transparent 1px,transparent 32px);
}
[data-theme="tron-neon"] h1 .grad{
  background:none;color:var(--accent-1);
  text-shadow:0 0 6px rgba(0,240,255,.7),0 0 16px rgba(0,240,255,.4);
  letter-spacing:1px;
}
/* Sharp 1px glowing line-art framing -- box-shadow glow instead of blur,
   replacing theme.css's soft drop shadows entirely; thin border keeps the
   "line-art" read rather than a filled panel look. */
[data-theme="tron-neon"] .card,
[data-theme="tron-neon"] .tile{
  border:1px solid var(--border);
  box-shadow:0 0 8px rgba(0,240,255,.12) inset,0 0 1px rgba(0,240,255,.3);
}
/* 2026-08-28 button glow-up note: this pack opts OUT of the new base
   button{} animated gradient-border/cut-corner look (theme.css) --
   already deliberately sharp 1px line-art per this file's own header
   comment, incompatible with a diagonal clip-path cut. clip-path:none
   undoes the base rule's cut-corner shape, on top of the zero-border-
   radius audit this file already runs. content:none on ::before/::after
   is the real opt-out -- negative z-index paints ABOVE this element's
   own background per CSS2.1 stacking order (confirmed empirically), not
   behind it, so without this the base rule's ::after would silently
   cover this pack's own var(--bg3) fill. */
[data-theme="tron-neon"] button:not(.ghost):not(.danger):not(.dice-roll):not(.app-nav-toggle){
  background:var(--bg3);border:1px solid var(--accent-1);color:var(--accent-1);
  text-shadow:0 0 4px rgba(0,240,255,.6);
  clip-path:none;
}
[data-theme="tron-neon"] button:not(.ghost):not(.danger):not(.dice-roll):not(.app-nav-toggle)::before,
[data-theme="tron-neon"] button:not(.ghost):not(.danger):not(.dice-roll):not(.app-nav-toggle)::after{
  content:none;
}
[data-theme="tron-neon"] button:not(.ghost):not(.danger):not(.dice-roll):not(.app-nav-toggle):hover{
  filter:none;background:var(--bg3);
  box-shadow:0 0 10px rgba(0,240,255,.5);
}
[data-theme="tron-neon"] button.ghost{border:1px solid var(--border)}
[data-theme="tron-neon"] .chip.on{
  background:rgba(0,240,255,.12);border-color:var(--accent-1);color:var(--accent-1);
}
/* Glow-pulse on the primary title accent -- Tron's signature "line lit
   up" animation. Reduced-motion gated per the global constraint, same
   pattern as matrix-terminal.css's cursor blink / 8bit.css's cursor blink. */
[data-theme="tron-neon"] h1 .grad{
  animation:tron-glow-pulse 2.4s ease-in-out infinite;
}
@keyframes tron-glow-pulse{
  0%,100%{text-shadow:0 0 6px rgba(0,240,255,.7),0 0 16px rgba(0,240,255,.4)}
  50%{text-shadow:0 0 10px rgba(0,240,255,.95),0 0 24px rgba(0,240,255,.6)}
}
@media (prefers-reduced-motion: reduce){
  [data-theme="tron-neon"] h1 .grad{animation:none}
}
:root:is([data-motion="reduced"],[data-motion="off"]) [data-theme="tron-neon"] h1 .grad{animation:none}
[data-theme="tron-neon"] h2{
  display:flex;align-items:center;gap:6px;
  text-transform:uppercase;letter-spacing:.06em;
}
[data-theme="tron-neon"] h2::before{content:"\25A0";color:var(--accent-1);font-size:.6em}
