MediaWiki:Common.css

From HADES
Jump to navigationJump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* ================================================================
   H A D E S  —  MediaWiki:Common.css
   Based on the 2026 album "Hades"
   Baroque gothic  ·  candlelit mahogany  ·  rose-gold shrine
   ================================================================ */

/* ── GOOGLE FONTS ─────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@400;700;900&family=Cinzel:wght@400;600;700&family=IM+Fell+English:ital@0;1&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=UnifrakturMaguntia&family=Playfair+Display+SC:wght@400;700&family=Petit+Formal+Script&display=swap');

/* ── ONLINEWEBFONTS ───────────────────────────────────────────── */
/* Rothenburg Decorative — ornate gothic caps */
@font-face {
  font-family: 'RothenburgDecorative';
  src: url('https://db.onlinewebfonts.com/t/a2a1ffe66c3aa67e462ccd5a66c56b62.woff2') format('woff2'),
       url('https://db.onlinewebfonts.com/t/a2a1ffe66c3aa67e462ccd5a66c56b62.woff') format('woff');
  font-display: swap;
}
/* MedievalSharp — blackletter decorative */
@font-face {
  font-family: 'MedievalSharp';
  src: url('https://db.onlinewebfonts.com/t/1e5a1c6a58aed05f7c23d8b6c4d22b1d.woff2') format('woff2'),
       url('https://db.onlinewebfonts.com/t/1e5a1c6a58aed05f7c23d8b6c4d22b1d.woff') format('woff');
  font-display: swap;
}
/* GothicUltraOT — heavy gothic */
@font-face {
  font-family: 'GothicUltra';
  src: url('https://db.onlinewebfonts.com/t/ec70a8b001c29e3f95b6f1b97049ef5e.woff2') format('woff2'),
       url('https://db.onlinewebfonts.com/t/ec70a8b001c29e3f95b6f1b97049ef5e.woff') format('woff');
  font-display: swap;
}
/* Cantique — baroque script serif */
@font-face {
  font-family: 'Cantique';
  src: url('https://db.onlinewebfonts.com/t/c8a7fd3c8c2ab2c21f7e7a44e3a12bfe.woff2') format('woff2'),
       url('https://db.onlinewebfonts.com/t/c8a7fd3c8c2ab2c21f7e7a44e3a12bfe.woff') format('woff');
  font-display: swap;
}

/* ── DESIGN TOKENS ───────────────────────────────────────────── */
:root {
  /* ── backgrounds */
  --h-bg:         #0b0704;
  --h-bg2:        #150e08;
  --h-bg3:        #1e1208;
  --h-panel:      #0f0905;
  --h-mirror:     #100808;

  /* ── borders */
  --h-border:     #3a1e0c;
  --h-border2:    #6b3a18;
  --h-border3:    #8a5a28;

  /* ── gold palette */
  --h-gold:       #c8860a;
  --h-gold2:      #e8b030;
  --h-gold3:      #f8d060;
  --h-gold-dim:   #7a4e10;
  --h-gold-deep:  #3e2408;

  /* ── rose / candle palette */
  --h-rose:       #a84858;
  --h-rose2:      #d08090;
  --h-rose3:      #f0b0c0;
  --h-candle:     #f8c840;
  --h-flame:      #ff7010;
  --h-wax:        #f2ede0;
  --h-wax2:       #d8d0c0;

  /* ── blue-lavender (hair accent) */
  --h-blue:       #6878a8;
  --h-blue2:      #90a0c8;

  /* ── text */
  --h-text:       #e0ceb0;
  --h-text-dim:   #9a7a50;
  --h-text-muted: #5a3e28;
  --h-cream:      #f0e8d0;

  /* ── glows */
  --h-glow-gold:  0 0 20px rgba(200, 134, 10, 0.55), 0 0 40px rgba(200, 134, 10, 0.2);
  --h-glow-rose:  0 0 16px rgba(208, 128, 144, 0.45);
  --h-glow-candle:0 0 24px rgba(248, 200, 64, 0.5), 0 0 50px rgba(248, 200, 64, 0.15);

  /* ── fonts */
  --h-font-title:   'UnifrakturMaguntia', 'RothenburgDecorative', cursive;
  --h-font-head:    'Cinzel Decorative', 'GothicUltra', serif;
  --h-font-subhead: 'Cinzel', 'Playfair Display SC', serif;
  --h-font-body:    'IM Fell English', 'Cormorant Garamond', serif;
  --h-font-label:   'Playfair Display SC', 'Cinzel', serif;
  --h-font-script:  'Petit Formal Script', 'Cantique', cursive;
}

