/* =====================================================================
   NewSpace themes. Each theme sets the variables from profile.css,
   then adds its own decorations. User color picks still win because
   they are applied with a more specific selector.
   ===================================================================== */

/* ===================== CLASSIC ===================== */

/* MySpace Classic (2005) */
body.theme-classic {
  --bg: #e5e5e5;
  --wrap-bg: #ffffff;
  --cell-head: #b1d0f0;
  --cell-head-text: #336699;
  --cell-bg: #d5e8fb;
}
.theme-classic .pf-name { font-size: 1.5em; }
.theme-classic .pf-network { border-color: #6699cc; }
.theme-classic .pf-comment-who { background: #ffcc99; }
.theme-classic .pf-comment-body { background: #f9e7d6; }

/* Scene Queen (2006) */
body.theme-scene {
  --bg: #000;
  --bg-image: repeating-linear-gradient(115deg, #000 0 18px, #fff 18px 26px, #000 26px 40px, #fff 40px 44px);
  --text: #fff;
  --muted: #ff9bd2;
  --link: #39ff14;
  --box: #000;
  --border: #ff1493;
  --border-w: 3px;
  --border-style: dashed;
  --head-bg: #ff1493;
  --head-text: #000;
  --head2-bg: #39ff14;
  --head2-text: #000;
  --accent: #ff1493;
  --cell-head: #ff1493;
  --cell-head-text: #000;
  --cell-bg: #1a1a1a;
  --name: #ff1493;
  --font: "Fredoka", "Comic Sans MS", sans-serif;
  --radius: 10px;
  --player-accent: #ff1493;
}
.theme-scene .pf-name { text-shadow: 3px 3px 0 #39ff14, 6px 6px 0 #000; letter-spacing: 1px; font-size: 2.1em; }
.theme-scene .pf-name::before { content: "\2605 "; color: #39ff14; }
.theme-scene .pf-name::after { content: " \2605"; color: #39ff14; }
.theme-scene .pf-identity { background: #000; border: 3px dashed #39ff14; border-radius: 10px; padding: 10px; }
.theme-scene .pf-avatar { border: 3px solid #39ff14; transform: rotate(-3deg); }
.theme-scene .pf-box > h2 { text-transform: lowercase; letter-spacing: 1px; }

/* Emo Heartbreak (2006) */
body.theme-emo {
  --bg: #0b0b0b;
  --bg-image: repeating-linear-gradient(90deg, #0b0b0b 0 40px, #120000 40px 42px);
  --text: #cfcfcf;
  --muted: #8a8a8a;
  --link: #ff2a2a;
  --box: #141414;
  --border: #3a3a3a;
  --head-bg: #8b0000;
  --head-text: #f0f0f0;
  --head2-bg: #222;
  --head2-text: #ff2a2a;
  --accent: #8b0000;
  --cell-head: #2a0000;
  --cell-head-text: #ff5a5a;
  --cell-bg: #1b1b1b;
  --name: #e0e0e0;
  --font: Verdana, sans-serif;
  --head-font: "Special Elite", "Courier New", monospace;
  --player-accent: #8b0000;
}
.theme-emo .pf-name { font-size: 2em; letter-spacing: 2px; text-shadow: 0 0 8px #ff000088; }
.theme-emo .pf-name::after { content: " </3"; color: #8b0000; font-size: .6em; }
.theme-emo .pf-avatar { filter: grayscale(.6) contrast(1.1); border-color: #8b0000; }
.theme-emo .pf-network h2 { font-family: var(--head-font); }

/* Glitter Princess (2006) */
body.theme-glitter {
  --bg: #ff9ad5;
  --bg-image: radial-gradient(circle, #fff 1px, transparent 2px), radial-gradient(circle, #ffe6f5 1px, transparent 1.5px), linear-gradient(135deg, #ff9ad5, #ffc2e8 50%, #e7a6ff);
  --bg-size: 18px 18px, 11px 11px, 100% 100%;
  --bg-attach: fixed;
  --text: #5a1846;
  --muted: #a04d87;
  --link: #e0007f;
  --box: #fff0f8;
  --border: #ff6ac1;
  --border-w: 2px;
  --head-bg: linear-gradient(90deg, #ff4fb3, #ff8fd1, #ff4fb3);
  --head-text: #fff;
  --head2-bg: linear-gradient(90deg, #d68bff, #ff9fd8);
  --head2-text: #fff;
  --accent: #ff4fb3;
  --name: #e0007f;
  --head-font: "Pacifico", cursive;
  --font: Verdana, sans-serif;
  --radius: 16px;
  --shadow: 0 0 12px #ffffffaa;
  --player-bg: #ff4fb3;
  --player-accent: #fff;
}
.theme-glitter { animation: ns-twinkle-bg 3s linear infinite; }
@keyframes ns-twinkle-bg { 50% { background-position: 9px 9px, 4px 7px, 0 0; } }
.theme-glitter .pf-box > h2 { font-weight: normal; text-shadow: 0 1px 2px #b0006a; }
.theme-glitter .pf-name { font-weight: normal; font-size: 2.2em; text-shadow: 0 0 6px #fff, 0 0 12px #ff9ad5; }
.theme-glitter .pf-avatar { border: 4px solid #fff; box-shadow: 0 0 10px #ff4fb3; border-radius: 16px; }

/* Starry Night (2005) */
body.theme-starry {
  --bg: #0a1033;
  --bg-image: radial-gradient(circle at 85% 12%, #fff6cf 0 28px, #f4c54255 30px, transparent 60px),
    radial-gradient(1.5px 1.5px at 20px 30px, #fff, transparent), radial-gradient(1px 1px at 90px 120px, #fff, transparent),
    radial-gradient(1.5px 1.5px at 150px 60px, #cfd8ff, transparent), radial-gradient(1px 1px at 60px 170px, #fff, transparent),
    radial-gradient(2px 2px at 180px 190px, #fff, transparent), linear-gradient(#050820, #18225e);
  --bg-size: 100% 100%, 200px 200px, 200px 200px, 200px 200px, 200px 200px, 200px 200px, 100% 100%;
  --bg-repeat: no-repeat, repeat, repeat, repeat, repeat, repeat, no-repeat;
  --bg-attach: fixed;
  --text: #e8ecff;
  --muted: #9aa6d9;
  --link: #ffd966;
  --box: #121a4a;
  --box-alpha: 85%;
  --border: #3b4a9a;
  --head-bg: #1f2b73;
  --head-text: #ffd966;
  --head2-bg: #1f2b73;
  --head2-text: #ffd966;
  --accent: #f4c542;
  --cell-head: #1a246a;
  --cell-head-text: #ffd966;
  --cell-bg: #0f1640;
  --name: #ffe9a3;
  --font: Georgia, serif;
  --radius: 6px;
  --player-bg: #0a1033;
  --player-accent: #f4c542;
}
.theme-starry .pf-name { text-shadow: 0 0 10px #f4c54299; }
.theme-starry .pf-name::before { content: "\263E  "; color: #f4c542; }

/* Digital Rain (2005) */
body.theme-matrix {
  --bg: #000;
  --bg-image: repeating-linear-gradient(90deg, transparent 0 22px, #00ff4108 22px 24px), linear-gradient(#000, #001a05);
  --bg-attach: fixed;
  --text: #00ff41;
  --muted: #0a9c33;
  --link: #a8ffbf;
  --box: #000a02;
  --border: #00ff41;
  --head-bg: #00ff41;
  --head-text: #000;
  --head2-bg: #003b10;
  --head2-text: #00ff41;
  --accent: #00ff41;
  --cell-head: #003b10;
  --cell-head-text: #7dff9b;
  --cell-bg: #001405;
  --name: #00ff41;
  --font: "VT323", "Courier New", monospace;
  --font-size: 16px;
  --player-bg: #001405;
  --player-text: #00ff41;
  --player-accent: #00ff41;
}
.theme-matrix .pf-name { text-shadow: 0 0 8px #00ff41; }
.theme-matrix .pf-name::before { content: "> "; }
.theme-matrix .pf-name span::after { content: "_"; animation: ns-blink 1s steps(2, start) infinite; }
.theme-matrix .pf-box { box-shadow: 0 0 8px #00ff4155 inset; }
.theme-matrix .pf-avatar { filter: sepia(1) hue-rotate(70deg) saturate(3); }

/* Gothic Rose (2006) */
body.theme-goth {
  --bg: #0d0012;
  --bg-image: radial-gradient(ellipse at top, #3a0050, transparent 60%), linear-gradient(#1a0024, #000);
  --bg-attach: fixed;
  --text: #e4cfee;
  --muted: #a98bb8;
  --link: #c77dff;
  --box: #14001c;
  --box-alpha: 90%;
  --border: #5b0a7a;
  --head-bg: linear-gradient(#5b0a7a, #2c0040);
  --head-text: #f3e6ff;
  --head2-bg: linear-gradient(#2c0040, #14001c);
  --head2-text: #c77dff;
  --accent: #8a2be2;
  --name: #e6ccff;
  --font: Georgia, "Times New Roman", serif;
  --name-font: "UnifrakturMaguntia", serif;
  --player-bg: #14001c;
  --player-accent: #8a2be2;
}
.theme-goth .pf-name { font-weight: normal; font-size: 2.4em; text-shadow: 0 0 12px #8a2be2; }
.theme-goth .pf-name::after { content: " \1F940"; font-size: .6em; }
.theme-goth .pf-box > h2 { font-variant: small-caps; letter-spacing: 1px; }

/* Skate Punk (2006) */
body.theme-skater {
  --bg: #111;
  --bg-image: repeating-conic-gradient(#111 0 25%, #f2f2f2 0 50%);
  --bg-size: 48px 48px;
  --text: #111;
  --muted: #555;
  --link: #e65c00;
  --box: #fff;
  --border: #111;
  --border-w: 3px;
  --head-bg: #ff6a00;
  --head-text: #111;
  --head2-bg: #111;
  --head2-text: #ff6a00;
  --accent: #ff6a00;
  --cell-head: #ffe0c7;
  --cell-head-text: #111;
  --cell-bg: #f6f6f6;
  --head-font: "Permanent Marker", "Comic Sans MS", cursive;
  --font: Arial, sans-serif;
  --shadow: 5px 5px 0 #111;
  --player-accent: #ff6a00;
}
.theme-skater .pf-identity { background: #fff; border: 3px solid #111; box-shadow: 5px 5px 0 #111; padding: 10px; }
.theme-skater .pf-name { font-weight: normal; font-size: 2.2em; transform: rotate(-2deg); }
.theme-skater .pf-box > h2 { font-weight: normal; font-size: 1.2em; }
.theme-skater .pf-network { background: #ff6a00; }

/* Neon Rave (2007) */
body.theme-rave {
  --bg: #000;
  --bg-image: linear-gradient(120deg, #ff00ff, #00ffff, #ffff00, #00ff66, #ff00ff);
  --bg-size: 400% 400%;
  --bg-attach: fixed;
  --text: #fff;
  --muted: #c9c9ff;
  --link: #00ffff;
  --box: #000;
  --box-alpha: 88%;
  --border: #ff00ff;
  --border-w: 2px;
  --head-bg: linear-gradient(90deg, #ff00ff, #00ffff);
  --head-text: #000;
  --head2-bg: linear-gradient(90deg, #ffff00, #00ff66);
  --head2-text: #000;
  --accent: #00ffff;
  --cell-head: #1a001a;
  --cell-head-text: #ff66ff;
  --cell-bg: #0a0a0a;
  --name: #fff;
  --font: Verdana, sans-serif;
  --head-font: "Orbitron", Verdana, sans-serif;
  --radius: 8px;
  --shadow: 0 0 10px #ff00ff, 0 0 20px #00ffff66;
  --player-accent: #ff00ff;
}
.theme-rave { animation: ns-rave-bg 12s ease infinite; }
@keyframes ns-rave-bg { 50% { background-position: 100% 50%; } }
.theme-rave .pf-name { text-transform: uppercase; text-shadow: 0 0 6px #ff00ff, 0 0 14px #00ffff, 0 0 24px #ffff00; }
.theme-rave .pf-identity { background: #000c; border-radius: 8px; padding: 10px; box-shadow: var(--shadow); }
.theme-rave .pf-box:nth-of-type(even) { border-color: #00ffff; }

/* Ice Cold Bling (2007) */
body.theme-bling {
  --bg: #050505;
  --bg-image: radial-gradient(circle at 50% 0, #2a2205, transparent 60%), repeating-linear-gradient(45deg, #070707 0 6px, #0b0b0b 6px 12px);
  --text: #f5f5f5;
  --muted: #b5a77a;
  --link: #ffd700;
  --box: #101010;
  --border: #b8860b;
  --border-w: 2px;
  --head-bg: linear-gradient(#fff2a8, #ffd700 40%, #b8860b);
  --head-text: #1a1200;
  --head2-bg: linear-gradient(#e6e6e6, #9e9e9e);
  --head2-text: #111;
  --accent: #ffd700;
  --cell-head: #2b2305;
  --cell-head-text: #ffd700;
  --cell-bg: #161616;
  --name: #ffd700;
  --head-font: "Cinzel", Georgia, serif;
  --font: Arial, sans-serif;
  --radius: 4px;
  --shadow: 0 0 0 1px #000, 0 0 14px #ffd70033;
  --player-bg: #000;
  --player-accent: #ffd700;
}
.theme-bling .pf-name {
  font-size: 2.2em; letter-spacing: 2px;
  background: linear-gradient(#fff7c2, #ffd700 45%, #9c6f00 55%, #ffe680);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.theme-bling .pf-name::after { content: " \1F48E"; -webkit-text-fill-color: initial; }

/* Band Profile (2007) */
body.theme-band {
  --bg: #1c1c1c;
  --bg-image: linear-gradient(#000 0 140px, #1c1c1c 140px);
  --text: #ddd;
  --muted: #999;
  --link: #ff5a4f;
  --box: #2a2a2a;
  --border: #3d3d3d;
  --head-bg: #000;
  --head-text: #ff5a4f;
  --head2-bg: #000;
  --head2-text: #fff;
  --accent: #ee3333;
  --cell-head: #333;
  --cell-head-text: #ff5a4f;
  --cell-bg: #262626;
  --name: #fff;
  --font: Arial, Helvetica, sans-serif;
  --head-font: Impact, "Arial Black", sans-serif;
  --player-bg: #000;
  --player-accent: #ee3333;
}
.theme-band .pf-name { font-weight: normal; font-size: 2.6em; text-transform: uppercase; letter-spacing: 1px; }
.theme-band .pf-box > h2 { font-weight: normal; letter-spacing: 1px; text-transform: uppercase; }
.theme-band .pf-player { order: -1; border-color: #ee3333; }

/* Army Camo (2006) */
body.theme-camo {
  --bg: #6b7b3a;
  --bg-image: radial-gradient(ellipse 40px 26px at 30% 30%, #4b5320 98%, transparent), radial-gradient(ellipse 34px 22px at 72% 62%, #3b2f1e 98%, transparent),
    radial-gradient(ellipse 30px 18px at 20% 80%, #8b8f4a 98%, transparent), radial-gradient(ellipse 26px 30px at 80% 20%, #2d3418 98%, transparent);
  --bg-size: 120px 110px, 140px 120px, 100px 130px, 150px 100px;
  --text: #1e1e12;
  --muted: #4d4a33;
  --link: #5a3d10;
  --box: #d8cfa8;
  --border: #3b3a22;
  --border-w: 2px;
  --head-bg: #4b5320;
  --head-text: #f2ecd0;
  --head2-bg: #3b2f1e;
  --head2-text: #e8d9a0;
  --accent: #6b5a2a;
  --cell-head: #c3b98d;
  --cell-head-text: #2a2a16;
  --cell-bg: #e5ddba;
  --name: #f2ecd0;
  --head-font: "Black Ops One", Impact, sans-serif;
  --font: "Courier New", monospace;
  --player-bg: #2d3418;
  --player-accent: #8b8f4a;
}
.theme-camo .pf-identity { background: #3b3a22e6; color: #f2ecd0; padding: 10px; border: 2px solid #1e1e12; }
.theme-camo .pf-identity a { color: #e8d9a0; }
.theme-camo .pf-name { font-weight: normal; text-transform: uppercase; letter-spacing: 2px; }
.theme-camo .pf-box > h2 { font-weight: normal; letter-spacing: 1px; text-transform: uppercase; }

/* ===================== NEW ===================== */

/* Y2K Chrome */
body.theme-y2k {
  --bg: #cfd9e3;
  --bg-image: radial-gradient(circle at 20% 10%, #ffffff, transparent 40%), radial-gradient(circle at 90% 80%, #b3d4ff, transparent 40%), linear-gradient(135deg, #dfe9f3, #9fb4c7 50%, #f5f7fa);
  --bg-attach: fixed;
  --text: #1b2a3a;
  --muted: #5a6b7c;
  --link: #1f6fe0;
  --box: #f4f7fb;
  --box-alpha: 85%;
  --border: #9fb4c7;
  --head-bg: linear-gradient(#ffffff, #cfe0f7 45%, #7aa7e6 55%, #b8d4ff);
  --head-text: #10325e;
  --head2-bg: linear-gradient(#ffffff, #e2e6ea 45%, #a9b3bd 55%, #dfe4ea);
  --head2-text: #1b2a3a;
  --accent: #2f7cf6;
  --font: Tahoma, Verdana, sans-serif;
  --head-font: "Audiowide", Tahoma, sans-serif;
  --radius: 18px;
  --shadow: 0 6px 18px #4a6a9033, inset 0 1px 0 #fff;
  --player-bg: linear-gradient(#5a6b7c, #1b2a3a);
  --player-accent: #2f7cf6;
}
.theme-y2k .pf-name {
  font-family: var(--head-font); font-weight: normal; font-size: 2.2em;
  background: linear-gradient(#ffffff, #8ea4bb 48%, #39516b 52%, #c9d6e3);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 1px 0 #fff) drop-shadow(0 2px 3px #0004);
}
.theme-y2k .pf-box > h2 { border-radius: 18px 18px 0 0; font-weight: normal; text-shadow: 0 1px 0 #fff; }
.theme-y2k .pf-avatar { border-radius: 18px; border: 3px solid #fff; box-shadow: 0 4px 12px #0003; }
.theme-y2k .np-player { background: linear-gradient(#5a6b7c, #1b2a3a); }

/* Vaporwave */
body.theme-vaporwave {
  --bg: #2b1055;
  --bg-image: linear-gradient(transparent 62%, #ff71ce22 62%), repeating-linear-gradient(90deg, transparent 0 58px, #01cdfe66 58px 60px),
    radial-gradient(circle at 50% 58%, #ffd319 0 90px, #ff71ce 120px, transparent 180px), linear-gradient(#2b1055, #7a2a8f 45%, #d53a9d 62%, #1d0b3a 62.2%);
  --bg-size: 100% 100%, 60px 100%, 100% 100%, 100% 100%;
  --bg-attach: fixed;
  --text: #fff6fb;
  --muted: #f8b9e3;
  --link: #01cdfe;
  --box: #1d0b3a;
  --box-alpha: 82%;
  --border: #ff71ce;
  --border-w: 2px;
  --head-bg: linear-gradient(90deg, #01cdfe, #b967ff);
  --head-text: #1d0b3a;
  --head2-bg: linear-gradient(90deg, #ff71ce, #fffb96);
  --head2-text: #1d0b3a;
  --accent: #ff71ce;
  --cell-head: #3a1670;
  --cell-head-text: #01cdfe;
  --cell-bg: #26104a;
  --name: #01cdfe;
  --font: "VT323", monospace;
  --font-size: 17px;
  --name-font: "Monoton", cursive;
  --shadow: 6px 6px 0 #01cdfe55;
  --player-bg: #1d0b3a;
  --player-accent: #ff71ce;
}
.theme-vaporwave .pf-name { font-weight: normal; font-size: 2.3em; letter-spacing: 4px; text-shadow: 3px 3px 0 #ff71ce; }
.theme-vaporwave .pf-box > h2 { letter-spacing: .3em; text-transform: uppercase; font-weight: normal; }
.theme-vaporwave .pf-network h2 { letter-spacing: .25em; }

/* Cottagecore */
body.theme-cottagecore {
  --bg: #f3ead7;
  --bg-image: repeating-linear-gradient(0deg, #c6d1a733 0 14px, transparent 14px 28px), repeating-linear-gradient(90deg, #c6d1a733 0 14px, transparent 14px 28px);
  --text: #3f3a2f;
  --muted: #7d735c;
  --link: #a4503a;
  --box: #fffaf0;
  --border: #c9b994;
  --head-bg: #8a9a5b;
  --head-text: #fffaf0;
  --head2-bg: #e8d9b5;
  --head2-text: #6b4f2e;
  --accent: #8a9a5b;
  --cell-head: #ecefdc;
  --cell-head-text: #55613a;
  --cell-bg: #fbf6ea;
  --name: #6b4f2e;
  --font: "Lora", Georgia, serif;
  --font-size: 14px;
  --head-font: "Playfair Display", Georgia, serif;
  --radius: 12px;
  --shadow: 0 2px 0 #e0d2b0;
  --player-bg: #6b4f2e;
  --player-accent: #c6d1a7;
}
.theme-cottagecore .pf-name { font-size: 2.3em; font-style: italic; }
.theme-cottagecore .pf-name::before { content: "\1F33F "; font-style: normal; }
.theme-cottagecore .pf-avatar { border-radius: 50% 50% 12px 12px; border: 4px solid #fffaf0; box-shadow: 0 0 0 2px #c9b994; }
.theme-cottagecore .pf-box { border-style: dashed; }

/* Brutalist */
body.theme-brutalist {
  --bg: #f2f2f2;
  --text: #000;
  --muted: #444;
  --link: #0000ee;
  --box: #fff;
  --border: #000;
  --border-w: 3px;
  --head-bg: #ffe600;
  --head-text: #000;
  --head2-bg: #000;
  --head2-text: #fff;
  --accent: #ff3d00;
  --cell-head: #000;
  --cell-head-text: #fff;
  --cell-bg: #fff;
  --name: #000;
  --font: "Space Mono", "Courier New", monospace;
  --font-size: 13px;
  --shadow: 8px 8px 0 #000;
  --player-bg: #000;
  --player-accent: #ff3d00;
}
.theme-brutalist .pf-wrap { max-width: 1000px; }
.theme-brutalist .pf-name { font-size: 3.6em; line-height: .9; text-transform: uppercase; letter-spacing: -2px; overflow-wrap: anywhere; }
.theme-brutalist .pf-box > h2 { text-transform: uppercase; font-size: 1.15em; border-bottom: 3px solid #000; }
.theme-brutalist .pf-avatar { border: 3px solid #000; filter: grayscale(1) contrast(1.3); border-radius: 0; }
.theme-brutalist .pf-network { background: #ff3d00; }
.theme-brutalist .pf-network h2 { color: #fff; text-transform: uppercase; font-size: 1.8em; }
.theme-brutalist .pf-table { border-spacing: 0; }
.theme-brutalist .pf-table th, .theme-brutalist .pf-table td { border-bottom: 2px solid #000; }

/* Aurora Glass */
body.theme-aurora {
  --bg: #0f2027;
  --bg-image: radial-gradient(ellipse at 20% 20%, #00c9a7aa, transparent 50%), radial-gradient(ellipse at 80% 30%, #7b2ff7aa, transparent 50%),
    radial-gradient(ellipse at 50% 90%, #2c5364, transparent 60%), linear-gradient(135deg, #0f2027, #203a43, #2c5364);
  --bg-size: 200% 200%, 200% 200%, 100% 100%, 100% 100%;
  --bg-attach: fixed;
  --text: #fff;
  --muted: #c8e6e0;
  --link: #7cf5d9;
  --box: #ffffff;
  --box-alpha: 12%;
  --border: #ffffff40;
  --head-bg: #ffffff1f;
  --head-text: #fff;
  --head2-bg: #ffffff1f;
  --head2-text: #7cf5d9;
  --accent: #7cf5d9;
  --cell-head: #ffffff1a;
  --cell-head-text: #7cf5d9;
  --cell-bg: #ffffff0d;
  --name: #fff;
  --font: "Space Grotesk", system-ui, sans-serif;
  --font-size: 14px;
  --radius: 20px;
  --shadow: 0 8px 32px #00000040;
  --player-bg: #ffffff1a;
  --player-accent: #7cf5d9;
}
.theme-aurora { animation: ns-aurora 18s ease-in-out infinite alternate; }
@keyframes ns-aurora { to { background-position: 100% 60%, 0% 100%, 0 0, 0 0; } }
.theme-aurora .pf-box, .theme-aurora .pf-network, .theme-aurora .pf-marquee { -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4); }
.theme-aurora .pf-identity { background: #ffffff14; border: 1px solid #ffffff40; border-radius: 20px; padding: 14px; -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.theme-aurora .pf-name { font-size: 2.2em; letter-spacing: -.5px; }
.theme-aurora .pf-avatar { border-radius: 16px; border: 1px solid #ffffff60; }
.theme-aurora .pf-box > h2 { font-weight: 600; letter-spacing: .3px; }
.theme-aurora .pf-comment-form textarea { background: #ffffff1a; color: #fff; }

/* CRT Terminal */
body.theme-crt {
  --bg: #0d0800;
  --bg-image: radial-gradient(ellipse at center, #1f1400, #0d0800 75%);
  --bg-attach: fixed;
  --text: #ffb000;
  --muted: #b37b00;
  --link: #ffd27a;
  --box: #140c00;
  --border: #ffb000;
  --border-style: double;
  --border-w: 4px;
  --head-bg: #ffb000;
  --head-text: #140c00;
  --head2-bg: #3a2600;
  --head2-text: #ffb000;
  --accent: #ffb000;
  --cell-head: #2a1b00;
  --cell-head-text: #ffd27a;
  --cell-bg: #1a1000;
  --name: #ffb000;
  --font: "VT323", monospace;
  --font-size: 18px;
  --player-bg: #1a1000;
  --player-text: #ffb000;
  --player-accent: #ffb000;
}
.theme-crt { text-shadow: 0 0 4px #ffb00088; }
.theme-crt::after {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 45;
  background: repeating-linear-gradient(transparent 0 2px, #0005 2px 4px);
  animation: ns-flicker 4s steps(1) infinite;
}
@keyframes ns-flicker { 0%, 100% { opacity: 1; } 47% { opacity: .85; } 48% { opacity: 1; } 75% { opacity: .92; } }
.theme-crt .pf-name::before { content: "C:\\> "; }
.theme-crt .pf-avatar { filter: sepia(1) saturate(4) hue-rotate(-10deg) brightness(.9); }

/* Frutiger Aero */
body.theme-aero {
  --bg: #5ec8f8;
  --bg-image: radial-gradient(ellipse at 50% 120%, #8fd16a 0 30%, transparent 31%), radial-gradient(circle at 15% 20%, #ffffffaa, transparent 25%), linear-gradient(#2fa8e8, #9fe2ff 55%, #e0f7ff);
  --bg-attach: fixed;
  --text: #0d3550;
  --muted: #3d6680;
  --link: #0077c2;
  --box: #ffffff;
  --box-alpha: 72%;
  --border: #ffffffcc;
  --head-bg: linear-gradient(#a6f08f, #4cc35a 50%, #2c9e3a 51%, #6fd36a);
  --head-text: #fff;
  --head2-bg: linear-gradient(#bfeaff, #49b8f0 50%, #1d8fd6 51%, #5ec8f8);
  --head2-text: #fff;
  --accent: #0aa0e6;
  --cell-head: #dff4ff;
  --cell-head-text: #0d4a73;
  --cell-bg: #f3fbff;
  --name: #fff;
  --font: "Nunito", "Segoe UI", sans-serif;
  --font-size: 14px;
  --radius: 14px;
  --shadow: 0 6px 20px #0d355033, inset 0 1px 0 #fff;
  --player-bg: linear-gradient(#49b8f0, #1d8fd6);
  --player-accent: #8fd16a;
}
.theme-aero .pf-box > h2 { text-shadow: 0 1px 2px #0005; border-radius: 14px 14px 0 0; }
.theme-aero .pf-name { font-weight: 800; font-size: 2.3em; text-shadow: 0 2px 6px #0d355088, 0 0 1px #0d3550; }
.theme-aero .pf-identity { color: #fff; text-shadow: 0 1px 3px #0d3550aa; }
.theme-aero .pf-identity a { color: #fff; }
.theme-aero .pf-avatar { border: 3px solid #fff; border-radius: 14px; box-shadow: 0 4px 14px #0003; }
.theme-aero .np-player { background: linear-gradient(#49b8f0, #1d8fd6); }

/* Desktop 98 */
body.theme-win98 {
  --bg: #008080;
  --text: #000;
  --muted: #444;
  --link: #0000ee;
  --box: #c0c0c0;
  --border: #c0c0c0;
  --border-w: 2px;
  --border-style: outset;
  --head-bg: linear-gradient(90deg, #000080, #1084d0);
  --head-text: #fff;
  --head2-bg: linear-gradient(90deg, #000080, #1084d0);
  --head2-text: #fff;
  --accent: #000080;
  --cell-head: #c0c0c0;
  --cell-head-text: #000;
  --cell-bg: #fff;
  --name: #fff;
  --font: Tahoma, "MS Sans Serif", Arial, sans-serif;
  --font-size: 12px;
  --player-bg: #000;
  --player-accent: #00a800;
}
.theme-win98 .pf-box { padding: 2px 8px 8px; box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #fff, inset -2px -2px #808080, inset 2px 2px #dfdfdf; border: 0; }
.theme-win98 .pf-box > h2 { margin: 0 -6px 8px; padding: 3px 4px 3px 6px; font-size: 1em; }
.theme-win98 .pf-box > h2::after {
  content: "_  \25A1  \00D7"; font: bold 11px/14px Tahoma, sans-serif; color: #000; background: #c0c0c0; padding: 0 4px;
  box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #fff; letter-spacing: 1px; white-space: pre;
}
.theme-win98 .pf-table th { box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #fff; }
.theme-win98 .pf-table td, .theme-win98 .pf-comment-body { box-shadow: inset 1px 1px #808080, inset -1px -1px #dfdfdf; }
.theme-win98 .pf-comment-who { background: #c0c0c0; }
.theme-win98 .pf-identity { color: #fff; }
.theme-win98 .pf-identity a { color: #fff; }
.theme-win98 .pf-name { text-shadow: 1px 1px 0 #000; }
.theme-win98 .pf-network { background: #ffffe1; border: 1px solid #000; border-radius: 0; }
.theme-win98 .pf-comment-form button { background: #c0c0c0; color: #000; border: 0; box-shadow: inset -1px -1px #0a0a0a, inset 1px 1px #fff, inset -2px -2px #808080, inset 2px 2px #dfdfdf; font-weight: normal; }

/* Dark Academia */
body.theme-academia {
  --bg: #2b1d14;
  --bg-image: radial-gradient(ellipse at 50% -10%, #6b4a2b88, transparent 60%), repeating-linear-gradient(90deg, #2b1d14 0 3px, #2f2016 3px 6px);
  --bg-attach: fixed;
  --text: #2a1f16;
  --muted: #6b5a47;
  --link: #7a1f1f;
  --box: #efe4cf;
  --border: #8a6a45;
  --border-w: 1px;
  --head-bg: #5a3a22;
  --head-text: #f3e6c8;
  --head2-bg: #3d2a1c;
  --head2-text: #d9b26a;
  --accent: #a67c2d;
  --cell-head: #e2d2b2;
  --cell-head-text: #4a3220;
  --cell-bg: #f6eedd;
  --name: #e9d8b4;
  --font: "EB Garamond", Georgia, serif;
  --font-size: 15px;
  --shadow: 0 4px 14px #0008;
  --player-bg: #3d2a1c;
  --player-accent: #a67c2d;
}
.theme-academia .pf-identity { color: #e9d8b4; }
.theme-academia .pf-identity a { color: #d9b26a; }
.theme-academia .pf-name { font-size: 2.3em; font-style: italic; font-weight: normal; letter-spacing: .5px; }
.theme-academia .pf-box > h2 { font-variant: small-caps; letter-spacing: 1px; font-weight: normal; font-size: 1.15em; }
.theme-academia .pf-network h2 { font-style: italic; font-weight: normal; }
.theme-academia .pf-avatar { filter: sepia(.45); border: 6px double #a67c2d; }

/* Outrun */
body.theme-synthwave {
  --bg: #0b0221;
  --bg-image: linear-gradient(transparent 70%, #ff2a6d18 70%), repeating-linear-gradient(90deg, transparent 0 70px, #05d9e855 70px 72px),
    repeating-linear-gradient(transparent 0 30px, #05d9e833 30px 32px), radial-gradient(circle at 50% 68%, #ff9e00 0 70px, #ff2a6d 110px, transparent 160px),
    linear-gradient(#0b0221, #3d0a5b 60%, #0b0221 70%);
  --bg-attach: fixed;
  --text: #f1e9ff;
  --muted: #c3a8ec;
  --link: #05d9e8;
  --box: #0f0428;
  --box-alpha: 86%;
  --border: #ff2a6d;
  --border-w: 2px;
  --head-bg: linear-gradient(90deg, #ff2a6d, #ff9e00);
  --head-text: #0b0221;
  --head2-bg: linear-gradient(90deg, #05d9e8, #7b2ff7);
  --head2-text: #0b0221;
  --accent: #05d9e8;
  --cell-head: #22094a;
  --cell-head-text: #05d9e8;
  --cell-bg: #160636;
  --name: #ff2a6d;
  --font: "Rajdhani", Verdana, sans-serif;
  --font-size: 15px;
  --name-font: "Monoton", cursive;
  --radius: 4px;
  --shadow: 0 0 12px #ff2a6d88;
  --player-bg: #0b0221;
  --player-accent: #ff2a6d;
}
.theme-synthwave .pf-name { font-weight: normal; font-size: 2.4em; text-shadow: 0 0 8px #ff2a6d, 0 0 20px #ff9e00; }
.theme-synthwave .pf-box > h2 { text-transform: uppercase; letter-spacing: 2px; }

/* Pixel Arcade */
body.theme-arcade {
  --bg: #1b1b3a;
  --bg-image: radial-gradient(#ffffff22 1px, transparent 1px);
  --bg-size: 8px 8px;
  --text: #fff1e8;
  --muted: #c2c3c7;
  --link: #29adff;
  --box: #0f0f24;
  --border: #fff1e8;
  --border-w: 4px;
  --head-bg: #ff004d;
  --head-text: #fff1e8;
  --head2-bg: #00e436;
  --head2-text: #1d2b53;
  --accent: #ffec27;
  --cell-head: #1d2b53;
  --cell-head-text: #ffec27;
  --cell-bg: #16163a;
  --name: #ffec27;
  --font: "Press Start 2P", monospace;
  --font-size: 10px;
  --shadow: 4px 4px 0 #000;
  --player-bg: #1d2b53;
  --player-accent: #00e436;
}
body.theme-arcade { line-height: 1.8; }
.theme-arcade .pf-box { image-rendering: pixelated; }
.theme-arcade .pf-name { font-size: 1.9em; text-shadow: 3px 3px 0 #ff004d; line-height: 1.4; }
.theme-arcade .pf-name::after { content: " \2665\2665\2665"; color: #ff004d; font-size: .5em; vertical-align: middle; }
.theme-arcade .pf-avatar { image-rendering: pixelated; border: 4px solid #fff1e8; }
.theme-arcade .pf-friend img { image-rendering: pixelated; }
.theme-arcade .pf-network h2::before { content: "PLAYER 1: "; color: #00e436; }

/* Clean Bento */
body.theme-bento {
  --bg: #f4f4f5;
  --text: #27272a;
  --muted: #71717a;
  --link: #4f46e5;
  --box: #ffffff;
  --border: #e4e4e7;
  --head-bg: transparent;
  --head-text: #18181b;
  --head2-bg: transparent;
  --head2-text: #18181b;
  --accent: #6366f1;
  --cell-head: #f4f4f5;
  --cell-head-text: #52525b;
  --cell-bg: #fafafa;
  --name: #18181b;
  --font: "Inter", system-ui, sans-serif;
  --font-size: 14px;
  --radius: 20px;
  --shadow: 0 1px 2px #0000000d, 0 8px 24px #0000000a;
  --player-bg: #18181b;
  --player-accent: #6366f1;
}
.theme-bento .pf-name { font-size: 2em; letter-spacing: -.8px; }
.theme-bento .pf-box > h2 { font-size: 1.05em; letter-spacing: -.2px; border-bottom: 1px solid #f0f0f2; }
.theme-bento .pf-avatar { border-radius: 16px; border: 0; }
.theme-bento .pf-table { border-spacing: 0 4px; }
.theme-bento .pf-table th { border-radius: 8px 0 0 8px; font-weight: 600; }
.theme-bento .pf-table td { border-radius: 0 8px 8px 0; }
.theme-bento .pf-comment-who { border-radius: 12px 0 0 12px; }
.theme-bento .pf-comment-body { border-radius: 0 12px 12px 0; }
.theme-bento .pf-badges li { background: #eef2ff; border-color: #e0e7ff; color: #4338ca; }

@media (prefers-reduced-motion: reduce) {
  .theme-glitter, .theme-rave, .theme-aurora { animation: none; }
  .theme-crt::after { animation: none; }
}
