/* ═══════════════════════════════════════════════════════════════════════
   STUDIO OS — THEME PACK
   Loaded after studio.css. Every theme is a [data-theme="X"] block scoped
   to :root/html. Default ("lightbrush", no data-theme attr) is untouched —
   it lives entirely in studio.css and is not referenced here.

   Themes: agentpunk · win31 · winxp · minecraft · sunset · pfunk · crt
   ═══════════════════════════════════════════════════════════════════════ */

/* ───────────────────────────────────────────────────────────────────────
   THEME PICKER WIDGET — theme-agnostic; re-skins automatically via var()
   so it needs no per-[data-theme] overrides. Injected by studio-theme.js.
   ─────────────────────────────────────────────────────────────────────── */
#theme-picker-panel {
  position: fixed;
  width: 280px;
  max-height: 70vh;
  overflow-y: auto;
  padding: 14px;
  border-radius: var(--win-radius);
  z-index: 1100;
  display: flex; flex-direction: column; gap: 10px;
}
#theme-picker-panel.hidden { display: none; }
.theme-picker-title { padding: 0 2px 2px; }
.theme-picker-list { display: flex; flex-direction: column; gap: 6px; }
.theme-card {
  display: flex; align-items: center; gap: 10px;
  padding: 8px; border-radius: calc(var(--win-radius) * 0.6);
  border: 1px solid transparent;
  background: transparent;
  text-align: left;
  transition: background 140ms, border-color 140ms;
  width: 100%;
}
.theme-card:hover {
  background: rgba(255,255,255,0.06);
  background: color-mix(in srgb, var(--primary) 12%, transparent);
}
.theme-card.active {
  border-color: var(--primary);
  background: rgba(255,255,255,0.06);
  background: color-mix(in srgb, var(--primary) 10%, transparent);
}
.theme-swatch { display: flex; gap: 3px; flex: 0 0 auto; }
.theme-swatch-dot {
  width: 14px; height: 14px; border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(128,128,128,0.45);
  flex: 0 0 auto;
}
.theme-card-meta { flex: 1; min-width: 0; }
.theme-card-name {
  font-family: var(--font-display); font-size: 0.78rem;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--text);
}
.theme-card-desc { font-size: 0.6rem; color: var(--muted); margin-top: 2px; line-height: 1.35; }
.pfunk-header-lockup {
  display: none; align-items: center; gap: 7px; min-width: 0;
  margin-right: 4px; padding: 0 7px 0 2px;
  border-right: 1px solid rgba(168,85,247,0.2);
}
.pfunk-header-lockup img { display: block; width: 112px; height: 30px; object-fit: contain; }
.pfunk-header-wordmark {
  color: #39ff14;
  font: 900 0.58rem/0.95 'Arial Black', 'Trebuchet MS', sans-serif;
  letter-spacing: 0.06em;
  text-shadow: 0 0 8px rgba(57,255,20,0.48);
  white-space: nowrap;
}
.pfunk-header-kicker {
  color: #b3a3cf; font: 0.45rem var(--font-mono); letter-spacing: 0.12em;
  white-space: nowrap;
}
.theme-card[data-theme-id="pfunk"] .theme-swatch { align-items: center; gap: 4px; }
.theme-card[data-theme-id="pfunk"] .theme-swatch::before {
  content: 'PF'; display: grid; place-items: center;
  width: 24px; height: 24px; flex: 0 0 auto;
  border: 1px solid #f8b808; border-radius: 50%;
  background: #1e1140; color: #ffd24a;
  font-family: 'Arial Black', 'Trebuchet MS', sans-serif;
  font-size: 0.58rem; letter-spacing: 0.04em;
  box-shadow: 0 0 0 2px #a855f7, 0 0 12px rgba(248,184,8,0.3);
}

/* ───────────────────────────────────────────────────────────────────────
   AGENTPUNK — cyberpunk electric computer-internals (TRON lattice)
   ─────────────────────────────────────────────────────────────────────── */