/* ── SCROLLBAR ──────────────────────────────────────────────── */
html {
  scrollbar-color: var(--h-border2) var(--h-bg2);
  scrollbar-width: thin;
}
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--h-bg2); }
::-webkit-scrollbar-thumb {
  background: linear-gradient(to bottom, var(--h-gold-dim), var(--h-border2));
  border-radius: 1px;
}

/* ── BODY & BASE ────────────────────────────────────────────── */
body {
  background-color: var(--h-bg) !important;
  color: var(--h-text) !important;
  font-family: var(--h-font-body) !important;
  font-size: 16px;
  line-height: 1.8;
  /* Damask background pattern + radial warm glow */
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cdefs%3E%3Cstyle%3E.d%7Bfill:none;stroke:%23c8860a;stroke-width:0.4;opacity:0.07%7D%3C/style%3E%3C/defs%3E%3Cellipse class='d' cx='60' cy='30' rx='10' ry='18'/%3E%3Cellipse class='d' cx='60' cy='90' rx='10' ry='18'/%3E%3Cellipse class='d' cx='30' cy='60' rx='18' ry='10'/%3E%3Cellipse class='d' cx='90' cy='60' rx='18' ry='10'/%3E%3Cpath class='d' d='M60,12 Q72,30 60,48 Q48,30 60,12Z'/%3E%3Cpath class='d' d='M60,72 Q72,90 60,108 Q48,90 60,72Z'/%3E%3Cpath class='d' d='M12,60 Q30,72 48,60 Q30,48 12,60Z'/%3E%3Cpath class='d' d='M72,60 Q90,72 108,60 Q90,48 72,60Z'/%3E%3Ccircle class='d' cx='60' cy='60' r='6'/%3E%3Ccircle class='d' cx='30' cy='30' r='3'/%3E%3Ccircle class='d' cx='90' cy='30' r='3'/%3E%3Ccircle class='d' cx='30' cy='90' r='3'/%3E%3Ccircle class='d' cx='90' cy='90' r='3'/%3E%3C/svg%3E"),
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(200,134,10,0.08) 0%, transparent 65%),
    radial-gradient(ellipse 60% 40% at 50% 100%, rgba(168,72,88,0.06) 0%, transparent 60%);
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12,2 L14,9 L21,9 L15.5,13.5 L17.5,21 L12,16.5 L6.5,21 L8.5,13.5 L3,9 L10,9Z' fill='%23c8860a' opacity='0.7' stroke='%23e8b030' stroke-width='0.5'/%3E%3C/svg%3E") 12 12, auto;
}

/* Grain texture overlay */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23g)' opacity='0.028'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 9997;
}

/* Vignette */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  background: radial-gradient(
    ellipse 110% 110% at 50% 50%,
    transparent 40%,
    rgba(5, 2, 0, 0.65) 100%
  );
  pointer-events: none;
  z-index: 9996;
  animation: h-breathe 8s ease-in-out infinite;
}

