<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://colourversalwikis.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=King+of+the+colours</id>
	<title>Skateboarding on the Pacific Ocean - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://colourversalwikis.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=King+of+the+colours"/>
	<link rel="alternate" type="text/html" href="https://colourversalwikis.com/index.php/Special:Contributions/King_of_the_colours"/>
	<updated>2026-04-20T22:40:41Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://colourversalwikis.com/index.php?title=MediaWiki:Common.js&amp;diff=5</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://colourversalwikis.com/index.php?title=MediaWiki:Common.js&amp;diff=5"/>
		<updated>2026-04-16T11:00:46Z</updated>

		<summary type="html">&lt;p&gt;King of the colours: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/**&lt;br /&gt;
 * Willoughby Tucker, I&#039;ll Always Love You — MediaWiki Skin JS&lt;br /&gt;
 * Ethel Cain, 2025&lt;br /&gt;
 *&lt;br /&gt;
 * Load via MediaWiki:Common.js or skin template&lt;br /&gt;
 * Requires: vanilla JS, no dependencies&lt;br /&gt;
 *&lt;br /&gt;
 * Effects:&lt;br /&gt;
 *  1. Amber loading bar&lt;br /&gt;
 *  2. Dust particle system&lt;br /&gt;
 *  3. Magnetic cursor (dot + ring)&lt;br /&gt;
 *  4. Scroll-reveal observer&lt;br /&gt;
 *  5. Sidebar link ripples&lt;br /&gt;
 *  6. Title ambient pulse&lt;br /&gt;
 *  7. Search placeholder cycling&lt;br /&gt;
 *  8. VHS glitch on title&lt;br /&gt;
 *  9. Table row glow&lt;br /&gt;
 * 10. Fog parallax on sidebar&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/* ═══════════════════════════════════════════════════════&lt;br /&gt;
   JS EFFECTS&lt;br /&gt;
   ═══════════════════════════════════════════════════════ */&lt;br /&gt;
