<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://codex.erakh.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Juoh</id>
	<title>Erakh Codex - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://codex.erakh.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Juoh"/>
	<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=Special:Contributions/Juoh"/>
	<updated>2026-09-01T10:18:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=17</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=17"/>
		<updated>2026-04-11T17:49:51Z</updated>

		<summary type="html">&lt;p&gt;Juoh: header style sync with erakh.com&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(function () {&lt;br /&gt;
  var fontLink = document.createElement(&amp;quot;link&amp;quot;);&lt;br /&gt;
  fontLink.rel = &amp;quot;stylesheet&amp;quot;;&lt;br /&gt;
  fontLink.href = &amp;quot;https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&amp;amp;display=swap&amp;quot;;&lt;br /&gt;
  document.head.insertBefore(fontLink, document.head.firstChild);&lt;br /&gt;
&lt;br /&gt;
  function getCookie(name) {&lt;br /&gt;
    var match = document.cookie.match(new RegExp(&amp;quot;(?:^|; )&amp;quot; + name + &amp;quot;=([^;]*)&amp;quot;));&lt;br /&gt;
    return match ? decodeURIComponent(match[1]) : null;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var user = null;&lt;br /&gt;
  try {&lt;br /&gt;
    var raw = getCookie(&amp;quot;erakh_user&amp;quot;);&lt;br /&gt;
    if (raw) user = JSON.parse(raw);&lt;br /&gt;
  } catch (e) {}&lt;br /&gt;
&lt;br /&gt;
  function sp(el, prop, val) {&lt;br /&gt;
    el.style.setProperty(prop, val, &amp;quot;important&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var header = document.createElement(&amp;quot;header&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;position&amp;quot;, &amp;quot;fixed&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;top&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;left&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;right&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;z-index&amp;quot;, &amp;quot;9999&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;width&amp;quot;, &amp;quot;100%&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;background&amp;quot;, &amp;quot;#f9f6f0&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;border-bottom&amp;quot;, &amp;quot;1px solid #e2d9c8&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;display&amp;quot;, &amp;quot;flex&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;align-items&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;justify-content&amp;quot;, &amp;quot;space-between&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;padding&amp;quot;, &amp;quot;0 2rem&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;height&amp;quot;, &amp;quot;56px&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  var left = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  sp(left, &amp;quot;display&amp;quot;, &amp;quot;flex&amp;quot;);&lt;br /&gt;
  sp(left, &amp;quot;align-items&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
  sp(left, &amp;quot;gap&amp;quot;, &amp;quot;1.75rem&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  var logo = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  logo.href = &amp;quot;https://erakh.com&amp;quot;;&lt;br /&gt;
  logo.textContent = &amp;quot;Erakh Archive&amp;quot;;&lt;br /&gt;
  sp(logo, &amp;quot;font-family&amp;quot;, &amp;quot;Inter, sans-serif&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;font-size&amp;quot;, &amp;quot;1.125rem&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;font-weight&amp;quot;, &amp;quot;500&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;text-decoration&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;letter-spacing&amp;quot;, &amp;quot;0.05em&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;text-transform&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;font-variant&amp;quot;, &amp;quot;normal&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;font-variant-caps&amp;quot;, &amp;quot;normal&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;line-height&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  var nav = document.createElement(&amp;quot;nav&amp;quot;);&lt;br /&gt;
  sp(nav, &amp;quot;display&amp;quot;, &amp;quot;flex&amp;quot;);&lt;br /&gt;
  sp(nav, &amp;quot;align-items&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
  sp(nav, &amp;quot;gap&amp;quot;, &amp;quot;1.5rem&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  var codexLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  codexLink.href = &amp;quot;https://codex.erakh.com&amp;quot;;&lt;br /&gt;
  codexLink.textContent = &amp;quot;Codex&amp;quot;;&lt;br /&gt;
  sp(codexLink, &amp;quot;font-family&amp;quot;, &amp;quot;Inter, sans-serif&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;font-size&amp;quot;, &amp;quot;1rem&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;color&amp;quot;, &amp;quot;#6b5e4e&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;text-decoration&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;text-transform&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;font-variant&amp;quot;, &amp;quot;normal&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;line-height&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
  codexLink.addEventListener(&amp;quot;mouseover&amp;quot;, function() { this.style.setProperty(&amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
  codexLink.addEventListener(&amp;quot;mouseout&amp;quot;,  function() { this.style.setProperty(&amp;quot;color&amp;quot;, &amp;quot;#6b5e4e&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
&lt;br /&gt;
  nav.appendChild(codexLink);&lt;br /&gt;
  left.appendChild(logo);&lt;br /&gt;
  left.appendChild(nav);&lt;br /&gt;
&lt;br /&gt;
  var right = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  sp(right, &amp;quot;display&amp;quot;, &amp;quot;flex&amp;quot;);&lt;br /&gt;
  sp(right, &amp;quot;align-items&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  if (user &amp;amp;&amp;amp; user.email) {&lt;br /&gt;
    var profile = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    sp(profile, &amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    var avatar = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    avatar.textContent = user.email.slice(0, 1).toUpperCase();&lt;br /&gt;
    sp(avatar, &amp;quot;width&amp;quot;, &amp;quot;32px&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;height&amp;quot;, &amp;quot;32px&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;border-radius&amp;quot;, &amp;quot;50%&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;background&amp;quot;, &amp;quot;#e2d9c8&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;border&amp;quot;, &amp;quot;1px solid #c8b99a&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;display&amp;quot;, &amp;quot;flex&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;align-items&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;justify-content&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;cursor&amp;quot;, &amp;quot;pointer&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;font-family&amp;quot;, &amp;quot;Inter, sans-serif&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;font-size&amp;quot;, &amp;quot;0.75rem&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;font-weight&amp;quot;, &amp;quot;500&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
    avatar.addEventListener(&amp;quot;mouseover&amp;quot;, function() { this.style.setProperty(&amp;quot;border-color&amp;quot;, &amp;quot;#c8a060&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
    avatar.addEventListener(&amp;quot;mouseout&amp;quot;,  function() { this.style.setProperty(&amp;quot;border-color&amp;quot;, &amp;quot;#c8b99a&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
&lt;br /&gt;
    var dropdown = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;position&amp;quot;, &amp;quot;absolute&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;top&amp;quot;, &amp;quot;calc(100% + 8px)&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;right&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;background&amp;quot;, &amp;quot;#f9f6f0&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;border&amp;quot;, &amp;quot;1px solid #e2d9c8&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;min-width&amp;quot;, &amp;quot;180px&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;padding&amp;quot;, &amp;quot;0.5rem 0&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;box-shadow&amp;quot;, &amp;quot;0 4px 16px rgba(0,0,0,0.06)&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;z-index&amp;quot;, &amp;quot;10000&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    var emailDiv = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    emailDiv.textContent = user.email;&lt;br /&gt;
    sp(emailDiv, &amp;quot;padding&amp;quot;, &amp;quot;0.5rem 1rem 0.75rem&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;font-family&amp;quot;, &amp;quot;Inter, sans-serif&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;font-size&amp;quot;, &amp;quot;0.875rem&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;font-style&amp;quot;, &amp;quot;italic&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;color&amp;quot;, &amp;quot;#6b5e4e&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;border-bottom&amp;quot;, &amp;quot;1px solid #e2d9c8&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;margin-bottom&amp;quot;, &amp;quot;0.25rem&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;word-break&amp;quot;, &amp;quot;break-all&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    var profileLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    profileLink.href = &amp;quot;https://erakh.com/profile&amp;quot;;&lt;br /&gt;
    profileLink.textContent = &amp;quot;Profile&amp;quot;;&lt;br /&gt;
    sp(profileLink, &amp;quot;display&amp;quot;, &amp;quot;block&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;width&amp;quot;, &amp;quot;100%&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;padding&amp;quot;, &amp;quot;0.5rem 1rem&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;font-family&amp;quot;, &amp;quot;Inter, sans-serif&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;font-size&amp;quot;, &amp;quot;0.8125rem&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;text-decoration&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
    profileLink.addEventListener(&amp;quot;mouseover&amp;quot;, function() { this.style.setProperty(&amp;quot;background&amp;quot;, &amp;quot;#f0ebe0&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
    profileLink.addEventListener(&amp;quot;mouseout&amp;quot;,  function() { this.style.setProperty(&amp;quot;background&amp;quot;, &amp;quot;transparent&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
&lt;br /&gt;
    var signOutBtn = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
    signOutBtn.textContent = &amp;quot;Sign out&amp;quot;;&lt;br /&gt;
    sp(signOutBtn, &amp;quot;display&amp;quot;, &amp;quot;block&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;width&amp;quot;, &amp;quot;100%&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;padding&amp;quot;, &amp;quot;0.5rem 1rem&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;font-family&amp;quot;, &amp;quot;Inter, sans-serif&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;font-size&amp;quot;, &amp;quot;0.8125rem&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;color&amp;quot;, &amp;quot;#a04040&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;text-align&amp;quot;, &amp;quot;left&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;background&amp;quot;, &amp;quot;transparent&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;border&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;cursor&amp;quot;, &amp;quot;pointer&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
    signOutBtn.addEventListener(&amp;quot;mouseover&amp;quot;, function() { this.style.setProperty(&amp;quot;background&amp;quot;, &amp;quot;#f0ebe0&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
    signOutBtn.addEventListener(&amp;quot;mouseout&amp;quot;,  function() { this.style.setProperty(&amp;quot;background&amp;quot;, &amp;quot;transparent&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
&lt;br /&gt;
    signOutBtn.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      fetch(&amp;quot;https://erakh.com/api/auth/logout&amp;quot;, { method: &amp;quot;POST&amp;quot;, credentials: &amp;quot;include&amp;quot; })&lt;br /&gt;
        .then(function () { window.location.href = &amp;quot;https://erakh.com&amp;quot;; });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    dropdown.appendChild(emailDiv);&lt;br /&gt;
    dropdown.appendChild(profileLink);&lt;br /&gt;
    dropdown.appendChild(signOutBtn);&lt;br /&gt;
&lt;br /&gt;
    avatar.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      var isOpen = dropdown.style.display === &amp;quot;none&amp;quot;;&lt;br /&gt;
      dropdown.style.display = isOpen ? &amp;quot;block&amp;quot; : &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
    document.addEventListener(&amp;quot;click&amp;quot;, function (e) {&lt;br /&gt;
      var inside = profile.contains(e.target);&lt;br /&gt;
      if (inside === false) dropdown.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    profile.appendChild(avatar);&lt;br /&gt;
    profile.appendChild(dropdown);&lt;br /&gt;
    right.appendChild(profile);&lt;br /&gt;
&lt;br /&gt;
  } else {&lt;br /&gt;
    var loginBtn = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    loginBtn.href = &amp;quot;https://erakh.com/login?redirect=&amp;quot; + encodeURIComponent(window.location.href);&lt;br /&gt;
    loginBtn.textContent = &amp;quot;Sign in&amp;quot;;&lt;br /&gt;
    sp(loginBtn, &amp;quot;font-family&amp;quot;, &amp;quot;Inter, sans-serif&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;font-size&amp;quot;, &amp;quot;0.8125rem&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;font-weight&amp;quot;, &amp;quot;500&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;text-decoration&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;padding&amp;quot;, &amp;quot;0.4rem 1rem&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;border&amp;quot;, &amp;quot;1px solid #c8b99a&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;background&amp;quot;, &amp;quot;transparent&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;cursor&amp;quot;, &amp;quot;pointer&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
    loginBtn.addEventListener(&amp;quot;mouseover&amp;quot;, function() {&lt;br /&gt;
      this.style.setProperty(&amp;quot;border-color&amp;quot;, &amp;quot;#c8a060&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
      this.style.setProperty(&amp;quot;background&amp;quot;, &amp;quot;#f0ebe0&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
    });&lt;br /&gt;
    loginBtn.addEventListener(&amp;quot;mouseout&amp;quot;, function() {&lt;br /&gt;
      this.style.setProperty(&amp;quot;border-color&amp;quot;, &amp;quot;#c8b99a&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
      this.style.setProperty(&amp;quot;background&amp;quot;, &amp;quot;transparent&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
    });&lt;br /&gt;
    right.appendChild(loginBtn);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  header.appendChild(left);&lt;br /&gt;
  header.appendChild(right);&lt;br /&gt;
  document.body.insertBefore(header, document.body.firstChild);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=16</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=16"/>
		<updated>2026-04-11T17:46:34Z</updated>

		<summary type="html">&lt;p&gt;Juoh: header style sync with erakh.com&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(function () {&lt;br /&gt;
  var fontLink = document.createElement(&amp;quot;link&amp;quot;);&lt;br /&gt;
  fontLink.rel = &amp;quot;stylesheet&amp;quot;;&lt;br /&gt;
  fontLink.href = &amp;quot;https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&amp;amp;display=swap&amp;quot;;&lt;br /&gt;
  document.head.insertBefore(fontLink, document.head.firstChild);&lt;br /&gt;
&lt;br /&gt;
  function getCookie(name) {&lt;br /&gt;
    var match = document.cookie.match(new RegExp(&amp;quot;(?:^|; )&amp;quot; + name + &amp;quot;=([^;]*)&amp;quot;));&lt;br /&gt;
    return match ? decodeURIComponent(match[1]) : null;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var user = null;&lt;br /&gt;
  try {&lt;br /&gt;
    var raw = getCookie(&amp;quot;erakh_user&amp;quot;);&lt;br /&gt;
    if (raw) user = JSON.parse(raw);&lt;br /&gt;
  } catch (e) {}&lt;br /&gt;
&lt;br /&gt;
  function sp(el, prop, val) {&lt;br /&gt;
    el.style.setProperty(prop, val, &amp;quot;important&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var header = document.createElement(&amp;quot;header&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;position&amp;quot;, &amp;quot;fixed&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;top&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;left&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;right&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;z-index&amp;quot;, &amp;quot;9999&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;width&amp;quot;, &amp;quot;100%&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;background&amp;quot;, &amp;quot;#f9f6f0&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;border-bottom&amp;quot;, &amp;quot;1px solid #e2d9c8&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;display&amp;quot;, &amp;quot;flex&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;align-items&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;justify-content&amp;quot;, &amp;quot;space-between&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;padding&amp;quot;, &amp;quot;0 2rem&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;height&amp;quot;, &amp;quot;56px&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  var left = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  sp(left, &amp;quot;display&amp;quot;, &amp;quot;flex&amp;quot;);&lt;br /&gt;
  sp(left, &amp;quot;align-items&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
  sp(left, &amp;quot;gap&amp;quot;, &amp;quot;1.75rem&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  var logo = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  logo.href = &amp;quot;https://erakh.com&amp;quot;;&lt;br /&gt;
  logo.textContent = &amp;quot;Erakh Archive&amp;quot;;&lt;br /&gt;
  sp(logo, &amp;quot;font-family&amp;quot;, &amp;quot;Inter, sans-serif&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;font-size&amp;quot;, &amp;quot;1.125rem&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;font-weight&amp;quot;, &amp;quot;500&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;text-decoration&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;letter-spacing&amp;quot;, &amp;quot;0.05em&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;text-transform&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;font-variant&amp;quot;, &amp;quot;normal&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;font-variant-caps&amp;quot;, &amp;quot;normal&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;line-height&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  var nav = document.createElement(&amp;quot;nav&amp;quot;);&lt;br /&gt;
  sp(nav, &amp;quot;display&amp;quot;, &amp;quot;flex&amp;quot;);&lt;br /&gt;
  sp(nav, &amp;quot;align-items&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
  sp(nav, &amp;quot;gap&amp;quot;, &amp;quot;1.5rem&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  var codexLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  codexLink.href = &amp;quot;https://codex.erakh.com&amp;quot;;&lt;br /&gt;
  codexLink.textContent = &amp;quot;Codex&amp;quot;;&lt;br /&gt;
  sp(codexLink, &amp;quot;font-family&amp;quot;, &amp;quot;Inter, sans-serif&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;font-size&amp;quot;, &amp;quot;1rem&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;color&amp;quot;, &amp;quot;#6b5e4e&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;text-decoration&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;text-transform&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;font-variant&amp;quot;, &amp;quot;normal&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;line-height&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
  codexLink.addEventListener(&amp;quot;mouseover&amp;quot;, function() { this.style.setProperty(&amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
  codexLink.addEventListener(&amp;quot;mouseout&amp;quot;,  function() { this.style.setProperty(&amp;quot;color&amp;quot;, &amp;quot;#6b5e4e&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
&lt;br /&gt;
  nav.appendChild(codexLink);&lt;br /&gt;
  left.appendChild(logo);&lt;br /&gt;
  left.appendChild(nav);&lt;br /&gt;
&lt;br /&gt;
  var right = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  sp(right, &amp;quot;display&amp;quot;, &amp;quot;flex&amp;quot;);&lt;br /&gt;
  sp(right, &amp;quot;align-items&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  if (user &amp;amp;&amp;amp; user.email) {&lt;br /&gt;
    var profile = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    sp(profile, &amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    var avatar = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    avatar.textContent = user.email.slice(0, 1).toUpperCase();&lt;br /&gt;
    sp(avatar, &amp;quot;width&amp;quot;, &amp;quot;32px&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;height&amp;quot;, &amp;quot;32px&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;border-radius&amp;quot;, &amp;quot;50%&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;background&amp;quot;, &amp;quot;#e2d9c8&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;border&amp;quot;, &amp;quot;1px solid #c8b99a&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;display&amp;quot;, &amp;quot;flex&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;align-items&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;justify-content&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;cursor&amp;quot;, &amp;quot;pointer&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;font-family&amp;quot;, &amp;quot;Inter, sans-serif&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;font-size&amp;quot;, &amp;quot;0.75rem&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;font-weight&amp;quot;, &amp;quot;500&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
    avatar.addEventListener(&amp;quot;mouseover&amp;quot;, function() { this.style.setProperty(&amp;quot;border-color&amp;quot;, &amp;quot;#c8a060&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
    avatar.addEventListener(&amp;quot;mouseout&amp;quot;,  function() { this.style.setProperty(&amp;quot;border-color&amp;quot;, &amp;quot;#c8b99a&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
&lt;br /&gt;
    var dropdown = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;position&amp;quot;, &amp;quot;absolute&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;top&amp;quot;, &amp;quot;calc(100% + 8px)&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;right&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;background&amp;quot;, &amp;quot;#f9f6f0&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;border&amp;quot;, &amp;quot;1px solid #e2d9c8&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;min-width&amp;quot;, &amp;quot;180px&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;padding&amp;quot;, &amp;quot;0.5rem 0&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;box-shadow&amp;quot;, &amp;quot;0 4px 16px rgba(0,0,0,0.06)&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;z-index&amp;quot;, &amp;quot;10000&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    var emailDiv = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    emailDiv.textContent = user.email;&lt;br /&gt;
    sp(emailDiv, &amp;quot;padding&amp;quot;, &amp;quot;0.5rem 1rem 0.75rem&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;font-family&amp;quot;, &amp;quot;Inter, sans-serif&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;font-size&amp;quot;, &amp;quot;0.875rem&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;font-style&amp;quot;, &amp;quot;italic&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;color&amp;quot;, &amp;quot;#6b5e4e&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;border-bottom&amp;quot;, &amp;quot;1px solid #e2d9c8&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;margin-bottom&amp;quot;, &amp;quot;0.25rem&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;word-break&amp;quot;, &amp;quot;break-all&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    var profileLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    profileLink.href = &amp;quot;https://erakh.com/profile&amp;quot;;&lt;br /&gt;
    profileLink.textContent = &amp;quot;Profile&amp;quot;;&lt;br /&gt;
    sp(profileLink, &amp;quot;display&amp;quot;, &amp;quot;block&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;width&amp;quot;, &amp;quot;100%&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;padding&amp;quot;, &amp;quot;0.5rem 1rem&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;font-family&amp;quot;, &amp;quot;Inter, sans-serif&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;font-size&amp;quot;, &amp;quot;0.8125rem&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;text-decoration&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
    profileLink.addEventListener(&amp;quot;mouseover&amp;quot;, function() { this.style.setProperty(&amp;quot;background&amp;quot;, &amp;quot;#f0ebe0&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
    profileLink.addEventListener(&amp;quot;mouseout&amp;quot;,  function() { this.style.setProperty(&amp;quot;background&amp;quot;, &amp;quot;transparent&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
&lt;br /&gt;
    var signOutBtn = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
    signOutBtn.textContent = &amp;quot;Sign out&amp;quot;;&lt;br /&gt;
    sp(signOutBtn, &amp;quot;display&amp;quot;, &amp;quot;block&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;width&amp;quot;, &amp;quot;100%&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;padding&amp;quot;, &amp;quot;0.5rem 1rem&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;font-family&amp;quot;, &amp;quot;Inter, sans-serif&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;font-size&amp;quot;, &amp;quot;0.8125rem&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;color&amp;quot;, &amp;quot;#a04040&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;text-align&amp;quot;, &amp;quot;left&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;background&amp;quot;, &amp;quot;transparent&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;border&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;cursor&amp;quot;, &amp;quot;pointer&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
    signOutBtn.addEventListener(&amp;quot;mouseover&amp;quot;, function() { this.style.setProperty(&amp;quot;background&amp;quot;, &amp;quot;#f0ebe0&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
    signOutBtn.addEventListener(&amp;quot;mouseout&amp;quot;,  function() { this.style.setProperty(&amp;quot;background&amp;quot;, &amp;quot;transparent&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
&lt;br /&gt;
    signOutBtn.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      fetch(&amp;quot;https://erakh.com/api/auth/logout&amp;quot;, { method: &amp;quot;POST&amp;quot;, credentials: &amp;quot;include&amp;quot; })&lt;br /&gt;
        .then(function () { window.location.href = &amp;quot;https://erakh.com&amp;quot;; });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    dropdown.appendChild(emailDiv);&lt;br /&gt;
    dropdown.appendChild(profileLink);&lt;br /&gt;
    dropdown.appendChild(signOutBtn);&lt;br /&gt;
&lt;br /&gt;
    avatar.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      var isOpen = dropdown.style.display === &amp;quot;none&amp;quot;;&lt;br /&gt;
      dropdown.style.display = isOpen ? &amp;quot;block&amp;quot; : &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
    document.addEventListener(&amp;quot;click&amp;quot;, function (e) {&lt;br /&gt;
      var inside = profile.contains(e.target);&lt;br /&gt;
      if (inside === false) dropdown.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    profile.appendChild(avatar);&lt;br /&gt;
    profile.appendChild(dropdown);&lt;br /&gt;
    right.appendChild(profile);&lt;br /&gt;
&lt;br /&gt;
  } else {&lt;br /&gt;
    var loginBtn = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    loginBtn.href = &amp;quot;https://erakh.com/login?redirect=&amp;quot; + encodeURIComponent(window.location.href);&lt;br /&gt;
    loginBtn.textContent = &amp;quot;Sign in&amp;quot;;&lt;br /&gt;
    sp(loginBtn, &amp;quot;font-family&amp;quot;, &amp;quot;Inter, sans-serif&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;font-size&amp;quot;, &amp;quot;0.8125rem&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;font-weight&amp;quot;, &amp;quot;500&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;text-decoration&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;padding&amp;quot;, &amp;quot;0.4rem 1rem&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;border&amp;quot;, &amp;quot;1px solid #c8b99a&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;background&amp;quot;, &amp;quot;transparent&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;cursor&amp;quot;, &amp;quot;pointer&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;line-height&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
    loginBtn.addEventListener(&amp;quot;mouseover&amp;quot;, function() {&lt;br /&gt;
      this.style.setProperty(&amp;quot;border-color&amp;quot;, &amp;quot;#c8a060&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
      this.style.setProperty(&amp;quot;background&amp;quot;, &amp;quot;#f0ebe0&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
    });&lt;br /&gt;
    loginBtn.addEventListener(&amp;quot;mouseout&amp;quot;, function() {&lt;br /&gt;
      this.style.setProperty(&amp;quot;border-color&amp;quot;, &amp;quot;#c8b99a&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
      this.style.setProperty(&amp;quot;background&amp;quot;, &amp;quot;transparent&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
    });&lt;br /&gt;
    right.appendChild(loginBtn);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  header.appendChild(left);&lt;br /&gt;
  header.appendChild(right);&lt;br /&gt;
  document.body.insertBefore(header, document.body.firstChild);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=15</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=15"/>
		<updated>2026-04-09T03:48:30Z</updated>

		<summary type="html">&lt;p&gt;Juoh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(function () {&lt;br /&gt;
  /* --- Google Fonts 강제 로드 --- */&lt;br /&gt;
  var fontLink = document.createElement(&amp;quot;link&amp;quot;);&lt;br /&gt;
  fontLink.rel = &amp;quot;stylesheet&amp;quot;;&lt;br /&gt;
  fontLink.href = &amp;quot;https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&amp;amp;display=swap&amp;quot;;&lt;br /&gt;
  document.head.insertBefore(fontLink, document.head.firstChild);&lt;br /&gt;
&lt;br /&gt;
  /* --- 쿠키 읽기 --- */&lt;br /&gt;
  function getCookie(name) {&lt;br /&gt;
    var match = document.cookie.match(new RegExp(&amp;quot;(?:^|; )&amp;quot; + name + &amp;quot;=([^;]*)&amp;quot;));&lt;br /&gt;
    return match ? decodeURIComponent(match[1]) : null;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* --- 유저 정보 파싱 --- */&lt;br /&gt;
  var user = null;&lt;br /&gt;
  try {&lt;br /&gt;
    var raw = getCookie(&amp;quot;erakh_user&amp;quot;);&lt;br /&gt;
    if (raw) user = JSON.parse(raw);&lt;br /&gt;
  } catch (e) {}&lt;br /&gt;
&lt;br /&gt;
  /* --- 인라인 스타일 헬퍼 (important) --- */&lt;br /&gt;
  function sp(el, prop, val) {&lt;br /&gt;
    el.style.setProperty(prop, val, &amp;quot;important&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* --- 헤더 --- */&lt;br /&gt;
  var header = document.createElement(&amp;quot;header&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;position&amp;quot;, &amp;quot;fixed&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;top&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;left&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;right&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;z-index&amp;quot;, &amp;quot;9999&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;width&amp;quot;, &amp;quot;100%&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;background&amp;quot;, &amp;quot;#f9f6f0&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;border-bottom&amp;quot;, &amp;quot;1px solid #e2d9c8&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;display&amp;quot;, &amp;quot;flex&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;align-items&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;justify-content&amp;quot;, &amp;quot;space-between&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;padding&amp;quot;, &amp;quot;0 2rem&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;height&amp;quot;, &amp;quot;56px&amp;quot;);&lt;br /&gt;
  sp(header, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  /* --- 좌측 --- */&lt;br /&gt;
  var left = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  sp(left, &amp;quot;display&amp;quot;, &amp;quot;flex&amp;quot;);&lt;br /&gt;
  sp(left, &amp;quot;align-items&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
  sp(left, &amp;quot;gap&amp;quot;, &amp;quot;1.75rem&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  var logo = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  logo.href = &amp;quot;https://erakh.com&amp;quot;;&lt;br /&gt;
  logo.textContent = &amp;quot;Erakh Archive&amp;quot;;&lt;br /&gt;
  sp(logo, &amp;quot;font-family&amp;quot;, &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;font-size&amp;quot;, &amp;quot;1.125rem&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;font-weight&amp;quot;, &amp;quot;500&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;text-decoration&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;letter-spacing&amp;quot;, &amp;quot;-0.01em&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;text-transform&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;font-variant&amp;quot;, &amp;quot;normal&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;font-variant-caps&amp;quot;, &amp;quot;normal&amp;quot;);&lt;br /&gt;
  sp(logo, &amp;quot;line-height&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  var nav = document.createElement(&amp;quot;nav&amp;quot;);&lt;br /&gt;
  sp(nav, &amp;quot;display&amp;quot;, &amp;quot;flex&amp;quot;);&lt;br /&gt;
  sp(nav, &amp;quot;align-items&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
  sp(nav, &amp;quot;gap&amp;quot;, &amp;quot;1.5rem&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  var codexLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  codexLink.href = &amp;quot;https://codex.erakh.com&amp;quot;;&lt;br /&gt;
  codexLink.textContent = &amp;quot;Codex&amp;quot;;&lt;br /&gt;
  sp(codexLink, &amp;quot;font-family&amp;quot;, &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;font-size&amp;quot;, &amp;quot;1rem&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;color&amp;quot;, &amp;quot;#6b5e4e&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;text-decoration&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;text-transform&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;font-variant&amp;quot;, &amp;quot;normal&amp;quot;);&lt;br /&gt;
  sp(codexLink, &amp;quot;line-height&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
  codexLink.addEventListener(&amp;quot;mouseover&amp;quot;, function() { this.style.setProperty(&amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
  codexLink.addEventListener(&amp;quot;mouseout&amp;quot;,  function() { this.style.setProperty(&amp;quot;color&amp;quot;, &amp;quot;#6b5e4e&amp;quot;, &amp;quot;important&amp;quot;); });&lt;br /&gt;
&lt;br /&gt;
  nav.appendChild(codexLink);&lt;br /&gt;
  left.appendChild(logo);&lt;br /&gt;
  left.appendChild(nav);&lt;br /&gt;
&lt;br /&gt;
  /* --- 우측 --- */&lt;br /&gt;
  var right = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  sp(right, &amp;quot;display&amp;quot;, &amp;quot;flex&amp;quot;);&lt;br /&gt;
  sp(right, &amp;quot;align-items&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  if (user &amp;amp;&amp;amp; user.email) {&lt;br /&gt;
    /* 로그인 — 아바타 + 드롭다운 */&lt;br /&gt;
    var profile = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    sp(profile, &amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    var avatar = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    avatar.textContent = user.email.slice(0, 1).toUpperCase();&lt;br /&gt;
    sp(avatar, &amp;quot;width&amp;quot;, &amp;quot;32px&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;height&amp;quot;, &amp;quot;32px&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;border-radius&amp;quot;, &amp;quot;50%&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;background&amp;quot;, &amp;quot;#e2d9c8&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;border&amp;quot;, &amp;quot;1px solid #c8b99a&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;display&amp;quot;, &amp;quot;flex&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;align-items&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;justify-content&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;cursor&amp;quot;, &amp;quot;pointer&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;font-family&amp;quot;, &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;font-size&amp;quot;, &amp;quot;0.75rem&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;font-weight&amp;quot;, &amp;quot;500&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;);&lt;br /&gt;
    sp(avatar, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    var dropdown = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;position&amp;quot;, &amp;quot;absolute&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;top&amp;quot;, &amp;quot;calc(100% + 8px)&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;right&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;background&amp;quot;, &amp;quot;#f9f6f0&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;border&amp;quot;, &amp;quot;1px solid #e2d9c8&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;min-width&amp;quot;, &amp;quot;180px&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;padding&amp;quot;, &amp;quot;0.5rem 0&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;box-shadow&amp;quot;, &amp;quot;0 4px 16px rgba(0,0,0,0.06)&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;z-index&amp;quot;, &amp;quot;10000&amp;quot;);&lt;br /&gt;
    sp(dropdown, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    var emailDiv = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    emailDiv.textContent = user.email;&lt;br /&gt;
    sp(emailDiv, &amp;quot;padding&amp;quot;, &amp;quot;0.5rem 1rem 0.75rem&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;font-family&amp;quot;, &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;font-size&amp;quot;, &amp;quot;0.8125rem&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;color&amp;quot;, &amp;quot;#6b5e4e&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;border-bottom&amp;quot;, &amp;quot;1px solid #e2d9c8&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;margin-bottom&amp;quot;, &amp;quot;0.25rem&amp;quot;);&lt;br /&gt;
    sp(emailDiv, &amp;quot;word-break&amp;quot;, &amp;quot;break-all&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    var profileLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    profileLink.href = &amp;quot;https://erakh.com/profile&amp;quot;;&lt;br /&gt;
    profileLink.textContent = &amp;quot;Profile&amp;quot;;&lt;br /&gt;
    sp(profileLink, &amp;quot;display&amp;quot;, &amp;quot;block&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;width&amp;quot;, &amp;quot;100%&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;padding&amp;quot;, &amp;quot;0.5rem 1rem&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;font-family&amp;quot;, &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;font-size&amp;quot;, &amp;quot;0.8125rem&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;text-decoration&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
    sp(profileLink, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    var signOutBtn = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
    signOutBtn.textContent = &amp;quot;Sign out&amp;quot;;&lt;br /&gt;
    sp(signOutBtn, &amp;quot;display&amp;quot;, &amp;quot;block&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;width&amp;quot;, &amp;quot;100%&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;padding&amp;quot;, &amp;quot;0.5rem 1rem&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;font-family&amp;quot;, &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;font-size&amp;quot;, &amp;quot;0.8125rem&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;color&amp;quot;, &amp;quot;#a04040&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;text-align&amp;quot;, &amp;quot;left&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;background&amp;quot;, &amp;quot;transparent&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;border&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;cursor&amp;quot;, &amp;quot;pointer&amp;quot;);&lt;br /&gt;
    sp(signOutBtn, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    signOutBtn.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      fetch(&amp;quot;https://erakh.com/api/auth/logout&amp;quot;, { method: &amp;quot;POST&amp;quot;, credentials: &amp;quot;include&amp;quot; })&lt;br /&gt;
        .then(function () { window.location.href = &amp;quot;https://erakh.com&amp;quot;; });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    dropdown.appendChild(emailDiv);&lt;br /&gt;
    dropdown.appendChild(profileLink);&lt;br /&gt;
    dropdown.appendChild(signOutBtn);&lt;br /&gt;
&lt;br /&gt;
    avatar.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      dropdown.style.display = dropdown.style.display === &amp;quot;none&amp;quot; ? &amp;quot;block&amp;quot; : &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
    document.addEventListener(&amp;quot;click&amp;quot;, function (e) {&lt;br /&gt;
      if (!profile.contains(e.target)) dropdown.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    profile.appendChild(avatar);&lt;br /&gt;
    profile.appendChild(dropdown);&lt;br /&gt;
    right.appendChild(profile);&lt;br /&gt;
&lt;br /&gt;
  } else {&lt;br /&gt;
    /* 비로그인 — Sign in */&lt;br /&gt;
    var loginBtn = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    loginBtn.href = &amp;quot;https://erakh.com/login?redirect=&amp;quot; + encodeURIComponent(window.location.href);&lt;br /&gt;
    loginBtn.textContent = &amp;quot;Sign in&amp;quot;;&lt;br /&gt;
    sp(loginBtn, &amp;quot;font-family&amp;quot;, &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;font-size&amp;quot;, &amp;quot;0.8125rem&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;font-weight&amp;quot;, &amp;quot;500&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;text-decoration&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;padding&amp;quot;, &amp;quot;0.4rem 1rem&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;border&amp;quot;, &amp;quot;1px solid #c8b99a&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;background&amp;quot;, &amp;quot;transparent&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;cursor&amp;quot;, &amp;quot;pointer&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;box-sizing&amp;quot;, &amp;quot;border-box&amp;quot;);&lt;br /&gt;
    sp(loginBtn, &amp;quot;line-height&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;
    loginBtn.addEventListener(&amp;quot;mouseover&amp;quot;, function() {&lt;br /&gt;
      this.style.setProperty(&amp;quot;border-color&amp;quot;, &amp;quot;#c8a060&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
      this.style.setProperty(&amp;quot;background&amp;quot;, &amp;quot;#f0ebe0&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
    });&lt;br /&gt;
    loginBtn.addEventListener(&amp;quot;mouseout&amp;quot;, function() {&lt;br /&gt;
      this.style.setProperty(&amp;quot;border-color&amp;quot;, &amp;quot;#c8b99a&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
      this.style.setProperty(&amp;quot;background&amp;quot;, &amp;quot;transparent&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
    });&lt;br /&gt;
    right.appendChild(loginBtn);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  header.appendChild(left);&lt;br /&gt;
  header.appendChild(right);&lt;br /&gt;
  document.body.insertBefore(header, document.body.firstChild);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=14</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=14"/>
		<updated>2026-04-09T03:47:15Z</updated>

		<summary type="html">&lt;p&gt;Juoh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(function () {&lt;br /&gt;
  /* --- Google Fonts 강제 로드 --- */&lt;br /&gt;
  var fontLink = document.createElement(&amp;quot;link&amp;quot;);&lt;br /&gt;
  fontLink.rel = &amp;quot;stylesheet&amp;quot;;&lt;br /&gt;
  fontLink.href = &amp;quot;https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&amp;amp;display=swap&amp;quot;;&lt;br /&gt;
  document.head.insertBefore(fontLink, document.head.firstChild);&lt;br /&gt;
&lt;br /&gt;
  /* --- 쿠키 읽기 --- */&lt;br /&gt;
  function getCookie(name) {&lt;br /&gt;
    var match = document.cookie.match(new RegExp(&amp;quot;(?:^|; )&amp;quot; + name + &amp;quot;=([^;]*)&amp;quot;));&lt;br /&gt;
    return match ? decodeURIComponent(match[1]) : null;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* --- 유저 정보 파싱 --- */&lt;br /&gt;
  var user = null;&lt;br /&gt;
  try {&lt;br /&gt;
    var raw = getCookie(&amp;quot;erakh_user&amp;quot;);&lt;br /&gt;
    if (raw) user = JSON.parse(raw);&lt;br /&gt;
  } catch (e) {}&lt;br /&gt;
&lt;br /&gt;
  /* --- 인라인 스타일 헬퍼 --- */&lt;br /&gt;
  function s(el, styles) {&lt;br /&gt;
    Object.keys(styles).forEach(function(k) { el.style[k] = styles[k]; });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* --- 헤더 --- */&lt;br /&gt;
  var header = document.createElement(&amp;quot;header&amp;quot;);&lt;br /&gt;
  s(header, {&lt;br /&gt;
    position: &amp;quot;fixed&amp;quot;,&lt;br /&gt;
    top: &amp;quot;0&amp;quot;,&lt;br /&gt;
    left: &amp;quot;0&amp;quot;,&lt;br /&gt;
    right: &amp;quot;0&amp;quot;,&lt;br /&gt;
    zIndex: &amp;quot;9999&amp;quot;,&lt;br /&gt;
    width: &amp;quot;100%&amp;quot;,&lt;br /&gt;
    background: &amp;quot;#f9f6f0&amp;quot;,&lt;br /&gt;
    borderBottom: &amp;quot;1px solid #e2d9c8&amp;quot;,&lt;br /&gt;
    display: &amp;quot;flex&amp;quot;,&lt;br /&gt;
    alignItems: &amp;quot;center&amp;quot;,&lt;br /&gt;
    justifyContent: &amp;quot;space-between&amp;quot;,&lt;br /&gt;
    padding: &amp;quot;0 2rem&amp;quot;,&lt;br /&gt;
    height: &amp;quot;56px&amp;quot;,&lt;br /&gt;
    boxSizing: &amp;quot;border-box&amp;quot;&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  /* --- 좌측 --- */&lt;br /&gt;
  var left = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  s(left, {&lt;br /&gt;
    display: &amp;quot;flex&amp;quot;,&lt;br /&gt;
    alignItems: &amp;quot;center&amp;quot;,&lt;br /&gt;
    gap: &amp;quot;1.75rem&amp;quot;&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  var logo = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  logo.href = &amp;quot;https://erakh.com&amp;quot;;&lt;br /&gt;
  logo.textContent = &amp;quot;Erakh Archive&amp;quot;;&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-family&amp;quot;, &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-size&amp;quot;, &amp;quot;1.125rem&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-weight&amp;quot;, &amp;quot;500&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;text-decoration&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;letter-spacing&amp;quot;, &amp;quot;0.05em&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;text-transform&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-variant&amp;quot;, &amp;quot;normal&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-variant-caps&amp;quot;, &amp;quot;normal&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-feature-settings&amp;quot;, &amp;quot;normal&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;line-height&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  var nav = document.createElement(&amp;quot;nav&amp;quot;);&lt;br /&gt;
  s(nav, { display: &amp;quot;flex&amp;quot;, alignItems: &amp;quot;center&amp;quot;, gap: &amp;quot;1.5rem&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
  var codexLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  codexLink.href = &amp;quot;https://codex.erakh.com&amp;quot;;&lt;br /&gt;
  codexLink.textContent = &amp;quot;Codex&amp;quot;;&lt;br /&gt;
  s(codexLink, {&lt;br /&gt;
    fontFamily: &amp;quot;&#039;EB Garamond&#039;, serif&amp;quot;,&lt;br /&gt;
    fontSize: &amp;quot;1rem&amp;quot;,&lt;br /&gt;
    color: &amp;quot;#6b5e4e&amp;quot;,&lt;br /&gt;
    textDecoration: &amp;quot;none&amp;quot;,&lt;br /&gt;
    textTransform: &amp;quot;none&amp;quot;,&lt;br /&gt;
    fontVariant: &amp;quot;normal&amp;quot;,&lt;br /&gt;
    lineHeight: &amp;quot;1&amp;quot;&lt;br /&gt;
  });&lt;br /&gt;
  codexLink.addEventListener(&amp;quot;mouseover&amp;quot;, function() { this.style.color = &amp;quot;#2a2218&amp;quot;; });&lt;br /&gt;
  codexLink.addEventListener(&amp;quot;mouseout&amp;quot;,  function() { this.style.color = &amp;quot;#6b5e4e&amp;quot;; });&lt;br /&gt;
&lt;br /&gt;
  nav.appendChild(codexLink);&lt;br /&gt;
  left.appendChild(logo);&lt;br /&gt;
  left.appendChild(nav);&lt;br /&gt;
&lt;br /&gt;
  /* --- 우측 --- */&lt;br /&gt;
  var right = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  s(right, { display: &amp;quot;flex&amp;quot;, alignItems: &amp;quot;center&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
  if (user &amp;amp;&amp;amp; user.email) {&lt;br /&gt;
    /* 로그인 — 아바타 + 드롭다운 */&lt;br /&gt;
    var profile = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    s(profile, { position: &amp;quot;relative&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
    var avatar = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    avatar.textContent = user.email.slice(0, 1).toUpperCase();&lt;br /&gt;
    s(avatar, {&lt;br /&gt;
      width: &amp;quot;32px&amp;quot;,&lt;br /&gt;
      height: &amp;quot;32px&amp;quot;,&lt;br /&gt;
      borderRadius: &amp;quot;50%&amp;quot;,&lt;br /&gt;
      background: &amp;quot;#e2d9c8&amp;quot;,&lt;br /&gt;
      border: &amp;quot;1px solid #c8b99a&amp;quot;,&lt;br /&gt;
      display: &amp;quot;flex&amp;quot;,&lt;br /&gt;
      alignItems: &amp;quot;center&amp;quot;,&lt;br /&gt;
      justifyContent: &amp;quot;center&amp;quot;,&lt;br /&gt;
      cursor: &amp;quot;pointer&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Cinzel&#039;, serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.75rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#2a2218&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      fontVariant: &amp;quot;normal&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var dropdown = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    s(dropdown, {&lt;br /&gt;
      display: &amp;quot;none&amp;quot;,&lt;br /&gt;
      position: &amp;quot;absolute&amp;quot;,&lt;br /&gt;
      top: &amp;quot;calc(100% + 8px)&amp;quot;,&lt;br /&gt;
      right: &amp;quot;0&amp;quot;,&lt;br /&gt;
      background: &amp;quot;#f9f6f0&amp;quot;,&lt;br /&gt;
      border: &amp;quot;1px solid #e2d9c8&amp;quot;,&lt;br /&gt;
      minWidth: &amp;quot;180px&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.5rem 0&amp;quot;,&lt;br /&gt;
      boxShadow: &amp;quot;0 4px 16px rgba(0,0,0,0.06)&amp;quot;,&lt;br /&gt;
      zIndex: &amp;quot;10000&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var emailDiv = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    emailDiv.textContent = user.email;&lt;br /&gt;
    s(emailDiv, {&lt;br /&gt;
      padding: &amp;quot;0.5rem 1rem 0.75rem&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;EB Garamond&#039;, serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.875rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#6b5e4e&amp;quot;,&lt;br /&gt;
      borderBottom: &amp;quot;1px solid #e2d9c8&amp;quot;,&lt;br /&gt;
      marginBottom: &amp;quot;0.25rem&amp;quot;,&lt;br /&gt;
      fontStyle: &amp;quot;italic&amp;quot;,&lt;br /&gt;
      wordBreak: &amp;quot;break-all&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var profileLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    profileLink.href = &amp;quot;https://erakh.com/profile&amp;quot;;&lt;br /&gt;
    profileLink.textContent = &amp;quot;Profile&amp;quot;;&lt;br /&gt;
    s(profileLink, {&lt;br /&gt;
      display: &amp;quot;block&amp;quot;,&lt;br /&gt;
      width: &amp;quot;100%&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.5rem 1rem&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.8125rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#2a2218&amp;quot;,&lt;br /&gt;
      textDecoration: &amp;quot;none&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var signOutBtn = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
    signOutBtn.textContent = &amp;quot;Sign out&amp;quot;;&lt;br /&gt;
    s(signOutBtn, {&lt;br /&gt;
      display: &amp;quot;block&amp;quot;,&lt;br /&gt;
      width: &amp;quot;100%&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.5rem 1rem&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.8125rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#a04040&amp;quot;,&lt;br /&gt;
      textAlign: &amp;quot;left&amp;quot;,&lt;br /&gt;
      background: &amp;quot;transparent&amp;quot;,&lt;br /&gt;
      border: &amp;quot;none&amp;quot;,&lt;br /&gt;
      cursor: &amp;quot;pointer&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
    signOutBtn.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      fetch(&amp;quot;https://erakh.com/api/auth/logout&amp;quot;, { method: &amp;quot;POST&amp;quot;, credentials: &amp;quot;include&amp;quot; })&lt;br /&gt;
        .then(function () { window.location.href = &amp;quot;https://erakh.com&amp;quot;; });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    dropdown.appendChild(emailDiv);&lt;br /&gt;
    dropdown.appendChild(profileLink);&lt;br /&gt;
    dropdown.appendChild(signOutBtn);&lt;br /&gt;
&lt;br /&gt;
    avatar.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      dropdown.style.display = dropdown.style.display === &amp;quot;none&amp;quot; ? &amp;quot;block&amp;quot; : &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
    document.addEventListener(&amp;quot;click&amp;quot;, function (e) {&lt;br /&gt;
      if (!profile.contains(e.target)) dropdown.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    profile.appendChild(avatar);&lt;br /&gt;
    profile.appendChild(dropdown);&lt;br /&gt;
    right.appendChild(profile);&lt;br /&gt;
&lt;br /&gt;
  } else {&lt;br /&gt;
    /* 비로그인 — Sign in */&lt;br /&gt;
    var loginBtn = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    loginBtn.href = &amp;quot;https://erakh.com/login?redirect=&amp;quot; + encodeURIComponent(window.location.href);&lt;br /&gt;
    loginBtn.textContent = &amp;quot;Sign in&amp;quot;;&lt;br /&gt;
    s(loginBtn, {&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.8125rem&amp;quot;,&lt;br /&gt;
      fontWeight: &amp;quot;500&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#2a2218&amp;quot;,&lt;br /&gt;
      textDecoration: &amp;quot;none&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.4rem 1rem&amp;quot;,&lt;br /&gt;
      border: &amp;quot;1px solid #c8b99a&amp;quot;,&lt;br /&gt;
      background: &amp;quot;transparent&amp;quot;,&lt;br /&gt;
      cursor: &amp;quot;pointer&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      lineHeight: &amp;quot;1&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
    loginBtn.addEventListener(&amp;quot;mouseover&amp;quot;, function() {&lt;br /&gt;
      this.style.borderColor = &amp;quot;#c8a060&amp;quot;;&lt;br /&gt;
      this.style.background = &amp;quot;#f0ebe0&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
    loginBtn.addEventListener(&amp;quot;mouseout&amp;quot;, function() {&lt;br /&gt;
      this.style.borderColor = &amp;quot;#c8b99a&amp;quot;;&lt;br /&gt;
      this.style.background = &amp;quot;transparent&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
    right.appendChild(loginBtn);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  header.appendChild(left);&lt;br /&gt;
  header.appendChild(right);&lt;br /&gt;
  document.body.insertBefore(header, document.body.firstChild);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=13</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=13"/>
		<updated>2026-04-09T03:45:02Z</updated>

		<summary type="html">&lt;p&gt;Juoh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(function () {&lt;br /&gt;
  /* --- Google Fonts 강제 로드 --- */&lt;br /&gt;
  var fontLink = document.createElement(&amp;quot;link&amp;quot;);&lt;br /&gt;
  fontLink.rel = &amp;quot;stylesheet&amp;quot;;&lt;br /&gt;
  fontLink.href = &amp;quot;https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&amp;amp;display=swap&amp;quot;;&lt;br /&gt;
  document.head.insertBefore(fontLink, document.head.firstChild);&lt;br /&gt;
&lt;br /&gt;
  /* --- 쿠키 읽기 --- */&lt;br /&gt;
  function getCookie(name) {&lt;br /&gt;
    var match = document.cookie.match(new RegExp(&amp;quot;(?:^|; )&amp;quot; + name + &amp;quot;=([^;]*)&amp;quot;));&lt;br /&gt;
    return match ? decodeURIComponent(match[1]) : null;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* --- 유저 정보 파싱 --- */&lt;br /&gt;
  var user = null;&lt;br /&gt;
  try {&lt;br /&gt;
    var raw = getCookie(&amp;quot;erakh_user&amp;quot;);&lt;br /&gt;
    if (raw) user = JSON.parse(raw);&lt;br /&gt;
  } catch (e) {}&lt;br /&gt;
&lt;br /&gt;
  /* --- 인라인 스타일 헬퍼 --- */&lt;br /&gt;
  function s(el, styles) {&lt;br /&gt;
    Object.keys(styles).forEach(function(k) { el.style[k] = styles[k]; });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* --- 헤더 --- */&lt;br /&gt;
  var header = document.createElement(&amp;quot;header&amp;quot;);&lt;br /&gt;
  s(header, {&lt;br /&gt;
    position: &amp;quot;fixed&amp;quot;,&lt;br /&gt;
    top: &amp;quot;0&amp;quot;,&lt;br /&gt;
    left: &amp;quot;0&amp;quot;,&lt;br /&gt;
    right: &amp;quot;0&amp;quot;,&lt;br /&gt;
    zIndex: &amp;quot;9999&amp;quot;,&lt;br /&gt;
    width: &amp;quot;100%&amp;quot;,&lt;br /&gt;
    background: &amp;quot;#f9f6f0&amp;quot;,&lt;br /&gt;
    borderBottom: &amp;quot;1px solid #e2d9c8&amp;quot;,&lt;br /&gt;
    display: &amp;quot;flex&amp;quot;,&lt;br /&gt;
    alignItems: &amp;quot;center&amp;quot;,&lt;br /&gt;
    justifyContent: &amp;quot;space-between&amp;quot;,&lt;br /&gt;
    padding: &amp;quot;0 2rem&amp;quot;,&lt;br /&gt;
    height: &amp;quot;56px&amp;quot;,&lt;br /&gt;
    boxSizing: &amp;quot;border-box&amp;quot;&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  /* --- 좌측 --- */&lt;br /&gt;
  var left = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  s(left, {&lt;br /&gt;
    display: &amp;quot;flex&amp;quot;,&lt;br /&gt;
    alignItems: &amp;quot;center&amp;quot;,&lt;br /&gt;
    gap: &amp;quot;1.75rem&amp;quot;&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  var logo = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  logo.href = &amp;quot;https://erakh.com&amp;quot;;&lt;br /&gt;
  logo.textContent = &amp;quot;Erakh Archive&amp;quot;;&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-family&amp;quot;, &amp;quot;&#039;Cinzel&#039;, serif&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-size&amp;quot;, &amp;quot;1.125rem&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-weight&amp;quot;, &amp;quot;500&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;text-decoration&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;letter-spacing&amp;quot;, &amp;quot;0.05em&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;text-transform&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-variant&amp;quot;, &amp;quot;normal&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-variant-caps&amp;quot;, &amp;quot;normal&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-feature-settings&amp;quot;, &amp;quot;normal&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;line-height&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  var nav = document.createElement(&amp;quot;nav&amp;quot;);&lt;br /&gt;
  s(nav, { display: &amp;quot;flex&amp;quot;, alignItems: &amp;quot;center&amp;quot;, gap: &amp;quot;1.5rem&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
  var codexLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  codexLink.href = &amp;quot;https://codex.erakh.com&amp;quot;;&lt;br /&gt;
  codexLink.textContent = &amp;quot;Codex&amp;quot;;&lt;br /&gt;
  s(codexLink, {&lt;br /&gt;
    fontFamily: &amp;quot;&#039;EB Garamond&#039;, serif&amp;quot;,&lt;br /&gt;
    fontSize: &amp;quot;1rem&amp;quot;,&lt;br /&gt;
    color: &amp;quot;#6b5e4e&amp;quot;,&lt;br /&gt;
    textDecoration: &amp;quot;none&amp;quot;,&lt;br /&gt;
    textTransform: &amp;quot;none&amp;quot;,&lt;br /&gt;
    fontVariant: &amp;quot;normal&amp;quot;,&lt;br /&gt;
    lineHeight: &amp;quot;1&amp;quot;&lt;br /&gt;
  });&lt;br /&gt;
  codexLink.addEventListener(&amp;quot;mouseover&amp;quot;, function() { this.style.color = &amp;quot;#2a2218&amp;quot;; });&lt;br /&gt;
  codexLink.addEventListener(&amp;quot;mouseout&amp;quot;,  function() { this.style.color = &amp;quot;#6b5e4e&amp;quot;; });&lt;br /&gt;
&lt;br /&gt;
  nav.appendChild(codexLink);&lt;br /&gt;
  left.appendChild(logo);&lt;br /&gt;
  left.appendChild(nav);&lt;br /&gt;
&lt;br /&gt;
  /* --- 우측 --- */&lt;br /&gt;
  var right = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  s(right, { display: &amp;quot;flex&amp;quot;, alignItems: &amp;quot;center&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
  if (user &amp;amp;&amp;amp; user.email) {&lt;br /&gt;
    /* 로그인 — 아바타 + 드롭다운 */&lt;br /&gt;
    var profile = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    s(profile, { position: &amp;quot;relative&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
    var avatar = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    avatar.textContent = user.email.slice(0, 1).toUpperCase();&lt;br /&gt;
    s(avatar, {&lt;br /&gt;
      width: &amp;quot;32px&amp;quot;,&lt;br /&gt;
      height: &amp;quot;32px&amp;quot;,&lt;br /&gt;
      borderRadius: &amp;quot;50%&amp;quot;,&lt;br /&gt;
      background: &amp;quot;#e2d9c8&amp;quot;,&lt;br /&gt;
      border: &amp;quot;1px solid #c8b99a&amp;quot;,&lt;br /&gt;
      display: &amp;quot;flex&amp;quot;,&lt;br /&gt;
      alignItems: &amp;quot;center&amp;quot;,&lt;br /&gt;
      justifyContent: &amp;quot;center&amp;quot;,&lt;br /&gt;
      cursor: &amp;quot;pointer&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Cinzel&#039;, serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.75rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#2a2218&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      fontVariant: &amp;quot;normal&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var dropdown = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    s(dropdown, {&lt;br /&gt;
      display: &amp;quot;none&amp;quot;,&lt;br /&gt;
      position: &amp;quot;absolute&amp;quot;,&lt;br /&gt;
      top: &amp;quot;calc(100% + 8px)&amp;quot;,&lt;br /&gt;
      right: &amp;quot;0&amp;quot;,&lt;br /&gt;
      background: &amp;quot;#f9f6f0&amp;quot;,&lt;br /&gt;
      border: &amp;quot;1px solid #e2d9c8&amp;quot;,&lt;br /&gt;
      minWidth: &amp;quot;180px&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.5rem 0&amp;quot;,&lt;br /&gt;
      boxShadow: &amp;quot;0 4px 16px rgba(0,0,0,0.06)&amp;quot;,&lt;br /&gt;
      zIndex: &amp;quot;10000&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var emailDiv = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    emailDiv.textContent = user.email;&lt;br /&gt;
    s(emailDiv, {&lt;br /&gt;
      padding: &amp;quot;0.5rem 1rem 0.75rem&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;EB Garamond&#039;, serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.875rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#6b5e4e&amp;quot;,&lt;br /&gt;
      borderBottom: &amp;quot;1px solid #e2d9c8&amp;quot;,&lt;br /&gt;
      marginBottom: &amp;quot;0.25rem&amp;quot;,&lt;br /&gt;
      fontStyle: &amp;quot;italic&amp;quot;,&lt;br /&gt;
      wordBreak: &amp;quot;break-all&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var profileLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    profileLink.href = &amp;quot;https://erakh.com/profile&amp;quot;;&lt;br /&gt;
    profileLink.textContent = &amp;quot;Profile&amp;quot;;&lt;br /&gt;
    s(profileLink, {&lt;br /&gt;
      display: &amp;quot;block&amp;quot;,&lt;br /&gt;
      width: &amp;quot;100%&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.5rem 1rem&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.8125rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#2a2218&amp;quot;,&lt;br /&gt;
      textDecoration: &amp;quot;none&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var signOutBtn = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
    signOutBtn.textContent = &amp;quot;Sign out&amp;quot;;&lt;br /&gt;
    s(signOutBtn, {&lt;br /&gt;
      display: &amp;quot;block&amp;quot;,&lt;br /&gt;
      width: &amp;quot;100%&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.5rem 1rem&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.8125rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#a04040&amp;quot;,&lt;br /&gt;
      textAlign: &amp;quot;left&amp;quot;,&lt;br /&gt;
      background: &amp;quot;transparent&amp;quot;,&lt;br /&gt;
      border: &amp;quot;none&amp;quot;,&lt;br /&gt;
      cursor: &amp;quot;pointer&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
    signOutBtn.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      fetch(&amp;quot;https://erakh.com/api/auth/logout&amp;quot;, { method: &amp;quot;POST&amp;quot;, credentials: &amp;quot;include&amp;quot; })&lt;br /&gt;
        .then(function () { window.location.href = &amp;quot;https://erakh.com&amp;quot;; });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    dropdown.appendChild(emailDiv);&lt;br /&gt;
    dropdown.appendChild(profileLink);&lt;br /&gt;
    dropdown.appendChild(signOutBtn);&lt;br /&gt;
&lt;br /&gt;
    avatar.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      dropdown.style.display = dropdown.style.display === &amp;quot;none&amp;quot; ? &amp;quot;block&amp;quot; : &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
    document.addEventListener(&amp;quot;click&amp;quot;, function (e) {&lt;br /&gt;
      if (!profile.contains(e.target)) dropdown.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    profile.appendChild(avatar);&lt;br /&gt;
    profile.appendChild(dropdown);&lt;br /&gt;
    right.appendChild(profile);&lt;br /&gt;
&lt;br /&gt;
  } else {&lt;br /&gt;
    /* 비로그인 — Sign in */&lt;br /&gt;
    var loginBtn = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    loginBtn.href = &amp;quot;https://erakh.com/login?redirect=&amp;quot; + encodeURIComponent(window.location.href);&lt;br /&gt;
    loginBtn.textContent = &amp;quot;Sign in&amp;quot;;&lt;br /&gt;
    s(loginBtn, {&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.8125rem&amp;quot;,&lt;br /&gt;
      fontWeight: &amp;quot;500&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#2a2218&amp;quot;,&lt;br /&gt;
      textDecoration: &amp;quot;none&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.4rem 1rem&amp;quot;,&lt;br /&gt;
      border: &amp;quot;1px solid #c8b99a&amp;quot;,&lt;br /&gt;
      background: &amp;quot;transparent&amp;quot;,&lt;br /&gt;
      cursor: &amp;quot;pointer&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      lineHeight: &amp;quot;1&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
    loginBtn.addEventListener(&amp;quot;mouseover&amp;quot;, function() {&lt;br /&gt;
      this.style.borderColor = &amp;quot;#c8a060&amp;quot;;&lt;br /&gt;
      this.style.background = &amp;quot;#f0ebe0&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
    loginBtn.addEventListener(&amp;quot;mouseout&amp;quot;, function() {&lt;br /&gt;
      this.style.borderColor = &amp;quot;#c8b99a&amp;quot;;&lt;br /&gt;
      this.style.background = &amp;quot;transparent&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
    right.appendChild(loginBtn);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  header.appendChild(left);&lt;br /&gt;
  header.appendChild(right);&lt;br /&gt;
  document.body.insertBefore(header, document.body.firstChild);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.css&amp;diff=12</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.css&amp;diff=12"/>
		<updated>2026-04-09T03:44:33Z</updated>

		<summary type="html">&lt;p&gt;Juoh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;@import url(&#039;https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&amp;amp;display=swap&#039;);&lt;br /&gt;
&lt;br /&gt;
/* =============================================&lt;br /&gt;
   ERAKH CODEX — Common.css&lt;br /&gt;
   ============================================= */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
  --bg:        #f9f6f0;&lt;br /&gt;
  --beige-1:   #f0ebe0;&lt;br /&gt;
  --beige-2:   #e2d9c8;&lt;br /&gt;
  --beige-3:   #c8b99a;&lt;br /&gt;
  --beige-4:   #a89070;&lt;br /&gt;
  --gold:      #c8a060;&lt;br /&gt;
  --gold-dark: #a07840;&lt;br /&gt;
  --ink:       #2a2218;&lt;br /&gt;
  --ink-soft:  #6b5e4e;&lt;br /&gt;
  --ink-muted: #9c8e80;&lt;br /&gt;
  --surface:   #ffffff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === Base === */&lt;br /&gt;
body {&lt;br /&gt;
  background-color: var(--bg) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;Inter&#039;, sans-serif !important;&lt;br /&gt;
  font-size: 16px !important;&lt;br /&gt;
  line-height: 1.7 !important;&lt;br /&gt;
  padding-top: 56px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 제목 === */&lt;br /&gt;
h1, h2, h3, h4, h5, h6,&lt;br /&gt;
.firstHeading, #firstHeading {&lt;br /&gt;
  font-family: &#039;Inter&#039;, sans-serif !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-weight: 600 !important;&lt;br /&gt;
  letter-spacing: -0.01em !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 링크 — 본문만 === */&lt;br /&gt;
#bodyContent a,&lt;br /&gt;
#bodyContent a:visited,&lt;br /&gt;
#footer a {&lt;br /&gt;
  color: var(--gold-dark) !important;&lt;br /&gt;
  text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
#bodyContent a:hover,&lt;br /&gt;
#footer a:hover {&lt;br /&gt;
  color: var(--gold) !important;&lt;br /&gt;
  text-decoration: underline !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === Vector UI 전부 숨김 === */&lt;br /&gt;
#mw-head,&lt;br /&gt;
#mw-panel,&lt;br /&gt;
#p-logo,&lt;br /&gt;
#mw-navigation,&lt;br /&gt;
#mw-head-base,&lt;br /&gt;
#mw-page-base {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 본문 영역 === */&lt;br /&gt;
#content,&lt;br /&gt;
.mw-body {&lt;br /&gt;
  margin: 0 auto !important;&lt;br /&gt;
  max-width: 860px !important;&lt;br /&gt;
  padding: 2rem 2rem 4rem !important;&lt;br /&gt;
  background: var(--bg) !important;&lt;br /&gt;
  border: none !important;&lt;br /&gt;
  box-shadow: none !important;&lt;br /&gt;
  outline: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content {&lt;br /&gt;
  border: none !important;&lt;br /&gt;
  outline: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
  margin-top: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 푸터 === */&lt;br /&gt;
#footer {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border-top: 1px solid var(--beige-2) !important;&lt;br /&gt;
  color: var(--ink-muted) !important;&lt;br /&gt;
  font-family: &#039;Inter&#039;, sans-serif !important;&lt;br /&gt;
  font-size: 13px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 위키테이블 === */&lt;br /&gt;
table.wikitable {&lt;br /&gt;
  background-color: var(--surface) !important;&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
table.wikitable th {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;Inter&#039;, sans-serif !important;&lt;br /&gt;
  font-weight: 600 !important;&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
table.wikitable td {&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 구분선 === */&lt;br /&gt;
hr {&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 카테고리 === */&lt;br /&gt;
#catlinks {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border: 1px solid var(--beige-2) !important;&lt;br /&gt;
  border-radius: 4px !important;&lt;br /&gt;
  font-family: &#039;Inter&#039;, sans-serif !important;&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=11</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=11"/>
		<updated>2026-04-09T03:08:21Z</updated>

		<summary type="html">&lt;p&gt;Juoh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(function () {&lt;br /&gt;
  /* --- Google Fonts 강제 로드 --- */&lt;br /&gt;
  var fontLink = document.createElement(&amp;quot;link&amp;quot;);&lt;br /&gt;
  fontLink.rel = &amp;quot;stylesheet&amp;quot;;&lt;br /&gt;
  fontLink.href = &amp;quot;https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&amp;amp;family=EB+Garamond:ital,wght@0,400;0,500;1,400&amp;amp;family=Inter:wght@400;500&amp;amp;display=swap&amp;quot;;&lt;br /&gt;
  document.head.insertBefore(fontLink, document.head.firstChild);&lt;br /&gt;
&lt;br /&gt;
  /* --- 쿠키 읽기 --- */&lt;br /&gt;
  function getCookie(name) {&lt;br /&gt;
    var match = document.cookie.match(new RegExp(&amp;quot;(?:^|; )&amp;quot; + name + &amp;quot;=([^;]*)&amp;quot;));&lt;br /&gt;
    return match ? decodeURIComponent(match[1]) : null;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* --- 유저 정보 파싱 --- */&lt;br /&gt;
  var user = null;&lt;br /&gt;
  try {&lt;br /&gt;
    var raw = getCookie(&amp;quot;erakh_user&amp;quot;);&lt;br /&gt;
    if (raw) user = JSON.parse(raw);&lt;br /&gt;
  } catch (e) {}&lt;br /&gt;
&lt;br /&gt;
  /* --- 인라인 스타일 헬퍼 --- */&lt;br /&gt;
  function s(el, styles) {&lt;br /&gt;
    Object.keys(styles).forEach(function(k) { el.style[k] = styles[k]; });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* --- 헤더 --- */&lt;br /&gt;
  var header = document.createElement(&amp;quot;header&amp;quot;);&lt;br /&gt;
  s(header, {&lt;br /&gt;
    position: &amp;quot;fixed&amp;quot;,&lt;br /&gt;
    top: &amp;quot;0&amp;quot;,&lt;br /&gt;
    left: &amp;quot;0&amp;quot;,&lt;br /&gt;
    right: &amp;quot;0&amp;quot;,&lt;br /&gt;
    zIndex: &amp;quot;9999&amp;quot;,&lt;br /&gt;
    width: &amp;quot;100%&amp;quot;,&lt;br /&gt;
    background: &amp;quot;#f9f6f0&amp;quot;,&lt;br /&gt;
    borderBottom: &amp;quot;1px solid #e2d9c8&amp;quot;,&lt;br /&gt;
    display: &amp;quot;flex&amp;quot;,&lt;br /&gt;
    alignItems: &amp;quot;center&amp;quot;,&lt;br /&gt;
    justifyContent: &amp;quot;space-between&amp;quot;,&lt;br /&gt;
    padding: &amp;quot;0 2rem&amp;quot;,&lt;br /&gt;
    height: &amp;quot;56px&amp;quot;,&lt;br /&gt;
    boxSizing: &amp;quot;border-box&amp;quot;&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  /* --- 좌측 --- */&lt;br /&gt;
  var left = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  s(left, {&lt;br /&gt;
    display: &amp;quot;flex&amp;quot;,&lt;br /&gt;
    alignItems: &amp;quot;center&amp;quot;,&lt;br /&gt;
    gap: &amp;quot;1.75rem&amp;quot;&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  var logo = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  logo.href = &amp;quot;https://erakh.com&amp;quot;;&lt;br /&gt;
  logo.textContent = &amp;quot;Erakh Archive&amp;quot;;&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-family&amp;quot;, &amp;quot;&#039;Cinzel&#039;, serif&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-size&amp;quot;, &amp;quot;1.125rem&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-weight&amp;quot;, &amp;quot;500&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;color&amp;quot;, &amp;quot;#2a2218&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;text-decoration&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;letter-spacing&amp;quot;, &amp;quot;0.05em&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;text-transform&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-variant&amp;quot;, &amp;quot;normal&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-variant-caps&amp;quot;, &amp;quot;normal&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;font-feature-settings&amp;quot;, &amp;quot;normal&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
  logo.style.setProperty(&amp;quot;line-height&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;important&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  var nav = document.createElement(&amp;quot;nav&amp;quot;);&lt;br /&gt;
  s(nav, { display: &amp;quot;flex&amp;quot;, alignItems: &amp;quot;center&amp;quot;, gap: &amp;quot;1.5rem&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
  var codexLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  codexLink.href = &amp;quot;https://codex.erakh.com&amp;quot;;&lt;br /&gt;
  codexLink.textContent = &amp;quot;Codex&amp;quot;;&lt;br /&gt;
  s(codexLink, {&lt;br /&gt;
    fontFamily: &amp;quot;&#039;EB Garamond&#039;, serif&amp;quot;,&lt;br /&gt;
    fontSize: &amp;quot;1rem&amp;quot;,&lt;br /&gt;
    color: &amp;quot;#6b5e4e&amp;quot;,&lt;br /&gt;
    textDecoration: &amp;quot;none&amp;quot;,&lt;br /&gt;
    textTransform: &amp;quot;none&amp;quot;,&lt;br /&gt;
    fontVariant: &amp;quot;normal&amp;quot;,&lt;br /&gt;
    lineHeight: &amp;quot;1&amp;quot;&lt;br /&gt;
  });&lt;br /&gt;
  codexLink.addEventListener(&amp;quot;mouseover&amp;quot;, function() { this.style.color = &amp;quot;#2a2218&amp;quot;; });&lt;br /&gt;
  codexLink.addEventListener(&amp;quot;mouseout&amp;quot;,  function() { this.style.color = &amp;quot;#6b5e4e&amp;quot;; });&lt;br /&gt;
&lt;br /&gt;
  nav.appendChild(codexLink);&lt;br /&gt;
  left.appendChild(logo);&lt;br /&gt;
  left.appendChild(nav);&lt;br /&gt;
&lt;br /&gt;
  /* --- 우측 --- */&lt;br /&gt;
  var right = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  s(right, { display: &amp;quot;flex&amp;quot;, alignItems: &amp;quot;center&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
  if (user &amp;amp;&amp;amp; user.email) {&lt;br /&gt;
    /* 로그인 — 아바타 + 드롭다운 */&lt;br /&gt;
    var profile = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    s(profile, { position: &amp;quot;relative&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
    var avatar = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    avatar.textContent = user.email.slice(0, 1).toUpperCase();&lt;br /&gt;
    s(avatar, {&lt;br /&gt;
      width: &amp;quot;32px&amp;quot;,&lt;br /&gt;
      height: &amp;quot;32px&amp;quot;,&lt;br /&gt;
      borderRadius: &amp;quot;50%&amp;quot;,&lt;br /&gt;
      background: &amp;quot;#e2d9c8&amp;quot;,&lt;br /&gt;
      border: &amp;quot;1px solid #c8b99a&amp;quot;,&lt;br /&gt;
      display: &amp;quot;flex&amp;quot;,&lt;br /&gt;
      alignItems: &amp;quot;center&amp;quot;,&lt;br /&gt;
      justifyContent: &amp;quot;center&amp;quot;,&lt;br /&gt;
      cursor: &amp;quot;pointer&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Cinzel&#039;, serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.75rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#2a2218&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      fontVariant: &amp;quot;normal&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var dropdown = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    s(dropdown, {&lt;br /&gt;
      display: &amp;quot;none&amp;quot;,&lt;br /&gt;
      position: &amp;quot;absolute&amp;quot;,&lt;br /&gt;
      top: &amp;quot;calc(100% + 8px)&amp;quot;,&lt;br /&gt;
      right: &amp;quot;0&amp;quot;,&lt;br /&gt;
      background: &amp;quot;#f9f6f0&amp;quot;,&lt;br /&gt;
      border: &amp;quot;1px solid #e2d9c8&amp;quot;,&lt;br /&gt;
      minWidth: &amp;quot;180px&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.5rem 0&amp;quot;,&lt;br /&gt;
      boxShadow: &amp;quot;0 4px 16px rgba(0,0,0,0.06)&amp;quot;,&lt;br /&gt;
      zIndex: &amp;quot;10000&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var emailDiv = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    emailDiv.textContent = user.email;&lt;br /&gt;
    s(emailDiv, {&lt;br /&gt;
      padding: &amp;quot;0.5rem 1rem 0.75rem&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;EB Garamond&#039;, serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.875rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#6b5e4e&amp;quot;,&lt;br /&gt;
      borderBottom: &amp;quot;1px solid #e2d9c8&amp;quot;,&lt;br /&gt;
      marginBottom: &amp;quot;0.25rem&amp;quot;,&lt;br /&gt;
      fontStyle: &amp;quot;italic&amp;quot;,&lt;br /&gt;
      wordBreak: &amp;quot;break-all&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var profileLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    profileLink.href = &amp;quot;https://erakh.com/profile&amp;quot;;&lt;br /&gt;
    profileLink.textContent = &amp;quot;Profile&amp;quot;;&lt;br /&gt;
    s(profileLink, {&lt;br /&gt;
      display: &amp;quot;block&amp;quot;,&lt;br /&gt;
      width: &amp;quot;100%&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.5rem 1rem&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.8125rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#2a2218&amp;quot;,&lt;br /&gt;
      textDecoration: &amp;quot;none&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var signOutBtn = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
    signOutBtn.textContent = &amp;quot;Sign out&amp;quot;;&lt;br /&gt;
    s(signOutBtn, {&lt;br /&gt;
      display: &amp;quot;block&amp;quot;,&lt;br /&gt;
      width: &amp;quot;100%&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.5rem 1rem&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.8125rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#a04040&amp;quot;,&lt;br /&gt;
      textAlign: &amp;quot;left&amp;quot;,&lt;br /&gt;
      background: &amp;quot;transparent&amp;quot;,&lt;br /&gt;
      border: &amp;quot;none&amp;quot;,&lt;br /&gt;
      cursor: &amp;quot;pointer&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
    signOutBtn.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      fetch(&amp;quot;https://erakh.com/api/auth/logout&amp;quot;, { method: &amp;quot;POST&amp;quot;, credentials: &amp;quot;include&amp;quot; })&lt;br /&gt;
        .then(function () { window.location.href = &amp;quot;https://erakh.com&amp;quot;; });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    dropdown.appendChild(emailDiv);&lt;br /&gt;
    dropdown.appendChild(profileLink);&lt;br /&gt;
    dropdown.appendChild(signOutBtn);&lt;br /&gt;
&lt;br /&gt;
    avatar.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      dropdown.style.display = dropdown.style.display === &amp;quot;none&amp;quot; ? &amp;quot;block&amp;quot; : &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
    document.addEventListener(&amp;quot;click&amp;quot;, function (e) {&lt;br /&gt;
      if (!profile.contains(e.target)) dropdown.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    profile.appendChild(avatar);&lt;br /&gt;
    profile.appendChild(dropdown);&lt;br /&gt;
    right.appendChild(profile);&lt;br /&gt;
&lt;br /&gt;
  } else {&lt;br /&gt;
    /* 비로그인 — Sign in */&lt;br /&gt;
    var loginBtn = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    loginBtn.href = &amp;quot;https://erakh.com/login?redirect=&amp;quot; + encodeURIComponent(window.location.href);&lt;br /&gt;
    loginBtn.textContent = &amp;quot;Sign in&amp;quot;;&lt;br /&gt;
    s(loginBtn, {&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.8125rem&amp;quot;,&lt;br /&gt;
      fontWeight: &amp;quot;500&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#2a2218&amp;quot;,&lt;br /&gt;
      textDecoration: &amp;quot;none&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.4rem 1rem&amp;quot;,&lt;br /&gt;
      border: &amp;quot;1px solid #c8b99a&amp;quot;,&lt;br /&gt;
      background: &amp;quot;transparent&amp;quot;,&lt;br /&gt;
      cursor: &amp;quot;pointer&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      lineHeight: &amp;quot;1&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
    loginBtn.addEventListener(&amp;quot;mouseover&amp;quot;, function() {&lt;br /&gt;
      this.style.borderColor = &amp;quot;#c8a060&amp;quot;;&lt;br /&gt;
      this.style.background = &amp;quot;#f0ebe0&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
    loginBtn.addEventListener(&amp;quot;mouseout&amp;quot;, function() {&lt;br /&gt;
      this.style.borderColor = &amp;quot;#c8b99a&amp;quot;;&lt;br /&gt;
      this.style.background = &amp;quot;transparent&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
    right.appendChild(loginBtn);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  header.appendChild(left);&lt;br /&gt;
  header.appendChild(right);&lt;br /&gt;
  document.body.insertBefore(header, document.body.firstChild);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.css&amp;diff=10</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.css&amp;diff=10"/>
		<updated>2026-04-09T03:06:55Z</updated>

		<summary type="html">&lt;p&gt;Juoh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;@import url(&#039;https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&amp;amp;family=EB+Garamond:ital,wght@0,400;0,500;1,400&amp;amp;display=swap&#039;);&lt;br /&gt;
&lt;br /&gt;
/* =============================================&lt;br /&gt;
   ERAKH CODEX — Common.css&lt;br /&gt;
   ============================================= */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
  --bg:        #f9f6f0;&lt;br /&gt;
  --beige-1:   #f0ebe0;&lt;br /&gt;
  --beige-2:   #e2d9c8;&lt;br /&gt;
  --beige-3:   #c8b99a;&lt;br /&gt;
  --beige-4:   #a89070;&lt;br /&gt;
  --gold:      #c8a060;&lt;br /&gt;
  --gold-dark: #a07840;&lt;br /&gt;
  --ink:       #2a2218;&lt;br /&gt;
  --ink-soft:  #6b5e4e;&lt;br /&gt;
  --ink-muted: #9c8e80;&lt;br /&gt;
  --surface:   #ffffff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === Base === */&lt;br /&gt;
body {&lt;br /&gt;
  background-color: var(--bg) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 18px !important;&lt;br /&gt;
  line-height: 1.7 !important;&lt;br /&gt;
  padding-top: 56px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 제목 === */&lt;br /&gt;
h1, h2, h3, h4, h5, h6,&lt;br /&gt;
.firstHeading, #firstHeading {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-weight: 500 !important;&lt;br /&gt;
  letter-spacing: 0.02em !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 링크 — 헤더 제외 === */&lt;br /&gt;
#bodyContent a,&lt;br /&gt;
#bodyContent a:visited,&lt;br /&gt;
#footer a {&lt;br /&gt;
  color: var(--gold-dark) !important;&lt;br /&gt;
  text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
#bodyContent a:hover,&lt;br /&gt;
#footer a:hover {&lt;br /&gt;
  color: var(--gold) !important;&lt;br /&gt;
  text-decoration: underline !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === Vector UI 전부 숨김 === */&lt;br /&gt;
#mw-head,&lt;br /&gt;
#mw-panel,&lt;br /&gt;
#p-logo,&lt;br /&gt;
#mw-navigation,&lt;br /&gt;
#mw-head-base,&lt;br /&gt;
#mw-page-base {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 본문 영역 === */&lt;br /&gt;
#content,&lt;br /&gt;
.mw-body {&lt;br /&gt;
  margin: 0 auto !important;&lt;br /&gt;
  margin-left: auto !important;&lt;br /&gt;
  max-width: 860px !important;&lt;br /&gt;
  padding: 2rem 2rem 4rem !important;&lt;br /&gt;
  background: var(--bg) !important;&lt;br /&gt;
  border: none !important;&lt;br /&gt;
  box-shadow: none !important;&lt;br /&gt;
  outline: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body-content {&lt;br /&gt;
  border: none !important;&lt;br /&gt;
  outline: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
  margin-top: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 푸터 === */&lt;br /&gt;
#footer {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border-top: 1px solid var(--beige-2) !important;&lt;br /&gt;
  color: var(--ink-muted) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 14px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 위키테이블 === */&lt;br /&gt;
table.wikitable {&lt;br /&gt;
  background-color: var(--surface) !important;&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
table.wikitable th {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-weight: 500 !important;&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
table.wikitable td {&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 구분선 === */&lt;br /&gt;
hr {&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 카테고리 === */&lt;br /&gt;
#catlinks {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border: 1px solid var(--beige-2) !important;&lt;br /&gt;
  border-radius: 4px !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.css&amp;diff=9</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.css&amp;diff=9"/>
		<updated>2026-04-09T02:50:35Z</updated>

		<summary type="html">&lt;p&gt;Juoh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;@import url(&#039;https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&amp;amp;family=EB+Garamond:ital,wght@0,400;0,500;1,400&amp;amp;display=swap&#039;);&lt;br /&gt;
&lt;br /&gt;
/* =============================================&lt;br /&gt;
   ERAKH CODEX — Common.css&lt;br /&gt;
   erakh.com 디자인 시스템 기준 (라이트 모드)&lt;br /&gt;
   ============================================= */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
  --bg:        #f9f6f0;&lt;br /&gt;
  --beige-1:   #f0ebe0;&lt;br /&gt;
  --beige-2:   #e2d9c8;&lt;br /&gt;
  --beige-3:   #c8b99a;&lt;br /&gt;
  --beige-4:   #a89070;&lt;br /&gt;
  --gold:      #c8a060;&lt;br /&gt;
  --gold-dark: #a07840;&lt;br /&gt;
  --ink:       #2a2218;&lt;br /&gt;
  --ink-soft:  #6b5e4e;&lt;br /&gt;
  --ink-muted: #9c8e80;&lt;br /&gt;
  --surface:   #ffffff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === Base === */&lt;br /&gt;
body {&lt;br /&gt;
  background-color: var(--bg) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 18px !important;&lt;br /&gt;
  line-height: 1.7 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 제목 === */&lt;br /&gt;
h1, h2, h3, h4, h5, h6,&lt;br /&gt;
.firstHeading, #firstHeading {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-weight: 500 !important;&lt;br /&gt;
  letter-spacing: 0.02em !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 링크 === */&lt;br /&gt;
a, a:visited {&lt;br /&gt;
  color: var(--gold-dark) !important;&lt;br /&gt;
  text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
a:hover {&lt;br /&gt;
  color: var(--gold) !important;&lt;br /&gt;
  text-decoration: underline !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 페이지 배경 === */&lt;br /&gt;
#mw-page-base,&lt;br /&gt;
#mw-head-base {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 본문 영역 === */&lt;br /&gt;
#content,&lt;br /&gt;
.mw-body {&lt;br /&gt;
  background-color: var(--bg) !important;&lt;br /&gt;
  border: none !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  box-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 사이드바 === */&lt;br /&gt;
#mw-panel {&lt;br /&gt;
  background-color: transparent !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-portal h3,&lt;br /&gt;
#p-navigation h3,&lt;br /&gt;
#p-tb h3 {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-size: 10px !important;&lt;br /&gt;
  letter-spacing: 0.12em !important;&lt;br /&gt;
  text-transform: uppercase !important;&lt;br /&gt;
  color: var(--ink-muted) !important;&lt;br /&gt;
  border-bottom: 1px solid var(--beige-2) !important;&lt;br /&gt;
  padding-bottom: 4px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-portal ul li a,&lt;br /&gt;
#p-navigation ul li a,&lt;br /&gt;
#p-tb ul li a {&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 16px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-portal ul li a:hover,&lt;br /&gt;
#p-navigation ul li a:hover,&lt;br /&gt;
#p-tb ul li a:hover {&lt;br /&gt;
  color: var(--gold) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 헤더 / 탭 === */&lt;br /&gt;
#mw-head {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs a,&lt;br /&gt;
#p-namespaces ul li a,&lt;br /&gt;
#p-views ul li a {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-size: 12px !important;&lt;br /&gt;
  letter-spacing: 0.05em !important;&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li.selected a {&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 검색창 === */&lt;br /&gt;
#searchInput {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border: 1px solid var(--beige-3) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  border-radius: 4px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 카테고리 === */&lt;br /&gt;
#catlinks {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border: 1px solid var(--beige-2) !important;&lt;br /&gt;
  border-radius: 4px !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 푸터 === */&lt;br /&gt;
#footer {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border-top: 1px solid var(--beige-2) !important;&lt;br /&gt;
  color: var(--ink-muted) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 14px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#footer a {&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 위키테이블 === */&lt;br /&gt;
table.wikitable {&lt;br /&gt;
  background-color: var(--surface) !important;&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable th {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-weight: 500 !important;&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable td {&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 구분선 === */&lt;br /&gt;
hr {&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* =============================================&lt;br /&gt;
   LAYOUT — 기본 Vector UI 제거 + 풀width&lt;br /&gt;
   ============================================= */&lt;br /&gt;
&lt;br /&gt;
/* 기존 헤더/사이드바/로고 전부 숨김 */&lt;br /&gt;
#mw-head,&lt;br /&gt;
#mw-panel,&lt;br /&gt;
#p-logo,&lt;br /&gt;
#mw-navigation,&lt;br /&gt;
#mw-head-base,&lt;br /&gt;
#mw-page-base {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 본문 풀width */&lt;br /&gt;
#mw-page-base { display: none !important; }&lt;br /&gt;
&lt;br /&gt;
#content,&lt;br /&gt;
.mw-body {&lt;br /&gt;
  margin-left: 0 !important;&lt;br /&gt;
  margin-top: 0 !important;&lt;br /&gt;
  border-left: none !important;&lt;br /&gt;
  border-right: none !important;&lt;br /&gt;
  border-top: none !important;&lt;br /&gt;
  max-width: 860px !important;&lt;br /&gt;
  margin: 0 auto !important;&lt;br /&gt;
  padding: 2rem 2rem 4rem !important;&lt;br /&gt;
  background: var(--surface) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
  margin-top: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 전체 페이지 배경 */&lt;br /&gt;
body {&lt;br /&gt;
  padding-top: 56px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 헤더 예외 처리 === */&lt;br /&gt;
.erakh-logo,&lt;br /&gt;
.erakh-logo:visited {&lt;br /&gt;
  color: var(--ink, #2a2218) !important;&lt;br /&gt;
  text-transform: none !important;&lt;br /&gt;
  font-variant: normal !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.erakh-nav a,&lt;br /&gt;
.erakh-nav a:visited {&lt;br /&gt;
  color: var(--ink-soft, #6b5e4e) !important;&lt;br /&gt;
  text-transform: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.erakh-nav a:hover {&lt;br /&gt;
  color: var(--ink, #2a2218) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.erakh-header {&lt;br /&gt;
  overflow: visible !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.erakh-login-btn,&lt;br /&gt;
.erakh-login-btn:visited {&lt;br /&gt;
  color: var(--ink, #2a2218) !important;&lt;br /&gt;
  text-transform: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 본문 좌측 border 제거 */&lt;br /&gt;
#content,&lt;br /&gt;
.mw-body,&lt;br /&gt;
.mw-body-content {&lt;br /&gt;
  border: none !important;&lt;br /&gt;
  outline: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 헤더 로고 font-variant 강제 초기화 */&lt;br /&gt;
.erakh-logo,&lt;br /&gt;
.erakh-logo * {&lt;br /&gt;
  font-variant: normal !important;&lt;br /&gt;
  font-variant-caps: normal !important;&lt;br /&gt;
  font-feature-settings: normal !important;&lt;br /&gt;
  -webkit-font-feature-settings: normal !important;&lt;br /&gt;
  text-transform: none !important;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.css&amp;diff=8</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.css&amp;diff=8"/>
		<updated>2026-04-09T02:49:23Z</updated>

		<summary type="html">&lt;p&gt;Juoh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;@import url(&#039;https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&amp;amp;family=EB+Garamond:ital,wght@0,400;0,500;1,400&amp;amp;display=swap&#039;);&lt;br /&gt;
&lt;br /&gt;
/* =============================================&lt;br /&gt;
   ERAKH CODEX — Common.css&lt;br /&gt;
   erakh.com 디자인 시스템 기준 (라이트 모드)&lt;br /&gt;
   ============================================= */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
  --bg:        #f9f6f0;&lt;br /&gt;
  --beige-1:   #f0ebe0;&lt;br /&gt;
  --beige-2:   #e2d9c8;&lt;br /&gt;
  --beige-3:   #c8b99a;&lt;br /&gt;
  --beige-4:   #a89070;&lt;br /&gt;
  --gold:      #c8a060;&lt;br /&gt;
  --gold-dark: #a07840;&lt;br /&gt;
  --ink:       #2a2218;&lt;br /&gt;
  --ink-soft:  #6b5e4e;&lt;br /&gt;
  --ink-muted: #9c8e80;&lt;br /&gt;
  --surface:   #ffffff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === Base === */&lt;br /&gt;
body {&lt;br /&gt;
  background-color: var(--bg) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 18px !important;&lt;br /&gt;
  line-height: 1.7 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 제목 === */&lt;br /&gt;
h1, h2, h3, h4, h5, h6,&lt;br /&gt;
.firstHeading, #firstHeading {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-weight: 500 !important;&lt;br /&gt;
  letter-spacing: 0.02em !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 링크 === */&lt;br /&gt;
a, a:visited {&lt;br /&gt;
  color: var(--gold-dark) !important;&lt;br /&gt;
  text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
a:hover {&lt;br /&gt;
  color: var(--gold) !important;&lt;br /&gt;
  text-decoration: underline !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 페이지 배경 === */&lt;br /&gt;
#mw-page-base,&lt;br /&gt;
#mw-head-base {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 본문 영역 === */&lt;br /&gt;
#content,&lt;br /&gt;
.mw-body {&lt;br /&gt;
  background-color: var(--bg) !important;&lt;br /&gt;
  border: none !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  box-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 사이드바 === */&lt;br /&gt;
#mw-panel {&lt;br /&gt;
  background-color: transparent !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-portal h3,&lt;br /&gt;
#p-navigation h3,&lt;br /&gt;
#p-tb h3 {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-size: 10px !important;&lt;br /&gt;
  letter-spacing: 0.12em !important;&lt;br /&gt;
  text-transform: uppercase !important;&lt;br /&gt;
  color: var(--ink-muted) !important;&lt;br /&gt;
  border-bottom: 1px solid var(--beige-2) !important;&lt;br /&gt;
  padding-bottom: 4px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-portal ul li a,&lt;br /&gt;
#p-navigation ul li a,&lt;br /&gt;
#p-tb ul li a {&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 16px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-portal ul li a:hover,&lt;br /&gt;
#p-navigation ul li a:hover,&lt;br /&gt;
#p-tb ul li a:hover {&lt;br /&gt;
  color: var(--gold) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 헤더 / 탭 === */&lt;br /&gt;
#mw-head {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs a,&lt;br /&gt;
#p-namespaces ul li a,&lt;br /&gt;
#p-views ul li a {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-size: 12px !important;&lt;br /&gt;
  letter-spacing: 0.05em !important;&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li.selected a {&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 검색창 === */&lt;br /&gt;
#searchInput {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border: 1px solid var(--beige-3) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  border-radius: 4px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 카테고리 === */&lt;br /&gt;
#catlinks {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border: 1px solid var(--beige-2) !important;&lt;br /&gt;
  border-radius: 4px !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 푸터 === */&lt;br /&gt;
#footer {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border-top: 1px solid var(--beige-2) !important;&lt;br /&gt;
  color: var(--ink-muted) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 14px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#footer a {&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 위키테이블 === */&lt;br /&gt;
table.wikitable {&lt;br /&gt;
  background-color: var(--surface) !important;&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable th {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-weight: 500 !important;&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable td {&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 구분선 === */&lt;br /&gt;
hr {&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* =============================================&lt;br /&gt;
   LAYOUT — 기본 Vector UI 제거 + 풀width&lt;br /&gt;
   ============================================= */&lt;br /&gt;
&lt;br /&gt;
/* 기존 헤더/사이드바/로고 전부 숨김 */&lt;br /&gt;
#mw-head,&lt;br /&gt;
#mw-panel,&lt;br /&gt;
#p-logo,&lt;br /&gt;
#mw-navigation,&lt;br /&gt;
#mw-head-base,&lt;br /&gt;
#mw-page-base {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 본문 풀width */&lt;br /&gt;
#mw-page-base { display: none !important; }&lt;br /&gt;
&lt;br /&gt;
#content,&lt;br /&gt;
.mw-body {&lt;br /&gt;
  margin-left: 0 !important;&lt;br /&gt;
  margin-top: 0 !important;&lt;br /&gt;
  border-left: none !important;&lt;br /&gt;
  border-right: none !important;&lt;br /&gt;
  border-top: none !important;&lt;br /&gt;
  max-width: 860px !important;&lt;br /&gt;
  margin: 0 auto !important;&lt;br /&gt;
  padding: 2rem 2rem 4rem !important;&lt;br /&gt;
  background: var(--surface) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
  margin-top: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 전체 페이지 배경 */&lt;br /&gt;
body {&lt;br /&gt;
  padding-top: 56px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 헤더 예외 처리 === */&lt;br /&gt;
.erakh-logo,&lt;br /&gt;
.erakh-logo:visited {&lt;br /&gt;
  color: var(--ink, #2a2218) !important;&lt;br /&gt;
  text-transform: none !important;&lt;br /&gt;
  font-variant: normal !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.erakh-nav a,&lt;br /&gt;
.erakh-nav a:visited {&lt;br /&gt;
  color: var(--ink-soft, #6b5e4e) !important;&lt;br /&gt;
  text-transform: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.erakh-nav a:hover {&lt;br /&gt;
  color: var(--ink, #2a2218) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.erakh-header {&lt;br /&gt;
  overflow: visible !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.erakh-login-btn,&lt;br /&gt;
.erakh-login-btn:visited {&lt;br /&gt;
  color: var(--ink, #2a2218) !important;&lt;br /&gt;
  text-transform: none !important;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=7</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=7"/>
		<updated>2026-04-09T02:34:41Z</updated>

		<summary type="html">&lt;p&gt;Juoh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(function () {&lt;br /&gt;
  /* --- Google Fonts 강제 로드 --- */&lt;br /&gt;
  var fontLink = document.createElement(&amp;quot;link&amp;quot;);&lt;br /&gt;
  fontLink.rel = &amp;quot;stylesheet&amp;quot;;&lt;br /&gt;
  fontLink.href = &amp;quot;https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&amp;amp;family=EB+Garamond:ital,wght@0,400;0,500;1,400&amp;amp;family=Inter:wght@400;500&amp;amp;display=swap&amp;quot;;&lt;br /&gt;
  document.head.insertBefore(fontLink, document.head.firstChild);&lt;br /&gt;
&lt;br /&gt;
  /* --- 쿠키 읽기 --- */&lt;br /&gt;
  function getCookie(name) {&lt;br /&gt;
    var match = document.cookie.match(new RegExp(&amp;quot;(?:^|; )&amp;quot; + name + &amp;quot;=([^;]*)&amp;quot;));&lt;br /&gt;
    return match ? decodeURIComponent(match[1]) : null;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* --- 유저 정보 파싱 --- */&lt;br /&gt;
  var user = null;&lt;br /&gt;
  try {&lt;br /&gt;
    var raw = getCookie(&amp;quot;erakh_user&amp;quot;);&lt;br /&gt;
    if (raw) user = JSON.parse(raw);&lt;br /&gt;
  } catch (e) {}&lt;br /&gt;
&lt;br /&gt;
  /* --- 인라인 스타일 헬퍼 --- */&lt;br /&gt;
  function s(el, styles) {&lt;br /&gt;
    Object.keys(styles).forEach(function(k) { el.style[k] = styles[k]; });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* --- 헤더 --- */&lt;br /&gt;
  var header = document.createElement(&amp;quot;header&amp;quot;);&lt;br /&gt;
  s(header, {&lt;br /&gt;
    position: &amp;quot;fixed&amp;quot;,&lt;br /&gt;
    top: &amp;quot;0&amp;quot;,&lt;br /&gt;
    left: &amp;quot;0&amp;quot;,&lt;br /&gt;
    right: &amp;quot;0&amp;quot;,&lt;br /&gt;
    zIndex: &amp;quot;9999&amp;quot;,&lt;br /&gt;
    width: &amp;quot;100%&amp;quot;,&lt;br /&gt;
    background: &amp;quot;#f9f6f0&amp;quot;,&lt;br /&gt;
    borderBottom: &amp;quot;1px solid #e2d9c8&amp;quot;,&lt;br /&gt;
    display: &amp;quot;flex&amp;quot;,&lt;br /&gt;
    alignItems: &amp;quot;center&amp;quot;,&lt;br /&gt;
    justifyContent: &amp;quot;space-between&amp;quot;,&lt;br /&gt;
    padding: &amp;quot;0 2rem&amp;quot;,&lt;br /&gt;
    height: &amp;quot;56px&amp;quot;,&lt;br /&gt;
    boxSizing: &amp;quot;border-box&amp;quot;&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  /* --- 좌측 --- */&lt;br /&gt;
  var left = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  s(left, {&lt;br /&gt;
    display: &amp;quot;flex&amp;quot;,&lt;br /&gt;
    alignItems: &amp;quot;center&amp;quot;,&lt;br /&gt;
    gap: &amp;quot;1.75rem&amp;quot;&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  var logo = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  logo.href = &amp;quot;https://erakh.com&amp;quot;;&lt;br /&gt;
  logo.textContent = &amp;quot;Erakh Archive&amp;quot;;&lt;br /&gt;
  s(logo, {&lt;br /&gt;
    fontFamily: &amp;quot;&#039;Cinzel&#039;, serif&amp;quot;,&lt;br /&gt;
    fontSize: &amp;quot;1.125rem&amp;quot;,&lt;br /&gt;
    fontWeight: &amp;quot;500&amp;quot;,&lt;br /&gt;
    color: &amp;quot;#2a2218&amp;quot;,&lt;br /&gt;
    textDecoration: &amp;quot;none&amp;quot;,&lt;br /&gt;
    letterSpacing: &amp;quot;0.05em&amp;quot;,&lt;br /&gt;
    textTransform: &amp;quot;none&amp;quot;,&lt;br /&gt;
    fontVariant: &amp;quot;normal&amp;quot;,&lt;br /&gt;
    fontVariantCaps: &amp;quot;normal&amp;quot;,&lt;br /&gt;
    lineHeight: &amp;quot;1&amp;quot;&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  var nav = document.createElement(&amp;quot;nav&amp;quot;);&lt;br /&gt;
  s(nav, { display: &amp;quot;flex&amp;quot;, alignItems: &amp;quot;center&amp;quot;, gap: &amp;quot;1.5rem&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
  var codexLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  codexLink.href = &amp;quot;https://codex.erakh.com&amp;quot;;&lt;br /&gt;
  codexLink.textContent = &amp;quot;Codex&amp;quot;;&lt;br /&gt;
  s(codexLink, {&lt;br /&gt;
    fontFamily: &amp;quot;&#039;EB Garamond&#039;, serif&amp;quot;,&lt;br /&gt;
    fontSize: &amp;quot;1rem&amp;quot;,&lt;br /&gt;
    color: &amp;quot;#6b5e4e&amp;quot;,&lt;br /&gt;
    textDecoration: &amp;quot;none&amp;quot;,&lt;br /&gt;
    textTransform: &amp;quot;none&amp;quot;,&lt;br /&gt;
    fontVariant: &amp;quot;normal&amp;quot;,&lt;br /&gt;
    lineHeight: &amp;quot;1&amp;quot;&lt;br /&gt;
  });&lt;br /&gt;
  codexLink.addEventListener(&amp;quot;mouseover&amp;quot;, function() { this.style.color = &amp;quot;#2a2218&amp;quot;; });&lt;br /&gt;
  codexLink.addEventListener(&amp;quot;mouseout&amp;quot;,  function() { this.style.color = &amp;quot;#6b5e4e&amp;quot;; });&lt;br /&gt;
&lt;br /&gt;
  nav.appendChild(codexLink);&lt;br /&gt;
  left.appendChild(logo);&lt;br /&gt;
  left.appendChild(nav);&lt;br /&gt;
&lt;br /&gt;
  /* --- 우측 --- */&lt;br /&gt;
  var right = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  s(right, { display: &amp;quot;flex&amp;quot;, alignItems: &amp;quot;center&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
  if (user &amp;amp;&amp;amp; user.email) {&lt;br /&gt;
    /* 로그인 — 아바타 + 드롭다운 */&lt;br /&gt;
    var profile = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    s(profile, { position: &amp;quot;relative&amp;quot; });&lt;br /&gt;
&lt;br /&gt;
    var avatar = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    avatar.textContent = user.email.slice(0, 1).toUpperCase();&lt;br /&gt;
    s(avatar, {&lt;br /&gt;
      width: &amp;quot;32px&amp;quot;,&lt;br /&gt;
      height: &amp;quot;32px&amp;quot;,&lt;br /&gt;
      borderRadius: &amp;quot;50%&amp;quot;,&lt;br /&gt;
      background: &amp;quot;#e2d9c8&amp;quot;,&lt;br /&gt;
      border: &amp;quot;1px solid #c8b99a&amp;quot;,&lt;br /&gt;
      display: &amp;quot;flex&amp;quot;,&lt;br /&gt;
      alignItems: &amp;quot;center&amp;quot;,&lt;br /&gt;
      justifyContent: &amp;quot;center&amp;quot;,&lt;br /&gt;
      cursor: &amp;quot;pointer&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Cinzel&#039;, serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.75rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#2a2218&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      fontVariant: &amp;quot;normal&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var dropdown = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    s(dropdown, {&lt;br /&gt;
      display: &amp;quot;none&amp;quot;,&lt;br /&gt;
      position: &amp;quot;absolute&amp;quot;,&lt;br /&gt;
      top: &amp;quot;calc(100% + 8px)&amp;quot;,&lt;br /&gt;
      right: &amp;quot;0&amp;quot;,&lt;br /&gt;
      background: &amp;quot;#f9f6f0&amp;quot;,&lt;br /&gt;
      border: &amp;quot;1px solid #e2d9c8&amp;quot;,&lt;br /&gt;
      minWidth: &amp;quot;180px&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.5rem 0&amp;quot;,&lt;br /&gt;
      boxShadow: &amp;quot;0 4px 16px rgba(0,0,0,0.06)&amp;quot;,&lt;br /&gt;
      zIndex: &amp;quot;10000&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var emailDiv = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    emailDiv.textContent = user.email;&lt;br /&gt;
    s(emailDiv, {&lt;br /&gt;
      padding: &amp;quot;0.5rem 1rem 0.75rem&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;EB Garamond&#039;, serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.875rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#6b5e4e&amp;quot;,&lt;br /&gt;
      borderBottom: &amp;quot;1px solid #e2d9c8&amp;quot;,&lt;br /&gt;
      marginBottom: &amp;quot;0.25rem&amp;quot;,&lt;br /&gt;
      fontStyle: &amp;quot;italic&amp;quot;,&lt;br /&gt;
      wordBreak: &amp;quot;break-all&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var profileLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    profileLink.href = &amp;quot;https://erakh.com/profile&amp;quot;;&lt;br /&gt;
    profileLink.textContent = &amp;quot;Profile&amp;quot;;&lt;br /&gt;
    s(profileLink, {&lt;br /&gt;
      display: &amp;quot;block&amp;quot;,&lt;br /&gt;
      width: &amp;quot;100%&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.5rem 1rem&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.8125rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#2a2218&amp;quot;,&lt;br /&gt;
      textDecoration: &amp;quot;none&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var signOutBtn = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
    signOutBtn.textContent = &amp;quot;Sign out&amp;quot;;&lt;br /&gt;
    s(signOutBtn, {&lt;br /&gt;
      display: &amp;quot;block&amp;quot;,&lt;br /&gt;
      width: &amp;quot;100%&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.5rem 1rem&amp;quot;,&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.8125rem&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#a04040&amp;quot;,&lt;br /&gt;
      textAlign: &amp;quot;left&amp;quot;,&lt;br /&gt;
      background: &amp;quot;transparent&amp;quot;,&lt;br /&gt;
      border: &amp;quot;none&amp;quot;,&lt;br /&gt;
      cursor: &amp;quot;pointer&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
    signOutBtn.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      fetch(&amp;quot;https://erakh.com/api/auth/logout&amp;quot;, { method: &amp;quot;POST&amp;quot;, credentials: &amp;quot;include&amp;quot; })&lt;br /&gt;
        .then(function () { window.location.href = &amp;quot;https://erakh.com&amp;quot;; });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    dropdown.appendChild(emailDiv);&lt;br /&gt;
    dropdown.appendChild(profileLink);&lt;br /&gt;
    dropdown.appendChild(signOutBtn);&lt;br /&gt;
&lt;br /&gt;
    avatar.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      dropdown.style.display = dropdown.style.display === &amp;quot;none&amp;quot; ? &amp;quot;block&amp;quot; : &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
    document.addEventListener(&amp;quot;click&amp;quot;, function (e) {&lt;br /&gt;
      if (!profile.contains(e.target)) dropdown.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    profile.appendChild(avatar);&lt;br /&gt;
    profile.appendChild(dropdown);&lt;br /&gt;
    right.appendChild(profile);&lt;br /&gt;
&lt;br /&gt;
  } else {&lt;br /&gt;
    /* 비로그인 — Sign in */&lt;br /&gt;
    var loginBtn = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    loginBtn.href = &amp;quot;https://erakh.com/login?redirect=&amp;quot; + encodeURIComponent(window.location.href);&lt;br /&gt;
    loginBtn.textContent = &amp;quot;Sign in&amp;quot;;&lt;br /&gt;
    s(loginBtn, {&lt;br /&gt;
      fontFamily: &amp;quot;&#039;Inter&#039;, sans-serif&amp;quot;,&lt;br /&gt;
      fontSize: &amp;quot;0.8125rem&amp;quot;,&lt;br /&gt;
      fontWeight: &amp;quot;500&amp;quot;,&lt;br /&gt;
      color: &amp;quot;#2a2218&amp;quot;,&lt;br /&gt;
      textDecoration: &amp;quot;none&amp;quot;,&lt;br /&gt;
      padding: &amp;quot;0.4rem 1rem&amp;quot;,&lt;br /&gt;
      border: &amp;quot;1px solid #c8b99a&amp;quot;,&lt;br /&gt;
      background: &amp;quot;transparent&amp;quot;,&lt;br /&gt;
      cursor: &amp;quot;pointer&amp;quot;,&lt;br /&gt;
      textTransform: &amp;quot;none&amp;quot;,&lt;br /&gt;
      boxSizing: &amp;quot;border-box&amp;quot;,&lt;br /&gt;
      lineHeight: &amp;quot;1&amp;quot;&lt;br /&gt;
    });&lt;br /&gt;
    loginBtn.addEventListener(&amp;quot;mouseover&amp;quot;, function() {&lt;br /&gt;
      this.style.borderColor = &amp;quot;#c8a060&amp;quot;;&lt;br /&gt;
      this.style.background = &amp;quot;#f0ebe0&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
    loginBtn.addEventListener(&amp;quot;mouseout&amp;quot;, function() {&lt;br /&gt;
      this.style.borderColor = &amp;quot;#c8b99a&amp;quot;;&lt;br /&gt;
      this.style.background = &amp;quot;transparent&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
    right.appendChild(loginBtn);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  header.appendChild(left);&lt;br /&gt;
  header.appendChild(right);&lt;br /&gt;
  document.body.insertBefore(header, document.body.firstChild);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=6</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=6"/>
		<updated>2026-04-09T02:32:20Z</updated>

		<summary type="html">&lt;p&gt;Juoh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* =============================================&lt;br /&gt;
   ERAKH HEADER — MediaWiki:Common.js&lt;br /&gt;
   erakh.com Header.tsx와 동일한 디자인/역할&lt;br /&gt;
   ============================================= */&lt;br /&gt;
&lt;br /&gt;
(function () {&lt;br /&gt;
  /* --- 쿠키 읽기 --- */&lt;br /&gt;
  function getCookie(name) {&lt;br /&gt;
    var match = document.cookie.match(new RegExp(&amp;quot;(?:^|; )&amp;quot; + name + &amp;quot;=([^;]*)&amp;quot;));&lt;br /&gt;
    return match ? decodeURIComponent(match[1]) : null;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* --- 유저 정보 파싱 --- */&lt;br /&gt;
  var user = null;&lt;br /&gt;
  try {&lt;br /&gt;
    var raw = getCookie(&amp;quot;erakh_user&amp;quot;);&lt;br /&gt;
    if (raw) user = JSON.parse(raw);&lt;br /&gt;
  } catch (e) {}&lt;br /&gt;
&lt;br /&gt;
  /* --- CSS 주입 --- */&lt;br /&gt;
  var style = document.createElement(&amp;quot;style&amp;quot;);&lt;br /&gt;
  style.textContent = `&lt;br /&gt;
    .erakh-header {&lt;br /&gt;
      position: fixed;&lt;br /&gt;
      top: 0;&lt;br /&gt;
      left: 0;&lt;br /&gt;
      right: 0;&lt;br /&gt;
      z-index: 9999;&lt;br /&gt;
      width: 100%;&lt;br /&gt;
      background: var(--bg, #f9f6f0);&lt;br /&gt;
      border-bottom: 1px solid var(--beige-2, #e2d9c8);&lt;br /&gt;
      display: flex;&lt;br /&gt;
      align-items: center;&lt;br /&gt;
      justify-content: space-between;&lt;br /&gt;
      padding: 0 2rem;&lt;br /&gt;
      height: 56px;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-header-left {&lt;br /&gt;
      display: flex;&lt;br /&gt;
      align-items: center;&lt;br /&gt;
      gap: 1.75rem;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-logo {&lt;br /&gt;
      font-family: &#039;Cinzel&#039;, serif;&lt;br /&gt;
      font-size: 1.125rem;&lt;br /&gt;
      font-weight: 500;&lt;br /&gt;
      color: var(--ink, #2a2218);&lt;br /&gt;
      text-decoration: none;&lt;br /&gt;
      letter-spacing: 0.05em;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-nav a {&lt;br /&gt;
      font-family: &#039;EB Garamond&#039;, serif;&lt;br /&gt;
      font-size: 1rem;&lt;br /&gt;
      color: var(--ink-soft, #6b5e4e);&lt;br /&gt;
      text-decoration: none;&lt;br /&gt;
      transition: color 0.15s;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-nav a:hover {&lt;br /&gt;
      color: var(--ink, #2a2218);&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-nav a.active {&lt;br /&gt;
      color: var(--ink, #2a2218);&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-login-btn {&lt;br /&gt;
      font-family: &#039;Inter&#039;, sans-serif;&lt;br /&gt;
      font-size: 0.8125rem;&lt;br /&gt;
      font-weight: 500;&lt;br /&gt;
      color: var(--ink, #2a2218);&lt;br /&gt;
      text-decoration: none;&lt;br /&gt;
      padding: 0.4rem 1rem;&lt;br /&gt;
      border: 1px solid var(--beige-3, #c8b99a);&lt;br /&gt;
      background: transparent;&lt;br /&gt;
      transition: border-color 0.15s, background 0.15s;&lt;br /&gt;
      cursor: pointer;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-login-btn:hover {&lt;br /&gt;
      border-color: var(--gold, #c8a060);&lt;br /&gt;
      background: var(--beige-1, #f0ebe0);&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-profile {&lt;br /&gt;
      position: relative;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-avatar {&lt;br /&gt;
      width: 32px;&lt;br /&gt;
      height: 32px;&lt;br /&gt;
      border-radius: 50%;&lt;br /&gt;
      background: var(--beige-2, #e2d9c8);&lt;br /&gt;
      border: 1px solid var(--beige-3, #c8b99a);&lt;br /&gt;
      display: flex;&lt;br /&gt;
      align-items: center;&lt;br /&gt;
      justify-content: center;&lt;br /&gt;
      cursor: pointer;&lt;br /&gt;
      font-family: &#039;Cinzel&#039;, serif;&lt;br /&gt;
      font-size: 0.75rem;&lt;br /&gt;
      color: var(--ink, #2a2218);&lt;br /&gt;
      transition: border-color 0.15s;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-avatar:hover {&lt;br /&gt;
      border-color: var(--gold, #c8a060);&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-dropdown {&lt;br /&gt;
      position: absolute;&lt;br /&gt;
      top: calc(100% + 8px);&lt;br /&gt;
      right: 0;&lt;br /&gt;
      background: var(--bg, #f9f6f0);&lt;br /&gt;
      border: 1px solid var(--beige-2, #e2d9c8);&lt;br /&gt;
      min-width: 180px;&lt;br /&gt;
      padding: 0.5rem 0;&lt;br /&gt;
      box-shadow: 0 4px 16px rgba(0,0,0,0.06);&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-dropdown-email {&lt;br /&gt;
      padding: 0.5rem 1rem 0.75rem;&lt;br /&gt;
      font-family: &#039;EB Garamond&#039;, serif;&lt;br /&gt;
      font-size: 0.875rem;&lt;br /&gt;
      color: var(--ink-soft, #6b5e4e);&lt;br /&gt;
      border-bottom: 1px solid var(--beige-2, #e2d9c8);&lt;br /&gt;
      margin-bottom: 0.25rem;&lt;br /&gt;
      font-style: italic;&lt;br /&gt;
      word-break: break-all;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-dropdown-item {&lt;br /&gt;
      display: block;&lt;br /&gt;
      width: 100%;&lt;br /&gt;
      padding: 0.5rem 1rem;&lt;br /&gt;
      font-family: &#039;Inter&#039;, sans-serif;&lt;br /&gt;
      font-size: 0.8125rem;&lt;br /&gt;
      color: var(--ink, #2a2218);&lt;br /&gt;
      text-align: left;&lt;br /&gt;
      background: transparent;&lt;br /&gt;
      border: none;&lt;br /&gt;
      cursor: pointer;&lt;br /&gt;
      text-decoration: none;&lt;br /&gt;
      transition: background 0.1s;&lt;br /&gt;
      box-sizing: border-box;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-dropdown-item:hover {&lt;br /&gt;
      background: var(--beige-1, #f0ebe0);&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-dropdown-item.danger {&lt;br /&gt;
      color: #a04040;&lt;br /&gt;
    }&lt;br /&gt;
  `;&lt;br /&gt;
  document.head.appendChild(style);&lt;br /&gt;
&lt;br /&gt;
  /* --- 헤더 HTML 생성 --- */&lt;br /&gt;
  var header = document.createElement(&amp;quot;header&amp;quot;);&lt;br /&gt;
  header.className = &amp;quot;erakh-header&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  /* 좌측 */&lt;br /&gt;
  var left = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  left.className = &amp;quot;erakh-header-left&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  var logo = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    logo.href = &amp;quot;https://erakh.com&amp;quot;;&lt;br /&gt;
    logo.className = &amp;quot;erakh-logo&amp;quot;;&lt;br /&gt;
    logo.textContent = &amp;quot;Erakh Archive&amp;quot;;&lt;br /&gt;
    logo.style.cssText = &amp;quot;font-family:&#039;Cinzel&#039;,serif !important;font-size:1.125rem !important;font-weight:500 !important;color:#2a2218 !important;text-decoration:none !important;letter-spacing:0.05em !important;text-transform:none !important;font-variant:normal !important;font-variant-caps:normal !important;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  var nav = document.createElement(&amp;quot;nav&amp;quot;);&lt;br /&gt;
  nav.className = &amp;quot;erakh-nav&amp;quot;;&lt;br /&gt;
  var codexLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  codexLink.href = &amp;quot;https://codex.erakh.com&amp;quot;;&lt;br /&gt;
  codexLink.textContent = &amp;quot;Codex&amp;quot;;&lt;br /&gt;
  codexLink.className = &amp;quot;active&amp;quot;;&lt;br /&gt;
  nav.appendChild(codexLink);&lt;br /&gt;
&lt;br /&gt;
  left.appendChild(logo);&lt;br /&gt;
  left.appendChild(nav);&lt;br /&gt;
&lt;br /&gt;
  /* 우측 */&lt;br /&gt;
  var right = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  if (user &amp;amp;&amp;amp; user.email) {&lt;br /&gt;
    /* 로그인 상태 — 아바타 + 드롭다운 */&lt;br /&gt;
    var profile = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    profile.className = &amp;quot;erakh-profile&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    var avatar = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    avatar.className = &amp;quot;erakh-avatar&amp;quot;;&lt;br /&gt;
    avatar.textContent = user.email.slice(0, 1).toUpperCase();&lt;br /&gt;
&lt;br /&gt;
    var dropdown = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    dropdown.className = &amp;quot;erakh-dropdown&amp;quot;;&lt;br /&gt;
    dropdown.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    var emailDiv = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    emailDiv.className = &amp;quot;erakh-dropdown-email&amp;quot;;&lt;br /&gt;
    emailDiv.textContent = user.email;&lt;br /&gt;
&lt;br /&gt;
    var profileLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    profileLink.href = &amp;quot;https://erakh.com/profile&amp;quot;;&lt;br /&gt;
    profileLink.className = &amp;quot;erakh-dropdown-item&amp;quot;;&lt;br /&gt;
    profileLink.textContent = &amp;quot;Profile&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    var signOutBtn = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
    signOutBtn.className = &amp;quot;erakh-dropdown-item danger&amp;quot;;&lt;br /&gt;
    signOutBtn.textContent = &amp;quot;Sign out&amp;quot;;&lt;br /&gt;
    signOutBtn.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      fetch(&amp;quot;https://erakh.com/api/auth/logout&amp;quot;, { method: &amp;quot;POST&amp;quot;, credentials: &amp;quot;include&amp;quot; })&lt;br /&gt;
        .then(function () {&lt;br /&gt;
          window.location.href = &amp;quot;https://erakh.com&amp;quot;;&lt;br /&gt;
        });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    dropdown.appendChild(emailDiv);&lt;br /&gt;
    dropdown.appendChild(profileLink);&lt;br /&gt;
    dropdown.appendChild(signOutBtn);&lt;br /&gt;
&lt;br /&gt;
    avatar.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      dropdown.style.display = dropdown.style.display === &amp;quot;none&amp;quot; ? &amp;quot;block&amp;quot; : &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    document.addEventListener(&amp;quot;click&amp;quot;, function (e) {&lt;br /&gt;
      if (!profile.contains(e.target)) {&lt;br /&gt;
        dropdown.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    profile.appendChild(avatar);&lt;br /&gt;
    profile.appendChild(dropdown);&lt;br /&gt;
    right.appendChild(profile);&lt;br /&gt;
&lt;br /&gt;
  } else {&lt;br /&gt;
    /* 비로그인 상태 — Sign in 버튼 */&lt;br /&gt;
    var loginBtn = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    loginBtn.href = &amp;quot;https://erakh.com/login?redirect=&amp;quot; + encodeURIComponent(window.location.href);&lt;br /&gt;
    loginBtn.className = &amp;quot;erakh-login-btn&amp;quot;;&lt;br /&gt;
    loginBtn.textContent = &amp;quot;Sign in&amp;quot;;&lt;br /&gt;
    right.appendChild(loginBtn);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  header.appendChild(left);&lt;br /&gt;
  header.appendChild(right);&lt;br /&gt;
  document.body.insertBefore(header, document.body.firstChild);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.css&amp;diff=5</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.css&amp;diff=5"/>
		<updated>2026-04-09T02:29:11Z</updated>

		<summary type="html">&lt;p&gt;Juoh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;@import url(&#039;https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&amp;amp;family=EB+Garamond:ital,wght@0,400;0,500;1,400&amp;amp;display=swap&#039;);&lt;br /&gt;
&lt;br /&gt;
/* =============================================&lt;br /&gt;
   ERAKH CODEX — Common.css&lt;br /&gt;
   erakh.com 디자인 시스템 기준 (라이트 모드)&lt;br /&gt;
   ============================================= */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
  --bg:        #f9f6f0;&lt;br /&gt;
  --beige-1:   #f0ebe0;&lt;br /&gt;
  --beige-2:   #e2d9c8;&lt;br /&gt;
  --beige-3:   #c8b99a;&lt;br /&gt;
  --beige-4:   #a89070;&lt;br /&gt;
  --gold:      #c8a060;&lt;br /&gt;
  --gold-dark: #a07840;&lt;br /&gt;
  --ink:       #2a2218;&lt;br /&gt;
  --ink-soft:  #6b5e4e;&lt;br /&gt;
  --ink-muted: #9c8e80;&lt;br /&gt;
  --surface:   #ffffff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === Base === */&lt;br /&gt;
body {&lt;br /&gt;
  background-color: var(--bg) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 18px !important;&lt;br /&gt;
  line-height: 1.7 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 제목 === */&lt;br /&gt;
h1, h2, h3, h4, h5, h6,&lt;br /&gt;
.firstHeading, #firstHeading {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-weight: 500 !important;&lt;br /&gt;
  letter-spacing: 0.02em !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 링크 === */&lt;br /&gt;
a, a:visited {&lt;br /&gt;
  color: var(--gold-dark) !important;&lt;br /&gt;
  text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
a:hover {&lt;br /&gt;
  color: var(--gold) !important;&lt;br /&gt;
  text-decoration: underline !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 페이지 배경 === */&lt;br /&gt;
#mw-page-base,&lt;br /&gt;
#mw-head-base {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 본문 영역 === */&lt;br /&gt;
#content,&lt;br /&gt;
.mw-body {&lt;br /&gt;
  background-color: var(--surface) !important;&lt;br /&gt;
  border: 1px solid var(--beige-2) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 사이드바 === */&lt;br /&gt;
#mw-panel {&lt;br /&gt;
  background-color: transparent !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-portal h3,&lt;br /&gt;
#p-navigation h3,&lt;br /&gt;
#p-tb h3 {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-size: 10px !important;&lt;br /&gt;
  letter-spacing: 0.12em !important;&lt;br /&gt;
  text-transform: uppercase !important;&lt;br /&gt;
  color: var(--ink-muted) !important;&lt;br /&gt;
  border-bottom: 1px solid var(--beige-2) !important;&lt;br /&gt;
  padding-bottom: 4px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-portal ul li a,&lt;br /&gt;
#p-navigation ul li a,&lt;br /&gt;
#p-tb ul li a {&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 16px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-portal ul li a:hover,&lt;br /&gt;
#p-navigation ul li a:hover,&lt;br /&gt;
#p-tb ul li a:hover {&lt;br /&gt;
  color: var(--gold) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 헤더 / 탭 === */&lt;br /&gt;
#mw-head {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs a,&lt;br /&gt;
#p-namespaces ul li a,&lt;br /&gt;
#p-views ul li a {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-size: 12px !important;&lt;br /&gt;
  letter-spacing: 0.05em !important;&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li.selected a {&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 검색창 === */&lt;br /&gt;
#searchInput {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border: 1px solid var(--beige-3) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  border-radius: 4px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 카테고리 === */&lt;br /&gt;
#catlinks {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border: 1px solid var(--beige-2) !important;&lt;br /&gt;
  border-radius: 4px !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 푸터 === */&lt;br /&gt;
#footer {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border-top: 1px solid var(--beige-2) !important;&lt;br /&gt;
  color: var(--ink-muted) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 14px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#footer a {&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 위키테이블 === */&lt;br /&gt;
table.wikitable {&lt;br /&gt;
  background-color: var(--surface) !important;&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable th {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-weight: 500 !important;&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable td {&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 구분선 === */&lt;br /&gt;
hr {&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* =============================================&lt;br /&gt;
   LAYOUT — 기본 Vector UI 제거 + 풀width&lt;br /&gt;
   ============================================= */&lt;br /&gt;
&lt;br /&gt;
/* 기존 헤더/사이드바/로고 전부 숨김 */&lt;br /&gt;
#mw-head,&lt;br /&gt;
#mw-panel,&lt;br /&gt;
#p-logo,&lt;br /&gt;
#mw-navigation,&lt;br /&gt;
#mw-head-base,&lt;br /&gt;
#mw-page-base {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 본문 풀width */&lt;br /&gt;
#mw-page-base { display: none !important; }&lt;br /&gt;
&lt;br /&gt;
#content,&lt;br /&gt;
.mw-body {&lt;br /&gt;
  margin-left: 0 !important;&lt;br /&gt;
  margin-top: 0 !important;&lt;br /&gt;
  border-left: none !important;&lt;br /&gt;
  border-right: none !important;&lt;br /&gt;
  border-top: none !important;&lt;br /&gt;
  max-width: 860px !important;&lt;br /&gt;
  margin: 0 auto !important;&lt;br /&gt;
  padding: 2rem 2rem 4rem !important;&lt;br /&gt;
  background: var(--surface) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
  margin-top: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 전체 페이지 배경 */&lt;br /&gt;
body {&lt;br /&gt;
  padding-top: 56px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 헤더 예외 처리 === */&lt;br /&gt;
.erakh-logo,&lt;br /&gt;
.erakh-logo:visited {&lt;br /&gt;
  color: var(--ink, #2a2218) !important;&lt;br /&gt;
  text-transform: none !important;&lt;br /&gt;
  font-variant: normal !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.erakh-nav a,&lt;br /&gt;
.erakh-nav a:visited {&lt;br /&gt;
  color: var(--ink-soft, #6b5e4e) !important;&lt;br /&gt;
  text-transform: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.erakh-nav a:hover {&lt;br /&gt;
  color: var(--ink, #2a2218) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.erakh-header {&lt;br /&gt;
  overflow: visible !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.erakh-login-btn,&lt;br /&gt;
.erakh-login-btn:visited {&lt;br /&gt;
  color: var(--ink, #2a2218) !important;&lt;br /&gt;
  text-transform: none !important;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=4</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.js&amp;diff=4"/>
		<updated>2026-04-09T02:22:52Z</updated>

		<summary type="html">&lt;p&gt;Juoh: Erakh header injection&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* =============================================&lt;br /&gt;
   ERAKH HEADER — MediaWiki:Common.js&lt;br /&gt;
   erakh.com Header.tsx와 동일한 디자인/역할&lt;br /&gt;
   ============================================= */&lt;br /&gt;
&lt;br /&gt;
(function () {&lt;br /&gt;
  /* --- 쿠키 읽기 --- */&lt;br /&gt;
  function getCookie(name) {&lt;br /&gt;
    var match = document.cookie.match(new RegExp(&amp;quot;(?:^|; )&amp;quot; + name + &amp;quot;=([^;]*)&amp;quot;));&lt;br /&gt;
    return match ? decodeURIComponent(match[1]) : null;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* --- 유저 정보 파싱 --- */&lt;br /&gt;
  var user = null;&lt;br /&gt;
  try {&lt;br /&gt;
    var raw = getCookie(&amp;quot;erakh_user&amp;quot;);&lt;br /&gt;
    if (raw) user = JSON.parse(raw);&lt;br /&gt;
  } catch (e) {}&lt;br /&gt;
&lt;br /&gt;
  /* --- CSS 주입 --- */&lt;br /&gt;
  var style = document.createElement(&amp;quot;style&amp;quot;);&lt;br /&gt;
  style.textContent = `&lt;br /&gt;
    .erakh-header {&lt;br /&gt;
      position: fixed;&lt;br /&gt;
      top: 0;&lt;br /&gt;
      left: 0;&lt;br /&gt;
      right: 0;&lt;br /&gt;
      z-index: 9999;&lt;br /&gt;
      width: 100%;&lt;br /&gt;
      background: var(--bg, #f9f6f0);&lt;br /&gt;
      border-bottom: 1px solid var(--beige-2, #e2d9c8);&lt;br /&gt;
      display: flex;&lt;br /&gt;
      align-items: center;&lt;br /&gt;
      justify-content: space-between;&lt;br /&gt;
      padding: 0 2rem;&lt;br /&gt;
      height: 56px;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-header-left {&lt;br /&gt;
      display: flex;&lt;br /&gt;
      align-items: center;&lt;br /&gt;
      gap: 1.75rem;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-logo {&lt;br /&gt;
      font-family: &#039;Cinzel&#039;, serif;&lt;br /&gt;
      font-size: 1.125rem;&lt;br /&gt;
      font-weight: 500;&lt;br /&gt;
      color: var(--ink, #2a2218);&lt;br /&gt;
      text-decoration: none;&lt;br /&gt;
      letter-spacing: 0.05em;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-nav a {&lt;br /&gt;
      font-family: &#039;EB Garamond&#039;, serif;&lt;br /&gt;
      font-size: 1rem;&lt;br /&gt;
      color: var(--ink-soft, #6b5e4e);&lt;br /&gt;
      text-decoration: none;&lt;br /&gt;
      transition: color 0.15s;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-nav a:hover {&lt;br /&gt;
      color: var(--ink, #2a2218);&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-nav a.active {&lt;br /&gt;
      color: var(--ink, #2a2218);&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-login-btn {&lt;br /&gt;
      font-family: &#039;Inter&#039;, sans-serif;&lt;br /&gt;
      font-size: 0.8125rem;&lt;br /&gt;
      font-weight: 500;&lt;br /&gt;
      color: var(--ink, #2a2218);&lt;br /&gt;
      text-decoration: none;&lt;br /&gt;
      padding: 0.4rem 1rem;&lt;br /&gt;
      border: 1px solid var(--beige-3, #c8b99a);&lt;br /&gt;
      background: transparent;&lt;br /&gt;
      transition: border-color 0.15s, background 0.15s;&lt;br /&gt;
      cursor: pointer;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-login-btn:hover {&lt;br /&gt;
      border-color: var(--gold, #c8a060);&lt;br /&gt;
      background: var(--beige-1, #f0ebe0);&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-profile {&lt;br /&gt;
      position: relative;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-avatar {&lt;br /&gt;
      width: 32px;&lt;br /&gt;
      height: 32px;&lt;br /&gt;
      border-radius: 50%;&lt;br /&gt;
      background: var(--beige-2, #e2d9c8);&lt;br /&gt;
      border: 1px solid var(--beige-3, #c8b99a);&lt;br /&gt;
      display: flex;&lt;br /&gt;
      align-items: center;&lt;br /&gt;
      justify-content: center;&lt;br /&gt;
      cursor: pointer;&lt;br /&gt;
      font-family: &#039;Cinzel&#039;, serif;&lt;br /&gt;
      font-size: 0.75rem;&lt;br /&gt;
      color: var(--ink, #2a2218);&lt;br /&gt;
      transition: border-color 0.15s;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-avatar:hover {&lt;br /&gt;
      border-color: var(--gold, #c8a060);&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-dropdown {&lt;br /&gt;
      position: absolute;&lt;br /&gt;
      top: calc(100% + 8px);&lt;br /&gt;
      right: 0;&lt;br /&gt;
      background: var(--bg, #f9f6f0);&lt;br /&gt;
      border: 1px solid var(--beige-2, #e2d9c8);&lt;br /&gt;
      min-width: 180px;&lt;br /&gt;
      padding: 0.5rem 0;&lt;br /&gt;
      box-shadow: 0 4px 16px rgba(0,0,0,0.06);&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-dropdown-email {&lt;br /&gt;
      padding: 0.5rem 1rem 0.75rem;&lt;br /&gt;
      font-family: &#039;EB Garamond&#039;, serif;&lt;br /&gt;
      font-size: 0.875rem;&lt;br /&gt;
      color: var(--ink-soft, #6b5e4e);&lt;br /&gt;
      border-bottom: 1px solid var(--beige-2, #e2d9c8);&lt;br /&gt;
      margin-bottom: 0.25rem;&lt;br /&gt;
      font-style: italic;&lt;br /&gt;
      word-break: break-all;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-dropdown-item {&lt;br /&gt;
      display: block;&lt;br /&gt;
      width: 100%;&lt;br /&gt;
      padding: 0.5rem 1rem;&lt;br /&gt;
      font-family: &#039;Inter&#039;, sans-serif;&lt;br /&gt;
      font-size: 0.8125rem;&lt;br /&gt;
      color: var(--ink, #2a2218);&lt;br /&gt;
      text-align: left;&lt;br /&gt;
      background: transparent;&lt;br /&gt;
      border: none;&lt;br /&gt;
      cursor: pointer;&lt;br /&gt;
      text-decoration: none;&lt;br /&gt;
      transition: background 0.1s;&lt;br /&gt;
      box-sizing: border-box;&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-dropdown-item:hover {&lt;br /&gt;
      background: var(--beige-1, #f0ebe0);&lt;br /&gt;
    }&lt;br /&gt;
    .erakh-dropdown-item.danger {&lt;br /&gt;
      color: #a04040;&lt;br /&gt;
    }&lt;br /&gt;
  `;&lt;br /&gt;
  document.head.appendChild(style);&lt;br /&gt;
&lt;br /&gt;
  /* --- 헤더 HTML 생성 --- */&lt;br /&gt;
  var header = document.createElement(&amp;quot;header&amp;quot;);&lt;br /&gt;
  header.className = &amp;quot;erakh-header&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  /* 좌측 */&lt;br /&gt;
  var left = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
  left.className = &amp;quot;erakh-header-left&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  var logo = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  logo.href = &amp;quot;https://erakh.com&amp;quot;;&lt;br /&gt;
  logo.className = &amp;quot;erakh-logo&amp;quot;;&lt;br /&gt;
  logo.textContent = &amp;quot;Erakh Archive&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  var nav = document.createElement(&amp;quot;nav&amp;quot;);&lt;br /&gt;
  nav.className = &amp;quot;erakh-nav&amp;quot;;&lt;br /&gt;
  var codexLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
  codexLink.href = &amp;quot;https://codex.erakh.com&amp;quot;;&lt;br /&gt;
  codexLink.textContent = &amp;quot;Codex&amp;quot;;&lt;br /&gt;
  codexLink.className = &amp;quot;active&amp;quot;;&lt;br /&gt;
  nav.appendChild(codexLink);&lt;br /&gt;
&lt;br /&gt;
  left.appendChild(logo);&lt;br /&gt;
  left.appendChild(nav);&lt;br /&gt;
&lt;br /&gt;
  /* 우측 */&lt;br /&gt;
  var right = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  if (user &amp;amp;&amp;amp; user.email) {&lt;br /&gt;
    /* 로그인 상태 — 아바타 + 드롭다운 */&lt;br /&gt;
    var profile = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    profile.className = &amp;quot;erakh-profile&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    var avatar = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    avatar.className = &amp;quot;erakh-avatar&amp;quot;;&lt;br /&gt;
    avatar.textContent = user.email.slice(0, 1).toUpperCase();&lt;br /&gt;
&lt;br /&gt;
    var dropdown = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    dropdown.className = &amp;quot;erakh-dropdown&amp;quot;;&lt;br /&gt;
    dropdown.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    var emailDiv = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    emailDiv.className = &amp;quot;erakh-dropdown-email&amp;quot;;&lt;br /&gt;
    emailDiv.textContent = user.email;&lt;br /&gt;
&lt;br /&gt;
    var profileLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    profileLink.href = &amp;quot;https://erakh.com/profile&amp;quot;;&lt;br /&gt;
    profileLink.className = &amp;quot;erakh-dropdown-item&amp;quot;;&lt;br /&gt;
    profileLink.textContent = &amp;quot;Profile&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    var signOutBtn = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
    signOutBtn.className = &amp;quot;erakh-dropdown-item danger&amp;quot;;&lt;br /&gt;
    signOutBtn.textContent = &amp;quot;Sign out&amp;quot;;&lt;br /&gt;
    signOutBtn.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      fetch(&amp;quot;https://erakh.com/api/auth/logout&amp;quot;, { method: &amp;quot;POST&amp;quot;, credentials: &amp;quot;include&amp;quot; })&lt;br /&gt;
        .then(function () {&lt;br /&gt;
          window.location.href = &amp;quot;https://erakh.com&amp;quot;;&lt;br /&gt;
        });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    dropdown.appendChild(emailDiv);&lt;br /&gt;
    dropdown.appendChild(profileLink);&lt;br /&gt;
    dropdown.appendChild(signOutBtn);&lt;br /&gt;
&lt;br /&gt;
    avatar.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
      dropdown.style.display = dropdown.style.display === &amp;quot;none&amp;quot; ? &amp;quot;block&amp;quot; : &amp;quot;none&amp;quot;;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    document.addEventListener(&amp;quot;click&amp;quot;, function (e) {&lt;br /&gt;
      if (!profile.contains(e.target)) {&lt;br /&gt;
        dropdown.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    profile.appendChild(avatar);&lt;br /&gt;
    profile.appendChild(dropdown);&lt;br /&gt;
    right.appendChild(profile);&lt;br /&gt;
&lt;br /&gt;
  } else {&lt;br /&gt;
    /* 비로그인 상태 — Sign in 버튼 */&lt;br /&gt;
    var loginBtn = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
    loginBtn.href = &amp;quot;https://erakh.com/login?redirect=&amp;quot; + encodeURIComponent(window.location.href);&lt;br /&gt;
    loginBtn.className = &amp;quot;erakh-login-btn&amp;quot;;&lt;br /&gt;
    loginBtn.textContent = &amp;quot;Sign in&amp;quot;;&lt;br /&gt;
    right.appendChild(loginBtn);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  header.appendChild(left);&lt;br /&gt;
  header.appendChild(right);&lt;br /&gt;
  document.body.insertBefore(header, document.body.firstChild);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.css&amp;diff=3</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.css&amp;diff=3"/>
		<updated>2026-04-09T02:21:47Z</updated>

		<summary type="html">&lt;p&gt;Juoh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;@import url(&#039;https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&amp;amp;family=EB+Garamond:ital,wght@0,400;0,500;1,400&amp;amp;display=swap&#039;);&lt;br /&gt;
&lt;br /&gt;
/* =============================================&lt;br /&gt;
   ERAKH CODEX — Common.css&lt;br /&gt;
   erakh.com 디자인 시스템 기준 (라이트 모드)&lt;br /&gt;
   ============================================= */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
  --bg:        #f9f6f0;&lt;br /&gt;
  --beige-1:   #f0ebe0;&lt;br /&gt;
  --beige-2:   #e2d9c8;&lt;br /&gt;
  --beige-3:   #c8b99a;&lt;br /&gt;
  --beige-4:   #a89070;&lt;br /&gt;
  --gold:      #c8a060;&lt;br /&gt;
  --gold-dark: #a07840;&lt;br /&gt;
  --ink:       #2a2218;&lt;br /&gt;
  --ink-soft:  #6b5e4e;&lt;br /&gt;
  --ink-muted: #9c8e80;&lt;br /&gt;
  --surface:   #ffffff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === Base === */&lt;br /&gt;
body {&lt;br /&gt;
  background-color: var(--bg) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 18px !important;&lt;br /&gt;
  line-height: 1.7 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 제목 === */&lt;br /&gt;
h1, h2, h3, h4, h5, h6,&lt;br /&gt;
.firstHeading, #firstHeading {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-weight: 500 !important;&lt;br /&gt;
  letter-spacing: 0.02em !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 링크 === */&lt;br /&gt;
a, a:visited {&lt;br /&gt;
  color: var(--gold-dark) !important;&lt;br /&gt;
  text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
a:hover {&lt;br /&gt;
  color: var(--gold) !important;&lt;br /&gt;
  text-decoration: underline !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 페이지 배경 === */&lt;br /&gt;
#mw-page-base,&lt;br /&gt;
#mw-head-base {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 본문 영역 === */&lt;br /&gt;
#content,&lt;br /&gt;
.mw-body {&lt;br /&gt;
  background-color: var(--surface) !important;&lt;br /&gt;
  border: 1px solid var(--beige-2) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 사이드바 === */&lt;br /&gt;
#mw-panel {&lt;br /&gt;
  background-color: transparent !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-portal h3,&lt;br /&gt;
#p-navigation h3,&lt;br /&gt;
#p-tb h3 {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-size: 10px !important;&lt;br /&gt;
  letter-spacing: 0.12em !important;&lt;br /&gt;
  text-transform: uppercase !important;&lt;br /&gt;
  color: var(--ink-muted) !important;&lt;br /&gt;
  border-bottom: 1px solid var(--beige-2) !important;&lt;br /&gt;
  padding-bottom: 4px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-portal ul li a,&lt;br /&gt;
#p-navigation ul li a,&lt;br /&gt;
#p-tb ul li a {&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 16px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-portal ul li a:hover,&lt;br /&gt;
#p-navigation ul li a:hover,&lt;br /&gt;
#p-tb ul li a:hover {&lt;br /&gt;
  color: var(--gold) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 헤더 / 탭 === */&lt;br /&gt;
#mw-head {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs a,&lt;br /&gt;
#p-namespaces ul li a,&lt;br /&gt;
#p-views ul li a {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-size: 12px !important;&lt;br /&gt;
  letter-spacing: 0.05em !important;&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li.selected a {&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 검색창 === */&lt;br /&gt;
#searchInput {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border: 1px solid var(--beige-3) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  border-radius: 4px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 카테고리 === */&lt;br /&gt;
#catlinks {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border: 1px solid var(--beige-2) !important;&lt;br /&gt;
  border-radius: 4px !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 푸터 === */&lt;br /&gt;
#footer {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border-top: 1px solid var(--beige-2) !important;&lt;br /&gt;
  color: var(--ink-muted) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 14px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#footer a {&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 위키테이블 === */&lt;br /&gt;
table.wikitable {&lt;br /&gt;
  background-color: var(--surface) !important;&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable th {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-weight: 500 !important;&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable td {&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 구분선 === */&lt;br /&gt;
hr {&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* =============================================&lt;br /&gt;
   LAYOUT — 기본 Vector UI 제거 + 풀width&lt;br /&gt;
   ============================================= */&lt;br /&gt;
&lt;br /&gt;
/* 기존 헤더/사이드바/로고 전부 숨김 */&lt;br /&gt;
#mw-head,&lt;br /&gt;
#mw-panel,&lt;br /&gt;
#p-logo,&lt;br /&gt;
#mw-navigation,&lt;br /&gt;
#mw-head-base,&lt;br /&gt;
#mw-page-base {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 본문 풀width */&lt;br /&gt;
#mw-page-base { display: none !important; }&lt;br /&gt;
&lt;br /&gt;
#content,&lt;br /&gt;
.mw-body {&lt;br /&gt;
  margin-left: 0 !important;&lt;br /&gt;
  margin-top: 0 !important;&lt;br /&gt;
  border-left: none !important;&lt;br /&gt;
  border-right: none !important;&lt;br /&gt;
  border-top: none !important;&lt;br /&gt;
  max-width: 860px !important;&lt;br /&gt;
  margin: 0 auto !important;&lt;br /&gt;
  padding: 2rem 2rem 4rem !important;&lt;br /&gt;
  background: var(--surface) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
  margin-top: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 전체 페이지 배경 */&lt;br /&gt;
body {&lt;br /&gt;
  padding-top: 56px !important;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
	<entry>
		<id>https://codex.erakh.com/index.php?title=MediaWiki:Common.css&amp;diff=2</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://codex.erakh.com/index.php?title=MediaWiki:Common.css&amp;diff=2"/>
		<updated>2026-04-09T02:04:39Z</updated>

		<summary type="html">&lt;p&gt;Juoh: Erakh design system - light mode&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;@import url(&#039;https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&amp;amp;family=EB+Garamond:ital,wght@0,400;0,500;1,400&amp;amp;display=swap&#039;);&lt;br /&gt;
&lt;br /&gt;
/* =============================================&lt;br /&gt;
   ERAKH CODEX — Common.css&lt;br /&gt;
   erakh.com 디자인 시스템 기준 (라이트 모드)&lt;br /&gt;
   ============================================= */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
  --bg:        #f9f6f0;&lt;br /&gt;
  --beige-1:   #f0ebe0;&lt;br /&gt;
  --beige-2:   #e2d9c8;&lt;br /&gt;
  --beige-3:   #c8b99a;&lt;br /&gt;
  --beige-4:   #a89070;&lt;br /&gt;
  --gold:      #c8a060;&lt;br /&gt;
  --gold-dark: #a07840;&lt;br /&gt;
  --ink:       #2a2218;&lt;br /&gt;
  --ink-soft:  #6b5e4e;&lt;br /&gt;
  --ink-muted: #9c8e80;&lt;br /&gt;
  --surface:   #ffffff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === Base === */&lt;br /&gt;
body {&lt;br /&gt;
  background-color: var(--bg) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 18px !important;&lt;br /&gt;
  line-height: 1.7 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 제목 === */&lt;br /&gt;
h1, h2, h3, h4, h5, h6,&lt;br /&gt;
.firstHeading, #firstHeading {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-weight: 500 !important;&lt;br /&gt;
  letter-spacing: 0.02em !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 링크 === */&lt;br /&gt;
a, a:visited {&lt;br /&gt;
  color: var(--gold-dark) !important;&lt;br /&gt;
  text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
a:hover {&lt;br /&gt;
  color: var(--gold) !important;&lt;br /&gt;
  text-decoration: underline !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 페이지 배경 === */&lt;br /&gt;
#mw-page-base,&lt;br /&gt;
#mw-head-base {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 본문 영역 === */&lt;br /&gt;
#content,&lt;br /&gt;
.mw-body {&lt;br /&gt;
  background-color: var(--surface) !important;&lt;br /&gt;
  border: 1px solid var(--beige-2) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 사이드바 === */&lt;br /&gt;
#mw-panel {&lt;br /&gt;
  background-color: transparent !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-portal h3,&lt;br /&gt;
#p-navigation h3,&lt;br /&gt;
#p-tb h3 {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-size: 10px !important;&lt;br /&gt;
  letter-spacing: 0.12em !important;&lt;br /&gt;
  text-transform: uppercase !important;&lt;br /&gt;
  color: var(--ink-muted) !important;&lt;br /&gt;
  border-bottom: 1px solid var(--beige-2) !important;&lt;br /&gt;
  padding-bottom: 4px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-portal ul li a,&lt;br /&gt;
#p-navigation ul li a,&lt;br /&gt;
#p-tb ul li a {&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 16px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-portal ul li a:hover,&lt;br /&gt;
#p-navigation ul li a:hover,&lt;br /&gt;
#p-tb ul li a:hover {&lt;br /&gt;
  color: var(--gold) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 헤더 / 탭 === */&lt;br /&gt;
#mw-head {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.vector-menu-tabs a,&lt;br /&gt;
#p-namespaces ul li a,&lt;br /&gt;
#p-views ul li a {&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-size: 12px !important;&lt;br /&gt;
  letter-spacing: 0.05em !important;&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li.selected a {&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 검색창 === */&lt;br /&gt;
#searchInput {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border: 1px solid var(--beige-3) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  border-radius: 4px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 카테고리 === */&lt;br /&gt;
#catlinks {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border: 1px solid var(--beige-2) !important;&lt;br /&gt;
  border-radius: 4px !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 푸터 === */&lt;br /&gt;
#footer {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  border-top: 1px solid var(--beige-2) !important;&lt;br /&gt;
  color: var(--ink-muted) !important;&lt;br /&gt;
  font-family: &#039;EB Garamond&#039;, Georgia, serif !important;&lt;br /&gt;
  font-size: 14px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#footer a {&lt;br /&gt;
  color: var(--ink-soft) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 위키테이블 === */&lt;br /&gt;
table.wikitable {&lt;br /&gt;
  background-color: var(--surface) !important;&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable th {&lt;br /&gt;
  background-color: var(--beige-1) !important;&lt;br /&gt;
  color: var(--ink) !important;&lt;br /&gt;
  font-family: &#039;Cinzel&#039;, serif !important;&lt;br /&gt;
  font-weight: 500 !important;&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.wikitable td {&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* === 구분선 === */&lt;br /&gt;
hr {&lt;br /&gt;
  border-color: var(--beige-2) !important;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Juoh</name></author>
	</entry>
</feed>