/* ── TYPOGRAPHY ─────────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6,
.firstHeading, #firstHeading, .mw-headline {
  font-family: var(--h-font-head) !important;
  color: var(--h-gold2) !important;
  text-shadow: var(--h-glow-gold) !important;
  letter-spacing: 0.05em;
  line-height: 1.3;
}

/* Page title — gothic grandeur */
h1, .firstHeading, #firstHeading {
  font-family: var(--h-font-title) !important;
  font-size: 2.6em !important;
  color: var(--h-gold3) !important;
  text-shadow:
    0 0 30px rgba(248,200,64,0.6),
    0 0 60px rgba(200,134,10,0.3),
    2px 4px 8px rgba(0,0,0,0.9) !important;
  border-bottom: none !important;
  padding-bottom: 0.4em !important;
  position: relative;
  /* Ornamental border under title */
  background-image:
    linear-gradient(to right, transparent, var(--h-gold-dim), var(--h-gold), var(--h-gold-dim), transparent);
  background-position: 0 100%;
  background-size: 100% 1px;
  background-repeat: no-repeat;
  animation: h-title-flicker 6s ease-in-out infinite;
}

/* Ornamental crown before/after title */
h1::before, #firstHeading::before {
  content: '✦';
  color: var(--h-gold);
  font-family: serif;
  margin-right: 0.4em;
  opacity: 0.8;
  animation: h-flicker 4s infinite;
  font-size: 0.55em;
  vertical-align: middle;
}
h1::after, #firstHeading::after {
  content: '✦';
  color: var(--h-gold);
  font-family: serif;
  margin-left: 0.4em;
  opacity: 0.8;
  animation: h-flicker 4s 0.5s infinite;
  font-size: 0.55em;
  vertical-align: middle;
}

h2 {
  font-size: 1.6em !important;
  border-bottom: 1px solid var(--h-border2) !important;
  padding-bottom: 0.25em !important;
  position: relative;
}
h2::after {
  content: '';
  position: absolute;
  bottom: -1px; left: 0;
  width: 60px; height: 1px;
  background: var(--h-gold);
  box-shadow: 0 0 8px var(--h-gold);
}
h3 { font-size: 1.3em !important; color: var(--h-rose2) !important; text-shadow: var(--h-glow-rose) !important; }
h4 { font-size: 1.1em !important; color: var(--h-gold) !important; font-family: var(--h-font-subhead) !important; }

p {
  font-family: var(--h-font-body);
  color: var(--h-text);
  line-height: 1.85;
  margin-bottom: 1em;
}

/* First letter drop cap */
.mw-parser-output > p:first-of-type::first-letter {
  font-family: var(--h-font-title);
  font-size: 3.8em;
  float: left;
  line-height: 0.75;
  margin: 0.08em 0.1em 0 0;
  color: var(--h-gold2);
  text-shadow: var(--h-glow-gold);
}

/* ── LINKS ──────────────────────────────────────────────────── */
a, a:visited {
  color: var(--h-gold2) !important;
  text-decoration: none !important;
  transition: color 0.25s, text-shadow 0.25s;
}
a:hover {
  color: var(--h-gold3) !important;
  text-shadow: 0 0 12px rgba(248,200,64,0.6) !important;
}
a.new, a.new:visited { color: var(--h-rose) !important; }
a.new:hover          { color: var(--h-rose2) !important; text-shadow: var(--h-glow-rose) !important; }

/* Remove underline pseudo-element from previous theme if inherited */
a::after { display: none !important; }

/* ── LAYOUT WRAPPER ────────────────────────────────────────── */
#mw-page-base, #mw-head-base { background: var(--h-bg) !important; }
#mw-wrapper, #content-wrapper { background: transparent !important; }

/* ── HEADER — safe; only colours, no structural changes ──── */
#mw-head,
.mw-header,
header#mw-header {
  background: var(--h-panel) !important;
  border-bottom: 1px solid var(--h-border2) !important;
  box-shadow: 0 3px 24px rgba(0,0,0,0.7), 0 1px 0 rgba(200,134,10,0.15) !important;
  /* NO position/display/flex changes */
}

/* Site title */
#p-wiki-name a,
.mw-wiki-title,
.sitetitle,
#site-navigation .wiki-title {
  font-family: var(--h-font-title) !important;
  color: var(--h-gold2) !important;
  font-size: 1.5em !important;
  text-shadow: var(--h-glow-gold) !important;
  letter-spacing: 0.06em !important;
}

