/* Shared switch. Original page styling is untouched outside this control. */
.site-header-controls { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
html[data-theme="wiki"] #box-1:has(.site-title-art) {
  position: relative;
  overflow: hidden;
  min-height: 180px !important;
  padding-right: calc(clamp(110px, 24%, 200px) + 20px) !important;
}
#box-1 > .site-title-art { display: none; }
html[data-theme="wiki"] #box-1 > .site-title-art {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: clamp(110px, 24%, 200px);
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center top;
}
#top-bar .sfx-toggle {
  position: static;
  inset: auto;
  flex: 0 0 auto;
  min-height: 35px;
  padding: 6px 10px;
  font: 14px/1.5 Arial, sans-serif;
}
.site-appearance {
  position: relative;
  z-index: 19;
  flex: 0 0 auto;
  width: auto;
  padding: 6px 10px;
  color: #f8f9fa;
  background: #14171c;
  border: 1px solid #72777d;
  font: 14px/1.5 Arial, sans-serif;
  text-shadow: none;
  box-shadow: 0 2px 8px #0003;
}
.site-appearance summary { cursor: pointer; font-weight: bold; }
.site-appearance fieldset { position: absolute; top: calc(100% + 8px); right: 0; width: 208px; max-width: calc(100vw - 24px); border: 1px solid #72777d; padding: 14px; margin: 0; min-width: 0; background: #14171c; }
.site-appearance legend { width: 100%; padding-bottom: 5px; margin-bottom: 8px; border-bottom: 1px solid #72777d; font-size: 13px; }
.site-appearance label { display: flex; align-items: center; gap: 8px; padding: 7px 0; cursor: pointer; }
.site-appearance input { width: 17px; height: 17px; margin: 0; accent-color: #36c; flex-shrink: 0; }
.site-appearance :focus-visible { outline: 2px solid #36c; outline-offset: 4px; }

html[data-theme="wiki"] {
  color-scheme: light;
  background: #f8f9fa;
  --journal-line: #a2a9b1;
  --journal-theme: #36c;
  --journal-category-color: #36c;
  --journal-category-ink: #202122;
  --journal-bg: #fff;
  --journal-toc-paper: #f8f9fa;
  --journal-toc-ink: #202122;
  --journal-toc-rule: #c8ccd1;
}
html[data-theme="wiki"] body {
  color: #202122 !important;
  background: #fff !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 16px;
  line-height: 1.6;
  min-height: 100vh !important;
  max-width: 1600px;
  margin: 0 auto;
  padding-bottom: 0;
  text-shadow: none !important;
}
html[data-theme="wiki"] body *,
html[data-theme="wiki"] body *::before,
html[data-theme="wiki"] body *::after {
  text-shadow: none !important;
  box-shadow: none !important;
  animation: none !important;
}
html[data-theme="wiki"] body::before,
html[data-theme="wiki"] body::after,
html[data-theme="wiki"] :is(.stars-bottom, .personal-grid, .blog-grid, .error-grid, .projects-panel-shadow),
html[data-theme="wiki"] :is(.about-button, .blog-entry-button, .project-item, .links-box, .useful-link, .support-box, .link-category-button)::before,
html[data-theme="wiki"] :is(.about-button, .blog-entry-button, .project-item, .links-box, .useful-link, .support-box, .link-category-button)::after,
html[data-theme="wiki"] .notification-ok::before,
html[data-theme="wiki"] .notification-ok::after { display: none !important; }
html[data-theme="wiki"] body :is(p, li, span, strong, em, label) { color: inherit; }
html[data-theme="wiki"] a,
html[data-theme="wiki"] .intro-link { color: #36c !important; text-decoration: none; }
html[data-theme="wiki"] a:hover,
html[data-theme="wiki"] .intro-link:hover { text-decoration: underline; }
html[data-theme="wiki"] :is(a, button, input, select, summary):focus-visible { outline: 2px solid #36c !important; outline-offset: 3px; }
html[data-theme="wiki"] :is(h1, h2, h3) { color: #202122 !important; }
html[data-theme="wiki"] .gradient-text {
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
  color: #202122 !important;
}
html[data-theme="wiki"] #top-bar {
  position: relative !important;
  inset: auto !important;
  width: auto !important;
  min-height: 64px;
  margin: 0 28px;
  padding: 12px 0 !important;
  border-bottom: 1px solid #a2a9b1;
  background: #fff !important;
  flex-wrap: wrap;
  gap: 12px 22px;
}
html[data-theme="wiki"] .nav-item {
  font: 14px/1.4 Arial, sans-serif !important;
  letter-spacing: normal !important;
  color: #36c !important;
}
html[data-theme="wiki"] .nav-text { color: #54595d !important; }
html[data-theme="wiki"] .music-player {
  position: relative !important;
  top: auto !important;
  width: auto !important;
  margin: 0 28px;
  background: #f8f9fa !important;
  color: #202122 !important;
  border: 0 !important;
  border-bottom: 1px solid #c8ccd1 !important;
  font: 13px/1.4 Arial, sans-serif !important;
  --music-theme: #36c;
  --music-bg: #f8f9fa;
}
html[data-theme="wiki"] :is(.music-control, .music-track-select, .sfx-toggle) { color: #202122 !important; filter: none !important; }
html[data-theme="wiki"] :is(input, select, textarea) { color: #202122; background-color: #fff; accent-color: #36c; }
html[data-theme="wiki"] #page-grid {
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  padding: 24px 28px 36px !important;
  gap: 14px;
}
html[data-theme="wiki"] #page-grid:has(> .page-column) {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  align-items: start;
}
html[data-theme="wiki"] .page-column { display: contents; }
html[data-theme="wiki"] :is(.site-box, .box-content, .description-text, .description-list, .intro-subtext) {
  color: #202122 !important;
  font-family: Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
}
html[data-theme="wiki"] .site-box {
  --wiki-panel: #f5faff;
  --wiki-heading: #cee0f2;
  --box-border-color: #a3b0bf !important;
  border: 1px solid #c8ccd1;
  padding: 12px;
  background: var(--wiki-panel) !important;
  min-height: 0 !important;
}
html[data-theme="wiki"] #box-1 {
  grid-column: 1 / -1;
  grid-row: 1;
  padding: 24px 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: #f8f9fa !important;
}
html[data-theme="wiki"] #box-1 .intro-title { font: 32px/1.3 Georgia, 'Times New Roman', serif; }
html[data-theme="wiki"] #box-1 .intro-subtext { font-size: 14px; }
html[data-theme="wiki"] #box-2 { grid-column: 1; grid-row: 2; --wiki-panel: #f5fffa; --wiki-heading: #cef2e0; }
html[data-theme="wiki"] #box-3 { grid-column: 2; grid-row: 2; }
html[data-theme="wiki"] #box-7 { grid-column: 1; grid-row: 3; --wiki-panel: #f5fffa; --wiki-heading: #cef2e0; }
html[data-theme="wiki"] #box-4 { grid-column: 2; grid-row: 3; }
html[data-theme="wiki"] #box-6 { grid-column: 1; grid-row: 4; --wiki-panel: #fffaf5; --wiki-heading: #f2e0ce; }
html[data-theme="wiki"] #box-5 { grid-column: 2; grid-row: 4; --wiki-panel: #faf5ff; --wiki-heading: #ddcef2; }
html[data-theme="wiki"] .box-title {
  width: 100%;
  margin: 0 0 12px;
  padding: 6px 8px;
  border: 1px solid #a3b0bf;
  background: var(--wiki-heading);
  text-align: left;
  font: bold 18px/1.35 Arial, sans-serif;
}
html[data-theme="wiki"] .description-list { margin: 10px 0; padding-left: 24px; }
html[data-theme="wiki"] .description-list li { padding-left: 0; }
html[data-theme="wiki"] .about-button-grid { gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
html[data-theme="wiki"] .about-button {
  min-height: 44px;
  padding: 8px 10px;
  color: #36c !important;
  background: #fff !important;
  border: 1px solid #a2a9b1;
  font: 15px/1.4 Arial, sans-serif;
  transform: none !important;
}
html[data-theme="wiki"] .about-button:hover { background: #eaecf0 !important; }
html[data-theme="wiki"] .button-icon { width: 24px; height: 24px; object-fit: contain; filter: invert(1); }
html[data-theme="wiki"] :is(.blog-entry-button, .project-item) {
  min-height: 0;
  background: #fff !important;
  color: #202122;
  border: 1px solid #c8ccd1;
  padding: 12px !important;
  font-size: 16px;
  transform: none !important;
}
html[data-theme="wiki"] :is(.blog-entry-title, .project-title) { color: #36c !important; font-size: 17px; }
html[data-theme="wiki"] :is(.blog-entry-date, .blog-entry-meta, .project-meta) { color: #54595d !important; font-size: 13px; }
html[data-theme="wiki"] :is(.personal-textbox, .blog-textbox, .projects-textbox, .support-box, .journal-box, .links-box, .fft-panel) {
  background: #fff !important;
  color: #202122 !important;
  border: 1px solid #a2a9b1 !important;
  border-image: none !important;
  min-height: 0 !important;
  padding: 20px;
  font-size: 16px;
  line-height: 1.6;
  max-width: 100%;
}
html[data-theme="wiki"] :is(.personal-panel, .blog-panel, .projects-panel, .journal-content) { min-height: 0 !important; }
html[data-theme="wiki"] :is(.projects-title, .blog-title, .support-box-title, .journal-content-title, .links-box-title) {
  width: 100%;
  padding: 0 0 8px;
  margin: 0 0 18px;
  border-bottom: 1px solid #a2a9b1;
  color: #202122 !important;
  font: normal 28px/1.3 Georgia, serif;
  text-align: left;
}
html[data-theme="wiki"] #page-grid:has(> .links-box) {
  grid-template-columns: minmax(160px, .7fr) minmax(220px, 1fr) minmax(260px, 1.35fr);
}
html[data-theme="wiki"] .links-box { padding: 16px; }
html[data-theme="wiki"] .links-box-scroll { max-height: 65vh; }
html[data-theme="wiki"] .link-category-button,
html[data-theme="wiki"] .useful-link {
  color: #36c !important;
  background: #fff !important;
  border: 1px solid #c8ccd1 !important;
  border-image: none !important;
  transform: none !important;
  padding: 10px !important;
  font-size: 14px;
  min-height: 0;
}
html[data-theme="wiki"] .link-category-button.is-active,
html[data-theme="wiki"] .link-category-button:hover,
html[data-theme="wiki"] .useful-link:hover { background: #eaf3ff !important; }
html[data-theme="wiki"] .useful-link-title { color: #36c !important; font-size: 16px; }
html[data-theme="wiki"] :is(.useful-link-description, .link-details-description, .link-list-empty, .links-footer-note, .link-preview-frame) {
  color: #54595d !important;
  font-size: 14px;
  background-color: transparent !important;
}
html[data-theme="wiki"] .links-footer-note { position: static; width: auto; padding: 16px 28px; }
html[data-theme="wiki"] .link-visit-button { background: #36c !important; color: #fff !important; border: 1px solid #36c !important; }
html[data-theme="wiki"] .journal-toc { background: #f8f9fa; color: #202122; }
html[data-theme="wiki"] .journal-tab { color: #36c !important; }
html[data-theme="wiki"] .journal-tab::before { background: #f8f9fa !important; border: 1px solid #a2a9b1 !important; transform: none; }
html[data-theme="wiki"] .journal-tab[aria-selected="true"]::before { background: #eaf3ff !important; border-bottom: 3px solid #36c !important; }
html[data-theme="wiki"] :is(.journal-content-body, .journal-toc-title, .journal-toc-link) { color: #202122 !important; }
html[data-theme="wiki"] :is(pre, code) { color: #202122 !important; background-color: #f8f9fa !important; border-color: #c8ccd1 !important; }
html[data-theme="wiki"] #modal-overlay { background: #20212280; }
html[data-theme="wiki"] .notification-window {
  color: #202122 !important;
  background: #fff !important;
  border: 1px solid #a2a9b1 !important;
  --box-border-color: #36c !important;
  font-family: Arial, sans-serif;
}
html[data-theme="wiki"] :is(.notification-title, .notification-message, .lanyard-status, .pgp-intro) { color: #202122 !important; }
html[data-theme="wiki"] .notification-title { font-family: Georgia, serif; border-bottom: 1px solid #a2a9b1; }
html[data-theme="wiki"] :is(.notification-ok, .notification-copy) { background: #f8f9fa !important; color: #202122 !important; border: 1px solid #72777d !important; }
html[data-theme="wiki"] .lanyard-credit { color: #54595d !important; }
html[data-theme="wiki"] #footer-badges { position: relative; inset: auto; padding: 16px 28px; justify-content: flex-start; flex-wrap: wrap; }
html[data-theme="wiki"] #site-footer-note { position: relative; inset: auto; padding: 0 28px 20px; color: #202122 !important; text-align: left; }
html[data-theme="wiki"] #command-bar { position: relative; inset: auto; color: #202122 !important; background: #f8f9fa !important; border-color: #a2a9b1; }
html[data-theme="wiki"] #current-time,
html[data-theme="wiki"] #visitor-count span { color: #202122 !important; }
html[data-theme="wiki"] .command-custom-text { color: #202122 !important; background: #fff !important; border-color: #a2a9b1; }
html[data-theme="wiki"] #perfectfft-info-window img[src$="fft-factorization.png"] { filter: invert(1); }
html[data-theme="wiki"] footer { color: #54595d !important; background: #f8f9fa; font: 12px/1.6 Arial, sans-serif; padding: 20px 28px; border-top: 1px solid #c8ccd1; }
html[data-theme="wiki"] .site-appearance { color: #202122; background: #fff; border-color: #c8ccd1; }
html[data-theme="wiki"] .site-appearance legend { color: #54595d; border-color: #eaecf0; }
html[data-theme="wiki"] .site-appearance fieldset { color: #202122; background: #fff; border-color: #c8ccd1; }
html[data-theme="wiki"] .sfx-toggle { background: #f8f9fa !important; border-color: #a2a9b1; }
html[data-theme="wiki"] .sfx-toggle[aria-pressed="true"] { background: #eaf3ff !important; }
html[data-theme="wiki"] :is(.error-box, .bbcode-modal-window, .bbcode-modal-bar, .bbcode-modal-body, .perfectfft-box, .language-list) {
  color: #202122 !important;
  background: #fff !important;
  border-color: #a2a9b1 !important;
  border-width: 1px;
}
html[data-theme="wiki"] :is(.error-message, .audio-upload-note, .project-subtext, .track-author, .blog-list-date) { color: #54595d !important; }
html[data-theme="wiki"] :is(.blog-body, .blog-date) { color: #000 !important; }
html[data-theme="wiki"] .blog-body :is(p, li, span, strong, em, blockquote) { color: inherit !important; }
html[data-theme="wiki"] .bbcode-modal-link { color: #36c !important; }
html[data-theme="wiki"] body:has(.perfectfft-layout) {
  --projects-theme: #36c !important;
  --projects-theme-soft: rgba(51, 102, 204, .15) !important;
  --projects-theme-mid: rgba(51, 102, 204, .5) !important;
  --projects-theme-strong: #36c !important;
}
html[data-theme="wiki"] :is(.visualizer-stage, .visualizer-control-space) {
  color: #202122 !important;
  background: #fff !important;
  border-color: #a2a9b1 !important;
}
html[data-theme="wiki"] .visualizer-box { grid-template-rows: minmax(280px, 1fr) auto; }
html[data-theme="wiki"] .visualizer-mode-button { color: #202122 !important; background: #f8f9fa !important; border-color: #a2a9b1 !important; }
html[data-theme="wiki"] .visualizer-mode-button:is(:hover, .is-active) { color: #36c !important; background: #eaf3ff !important; border-color: #36c !important; }
html[data-theme="wiki"] .visualizer-seek-time { color: #202122 !important; }
html[data-theme="wiki"] :is(.track-button, .blog-list-item) { background: #f8f9fa !important; color: #36c !important; border: 1px solid #c8ccd1; }
html[data-theme="wiki"] .track-button.is-active { background: #eaf3ff !important; }
html[data-theme="wiki"] .perfectfft-layout { height: auto; min-height: 700px; padding: 24px 28px; grid-template-rows: 160px minmax(450px, 1fr); }
html[data-theme="wiki"] .project-heading { font-family: Georgia, serif; font-size: 30px; }
html[data-theme="wiki"] :is(.project-info-button, .audio-upload-button, .bbcode-modal-close) { color: #202122 !important; background: #eaecf0 !important; border-color: #a2a9b1; }
@media (max-width: 900px) {
  html[data-theme="wiki"] #page-grid:has(> .links-box) { grid-template-columns: minmax(150px, .7fr) minmax(0, 1fr); }
  html[data-theme="wiki"] #page-grid:has(> .links-box) > .links-box:last-child { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  html[data-theme="wiki"] #page-grid { padding: 16px 12px 28px !important; }
  html[data-theme="wiki"] #top-bar { margin: 0 12px; }
  html[data-theme="wiki"] .music-player { margin: 0 12px; display: flex; flex-wrap: wrap; }
  html[data-theme="wiki"] #page-grid:has(> .page-column),
  html[data-theme="wiki"] #page-grid:has(> .links-box) { grid-template-columns: minmax(0, 1fr); }
  html[data-theme="wiki"] :is(#box-1, #box-2, #box-3, #box-4, #box-5, #box-6, #box-7) { grid-column: 1; grid-row: auto; }
  html[data-theme="wiki"] .journal-layout { grid-template-columns: minmax(0, 1fr); }
  html[data-theme="wiki"] .support-box { width: 100%; }
  html[data-theme="wiki"] .perfectfft-layout { display: flex; flex-direction: column; padding: 16px 12px; }
  html[data-theme="wiki"] .visualizer-box { min-height: 420px; }
  .site-header-controls { margin-left: auto; }
}
