/* Generated by tools/gen-catalog.cjs from the main client's style.css — do not edit. */
:root{
  --bg: #07070c;
  --green: #8b3fd6;
}
/* ─── THEMES (selectable backgrounds, ported verbatim) ──────────────── */
.bg-synthwave{background:radial-gradient(ellipse at 50% 100%,rgba(255,0,255,.09)0%,transparent 55%),linear-gradient(180deg,#0a0a18 0%,var(--bg) 100%);}
.bg-concert{background:radial-gradient(ellipse at 50% 80%,rgba(255,69,0,.1)0%,transparent 55%),linear-gradient(180deg,#0a0805 0%,var(--bg) 100%);}
.bg-vinyl{background:radial-gradient(ellipse at 20% 50%,rgba(139,69,19,.07)0%,transparent 55%);}
.bg-sunset{background:radial-gradient(ellipse at 50% 100%,rgba(255,107,53,.1)0%,transparent 55%),linear-gradient(180deg,#0a0505 0%,var(--bg) 100%);}
.bg-ocean{background:radial-gradient(ellipse at 50% 0%,rgba(0,119,190,.1)0%,transparent 55%),linear-gradient(180deg,#000d1a 0%,var(--bg) 100%);}
.bg-stars{background:radial-gradient(ellipse at 30% 20%,rgba(255,255,255,.015)0%,transparent 35%),linear-gradient(180deg,#050510 0%,var(--bg) 100%);}
.bg-forest{background:radial-gradient(ellipse at 30% 70%,rgba(34,81,0,.09)0%,transparent 55%);}
.bg-retro{background:radial-gradient(ellipse at 50% 50%,rgba(220,20,60,.09)0%,transparent 55%);}
.bg-neon{background:radial-gradient(ellipse at 50% 60%,rgba(0,255,255,.07)0%,transparent 55%),radial-gradient(ellipse at 80% 20%,rgba(255,0,255,.05)0%,transparent 45%),linear-gradient(180deg,#050510 0%,var(--bg) 100%);}
.bg-galaxy{background:radial-gradient(ellipse at 30% 50%,rgba(75,0,130,.1)0%,transparent 55%),radial-gradient(ellipse at 70% 20%,rgba(0,0,139,.07)0%,transparent 45%),linear-gradient(180deg,#020008 0%,var(--bg) 100%);}
.bg-lava{background:radial-gradient(ellipse at 50% 100%,rgba(255,50,0,.11)0%,transparent 55%),radial-gradient(ellipse at 20% 50%,rgba(255,100,0,.06)0%,transparent 45%),linear-gradient(180deg,#0f0500 0%,var(--bg) 100%);}
.bg-arctic{background:radial-gradient(ellipse at 50% 0%,rgba(180,230,255,.07)0%,transparent 55%),linear-gradient(180deg,#020a10 0%,var(--bg) 100%);}
.bg-matrix{background:radial-gradient(ellipse at 50% 50%,rgba(0,255,65,.06)0%,transparent 55%),linear-gradient(180deg,#000800 0%,var(--bg) 100%);}
.bg-gold{background:radial-gradient(ellipse at 50% 60%,rgba(245,166,35,.08)0%,transparent 55%),linear-gradient(180deg,#0a0800 0%,var(--bg) 100%);}
.bg-s1-retro{background:radial-gradient(ellipse at 50% 50%,rgba(220,20,60,.07)0%,transparent 55%),radial-gradient(ellipse at 80% 20%,rgba(255,140,0,.05)0%,transparent 45%);}
.bg-s1-neon{background:radial-gradient(ellipse at 50% 50%,rgba(255,0,255,.07)0%,transparent 55%),linear-gradient(180deg,#080010 0%,var(--bg) 100%);}
.bg-s1-arcade{background:radial-gradient(ellipse at 30% 70%,rgba(0,255,127,.07)0%,transparent 55%),radial-gradient(ellipse at 70% 30%,rgba(255,215,0,.05)0%,transparent 45%);}
.bg-s1-pixel{background:radial-gradient(ellipse at 50% 50%,rgba(100,100,255,.08)0%,transparent 55%),linear-gradient(180deg,#030310 0%,var(--bg) 100%);}
.bg-sakura { background: radial-gradient(ellipse at 50% 0%, rgba(255,182,193,.1) 0%, transparent 55%), radial-gradient(ellipse at 80% 50%, rgba(255,105,180,.07) 0%, transparent 45%), linear-gradient(180deg, #100810 0%, var(--bg) 100%); }
.bg-desert { background: radial-gradient(ellipse at 50% 100%, rgba(210,150,50,.1) 0%, transparent 55%), linear-gradient(180deg, #110900 0%, var(--bg) 100%); }
.bg-nebula { background: radial-gradient(ellipse at 30% 30%, rgba(100,0,200,.12) 0%, transparent 45%), radial-gradient(ellipse at 70% 70%, rgba(0,150,200,.1) 0%, transparent 45%), linear-gradient(180deg, #020010 0%, var(--bg) 100%); }
.bg-void   { background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 60%), linear-gradient(180deg, #000000 0%, #050505 100%); }
.bg-neon   { background: radial-gradient(ellipse at 50% 60%, rgba(0,255,255,.07) 0%, transparent 55%), radial-gradient(ellipse at 80% 20%, rgba(255,0,255,.05) 0%, transparent 45%), linear-gradient(180deg, #050510 0%, var(--bg) 100%); }
.bg-galaxy { background: radial-gradient(ellipse at 30% 50%, rgba(75,0,130,.1) 0%, transparent 55%), linear-gradient(180deg, #020008 0%, var(--bg) 100%); }
.bg-lava   { background: radial-gradient(ellipse at 50% 100%, rgba(255,50,0,.11) 0%, transparent 55%), linear-gradient(180deg, #0f0500 0%, var(--bg) 100%); }
.bg-arctic { background: radial-gradient(ellipse at 50% 0%, rgba(180,230,255,.07) 0%, transparent 55%), linear-gradient(180deg, #020a10 0%, var(--bg) 100%); }
.bg-matrix { background: radial-gradient(ellipse at 50% 50%, rgba(0,255,65,.06) 0%, transparent 55%), linear-gradient(180deg, #000800 0%, var(--bg) 100%); }
.bg-gold   { background: radial-gradient(ellipse at 50% 60%, rgba(245,166,35,.08) 0%, transparent 55%), linear-gradient(180deg, #0a0800 0%, var(--bg) 100%); }
.bg-s1-retro  { background: radial-gradient(ellipse at 50% 50%, rgba(220,20,60,.07) 0%, transparent 55%); }
.bg-s1-neon   { background: radial-gradient(ellipse at 50% 50%, rgba(255,0,255,.07) 0%, transparent 55%), linear-gradient(180deg, #080010 0%, var(--bg) 100%); }
.bg-s1-arcade { background: radial-gradient(ellipse at 30% 70%, rgba(0,255,127,.07) 0%, transparent 55%); }
.bg-s1-pixel  { background: radial-gradient(ellipse at 50% 50%, rgba(100,100,255,.08) 0%, transparent 55%), linear-gradient(180deg, #030310 0%, var(--bg) 100%); }
.bg-aurora    { background: radial-gradient(ellipse at 20% 50%, rgba(0,255,128,.12) 0%, transparent 50%), radial-gradient(ellipse at 80% 20%, rgba(0,100,255,.1) 0%, transparent 50%), radial-gradient(ellipse at 50% 90%, rgba(180,0,255,.08) 0%, transparent 50%), linear-gradient(180deg, #020810 0%, var(--bg) 100%); }
.bg-cyberpunk { background: radial-gradient(ellipse at 0% 100%, rgba(255,0,100,.12) 0%, transparent 45%), radial-gradient(ellipse at 100% 0%, rgba(0,200,255,.1) 0%, transparent 45%), linear-gradient(135deg, #0a0015 0%, #001020 50%, #0a0005 100%); }
.bg-miami     { background: linear-gradient(180deg, rgba(255,60,120,.12) 0%, rgba(255,140,0,.08) 40%, rgba(80,0,120,.1) 70%, transparent 100%), linear-gradient(180deg, #100010 0%, var(--bg) 100%); }
.bg-deep      { background: radial-gradient(ellipse at 50% 0%, rgba(0,50,200,.15) 0%, transparent 55%), radial-gradient(ellipse at 20% 80%, rgba(0,100,150,.08) 0%, transparent 45%), linear-gradient(180deg, #000515 0%, var(--bg) 100%); }
.bg-inferno   { background: radial-gradient(ellipse at 30% 100%, rgba(255,80,0,.15) 0%, transparent 50%), radial-gradient(ellipse at 70% 80%, rgba(255,200,0,.08) 0%, transparent 45%), radial-gradient(ellipse at 50% 0%, rgba(100,0,0,.12) 0%, transparent 55%), linear-gradient(180deg, #120000 0%, var(--bg) 100%); }
.bg-holographic { background: radial-gradient(ellipse at 0% 0%, rgba(255,0,255,.1) 0%, transparent 40%), radial-gradient(ellipse at 100% 0%, rgba(0,255,255,.1) 0%, transparent 40%), radial-gradient(ellipse at 50% 100%, rgba(255,255,0,.06) 0%, transparent 40%), linear-gradient(135deg, #080010 0%, #001008 50%, #100800 100%); }
.bg-stars     { background: radial-gradient(ellipse at 50% 0%, rgba(255,255,255,.04) 0%, transparent 60%), radial-gradient(ellipse at 20% 30%, rgba(180,180,255,.05) 0%, transparent 40%), radial-gradient(ellipse at 80% 60%, rgba(255,200,100,.04) 0%, transparent 40%), linear-gradient(180deg, #020208 0%, var(--bg) 100%); }
.bg-synthwave { background: radial-gradient(ellipse at 50% 0%, rgba(255,0,200,.1) 0%, transparent 50%), radial-gradient(ellipse at 50% 100%, rgba(100,0,200,.12) 0%, transparent 50%), linear-gradient(180deg, #0d001a 0%, var(--bg) 100%); }
.bg-concert   { background: radial-gradient(ellipse at 30% 20%, rgba(255,200,0,.08) 0%, transparent 40%), radial-gradient(ellipse at 70% 20%, rgba(255,50,0,.07) 0%, transparent 40%), linear-gradient(180deg, #100500 0%, var(--bg) 100%); }
.bg-vinyl     { background: radial-gradient(ellipse at 50% 50%, rgba(100,0,50,.1) 0%, transparent 60%), linear-gradient(180deg, #0a0008 0%, var(--bg) 100%); }
.bg-vaporwave   { background: radial-gradient(ellipse at 50% 0%, rgba(255,0,200,.15) 0%, transparent 50%), radial-gradient(ellipse at 0% 100%, rgba(0,200,255,.12) 0%, transparent 50%), radial-gradient(ellipse at 100% 100%, rgba(150,0,255,.1) 0%, transparent 50%), linear-gradient(180deg, #0d0015 0%, var(--bg) 100%); animation: bg-shift 8s ease-in-out infinite alternate; }
.bg-glitch      { background: repeating-linear-gradient(0deg, rgba(255,0,100,.03) 0px, rgba(255,0,100,.03) 2px, transparent 2px, transparent 8px), radial-gradient(ellipse at 30% 50%, rgba(0,255,255,.1) 0%, transparent 40%), radial-gradient(ellipse at 70% 50%, rgba(255,0,100,.1) 0%, transparent 40%), linear-gradient(180deg, #000 0%, var(--bg) 100%); }
.bg-toxic       { background: radial-gradient(ellipse at 50% 80%, rgba(100,255,0,.15) 0%, transparent 50%), radial-gradient(ellipse at 20% 20%, rgba(0,255,100,.08) 0%, transparent 40%), linear-gradient(180deg, #020800 0%, var(--bg) 100%); }
.bg-blood       { background: radial-gradient(ellipse at 50% 0%, rgba(180,0,0,.18) 0%, transparent 55%), radial-gradient(ellipse at 80% 100%, rgba(100,0,0,.12) 0%, transparent 45%), linear-gradient(180deg, #0f0000 0%, var(--bg) 100%); }
.bg-electric    { background: radial-gradient(ellipse at 50% 50%, rgba(255,255,0,.06) 0%, transparent 40%), radial-gradient(ellipse at 20% 80%, rgba(0,200,255,.12) 0%, transparent 45%), radial-gradient(ellipse at 80% 20%, rgba(255,200,0,.1) 0%, transparent 45%), linear-gradient(180deg, #050510 0%, var(--bg) 100%); }
.bg-jungle      { background: radial-gradient(ellipse at 30% 60%, rgba(0,180,50,.1) 0%, transparent 50%), radial-gradient(ellipse at 70% 30%, rgba(50,150,0,.08) 0%, transparent 45%), linear-gradient(180deg, #010a01 0%, var(--bg) 100%); }
.bg-volcano     { background: radial-gradient(ellipse at 50% 100%, rgba(255,100,0,.2) 0%, transparent 50%), radial-gradient(ellipse at 30% 80%, rgba(255,50,0,.12) 0%, transparent 40%), radial-gradient(ellipse at 50% 0%, rgba(50,0,0,.2) 0%, transparent 55%), linear-gradient(180deg, #0f0200 0%, var(--bg) 100%); }
.bg-space       { background: radial-gradient(ellipse at 50% 50%, rgba(0,0,80,.3) 0%, transparent 60%), radial-gradient(ellipse at 20% 20%, rgba(255,200,100,.04) 0%, transparent 30%), radial-gradient(ellipse at 80% 80%, rgba(100,0,200,.06) 0%, transparent 30%), linear-gradient(180deg, #000005 0%, var(--bg) 100%); }
.bg-prism       { background: radial-gradient(ellipse at 0% 0%, rgba(255,0,0,.08) 0%, transparent 35%), radial-gradient(ellipse at 50% 0%, rgba(0,255,0,.06) 0%, transparent 35%), radial-gradient(ellipse at 100% 0%, rgba(0,0,255,.08) 0%, transparent 35%), radial-gradient(ellipse at 50% 100%, rgba(255,255,0,.06) 0%, transparent 40%), linear-gradient(180deg, #030303 0%, var(--bg) 100%); }
.bg-biohazard   { background: repeating-radial-gradient(circle at 50% 50%, rgba(100,255,0,.03) 0px, rgba(100,255,0,.03) 30px, transparent 30px, transparent 60px), radial-gradient(ellipse at 50% 50%, rgba(0,200,0,.08) 0%, transparent 55%), linear-gradient(180deg, #010800 0%, var(--bg) 100%); }
.bg-midnight    { background: radial-gradient(ellipse at 50% 0%, rgba(50,50,150,.12) 0%, transparent 55%), radial-gradient(ellipse at 80% 50%, rgba(100,0,150,.08) 0%, transparent 45%), linear-gradient(180deg, #020210 0%, var(--bg) 100%); }
.bg-fireice     { background: radial-gradient(ellipse at 0% 100%, rgba(255,50,0,.15) 0%, transparent 45%), radial-gradient(ellipse at 100% 0%, rgba(0,200,255,.15) 0%, transparent 45%), linear-gradient(135deg, #100200 0%, #00050f 100%); }
.bg-ultraviolet { background: radial-gradient(ellipse at 50% 50%, rgba(180,0,255,.15) 0%, transparent 55%), radial-gradient(ellipse at 20% 20%, rgba(100,0,200,.1) 0%, transparent 40%), linear-gradient(180deg, #080012 0%, var(--bg) 100%); }
.bg-molten      { background: radial-gradient(ellipse at 50% 100%, rgba(255,150,0,.18) 0%, transparent 50%), radial-gradient(ellipse at 50% 50%, rgba(200,80,0,.1) 0%, transparent 40%), linear-gradient(180deg, #0f0800 0%, var(--bg) 100%); }
.bg-radioactive { background: radial-gradient(ellipse at 50% 50%, rgba(150,255,0,.1) 0%, transparent 50%), radial-gradient(ellipse at 30% 70%, rgba(100,200,0,.08) 0%, transparent 40%), linear-gradient(180deg, #030800 0%, var(--bg) 100%); animation: bg-pulse 3s ease-in-out infinite alternate; }
.bg-shadow      { background: radial-gradient(ellipse at 50% 50%, rgba(20,20,20,.8) 0%, transparent 60%), linear-gradient(180deg, #000000 0%, #050505 100%); }
.bg-crystal     { background: radial-gradient(ellipse at 30% 30%, rgba(200,240,255,.08) 0%, transparent 45%), radial-gradient(ellipse at 70% 70%, rgba(180,220,255,.06) 0%, transparent 45%), radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.03) 0%, transparent 55%), linear-gradient(180deg, #010810 0%, var(--bg) 100%); }
.bg-thunder     { background: radial-gradient(ellipse at 50% 0%, rgba(150,150,255,.1) 0%, transparent 50%), radial-gradient(ellipse at 30% 60%, rgba(255,255,100,.05) 0%, transparent 30%), linear-gradient(180deg, #020208 0%, var(--bg) 100%); }
.bg-underwater  { background: radial-gradient(ellipse at 50% 0%, rgba(0,100,200,.12) 0%, transparent 55%), radial-gradient(ellipse at 20% 80%, rgba(0,150,180,.08) 0%, transparent 45%), linear-gradient(180deg, #001020 0%, var(--bg) 100%); }
.bg-supernova   { background: radial-gradient(ellipse at 50% 50%, rgba(255,200,0,.2) 0%, rgba(255,50,0,.1) 30%, rgba(150,0,200,.08) 60%, transparent 80%), linear-gradient(180deg, #0a0005 0%, var(--bg) 100%); animation: bg-pulse 4s ease-in-out infinite alternate; }
/* Kept backgrounds (curated set) */
.bg-x53{background:radial-gradient(ellipse at 50% 0%,#D8262633 0%,transparent 55%),linear-gradient(180deg,#392A0E 0%,var(--bg) 100%);}
.bg-x54{background:radial-gradient(ellipse at 50% 0%,#D8B22633 0%,transparent 55%),linear-gradient(180deg,#25390E 0%,var(--bg) 100%);}
.bg-x55{background:radial-gradient(ellipse at 50% 0%,#73D82633 0%,transparent 55%),linear-gradient(180deg,#0E3918 0%,var(--bg) 100%);}
/* ═══════════════════════════════════════════════════════════════════════
   ETAPPE D — Name Effects + Profile Frames
   ═══════════════════════════════════════════════════════════════════════ */
/* Name effects */
.nfx-glow     { text-shadow: 0 0 10px currentColor, 0 0 20px currentColor; animation: nfx-glow-pulse 1.8s ease-in-out infinite; }
.nfx-shadow   { text-shadow: 2px 2px 0 rgba(0,0,0,.5); }
.nfx-gradient { background: linear-gradient(90deg,#1ed760,#00d4ff,#1ed760); background-size:200% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; animation: nfx-rainbow-move 3s linear infinite; }
.nfx-rainbow  { background: linear-gradient(90deg,#ff0040,#ff8c00,#ffe600,#1ed760,#00d4ff,#a64bff,#ff0040); background-size:200% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; animation: nfx-rainbow-move 3s linear infinite; }
.nfx-neon     { text-shadow:0 0 4px #fff,0 0 8px var(--green),0 0 16px var(--green); animation: nfx-flicker 2.2s infinite; }
.nfx-type     { border-right:2px solid currentColor; animation: nfx-caret 1s step-end infinite; }
.nfx-fire     { background:linear-gradient(0deg,#ff0000,#ff8c00,#ffe600); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; text-shadow:0 0 12px rgba(255,90,0,.6); animation: nfx-rainbow-move 2s linear infinite; background-size:auto 200%; }
.nfx-glitch   { position:relative; animation: nfx-glitch 1.5s infinite; }
.nfx-shimmer  { background: linear-gradient(110deg, currentColor 35%, #fff 50%, currentColor 65%); background-size:220% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; animation: nfx-shimmer-move 2.4s linear infinite; }
.nfx-wave span, .nfx-wave { display:inline-block; }
.nfx-wave { animation: nfx-wave-bob 1.6s ease-in-out infinite; }
.nfx-breathe  { animation: nfx-breathe 2.6s ease-in-out infinite; }
.nfx-bounce   { display:inline-block; animation: nfx-bounce 1.1s cubic-bezier(.28,.84,.42,1) infinite; }
.nfx-slide    { display:inline-block; animation: nfx-slide 2.2s ease-in-out infinite; }
.nfx-sparkle  { position:relative; animation: nfx-sparkle 1.6s ease-in-out infinite; }
.nfx-pop      { display:inline-block; animation: nfx-pop 1.3s ease-in-out infinite; }
.nfx-jelly    { display:inline-block; animation: nfx-jelly 1.4s ease-in-out infinite; transform-origin:center bottom; }
.nfx-heartbeat{ display:inline-block; animation: nfx-heartbeat 1.2s ease-in-out infinite; }
.nfx-flip     { display:inline-block; animation: nfx-flip 3s ease-in-out infinite; }
/* New name effects */
.nfx-aqua     { background: linear-gradient(90deg,#00e0d0,#3ed0ff,#9d6bff,#3ed0ff,#00e0d0); background-size:200% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; animation: nfx-rainbow-move 3.4s linear infinite; }
.nfx-gold     { background: linear-gradient(110deg,#a9750f 30%,#ffe9a8 50%,#a9750f 70%); background-size:220% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; animation: nfx-shimmer-move 2.6s linear infinite; }
.nfx-emboss   { text-shadow: 0 1px 0 rgba(255,255,255,.35), 0 -1px 1px rgba(0,0,0,.55); animation: nfx-emboss-bob 3s ease-in-out infinite; }
/* ── More name effects ── */
.nfx-frost    { background: linear-gradient(110deg,#a8e0ff 30%,#fff 50%,#7fc8ff 70%); background-size:220% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; text-shadow:0 0 10px rgba(140,210,255,.45); animation: nfx-shimmer-move 3s linear infinite; }
.nfx-lava     { background: linear-gradient(90deg,#ff2d00,#ff8c00,#ffd000,#ff2d00); background-size:200% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; text-shadow:0 0 12px rgba(255,80,0,.5); animation: nfx-rainbow-move 2.2s linear infinite; }
.nfx-cyber    { background: linear-gradient(90deg,#ff00d4,#00f0ff,#ff00d4); background-size:200% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; animation: nfx-rainbow-move 2.6s linear infinite; }
.nfx-electric { color:#bfe9ff; text-shadow:0 0 4px #fff,0 0 10px #3ad0ff,0 0 20px #1e90ff; animation: nfx-flicker 1.6s infinite; }
.nfx-vapor    { background: linear-gradient(90deg,#ff71ce,#01cdfe,#b967ff,#ff71ce); background-size:220% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; animation: nfx-rainbow-move 4s linear infinite; }
.nfx-toxic    { color:#aaff00; text-shadow:0 0 6px #aaff00,0 0 14px #5fbf00; animation: nfx-glow-pulse 1.6s ease-in-out infinite; }
.nfx-galaxy   { background: linear-gradient(90deg,#7b2fff,#3ad0ff,#ff5edb,#7b2fff); background-size:220% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; text-shadow:0 0 12px rgba(123,47,255,.4); animation: nfx-rainbow-move 3.6s linear infinite; }
.nfx-chrome   { background: linear-gradient(110deg,#9aa0aa 30%,#fff 50%,#9aa0aa 70%); background-size:220% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; animation: nfx-shimmer-move 2.4s linear infinite; }
.nfx-candy    { background: linear-gradient(90deg,#ff4d8d,#ff9ec4,#ffd24d,#ff4d8d); background-size:200% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; animation: nfx-rainbow-move 3s linear infinite; }
.nfx-ghost    { animation: nfx-ghost 2.4s ease-in-out infinite; }
/* ═══════════════════════════════════════════════════════════════════════
   EXCLUSIVE (owner-only) cosmetics
   ═══════════════════════════════════════════════════════════════════════ */
.nfx-owner {
    background: linear-gradient(90deg,#f5a623,#fff3c4,#ff5ab3,#a64bff,#f5a623);
    background-size: 250% auto;
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    animation: nfx-rainbow-move 3s linear infinite;
    filter: drop-shadow(0 0 8px rgba(245,166,35,.5));
}
@keyframes nfx-rainbow-move { to { background-position:200% center; } }
@keyframes nfx-flicker { 0%,18%,22%,25%,53%,57%,100%{opacity:1} 20%,24%,55%{opacity:.5} }
@keyframes nfx-caret { 50%{border-color:transparent} }
@keyframes nfx-glitch { 0%,100%{text-shadow:1px 0 #00d4ff,-1px 0 #ff0040} 25%{text-shadow:-2px 0 #00d4ff,2px 0 #ff0040} 50%{text-shadow:2px 0 #00d4ff,-2px 0 #ff0040} }
@keyframes nfx-glow-pulse { 0%,100%{text-shadow:0 0 6px currentColor,0 0 12px currentColor} 50%{text-shadow:0 0 14px currentColor,0 0 28px currentColor} }
@keyframes nfx-shimmer-move { to { background-position:-220% center; } }
@keyframes nfx-wave-bob { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-3px)} }
@keyframes nfx-breathe { 0%,100%{opacity:1;letter-spacing:0} 50%{opacity:.72;letter-spacing:.5px} }
@keyframes nfx-bounce { 0%,100%{transform:translateY(0)} 30%{transform:translateY(-4px)} 50%{transform:translateY(0)} }
@keyframes nfx-slide { 0%,100%{transform:translateX(0)} 50%{transform:translateX(4px)} }
@keyframes nfx-sparkle { 0%,100%{text-shadow:0 0 4px #fff,0 0 8px var(--green)} 50%{text-shadow:0 0 8px #fff,0 0 18px var(--green),0 0 26px #fff} }
@keyframes nfx-pop { 0%,100%{transform:scale(1)} 45%{transform:scale(1.12)} }
@keyframes nfx-jelly { 0%,100%{transform:scale(1,1)} 30%{transform:scale(1.1,.85)} 50%{transform:scale(.9,1.12)} 70%{transform:scale(1.03,.97)} }
@keyframes nfx-heartbeat { 0%,100%{transform:scale(1)} 14%{transform:scale(1.14)} 28%{transform:scale(1)} 42%{transform:scale(1.1)} 56%{transform:scale(1)} }
@keyframes nfx-flip { 0%,80%,100%{transform:rotateY(0)} 90%{transform:rotateY(180deg)} }
@keyframes nfx-ghost { 0%,100%{opacity:1;filter:blur(0)} 50%{opacity:.45;filter:blur(.6px)} }
@keyframes nfx-emboss-bob { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-1px)} }
/* --- authored in tools/items.json --- */
.bg-b-daybreak{background:radial-gradient(120% 80% at 50% 108%,rgba(251,191,36,.20) 0%,transparent 62%),radial-gradient(90% 60% at 20% 92%,rgba(244,114,182,.13) 0%,transparent 60%),linear-gradient(180deg,#0b1024 0%,#160f22 45%,#1c1116 78%,#241408 100%);background-size:100% 100%,100% 100%,100% 220%;background-position:50% 100%,20% 100%,50% 0%;animation:daybreak 90s ease-in-out infinite alternate}
@keyframes daybreak{from{background-position:50% 100%,20% 100%,50% 0%}to{background-position:50% 92%,26% 96%,50% 18%}}
.nfx-x-neon{padding:.4em .45em;margin:-.4em -.45em;animation:nfx-x-neon 2.4s ease-in-out infinite}@keyframes nfx-x-neon{0%,100%{text-shadow:0 0 2px currentColor,0 0 5px currentColor}50%{text-shadow:0 0 1px currentColor,0 0 3px currentColor}}
.nfx-x-ripple{background:linear-gradient(100deg,currentColor 35%,#ffffff 50%,currentColor 65%);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:nfx-x-ripple 3.2s linear infinite}@keyframes nfx-x-ripple{0%{background-position:120% 0}100%{background-position:-20% 0}}
.nfx-x-static{animation:nfx-x-static 4s steps(1,end) infinite}@keyframes nfx-x-static{0%,7%,9%,44%,46%,100%{opacity:1}8%{opacity:.35}45%{opacity:.55}72%{opacity:.4}73%{opacity:1}}
.bg-b-graphite{background:radial-gradient(120% 70% at 50% -10%,rgba(226,232,240,.10) 0%,transparent 60%),linear-gradient(180deg,#0b0b10 0%,#07070c 100%)}
.bg-b-undertow{background:radial-gradient(130% 75% at 50% 112%,rgba(45,212,191,.16) 0%,transparent 62%),radial-gradient(80% 50% at 78% 100%,rgba(56,189,248,.09) 0%,transparent 58%),linear-gradient(180deg,#06070d 0%,#050810 100%)}
.bg-b-midnight{background:radial-gradient(140% 90% at 50% -20%,rgba(99,102,241,.13) 0%,transparent 58%),radial-gradient(100% 60% at 50% 118%,rgba(30,64,175,.12) 0%,transparent 60%),linear-gradient(180deg,#05050b 0%,#04040a 100%)}
.nfx-x-emboss{text-shadow:0 -1px 0 rgba(255,255,255,.45),0 1px 1px rgba(0,0,0,.75)}
.bg-b-rosewood{background:radial-gradient(110% 70% at 12% 105%,rgba(244,63,94,.15) 0%,transparent 60%),radial-gradient(80% 55% at 88% 0%,rgba(217,72,15,.10) 0%,transparent 58%),linear-gradient(180deg,#0b0709 0%,#07060a 100%)}
.nfx-x-frost{text-shadow:0 0 1px rgba(255,255,255,.9),0 2px 7px rgba(0,0,0,.95)}
.nfx-x-gilded{background:linear-gradient(180deg,#fde68a 0%,#f59e0b 52%,#a16207 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 1px 2px rgba(0,0,0,.55)}
.bg-b-static{background:radial-gradient(circle,rgba(148,163,184,.10) 1px,transparent 1px) 0 0/14px 14px,radial-gradient(110% 70% at 50% 0%,rgba(148,163,184,.08) 0%,transparent 60%),linear-gradient(180deg,#08080e 0%,#06060b 100%)}
.bg-b-ultraviolet{background:radial-gradient(120% 75% at 50% -12%,rgba(168,85,247,.22) 0%,transparent 58%),radial-gradient(70% 45% at 15% 8%,rgba(217,70,239,.10) 0%,transparent 55%),linear-gradient(180deg,#0a0612 0%,#06050c 100%)}
.nfx-x-drop{text-shadow:2px 2px 0 rgba(4,4,10,.85)}