/* ── SEARCH BAR — colour only, preserve structure ─────────── */
#searchInput,
input[name="search"],
.cdx-text-input__input,
.mw-search-input {
  background: var(--h-bg3) !important;
  border: 1px solid var(--h-border2) !important;
  color: var(--h-text) !important;
  font-family: var(--h-font-body) !important;
  font-size: 0.95em !important;
  /* NO width/height/position changes */
  transition: border-color 0.2s, box-shadow 0.2s;
}
#searchInput:focus,
.cdx-text-input__input:focus {
  border-color: var(--h-gold) !important;
  box-shadow: 0 0 10px rgba(200,134,10,0.4) !important;
  outline: none !important;
}
/* Search button */
#searchButton,
.cdx-button,
.mw-search-button {
  background: var(--h-bg3) !important;
  border: 1px solid var(--h-border2) !important;
  color: var(--h-gold) !important;
  font-family: var(--h-font-label) !important;
  font-size: 0.8em !important;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: all 0.2s;
}
#searchButton:hover,
.cdx-button:hover {
  border-color: var(--h-gold) !important;
  box-shadow: var(--h-glow-gold) !important;
}

/* ── TOOLBAR (page tabs) — colour only ─────────────────────── */
#p-views .mw-list-item a,
.mw-portlet-views a,
#p-cactions a,
.vector-tab-noicon a {
  background: transparent !important;
  color: var(--h-text-dim) !important;
  font-family: var(--h-font-label) !important;
  font-size: 0.78em !important;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  border: 1px solid transparent !important;
  padding: 0.3em 0.7em !important;
  transition: all 0.2s;
  /* NO position/display changes */
}
#p-views .mw-list-item a:hover,
.mw-portlet-views a:hover {
  background: rgba(200,134,10,0.08) !important;
  border-color: var(--h-border2) !important;
  color: var(--h-gold2) !important;
}
#p-views .selected a,
.mw-portlet-views .selected a {
  background: rgba(200,134,10,0.12) !important;
  border-color: var(--h-gold-dim) !important;
  color: var(--h-gold2) !important;
}

/* ── SIDEBAR — colour only, NO dimension changes ───────────── */
#mw-panel,
.mw-sidebar,
#sidebar,
#mw-navigation,
.sidebar-inner {
  background: var(--h-panel) !important;
  border-right: 1px solid var(--h-border) !important;
  /* NO width/height/position changes */
}

.mw-portlet,
.portal,
div.portal {
  background: rgba(255,255,255,0.015) !important;
  border: 1px solid var(--h-border) !important;
  border-radius: 1px !important;
  margin-bottom: 0.8em !important;
  padding: 0.4em 0.5em !important;
}

.mw-portlet h3, .portal h3, .mw-portlet-heading {
  font-family: var(--h-font-label) !important;
  font-size: 0.72em !important;
  color: var(--h-gold-dim) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.18em !important;
  text-shadow: none !important;
  border-bottom: 1px solid var(--h-border) !important;
  padding-bottom: 0.35em !important;
  margin-bottom: 0.35em !important;
}

.mw-portlet ul li a,
.portal ul li a {
  font-family: var(--h-font-body) !important;
  font-size: 0.9em !important;
  color: var(--h-text-dim) !important;
  display: block;
  padding: 0.12em 0.4em !important;
  transition: all 0.2s;
  border-radius: 1px;
}
.mw-portlet ul li a:hover,
.portal ul li a:hover {
  background: rgba(200,134,10,0.07) !important;
  color: var(--h-gold) !important;
  padding-left: 0.8em !important;
  text-shadow: 0 0 8px rgba(200,134,10,0.3) !important;
}
.mw-portlet ul li a::after { display: none !important; }