[data-theme="agentpunk"] {
  --primary: #A855F7;
  --primary-bright: #C084FC;
  --secondary: #39FF14;
  --warn: #FF2E9A;
  --bg-void: #0A0114;
  --bg-space: #0d0220;
  --bg-panel: #150a28;
  --bg-elevated: #1e1038;
  --text: #EDE9FE;
  --muted: #A78BCA;
  --win-radius: 8px;
}
[data-theme="agentpunk"] #desktop {
  background:
    radial-gradient(ellipse 80% 50% at 60% 30%, rgba(168,85,247,0.08), transparent 55%),
    radial-gradient(ellipse 50% 60% at 20% 80%, rgba(57,255,20,0.05), transparent 50%),
    var(--bg-space);
}
[data-theme="agentpunk"] #desktop::before {
  background-image:
    linear-gradient(rgba(168,85,247,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(168,85,247,0.05) 1px, transparent 1px);
}
[data-theme="agentpunk"] #desktop::after {
  content: '';
  position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='56' height='100' viewBox='0 0 56 100'><g fill='none' stroke='%23A855F7' stroke-opacity='0.55' stroke-width='1'><path d='M28 0L0 16v32l28 16 28-16V16z'/></g></svg>");
  opacity: 0.1;
}
[data-theme="agentpunk"] #shell::after {
  content: '';
  position: fixed; inset: 0; pointer-events: none; z-index: 2000;
  background: repeating-linear-gradient(0deg, rgba(192,132,252,0.02) 0 1px, transparent 1px 3px);
  mix-blend-mode: screen;
}
[data-theme="agentpunk"] #menubar {
  background: rgba(10,1,20,0.94);
  border-bottom: 1px solid rgba(168,85,247,0.22);
}
[data-theme="agentpunk"] .wordmark { text-shadow: 0 0 18px rgba(168,85,247,0.55); }
[data-theme="agentpunk"] .app-btn:hover, [data-theme="agentpunk"] .app-btn.active {
  color: #C084FC; background: rgba(168,85,247,0.14);
}
[data-theme="agentpunk"] .menubar-sep { background: rgba(168,85,247,0.2); }
[data-theme="agentpunk"] .live-badge { border-color: rgba(57,255,20,0.4); color: #39FF14; }
[data-theme="agentpunk"] .credit-badge { border-color: rgba(192,132,252,0.35); color: #C084FC; text-shadow: 0 0 10px rgba(192,132,252,0.4); }
[data-theme="agentpunk"] .account-btn { border-color: rgba(168,85,247,0.4); color: #C084FC; }
[data-theme="agentpunk"] .account-btn:hover { background: rgba(168,85,247,0.12); }
[data-theme="agentpunk"] #dock {
  background: rgba(13,2,28,0.9);
  border-right: 1px solid rgba(168,85,247,0.18);
}
[data-theme="agentpunk"] .dock-item:hover { background: rgba(168,85,247,0.1); }
[data-theme="agentpunk"] .dock-item.active { color: #C084FC; background: rgba(168,85,247,0.16); }
[data-theme="agentpunk"] .dock-trash { border-top: 1px solid rgba(168,85,247,0.16); }
[data-theme="agentpunk"] .desktop-file:hover, [data-theme="agentpunk"] .desktop-file.selected { background: rgba(168,85,247,0.16); }
[data-theme="agentpunk"] .desktop-file.selected { outline: 1px solid rgba(57,255,20,0.45); }
[data-theme="agentpunk"] .df-icon.folder { background: linear-gradient(145deg, #2a1050, #170a30); border: 1px solid rgba(168,85,247,0.3); }
[data-theme="agentpunk"] .df-icon.render-file { background: linear-gradient(145deg, #180a30, #0f0620); border: 1px solid rgba(57,255,20,0.3); }
[data-theme="agentpunk"] .df-icon.preset-file { background: linear-gradient(145deg, #220a38, #14061f); border: 1px solid rgba(255,46,154,0.3); }
[data-theme="agentpunk"] .os-window {
  background: rgba(14,4,28,0.94);
  border: 1px solid rgba(168,85,247,0.28);
  box-shadow: 0 24px 64px rgba(0,0,0,0.7), 0 0 0 1px rgba(168,85,247,0.14), 0 0 26px rgba(168,85,247,0.07);
  animation: agentpunk-glow 4.5s ease-in-out infinite;
}
[data-theme="agentpunk"] .os-window.focused {
  position: relative;
  box-shadow: 0 32px 80px rgba(0,0,0,0.8), 0 0 0 1px rgba(168,85,247,0.32), 0 0 50px rgba(168,85,247,0.15);
}
[data-theme="agentpunk"] .os-window::before {
  background: linear-gradient(90deg,transparent,rgba(168,85,247,0.6) 50%,transparent);
}
[data-theme="agentpunk"] .os-window.focused::after {
  content: '';
  position: absolute; inset: -2px; border-radius: inherit; padding: 2px;
  background: conic-gradient(from 0deg, transparent 0deg, transparent 270deg, rgba(168,85,247,0.9) 300deg, rgba(57,255,20,0.9) 325deg, rgba(255,46,154,0.9) 345deg, transparent 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  animation: agentpunk-scan 3.2s linear infinite;
  pointer-events: none; z-index: 5;
}
@keyframes agentpunk-scan { to { transform: rotate(360deg); } }
@keyframes agentpunk-glow {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.04); }
}
[data-theme="agentpunk"] .win-titlebar {
  background: rgba(10,1,20,0.6);
  border-bottom: 1px solid rgba(168,85,247,0.2);
  box-shadow: inset 0 -1px 0 rgba(168,85,247,0.14);
}
[data-theme="agentpunk"] .win-title { color: #D6B8F5; }
[data-theme="agentpunk"] .win-resize { background: linear-gradient(135deg, transparent 50%, rgba(168,85,247,0.3) 50%); }
[data-theme="agentpunk"] .glass, [data-theme="agentpunk"] #auth-panel, [data-theme="agentpunk"] #ql-panel {
  background: rgba(14,4,28,0.9); border: 1px solid rgba(168,85,247,0.26);
}
[data-theme="agentpunk"] .glass::before { background: linear-gradient(90deg,transparent,rgba(168,85,247,0.6) 50%,transparent); }
[data-theme="agentpunk"] .cta {
  color: #0A0114;
  background: linear-gradient(135deg, #A855F7, #C084FC);
  box-shadow: 0 0 16px rgba(168,85,247,0.4);
}
[data-theme="agentpunk"] .cta:hover { box-shadow: 0 0 22px rgba(57,255,20,0.35), 0 0 18px rgba(168,85,247,0.5); }
[data-theme="agentpunk"] .cta-ghost { color: #C084FC; border-color: rgba(168,85,247,0.4); }
[data-theme="agentpunk"] .cta-ghost:hover { background: rgba(168,85,247,0.1); }
[data-theme="agentpunk"] .auth-input, [data-theme="agentpunk"] .os-select {
  background: rgba(10,1,20,0.85); border-color: rgba(168,85,247,0.3);
}
[data-theme="agentpunk"] .auth-input:focus, [data-theme="agentpunk"] .os-select:focus { border-color: rgba(192,132,252,0.6); }
[data-theme="agentpunk"] .dropzone { border-color: rgba(168,85,247,0.35); }
[data-theme="agentpunk"] .dropzone:hover, [data-theme="agentpunk"] .dropzone.drag-over {
  border-color: #39FF14; box-shadow: 0 0 28px rgba(57,255,20,0.22);
}
[data-theme="agentpunk"] .dz-icon { color: #C084FC; text-shadow: 0 0 20px rgba(168,85,247,0.6); }
[data-theme="agentpunk"] .src-check { border-color: rgba(168,85,247,0.2); background: rgba(10,1,20,0.5); }
[data-theme="agentpunk"] .divider { background: rgba(168,85,247,0.18); }
[data-theme="agentpunk"] .range { background: rgba(168,85,247,0.2); }
[data-theme="agentpunk"] .range::-webkit-slider-thumb { box-shadow: 0 0 10px rgba(168,85,247,0.7); }
[data-theme="agentpunk"] ::selection { background: var(--primary); color: #0A0114; }
[data-theme="agentpunk"] ::-webkit-scrollbar { width: 10px; height: 10px; }
[data-theme="agentpunk"] ::-webkit-scrollbar-track { background: #0A0114; }
[data-theme="agentpunk"] ::-webkit-scrollbar-thumb { background: rgba(168,85,247,0.45); border: 2px solid #0A0114; }

/* ───────────────────────────────────────────────────────────────────────
   WIN31 — Windows 3.1 chrome (silver bevels, navy title bars, teal desktop)
   ─────────────────────────────────────────────────────────────────────── */
[data-theme="win31"] {
  --primary: #000080;
  --primary-bright: #0000c0;
  --secondary: #800000;
  --warn: #b45f06;
  --bg-void: #008080;
  --bg-space: #008080;
  --bg-panel: #c0c0c0;
  --bg-elevated: #dfdfdf;
  --text: #000000;
  --muted: #3f3f3f;
  --font-display: 'MS Sans Serif', 'Tahoma', sans-serif;
  --font-head: 'MS Sans Serif', 'Tahoma', sans-serif;
  --font-mono: 'Courier New', monospace;
  --font-body: 'MS Sans Serif', 'Tahoma', sans-serif;
  --win-radius: 0px;
}
[data-theme="win31"] * { text-shadow: none !important; }
[data-theme="win31"] #desktop {
  background-color: #008080;
  background-image: repeating-linear-gradient(45deg, rgba(0,0,0,0.06) 0 1px, transparent 1px 8px);
}
[data-theme="win31"] #desktop::before { background-image: none; }
[data-theme="win31"] #desktop::after { content: none; }
[data-theme="win31"] #menubar {
  background: #c0c0c0;
  backdrop-filter: none;
  border-bottom: none;
  box-shadow: inset 0 1px 0 #fff, inset 0 -2px 0 #808080, 0 2px 0 #000;
}
[data-theme="win31"] .wordmark { text-shadow: none; }
[data-theme="win31"] .app-btn { border-radius: 0; border: 2px solid transparent; color: #000; }
[data-theme="win31"] .app-btn:hover, [data-theme="win31"] .app-btn.active {
  background: #c0c0c0; color: #000;
  border-color: #fff #808080 #808080 #fff;
}
[data-theme="win31"] .app-btn.active {
  border-color: #808080 #fff #fff #808080;
  background: #d4d4d4;
}
[data-theme="win31"] .app-btn .icon { filter: grayscale(1) brightness(0) contrast(2); }
[data-theme="win31"] .menubar-sep { background: #808080; box-shadow: 1px 0 0 #fff; }
[data-theme="win31"] .live-badge, [data-theme="win31"] .credit-badge, [data-theme="win31"] .account-btn {
  border-radius: 0; background: #c0c0c0; color: #000;
  border: 2px solid; border-color: #fff #808080 #808080 #fff;
}
[data-theme="win31"] .pulse-dot { border-radius: 0; width: 8px; height: 8px; box-shadow: none; }
[data-theme="win31"] .pulse-dot::after { display: none; }
[data-theme="win31"] #dock {
  background: #c0c0c0; backdrop-filter: none;
  border-right: none;
  box-shadow: inset -1px 0 0 #808080, 2px 0 0 #000;
}
[data-theme="win31"] .dock-label { color: #000080; }
[data-theme="win31"] .dock-item { border-radius: 0; }
[data-theme="win31"] .dock-item:hover { background: #000080; color: #fff; }
[data-theme="win31"] .dock-item.active { background: #000080; color: #fff; }
[data-theme="win31"] .dock-item .di { filter: grayscale(1) brightness(0) contrast(2); }
[data-theme="win31"] .dock-trash { border-top: 1px solid #808080; }
[data-theme="win31"] .desktop-file { border-radius: 0; }
[data-theme="win31"] .desktop-file:hover, [data-theme="win31"] .desktop-file.selected { background: #000080; }
[data-theme="win31"] .desktop-file.selected { outline: 1px dotted #fff; }
[data-theme="win31"] .desktop-file.selected .df-label { color: #fff; }
[data-theme="win31"] .df-icon { border-radius: 0; }
[data-theme="win31"] .df-icon.folder { background: #ffd700; border: 2px solid; border-color: #fff #808080 #808080 #fff; }
[data-theme="win31"] .df-icon.render-file, [data-theme="win31"] .df-icon.preset-file {
  background: #fff; border: 2px solid; border-color: #fff #808080 #808080 #fff;
}
[data-theme="win31"] .df-label { text-shadow: none; }
[data-theme="win31"] .os-window {
  border-radius: 0; border: 1px solid #000; backdrop-filter: none;
  background: #c0c0c0;
  box-shadow:
    inset 1px 1px 0 #fff, inset -1px -1px 0 #000,
    inset 2px 2px 0 #dfdfdf, inset -2px -2px 0 #808080;
}
[data-theme="win31"] .os-window.focused { box-shadow:
    inset 1px 1px 0 #fff, inset -1px -1px 0 #000,
    inset 2px 2px 0 #dfdfdf, inset -2px -2px 0 #808080; }
[data-theme="win31"] .os-window::before { content: none; }
[data-theme="win31"] .win-titlebar {
  height: 22px; background: #000080; border-bottom: 1px solid #000;
}
[data-theme="win31"] .win-title { color: #fff; text-align: left; letter-spacing: 0.04em; }
[data-theme="win31"] .win-icon { display: none; }
[data-theme="win31"] .traffic-lights { gap: 3px; }
[data-theme="win31"] .tl {
  width: 16px; height: 14px; border-radius: 0; background: #c0c0c0;
  border: 1px solid; border-color: #fff #000 #000 #fff;
  position: relative; font-size: 0;
}
[data-theme="win31"] .tl::before {
  content: ''; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
}
[data-theme="win31"] .tl-close::before {
  content: '×'; font-family: 'Courier New', monospace; font-size: 11px; font-weight: 700; color: #000;
}
[data-theme="win31"] .tl-min::before {
  content: ''; width: 6px; height: 0; border-bottom: 1.5px solid #000; align-self: flex-end; margin-bottom: 3px;
}
[data-theme="win31"] .tl-max::before {
  content: ''; width: 7px; height: 6px; border: 1.5px solid #000;
}
[data-theme="win31"] .tl:hover { filter: none; background: #d4d4d4; }
[data-theme="win31"] .win-resize { background: none; border-right: 2px solid #000; border-bottom: 2px solid #000; }
[data-theme="win31"] .glass, [data-theme="win31"] #auth-panel, [data-theme="win31"] #ql-panel {
  background: #c0c0c0; backdrop-filter: none; border: 1px solid #000; border-radius: 0;
  box-shadow: inset 1px 1px 0 #fff, inset -1px -1px 0 #808080;
}
[data-theme="win31"] .glass::before { content: none; }
[data-theme="win31"] .glass::after { content: none; }
[data-theme="win31"] .cta, [data-theme="win31"] .cta-ghost {
  border-radius: 0; background: #c0c0c0; color: #000; box-shadow: none;
  border: 2px solid; border-color: #fff #808080 #808080 #fff;
}
[data-theme="win31"] .cta:hover, [data-theme="win31"] .cta-ghost:hover {
  background: #d4d4d4; box-shadow: none; transform: none;
}
[data-theme="win31"] .cta:active, [data-theme="win31"] .cta-ghost:active {
  border-color: #808080 #fff #fff #808080;
}
[data-theme="win31"] .auth-input, [data-theme="win31"] .os-select {
  border-radius: 0; background: #fff; border: 2px solid; border-color: #808080 #fff #fff #808080;
}
[data-theme="win31"] .dropzone { border-radius: 0; border: 2px dashed #000; }
[data-theme="win31"] .dropzone:hover, [data-theme="win31"] .dropzone.drag-over { box-shadow: none; border-color: #000080; }
[data-theme="win31"] .dz-icon { text-shadow: none; }
[data-theme="win31"] .src-check { border-radius: 0; border: 1px solid #808080; background: #fff; }
[data-theme="win31"] .divider { background: #808080; height: 2px; box-shadow: 0 1px 0 #fff; }
[data-theme="win31"] .range { border-radius: 0; height: 4px; background: #808080; border: 1px solid; border-color: #808080 #fff #fff #808080; }
[data-theme="win31"] .range::-webkit-slider-thumb { border-radius: 0; width: 12px; height: 16px; box-shadow: inset 1px 1px 0 #fff, inset -1px -1px 0 #808080; }
[data-theme="win31"] ::selection { background: #000080; color: #fff; }
[data-theme="win31"] ::-webkit-scrollbar { width: 16px; height: 16px; }
[data-theme="win31"] ::-webkit-scrollbar-track { background: #c0c0c0; }
[data-theme="win31"] ::-webkit-scrollbar-thumb { background: #c0c0c0; border: 1px solid; border-color: #fff #808080 #808080 #fff; }

/* ───────────────────────────────────────────────────────────────────────
   WINXP — Luna (Bliss desktop, glossy blue title bars, green CTA)
   ─────────────────────────────────────────────────────────────────────── */
[data-theme="winxp"] {
  --primary: #245edc;
  --primary-bright: #3C81F3;
  --secondary: #3c9130;
  --warn: #d9822b;
  --bg-void: #1F6FD8;
  --bg-space: #e9f1fc;
  --bg-panel: #ece9d8;
  --bg-elevated: #f5f5f5;
  --text: #14213a;
  --muted: #5a6270;
  --font-display: 'Trebuchet MS', 'Tahoma', sans-serif;
  --font-head: 'Trebuchet MS', 'Tahoma', sans-serif;
  --font-mono: 'Courier New', monospace;
  --font-body: 'Tahoma', 'Segoe UI', sans-serif;
  --win-radius: 8px;
}
[data-theme="winxp"] #desktop {
  background:
    radial-gradient(ellipse 170px 65px at 21% 22%, rgba(255,255,255,0.92), rgba(255,255,255,0) 72%),
    radial-gradient(ellipse 120px 46px at 29% 27%, rgba(255,255,255,0.76), rgba(255,255,255,0) 72%),
    radial-gradient(circle 60px at 88% 10%, #fff6c8 0%, rgba(255,246,200,0) 75%),
    radial-gradient(ellipse 70% 58% at 52% 105%, #7bcf4c 0%, #6FBF3F 82%, rgba(111,191,63,0) 100%),
    radial-gradient(ellipse 46% 46% at 78% 98%, #6FBF3F 0%, #5faa32 85%, rgba(95,170,50,0) 100%),
    radial-gradient(ellipse 40% 30% at 14% 105%, #6FBF3F 0%, rgba(111,191,63,0) 85%),
    linear-gradient(180deg, #1F6FD8 0%, #5CA8EE 40%, #BFE3F8 63%, #BFE3F8 67%, #4C9A2A 69%, #3d7d20 100%);
}
[data-theme="winxp"] #desktop::before { background-image: none; }
[data-theme="winxp"] #desktop::after { content: none; }
[data-theme="winxp"] #menubar {
  background: linear-gradient(180deg, #eff3fb, #d8e4f5);
  backdrop-filter: none;
  border-bottom: 1px solid #7fa8d9;
}
[data-theme="winxp"] .wordmark { text-shadow: none; }
[data-theme="winxp"] .app-btn { color: #245edc; }
[data-theme="winxp"] .app-btn:hover, [data-theme="winxp"] .app-btn.active {
  background: rgba(36,94,220,0.14); color: #123a8f;
}
[data-theme="winxp"] .menubar-sep { background: rgba(36,94,220,0.25); }
[data-theme="winxp"] .live-badge, [data-theme="winxp"] .credit-badge, [data-theme="winxp"] .account-btn {
  border-color: rgba(36,94,220,0.35); color: #14335e;
}
[data-theme="winxp"] .credit-badge { text-shadow: none; color: #1a5c2e; }
[data-theme="winxp"] #dock {
  background: linear-gradient(180deg, #e7effb, #d3e1f5);
  backdrop-filter: none;
  border-right: 1px solid #9fbbe0;
}
[data-theme="winxp"] .dock-item:hover { background: rgba(36,94,220,0.1); color: #123a8f; }
[data-theme="winxp"] .dock-item.active { background: rgba(36,94,220,0.2); color: #123a8f; }
[data-theme="winxp"] .dock-trash { border-top: 1px solid #9fbbe0; }
[data-theme="winxp"] .desktop-file:hover, [data-theme="winxp"] .desktop-file.selected { background: rgba(255,255,255,0.35); }
[data-theme="winxp"] .desktop-file.selected { outline: 1px solid rgba(36,94,220,0.6); }
[data-theme="winxp"] .df-label { color: #10233f; text-shadow: 0 1px 3px rgba(255,255,255,0.8); }
[data-theme="winxp"] .df-icon.folder { background: linear-gradient(145deg, #ffe38a, #f5c542); border: 1px solid #d9a520; }
[data-theme="winxp"] .df-icon.render-file, [data-theme="winxp"] .df-icon.preset-file { background: #fff; border: 1px solid #7fa8d9; }
[data-theme="winxp"] .os-window {
  background: #ece9d8; backdrop-filter: none;
  border: 1px solid #0a2e6e; border-radius: 8px;
  box-shadow: 0 8px 24px rgba(15,35,70,0.35), 0 0 0 1px rgba(255,255,255,0.5) inset;
}
[data-theme="winxp"] .os-window.focused { box-shadow: 0 14px 36px rgba(15,35,70,0.42), 0 0 0 1px rgba(255,255,255,0.6) inset; }
[data-theme="winxp"] .os-window::before { content: none; }
[data-theme="winxp"] .win-body { background: #ECE9D8; }
[data-theme="winxp"] .win-titlebar {
  height: 30px; border-radius: 7px 7px 0 0;
  background: linear-gradient(180deg, #3C81F3 0%, #245EDC 45%, #1941A5 100%);
  border-bottom: 1px solid #0a2e6e;
}
[data-theme="winxp"] .win-title { color: #fff; text-shadow: 0 1px 1px rgba(0,0,0,0.4); font-weight: 600; }
[data-theme="winxp"] .tl { position: relative; width: 21px; height: 18px; border-radius: 3px; box-shadow: inset 0 1px 0 rgba(255,255,255,0.6), 0 1px 2px rgba(0,0,0,0.4); }
[data-theme="winxp"] .tl-close { background: linear-gradient(180deg, #ff8f8f, #cc0000); }
[data-theme="winxp"] .tl-min { background: linear-gradient(180deg, #bcdfff, #3d7fd6); }
[data-theme="winxp"] .tl-max { background: linear-gradient(180deg, #bcdfff, #3d7fd6); }
[data-theme="winxp"] .tl::before { content: ''; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
[data-theme="winxp"] .tl-close::before {
  content: '×'; font-family: 'Tahoma', sans-serif; font-size: 12px; font-weight: 700; color: #fff; text-shadow: 0 1px 1px rgba(0,0,0,0.4);
}
[data-theme="winxp"] .tl-min::before {
  content: ''; width: 8px; height: 0; border-bottom: 2px solid #0a2e6e; align-self: flex-end; margin-bottom: 3px;
}
[data-theme="winxp"] .tl-max::before {
  content: ''; width: 8px; height: 7px; border: 1.5px solid #0a2e6e;
}
[data-theme="winxp"] .win-resize { background: linear-gradient(135deg, transparent 50%, rgba(36,94,220,0.3) 50%); }
[data-theme="winxp"] .glass, [data-theme="winxp"] #auth-panel, [data-theme="winxp"] #ql-panel { background: rgba(236,233,216,0.96); backdrop-filter: none; border: 1px solid #7fa8d9; }
[data-theme="winxp"] .glass::before { background: linear-gradient(90deg, transparent, rgba(36,94,220,0.45) 50%, transparent); }
[data-theme="winxp"] .glass::after { opacity: 0; }
[data-theme="winxp"] .cta {
  background: linear-gradient(180deg, #8bd35c, #3c9130 60%, #2f7526);
  color: #fff; box-shadow: 0 0 0 1px #2a5f1f, inset 0 1px 0 rgba(255,255,255,0.4);
  text-shadow: 0 1px 1px rgba(0,0,0,0.3);
}
[data-theme="winxp"] .cta:hover { box-shadow: 0 0 0 1px #2a5f1f, 0 0 12px rgba(60,145,48,0.5); transform: none; }
[data-theme="winxp"] .cta-ghost { border-color: #245edc; color: #245edc; }
[data-theme="winxp"] .cta-ghost:hover { background: rgba(36,94,220,0.08); }
[data-theme="winxp"] .auth-input, [data-theme="winxp"] .os-select { background: #fff; border-color: rgba(36,94,220,0.3); }
[data-theme="winxp"] .dropzone { border-color: rgba(36,94,220,0.4); }
[data-theme="winxp"] .dropzone:hover, [data-theme="winxp"] .dropzone.drag-over { box-shadow: 0 0 20px rgba(36,94,220,0.2); border-color: #245edc; }
[data-theme="winxp"] .dz-icon { text-shadow: none; }
[data-theme="winxp"] .src-check { border-color: rgba(36,94,220,0.25); background: rgba(255,255,255,0.7); }
[data-theme="winxp"] .divider { background: rgba(36,94,220,0.18); }
[data-theme="winxp"] .range { background: rgba(36,94,220,0.18); }
[data-theme="winxp"] .range::-webkit-slider-thumb { box-shadow: 0 1px 2px rgba(0,0,0,0.35); }
[data-theme="winxp"] ::selection { background: #3a8dde; color: #fff; }
[data-theme="winxp"] ::-webkit-scrollbar { width: 14px; height: 14px; }
[data-theme="winxp"] ::-webkit-scrollbar-track { background: #e7effb; }
[data-theme="winxp"] ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #7fb4f0, #3d7fd6); border: 2px solid #e7effb; border-radius: 6px; }

/* ───────────────────────────────────────────────────────────────────────
   MINECRAFT — blocky grass/dirt/stone chrome, hard pixel bevels
   ─────────────────────────────────────────────────────────────────────── */
/* 'Courier New' renders U+2192 (→) as a barely-visible stub; pin just that
   codepoint to a symbol-capable system font so CTA arrows stay legible. */
@font-face {
  font-family: 'MCArrowFix';
  src: local('Segoe UI Symbol'), local('Segoe UI Emoji'), local('Arial'), local('sans-serif');
  unicode-range: U+2192;
}
[data-theme="minecraft"] {
  --primary: #55a630;
  --primary-bright: #7bc950;
  --secondary: #4682b4;
  --warn: #dc143c;
  --bg-void: #1b1b1b;
  --bg-space: #2b2b2b;
  --bg-panel: #3a3a3a;
  --bg-elevated: #4a4a4a;
  --text: #f0f0f0;
  --muted: #b0aa9a;
  --font-display: 'MCArrowFix', 'Courier New', 'Consolas', monospace;
  --font-head: 'MCArrowFix', 'Courier New', 'Consolas', monospace;
  --font-mono: 'Courier New', 'Consolas', monospace;
  --font-body: 'MCArrowFix', 'Courier New', 'Consolas', monospace;
  --win-radius: 0px;
}
[data-theme="minecraft"] body { letter-spacing: 0.02em; }
[data-theme="minecraft"] canvas { image-rendering: pixelated; }
[data-theme="minecraft"] #desktop {
  background: linear-gradient(180deg, #55a630 0%, #55a630 22%, #6b4423 24%, #7a4d28 40%, #654321 60%, #573319 100%);
}
[data-theme="minecraft"] #desktop::before {
  background-image:
    linear-gradient(rgba(0,0,0,0.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,0.16) 1px, transparent 1px);
  background-size: 32px 32px;
}
[data-theme="minecraft"] #desktop::after {
  content: '';
  position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background-image: repeating-conic-gradient(rgba(255,255,255,0.05) 0% 25%, transparent 0% 50%);
  background-size: 16px 16px;
  opacity: 0.5;
}
[data-theme="minecraft"] #menubar { background: #3a3a3a; backdrop-filter: none; border-bottom: 4px solid #2a2a2a; }
[data-theme="minecraft"] .wordmark { text-shadow: 2px 2px 0 #000; }
[data-theme="minecraft"] .app-btn { border-radius: 0; }
[data-theme="minecraft"] .app-btn:hover, [data-theme="minecraft"] .app-btn.active { background: #55a630; color: #fff; }
[data-theme="minecraft"] .menubar-sep { background: #2a2a2a; }
[data-theme="minecraft"] .live-badge, [data-theme="minecraft"] .credit-badge, [data-theme="minecraft"] .account-btn {
  border-radius: 0; border: 2px solid #2a2a2a; background: #4a4a4a;
}
[data-theme="minecraft"] .pulse-dot { border-radius: 0; }
[data-theme="minecraft"] .pulse-dot::after { border-radius: 0; }
[data-theme="minecraft"] #dock { background: #3a2a1a; backdrop-filter: none; border-right: 4px solid #2a1d10; }
[data-theme="minecraft"] .dock-item { border-radius: 0; }
[data-theme="minecraft"] .dock-item:hover { background: rgba(85,166,48,0.28); }
[data-theme="minecraft"] .dock-item.active { background: rgba(85,166,48,0.45); color: #fff; }
[data-theme="minecraft"] .dock-trash { border-top: 3px solid #2a1d10; }
[data-theme="minecraft"] .desktop-file { border-radius: 0; }
[data-theme="minecraft"] .desktop-file:hover, [data-theme="minecraft"] .desktop-file.selected { background: rgba(85,166,48,0.3); }
[data-theme="minecraft"] .desktop-file.selected { outline: 2px solid #7bc950; }
[data-theme="minecraft"] .df-label { text-shadow: 1px 1px 0 #000; }
[data-theme="minecraft"] .df-icon { border-radius: 0; }
[data-theme="minecraft"] .df-icon.folder { background: #8a6a2a; border: 3px solid; border-color: #a5854a #4a3616 #4a3616 #a5854a; }
[data-theme="minecraft"] .df-icon.render-file, [data-theme="minecraft"] .df-icon.preset-file {
  background: #4682b4; border: 3px solid; border-color: #7bb0dc #2a4a63 #2a4a63 #7bb0dc;
}
[data-theme="minecraft"] .os-window {
  background: #3a3a3a; backdrop-filter: none; border-radius: 0;
  border: 4px solid; border-color: #5a5a5a #232323 #232323 #5a5a5a;
  box-shadow: 6px 6px 0 rgba(0,0,0,0.5);
  transition: none;
}
[data-theme="minecraft"] .os-window.focused { box-shadow: 6px 6px 0 rgba(0,0,0,0.6), 0 0 0 2px #7bc950; }
[data-theme="minecraft"] .os-window::before { content: none; }
[data-theme="minecraft"] .win-titlebar {
  background: repeating-linear-gradient(90deg, #7a5230 0 8px, #6b4423 8px 16px);
  border-bottom: 4px solid #4a2f16;
}
[data-theme="minecraft"] .win-title { color: #fff; text-shadow: 1px 1px 0 #000; letter-spacing: 0.15em; }
[data-theme="minecraft"] .tl {
  border-radius: 0; width: 14px; height: 14px;
  box-shadow: inset -2px -2px 0 rgba(0,0,0,0.45), inset 2px 2px 0 rgba(255,255,255,0.3);
}
[data-theme="minecraft"] .tl-close { background: #dc143c; }
[data-theme="minecraft"] .tl-min { background: #e0c34c; }
[data-theme="minecraft"] .tl-max { background: #55a630; }
[data-theme="minecraft"] .tl:hover { filter: none; opacity: 0.85; }
[data-theme="minecraft"] .win-resize { background: none; border-right: 3px solid #232323; border-bottom: 3px solid #232323; }
[data-theme="minecraft"] .glass, [data-theme="minecraft"] #auth-panel, [data-theme="minecraft"] #ql-panel {
  background: #3a3a3a; backdrop-filter: none; border: 4px solid; border-radius: 0;
  border-color: #5a5a5a #232323 #232323 #5a5a5a;
}
[data-theme="minecraft"] .glass::before { content: none; }
[data-theme="minecraft"] .glass::after { opacity: 0.08; mix-blend-mode: overlay; }
[data-theme="minecraft"] .cta {
  background: #55a630; border-radius: 0; color: #fff; text-shadow: 1px 1px 0 #000;
  box-shadow: inset -2px -2px 0 rgba(0,0,0,0.35), inset 2px 2px 0 rgba(255,255,255,0.25);
}
[data-theme="minecraft"] .cta:hover {
  background: #6bbf3e; transform: none;
  box-shadow: inset -2px -2px 0 rgba(0,0,0,0.35), inset 2px 2px 0 rgba(255,255,255,0.25);
}
[data-theme="minecraft"] .cta-ghost { border: 3px solid #7f7f7f; border-radius: 0; color: #e0e0e0; }
[data-theme="minecraft"] .auth-input, [data-theme="minecraft"] .os-select { border-radius: 0; border: 2px solid #5a5a5a; background: #2b2b2b; }
[data-theme="minecraft"] .dropzone { border: 3px dashed #7f7f7f; border-radius: 0; }
[data-theme="minecraft"] .dz-icon { text-shadow: none; }
[data-theme="minecraft"] .src-check { border: 2px solid #5a5a5a; background: #2a2a2a; border-radius: 0; }
[data-theme="minecraft"] .divider { background: #232323; box-shadow: 0 1px 0 #5a5a5a; }
[data-theme="minecraft"] .range { border-radius: 0; background: #232323; }
[data-theme="minecraft"] .range::-webkit-slider-thumb { border-radius: 0; box-shadow: inset -1px -1px 0 rgba(0,0,0,0.4), inset 1px 1px 0 rgba(255,255,255,0.3); }
[data-theme="minecraft"] ::selection { background: #55a630; color: #fff; }
[data-theme="minecraft"] ::-webkit-scrollbar { width: 14px; height: 14px; }
[data-theme="minecraft"] ::-webkit-scrollbar-track { background: #2b2b2b; }
[data-theme="minecraft"] ::-webkit-scrollbar-thumb { background: #5a5a5a; border: 2px solid #232323; }

/* ───────────────────────────────────────────────────────────────────────
   SUNSET — light-mode bloom, warm glass panels (sanctioned exception)
   ─────────────────────────────────────────────────────────────────────── */
[data-theme="sunset"] {
  --primary: #ff7a3c;
  --primary-bright: #ffa24c;
  --secondary: #c0267f;
  --warn: #ffe9b0;
  --bg-void: #3c0f2e;
  --bg-space: #4a1030;
  --bg-panel: #3a0f28;
  --bg-elevated: #5a1638;
  --text: #fff7f0;
  --muted: #e8b8a8;
  --win-radius: 14px;
}
[data-theme="sunset"] #desktop {
  background:
    radial-gradient(circle 420px at 84% 90%, #ffe9b0 0%, #ffa24c 32%, rgba(255,122,60,0) 68%),
    linear-gradient(180deg, #c0267f 0%, #e23e82 34%, #ff4e8a 54%, #ff7a3c 78%, #ffa24c 100%);
}
[data-theme="sunset"] #desktop::before { background-image: none; }
[data-theme="sunset"] #desktop::after { content: none; }
[data-theme="sunset"] #menubar { background: rgba(40,10,26,0.75); border-bottom: 1px solid rgba(255,196,140,0.2); }
[data-theme="sunset"] .app-btn:hover, [data-theme="sunset"] .app-btn.active { color: #ffd9c2; background: rgba(255,158,92,0.16); }
[data-theme="sunset"] .menubar-sep { background: rgba(255,196,140,0.22); }
[data-theme="sunset"] .live-badge, [data-theme="sunset"] .credit-badge, [data-theme="sunset"] .account-btn { border-color: rgba(255,196,140,0.32); }
[data-theme="sunset"] #dock { background: rgba(35,9,24,0.72); border-right: 1px solid rgba(255,196,140,0.16); }
[data-theme="sunset"] .dock-item:hover { background: rgba(255,158,92,0.14); }
[data-theme="sunset"] .dock-item.active { background: rgba(255,158,92,0.2); color: #ffd9c2; }
[data-theme="sunset"] .dock-trash { border-top: 1px solid rgba(255,196,140,0.16); }
[data-theme="sunset"] .desktop-file:hover, [data-theme="sunset"] .desktop-file.selected { background: rgba(255,158,92,0.18); }
[data-theme="sunset"] .desktop-file.selected { outline: 1px solid rgba(255,196,140,0.55); }
[data-theme="sunset"] .df-icon.folder { background: linear-gradient(145deg, #6a1c46, #3a0f28); border: 1px solid rgba(255,196,140,0.3); }
[data-theme="sunset"] .df-icon.render-file, [data-theme="sunset"] .df-icon.preset-file { background: linear-gradient(145deg, #5a1638, #3a0f28); border: 1px solid rgba(255,122,60,0.35); }
[data-theme="sunset"] .os-window {
  background: rgba(58,15,40,0.82); border: 1px solid rgba(255,196,140,0.3);
  box-shadow: 0 24px 64px rgba(30,5,20,0.55), 0 0 40px rgba(255,122,60,0.08);
}
[data-theme="sunset"] .os-window.focused { box-shadow: 0 32px 80px rgba(30,5,20,0.6), 0 0 0 1px rgba(255,196,140,0.35), 0 0 40px rgba(255,122,60,0.14); }
[data-theme="sunset"] .os-window::before { background: linear-gradient(90deg, transparent, rgba(255,196,140,0.55) 50%, transparent); }
[data-theme="sunset"] .win-titlebar { background: rgba(30,8,20,0.55); border-bottom: 1px solid rgba(255,196,140,0.2); }
[data-theme="sunset"] .win-title { color: #ffd9c2; }
[data-theme="sunset"] .win-resize { background: linear-gradient(135deg, transparent 50%, rgba(255,196,140,0.3) 50%); }
[data-theme="sunset"] .glass, [data-theme="sunset"] #auth-panel, [data-theme="sunset"] #ql-panel { background: rgba(45,12,30,0.84); border: 1px solid rgba(255,196,140,0.25); }
[data-theme="sunset"] .glass::before { background: linear-gradient(90deg, transparent, rgba(255,196,140,0.5) 50%, transparent); }
[data-theme="sunset"] .glass::after { opacity: 0.03; }
[data-theme="sunset"] .cta { color: #2a0a18; box-shadow: 0 0 16px rgba(255,122,60,0.35); }
[data-theme="sunset"] .cta:hover { box-shadow: 0 0 28px rgba(255,122,60,0.6); }
[data-theme="sunset"] .cta-ghost { color: #ffd9c2; border-color: rgba(255,196,140,0.35); }
[data-theme="sunset"] .cta-ghost:hover { background: rgba(255,158,92,0.1); }
[data-theme="sunset"] .auth-input, [data-theme="sunset"] .os-select { background: rgba(30,8,20,0.7); border-color: rgba(255,196,140,0.28); }
[data-theme="sunset"] .dropzone { border-color: rgba(255,196,140,0.35); }
[data-theme="sunset"] .dropzone:hover, [data-theme="sunset"] .dropzone.drag-over { box-shadow: 0 0 30px rgba(255,122,60,0.22); }
[data-theme="sunset"] .dz-icon { text-shadow: 0 0 20px rgba(255,122,60,0.6); }
[data-theme="sunset"] .src-check { border-color: rgba(255,196,140,0.2); background: rgba(30,8,20,0.35); }
[data-theme="sunset"] .divider { background: rgba(255,196,140,0.16); }
[data-theme="sunset"] .range { background: rgba(255,196,140,0.16); }
[data-theme="sunset"] ::selection { background: var(--primary); color: #2a0a18; }
[data-theme="sunset"] ::-webkit-scrollbar { width: 12px; height: 12px; }
[data-theme="sunset"] ::-webkit-scrollbar-track { background: rgba(40,10,26,0.5); }
[data-theme="sunset"] ::-webkit-scrollbar-thumb { background: rgba(255,158,92,0.4); border: 2px solid rgba(40,10,26,0.5); border-radius: 6px; }

/* ───────────────────────────────────────────────────────────────────────
   PFUNK — ported from the RenderDeck PFunk skin: cosmic purple + funk gold
   ─────────────────────────────────────────────────────────────────────── */
[data-theme="pfunk"] {
  --primary: #a855f7;
  --primary-bright: #c77dff;
  --secondary: #d6409f;
  --warn: #f8b808;
  --bg-void: #08040f;
  --bg-space: #0c0719;
  --bg-panel: #160c29;
  --bg-elevated: #22143a;
  --text: #efe8f7;
  --muted: #b3a3cf;
  --font-display: 'Rajdhani','Space Grotesk',system-ui,sans-serif;
  --font-head: 'Space Grotesk',system-ui,sans-serif;
  --win-radius: 12px;
}
[data-theme="pfunk"] #desktop {
  background:
    linear-gradient(180deg, rgba(8,4,15,0.42), rgba(8,4,15,0.78)),
    var(--bg-space);
}
[data-theme="pfunk"] #desktop::before {
  background-image: none;
}
.pfunk-gallery { display: none; }
[data-theme="pfunk"] #desktop::after {
  content: '';
  position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background:
    radial-gradient(ellipse 125% 105% at 50% 42%, rgba(8,4,15,0.16), rgba(8,4,15,0.72) 72%, rgba(8,4,15,0.9)),
    linear-gradient(to bottom, rgba(8,4,15,0.7), transparent 14%, transparent 76%, rgba(8,4,15,0.9));
}
[data-theme="pfunk"] .pfunk-gallery {
  display: block;
  position: absolute; inset: 0; z-index: 0;
  overflow: hidden; pointer-events: none;
  opacity: 1;
  transition: opacity var(--pfunk-gallery-fade, 700ms) ease;
}
[data-theme="pfunk"] .pfunk-gallery.is-changing { opacity: 0; }
[data-theme="pfunk"] .pfunk-gallery__media {
  position: absolute; inset: -1%;
  width: 102%; height: 102%;
  object-fit: cover; object-position: center;
  filter: saturate(0.92) contrast(1.04);
}
[data-theme="pfunk"] .df-icon.folder {
  background: transparent;
  border: 0;
  overflow: visible;
  font-size: 0;
  filter: drop-shadow(0 4px 8px rgba(8,4,15,0.65));
}
[data-theme="pfunk"] .df-icon.folder::before {
  content: '';
  position: absolute; left: 5px; top: 25px;
  width: 42px; height: 17px;
  border: 1px solid rgba(248,184,8,0.9);
  border-radius: 50% 50% 43% 43%;
  background:
    radial-gradient(circle at 19% 54%, #ffd24a 0 2px, transparent 2.5px),
    radial-gradient(circle at 50% 63%, #c77dff 0 2.5px, transparent 3px),
    radial-gradient(circle at 81% 54%, #ffd24a 0 2px, transparent 2.5px),
    linear-gradient(180deg, #c77dff 0%, #7c2fbd 54%, #27103e 55%, #10091d 100%);
  box-shadow: 0 0 9px rgba(168,85,247,0.72), inset 0 -3px 0 rgba(248,184,8,0.38);
  transform: perspective(28px) rotateX(5deg);
}
[data-theme="pfunk"] .df-icon.folder::after {
  content: '';
  position: absolute; left: 14px; top: 11px;
  width: 24px; height: 20px;
  border: 1px solid rgba(248,184,8,0.86);
  border-radius: 50% 50% 35% 35%;
  background: radial-gradient(circle at 50% 31%, #ffd24a 0 2px, #a855f7 3px 7px, #321450 8px 100%);
  box-shadow: 0 0 10px rgba(248,184,8,0.36);
}
[data-theme="pfunk"] .desktop-file:hover .df-icon.folder,
[data-theme="pfunk"] .desktop-file.selected .df-icon.folder {
  filter: drop-shadow(0 4px 9px rgba(8,4,15,0.65)) drop-shadow(0 0 8px rgba(248,184,8,0.5));
}
[data-theme="pfunk"] .desktop-file { z-index: 2; }
[data-theme="pfunk"] .df-icon.folder {
  background: url('/assets/theme-assets/mothership-folder-icon.png?v=pfunk-film-finals-20260728') center / contain no-repeat;
}
[data-theme="pfunk"] .df-icon.folder::before,
[data-theme="pfunk"] .df-icon.folder::after { content: none; display: none; }
[data-theme="pfunk"] .app-btn[data-app="projects"] .icon,
[data-theme="pfunk"] .dock-item[data-app="projects"] .di {
  font-size: 0;
  background: url('/assets/theme-assets/mothership-folder-icon.png?v=pfunk-film-finals-20260728') center / contain no-repeat;
  filter: brightness(1.16) contrast(1.14) drop-shadow(0 0 2px rgba(248,184,8,0.82)) drop-shadow(0 0 3px rgba(168,85,247,0.62));
}
[data-theme="pfunk"] .app-btn[data-app="projects"] .icon { width: 1.35rem; height: 1.35rem; }
[data-theme="pfunk"] .dock-item[data-app="projects"] .di { width: 20px; height: 20px; }
[data-theme="pfunk"] #menubar { background: rgba(8,4,15,0.9); border-bottom: 1px solid rgba(168,85,247,0.22); }
[data-theme="pfunk"] .wordmark { text-shadow: 0 0 18px rgba(168,85,247,0.55), 0 0 28px rgba(248,184,8,0.2); }
[data-theme="pfunk"] .pfunk-header-lockup { display: flex; }
[data-theme="pfunk"] .pfunk-header-wordmark { color: #39ff14; }
[data-theme="pfunk"] .pfunk-header-lockup img { filter: drop-shadow(0 0 8px rgba(248,184,8,0.28)); }
[data-theme="pfunk"] .app-btn:hover, [data-theme="pfunk"] .app-btn.active {
  color: #ffd24a; background: rgba(168,85,247,0.14);
}
[data-theme="pfunk"] .menubar-sep { background: rgba(168,85,247,0.2); }
[data-theme="pfunk"] .live-badge, [data-theme="pfunk"] .credit-badge, [data-theme="pfunk"] .account-btn {
  border-color: rgba(248,184,8,0.35); color: #f8b808;
}
[data-theme="pfunk"] .credit-badge { color: #ffd24a; text-shadow: 0 0 10px rgba(248,184,8,0.38); }
[data-theme="pfunk"] .account-btn:hover { background: rgba(168,85,247,0.12); }
[data-theme="pfunk"] .pulse-dot { background: #f8b808; box-shadow: 0 0 8px #f8b808, 0 0 16px rgba(248,184,8,0.4); }
[data-theme="pfunk"] .pulse-dot::after { border-color: rgba(168,85,247,0.55); }
[data-theme="pfunk"] #dock { background: rgba(8,4,15,0.88); border-right: 1px solid rgba(168,85,247,0.14); }
[data-theme="pfunk"] .dock-item:hover { background: rgba(168,85,247,0.1); }
[data-theme="pfunk"] .dock-item.active { color: #ffd24a; background: rgba(248,184,8,0.12); }
[data-theme="pfunk"] .dock-trash { border-top: 1px solid rgba(168,85,247,0.14); }
[data-theme="pfunk"] .desktop-file:hover, [data-theme="pfunk"] .desktop-file.selected { background: rgba(168,85,247,0.16); }
[data-theme="pfunk"] .desktop-file.selected { outline: 1px solid rgba(248,184,8,0.62); }
[data-theme="pfunk"] .df-icon.folder {
  background: url('/assets/theme-assets/mothership-folder-icon.png?v=pfunk-film-finals-20260728') center / contain no-repeat;
  border: 0;
}
[data-theme="pfunk"] .df-icon.render-file, [data-theme="pfunk"] .df-icon.preset-file { background: linear-gradient(145deg, #241044, #120820); border: 1px solid rgba(168,85,247,0.4); }
[data-theme="pfunk"] .pfunk-only-app { display: flex !important; }
[data-theme="pfunk"] .pfunk-build-window { border-color: rgba(248,184,8,0.34); }
[data-theme="pfunk"] .pfunk-build-window .win-title { color: #ffd24a; }
[data-theme="pfunk"] .pfunk-build-body { padding: 16px; overflow: auto; }
[data-theme="pfunk"] .pfunk-build-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
[data-theme="pfunk"] .pfunk-build-eyebrow { color: #c77dff; font: 0.56rem/1.3 var(--font-mono); letter-spacing: 0.12em; }
[data-theme="pfunk"] .pfunk-build-heading { color: #fff2c2; font: 1.25rem/1.1 var(--font-head); margin-top: 3px; }
[data-theme="pfunk"] .pfunk-build-lock { color: #39ff14; font: 0.52rem/1.3 var(--font-mono); letter-spacing: 0.08em; text-align: right; }
[data-theme="pfunk"] .pfunk-build-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
[data-theme="pfunk"] .pfunk-build-card { border: 1px solid rgba(168,85,247,0.28); border-radius: 9px; overflow: hidden; background: rgba(8,4,15,0.72); }
[data-theme="pfunk"] .pfunk-build-card[data-gate="pass"] { border-color: rgba(57,255,20,0.42); }
[data-theme="pfunk"] .pfunk-build-card[data-gate="reject"] { border-color: rgba(255,95,87,0.48); opacity: 0.76; }
[data-theme="pfunk"] .pfunk-build-card[data-gate="review"] { border-color: rgba(248,184,8,0.46); }
[data-theme="pfunk"] .pfunk-build-thumb { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: #020106; }
[data-theme="pfunk"] .pfunk-build-card-body { padding: 9px; }
[data-theme="pfunk"] .pfunk-build-card-title { color: #fff2c2; font: 0.68rem/1.25 var(--font-mono); letter-spacing: 0.07em; }
[data-theme="pfunk"] .pfunk-build-card-meta { color: #c77dff; font: 0.52rem/1.35 var(--font-mono); margin-top: 4px; }
[data-theme="pfunk"] .pfunk-build-card-copy { color: rgba(255,242,194,0.72); font-size: 0.62rem; line-height: 1.45; margin: 7px 0; }
[data-theme="pfunk"] .pfunk-build-card-actions { display: flex; gap: 6px; }
[data-theme="pfunk"] .pfunk-build-card-actions a, [data-theme="pfunk"] .pfunk-build-card-actions button { flex: 1; padding: 5px 6px; border-radius: 5px; border: 1px solid rgba(248,184,8,0.34); color: #ffd24a; background: rgba(168,85,247,0.10); font: 0.52rem var(--font-mono); text-align: center; text-decoration: none; cursor: pointer; }
[data-theme="pfunk"] .pfunk-build-card-actions a:hover, [data-theme="pfunk"] .pfunk-build-card-actions button:hover { background: rgba(248,184,8,0.16); }
[data-theme="pfunk"] .pfunk-build-detail { margin-top: 13px; padding: 10px; border: 1px solid rgba(248,184,8,0.28); border-radius: 7px; background: rgba(8,4,15,0.72); }
[data-theme="pfunk"] .pfunk-build-detail img { display: block; max-width: 100%; max-height: 250px; margin: 0 auto 8px; border-radius: 5px; }
[data-theme="pfunk"] .pfunk-build-detail-label { color: #ffd24a; font: 0.62rem var(--font-mono); letter-spacing: 0.08em; }
[data-theme="pfunk"] .pfunk-build-loading, [data-theme="pfunk"] .pfunk-build-error { color: #ffd24a; font: 0.6rem var(--font-mono); padding: 20px 0; }
[data-theme="pfunk"] .pfunk-build-window .hidden { display: none; }
[data-theme="pfunk"] .pfunk-build-window .win-resize { display: block; }
[data-theme="pfunk"] .os-window {
  background: rgba(4,8,20,0.9); border: 1px solid rgba(168,85,247,0.24);
  box-shadow: 0 24px 64px rgba(8,4,15,0.66), 0 0 40px rgba(168,85,247,0.1);
}
[data-theme="pfunk"] .os-window.focused { box-shadow: 0 30px 76px rgba(8,4,15,0.74), 0 0 0 1px rgba(248,184,8,0.42), 0 0 44px rgba(168,85,247,0.18); }
[data-theme="pfunk"] .os-window::before { background: linear-gradient(90deg, transparent, rgba(248,184,8,0.62) 50%, transparent); }
[data-theme="pfunk"] .win-titlebar { background: rgba(8,4,15,0.72); border-bottom: 1px solid rgba(168,85,247,0.2); }
[data-theme="pfunk"] .win-title { color: #ffd24a; }
[data-theme="pfunk"] .win-resize { background: linear-gradient(135deg, transparent 50%, rgba(248,184,8,0.3) 50%); }
[data-theme="pfunk"] .glass, [data-theme="pfunk"] #auth-panel, [data-theme="pfunk"] #ql-panel {
  background: rgba(4,8,20,0.78); border: 1px solid rgba(168,85,247,0.18);
}
[data-theme="pfunk"] .glass::before { background: linear-gradient(90deg, transparent, rgba(168,85,247,0.55) 50%, transparent); }
[data-theme="pfunk"] .glass::after { opacity: 0.03; }
[data-theme="pfunk"] .cta { color: #08040f; background: #a855f7; box-shadow: 0 0 16px rgba(168,85,247,0.32); }
[data-theme="pfunk"] .cta:hover { box-shadow: 0 0 28px rgba(168,85,247,0.58), 0 0 18px rgba(248,184,8,0.3); }
[data-theme="pfunk"] .cta-ghost { color: #ffd24a; border-color: rgba(248,184,8,0.38); }
[data-theme="pfunk"] .cta-ghost:hover { background: rgba(168,85,247,0.12); }
[data-theme="pfunk"] .auth-input, [data-theme="pfunk"] .os-select { background: rgba(8,4,15,0.82); border-color: rgba(168,85,247,0.26); }
[data-theme="pfunk"] .dropzone { border-color: rgba(168,85,247,0.38); }
[data-theme="pfunk"] .dropzone:hover, [data-theme="pfunk"] .dropzone.drag-over { border-color: #f8b808; box-shadow: 0 0 30px rgba(248,184,8,0.22); }
[data-theme="pfunk"] .dz-icon { color: #ffd24a; text-shadow: 0 0 20px rgba(168,85,247,0.6); }
[data-theme="pfunk"] .src-check { border-color: rgba(168,85,247,0.18); background: rgba(8,4,15,0.5); }
[data-theme="pfunk"] .divider { background: rgba(168,85,247,0.16); }
[data-theme="pfunk"] .range { background: rgba(168,85,247,0.16); }
[data-theme="pfunk"] .range::-webkit-slider-thumb { box-shadow: 0 0 10px rgba(248,184,8,0.72); }
[data-theme="pfunk"] ::selection { background: #a855f7; color: #08040f; }
[data-theme="pfunk"] ::-webkit-scrollbar { width: 12px; height: 12px; }
[data-theme="pfunk"] ::-webkit-scrollbar-track { background: rgba(8,4,15,0.66); }
[data-theme="pfunk"] ::-webkit-scrollbar-thumb { background: rgba(168,85,247,0.42); border: 2px solid rgba(8,4,15,0.66); border-radius: 6px; }
@media (prefers-reduced-motion: reduce) {
  [data-theme="pfunk"] .pfunk-gallery { transition: none; }
}

/* ───────────────────────────────────────────────────────────────────────
   CRT — green phosphor terminal (bonus)
   ─────────────────────────────────────────────────────────────────────── */
[data-theme="crt"] {
  --primary: #33ff66;
  --primary-bright: #7dffa0;
  --secondary: #1fbf4c;
  --warn: #ffcc33;
  --bg-void: #000000;
  --bg-space: #010401;
  --bg-panel: #020a03;
  --bg-elevated: #04140a;
  --text: #c8ffd2;
  --muted: #4d9966;
  --font-display: 'JetBrains Mono', 'Consolas', monospace;
  --font-head: 'JetBrains Mono', 'Consolas', monospace;
  --win-radius: 2px;
}
[data-theme="crt"] #desktop {
  background: radial-gradient(ellipse 80% 50% at 50% 40%, rgba(51,255,102,0.06), transparent 60%), #000;
}
[data-theme="crt"] #desktop::before { background-image: none; }
[data-theme="crt"] #desktop::after { content: none; }
[data-theme="crt"] #shell::after {
  content: '';
  position: fixed; inset: 0; pointer-events: none; z-index: 2000;
  background: repeating-linear-gradient(0deg, rgba(255,255,255,0.025) 0 1px, transparent 1px 4px);
  animation: crt-flicker 4s steps(2) infinite;
  mix-blend-mode: overlay;
}
@keyframes crt-flicker { 0%, 100% { opacity: 0.98; } 50% { opacity: 1; } }
[data-theme="crt"] #menubar { background: rgba(0,4,1,0.9); border-bottom: 1px solid rgba(51,255,102,0.2); }
[data-theme="crt"] .wordmark { text-shadow: 0 0 18px rgba(51,255,102,0.6); }
[data-theme="crt"] .app-btn:hover, [data-theme="crt"] .app-btn.active {
  color: #33ff66; background: rgba(51,255,102,0.09); text-shadow: 0 0 6px rgba(51,255,102,0.5);
}
[data-theme="crt"] .menubar-sep { background: rgba(51,255,102,0.16); }
[data-theme="crt"] .live-badge, [data-theme="crt"] .credit-badge, [data-theme="crt"] .account-btn {
  border-radius: 3px; border-color: rgba(51,255,102,0.3); text-shadow: 0 0 8px rgba(51,255,102,0.4);
}
[data-theme="crt"] #dock { background: rgba(0,6,2,0.88); border-right: 1px solid rgba(51,255,102,0.12); }
[data-theme="crt"] .dock-item:hover { background: rgba(51,255,102,0.08); }
[data-theme="crt"] .dock-item.active { background: rgba(51,255,102,0.14); }
[data-theme="crt"] .dock-trash { border-top: 1px solid rgba(51,255,102,0.12); }
[data-theme="crt"] .desktop-file.selected { outline: 1px solid rgba(51,255,102,0.5); }
[data-theme="crt"] .os-window {
  background: rgba(0,6,2,0.92); border: 1px solid rgba(51,255,102,0.35);
  box-shadow: 0 0 30px rgba(51,255,102,0.08), 0 24px 64px rgba(0,0,0,0.8);
}
[data-theme="crt"] .os-window.focused { box-shadow: 0 0 46px rgba(51,255,102,0.16), 0 32px 80px rgba(0,0,0,0.85); }
[data-theme="crt"] .os-window::before { background: linear-gradient(90deg, transparent, rgba(51,255,102,0.6) 50%, transparent); }
[data-theme="crt"] .win-titlebar { background: rgba(0,4,1,0.75); border-bottom: 1px solid rgba(51,255,102,0.25); }
[data-theme="crt"] .win-title { color: #8dffab; text-shadow: 0 0 6px rgba(51,255,102,0.6); }
[data-theme="crt"] .tl { background: #0a2a12; border: 1px solid rgba(51,255,102,0.5); box-shadow: 0 0 4px rgba(51,255,102,0.4); }
[data-theme="crt"] .tl-close { background: #1a5c2e; }
[data-theme="crt"] .tl-min { background: #2a8f4a; }
[data-theme="crt"] .tl-max { background: #33ff66; }
[data-theme="crt"] .glass, [data-theme="crt"] #auth-panel, [data-theme="crt"] #ql-panel { background: rgba(0,8,3,0.9); border: 1px solid rgba(51,255,102,0.3); }
[data-theme="crt"] .glass::before { background: linear-gradient(90deg, transparent, rgba(51,255,102,0.55) 50%, transparent); }
[data-theme="crt"] .glass::after { mix-blend-mode: screen; opacity: 0.02; }
[data-theme="crt"] .cta { color: #001a08; box-shadow: 0 0 16px rgba(51,255,102,0.3); }
[data-theme="crt"] .cta:hover { box-shadow: 0 0 28px rgba(51,255,102,0.55); }
[data-theme="crt"] .cta-ghost { border-color: rgba(51,255,102,0.35); }
[data-theme="crt"] .auth-input, [data-theme="crt"] .os-select { background: rgba(0,6,2,0.8); border-color: rgba(51,255,102,0.25); }
[data-theme="crt"] .dropzone { border-color: rgba(51,255,102,0.3); }
[data-theme="crt"] .dropzone:hover, [data-theme="crt"] .dropzone.drag-over { box-shadow: 0 0 30px rgba(51,255,102,0.16); }
[data-theme="crt"] .dz-icon { text-shadow: 0 0 20px rgba(51,255,102,0.6); }
[data-theme="crt"] .src-check { border-color: rgba(51,255,102,0.15); background: rgba(0,6,2,0.5); }
[data-theme="crt"] .divider { background: rgba(51,255,102,0.14); }
[data-theme="crt"] .range { background: rgba(51,255,102,0.14); }
[data-theme="crt"] ::selection { background: #33ff66; color: #001a08; }
[data-theme="crt"] ::-webkit-scrollbar { width: 10px; height: 10px; }
[data-theme="crt"] ::-webkit-scrollbar-track { background: #000; }
[data-theme="crt"] ::-webkit-scrollbar-thumb { background: rgba(51,255,102,0.4); border: 2px solid #000; }

/* ═══════════════════════════════════════════════════════════════════════
   === Wavesmith logo ===
   "POWERED BY WAVESMITH" brand-credit footer strip, injected into #win-source
   by studio-wavesmith-logo.js. Base rules below (bare selectors) ARE the
   default/lightbrush look — every other theme overrides via [data-theme="X"].
   DOM: #ws-logo-mount > .ws-logo > .ws-pre + .ws-word(.ws-letter × 9 + .ws-scan)
        + .ws-cursor
   ═══════════════════════════════════════════════════════════════════════ */
#ws-logo-mount {
  flex: 0 0 auto;
  display: flex; align-items: center; justify-content: center;
  padding: 8px 22px 8px 16px;
  border-top: 1px solid rgba(20,215,242,0.14);
  background: rgba(2,4,8,0.35);
}
.ws-logo { display: flex; align-items: baseline; gap: 8px; justify-content: center; }
.ws-pre {
  font-family: var(--font-mono); font-size: 0.5rem; letter-spacing: 0.16em;
  color: var(--muted); opacity: 0.85; white-space: nowrap;
}
.ws-word {
  position: relative; display: inline-flex; white-space: nowrap;
  font-family: var(--font-display); font-weight: 700; font-size: 1.05rem;
  letter-spacing: 0.12em;
  background: linear-gradient(100deg, var(--primary) 0%, var(--primary) 42%, var(--primary-bright) 50%, var(--primary) 58%, var(--primary) 100%);
  background-size: 220% 100%;
  -webkit-background-clip: text; background-clip: text;
  color: transparent; -webkit-text-fill-color: transparent;
  text-shadow: 0 0 14px rgba(20,215,242,0.5), 0 0 30px rgba(6,251,252,0.22);
  animation: ws-sweep-cyan 3.4s linear infinite;
}
.ws-letter { display: inline-block; }
.ws-word .ws-scan { display: none; }
.ws-cursor { display: none; }
@keyframes ws-sweep-cyan { from { background-position: 200% 0; } to { background-position: -60% 0; } }

@media (prefers-reduced-motion: reduce) {
  .ws-logo, .ws-logo * { animation: none !important; transition: none !important; }
  .ws-word, .ws-word::before, .ws-word::after { background-position: 0 0 !important; }
  .ws-word::before, .ws-word::after, .ws-word .ws-scan, .ws-cursor { display: none !important; }
  /* Themes reveal letters via animation (crt typewriter-in, minecraft pop-in) —
     force the settled/visible end-state so reduced motion still shows the full
     static wordmark instead of the pre-animation opacity:0/scale(0) state. */
  .ws-letter { opacity: 1 !important; transform: none !important; }
}

/* ── agentpunk: glitchy RGB-split / datamosh flicker + chromatic aberration ── */
[data-theme="agentpunk"] #ws-logo-mount { border-top-color: rgba(168,85,247,0.28); background: rgba(10,1,20,0.4); }
[data-theme="agentpunk"] .ws-pre { color: #C084FC; text-shadow: 0 0 6px rgba(192,132,252,0.5); }
[data-theme="agentpunk"] .ws-word {
  background: none; -webkit-text-fill-color: unset;
  color: #EDE9FE; text-shadow: 0 0 10px rgba(168,85,247,0.7), 0 0 22px rgba(255,46,154,0.25);
  animation: ws-ap-flicker 2.6s steps(1) infinite;
}
[data-theme="agentpunk"] .ws-word::before,
[data-theme="agentpunk"] .ws-word::after {
  content: attr(data-text); position: absolute; left: 0; top: 0; width: 100%;
  pointer-events: none; mix-blend-mode: screen;
}
[data-theme="agentpunk"] .ws-word::before { color: #39FF14; clip-path: inset(0 0 55% 0); opacity: 0.8; animation: ws-ap-glitch-a 2.4s steps(2) infinite; }
[data-theme="agentpunk"] .ws-word::after  { color: #FF2E9A; clip-path: inset(50% 0 0 0); opacity: 0.75; animation: ws-ap-glitch-b 3.1s steps(2) infinite; }
[data-theme="agentpunk"] .ws-word .ws-scan {
  display: block; position: absolute; inset: -4px -14px;
  background: linear-gradient(100deg, transparent 42%, rgba(255,255,255,0.6) 50%, transparent 58%);
  mix-blend-mode: screen; animation: ws-ap-scan 2.8s linear infinite;
}
@keyframes ws-ap-flicker { 0%,89%,100% { opacity: 1; } 90% { opacity: 0.55; } 92% { opacity: 1; } 94% { opacity: 0.7; } 96% { opacity: 1; } }
@keyframes ws-ap-glitch-a { 0%,100% { transform: translate(0,0); } 22% { transform: translate(-2px,1px); } 48% { transform: translate(2px,-1px); } 74% { transform: translate(-1px,0); } }
@keyframes ws-ap-glitch-b { 0%,100% { transform: translate(0,0); } 30% { transform: translate(2px,1px); } 55% { transform: translate(-2px,-1px); } 80% { transform: translate(1px,1px); } }
@keyframes ws-ap-scan { from { transform: translateX(-120%); } to { transform: translateX(120%); } }

/* ── win31: chunky beveled silver plate, no glow, single-tick blink cursor ── */
[data-theme="win31"] #ws-logo-mount { border-top: 1px solid #808080; background: #c0c0c0; }
[data-theme="win31"] .ws-pre { color: #000; font-family: 'MS Sans Serif','Tahoma',sans-serif; }
[data-theme="win31"] .ws-word {
  background: none; -webkit-text-fill-color: #000080; color: #000080; font-family: 'MS Sans Serif','Tahoma',sans-serif; font-weight: 700;
  padding: 3px 10px; background-color: #c0c0c0;
  border: 2px solid; border-color: #fff #808080 #808080 #fff;
  box-shadow: inset 1px 1px 0 #dfdfdf;
  animation: none;
}
[data-theme="win31"] .ws-word::before, [data-theme="win31"] .ws-word::after { content: none; }
[data-theme="win31"] .ws-cursor {
  display: inline-block; width: 7px; height: 12px; background: #000080; margin-left: 2px;
  animation: ws-win31-blink 1s steps(1) infinite;
}
@keyframes ws-win31-blink { 0%,49% { opacity: 1; } 50%,100% { opacity: 0; } }

/* ── winxp: glassy Luna gel-button plate with a soft sheen sweep ── */
[data-theme="winxp"] #ws-logo-mount { border-top: 1px solid #9fbbe0; background: linear-gradient(180deg,#f5f8fd,#e3ecf9); }
[data-theme="winxp"] .ws-pre { color: #245edc; }
[data-theme="winxp"] .ws-word {
  background: linear-gradient(180deg,#7fb4f0 0%,#245EDC 48%,#123a8f 100%);
  -webkit-background-clip: border-box; background-clip: border-box;
  -webkit-text-fill-color: #fff; color: #fff;
  text-shadow: 0 1px 1px rgba(0,0,0,0.35);
  border: 1px solid #0a2e6e; border-radius: 11px; padding: 3px 12px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.55);
  overflow: hidden; animation: none;
}
[data-theme="winxp"] .ws-word .ws-scan {
  display: block; position: absolute; inset: 0;
  background: linear-gradient(100deg, transparent 30%, rgba(255,255,255,0.75) 50%, transparent 70%);
  animation: ws-xp-sheen 2s ease-in-out infinite;
}
@keyframes ws-xp-sheen {
  0%,100% { transform: translateX(-90%); opacity: 0.25; }
  50% { transform: translateX(90%); opacity: 0.95; }
}

/* ── minecraft: blocky pixelated text, hard shadow, per-letter "place" pop-in ── */
[data-theme="minecraft"] #ws-logo-mount { border-top: 4px solid #232323; background: #2b2b2b; }
[data-theme="minecraft"] .ws-pre { color: #b0aa9a; text-shadow: 1px 1px 0 #000; }
[data-theme="minecraft"] .ws-word {
  background: none; -webkit-text-fill-color: unset;
  color: #7bc950; text-shadow: 2px 2px 0 #1b1b1b; letter-spacing: 0.05em; animation: none;
}
[data-theme="minecraft"] .ws-letter {
  transform: scale(0); opacity: 0;
  animation: ws-mc-pop 2.6s steps(1) infinite;
  animation-delay: calc(var(--i) * 0.12s);
}
@keyframes ws-mc-pop {
  0% { transform: scale(0) translateY(6px); opacity: 0; }
  6% { transform: scale(1.3) translateY(0); opacity: 1; }
  12% { transform: scale(0.9); }
  16%,86% { transform: scale(1); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}

/* ── sunset: warm gradient shimmer + gentle golden pulse ── */
[data-theme="sunset"] #ws-logo-mount { border-top: 1px solid rgba(255,196,140,0.25); background: rgba(40,10,26,0.35); }
[data-theme="sunset"] .ws-pre { color: #ffd9c2; }
[data-theme="sunset"] .ws-word {
  background: linear-gradient(100deg,#C0267F 0%,#FF4E8A 35%,#FF7A3C 65%,#FFE9B0 100%);
  background-size: 230% 100%;
  -webkit-background-clip: text; background-clip: text;
  color: transparent; -webkit-text-fill-color: transparent;
  text-shadow: 0 0 18px rgba(255,122,60,0.35);
  animation: ws-sunset-shimmer 5s ease-in-out infinite, ws-sunset-pulse 4s ease-in-out infinite;
}
@keyframes ws-sunset-shimmer { 0%,100% { background-position: 0% 0; } 50% { background-position: 100% 0; } }
@keyframes ws-sunset-pulse { 0%,100% { filter: drop-shadow(0 0 6px rgba(255,196,140,0.35)); } 50% { filter: drop-shadow(0 0 16px rgba(255,196,140,0.65)); } }

/* ── pfunk: actual Parliament-Funkadelic mark + Wavesmith credit ── */
[data-theme="pfunk"] #ws-logo-mount {
  flex-direction: column; align-items: stretch; gap: 5px;
  padding: 10px 16px 9px;
  border-top: 2px solid rgba(248,184,8,0.36);
  background: linear-gradient(135deg, rgba(30,17,64,0.86), rgba(8,4,15,0.78));
}
[data-theme="pfunk"] #ws-logo-mount::before {
  content: ''; display: block; width: 100%; height: 30px;
  background: url('/assets/theme-assets/parliament-funkadelic-logo.png') center / contain no-repeat;
  filter: drop-shadow(0 0 8px rgba(248,184,8,0.28));
}
[data-theme="pfunk"] .ws-logo { gap: 8px; }
[data-theme="pfunk"] .ws-pre { color: #b3a3cf; }
[data-theme="pfunk"] .ws-word {
  background: linear-gradient(100deg, #a855f7 0%, #c77dff 50%, #f8b808 100%);
  -webkit-background-clip: text; background-clip: text;
  color: transparent; -webkit-text-fill-color: transparent;
  text-shadow: 0 0 14px rgba(168,85,247,0.38);
  animation: none;
}
[data-theme="pfunk"] .ws-word::before, [data-theme="pfunk"] .ws-word::after,
[data-theme="pfunk"] .ws-word .ws-scan, [data-theme="pfunk"] .ws-cursor { display: none; }

/* ── crt: green phosphor glow + flicker + typewriter boot-scan letter reveal ── */
[data-theme="crt"] #ws-logo-mount { border-top: 1px solid rgba(51,255,102,0.25); background: rgba(0,6,2,0.4); }
[data-theme="crt"] .ws-pre { color: #8dffab; text-shadow: 0 0 6px rgba(51,255,102,0.5); font-family: var(--font-mono); }
[data-theme="crt"] .ws-word {
  background: none; -webkit-text-fill-color: unset;
  color: #33ff66; font-family: var(--font-mono);
  text-shadow: 0 0 8px rgba(51,255,102,0.65), 0 0 18px rgba(51,255,102,0.3);
  animation: ws-crt-flicker 3.6s steps(1) infinite;
}
[data-theme="crt"] .ws-letter {
  opacity: 0;
  animation: ws-crt-reveal 0.12s steps(1) both;
  animation-delay: calc(var(--i) * 0.09s);
}
[data-theme="crt"] .ws-cursor {
  display: inline-block; width: 8px; height: 14px; background: #33ff66;
  box-shadow: 0 0 8px rgba(51,255,102,0.7);
  animation: ws-crt-cursor 0.9s steps(1) infinite;
}
@keyframes ws-crt-reveal { 0% { opacity: 0; } 100% { opacity: 1; } }
@keyframes ws-crt-flicker { 0%,96%,100% { opacity: 1; } 97% { opacity: 0.7; } 98% { opacity: 1; } 99% { opacity: 0.85; } }
@keyframes ws-crt-cursor { 0%,49% { opacity: 1; } 50%,100% { opacity: 0; } }