&lt;br /&gt;
/* 1. Amber loading bar */&lt;br /&gt;
(function() {&lt;br /&gt;
  const bar = document.getElementById(&#039;loading-bar&#039;);&lt;br /&gt;
  if (!bar) return;&lt;br /&gt;
  let w = 0;&lt;br /&gt;
  const iv = setInterval(() =&amp;gt; {&lt;br /&gt;
    w += Math.random() * 18 + 4;&lt;br /&gt;
    if (w &amp;gt;= 95) { clearInterval(iv); w = 95; }&lt;br /&gt;
    bar.style.width = w + &#039;%&#039;;&lt;br /&gt;
  }, 80);&lt;br /&gt;
  window.addEventListener(&#039;load&#039;, () =&amp;gt; {&lt;br /&gt;
    clearInterval(iv);&lt;br /&gt;
    bar.style.width = &#039;100%&#039;;&lt;br /&gt;
    setTimeout(() =&amp;gt; { bar.style.opacity = &#039;0&#039;; bar.style.transition = &#039;opacity 0.5s&#039;; }, 300);&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* 2. Dust particle system */&lt;br /&gt;
(function() {&lt;br /&gt;
  const canvas = document.getElementById(&#039;dust-canvas&#039;);&lt;br /&gt;
  if (!canvas) return;&lt;br /&gt;
  const ctx = canvas.getContext(&#039;2d&#039;);&lt;br /&gt;
  let W, H, particles = [];&lt;br /&gt;
&lt;br /&gt;
  function resize() {&lt;br /&gt;
    W = canvas.width = window.innerWidth;&lt;br /&gt;
    H = canvas.height = window.innerHeight;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function createParticle() {&lt;br /&gt;
    return {&lt;br /&gt;
      x: Math.random() * W,&lt;br /&gt;
      y: H + Math.random() * 20,&lt;br /&gt;
      vx: (Math.random() - 0.5) * 0.4,&lt;br /&gt;
      vy: -(Math.random() * 0.6 + 0.1),&lt;br /&gt;
      size: Math.random() * 2 + 0.3,&lt;br /&gt;
      opacity: Math.random() * 0.5 + 0.1,&lt;br /&gt;
      life: 0,&lt;br /&gt;
      maxLife: Math.random() * 600 + 200,&lt;br /&gt;
      hue: Math.random() * 20 + 25&lt;br /&gt;
    };&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for (let i = 0; i &amp;lt; 80; i++) {&lt;br /&gt;
    const p = createParticle();&lt;br /&gt;
    p.y = Math.random() * H;&lt;br /&gt;
    p.life = Math.random() * p.maxLife;&lt;br /&gt;
    particles.push(p);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function draw() {&lt;br /&gt;
    ctx.clearRect(0, 0, W, H);&lt;br /&gt;
    for (let i = particles.length - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
      const p = particles[i];&lt;br /&gt;
      p.x += p.vx + Math.sin(p.life * 0.01) * 0.15;&lt;br /&gt;
      p.y += p.vy;&lt;br /&gt;
      p.life++;&lt;br /&gt;
&lt;br /&gt;
      const fade = p.life &amp;lt; 60 ? p.life / 60 : p.life &amp;gt; p.maxLife - 60 ? (p.maxLife - p.life) / 60 : 1;&lt;br /&gt;
      ctx.beginPath();&lt;br /&gt;
      ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);&lt;br /&gt;
      ctx.fillStyle = `hsla(${p.hue}, 55%, 60%, ${p.opacity * fade})`;&lt;br /&gt;
      ctx.fill();&lt;br /&gt;
&lt;br /&gt;
      if (p.life &amp;gt;= p.maxLife || p.y &amp;lt; -10) {&lt;br /&gt;
        particles[i] = createParticle();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Occasional larger dust mote&lt;br /&gt;
    if (Math.random() &amp;lt; 0.01 &amp;amp;&amp;amp; particles.length &amp;lt; 120) {&lt;br /&gt;
      const mote = createParticle();&lt;br /&gt;
      mote.size = Math.random() * 3 + 1.5;&lt;br /&gt;
      mote.opacity = 0.08;&lt;br /&gt;
      mote.vy = -(Math.random() * 0.2 + 0.05);&lt;br /&gt;
      particles.push(mote);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    requestAnimationFrame(draw);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  resize();&lt;br /&gt;
  window.addEventListener(&#039;resize&#039;, resize);&lt;br /&gt;
  draw();&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* 3. Magnetic cursor */&lt;br /&gt;
(function() {&lt;br /&gt;
  const dot = document.getElementById(&#039;cursor-dot&#039;);&lt;br /&gt;
  const ring = document.getElementById(&#039;cursor-ring&#039;);&lt;br /&gt;
  if (!dot || !ring) return;&lt;br /&gt;
&lt;br /&gt;
  let mx = 0, my = 0, rx = 0, ry = 0;&lt;br /&gt;
  let entered = false;&lt;br /&gt;
&lt;br /&gt;
  document.addEventListener(&#039;mouseenter&#039;, () =&amp;gt; {&lt;br /&gt;
    entered = true;&lt;br /&gt;
    dot.style.opacity = &#039;1&#039;;&lt;br /&gt;
    ring.style.opacity = &#039;1&#039;;&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  document.addEventListener(&#039;mouseleave&#039;, () =&amp;gt; {&lt;br /&gt;
    entered = false;&lt;br /&gt;
    dot.style.opacity = &#039;0&#039;;&lt;br /&gt;
    ring.style.opacity = &#039;0&#039;;&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  document.addEventListener(&#039;mousemove&#039;, e =&amp;gt; {&lt;br /&gt;
    mx = e.clientX; my = e.clientY;&lt;br /&gt;
    dot.style.left = mx + &#039;px&#039;;&lt;br /&gt;
    dot.style.top  = my + &#039;px&#039;;&lt;br /&gt;
    if (!entered) { dot.style.opacity = &#039;1&#039;; ring.style.opacity = &#039;0.7&#039;; entered = true; }&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  // Links make cursor expand&lt;br /&gt;
  document.querySelectorAll(&#039;a, button&#039;).forEach(el =&amp;gt; {&lt;br /&gt;
    el.addEventListener(&#039;mouseenter&#039;, () =&amp;gt; {&lt;br /&gt;
      ring.style.width  = &#039;44px&#039;;&lt;br /&gt;
      ring.style.height = &#039;44px&#039;;&lt;br /&gt;
      ring.style.borderColor = &#039;rgba(200,132,58,0.8)&#039;;&lt;br /&gt;
      dot.style.transform = &#039;translate(-50%,-50%) scale(1.8)&#039;;&lt;br /&gt;
    });&lt;br /&gt;
    el.addEventListener(&#039;mouseleave&#039;, () =&amp;gt; {&lt;br /&gt;
      ring.style.width  = &#039;28px&#039;;&lt;br /&gt;
      ring.style.height = &#039;28px&#039;;&lt;br /&gt;
      ring.style.borderColor = &#039;rgba(200,132,58,0.4)&#039;;&lt;br /&gt;
      dot.style.transform = &#039;translate(-50%,-50%) scale(1)&#039;;&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  // Smooth ring follow&lt;br /&gt;
  function lerp(a, b, t) { return a + (b - a) * t; }&lt;br /&gt;
  function animate() {&lt;br /&gt;
    rx = lerp(rx, mx, 0.12);&lt;br /&gt;
    ry = lerp(ry, my, 0.12);&lt;br /&gt;
    ring.style.left = rx + &#039;px&#039;;&lt;br /&gt;
    ring.style.top  = ry + &#039;px&#039;;&lt;br /&gt;
    requestAnimationFrame(animate);&lt;br /&gt;
  }&lt;br /&gt;
  animate();&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* 4. Scroll-reveal observer */&lt;br /&gt;
(function() {&lt;br /&gt;
  const els = document.querySelectorAll(&#039;.scroll-reveal&#039;);&lt;br /&gt;
  const obs = new IntersectionObserver(entries =&amp;gt; {&lt;br /&gt;
    entries.forEach(e =&amp;gt; {&lt;br /&gt;
      if (e.isIntersecting) {&lt;br /&gt;
        e.target.classList.add(&#039;revealed&#039;);&lt;br /&gt;
        obs.unobserve(e.target);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }, { threshold: 0.12 });&lt;br /&gt;
  els.forEach(el =&amp;gt; obs.observe(el));&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* 5. Sidebar link ripple */&lt;br /&gt;
(function() {&lt;br /&gt;
  document.querySelectorAll(&#039;.portal a&#039;).forEach(link =&amp;gt; {&lt;br /&gt;
    link.addEventListener(&#039;click&#039;, function(e) {&lt;br /&gt;
      const ripple = document.createElement(&#039;span&#039;);&lt;br /&gt;
      ripple.style.cssText = `&lt;br /&gt;
        position: absolute;&lt;br /&gt;
        border-radius: 50%;&lt;br /&gt;
        background: rgba(200,132,58,0.25);&lt;br /&gt;
        width: 6px; height: 6px;&lt;br /&gt;
        top: 50%; left: ${e.offsetX}px;&lt;br /&gt;
        transform: translate(-50%,-50%) scale(0);&lt;br /&gt;
        animation: ripple-out 0.5s ease forwards;&lt;br /&gt;
        pointer-events: none;&lt;br /&gt;
      `;&lt;br /&gt;
      link.appendChild(ripple);&lt;br /&gt;
      setTimeout(() =&amp;gt; ripple.remove(), 500);&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  const style = document.createElement(&#039;style&#039;);&lt;br /&gt;
  style.textContent = `&lt;br /&gt;
    @keyframes ripple-out {&lt;br /&gt;
      to { transform: translate(-50%,-50%) scale(20); opacity: 0; }&lt;br /&gt;
    }&lt;br /&gt;
  `;&lt;br /&gt;
  document.head.appendChild(style);&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* 6. Ambient audio visualizer hint (subtle amber pulse on #firstHeading) */&lt;br /&gt;
(function() {&lt;br /&gt;
  const title = document.getElementById(&#039;firstHeading&#039;);&lt;br /&gt;
  if (!title) return;&lt;br /&gt;
  let frame = 0;&lt;br /&gt;
  function pulse() {&lt;br /&gt;
    frame++;&lt;br /&gt;
    const s = 1 + Math.sin(frame * 0.025) * 0.003;&lt;br /&gt;
    const g = 0.3 + Math.sin(frame * 0.018) * 0.15;&lt;br /&gt;
    title.style.textShadow = `0 2px ${30 + Math.sin(frame*0.02)*20}px rgba(200,132,58,${g})`;&lt;br /&gt;
    requestAnimationFrame(pulse);&lt;br /&gt;
  }&lt;br /&gt;
  pulse();&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* 7. Search bar typewriter placeholder cycling */&lt;br /&gt;
(function() {&lt;br /&gt;
  const input = document.getElementById(&#039;searchInput&#039;);&lt;br /&gt;
  if (!input) return;&lt;br /&gt;
  const phrases = [&lt;br /&gt;
    &#039;search the dust…&#039;,&lt;br /&gt;
    &#039;find Willoughby…&#039;,&lt;br /&gt;
    &#039;janie, please stay…&#039;,&lt;br /&gt;
    &#039;nettles and ghosts…&#039;,&lt;br /&gt;
    &#039;waco, texas, 1986…&#039;,&lt;br /&gt;
    &#039;i\&#039;ll always love you…&#039;&lt;br /&gt;
  ];&lt;br /&gt;
  let i = 0;&lt;br /&gt;
  setInterval(() =&amp;gt; {&lt;br /&gt;
    if (document.activeElement !== input) {&lt;br /&gt;
      i = (i + 1) % phrases.length;&lt;br /&gt;
      input.placeholder = phrases[i];&lt;br /&gt;
    }&lt;br /&gt;
  }, 3200);&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* 8. VHS glitch flicker on title — rare, occasional */&lt;br /&gt;
(function() {&lt;br /&gt;
  const title = document.getElementById(&#039;firstHeading&#039;);&lt;br /&gt;
  if (!title) return;&lt;br /&gt;
  function maybeGlitch() {&lt;br /&gt;
    if (Math.random() &amp;lt; 0.3) {&lt;br /&gt;
      title.style.transition = &#039;none&#039;;&lt;br /&gt;
      title.style.transform = `translateX(${(Math.random()-0.5)*3}px)`;&lt;br /&gt;
      title.style.filter = &#039;brightness(1.3) saturate(0.5)&#039;;&lt;br /&gt;
      setTimeout(() =&amp;gt; {&lt;br /&gt;
        title.style.transform = &#039;translateX(0)&#039;;&lt;br /&gt;
        title.style.filter = &#039;&#039;;&lt;br /&gt;
      }, 60 + Math.random() * 80);&lt;br /&gt;
    }&lt;br /&gt;
    setTimeout(maybeGlitch, 4000 + Math.random() * 8000);&lt;br /&gt;
  }&lt;br /&gt;
  setTimeout(maybeGlitch, 5000);&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* 9. Table row glow on hover */&lt;br /&gt;
(function() {&lt;br /&gt;
  document.querySelectorAll(&#039;.wikitable tbody tr&#039;).forEach(row =&amp;gt; {&lt;br /&gt;
    row.addEventListener(&#039;mouseenter&#039;, () =&amp;gt; {&lt;br /&gt;
      row.style.boxShadow = &#039;inset 0 0 40px rgba(200,132,58,0.07)&#039;;&lt;br /&gt;
    });&lt;br /&gt;
    row.addEventListener(&#039;mouseleave&#039;, () =&amp;gt; {&lt;br /&gt;
      row.style.boxShadow = &#039;&#039;;&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* 10. Fog drifting parallax on sidebar */&lt;br /&gt;
(function() {&lt;br /&gt;
  let ticking = false;&lt;br /&gt;
  window.addEventListener(&#039;scroll&#039;, () =&amp;gt; {&lt;br /&gt;
    if (!ticking) {&lt;br /&gt;
      requestAnimationFrame(() =&amp;gt; {&lt;br /&gt;
        const offset = window.scrollY * 0.15;&lt;br /&gt;
        const panel = document.getElementById(&#039;mw-panel&#039;);&lt;br /&gt;
        if (panel) panel.style.backgroundPositionY = offset + &#039;px&#039;;&lt;br /&gt;
        ticking = false;&lt;br /&gt;
      });&lt;br /&gt;
      ticking = true;&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>King of the colours</name></author>
	</entry>
	<entry>
		<id>https://colourversalwikis.com/index.php?title=MediaWiki:Common.css&amp;diff=4</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://colourversalwikis.com/index.php?title=MediaWiki:Common.css&amp;diff=4"/>
		<updated>2026-04-16T10:57:17Z</updated>

		<summary type="html">&lt;p&gt;King of the colours: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/*&lt;br /&gt;
 * Willoughby Tucker, I&#039;ll Always Love You — MediaWiki Skin&lt;br /&gt;
 * Ethel Cain, 2025&lt;br /&gt;
 * Compatible with: Timeless, Vector, MonoBook&lt;br /&gt;
 *&lt;br /&gt;
 * Import fonts in your wiki&#039;s MediaWiki:Common.css or skin template:&lt;br /&gt;
 * @import url(&#039;https://fonts.googleapis.com/css2?family=IM+Fell+English:ital@0;1&amp;amp;family=Playfair+Display:ital,wght@0,400;0,600;1,400;1,600&amp;amp;family=Special+Elite&amp;amp;family=Courier+Prime:ital,wght@0,400;0,700;1,400&amp;amp;display=swap&#039;);&lt;br /&gt;
 *&lt;br /&gt;
 * &amp;quot;the year everything changed forever&amp;quot;&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ═══════════════════════════════════════════════════════&lt;br /&gt;
   WILLOUGHBY TUCKER, I&#039;LL ALWAYS LOVE YOU&lt;br /&gt;
   MediaWiki Skin — Ethel Cain, 2025&lt;br /&gt;
   &amp;quot;the year everything changed forever&amp;quot;&lt;br /&gt;
   Palette: amber headlights, sepia dust, bone white,&lt;br /&gt;
   dried blood, fog-blue dusk, charcoal gospel&lt;br /&gt;
   ═══════════════════════════════════════════════════════ */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
  --amber:        #C8843A;&lt;br /&gt;
  --amber-pale:   #E8C98A;&lt;br /&gt;
  --amber-deep:   #7A4A1A;&lt;br /&gt;
  --amber-glow:   #F5DBA0;&lt;br /&gt;
  --sepia:        #8B6344;&lt;br /&gt;
  --sepia-dark:   #3E2A18;&lt;br /&gt;
  --sepia-pale:   #D4B896;&lt;br /&gt;
  --bone:         #F2EDE0;&lt;br /&gt;
  --bone-dark:    #DDD5C0;&lt;br /&gt;
  --dust:         #C4B49A;&lt;br /&gt;
  --parchment:    #FAF5EC;&lt;br /&gt;
  --fog:          #B8C4CC;&lt;br /&gt;
  --fog-deep:     #6A7D87;&lt;br /&gt;
  --dusk:         #3A4A52;&lt;br /&gt;
  --ink:          #1A1410;&lt;br /&gt;
  --dried-blood:  #6B2A2A;&lt;br /&gt;
  --dried-fade:   #9B4A3A;&lt;br /&gt;
  --gospel-dark:  #2A1E12;&lt;br /&gt;
  --vhs-flicker:  rgba(200,132,58,0.06);&lt;br /&gt;
&lt;br /&gt;
  --font-title:   &#039;IM Fell English&#039;, serif;&lt;br /&gt;
  --font-heading: &#039;Playfair Display&#039;, serif;&lt;br /&gt;
  --font-body:    &#039;Courier Prime&#039;, monospace;&lt;br /&gt;
  --font-ui:      &#039;Special Elite&#039;, cursive;&lt;br /&gt;
&lt;br /&gt;
  --sidebar-w:    260px;&lt;br /&gt;
  --border-grain: 1px solid rgba(139,99,68,0.3);&lt;br /&gt;
  --border-amber: 1px solid rgba(200,132,58,0.5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── Grain texture overlay ── */&lt;br /&gt;
html::before {&lt;br /&gt;
  content: &#039;&#039;;&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  inset: 0;&lt;br /&gt;
  background-image: url(&amp;quot;data:image/svg+xml,%3Csvg xmlns=&#039;http://www.w3.org/2000/svg&#039; width=&#039;300&#039; height=&#039;300&#039;%3E%3Cfilter id=&#039;n&#039;%3E%3CfeTurbulence type=&#039;fractalNoise&#039; baseFrequency=&#039;0.75&#039; numOctaves=&#039;4&#039; stitchTiles=&#039;stitch&#039;/%3E%3CfeColorMatrix type=&#039;saturate&#039; values=&#039;0&#039;/%3E%3C/filter%3E%3Crect width=&#039;300&#039; height=&#039;300&#039; filter=&#039;url(%23n)&#039; opacity=&#039;0.04&#039;/%3E%3C/svg%3E&amp;quot;);&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
  z-index: 9999;&lt;br /&gt;
  opacity: 0.6;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── VHS scanline ── */&lt;br /&gt;
html::after {&lt;br /&gt;
  content: &#039;&#039;;&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  inset: 0;&lt;br /&gt;
  background: repeating-linear-gradient(&lt;br /&gt;
    0deg,&lt;br /&gt;
    transparent,&lt;br /&gt;
    transparent 2px,&lt;br /&gt;
    rgba(0,0,0,0.015) 2px,&lt;br /&gt;
    rgba(0,0,0,0.015) 4px&lt;br /&gt;
  );&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
  z-index: 9998;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: var(--font-body);&lt;br /&gt;
  background-color: var(--gospel-dark);&lt;br /&gt;
  color: var(--bone);&lt;br /&gt;
  min-height: 100vh;&lt;br /&gt;
  overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ─────────────────────────────────────────────&lt;br /&gt;
   AMBIENT BACKGROUND — dusk gradient + fog&lt;br /&gt;
───────────────────────────────────────────── */&lt;br /&gt;
#mw-page-base {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  inset: 0;&lt;br /&gt;
  z-index: -2;&lt;br /&gt;
  background:&lt;br /&gt;
    radial-gradient(ellipse 80% 60% at 30% 80%, rgba(122,74,26,0.35) 0%, transparent 60%),&lt;br /&gt;
    radial-gradient(ellipse 60% 40% at 80% 20%, rgba(58,74,82,0.3) 0%, transparent 50%),&lt;br /&gt;
    linear-gradient(175deg, #0D0B08 0%, #1A1410 40%, #2A1E12 100%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ─────────────────────────────────────────────&lt;br /&gt;
   LAYOUT&lt;br /&gt;
───────────────────────────────────────────── */&lt;br /&gt;
#mw-wrapper {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: var(--sidebar-w) 1fr;&lt;br /&gt;
  grid-template-rows: auto 1fr auto;&lt;br /&gt;
  min-height: 100vh;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ─────────────────────────────────────────────&lt;br /&gt;
   HEADER — masthead&lt;br /&gt;
───────────────────────────────────────────── */&lt;br /&gt;
#mw-head {&lt;br /&gt;
  grid-column: 1 / -1;&lt;br /&gt;
  position: relative;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border-bottom: 1px solid rgba(200,132,58,0.25);&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  background: linear-gradient(180deg, rgba(10,8,6,0.95) 0%, rgba(26,20,16,0.9) 100%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Amber horizon glow behind header */&lt;br /&gt;
#mw-head::before {&lt;br /&gt;
  content: &#039;&#039;;&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  bottom: -1px;&lt;br /&gt;
  left: 0; right: 0;&lt;br /&gt;
  height: 2px;&lt;br /&gt;
  background: linear-gradient(90deg,&lt;br /&gt;
    transparent 0%,&lt;br /&gt;
    var(--amber-deep) 20%,&lt;br /&gt;
    var(--amber) 50%,&lt;br /&gt;
    var(--amber-deep) 80%,&lt;br /&gt;
    transparent 100%&lt;br /&gt;
  );&lt;br /&gt;
  animation: horizon-pulse 4s ease-in-out infinite;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes horizon-pulse {&lt;br /&gt;
  0%, 100% { opacity: 0.5; }&lt;br /&gt;
  50%       { opacity: 1; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-head-inner {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: space-between;&lt;br /&gt;
  padding: 14px 28px;&lt;br /&gt;
  position: relative;&lt;br /&gt;
  z-index: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Wiki wordmark */&lt;br /&gt;
#p-logo {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-direction: column;&lt;br /&gt;
  gap: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo .site-name {&lt;br /&gt;
  font-family: var(--font-title);&lt;br /&gt;
  font-size: 22px;&lt;br /&gt;
  color: var(--amber-pale);&lt;br /&gt;
  letter-spacing: 0.04em;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
  text-shadow: 0 0 30px rgba(200,132,58,0.4);&lt;br /&gt;
  animation: amber-breathe 6s ease-in-out infinite;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes amber-breathe {&lt;br /&gt;
  0%, 100% { text-shadow: 0 0 20px rgba(200,132,58,0.3); }&lt;br /&gt;
  50%       { text-shadow: 0 0 40px rgba(200,132,58,0.6), 0 0 80px rgba(200,132,58,0.2); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo .site-tagline {&lt;br /&gt;
  font-family: var(--font-ui);&lt;br /&gt;
  font-size: 10px;&lt;br /&gt;
  color: var(--sepia);&lt;br /&gt;
  letter-spacing: 0.25em;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── Top navigation tabs ── */&lt;br /&gt;
#p-namespaces {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  gap: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-namespaces li {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-namespaces a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  font-family: var(--font-ui);&lt;br /&gt;
  font-size: 12px;&lt;br /&gt;
  color: var(--dust);&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
  padding: 6px 14px;&lt;br /&gt;
  letter-spacing: 0.12em;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
  border-bottom: 2px solid transparent;&lt;br /&gt;
  transition: color 0.3s, border-color 0.3s;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-namespaces a:hover,&lt;br /&gt;
#p-namespaces li.selected a {&lt;br /&gt;
  color: var(--amber-pale);&lt;br /&gt;
  border-bottom-color: var(--amber);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── Search bar ── */&lt;br /&gt;
#p-search {&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#searchInput {&lt;br /&gt;
  font-family: var(--font-body);&lt;br /&gt;
  font-size: 13px;&lt;br /&gt;
  background: rgba(255,255,255,0.04);&lt;br /&gt;
  border: var(--border-grain);&lt;br /&gt;
  border-radius: 2px;&lt;br /&gt;
  color: var(--bone);&lt;br /&gt;
  padding: 7px 36px 7px 12px;&lt;br /&gt;
  width: 220px;&lt;br /&gt;
  outline: none;&lt;br /&gt;
  transition: border-color 0.3s, background 0.3s, box-shadow 0.3s;&lt;br /&gt;
  caret-color: var(--amber);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#searchInput::placeholder { color: var(--sepia); font-style: italic; }&lt;br /&gt;
&lt;br /&gt;
#searchInput:focus {&lt;br /&gt;
  border-color: rgba(200,132,58,0.6);&lt;br /&gt;
  background: rgba(255,255,255,0.07);&lt;br /&gt;
  box-shadow: 0 0 0 3px rgba(200,132,58,0.1), inset 0 0 20px rgba(200,132,58,0.05);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.search-btn {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  right: 8px; top: 50%;&lt;br /&gt;
  transform: translateY(-50%);&lt;br /&gt;
  background: none; border: none;&lt;br /&gt;
  color: var(--amber);&lt;br /&gt;
  cursor: pointer;&lt;br /&gt;
  font-size: 14px;&lt;br /&gt;
  opacity: 0.7;&lt;br /&gt;
  transition: opacity 0.2s;&lt;br /&gt;
}&lt;br /&gt;
.search-btn:hover { opacity: 1; }&lt;br /&gt;
&lt;br /&gt;
/* ─────────────────────────────────────────────&lt;br /&gt;
   SIDEBAR&lt;br /&gt;
───────────────────────────────────────────── */&lt;br /&gt;
#mw-panel {&lt;br /&gt;
  background: linear-gradient(180deg, rgba(16,11,7,0.98) 0%, rgba(26,20,12,0.95) 100%);&lt;br /&gt;
  border-right: var(--border-grain);&lt;br /&gt;
  padding: 24px 0 40px;&lt;br /&gt;
  position: relative;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Vertical amber strip */&lt;br /&gt;
#mw-panel::after {&lt;br /&gt;
  content: &#039;&#039;;&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  top: 0; right: 0;&lt;br /&gt;
  width: 1px;&lt;br /&gt;
  height: 100%;&lt;br /&gt;
  background: linear-gradient(180deg,&lt;br /&gt;
    transparent 0%,&lt;br /&gt;
    var(--amber-deep) 20%,&lt;br /&gt;
    var(--amber) 50%,&lt;br /&gt;
    var(--amber-deep) 80%,&lt;br /&gt;
    transparent 100%&lt;br /&gt;
  );&lt;br /&gt;
  opacity: 0.4;&lt;br /&gt;
  animation: sidebar-stripe 8s ease-in-out infinite;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes sidebar-stripe {&lt;br /&gt;
  0%, 100% { opacity: 0.2; }&lt;br /&gt;
  50%       { opacity: 0.6; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Sidebar section */&lt;br /&gt;
.portal {&lt;br /&gt;
  margin: 0 0 24px;&lt;br /&gt;
  padding: 0 20px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.portal h3 {&lt;br /&gt;
  font-family: var(--font-ui);&lt;br /&gt;
  font-size: 10px;&lt;br /&gt;
  letter-spacing: 0.28em;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
  color: var(--amber);&lt;br /&gt;
  margin-bottom: 10px;&lt;br /&gt;
  padding-bottom: 8px;&lt;br /&gt;
  border-bottom: var(--border-amber);&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Decorative cross on section headers */&lt;br /&gt;
.portal h3::before {&lt;br /&gt;
  content: &#039;✦&#039;;&lt;br /&gt;
  margin-right: 6px;&lt;br /&gt;
  font-size: 8px;&lt;br /&gt;
  opacity: 0.7;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.portal ul { list-style: none; }&lt;br /&gt;
&lt;br /&gt;
.portal li {&lt;br /&gt;
  margin: 2px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.portal a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  font-family: var(--font-body);&lt;br /&gt;
  font-size: 13px;&lt;br /&gt;
  color: var(--sepia-pale);&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
  padding: 5px 8px;&lt;br /&gt;
  border-radius: 1px;&lt;br /&gt;
  transition: color 0.25s, background 0.25s, padding-left 0.25s;&lt;br /&gt;
  border-left: 2px solid transparent;&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.portal a::before {&lt;br /&gt;
  content: &#039;&#039;;&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  left: 0; top: 0; bottom: 0;&lt;br /&gt;
  width: 0;&lt;br /&gt;
  background: rgba(200,132,58,0.08);&lt;br /&gt;
  transition: width 0.3s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.portal a:hover {&lt;br /&gt;
  color: var(--amber-pale);&lt;br /&gt;
  padding-left: 14px;&lt;br /&gt;
  border-left-color: var(--amber);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.portal a:hover::before { width: 100%; }&lt;br /&gt;
&lt;br /&gt;
/* Track list in sidebar — special styling */&lt;br /&gt;
.portal.tracklist li {&lt;br /&gt;
  counter-increment: track;&lt;br /&gt;
  display: flex;&lt;br /&gt;
  gap: 8px;&lt;br /&gt;
  align-items: baseline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.portal.tracklist li::before {&lt;br /&gt;
  content: counter(track, decimal-leading-zero);&lt;br /&gt;
  font-family: var(--font-ui);&lt;br /&gt;
  font-size: 10px;&lt;br /&gt;
  color: var(--amber-deep);&lt;br /&gt;
  min-width: 20px;&lt;br /&gt;
  flex-shrink: 0;&lt;br /&gt;
  counter-reset: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.portal.tracklist { counter-reset: track; }&lt;br /&gt;
&lt;br /&gt;
/* ─────────────────────────────────────────────&lt;br /&gt;
   MAIN CONTENT AREA&lt;br /&gt;
───────────────────────────────────────────── */&lt;br /&gt;
#content {&lt;br /&gt;
  padding: 36px 48px 60px 40px;&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── Page title ── */&lt;br /&gt;
#firstHeading {&lt;br /&gt;
  font-family: var(--font-title);&lt;br /&gt;
  font-size: clamp(28px, 4vw, 42px);&lt;br /&gt;
  font-weight: 400;&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
  color: var(--amber-pale);&lt;br /&gt;
  line-height: 1.15;&lt;br /&gt;
  margin-bottom: 6px;&lt;br /&gt;
  letter-spacing: 0.02em;&lt;br /&gt;
  text-shadow: 0 2px 40px rgba(200,132,58,0.3);&lt;br /&gt;
  animation: title-appear 1.2s ease both;&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes title-appear {&lt;br /&gt;
  from { opacity: 0; transform: translateY(8px); letter-spacing: 0.08em; }&lt;br /&gt;
  to   { opacity: 1; transform: translateY(0);   letter-spacing: 0.02em; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Decorative rule under title */&lt;br /&gt;
.mw-body-content &amp;gt; .page-header {&lt;br /&gt;
  margin-bottom: 28px;&lt;br /&gt;
  padding-bottom: 20px;&lt;br /&gt;
  border-bottom: 1px solid rgba(139,99,68,0.3);&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content &amp;gt; .page-header::after {&lt;br /&gt;
  content: &#039;&#039;;&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  bottom: -1px; left: 0;&lt;br /&gt;
  width: 120px;&lt;br /&gt;
  height: 1px;&lt;br /&gt;
  background: var(--amber);&lt;br /&gt;
  animation: underline-grow 1s 0.5s ease both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes underline-grow {&lt;br /&gt;
  from { width: 0; opacity: 0; }&lt;br /&gt;
  to   { width: 120px; opacity: 1; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.page-subtitle {&lt;br /&gt;
  font-family: var(--font-ui);&lt;br /&gt;
  font-size: 11px;&lt;br /&gt;
  color: var(--sepia);&lt;br /&gt;
  letter-spacing: 0.2em;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
  margin-top: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── Body text ── */&lt;br /&gt;
.mw-body-content p {&lt;br /&gt;
  font-family: var(--font-body);&lt;br /&gt;
  font-size: 15px;&lt;br /&gt;
  line-height: 1.85;&lt;br /&gt;
  color: var(--bone-dark);&lt;br /&gt;
  margin-bottom: 1.2em;&lt;br /&gt;
  animation: para-fade 0.6s ease both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes para-fade {&lt;br /&gt;
  from { opacity: 0; transform: translateY(4px); }&lt;br /&gt;
  to   { opacity: 1; transform: translateY(0); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Stagger paragraphs */&lt;br /&gt;
.mw-body-content p:nth-child(2) { animation-delay: 0.05s; }&lt;br /&gt;
.mw-body-content p:nth-child(3) { animation-delay: 0.1s; }&lt;br /&gt;
.mw-body-content p:nth-child(4) { animation-delay: 0.15s; }&lt;br /&gt;
.mw-body-content p:nth-child(5) { animation-delay: 0.2s; }&lt;br /&gt;
&lt;br /&gt;
/* ── Headings ── */&lt;br /&gt;
.mw-body-content h2 {&lt;br /&gt;
  font-family: var(--font-heading);&lt;br /&gt;
  font-size: 22px;&lt;br /&gt;
  font-weight: 600;&lt;br /&gt;
  color: var(--amber-pale);&lt;br /&gt;
  margin: 2.2em 0 0.7em;&lt;br /&gt;
  padding-bottom: 8px;&lt;br /&gt;
  border-bottom: var(--border-grain);&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content h2::before {&lt;br /&gt;
  content: &#039;§&#039;;&lt;br /&gt;
  color: var(--amber-deep);&lt;br /&gt;
  margin-right: 8px;&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content h3 {&lt;br /&gt;
  font-family: var(--font-heading);&lt;br /&gt;
  font-size: 17px;&lt;br /&gt;
  font-weight: 400;&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
  color: var(--sepia-pale);&lt;br /&gt;
  margin: 1.8em 0 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content h4 {&lt;br /&gt;
  font-family: var(--font-ui);&lt;br /&gt;
  font-size: 11px;&lt;br /&gt;
  letter-spacing: 0.2em;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
  color: var(--amber);&lt;br /&gt;
  margin: 1.5em 0 0.4em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── Links ── */&lt;br /&gt;
.mw-body-content a {&lt;br /&gt;
  color: var(--amber);&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
  border-bottom: 1px solid rgba(200,132,58,0.3);&lt;br /&gt;
  transition: color 0.2s, border-color 0.2s, text-shadow 0.2s;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content a:hover {&lt;br /&gt;
  color: var(--amber-pale);&lt;br /&gt;
  border-bottom-color: var(--amber-pale);&lt;br /&gt;
  text-shadow: 0 0 20px rgba(200,132,58,0.4);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── Infobox / article sidebar ── */&lt;br /&gt;
.infobox {&lt;br /&gt;
  float: right;&lt;br /&gt;
  clear: right;&lt;br /&gt;
  margin: 0 0 24px 28px;&lt;br /&gt;
  width: 240px;&lt;br /&gt;
  background: rgba(26,20,12,0.9);&lt;br /&gt;
  border: var(--border-grain);&lt;br /&gt;
  border-top: 2px solid var(--amber);&lt;br /&gt;
  font-size: 13px;&lt;br /&gt;
  animation: infobox-in 0.8s 0.3s ease both;&lt;br /&gt;
  position: relative;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes infobox-in {&lt;br /&gt;
  from { opacity: 0; transform: translateX(12px); }&lt;br /&gt;
  to   { opacity: 1; transform: translateX(0); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Subtle amber corner accent */&lt;br /&gt;
.infobox::after {&lt;br /&gt;
  content: &#039;&#039;;&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  top: 0; right: 0;&lt;br /&gt;
  border-left: 16px solid transparent;&lt;br /&gt;
  border-top: 16px solid var(--amber);&lt;br /&gt;
  opacity: 0.5;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox-title {&lt;br /&gt;
  font-family: var(--font-heading);&lt;br /&gt;
  font-size: 14px;&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  background: rgba(200,132,58,0.12);&lt;br /&gt;
  color: var(--amber-pale);&lt;br /&gt;
  padding: 10px 12px;&lt;br /&gt;
  border-bottom: var(--border-grain);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox table { width: 100%; border-collapse: collapse; }&lt;br /&gt;
.infobox td {&lt;br /&gt;
  padding: 6px 12px;&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
  border-bottom: 1px solid rgba(139,99,68,0.15);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox td:first-child {&lt;br /&gt;
  font-family: var(--font-ui);&lt;br /&gt;
  font-size: 10px;&lt;br /&gt;
  letter-spacing: 0.1em;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
  color: var(--amber-deep);&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
  padding-right: 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox td:last-child {&lt;br /&gt;
  color: var(--bone-dark);&lt;br /&gt;
  font-size: 13px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── Hatnotes / notices ── */&lt;br /&gt;
.hatnote {&lt;br /&gt;
  font-family: var(--font-body);&lt;br /&gt;
  font-size: 13px;&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
  color: var(--fog);&lt;br /&gt;
  background: rgba(106,125,135,0.08);&lt;br /&gt;
  border-left: 3px solid var(--fog-deep);&lt;br /&gt;
  padding: 10px 16px;&lt;br /&gt;
  margin-bottom: 20px;&lt;br /&gt;
  border-radius: 0 2px 2px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── Blockquote / pull quote ── */&lt;br /&gt;
.mw-body-content blockquote {&lt;br /&gt;
  border-left: 3px solid var(--amber);&lt;br /&gt;
  padding: 12px 20px;&lt;br /&gt;
  margin: 24px 0;&lt;br /&gt;
  background: rgba(200,132,58,0.05);&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content blockquote::before {&lt;br /&gt;
  content: &#039;\201C&#039;;&lt;br /&gt;
  font-family: var(--font-title);&lt;br /&gt;
  font-size: 48px;&lt;br /&gt;
  color: var(--amber-deep);&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  top: -8px; left: 12px;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
  opacity: 0.6;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content blockquote p {&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
  color: var(--sepia-pale);&lt;br /&gt;
  padding-left: 20px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── Tables ── */&lt;br /&gt;
.wikitable {&lt;br /&gt;
  border-collapse: collapse;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin: 20px 0;&lt;br /&gt;
  font-size: 13px;&lt;br /&gt;
  background: rgba(26,20,12,0.6);&lt;br /&gt;
  border: var(--border-grain);&lt;br /&gt;
  animation: table-in 0.6s ease both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes table-in {&lt;br /&gt;
  from { opacity: 0; }&lt;br /&gt;
  to   { opacity: 1; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable th {&lt;br /&gt;
  font-family: var(--font-ui);&lt;br /&gt;
  font-size: 10px;&lt;br /&gt;
  letter-spacing: 0.18em;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
  background: rgba(200,132,58,0.12);&lt;br /&gt;
  color: var(--amber);&lt;br /&gt;
  padding: 10px 14px;&lt;br /&gt;
  border: var(--border-grain);&lt;br /&gt;
  text-align: left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable td {&lt;br /&gt;
  color: var(--bone-dark);&lt;br /&gt;
  padding: 8px 14px;&lt;br /&gt;
  border: 1px solid rgba(139,99,68,0.2);&lt;br /&gt;
  line-height: 1.6;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable tr:hover td {&lt;br /&gt;
  background: rgba(200,132,58,0.05);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Track numbers in table */&lt;br /&gt;
.wikitable td.track-num {&lt;br /&gt;
  font-family: var(--font-ui);&lt;br /&gt;
  font-size: 11px;&lt;br /&gt;
  color: var(--amber-deep);&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  width: 40px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── Categories ── */&lt;br /&gt;
#catlinks {&lt;br /&gt;
  margin-top: 40px;&lt;br /&gt;
  padding-top: 16px;&lt;br /&gt;
  border-top: var(--border-grain);&lt;br /&gt;
  font-size: 12px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#catlinks h2 {&lt;br /&gt;
  display: inline;&lt;br /&gt;
  font-family: var(--font-ui);&lt;br /&gt;
  font-size: 10px;&lt;br /&gt;
  letter-spacing: 0.2em;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
  color: var(--amber-deep);&lt;br /&gt;
  border-bottom: none;&lt;br /&gt;
  margin: 0 8px 0 0;&lt;br /&gt;
  font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#catlinks h2::before { display: none; }&lt;br /&gt;
&lt;br /&gt;
#catlinks a {&lt;br /&gt;
  color: var(--sepia);&lt;br /&gt;
  border-bottom: 1px solid rgba(139,99,68,0.2);&lt;br /&gt;
  margin: 0 4px;&lt;br /&gt;
  font-size: 12px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#catlinks a:hover { color: var(--amber-pale); }&lt;br /&gt;
&lt;br /&gt;
/* ── Edit toolbar / page actions ── */&lt;br /&gt;
#p-views {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  gap: 0;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-views li { list-style: none; }&lt;br /&gt;
&lt;br /&gt;
#p-views a {&lt;br /&gt;
  font-family: var(--font-ui);&lt;br /&gt;
  font-size: 11px;&lt;br /&gt;
  letter-spacing: 0.12em;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
  color: var(--sepia);&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
  padding: 8px 12px;&lt;br /&gt;
  display: block;&lt;br /&gt;
  transition: color 0.2s, background 0.2s;&lt;br /&gt;
  border-left: 1px solid rgba(139,99,68,0.15);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-views a:hover {&lt;br /&gt;
  color: var(--amber-pale);&lt;br /&gt;
  background: rgba(200,132,58,0.08);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-views li.selected a {&lt;br /&gt;
  color: var(--amber);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ─────────────────────────────────────────────&lt;br /&gt;
   FOOTER&lt;br /&gt;
───────────────────────────────────────────── */&lt;br /&gt;
#footer {&lt;br /&gt;
  grid-column: 1 / -1;&lt;br /&gt;
  padding: 20px 28px;&lt;br /&gt;
  border-top: var(--border-grain);&lt;br /&gt;
  background: rgba(10,8,6,0.95);&lt;br /&gt;
  display: flex;&lt;br /&gt;
  justify-content: space-between;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 12px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.footer-links {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  gap: 0;&lt;br /&gt;
  list-style: none;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.footer-links a {&lt;br /&gt;
  font-family: var(--font-ui);&lt;br /&gt;
  font-size: 10px;&lt;br /&gt;
  letter-spacing: 0.18em;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
  color: var(--sepia-dark);&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
  padding: 0 10px;&lt;br /&gt;
  border-right: 1px solid rgba(139,99,68,0.2);&lt;br /&gt;
  transition: color 0.2s;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.footer-links li:last-child a { border-right: none; }&lt;br /&gt;
.footer-links a:hover { color: var(--amber); }&lt;br /&gt;
&lt;br /&gt;
.footer-copy {&lt;br /&gt;
  font-family: var(--font-body);&lt;br /&gt;
  font-size: 11px;&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
  color: var(--sepia-dark);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ─────────────────────────────────────────────&lt;br /&gt;
   TIMELESS SKIN COMPATIBILITY OVERRIDES&lt;br /&gt;
   (Timeless uses these selectors)&lt;br /&gt;
───────────────────────────────────────────── */&lt;br /&gt;
.mw-header { display: contents; }&lt;br /&gt;
.mw-body { display: contents; }&lt;br /&gt;
.content-container { display: contents; }&lt;br /&gt;
.sidebar-chunk { margin-bottom: 20px; }&lt;br /&gt;
&lt;br /&gt;
/* Timeless search form */&lt;br /&gt;
#searchform { display: flex; align-items: center; gap: 0; }&lt;br /&gt;
#searchform button[type=&amp;quot;submit&amp;quot;] {&lt;br /&gt;
  background: rgba(200,132,58,0.15);&lt;br /&gt;
  border: var(--border-grain);&lt;br /&gt;
  border-left: none;&lt;br /&gt;
  color: var(--amber);&lt;br /&gt;
  padding: 7px 10px;&lt;br /&gt;
  cursor: pointer;&lt;br /&gt;
  font-size: 13px;&lt;br /&gt;
  transition: background 0.2s;&lt;br /&gt;
}&lt;br /&gt;
#searchform button[type=&amp;quot;submit&amp;quot;]:hover { background: rgba(200,132,58,0.25); }&lt;br /&gt;
&lt;br /&gt;
/* ─────────────────────────────────────────────&lt;br /&gt;
   JS-POWERED EFFECTS&lt;br /&gt;
───────────────────────────────────────────── */&lt;br /&gt;
&lt;br /&gt;
/* Cursor trail dot */&lt;br /&gt;
.cursor-dot {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  width: 6px; height: 6px;&lt;br /&gt;
  background: var(--amber);&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
  z-index: 10000;&lt;br /&gt;
  opacity: 0;&lt;br /&gt;
  transform: translate(-50%, -50%);&lt;br /&gt;
  transition: opacity 0.3s;&lt;br /&gt;
  box-shadow: 0 0 12px 3px rgba(200,132,58,0.4);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Static for demo below */&lt;br /&gt;
.cursor-ring {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  width: 28px; height: 28px;&lt;br /&gt;
  border: 1px solid rgba(200,132,58,0.4);&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
  z-index: 10000;&lt;br /&gt;
  opacity: 0;&lt;br /&gt;
  transform: translate(-50%, -50%);&lt;br /&gt;
  transition: opacity 0.5s, width 0.2s, height 0.2s, border-color 0.2s;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Dust particle canvas */&lt;br /&gt;
#dust-canvas {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  inset: 0;&lt;br /&gt;
  z-index: 1;&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
  opacity: 0.35;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Page load vignette */&lt;br /&gt;
.vignette {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  inset: 0;&lt;br /&gt;
  z-index: 9997;&lt;br /&gt;
  background: radial-gradient(ellipse at center, transparent 50%, rgba(10,8,6,0.7) 100%);&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Flicker animation for the whole page on load */&lt;br /&gt;
@keyframes vhs-flicker {&lt;br /&gt;
  0%   { opacity: 0; }&lt;br /&gt;
  5%   { opacity: 0.9; }&lt;br /&gt;
  6%   { opacity: 0.3; }&lt;br /&gt;
  8%   { opacity: 1; }&lt;br /&gt;
  100% { opacity: 1; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mw-wrapper { animation: vhs-flicker 1.4s ease both; }&lt;br /&gt;
&lt;br /&gt;
/* Link hover glow pulse */&lt;br /&gt;
@keyframes link-glow {&lt;br /&gt;
  0%   { text-shadow: 0 0 8px rgba(200,132,58,0.3); }&lt;br /&gt;
  50%  { text-shadow: 0 0 20px rgba(200,132,58,0.6), 0 0 40px rgba(200,132,58,0.2); }&lt;br /&gt;
  100% { text-shadow: 0 0 8px rgba(200,132,58,0.3); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content a:hover { animation: link-glow 1.5s ease-in-out infinite; }&lt;br /&gt;
&lt;br /&gt;
/* ── Scroll-reveal ── */&lt;br /&gt;
.scroll-reveal {&lt;br /&gt;
  opacity: 0;&lt;br /&gt;
  transform: translateY(16px);&lt;br /&gt;
  transition: opacity 0.7s ease, transform 0.7s ease;&lt;br /&gt;
}&lt;br /&gt;
.scroll-reveal.revealed {&lt;br /&gt;
  opacity: 1;&lt;br /&gt;
  transform: translateY(0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── Static noise flicker on hover for headings ── */&lt;br /&gt;
.mw-body-content h2:hover {&lt;br /&gt;
  animation: text-static 0.15s steps(2) 3;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes text-static {&lt;br /&gt;
  0%   { letter-spacing: 0.01em; opacity: 0.8; }&lt;br /&gt;
  50%  { letter-spacing: 0.04em; opacity: 1; }&lt;br /&gt;
  100% { letter-spacing: 0.01em; opacity: 0.8; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── Typewriter cursor on search ── */&lt;br /&gt;
#searchInput:focus::placeholder {&lt;br /&gt;
  animation: type-cursor 0.8s steps(1) infinite;&lt;br /&gt;
}&lt;br /&gt;
@keyframes type-cursor {&lt;br /&gt;
  0%, 100% { opacity: 1; }&lt;br /&gt;
  50%       { opacity: 0; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── Ripple on sidebar link click ── */&lt;br /&gt;
.portal a {&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── Loading bar (amber progress) ── */&lt;br /&gt;
#loading-bar {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  top: 0; left: 0;&lt;br /&gt;
  height: 2px;&lt;br /&gt;
  background: linear-gradient(90deg, var(--amber-deep), var(--amber), var(--amber-pale));&lt;br /&gt;
  z-index: 99999;&lt;br /&gt;
  width: 0%;&lt;br /&gt;
  transition: width 0.4s ease;&lt;br /&gt;
  box-shadow: 0 0 8px rgba(200,132,58,0.6);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ─────────────────────────────────────────────&lt;br /&gt;
   DEMO PAGE CHROME&lt;br /&gt;
   (for preview only — not part of actual skin)&lt;br /&gt;
───────────────────────────────────────────── */&lt;br /&gt;
.demo-label {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  bottom: 20px; right: 20px;&lt;br /&gt;
  font-family: var(--font-ui);&lt;br /&gt;
  font-size: 9px;&lt;br /&gt;
  letter-spacing: 0.2em;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
  color: var(--amber-deep);&lt;br /&gt;
  z-index: 9990;&lt;br /&gt;
  opacity: 0.6;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>King of the colours</name></author>
	</entry>
	<entry>
		<id>https://colourversalwikis.com/index.php?title=MediaWiki:Common.js&amp;diff=3</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://colourversalwikis.com/index.php?title=MediaWiki:Common.js&amp;diff=3"/>
		<updated>2026-04-16T05:05:35Z</updated>

		<summary type="html">&lt;p&gt;King of the colours: Created page with &amp;quot;/**  * =============================================================  *  PREACHER&amp;#039;S DAUGHTER — MediaWiki Wiki Theme JS  *  Based on the 2022 album by Ethel Cain  *  Southern Gothic · Dark Americana · Sacred &amp;amp; Profane  * =============================================================  *  Install: Paste into MediaWiki:Common.js  *  Requires: PreachersDaughter.css (MediaWiki:Common.css)  * =============================================================  */  ( function () {...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/**&lt;br /&gt;
 * =============================================================&lt;br /&gt;
 *  PREACHER&#039;S DAUGHTER — MediaWiki Wiki Theme JS&lt;br /&gt;
 *  Based on the 2022 album by Ethel Cain&lt;br /&gt;
 *  Southern Gothic · Dark Americana · Sacred &amp;amp; Profane&lt;br /&gt;
 * =============================================================&lt;br /&gt;
 *  Install: Paste into MediaWiki:Common.js&lt;br /&gt;
 *  Requires: PreachersDaughter.css (MediaWiki:Common.css)&lt;br /&gt;
 * =============================================================&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
( function () {&lt;br /&gt;
  &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
  /* ── CONFIG ─────────────────────────────────────────────── */&lt;br /&gt;
  var CFG = {&lt;br /&gt;
    dust: {&lt;br /&gt;
      enabled:    true,&lt;br /&gt;
      count:      28,         /* live particles on screen        */&lt;br /&gt;
      minSize:    1,          /* px                              */&lt;br /&gt;
      maxSize:    3.5,        /* px                              */&lt;br /&gt;
      minSpeed:   0.18,       /* px / frame                      */&lt;br /&gt;
      maxSpeed:   0.55,&lt;br /&gt;
      minDrift:   -0.25,      /* horizontal drift px/frame       */&lt;br /&gt;
      maxDrift:    0.35,&lt;br /&gt;
      colors:     [&#039;rgba(224,200,160,{a})&#039;, &#039;rgba(160,80,80,{a})&#039;, &#039;rgba(255,240,210,{a})&#039;]&lt;br /&gt;
    },&lt;br /&gt;
    flicker: {&lt;br /&gt;
      enabled:    true,&lt;br /&gt;
      heading:    true,       /* animate page heading            */&lt;br /&gt;
      interval:   [4000, 14000] /* random ms between flickers   */&lt;br /&gt;
    },&lt;br /&gt;
    reveal: {&lt;br /&gt;
      enabled:    true,&lt;br /&gt;
      rootMargin: &#039;0px 0px -60px 0px&#039;&lt;br /&gt;
    },&lt;br /&gt;
    watermark: {&lt;br /&gt;
      enabled:    true,&lt;br /&gt;
      char:       &#039;✝&#039;&lt;br /&gt;
    },&lt;br /&gt;
    candle: {&lt;br /&gt;
      enabled:    true        /* ambient glow pulse on toc/sidebar */&lt;br /&gt;
    },&lt;br /&gt;
    typewriter: {&lt;br /&gt;
      enabled:    false       /* set true to typewrite the main heading */&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
  /* ── UTILITY ─────────────────────────────────────────────── */&lt;br /&gt;
  function rand( min, max ) { return Math.random() * ( max - min ) + min; }&lt;br /&gt;
  function randInt( min, max ) { return Math.floor( rand( min, max + 1 ) ); }&lt;br /&gt;
  function qs( sel, ctx ) { return ( ctx || document ).querySelector( sel ); }&lt;br /&gt;
  function qsa( sel, ctx ) { return Array.from( ( ctx || document ).querySelectorAll( sel ) ); }&lt;br /&gt;
&lt;br /&gt;
  /* ── 1. WATERMARK CROSS ──────────────────────────────────── */&lt;br /&gt;
  function initWatermark() {&lt;br /&gt;
    if ( !CFG.watermark.enabled ) return;&lt;br /&gt;
    var el = document.createElement( &#039;div&#039; );&lt;br /&gt;
    el.id = &#039;pd-watermark&#039;;&lt;br /&gt;
    el.setAttribute( &#039;aria-hidden&#039;, &#039;true&#039; );&lt;br /&gt;
    el.textContent = CFG.watermark.char;&lt;br /&gt;
    document.body.appendChild( el );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* ── 2. DUST / ASH PARTICLE SYSTEM ──────────────────────── */&lt;br /&gt;
  function initDust() {&lt;br /&gt;
    if ( !CFG.dust.enabled ) return;&lt;br /&gt;
&lt;br /&gt;
    var canvas = document.createElement( &#039;canvas&#039; );&lt;br /&gt;
    canvas.id  = &#039;pd-dust-canvas&#039;;&lt;br /&gt;
    canvas.setAttribute( &#039;aria-hidden&#039;, &#039;true&#039; );&lt;br /&gt;
    document.body.appendChild( canvas );&lt;br /&gt;
&lt;br /&gt;
    var ctx    = canvas.getContext( &#039;2d&#039; );&lt;br /&gt;
    var W, H;&lt;br /&gt;
    var particles = [];&lt;br /&gt;
&lt;br /&gt;
    function resize() {&lt;br /&gt;
      W = canvas.width  = window.innerWidth;&lt;br /&gt;
      H = canvas.height = window.innerHeight;&lt;br /&gt;
    }&lt;br /&gt;
    window.addEventListener( &#039;resize&#039;, resize, { passive: true } );&lt;br /&gt;
    resize();&lt;br /&gt;
&lt;br /&gt;
    function makeParticle( initial ) {&lt;br /&gt;
      var colorTpl = CFG.dust.colors[ randInt( 0, CFG.dust.colors.length - 1 ) ];&lt;br /&gt;
      var alpha    = rand( 0.25, 0.75 );&lt;br /&gt;
      var color    = colorTpl.replace( &#039;{a}&#039;, alpha.toFixed( 2 ) );&lt;br /&gt;
      return {&lt;br /&gt;
        x:     rand( 0, W ),&lt;br /&gt;
        y:     initial ? rand( 0, H ) : rand( -20, -2 ),&lt;br /&gt;
        r:     rand( CFG.dust.minSize, CFG.dust.maxSize ),&lt;br /&gt;
        vy:    rand( CFG.dust.minSpeed, CFG.dust.maxSpeed ),&lt;br /&gt;
        vx:    rand( CFG.dust.minDrift, CFG.dust.maxDrift ),&lt;br /&gt;
        alpha: alpha,&lt;br /&gt;
        color: color,&lt;br /&gt;
        rot:   rand( 0, Math.PI * 2 ),&lt;br /&gt;
        rspd:  rand( -0.01, 0.01 )&lt;br /&gt;
      };&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    for ( var i = 0; i &amp;lt; CFG.dust.count; i++ ) {&lt;br /&gt;
      particles.push( makeParticle( true ) );&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function draw() {&lt;br /&gt;
      ctx.clearRect( 0, 0, W, H );&lt;br /&gt;
&lt;br /&gt;
      particles.forEach( function ( p, idx ) {&lt;br /&gt;
        p.y   += p.vy;&lt;br /&gt;
        p.x   += p.vx + Math.sin( p.y * 0.008 + idx ) * 0.18;&lt;br /&gt;
        p.rot += p.rspd;&lt;br /&gt;
&lt;br /&gt;
        if ( p.y &amp;gt; H + 10 ) {&lt;br /&gt;
          particles[ idx ] = makeParticle( false );&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        ctx.save();&lt;br /&gt;
        ctx.translate( p.x, p.y );&lt;br /&gt;
        ctx.rotate( p.rot );&lt;br /&gt;
        ctx.fillStyle = p.color;&lt;br /&gt;
        ctx.beginPath();&lt;br /&gt;
        /* small elongated flake */&lt;br /&gt;
        ctx.ellipse( 0, 0, p.r * 0.55, p.r, 0, 0, Math.PI * 2 );&lt;br /&gt;
        ctx.fill();&lt;br /&gt;
        ctx.restore();&lt;br /&gt;
      } );&lt;br /&gt;
&lt;br /&gt;
      requestAnimationFrame( draw );&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    requestAnimationFrame( draw );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* ── 3. CANDLE FLICKER (heading glow) ────────────────────── */&lt;br /&gt;
  function initFlicker() {&lt;br /&gt;
    if ( !CFG.flicker.enabled || !CFG.flicker.heading ) return;&lt;br /&gt;
&lt;br /&gt;
    var heading = qs( &#039;#firstHeading, .mw-first-heading, .page-header h1&#039; );&lt;br /&gt;
    if ( !heading ) return;&lt;br /&gt;
&lt;br /&gt;
    heading.classList.add( &#039;pd-flicker&#039; );&lt;br /&gt;
&lt;br /&gt;
    /* Random additional intensity bursts */&lt;br /&gt;
    function scheduleBurst() {&lt;br /&gt;
      var delay = rand( CFG.flicker.interval[0], CFG.flicker.interval[1] );&lt;br /&gt;
      setTimeout( function () {&lt;br /&gt;
        heading.style.transition = &#039;text-shadow 0.05s ease&#039;;&lt;br /&gt;
        heading.style.textShadow =&lt;br /&gt;
          &#039;0 0 50px rgba(200,50,50,0.75), 0 0 10px rgba(255,160,100,0.3), 0 2px 4px rgba(0,0,0,.9)&#039;;&lt;br /&gt;
        setTimeout( function () {&lt;br /&gt;
          heading.style.textShadow = &#039;&#039;;&lt;br /&gt;
          heading.style.transition = &#039;&#039;;&lt;br /&gt;
          scheduleBurst();&lt;br /&gt;
        }, rand( 60, 180 ) );&lt;br /&gt;
      }, delay );&lt;br /&gt;
    }&lt;br /&gt;
    scheduleBurst();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* ── 4. SCROLL REVEAL ────────────────────────────────────── */&lt;br /&gt;
  function initReveal() {&lt;br /&gt;
    if ( !CFG.reveal.enabled ) return;&lt;br /&gt;
    if ( typeof IntersectionObserver === &#039;undefined&#039; ) return;&lt;br /&gt;
&lt;br /&gt;
    var targets = qsa(&lt;br /&gt;
      &#039;.mw-body-content h2, .mw-body-content h3, &#039; +&lt;br /&gt;
      &#039;.mw-body-content p, .mw-body-content .thumb, &#039; +&lt;br /&gt;
      &#039;.mw-body-content table, .mw-body-content blockquote, &#039; +&lt;br /&gt;
      &#039;.mw-body-content ul, .mw-body-content ol&#039;&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    var seen = new Set();&lt;br /&gt;
&lt;br /&gt;
    var obs = new IntersectionObserver( function ( entries ) {&lt;br /&gt;
      entries.forEach( function ( entry ) {&lt;br /&gt;
        if ( entry.isIntersecting &amp;amp;&amp;amp; !seen.has( entry.target ) ) {&lt;br /&gt;
          seen.add( entry.target );&lt;br /&gt;
          entry.target.classList.add( &#039;pd-reveal&#039; );&lt;br /&gt;
          obs.unobserve( entry.target );&lt;br /&gt;
        }&lt;br /&gt;
      } );&lt;br /&gt;
    }, { rootMargin: CFG.reveal.rootMargin } );&lt;br /&gt;
&lt;br /&gt;
    /* Pre-set opacity so reveal is visible */&lt;br /&gt;
    targets.forEach( function ( el ) {&lt;br /&gt;
      if ( el.getBoundingClientRect().top &amp;gt; window.innerHeight * 0.3 ) {&lt;br /&gt;
        el.style.opacity = &#039;0&#039;;&lt;br /&gt;
        obs.observe( el );&lt;br /&gt;
      }&lt;br /&gt;
    } );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* ── 5. CANDLE AMBIENT PULSE ─────────────────────────────── */&lt;br /&gt;
  function initCandlePulse() {&lt;br /&gt;
    if ( !CFG.candle.enabled ) return;&lt;br /&gt;
&lt;br /&gt;
    var targets = qsa( &#039;#toc, .toc, .infobox, table.infobox, #content, .mw-body&#039; );&lt;br /&gt;
    targets.forEach( function ( el ) {&lt;br /&gt;
      el.classList.add( &#039;pd-pulse-border&#039; );&lt;br /&gt;
    } );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* ── 6. ORNATE SECTION DIVIDERS ──────────────────────────── */&lt;br /&gt;
  function initDividers() {&lt;br /&gt;
    /* Insert a decorative vine divider after every h2 */&lt;br /&gt;
    var ornament = &#039;&amp;lt;span class=&amp;quot;pd-ornament&amp;quot; aria-hidden=&amp;quot;true&amp;quot; &#039; +&lt;br /&gt;
      &#039;style=&amp;quot;display:block;text-align:center;font-size:0.75rem;&#039; +&lt;br /&gt;
      &#039;color:rgba(122,28,36,0.45);letter-spacing:0.6em;&#039; +&lt;br /&gt;
      &#039;margin:-0.2rem 0 0.8rem;font-family:serif;&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
      &#039;— ✦ —&#039; +&lt;br /&gt;
      &#039;&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    qsa( &#039;.mw-body-content h2&#039; ).forEach( function ( h ) {&lt;br /&gt;
      h.insertAdjacentHTML( &#039;afterend&#039;, ornament );&lt;br /&gt;
    } );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* ── 7. TYPEWRITER HEADING (opt-in) ──────────────────────── */&lt;br /&gt;
  function initTypewriter() {&lt;br /&gt;
    if ( !CFG.typewriter.enabled ) return;&lt;br /&gt;
&lt;br /&gt;
    var heading = qs( &#039;#firstHeading, .mw-first-heading&#039; );&lt;br /&gt;
    if ( !heading ) return;&lt;br /&gt;
&lt;br /&gt;
    var originalText = heading.textContent.trim();&lt;br /&gt;
    heading.textContent = &#039;&#039;;&lt;br /&gt;
    heading.style.opacity = &#039;1&#039;;&lt;br /&gt;
&lt;br /&gt;
    var i = 0;&lt;br /&gt;
    var cursor = document.createElement( &#039;span&#039; );&lt;br /&gt;
    cursor.textContent = &#039;|&#039;;&lt;br /&gt;
    cursor.style.cssText =&lt;br /&gt;
      &#039;color:rgba(160,43,55,0.8);animation:pd-flickerB 1.1s ease-in-out infinite;&#039;;&lt;br /&gt;
    heading.appendChild( cursor );&lt;br /&gt;
&lt;br /&gt;
    var interval = setInterval( function () {&lt;br /&gt;
      if ( i &amp;lt; originalText.length ) {&lt;br /&gt;
        cursor.insertAdjacentText( &#039;beforebegin&#039;, originalText.charAt( i ) );&lt;br /&gt;
        i++;&lt;br /&gt;
      } else {&lt;br /&gt;
        clearInterval( interval );&lt;br /&gt;
        setTimeout( function () { cursor.remove(); }, 600 );&lt;br /&gt;
      }&lt;br /&gt;
    }, 55 );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* ── 8. LINK HOVER SOUND (optional — disabled by default) ── */&lt;br /&gt;
  /*&lt;br /&gt;
  function initHoverSound() {&lt;br /&gt;
    // Uncomment if you want subtle audio on link hover&lt;br /&gt;
    // Requires AudioContext support&lt;br /&gt;
    qsa( &#039;a&#039; ).forEach( function ( a ) {&lt;br /&gt;
      a.addEventListener( &#039;mouseenter&#039;, function () {&lt;br /&gt;
        try {&lt;br /&gt;
          var ctx = new AudioContext();&lt;br /&gt;
          var osc = ctx.createOscillator();&lt;br /&gt;
          var gain = ctx.createGain();&lt;br /&gt;
          osc.connect( gain );&lt;br /&gt;
          gain.connect( ctx.destination );&lt;br /&gt;
          osc.frequency.value = 220;&lt;br /&gt;
          gain.gain.setValueAtTime( 0.04, ctx.currentTime );&lt;br /&gt;
          gain.gain.exponentialRampToValueAtTime( 0.0001, ctx.currentTime + 0.25 );&lt;br /&gt;
          osc.start();&lt;br /&gt;
          osc.stop( ctx.currentTime + 0.25 );&lt;br /&gt;
        } catch ( e ) {}&lt;br /&gt;
      } );&lt;br /&gt;
    } );&lt;br /&gt;
  }&lt;br /&gt;
  */&lt;br /&gt;
&lt;br /&gt;
  /* ── 9. REDLINK STYLING ──────────────────────────────────── */&lt;br /&gt;
  function styleRedlinks() {&lt;br /&gt;
    qsa( &#039;a.new&#039; ).forEach( function ( a ) {&lt;br /&gt;
      a.title = ( a.title || &#039;&#039; ) + &#039; [page not yet written]&#039;;&lt;br /&gt;
    } );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* ── 10. SIDEBAR SECTION COLLAPSE ANIMATION ──────────────── */&lt;br /&gt;
  function initSidebarAnimations() {&lt;br /&gt;
    qsa( &#039;#mw-panel .portal, .vector-menu&#039; ).forEach( function ( portal, idx ) {&lt;br /&gt;
      portal.style.opacity = &#039;0&#039;;&lt;br /&gt;
      portal.style.transform = &#039;translateX(-8px)&#039;;&lt;br /&gt;
      portal.style.transition =&lt;br /&gt;
        &#039;opacity 0.5s ease &#039; + ( idx * 0.08 ) + &#039;s, &#039; +&lt;br /&gt;
        &#039;transform 0.5s ease &#039; + ( idx * 0.08 ) + &#039;s&#039;;&lt;br /&gt;
      /* Trigger reflow then animate in */&lt;br /&gt;
      setTimeout( function () {&lt;br /&gt;
        portal.style.opacity = &#039;1&#039;;&lt;br /&gt;
        portal.style.transform = &#039;translateX(0)&#039;;&lt;br /&gt;
      }, 80 );&lt;br /&gt;
    } );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* ── 11. TABLE ROW STAGGER ───────────────────────────────── */&lt;br /&gt;
  function initTableStagger() {&lt;br /&gt;
    qsa( &#039;.wikitable tr&#039; ).forEach( function ( tr, idx ) {&lt;br /&gt;
      tr.style.opacity = &#039;0&#039;;&lt;br /&gt;
      tr.style.transition = &#039;opacity 0.4s ease &#039; + ( idx * 0.04 ) + &#039;s&#039;;&lt;br /&gt;
      setTimeout( function () {&lt;br /&gt;
        tr.style.opacity = &#039;1&#039;;&lt;br /&gt;
      }, 200 + idx * 40 );&lt;br /&gt;
    } );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* ── 12. CROSS CURSOR TRAIL ──────────────────────────────── */&lt;br /&gt;
  function initCursorTrail() {&lt;br /&gt;
    /* Subtle: drops tiny crimson sparks on fast mouse move     */&lt;br /&gt;
    var lastX = 0, lastY = 0, moving = false, timer;&lt;br /&gt;
&lt;br /&gt;
    document.addEventListener( &#039;mousemove&#039;, function ( e ) {&lt;br /&gt;
      var dx = e.clientX - lastX;&lt;br /&gt;
      var dy = e.clientY - lastY;&lt;br /&gt;
      var dist = Math.sqrt( dx * dx + dy * dy );&lt;br /&gt;
&lt;br /&gt;
      if ( dist &amp;lt; 12 ) return; /* only on fast moves */&lt;br /&gt;
&lt;br /&gt;
      lastX = e.clientX;&lt;br /&gt;
      lastY = e.clientY;&lt;br /&gt;
&lt;br /&gt;
      var spark = document.createElement( &#039;div&#039; );&lt;br /&gt;
      spark.setAttribute( &#039;aria-hidden&#039;, &#039;true&#039; );&lt;br /&gt;
      spark.style.cssText =&lt;br /&gt;
        &#039;position:fixed;&#039; +&lt;br /&gt;
        &#039;left:&#039; + e.clientX + &#039;px;&#039; +&lt;br /&gt;
        &#039;top:&#039; + e.clientY + &#039;px;&#039; +&lt;br /&gt;
        &#039;width:4px;height:4px;&#039; +&lt;br /&gt;
        &#039;border-radius:50%;&#039; +&lt;br /&gt;
        &#039;background:rgba(160,43,55,0.7);&#039; +&lt;br /&gt;
        &#039;pointer-events:none;&#039; +&lt;br /&gt;
        &#039;z-index:99999;&#039; +&lt;br /&gt;
        &#039;transform:translate(-50%,-50%);&#039; +&lt;br /&gt;
        &#039;transition:opacity 0.6s ease, transform 0.6s ease;&#039;;&lt;br /&gt;
&lt;br /&gt;
      document.body.appendChild( spark );&lt;br /&gt;
&lt;br /&gt;
      /* Animate out */&lt;br /&gt;
      requestAnimationFrame( function () {&lt;br /&gt;
        spark.style.opacity = &#039;0&#039;;&lt;br /&gt;
        spark.style.transform =&lt;br /&gt;
          &#039;translate(-50%,-50%) translateY(&#039; + rand( -12, -30 ) + &#039;px) scale(0.3)&#039;;&lt;br /&gt;
      } );&lt;br /&gt;
&lt;br /&gt;
      setTimeout( function () {&lt;br /&gt;
        if ( spark.parentNode ) spark.parentNode.removeChild( spark );&lt;br /&gt;
      }, 650 );&lt;br /&gt;
    }, { passive: true } );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* ── 13. PAGE TRANSITION OVERLAY ─────────────────────────── */&lt;br /&gt;
  function initPageTransition() {&lt;br /&gt;
    /* Fade-out on navigation */&lt;br /&gt;
    var overlay = document.createElement( &#039;div&#039; );&lt;br /&gt;
    overlay.setAttribute( &#039;aria-hidden&#039;, &#039;true&#039; );&lt;br /&gt;
    overlay.style.cssText =&lt;br /&gt;
      &#039;position:fixed;inset:0;&#039; +&lt;br /&gt;
      &#039;background:#0e0a09;&#039; +&lt;br /&gt;
      &#039;opacity:0;pointer-events:none;&#039; +&lt;br /&gt;
      &#039;z-index:99997;&#039; +&lt;br /&gt;
      &#039;transition:opacity 0.3s ease;&#039;;&lt;br /&gt;
    document.body.appendChild( overlay );&lt;br /&gt;
&lt;br /&gt;
    /* Fade in (we arrive on a new page) */&lt;br /&gt;
    document.body.style.opacity = &#039;0&#039;;&lt;br /&gt;
    document.body.style.transition = &#039;opacity 0.6s ease&#039;;&lt;br /&gt;
    requestAnimationFrame( function () {&lt;br /&gt;
      document.body.style.opacity = &#039;1&#039;;&lt;br /&gt;
    } );&lt;br /&gt;
&lt;br /&gt;
    /* Fade out before leaving */&lt;br /&gt;
    document.addEventListener( &#039;click&#039;, function ( e ) {&lt;br /&gt;
      var a = e.target.closest( &#039;a&#039; );&lt;br /&gt;
      if ( !a || !a.href || a.target === &#039;_blank&#039; ||&lt;br /&gt;
           a.href.startsWith( &#039;#&#039; ) || a.href.startsWith( &#039;javascript&#039; ) ) return;&lt;br /&gt;
      /* Skip edit/action links */&lt;br /&gt;
      if ( /[?&amp;amp;]action=/.test( a.href ) &amp;amp;&amp;amp; !/action=view/.test( a.href ) ) return;&lt;br /&gt;
&lt;br /&gt;
      overlay.style.pointerEvents = &#039;all&#039;;&lt;br /&gt;
      overlay.style.opacity = &#039;1&#039;;&lt;br /&gt;
    } );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* ── 14. QUOTE PULL — RANDOM TRACK EPIGRAPH ──────────────── */&lt;br /&gt;
  var EPIGRAPHS = [&lt;br /&gt;
    &#039;&amp;quot;I was baptized but I still die.&amp;quot; — Family Tree&#039;,&lt;br /&gt;
    &#039;&amp;quot;God only listens to the men around here.&amp;quot; — Gibson Girl&#039;,&lt;br /&gt;
    &#039;&amp;quot;Nothing happened here except everything.&amp;quot; — Thoroughfare&#039;,&lt;br /&gt;
    &#039;&amp;quot;Hallelujah, hallelujah, come back to me.&amp;quot; — Strangers&#039;,&lt;br /&gt;
    &#039;&amp;quot;Sometimes I swear I can still hear the choir.&amp;quot; — Hard Road&#039;,&lt;br /&gt;
    &#039;&amp;quot;Do not mistake her softness for surrender.&amp;quot; — American Teenager&#039;&lt;br /&gt;
  ];&lt;br /&gt;
&lt;br /&gt;
  function initEpigraph() {&lt;br /&gt;
    var sidebar = qs( &#039;#mw-panel, .vector-sidebar-toc-container, #vector-toc-collapsed-button&#039; );&lt;br /&gt;
    if ( !sidebar ) return;&lt;br /&gt;
&lt;br /&gt;
    var quote = EPIGRAPHS[ randInt( 0, EPIGRAPHS.length - 1 ) ];&lt;br /&gt;
&lt;br /&gt;
    var el = document.createElement( &#039;div&#039; );&lt;br /&gt;
    el.setAttribute( &#039;aria-label&#039;, &#039;Album epigraph&#039; );&lt;br /&gt;
    el.style.cssText =&lt;br /&gt;
      &#039;margin: 1.5rem 0.8rem;&#039; +&lt;br /&gt;
      &#039;padding: 0.8rem 1rem;&#039; +&lt;br /&gt;
      &#039;border-left: 2px solid rgba(122,28,36,0.5);&#039; +&lt;br /&gt;
      &#039;font-family: &amp;quot;IM Fell English&amp;quot;, Georgia, serif;&#039; +&lt;br /&gt;
      &#039;font-style: italic;&#039; +&lt;br /&gt;
      &#039;font-size: 0.82rem;&#039; +&lt;br /&gt;
      &#039;color: rgba(158,139,114,0.8);&#039; +&lt;br /&gt;
      &#039;line-height: 1.6;&#039;;&lt;br /&gt;
    el.textContent = quote;&lt;br /&gt;
&lt;br /&gt;
    sidebar.appendChild( el );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* ── INIT — run after DOM ready ──────────────────────────── */&lt;br /&gt;
  function main() {&lt;br /&gt;
    initWatermark();&lt;br /&gt;
    initDust();&lt;br /&gt;
    initFlicker();&lt;br /&gt;
    initReveal();&lt;br /&gt;
    initCandlePulse();&lt;br /&gt;
    initDividers();&lt;br /&gt;
    initTypewriter();&lt;br /&gt;
    styleRedlinks();&lt;br /&gt;
    initSidebarAnimations();&lt;br /&gt;
    initTableStagger();&lt;br /&gt;
    initCursorTrail();&lt;br /&gt;
    initPageTransition();&lt;br /&gt;
    initEpigraph();&lt;br /&gt;
&lt;br /&gt;
    /* Mark body so CSS can scope theme selectors */&lt;br /&gt;
    document.documentElement.classList.add( &#039;pd-theme&#039; );&lt;br /&gt;
&lt;br /&gt;
    /* Console signature */&lt;br /&gt;
    console.log(&lt;br /&gt;
      &#039;%c✝ Preacher\&#039;s Daughter Wiki Theme%c\n&#039; +&lt;br /&gt;
      &#039;  Ethel Cain · 2022 · Southern Gothic\n&#039; +&lt;br /&gt;
      &#039;  &amp;quot;God is a place you will wait for the rest of your life.&amp;quot;&#039;,&lt;br /&gt;
      &#039;color:#c03040;font-size:14px;font-weight:bold;&#039;,&lt;br /&gt;
      &#039;color:#9e8b72;font-size:11px;&#039;&lt;br /&gt;
    );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if ( document.readyState === &#039;loading&#039; ) {&lt;br /&gt;
    document.addEventListener( &#039;DOMContentLoaded&#039;, main );&lt;br /&gt;
  } else {&lt;br /&gt;
    main();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
} )();&lt;/div&gt;</summary>
		<author><name>King of the colours</name></author>
	</entry>
	<entry>
		<id>https://colourversalwikis.com/index.php?title=MediaWiki:Common.css&amp;diff=2</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://colourversalwikis.com/index.php?title=MediaWiki:Common.css&amp;diff=2"/>
		<updated>2026-04-16T05:05:13Z</updated>

		<summary type="html">&lt;p&gt;King of the colours: Created page with &amp;quot;/* =============================================================   PREACHER&amp;#039;S DAUGHTER — MediaWiki Wiki Theme   Based on the 2022 album by Ethel Cain   Southern Gothic · Dark Americana · Sacred &amp;amp; Profane =============================================================   Install: Paste into MediaWiki:Common.css   Pair with: MediaWiki:Common.js (see companion file) ============================================================= */  /* ── 0. GOOGLE FONTS IMPORT ───...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/*&lt;br /&gt;
=============================================================&lt;br /&gt;
  PREACHER&#039;S DAUGHTER — MediaWiki Wiki Theme&lt;br /&gt;
  Based on the 2022 album by Ethel Cain&lt;br /&gt;
  Southern Gothic · Dark Americana · Sacred &amp;amp; Profane&lt;br /&gt;
=============================================================&lt;br /&gt;
  Install: Paste into MediaWiki:Common.css&lt;br /&gt;
  Pair with: MediaWiki:Common.js (see companion file)&lt;br /&gt;
=============================================================&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
/* ── 0. GOOGLE FONTS IMPORT ──────────────────────────────── */&lt;br /&gt;
@import url(&#039;https://fonts.googleapis.com/css2?family=IM+Fell+English:ital@0;1&amp;amp;family=Cinzel:wght@400;600;900&amp;amp;family=EB+Garamond:ital,wght@0,400;0,500;1,400;1,500&amp;amp;family=Cinzel+Decorative:wght@400;700&amp;amp;display=swap&#039;);&lt;br /&gt;
&lt;br /&gt;
/* ── 1. ROOT VARIABLES ───────────────────────────────────── */&lt;br /&gt;
:root {&lt;br /&gt;
  --pd-bg:          #0e0a09;&lt;br /&gt;
  --pd-bg-alt:      #150f0d;&lt;br /&gt;
  --pd-bg-content:  #1a1210;&lt;br /&gt;
  --pd-bg-sidebar:  #110c0b;&lt;br /&gt;
  --pd-bg-header:   #0a0706;&lt;br /&gt;
&lt;br /&gt;
  --pd-text:        #e8d9c0;&lt;br /&gt;
  --pd-text-muted:  #9e8b72;&lt;br /&gt;
  --pd-text-faint:  #5c4d3c;&lt;br /&gt;
&lt;br /&gt;
  --pd-crimson:     #7a1c24;&lt;br /&gt;
  --pd-crimson-lt:  #a82b37;&lt;br /&gt;
  --pd-crimson-glow:#c0304050;&lt;br /&gt;
  --pd-rose:        #b07080;&lt;br /&gt;
  --pd-rose-lt:     #d09090;&lt;br /&gt;
  --pd-gold:        #b08050;&lt;br /&gt;
  --pd-gold-lt:     #d4a060;&lt;br /&gt;
  --pd-bone:        #f0e8d5;&lt;br /&gt;
  --pd-ivory:       #fdf8f0;&lt;br /&gt;
&lt;br /&gt;
  --pd-border:      #3a2818;&lt;br /&gt;
  --pd-border-lt:   #5a3c22;&lt;br /&gt;
&lt;br /&gt;
  --pd-font-display:   &#039;Cinzel Decorative&#039;, &#039;Cinzel&#039;, serif;&lt;br /&gt;
  --pd-font-heading:   &#039;IM Fell English&#039;, &#039;Georgia&#039;, serif;&lt;br /&gt;
  --pd-font-body:      &#039;EB Garamond&#039;, &#039;Georgia&#039;, serif;&lt;br /&gt;
  --pd-font-cinzel:    &#039;Cinzel&#039;, serif;&lt;br /&gt;
  --pd-font-ui:        &#039;EB Garamond&#039;, serif;&lt;br /&gt;
&lt;br /&gt;
  --pd-shadow-deep:    0 8px 32px rgba(0,0,0,0.8);&lt;br /&gt;
  --pd-shadow-crimson: 0 0 18px rgba(122,28,36,0.35);&lt;br /&gt;
  --pd-glow-link:      0 0 8px rgba(160,43,55,0.5);&lt;br /&gt;
  --pd-transition:     0.35s cubic-bezier(0.4, 0, 0.2, 1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 2. BASE RESET &amp;amp; BODY ────────────────────────────────── */&lt;br /&gt;
html, body {&lt;br /&gt;
  background-color: var(--pd-bg) !important;&lt;br /&gt;
  color: var(--pd-text) !important;&lt;br /&gt;
  font-family: var(--pd-font-body) !important;&lt;br /&gt;
  font-size: 18px !important;&lt;br /&gt;
  line-height: 1.75 !important;&lt;br /&gt;
  -webkit-font-smoothing: antialiased;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Aged parchment texture using CSS alone — horizontal grain */&lt;br /&gt;
body::before {&lt;br /&gt;
  content: &#039;&#039;;&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  inset: 0;&lt;br /&gt;
  background-image:&lt;br /&gt;
    repeating-linear-gradient(&lt;br /&gt;
      0deg,&lt;br /&gt;
      transparent,&lt;br /&gt;
      transparent 2px,&lt;br /&gt;
      rgba(255,240,200,0.012) 2px,&lt;br /&gt;
      rgba(255,240,200,0.012) 4px&lt;br /&gt;
    );&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
  z-index: 9998;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 3. PAGE LAYOUT WRAPPERS ─────────────────────────────── */&lt;br /&gt;
#mw-page-base {&lt;br /&gt;
  background-color: var(--pd-bg-header) !important;&lt;br /&gt;
  background-image: linear-gradient(180deg, #050303 0%, var(--pd-bg-alt) 100%) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mw-head-base {&lt;br /&gt;
  background-color: var(--pd-bg-header) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#content,&lt;br /&gt;
.mw-body {&lt;br /&gt;
  background-color: var(--pd-bg-content) !important;&lt;br /&gt;
  color: var(--pd-text) !important;&lt;br /&gt;
  border: 1px solid var(--pd-border) !important;&lt;br /&gt;
  border-top: 2px solid var(--pd-crimson) !important;&lt;br /&gt;
  box-shadow: var(--pd-shadow-deep) !important;&lt;br /&gt;
  padding: 2rem 2.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Vignette border — gives content depth */&lt;br /&gt;
.mw-body::after {&lt;br /&gt;
  content: &#039;&#039;;&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  inset: 0;&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
  box-shadow: inset 0 0 80px rgba(0,0,0,0.45);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 4. SIDEBAR ──────────────────────────────────────────── */&lt;br /&gt;
#mw-panel,&lt;br /&gt;
.vector-sidebar,&lt;br /&gt;
.mw-sidebar,&lt;br /&gt;
#mw-navigation,&lt;br /&gt;
.collapsible-nav {&lt;br /&gt;
  background-color: var(--pd-bg-sidebar) !important;&lt;br /&gt;
  border-right: 1px solid var(--pd-border) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 5. LOGO ─────────────────────────────────────────────── */&lt;br /&gt;
#p-logo a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  filter: drop-shadow(0 0 12px rgba(122,28,36,0.6));&lt;br /&gt;
  transition: filter var(--pd-transition);&lt;br /&gt;
}&lt;br /&gt;
#p-logo a:hover {&lt;br /&gt;
  filter: drop-shadow(0 0 22px rgba(160,43,55,0.85));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 6. SITE TITLE &amp;amp; HEADER ──────────────────────────────── */&lt;br /&gt;
#firstHeading,&lt;br /&gt;
.mw-first-heading,&lt;br /&gt;
.page-header h1 {&lt;br /&gt;
  font-family: var(--pd-font-display) !important;&lt;br /&gt;
  font-size: 2.2rem !important;&lt;br /&gt;
  font-weight: 700 !important;&lt;br /&gt;
  color: var(--pd-bone) !important;&lt;br /&gt;
  letter-spacing: 0.06em !important;&lt;br /&gt;
  text-shadow:&lt;br /&gt;
    0 0 30px rgba(160,43,55,0.4),&lt;br /&gt;
    0 2px 4px rgba(0,0,0,0.8) !important;&lt;br /&gt;
  border-bottom: 1px solid var(--pd-border) !important;&lt;br /&gt;
  padding-bottom: 0.6rem !important;&lt;br /&gt;
  margin-bottom: 1.4rem !important;&lt;br /&gt;
  animation: pd-fadein 1.2s ease forwards;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 7. HEADINGS ─────────────────────────────────────────── */&lt;br /&gt;
.mw-body-content h1,&lt;br /&gt;
.mw-body-content h2,&lt;br /&gt;
.mw-body-content h3,&lt;br /&gt;
.mw-body-content h4,&lt;br /&gt;
.mw-body-content h5,&lt;br /&gt;
.mw-body-content h6 {&lt;br /&gt;
  font-family: var(--pd-font-heading) !important;&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
  color: var(--pd-bone) !important;&lt;br /&gt;
  letter-spacing: 0.03em;&lt;br /&gt;
  text-shadow: 0 1px 6px rgba(0,0,0,0.6);&lt;br /&gt;
  margin-top: 1.8em !important;&lt;br /&gt;
  margin-bottom: 0.5em !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content h2 {&lt;br /&gt;
  font-size: 1.6rem !important;&lt;br /&gt;
  border-bottom: 1px solid var(--pd-border-lt) !important;&lt;br /&gt;
  padding-bottom: 0.3rem !important;&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Cross ornament before h2 */&lt;br /&gt;
.mw-body-content h2 .mw-headline::before {&lt;br /&gt;
  content: &#039;✝&#039;;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-family: serif;&lt;br /&gt;
  color: var(--pd-crimson-lt);&lt;br /&gt;
  margin-right: 0.5em;&lt;br /&gt;
  font-size: 0.75em;&lt;br /&gt;
  vertical-align: middle;&lt;br /&gt;
  opacity: 0.75;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content h3 {&lt;br /&gt;
  font-size: 1.28rem !important;&lt;br /&gt;
  color: var(--pd-text) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content h4,&lt;br /&gt;
.mw-body-content h5,&lt;br /&gt;
.mw-body-content h6 {&lt;br /&gt;
  font-family: var(--pd-font-cinzel) !important;&lt;br /&gt;
  font-style: normal !important;&lt;br /&gt;
  font-size: 1rem !important;&lt;br /&gt;
  letter-spacing: 0.1em !important;&lt;br /&gt;
  text-transform: uppercase !important;&lt;br /&gt;
  color: var(--pd-text-muted) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 8. BODY TEXT ────────────────────────────────────────── */&lt;br /&gt;
.mw-body-content p,&lt;br /&gt;
.mw-body-content li,&lt;br /&gt;
.mw-body-content dd,&lt;br /&gt;
.mw-body-content dt {&lt;br /&gt;
  font-family: var(--pd-font-body) !important;&lt;br /&gt;
  font-size: 1rem !important;&lt;br /&gt;
  line-height: 1.8 !important;&lt;br /&gt;
  color: var(--pd-text) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Opening paragraph drop-cap */&lt;br /&gt;
.mw-body-content &amp;gt; p:first-of-type::first-letter {&lt;br /&gt;
  font-family: var(--pd-font-cinzel) !important;&lt;br /&gt;
  font-size: 4.2em !important;&lt;br /&gt;
  line-height: 0.75;&lt;br /&gt;
  float: left;&lt;br /&gt;
  margin: 0.05em 0.12em 0 0;&lt;br /&gt;
  color: var(--pd-crimson-lt);&lt;br /&gt;
  text-shadow: 0 0 20px rgba(160,43,55,0.5);&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 9. LINKS ────────────────────────────────────────────── */&lt;br /&gt;
a,&lt;br /&gt;
a:visited {&lt;br /&gt;
  color: var(--pd-rose) !important;&lt;br /&gt;
  text-decoration: none !important;&lt;br /&gt;
  border-bottom: 1px solid transparent;&lt;br /&gt;
  transition:&lt;br /&gt;
    color var(--pd-transition),&lt;br /&gt;
    border-color var(--pd-transition),&lt;br /&gt;
    text-shadow var(--pd-transition) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a:hover {&lt;br /&gt;
  color: var(--pd-rose-lt) !important;&lt;br /&gt;
  border-bottom-color: var(--pd-crimson-lt) !important;&lt;br /&gt;
  text-shadow: var(--pd-glow-link) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a.new,&lt;br /&gt;
a.new:visited {&lt;br /&gt;
  color: var(--pd-crimson-lt) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 10. NAVIGATION MENUS ────────────────────────────────── */&lt;br /&gt;
/* Sidebar nav links */&lt;br /&gt;
#mw-panel .portal,&lt;br /&gt;
.vector-menu-content,&lt;br /&gt;
.sidebar-toc {&lt;br /&gt;
  border: none !important;&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mw-panel .portal h3,&lt;br /&gt;
.vector-menu-heading {&lt;br /&gt;
  font-family: var(--pd-font-cinzel) !important;&lt;br /&gt;
  font-size: 0.72rem !important;&lt;br /&gt;
  font-weight: 600 !important;&lt;br /&gt;
  letter-spacing: 0.18em !important;&lt;br /&gt;
  text-transform: uppercase !important;&lt;br /&gt;
  color: var(--pd-crimson-lt) !important;&lt;br /&gt;
  border-bottom: 1px solid var(--pd-border) !important;&lt;br /&gt;
  padding-bottom: 0.3rem !important;&lt;br /&gt;
  margin: 1rem 0 0.4rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mw-panel .portal ul li a,&lt;br /&gt;
.vector-menu-content li a {&lt;br /&gt;
  font-family: var(--pd-font-body) !important;&lt;br /&gt;
  font-size: 0.9rem !important;&lt;br /&gt;
  color: var(--pd-text-muted) !important;&lt;br /&gt;
  padding: 0.15rem 0 !important;&lt;br /&gt;
  transition: color var(--pd-transition), padding-left var(--pd-transition) !important;&lt;br /&gt;
  display: block !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mw-panel .portal ul li a:hover,&lt;br /&gt;
.vector-menu-content li a:hover {&lt;br /&gt;
  color: var(--pd-rose-lt) !important;&lt;br /&gt;
  padding-left: 0.5rem !important;&lt;br /&gt;
  border-bottom: none !important;&lt;br /&gt;
  text-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 11. TOP NAVIGATION BAR ──────────────────────────────── */&lt;br /&gt;
#mw-head,&lt;br /&gt;
.vector-header,&lt;br /&gt;
#vector-page-toolbar,&lt;br /&gt;
.vector-page-toolbar {&lt;br /&gt;
  background-color: var(--pd-bg-header) !important;&lt;br /&gt;
  border-bottom: 1px solid var(--pd-border) !important;&lt;br /&gt;
  box-shadow: 0 2px 12px rgba(0,0,0,0.6) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Tabs (read/edit/history) */&lt;br /&gt;
#p-views .selected a,&lt;br /&gt;
#p-views li.selected a {&lt;br /&gt;
  background-color: var(--pd-bg-content) !important;&lt;br /&gt;
  color: var(--pd-bone) !important;&lt;br /&gt;
  border-color: var(--pd-border-lt) var(--pd-border-lt) transparent !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-views li a {&lt;br /&gt;
  background-color: var(--pd-bg-sidebar) !important;&lt;br /&gt;
  color: var(--pd-text-muted) !important;&lt;br /&gt;
  border: 1px solid var(--pd-border) !important;&lt;br /&gt;
  font-family: var(--pd-font-cinzel) !important;&lt;br /&gt;
  font-size: 0.78rem !important;&lt;br /&gt;
  letter-spacing: 0.08em !important;&lt;br /&gt;
  transition: background-color var(--pd-transition), color var(--pd-transition) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-views li a:hover {&lt;br /&gt;
  background-color: var(--pd-crimson) !important;&lt;br /&gt;
  color: var(--pd-bone) !important;&lt;br /&gt;
  border-color: var(--pd-crimson) !important;&lt;br /&gt;
  border-bottom: none !important;&lt;br /&gt;
  text-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Search box */&lt;br /&gt;
#searchInput,&lt;br /&gt;
#searchform input[type=&amp;quot;search&amp;quot;],&lt;br /&gt;
input#searchInput {&lt;br /&gt;
  background-color: #100b0a !important;&lt;br /&gt;
  color: var(--pd-text) !important;&lt;br /&gt;
  border: 1px solid var(--pd-border-lt) !important;&lt;br /&gt;
  font-family: var(--pd-font-body) !important;&lt;br /&gt;
  font-size: 0.95rem !important;&lt;br /&gt;
  padding: 0.35rem 0.7rem !important;&lt;br /&gt;
  border-radius: 2px !important;&lt;br /&gt;
  transition: border-color var(--pd-transition), box-shadow var(--pd-transition) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#searchInput:focus {&lt;br /&gt;
  border-color: var(--pd-crimson-lt) !important;&lt;br /&gt;
  box-shadow: 0 0 0 2px rgba(122,28,36,0.3) !important;&lt;br /&gt;
  outline: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#searchButton, button.searchButton {&lt;br /&gt;
  background-color: var(--pd-crimson) !important;&lt;br /&gt;
  color: var(--pd-bone) !important;&lt;br /&gt;
  border: 1px solid var(--pd-crimson-lt) !important;&lt;br /&gt;
  font-family: var(--pd-font-cinzel) !important;&lt;br /&gt;
  font-size: 0.75rem !important;&lt;br /&gt;
  letter-spacing: 0.1em !important;&lt;br /&gt;
  cursor: pointer !important;&lt;br /&gt;
  transition: background-color var(--pd-transition) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#searchButton:hover {&lt;br /&gt;
  background-color: var(--pd-crimson-lt) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 12. TABLE OF CONTENTS ───────────────────────────────── */&lt;br /&gt;
#toc,&lt;br /&gt;
.toc {&lt;br /&gt;
  background-color: rgba(14,10,9,0.7) !important;&lt;br /&gt;
  border: 1px solid var(--pd-border-lt) !important;&lt;br /&gt;
  border-top: 2px solid var(--pd-crimson) !important;&lt;br /&gt;
  padding: 1rem 1.4rem !important;&lt;br /&gt;
  font-family: var(--pd-font-body) !important;&lt;br /&gt;
  box-shadow: var(--pd-shadow-deep) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#toc .toctitle h2,&lt;br /&gt;
.toc .toctitle h2 {&lt;br /&gt;
  font-family: var(--pd-font-cinzel) !important;&lt;br /&gt;
  font-size: 0.8rem !important;&lt;br /&gt;
  font-style: normal !important;&lt;br /&gt;
  letter-spacing: 0.15em !important;&lt;br /&gt;
  text-transform: uppercase !important;&lt;br /&gt;
  color: var(--pd-crimson-lt) !important;&lt;br /&gt;
  border-bottom: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#toc .toctitle h2::before { content: &#039;&#039; !important; }&lt;br /&gt;
&lt;br /&gt;
.toc ul { margin: 0 !important; }&lt;br /&gt;
&lt;br /&gt;
.toc li a {&lt;br /&gt;
  color: var(--pd-text-muted) !important;&lt;br /&gt;
  font-size: 0.9rem !important;&lt;br /&gt;
  border-bottom: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.toc li a:hover {&lt;br /&gt;
  color: var(--pd-rose) !important;&lt;br /&gt;
  text-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.toc .tocnumber {&lt;br /&gt;
  color: var(--pd-crimson-lt) !important;&lt;br /&gt;
  font-family: var(--pd-font-cinzel) !important;&lt;br /&gt;
  font-size: 0.8rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 13. TABLES ──────────────────────────────────────────── */&lt;br /&gt;
.wikitable,&lt;br /&gt;
.mw-body-content table.wikitable {&lt;br /&gt;
  background-color: var(--pd-bg-alt) !important;&lt;br /&gt;
  border: 1px solid var(--pd-border-lt) !important;&lt;br /&gt;
  border-collapse: collapse !important;&lt;br /&gt;
  color: var(--pd-text) !important;&lt;br /&gt;
  box-shadow: var(--pd-shadow-deep) !important;&lt;br /&gt;
  font-family: var(--pd-font-body) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable th {&lt;br /&gt;
  background-color: #1e1210 !important;&lt;br /&gt;
  color: var(--pd-bone) !important;&lt;br /&gt;
  font-family: var(--pd-font-cinzel) !important;&lt;br /&gt;
  font-size: 0.8rem !important;&lt;br /&gt;
  letter-spacing: 0.1em !important;&lt;br /&gt;
  text-transform: uppercase !important;&lt;br /&gt;
  border: 1px solid var(--pd-border-lt) !important;&lt;br /&gt;
  padding: 0.6rem 1rem !important;&lt;br /&gt;
  border-top: 2px solid var(--pd-crimson) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable td {&lt;br /&gt;
  border: 1px solid var(--pd-border) !important;&lt;br /&gt;
  padding: 0.5rem 0.9rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable tr:hover td {&lt;br /&gt;
  background-color: rgba(122,28,36,0.08) !important;&lt;br /&gt;
  transition: background-color 0.2s ease !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 14. BLOCKQUOTES ─────────────────────────────────────── */&lt;br /&gt;
blockquote,&lt;br /&gt;
.mw-body-content blockquote {&lt;br /&gt;
  border-left: 3px solid var(--pd-crimson-lt) !important;&lt;br /&gt;
  background-color: rgba(10,7,6,0.6) !important;&lt;br /&gt;
  color: var(--pd-text-muted) !important;&lt;br /&gt;
  font-family: var(--pd-font-heading) !important;&lt;br /&gt;
  font-style: italic !important;&lt;br /&gt;
  font-size: 1.1rem !important;&lt;br /&gt;
  padding: 0.8rem 1.5rem !important;&lt;br /&gt;
  margin: 1.5rem 0 !important;&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
blockquote::before {&lt;br /&gt;
  content: &#039;\201C&#039;;&lt;br /&gt;
  font-family: var(--pd-font-display) !important;&lt;br /&gt;
  font-size: 4rem;&lt;br /&gt;
  color: var(--pd-crimson);&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  top: -0.5rem;&lt;br /&gt;
  left: 0.5rem;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
  opacity: 0.4;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 15. CATEGORIES ──────────────────────────────────────── */&lt;br /&gt;
#catlinks {&lt;br /&gt;
  background-color: var(--pd-bg-sidebar) !important;&lt;br /&gt;
  border: 1px solid var(--pd-border) !important;&lt;br /&gt;
  border-top: 1px solid var(--pd-border-lt) !important;&lt;br /&gt;
  color: var(--pd-text-muted) !important;&lt;br /&gt;
  font-family: var(--pd-font-cinzel) !important;&lt;br /&gt;
  font-size: 0.78rem !important;&lt;br /&gt;
  letter-spacing: 0.06em !important;&lt;br /&gt;
  padding: 0.5rem 1rem !important;&lt;br /&gt;
  margin-top: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#catlinks a {&lt;br /&gt;
  color: var(--pd-text-muted) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#catlinks a:hover {&lt;br /&gt;
  color: var(--pd-rose) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 16. FOOTER ──────────────────────────────────────────── */&lt;br /&gt;
#footer {&lt;br /&gt;
  background-color: var(--pd-bg) !important;&lt;br /&gt;
  border-top: 1px solid var(--pd-border) !important;&lt;br /&gt;
  color: var(--pd-text-faint) !important;&lt;br /&gt;
  font-family: var(--pd-font-cinzel) !important;&lt;br /&gt;
  font-size: 0.72rem !important;&lt;br /&gt;
  letter-spacing: 0.1em !important;&lt;br /&gt;
  text-transform: uppercase !important;&lt;br /&gt;
  padding: 1.2rem 2rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#footer a {&lt;br /&gt;
  color: var(--pd-text-faint) !important;&lt;br /&gt;
  border-bottom: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#footer a:hover {&lt;br /&gt;
  color: var(--pd-text-muted) !important;&lt;br /&gt;
  text-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#footer-icons { opacity: 0.4; filter: grayscale(1); }&lt;br /&gt;
&lt;br /&gt;
/* ── 17. EDIT BUTTONS &amp;amp; SECTION EDIT ────────────────────── */&lt;br /&gt;
.mw-editsection a,&lt;br /&gt;
.mw-editsection-bracket {&lt;br /&gt;
  color: var(--pd-text-faint) !important;&lt;br /&gt;
  font-family: var(--pd-font-cinzel) !important;&lt;br /&gt;
  font-size: 0.65rem !important;&lt;br /&gt;
  letter-spacing: 0.1em !important;&lt;br /&gt;
  border-bottom: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-editsection a:hover {&lt;br /&gt;
  color: var(--pd-rose) !important;&lt;br /&gt;
  text-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 18. INFOBOXES ───────────────────────────────────────── */&lt;br /&gt;
.infobox,&lt;br /&gt;
table.infobox {&lt;br /&gt;
  background-color: #120e0c !important;&lt;br /&gt;
  border: 1px solid var(--pd-border-lt) !important;&lt;br /&gt;
  border-top: 3px solid var(--pd-crimson) !important;&lt;br /&gt;
  color: var(--pd-text) !important;&lt;br /&gt;
  font-family: var(--pd-font-body) !important;&lt;br /&gt;
  box-shadow: var(--pd-shadow-deep) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox th,&lt;br /&gt;
table.infobox th {&lt;br /&gt;
  background-color: #1a1010 !important;&lt;br /&gt;
  color: var(--pd-rose-lt) !important;&lt;br /&gt;
  font-family: var(--pd-font-cinzel) !important;&lt;br /&gt;
  font-size: 0.78rem !important;&lt;br /&gt;
  letter-spacing: 0.08em !important;&lt;br /&gt;
  text-transform: uppercase !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox caption,&lt;br /&gt;
table.infobox caption {&lt;br /&gt;
  font-family: var(--pd-font-display) !important;&lt;br /&gt;
  color: var(--pd-bone) !important;&lt;br /&gt;
  font-size: 1.05rem !important;&lt;br /&gt;
  padding: 0.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 19. MESSAGE BOXES (warning, notice, etc.) ───────────── */&lt;br /&gt;
.mbox-text,&lt;br /&gt;
.ambox td,&lt;br /&gt;
.tmbox td {&lt;br /&gt;
  font-family: var(--pd-font-body) !important;&lt;br /&gt;
  color: var(--pd-text-muted) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox,&lt;br /&gt;
.tmbox,&lt;br /&gt;
.cmbox {&lt;br /&gt;
  background-color: #0f0b0a !important;&lt;br /&gt;
  border: 1px solid var(--pd-border-lt) !important;&lt;br /&gt;
  border-left: 4px solid var(--pd-crimson) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 20. CODE &amp;amp; PRE ──────────────────────────────────────── */&lt;br /&gt;
code, pre, .mw-code {&lt;br /&gt;
  background-color: #0a0706 !important;&lt;br /&gt;
  color: var(--pd-rose-lt) !important;&lt;br /&gt;
  border: 1px solid var(--pd-border) !important;&lt;br /&gt;
  font-family: &#039;Courier New&#039;, monospace !important;&lt;br /&gt;
  font-size: 0.85rem !important;&lt;br /&gt;
  border-radius: 2px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 21. SCROLLBAR ───────────────────────────────────────── */&lt;br /&gt;
::-webkit-scrollbar {&lt;br /&gt;
  width: 8px;&lt;br /&gt;
  height: 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
::-webkit-scrollbar-track {&lt;br /&gt;
  background: var(--pd-bg);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
::-webkit-scrollbar-thumb {&lt;br /&gt;
  background: var(--pd-border-lt);&lt;br /&gt;
  border-radius: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
::-webkit-scrollbar-thumb:hover {&lt;br /&gt;
  background: var(--pd-crimson);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 22. TEXT SELECTION ──────────────────────────────────── */&lt;br /&gt;
::selection {&lt;br /&gt;
  background-color: rgba(122,28,36,0.45) !important;&lt;br /&gt;
  color: var(--pd-bone) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 23. HORIZONTAL RULES ────────────────────────────────── */&lt;br /&gt;
hr, .mw-body-content hr {&lt;br /&gt;
  border: none !important;&lt;br /&gt;
  border-top: 1px solid var(--pd-border-lt) !important;&lt;br /&gt;
  margin: 2rem 0 !important;&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
hr::after {&lt;br /&gt;
  content: &#039;✦ ✝ ✦&#039;;&lt;br /&gt;
  display: block;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  color: var(--pd-crimson-lt);&lt;br /&gt;
  font-size: 0.7rem;&lt;br /&gt;
  margin-top: -0.65rem;&lt;br /&gt;
  background: var(--pd-bg-content);&lt;br /&gt;
  width: 6rem;&lt;br /&gt;
  margin-left: auto;&lt;br /&gt;
  margin-right: auto;&lt;br /&gt;
  letter-spacing: 0.4em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 24. IMAGE CAPTIONS ──────────────────────────────────── */&lt;br /&gt;
.mw-body-content .thumbcaption,&lt;br /&gt;
.thumbcaption {&lt;br /&gt;
  color: var(--pd-text-muted) !important;&lt;br /&gt;
  font-family: var(--pd-font-heading) !important;&lt;br /&gt;
  font-style: italic !important;&lt;br /&gt;
  font-size: 0.88rem !important;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.thumb,&lt;br /&gt;
.mw-body-content .thumb {&lt;br /&gt;
  border: 1px solid var(--pd-border) !important;&lt;br /&gt;
  background-color: var(--pd-bg) !important;&lt;br /&gt;
  padding: 3px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 25. DIFF / HISTORY VIEWS ────────────────────────────── */&lt;br /&gt;
table.diff {&lt;br /&gt;
  background-color: var(--pd-bg-content) !important;&lt;br /&gt;
  font-family: var(--pd-font-body) !important;&lt;br /&gt;
  font-size: 0.9rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.diff-addedline {&lt;br /&gt;
  background-color: rgba(30,60,20,0.35) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.diff-deletedline {&lt;br /&gt;
  background-color: rgba(90,20,20,0.35) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
td.diff-context {&lt;br /&gt;
  background-color: var(--pd-bg-alt) !important;&lt;br /&gt;
  color: var(--pd-text-muted) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 26. PAGE STATUS INDICATORS ──────────────────────────── */&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  font-family: var(--pd-font-cinzel) !important;&lt;br /&gt;
  font-size: 0.7rem !important;&lt;br /&gt;
  color: var(--pd-text-faint) !important;&lt;br /&gt;
  letter-spacing: 0.1em !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 27. PRINT MEDIA ─────────────────────────────────────── */&lt;br /&gt;
@media print {&lt;br /&gt;
  body {&lt;br /&gt;
    background: white !important;&lt;br /&gt;
    color: black !important;&lt;br /&gt;
    font-family: Georgia, serif !important;&lt;br /&gt;
  }&lt;br /&gt;
  #mw-panel, #mw-head, #footer, #catlinks { display: none !important; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 28. CORE ANIMATIONS (used by JS too) ────────────────── */&lt;br /&gt;
&lt;br /&gt;
@keyframes pd-fadein {&lt;br /&gt;
  from { opacity: 0; transform: translateY(8px); }&lt;br /&gt;
  to   { opacity: 1; transform: translateY(0); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes pd-flickerA {&lt;br /&gt;
  0%,100% { opacity:1;    text-shadow: 0 0 30px rgba(160,43,55,0.45), 0 2px 4px rgba(0,0,0,.8); }&lt;br /&gt;
  8%       { opacity:.95; text-shadow: 0 0 26px rgba(160,43,55,0.3),  0 2px 4px rgba(0,0,0,.8); }&lt;br /&gt;
  16%      { opacity:1;   text-shadow: 0 0 35px rgba(160,43,55,0.55), 0 2px 4px rgba(0,0,0,.8); }&lt;br /&gt;
  30%      { opacity:.97; text-shadow: 0 0 28px rgba(160,43,55,0.38), 0 2px 4px rgba(0,0,0,.8); }&lt;br /&gt;
  56%      { opacity:1;   text-shadow: 0 0 32px rgba(160,43,55,0.5),  0 2px 4px rgba(0,0,0,.8); }&lt;br /&gt;
  79%      { opacity:.96; text-shadow: 0 0 22px rgba(160,43,55,0.28), 0 2px 4px rgba(0,0,0,.8); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes pd-flickerB {&lt;br /&gt;
  0%,100% { opacity:.82; }&lt;br /&gt;
  20%     { opacity:.75; }&lt;br /&gt;
  45%     { opacity:.85; }&lt;br /&gt;
  70%     { opacity:.78; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes pd-crimsonPulse {&lt;br /&gt;
  0%,100% { box-shadow: 0 0 6px rgba(122,28,36,0.2), inset 0 0 6px rgba(122,28,36,0.05); }&lt;br /&gt;
  50%     { box-shadow: 0 0 16px rgba(122,28,36,0.5), inset 0 0 12px rgba(122,28,36,0.12); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes pd-crossFade {&lt;br /&gt;
  0%,100% { opacity: 0.04; }&lt;br /&gt;
  50%     { opacity: 0.07; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes pd-dust {&lt;br /&gt;
  0%   { transform: translateY(-10px) translateX(0px) rotate(0deg); opacity: 0; }&lt;br /&gt;
  10%  { opacity: 0.6; }&lt;br /&gt;
  90%  { opacity: 0.2; }&lt;br /&gt;
  100% { transform: translateY(100vh) translateX(40px) rotate(360deg); opacity: 0; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes pd-slideUp {&lt;br /&gt;
  from { opacity: 0; transform: translateY(20px); }&lt;br /&gt;
  to   { opacity: 1; transform: translateY(0); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 29. ANIMATED CLASSES APPLIED BY JS ──────────────────── */&lt;br /&gt;
&lt;br /&gt;
/* Main heading flicker */&lt;br /&gt;
.pd-flicker {&lt;br /&gt;
  animation: pd-flickerA 8s ease-in-out infinite !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Sidebar nav glow pulse */&lt;br /&gt;
.pd-pulse-border {&lt;br /&gt;
  animation: pd-crimsonPulse 4s ease-in-out infinite !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Content slide-up reveal */&lt;br /&gt;
.pd-reveal {&lt;br /&gt;
  animation: pd-slideUp 0.9s cubic-bezier(0.4,0,0.2,1) both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Background cross watermark */&lt;br /&gt;
#pd-watermark {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  top: 50%;&lt;br /&gt;
  left: 50%;&lt;br /&gt;
  transform: translate(-50%, -50%);&lt;br /&gt;
  font-size: 32vw;&lt;br /&gt;
  color: rgba(122,28,36,0.035);&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
  z-index: 1;&lt;br /&gt;
  user-select: none;&lt;br /&gt;
  font-family: serif;&lt;br /&gt;
  animation: pd-crossFade 12s ease-in-out infinite;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Dust particle canvas */&lt;br /&gt;
#pd-dust-canvas {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  top: 0; left: 0;&lt;br /&gt;
  width: 100%; height: 100%;&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
  z-index: 9999;&lt;br /&gt;
  opacity: 0.55;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 30. VECTOR 2 / MODERN SKIN OVERRIDES ─────────────────── */&lt;br /&gt;
.vector-toc-pinned-container,&lt;br /&gt;
.vector-toc {&lt;br /&gt;
  background-color: var(--pd-bg-sidebar) !important;&lt;br /&gt;
  border: 1px solid var(--pd-border) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-toc .vector-toc-level-1 .vector-toc-link {&lt;br /&gt;
  color: var(--pd-text-muted) !important;&lt;br /&gt;
  font-family: var(--pd-font-body) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-toc-link:hover {&lt;br /&gt;
  color: var(--pd-rose) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-toc-current-anchor .vector-toc-link {&lt;br /&gt;
  color: var(--pd-rose-lt) !important;&lt;br /&gt;
  border-left: 2px solid var(--pd-crimson) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Top toolbar Vector 2 */&lt;br /&gt;
.vector-header-container {&lt;br /&gt;
  background-color: var(--pd-bg-header) !important;&lt;br /&gt;
  border-bottom: 1px solid var(--pd-border) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Main menu icon */&lt;br /&gt;
.mw-ui-icon-wikimedia-menu::before {&lt;br /&gt;
  filter: invert(0.6) sepia(1) saturate(0.5) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 31. SPECIAL PAGE OVERRIDES ──────────────────────────── */&lt;br /&gt;
#mw-content-text .mw-special-Preferences input[type=&amp;quot;text&amp;quot;],&lt;br /&gt;
#mw-content-text input,&lt;br /&gt;
#mw-content-text select,&lt;br /&gt;
#mw-content-text textarea {&lt;br /&gt;
  background-color: #0e0a09 !important;&lt;br /&gt;
  color: var(--pd-text) !important;&lt;br /&gt;
  border: 1px solid var(--pd-border-lt) !important;&lt;br /&gt;
  font-family: var(--pd-font-body) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ── 32. MOBILE / RESPONSIVE ─────────────────────────────── */&lt;br /&gt;
@media (max-width: 720px) {&lt;br /&gt;
  .mw-body {&lt;br /&gt;
    padding: 1rem 1.2rem !important;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  #firstHeading, .mw-first-heading {&lt;br /&gt;
    font-size: 1.6rem !important;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .mw-body-content &amp;gt; p:first-of-type::first-letter {&lt;br /&gt;
    font-size: 3.2em !important;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  #pd-watermark {&lt;br /&gt;
    font-size: 60vw;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>King of the colours</name></author>
	</entry>
</feed>