/* ── MAIN CONTENT AREA ──────────────────────────────────────── */
#mw-content-text,
.mw-body,
#content,
.page-content {
  background: rgba(21, 14, 8, 0.9) !important;
  border: 1px solid var(--h-border) !important;
  box-shadow:
    0 0 60px rgba(0,0,0,0.5),
    inset 0 0 80px rgba(0,0,0,0.3),
    0 0 0 3px rgba(200,134,10,0.04) !important;
  padding: 2em 2.2em !important;
  position: relative;
}

/* Gothic arch corner ornaments */
#mw-content-text::before, #content::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 48px; height: 48px;
  border-top: 1px solid var(--h-gold-dim);
  border-left: 1px solid var(--h-gold-dim);
  pointer-events: none;
  opacity: 0.6;
}
#mw-content-text::after, #content::after {
  content: '';
  position: absolute;
  bottom: 0; right: 0;
  width: 48px; height: 48px;
  border-bottom: 1px solid var(--h-rose);
  border-right: 1px solid var(--h-rose);
  pointer-events: none;
  opacity: 0.4;
}

/* ── TABLES ─────────────────────────────────────────────────── */
table.wikitable,
table.wikitable > * > tr > th,
table.wikitable > * > tr > td {
  background: rgba(21,14,8,0.92) !important;
  border-color: var(--h-border2) !important;
  color: var(--h-text) !important;
}
table.wikitable > * > tr > th {
  background: rgba(62,36,8,0.6) !important;
  font-family: var(--h-font-label) !important;
  color: var(--h-gold2) !important;
  letter-spacing: 0.06em;
  font-size: 0.88em;
}
table.wikitable > * > tr:nth-child(even) > td {
  background: rgba(255,255,255,0.02) !important;
}
table.wikitable > * > tr:hover > td {
  background: rgba(200,134,10,0.05) !important;
}

/* ── INFOBOXES ──────────────────────────────────────────────── */
.portable-infobox,
aside.portable-infobox,
table.infobox,
.infobox {
  background: var(--h-bg2) !important;
  border: 1px solid var(--h-border2) !important;
  font-family: var(--h-font-body) !important;
  color: var(--h-text) !important;
  box-shadow:
    0 0 40px rgba(0,0,0,0.5),
    inset 0 0 30px rgba(0,0,0,0.2),
    0 0 0 1px rgba(200,134,10,0.08) !important;
  position: relative;
  overflow: hidden;
}
/* Warm candle glow at top of infobox */
.portable-infobox::before,
table.infobox::before {
  content: '';
  position: absolute;
  top: -30px; left: 50%;
  transform: translateX(-50%);
  width: 200px; height: 80px;
  background: radial-gradient(ellipse, rgba(248,200,64,0.12) 0%, transparent 70%);
  pointer-events: none;
  animation: h-candle-glow 3s ease-in-out infinite;
}
.pi-title, .pi-header,
.infobox caption, .infobox th[colspan] {
  background: rgba(62,36,8,0.7) !important;
  font-family: var(--h-font-head) !important;
  color: var(--h-gold3) !important;
  text-shadow: var(--h-glow-candle) !important;
  font-size: 1em !important;
  text-align: center !important;
  padding: 0.7em !important;
  letter-spacing: 0.08em;
  border-bottom: 1px solid var(--h-border2) !important;
}
.pi-data-label, .infobox th {
  color: var(--h-gold) !important;
  font-family: var(--h-font-label) !important;
  font-size: 0.78em !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  background: rgba(0,0,0,0.2) !important;
}
.pi-data-value, .infobox td {
  color: var(--h-text) !important;
  border-color: var(--h-border) !important;
  background: transparent !important;
}
.pi-image { border-bottom: 1px solid var(--h-border) !important; }

/* ── TOC ─────────────────────────────────────────────────────── */
#toc, .toc {
  background: rgba(21,14,8,0.95) !important;
  border: 1px solid var(--h-border2) !important;
  padding: 1em 1.4em !important;
  position: relative;
}
#toc::before, .toc::before {
  content: '';
  position: absolute;
  inset: 4px;
  border: 1px solid rgba(200,134,10,0.1);
  pointer-events: none;
}
.toctitle, #toc .toctitle {
  font-family: var(--h-font-label) !important;
  color: var(--h-gold2) !important;
  font-size: 0.82em !important;
  text-transform: uppercase;
  letter-spacing: 0.15em;
}
.toc a { color: var(--h-text-dim) !important; font-family: var(--h-font-body) !important; }
.toc a:hover { color: var(--h-gold2) !important; }
.tocnumber { color: var(--h-text-muted) !important; }

/* ── CATEGORIES ─────────────────────────────────────────────── */
#catlinks, .catlinks {
  background: var(--h-bg2) !important;
  border-top: 1px solid var(--h-border) !important;
  font-family: var(--h-font-label) !important;
  font-size: 0.78em !important;
  color: var(--h-text-muted) !important;
  margin-top: 2em !important;
  padding: 0.5em 1em !important;
  letter-spacing: 0.04em;
}
.catlinks a { color: var(--h-rose2) !important; }
.catlinks a:hover { color: var(--h-rose3) !important; }

/* ── EDIT INTERFACE ────────────────────────────────────────── */
#toolbar, .wikiEditor-ui-toolbar {
  background: var(--h-bg3) !important;
  border-color: var(--h-border) !important;
}
#wpTextbox1, textarea.mw-editTextarea {
  background: var(--h-mirror) !important;
  color: var(--h-text) !important;
  border: 1px solid var(--h-border2) !important;
  font-family: 'IM Fell English', serif !important;
  font-size: 1em !important;
  caret-color: var(--h-gold);
  line-height: 1.7;
}
#wpTextbox1:focus { border-color: var(--h-gold-dim) !important; outline: none !important; }
.wikiEditor-ui { background: var(--h-bg2) !important; }

/* ── BUTTONS ────────────────────────────────────────────────── */
.mw-ui-button,
input[type="submit"],
input[type="button"],
button.mw-ui-button {
  background: var(--h-bg3) !important;
  color: var(--h-gold2) !important;
  border: 1px solid var(--h-border2) !important;
  font-family: var(--h-font-label) !important;
  font-size: 0.82em !important;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.25s;
  text-shadow: none !important;
  box-shadow: none !important;
}
.mw-ui-button:hover,
input[type="submit"]:hover {
  background: rgba(200,134,10,0.12) !important;
  border-color: var(--h-gold) !important;
  box-shadow: var(--h-glow-gold) !important;
}
.mw-ui-button.mw-ui-primary {
  background: linear-gradient(135deg, rgba(62,36,8,0.8), rgba(100,58,18,0.6)) !important;
  border-color: var(--h-gold) !important;
}

/* ── MESSAGES / NOTICES ─────────────────────────────────────── */
.mw-message-box, .warningbox, .ambox, .mbox-small {
  background: rgba(21,14,8,0.85) !important;
  border-left: 3px solid var(--h-gold-dim) !important;
  color: var(--h-text) !important;
  font-family: var(--h-font-body) !important;
}
.successbox { border-left-color: var(--h-rose) !important; }
.errorbox   { border-left-color: #6a1a1a !important; }

/* ── CODE ───────────────────────────────────────────────────── */
code, pre, .mw-code {
  background: rgba(0,0,0,0.55) !important;
  border: 1px solid var(--h-border) !important;
  font-family: 'Courier New', monospace !important;
  font-size: 0.9em !important;
  color: var(--h-gold) !important;
}
pre { padding: 1em !important; overflow-x: auto; }

/* ── DIFF ───────────────────────────────────────────────────── */
table.diff td.diff-addedline   { background: rgba(168,72,88,0.08) !important; border-color: var(--h-rose) !important; }
table.diff td.diff-deletedline { background: rgba(80,30,10,0.12) !important; border-color: var(--h-gold-dim) !important; }
ins { background: rgba(168,72,88,0.12) !important; color: var(--h-rose2) !important; }
del { background: rgba(80,30,10,0.15) !important; color: var(--h-text-muted) !important; }

/* ── BLOCKQUOTE ─────────────────────────────────────────────── */
blockquote {
  border-left: 2px solid var(--h-gold-dim) !important;
  margin: 1.2em 0 !important;
  padding: 0.6em 1.2em !important;
  background: rgba(200,134,10,0.03) !important;
  color: var(--h-text-dim) !important;
  font-style: italic;
  font-family: var(--h-font-script) !important;
  font-size: 1.05em;
}

/* ── HORIZONTAL RULES ───────────────────────────────────────── */
hr {
  border: none !important;
  height: 20px !important;
  margin: 1.5em 0 !important;
  background:
    linear-gradient(to right, transparent, var(--h-gold-dim), var(--h-gold), var(--h-gold-dim), transparent)
    center/100% 1px no-repeat,
    radial-gradient(circle, var(--h-gold) 0%, transparent 60%)
    center/12px 12px no-repeat !important;
  position: relative;
}
hr::after {
  content: '✦';
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  color: var(--h-gold);
  font-size: 0.8em;
  background: var(--h-bg2);
  padding: 0 0.5em;
  text-shadow: var(--h-glow-gold);
  animation: h-flicker 5s infinite;
}

/* ── IMAGES ─────────────────────────────────────────────────── */
.thumb, figure.mw-halign-right, figure.mw-halign-left {
  background: var(--h-bg2) !important;
  border: 1px solid var(--h-border2) !important;
  padding: 5px !important;
  box-shadow: 0 0 20px rgba(0,0,0,0.5) !important;
}
.thumbcaption, figcaption {
  color: var(--h-text-dim) !important;
  font-family: var(--h-font-script) !important;
  font-size: 0.88em !important;
  font-style: italic;
  text-align: center;
}
img {
  filter: sepia(0.15) contrast(1.05);
  transition: filter 0.4s;
}
img:hover {
  filter: sepia(0.0) contrast(1.08) brightness(1.05);
}

/* ── FOOTER ─────────────────────────────────────────────────── */
#footer, .mw-footer {
  background: var(--h-panel) !important;
  border-top: 1px solid var(--h-border) !important;
  color: var(--h-text-muted) !important;
  font-family: var(--h-font-label) !important;
  font-size: 0.75em !important;
  letter-spacing: 0.06em;
  padding: 1em !important;
}
#footer a, .mw-footer a { color: var(--h-text-dim) !important; }
#footer a:hover { color: var(--h-gold) !important; }
#footer li { list-style: none !important; }

/* ── AMBIENT DECO LAYER ─────────────────────────────────────── */
.h-ambient {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
.h-candle-el {
  position: absolute;
  pointer-events: none;
  animation: h-float 8s ease-in-out infinite, h-flicker-opacity 3s ease-in-out infinite;
}
.h-arch-el {
  position: absolute;
  pointer-events: none;
  animation: h-arch-glow 6s ease-in-out infinite;
}
.h-petal {
  position: absolute;
  pointer-events: none;
  animation: h-petal-fall linear infinite;
}
.h-mote {
  position: absolute;
  pointer-events: none;
  width: 3px; height: 3px;
  border-radius: 50%;
  background: var(--h-gold3);
  animation: h-mote-drift ease-in-out infinite;
}
.h-damask-el {
  position: absolute;
  pointer-events: none;
  animation: h-damask-spin 40s linear infinite;
  opacity: 0.06;
}

/* ── ANIMATIONS ─────────────────────────────────────────────── */
@keyframes h-float {
  0%, 100% { transform: translateY(0px) rotate(0deg); }
  33%       { transform: translateY(-10px) rotate(1.5deg); }
  66%       { transform: translateY(-6px) rotate(-1deg); }
}

@keyframes h-flicker {
  0%, 85%, 100% { opacity: 0.8; }
  87%            { opacity: 0.3; }
  89%            { opacity: 0.8; }
  91%            { opacity: 0.1; }
  93%            { opacity: 0.9; }
}

@keyframes h-flicker-opacity {
  0%, 100% { opacity: 0.12; }
  40%       { opacity: 0.22; }
  60%       { opacity: 0.08; }
}

@keyframes h-title-flicker {
  0%, 90%, 100% {
    text-shadow: 0 0 30px rgba(248,200,64,0.6), 0 0 60px rgba(200,134,10,0.3), 2px 4px 8px rgba(0,0,0,0.9);
  }
  92% {
    text-shadow: 0 0 15px rgba(248,200,64,0.3), 0 0 30px rgba(200,134,10,0.1), 2px 4px 8px rgba(0,0,0,0.9);
  }
  94% {
    text-shadow: 0 0 40px rgba(248,200,64,0.8), 0 0 80px rgba(200,134,10,0.4), 2px 4px 8px rgba(0,0,0,0.9);
  }
}

@keyframes h-candle-glow {
  0%, 100% { opacity: 0.8; transform: translateX(-50%) scale(1); }
  50%       { opacity: 0.5; transform: translateX(-50%) scale(1.15); }
}

@keyframes h-breathe {
  0%, 100% { opacity: 0.85; }
  50%       { opacity: 0.65; }
}

@keyframes h-arch-glow {
  0%, 100% { filter: drop-shadow(0 0 8px rgba(200,134,10,0.15)); }
  50%       { filter: drop-shadow(0 0 16px rgba(200,134,10,0.3)); }
}

@keyframes h-petal-fall {
  0%   { transform: translate(0, -20px) rotate(0deg); opacity: 0; }
  10%  { opacity: 0.6; }
  90%  { opacity: 0.3; }
  100% { transform: translate(var(--drift, 30px), 110vh) rotate(var(--rot, 360deg)); opacity: 0; }
}

@keyframes h-mote-drift {
  0%   { transform: translate(0, 0); opacity: 0; }
  10%  { opacity: 0.7; }
  90%  { opacity: 0.3; }
  100% { transform: translate(var(--mx, 20px), var(--my, -80px)); opacity: 0; }
}

@keyframes h-damask-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

@keyframes h-wax-drip {
  0%    { transform: scaleY(0); transform-origin: top; opacity: 1; }
  80%   { transform: scaleY(1); opacity: 1; }
  100%  { transform: scaleY(1); opacity: 0; }
}

@keyframes h-flame-dance {
  0%, 100% { transform: scaleX(1) scaleY(1) rotate(-1deg); }
  25%       { transform: scaleX(0.9) scaleY(1.1) rotate(2deg); }
  50%       { transform: scaleX(1.1) scaleY(0.95) rotate(-2deg); }
  75%       { transform: scaleX(0.95) scaleY(1.05) rotate(1deg); }
}

@keyframes h-spin-slow {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

@keyframes h-pulse-rose {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 6px rgba(168,72,88,0.4)); }
  50%       { transform: scale(1.08); filter: drop-shadow(0 0 12px rgba(208,128,144,0.6)); }
}

/* ── UTILITY CLASSES ────────────────────────────────────────── */
.h-gold       { color: var(--h-gold2) !important; text-shadow: var(--h-glow-gold); }
.h-rose       { color: var(--h-rose2) !important; text-shadow: var(--h-glow-rose); }
.h-cream      { color: var(--h-cream) !important; }
.h-script     { font-family: var(--h-font-script) !important; }
.h-cinzel     { font-family: var(--h-font-head) !important; }
.h-fraktur    { font-family: var(--h-font-title) !important; }
.h-label      { font-family: var(--h-font-label) !important; text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.85em; }
.h-float      { animation: h-float 5s ease-in-out infinite !important; }
.h-flicker    { animation: h-flicker 4s infinite !important; }
.h-glow-gold  { text-shadow: var(--h-glow-gold) !important; }
.h-glow-candle{ text-shadow: var(--h-glow-candle) !important; }