MediaWiki:Jotunnheim.css: Difference between revisions

From Project: Jotunnheim
Jump to navigation Jump to search
Update Jotunnheim skin CSS from local source
Update Jotunnheim skin CSS from local source
 
(131 intermediate revisions by the same user not shown)
Line 76: Line 76:
   --jth-fg-1: #473d43;
   --jth-fg-1: #473d43;
   --jth-page-1: #e0d6b8;
   --jth-page-1: #e0d6b8;
   --jth-link-normal: #3d314a;
   --jth-link-normal: #52728e;
   --jth-link-red: #96705b;
   --jth-link-red: #96705b;
   --jth-link-visited: #684756;
   --jth-link-visited: #684756;
Line 92: Line 92:
}
}


body.skin-jotunnheim a, body.skin-jotunnheim a:visited {
body.skin-jotunnheim a, body.skin-jotunnheim a:visited, body.skin-jotunnheim a.extiw {
   color: var(--jth-link-normal);
   color: var(--jth-link-normal);
}
}


:is(body.skin-jotunnheim a, body.skin-jotunnheim a:visited).new {
:is(body.skin-jotunnheim a, body.skin-jotunnheim a:visited, body.skin-jotunnheim a.extiw).new {
   color: var(--jth-link-red);
   color: var(--jth-link-red);
}
}


:is(body.skin-jotunnheim a, body.skin-jotunnheim a:visited).new:after {
:is(body.skin-jotunnheim a, body.skin-jotunnheim a:visited, body.skin-jotunnheim a.extiw).new:after {
   content: "†";
   content: "†";
   display: inline;
   display: inline;
Line 120: Line 120:


.jth-shell {
.jth-shell {
  --jth-sidebar-width: 11.25rem;
   flex-direction: row;
   flex-direction: row;
   display: flex;
   display: flex;
Line 126: Line 127:
.jth-shell .jth-nav {
.jth-shell .jth-nav {
   flex-direction: column;
   flex-direction: column;
   flex: 0 0 180px;
   flex: 0 0 var(--jth-sidebar-width);
   display: flex;
   display: flex;
}
}


.jth-shell .jth-nav a {
.jth-shell .jth-nav a, .jth-shell .jth-nav a.extiw, .jth-shell .jth-nav a:visited {
   width: 100%;
   width: 100%;
  color: var(--jth-fg-1);
   font-size: .925rem;
   font-size: .925rem;
   display: inline-block;
   display: inline-block;
Line 148: Line 150:
   font-weight: 500;
   font-weight: 500;
   display: flex;
   display: flex;
}
.jth-shell .jth-nav a.jth-brand img {
  border-radius: 50%;
}
}


Line 194: Line 200:
.jth-shell .jth-header {
.jth-shell .jth-header {
   flex-direction: row;
   flex-direction: row;
   padding: 1rem 0;
   padding: .25rem;
   display: flex;
   display: flex;
}
.jth-shell .jth-header #p-search {
  background-color: var(--jth-page);
  flex-direction: column;
  width: 100%;
  min-width: 0;
  display: flex;
}
.jth-shell .jth-header #p-search section {
  border: 1px solid var(--jth-fg-1);
  flex-direction: column;
  display: flex;
}
.jth-shell .jth-header #p-search label {
  font-variant: small-caps;
  border-bottom: 1px dotted var(--jth-fg-1);
  width: 100%;
  padding-left: .25rem;
  font-weight: 600;
}
.jth-shell .jth-header #p-search label:after {
  content: ":";
}
.jth-shell .jth-header #p-search input[type="search"] {
  box-sizing: border-box;
  background-color: var(--jth-page);
  color: var(--jth-fg);
  font-family: inherit;
  font-size: inherit;
  border: none;
  width: 100%;
  padding: .25rem .5rem;
  display: block;
}
.jth-shell .jth-header #p-search input[type="search"]::placeholder {
  color: #0000;
}
.jth-shell .jth-header #p-search .searchButton {
  border: 1px solid var(--jth-fg-1);
  color: var(--jth-fg);
  font-variant: small-caps;
  background-color: #0000;
  border-top: none;
  margin: 0;
  font-family: inherit;
  font-weight: 600;
}
.jth-shell .jth-header #p-search .searchButton:hover, .jth-shell .jth-header #p-search .searchButton:focus {
  background: repeating-linear-gradient(-45deg, color-mix(var(--jth-fg-1), var(--jth-page) 80%) 0px, color-mix(var(--jth-fg-1), var(--jth-page) 80%) 2px, var(--jth-page) 2px, var(--jth-page) 3px);
}
}


Line 211: Line 274:
.jth-shell main#content {
.jth-shell main#content {
   background: var(--jth-page);
   background: var(--jth-page);
   --toc-width: 240px;
   --toc-width: 15rem;
   padding: 1rem;
   padding: 1rem;
   position: relative;
   position: relative;
Line 221: Line 284:


.jth-shell main#content:has(#toc) .mw-body-content {
.jth-shell main#content:has(#toc) .mw-body-content {
   width: min(100ch, calc(100vw - 180px - var(--toc-width)  - 3rem));
   width: min(100ch, calc(100vw - var(--jth-sidebar-width)  - var(--toc-width)  - 3rem));
}
}


Line 229: Line 292:
   margin-bottom: .25rem;
   margin-bottom: .25rem;
   padding: 0;
   padding: 0;
}
.jth-shell main#content .jth-title-row {
  text-transform: lowercase;
  border-bottom: 1px solid var(--jth-fg-1);
  align-items: flex-end;
  margin-bottom: .25rem;
  display: flex;
}
.jth-shell main#content .jth-title-row h1#firstHeading {
  border-bottom: 0;
  flex: 1;
  min-width: 0;
  margin-bottom: 0;
  overflow: hidden;
}
.jth-shell main#content .jth-title-row .jth-title-actions {
  white-space: nowrap;
  flex: none;
  margin-left: .25em;
  font-size: 1rem;
  font-weight: 500;
}
.jth-shell main#content .jth-title-row .jth-title-actions ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}
}


Line 254: Line 348:
.jth-shell main#content #toc .toctitle {
.jth-shell main#content #toc .toctitle {
   text-align: left;
   text-align: left;
  display: flex;
}
}


.jth-shell main#content #toc #mw-toc-heading {
.jth-shell main#content #toc #mw-toc-heading {
   font-variant: small-caps;
   font-variant: small-caps;
  flex: 1;
   font-weight: 400;
   font-weight: 400;
}
}


.jth-shell main#content #toc li a {
.jth-shell main#content #toc li a {
  flex-direction: row-reverse;
   align-items: flex-end;
   align-items: center;
   width: 100%;
   width: 100%;
   display: inline-flex;
   display: flex;
}
 
.jth-shell main#content #toc li a .tocnumber {
  order: 1;
  margin-left: .25em;
}
}


.jth-shell main#content #toc li a .toctext {
.jth-shell main#content #toc li a .toctext {
   flex: 1;
   flex: 1;
  min-width: 0;
  display: block;
  overflow: hidden;
}
.jth-shell main#content #toc li a .toctext:after {
  content: "";
  border-bottom: 1px dotted var(--jth-fg-1);
  vertical-align: .2em;
  width: 100%;
  margin-left: .25em;
  margin-right: calc(-100% - .25em);
  display: inline-block;
}
}


.jth-shell main#content #toc li.toclevel-1:has(ul) {
.jth-shell main#content #toc li.toclevel-1:has(ul) > a > .toctext {
   font-variant: small-caps;
   font-variant: small-caps;
}
}
Line 290: Line 403:
   margin-left: 0;
   margin-left: 0;
   position: static;
   position: static;
}
.jth-shell main#content figure {
  background-color: #0000;
  border: none;
}
.jth-shell main#content figure figcaption {
  background-color: #0000;
  border: none;
}
.jth-shell main#content figure .mw-file-description:after {
  background-image: none;
}
.jth-shell main#content table.infobox {
  border: thick double var(--jth-fg-1);
  background-color: #0000;
}
.jth-shell main#content table.infobox.geography td, .jth-shell main#content table.infobox.geography th {
  border-top-color: var(--jth-fg-1);
}
}


Line 302: Line 438:


.jth-shell footer.mw-footer {
.jth-shell footer.mw-footer {
   margin: 1rem 0;
   margin: 1rem;
}
 
.jth-shell h1, .jth-shell h2 {
  border-bottom: 1px solid var(--jth-fg-1);
}
 
.jth-shell :is(h2:has(.mw-editsection), .jth-title-actions) a {
  margin-left: .25rem;
  margin-right: .75rem;
}
 
.jth-shell :is(h2, h3, h4, h5, h6):has(.mw-editsection) {
  align-items: flex-end;
  display: flex;
}
 
.jth-shell :is(h2, h3, h4, h5, h6):has(.mw-editsection) .mw-headline {
  flex: 1;
  min-width: 0;
  display: block;
  overflow: hidden;
}
 
.jth-shell :is(h2, h3, h4, h5, h6):has(.mw-editsection) .mw-editsection {
  white-space: nowrap;
  flex: none;
  margin-left: .25em;
  font-size: 1rem;
  font-weight: 500;
}
 
.jth-shell :is(h2, h3, h4, h5, h6):has(.mw-editsection) .mw-editsection .mw-editsection-bracket, .jth-shell :is(h2, h3, h4, h5, h6):has(.mw-editsection) .mw-editsection .mw-editsection-divider {
  display: none;
}
 
.jth-shell :is(h3, h4, h5, h6):has(.mw-editsection) .mw-headline:after {
  content: "";
  border-bottom: 1px dashed var(--jth-fg-1);
  vertical-align: .2em;
  width: 100%;
  margin-left: .25em;
  margin-right: calc(-100% - .25em);
  display: inline-block;
}
 
.jth-shell :is(h3, h4, h5, h6):has(.mw-editsection) .mw-editsection a:after {
  content: "";
  border-bottom: 1px solid var(--jth-fg-1);
  vertical-align: .2em;
  width: .325rem;
  height: 0;
  margin-inline: .25rem;
  display: inline-block;
}
 
.jth-shell .catlinks {
  background: none;
  border: none;
}
 
.jth-shell .wikitable {
  color: inherit;
  border: thick double var(--jth-fg-1);
  background-color: #0000;
}
 
.jth-shell .wikitable th, .jth-shell .wikitable td {
  border-color: var(--jth-fg-1);
}
 
.jth-shell .wikitable th {
  font-variant: small-caps;
  background-color: #0000;
}
 
.jth-shell .mw-collapsible-toggle-default .mw-collapsible-text {
  color: var(--jth-link-normal);
}
}


@media (width <= 1100px) {
@media (width <= 1100px) {
  .jth-shell main#content .mw-body-content {
    width: min(100ch, calc(100vw - var(--jth-sidebar-width)  - 3rem));
  }
   .jth-shell main#content:has(#toc) {
   .jth-shell main#content:has(#toc) {
     padding-left: 1rem;
     padding-left: 1rem;
Line 311: Line 528:


   .jth-shell main#content:has(#toc) .mw-body-content {
   .jth-shell main#content:has(#toc) .mw-body-content {
     width: min(100ch, 100vw - 180px - 3rem);
     width: min(100ch, calc(100vw - var(--jth-sidebar-width)  - 3rem));
   }
   }


Line 338: Line 555:


html.client-nojs body.skin-jotunnheim .jth-shell main#content:has(#toc) .mw-body-content {
html.client-nojs body.skin-jotunnheim .jth-shell main#content:has(#toc) .mw-body-content {
   width: min(100ch, 100vw - 180px - 3rem);
   width: min(100ch, calc(100vw - var(--jth-sidebar-width)  - 3rem));
}
}


Line 349: Line 566:
   position: static;
   position: static;
   overflow: visible;
   overflow: visible;
}
@media (width <= 50rem) {
  body.skin-jotunnheim .jth-shell {
    display: block;
  }
  html.client-nojs body.skin-jotunnheim .jth-shell {
    flex-direction: column;
    display: flex;
  }
  html.client-nojs body.skin-jotunnheim .jth-shell > .jth-main {
    order: 1;
  }
  html.client-nojs body.skin-jotunnheim .jth-shell > .jth-nav {
    border-top: 1px solid var(--jth-fg-1);
    order: 2;
    margin-top: 1rem;
    padding: 1rem;
  }
  body.skin-jotunnheim .jth-shell .jth-nav, body.skin-jotunnheim .jth-shell .jth-main {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
  }
  body.skin-jotunnheim .jth-shell main#content, body.skin-jotunnheim .jth-shell main#content:has(#toc) {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    padding: clamp(.75rem, 3vw, 1.25rem);
    padding-bottom: calc(5rem + env(safe-area-inset-bottom));
  }
  body.skin-jotunnheim .jth-shell main#content .mw-body-content, body.skin-jotunnheim .jth-shell main#content:has(#toc) .mw-body-content, html.client-nojs body.skin-jotunnheim .jth-shell main#content:has(#toc) .mw-body-content {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
  body.skin-jotunnheim .jth-shell main#content .jth-toc-column, body.skin-jotunnheim .jth-shell main#content #toc {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
  }
  body.skin-jotunnheim .jth-shell .jth-title-row {
    flex-wrap: wrap;
  }
  body.skin-jotunnheim .jth-shell .jth-title-actions {
    margin-left: 0;
  }
  body.skin-jotunnheim .mw-body-content img {
    max-width: 100%;
    height: auto;
  }
  body.skin-jotunnheim .mw-body-content pre {
    max-width: 100%;
    overflow-x: auto;
  }
  body.skin-jotunnheim .mw-parser-output .infobox {
    box-sizing: border-box;
    float: none;
    clear: both;
    width: 100%;
    max-width: 100%;
    margin: 0 0 1rem;
  }
  body.skin-jotunnheim.page-Main_Page #mp-topbanner {
    box-sizing: border-box;
    flex-wrap: wrap;
    max-width: 100%;
  }
  body.skin-jotunnheim.page-Main_Page .mw-parser-output > table, body.skin-jotunnheim.page-Main_Page .mw-parser-output > table > tbody, body.skin-jotunnheim.page-Main_Page .mw-parser-output > table > tbody > tr, body.skin-jotunnheim.page-Main_Page .mw-parser-output > table > tbody > tr > td {
    box-sizing: border-box;
    max-width: 100%;
    display: block;
    width: 100% !important;
  }
  body.skin-jotunnheim .jth-shell footer.mw-footer, body.skin-jotunnheim .jth-shell footer.mw-footer ul {
    flex-wrap: wrap;
  }
  html.jth-mobile-ready body.skin-jotunnheim .jth-shell .jth-nav, html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column {
    box-sizing: border-box;
    z-index: 1201;
    overscroll-behavior: contain;
    background: var(--jth-page);
    visibility: hidden;
    width: min(22rem, 100vw - 3.5rem);
    height: auto;
    margin: 0;
    padding: 1rem;
    transition: transform .2s, visibility .2s;
    position: fixed;
    top: 0;
    bottom: 0;
    overflow-y: auto;
    box-shadow: 0 0 1rem #0e0c0633;
  }
  html.jth-mobile-ready body.skin-jotunnheim .jth-shell .jth-nav {
    border-right: 1px solid var(--jth-fg-1);
    left: 0;
    right: auto;
    transform: translateX(-105%);
  }
  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column {
    border-left: 1px solid var(--jth-fg-1);
    left: auto;
    right: 0;
    transform: translateX(105%);
  }
  html.jth-menu-open body.skin-jotunnheim .jth-shell .jth-nav, html.jth-toc-open body.skin-jotunnheim > .jth-toc-column {
    visibility: visible;
    transform: none;
  }
  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc {
    box-sizing: border-box;
    float: none;
    background: none;
    border: 0;
    width: 100%;
    max-width: 100%;
    max-height: none;
    margin: 0;
    position: static;
    overflow: visible;
  }
  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc .toctogglespan {
    display: none;
  }
  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc .toctitle {
    text-align: left;
    display: flex;
  }
  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #mw-toc-heading {
    font-variant: small-caps;
    flex: 1;
    font-weight: 400;
  }
  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc li a {
    align-items: flex-end;
    width: 100%;
    display: flex;
  }
  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc .tocnumber {
    order: 1;
    margin-left: .25em;
  }
  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc .toctext {
    flex: 1;
    min-width: 0;
    display: block;
    overflow: hidden;
  }
  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc .toctext:after {
    content: "";
    border-bottom: 1px dotted var(--jth-fg-1);
    vertical-align: .2em;
    width: 100%;
    margin-left: .25em;
    margin-right: calc(-100% - .25em);
    display: inline-block;
  }
  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc li.toclevel-1:has(ul) > a > .toctext {
    font-variant: small-caps;
  }
  body.skin-jotunnheim.jth-mobile-panel-open {
    overflow: hidden;
  }
  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-backdrop {
    z-index: 1200;
    background: #0e0c0673;
    position: fixed;
    inset: 0;
  }
  body.skin-jotunnheim .jth-mobile-backdrop[hidden] {
    display: none;
  }
  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls {
    right: calc(1rem + env(safe-area-inset-right));
    bottom: calc(1rem + env(safe-area-inset-bottom));
    z-index: 1202;
    flex-direction: column-reverse;
    align-items: flex-end;
    gap: .75rem;
    display: flex;
    position: fixed;
  }
  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls button {
    border: 1px solid var(--jth-fg-1);
    background: var(--jth-fg-1);
    width: 3.5rem;
    height: 3.5rem;
    color: var(--jth-page);
    cursor: pointer;
    border-radius: 1.25rem;
    place-items: center;
    padding: 0;
    display: grid;
    box-shadow: 0 .2rem .6rem #0e0c0640;
  }
  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls button.jth-mobile-toc {
    width: 2.5rem;
    height: 2.5rem;
  }
  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls button[aria-expanded="true"] {
    background: var(--jth-page);
    color: var(--jth-fg-1);
  }
  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls button:focus-visible {
    outline: 3px solid var(--jth-link-normal);
    outline-offset: 3px;
  }
  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2px;
    width: 1.5rem;
    height: 1.5rem;
  }
  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls .jth-close-icon, html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls button[aria-expanded="true"] .jth-open-icon {
    display: none;
  }
  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls button[aria-expanded="true"] .jth-close-icon {
    display: block;
  }
}
body.skin-jotunnheim .jth-mobile-controls {
  display: none;
}
@media (prefers-reduced-motion: reduce) {
  html.jth-mobile-ready body.skin-jotunnheim .jth-nav, html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column {
    transition: none;
  }
}
body.skin-jotunnheim .mw-body-content {
  counter-reset: jth-figure;
}
body.skin-jotunnheim .mw-body-content figure {
  counter-increment: jth-figure;
}
body.skin-jotunnheim .mw-body-content figure img {
  border-color: var(--jth-fg-1);
}
body.skin-jotunnheim .mw-body-content figure > figcaption:before, body.skin-jotunnheim .mw-body-content figure[typeof] > figcaption:before {
  content: "Fig." counter(jth-figure, upper-roman) ".—";
  font-variant: small-caps;
  float: none;
  width: auto;
  height: auto;
  margin: 0;
  display: inline;
}
body.skin-jotunnheim > .suggestions {
  font-family: var(--jth-body);
  box-shadow: 0 3px 8px #0e0c0626;
}
body.skin-jotunnheim > .suggestions .suggestions-results, body.skin-jotunnheim > .suggestions .suggestions-special {
  background: var(--jth-page);
  border-color: var(--jth-fg-1);
}
body.skin-jotunnheim > .suggestions .suggestions-result, body.skin-jotunnheim > .suggestions a.mw-searchSuggest-link {
  color: var(--jth-fg);
}
body.skin-jotunnheim > .suggestions .suggestions-result-current {
  background: var(--jth-fg-1);
  color: var(--jth-page);
}
body.skin-jotunnheim > .suggestions .suggestions-result-current a.mw-searchSuggest-link {
  color: var(--jth-page);
}
body.skin-jotunnheim.jth-mobile-panel-open > .suggestions {
  z-index: 1203;
}
}

Latest revision as of 20:30, 26 September 2026

@font-face {
  font-family: JotunnheimCharis;
  src: url("/w/skins/Jotunnheim/fonts/Charis-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: JotunnheimCharis;
  src: url("/w/skins/Jotunnheim/fonts/Charis-Italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: JotunnheimCharis;
  src: url("/w/skins/Jotunnheim/fonts/Charis-Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: JotunnheimCharis;
  src: url("/w/skins/Jotunnheim/fonts/Charis-BoldItalic.woff2") format("woff2");
  font-style: italic;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: JotunnheimOldStandard;
  src: url("/w/skins/Jotunnheim/fonts/OldStandard-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: JotunnheimOldStandard;
  src: url("/w/skins/Jotunnheim/fonts/OldStandard-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: JotunnheimGoudy;
  src: url("/w/skins/Jotunnheim/fonts/GoudyBookletter1911.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: JotunnheimNoto;
  src: url("/w/skins/Jotunnheim/fonts/NotoSerif-Variable.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: JotunnheimNoto;
  src: url("/w/skins/Jotunnheim/fonts/NotoSerif-Italic-Variable.ttf") format("truetype");
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
}

body.skin-jotunnheim {
  --jth-page: #f3eee2;
  --jth-fg: #0e0c06;
  --jth-fg-1: #473d43;
  --jth-page-1: #e0d6b8;
  --jth-link-normal: #52728e;
  --jth-link-red: #96705b;
  --jth-link-visited: #684756;
  --jth-ink: #27231e;
  --jth-muted: #665e52;
  --jth-rule: #c7bdac;
  --jth-link: #734533;
  --jth-body: JotunnheimCharis, Charis, "Charis SIL", JotunnheimNoto, "Noto Serif", Georgia, serif;
  --jth-title: JotunnheimOldStandard, "Old Standard TT", JotunnheimCharis, Georgia, serif;
  --jth-heading: JotunnheimGoudy, "Goudy Bookletter 1911", JotunnheimCharis, Georgia, serif;
  color: var(--jth-fg);
  background: var(--jth-page-1);
  font-family: var(--jth-body);
  margin: 0;
}

body.skin-jotunnheim a, body.skin-jotunnheim a:visited, body.skin-jotunnheim a.extiw {
  color: var(--jth-link-normal);
}

:is(body.skin-jotunnheim a, body.skin-jotunnheim a:visited, body.skin-jotunnheim a.extiw).new {
  color: var(--jth-link-red);
}

:is(body.skin-jotunnheim a, body.skin-jotunnheim a:visited, body.skin-jotunnheim a.extiw).new:after {
  content: "†";
  display: inline;
}

.jth-skip {
  color: #00f;
  background: #fff;
  padding: 1rem;
  display: block;
  position: absolute;
  top: 0;
  left: -100vw;
}

.jth-skip:focus {
  left: 0;
}

.jth-shell {
  --jth-sidebar-width: 11.25rem;
  flex-direction: row;
  display: flex;
}

.jth-shell .jth-nav {
  flex-direction: column;
  flex: 0 0 var(--jth-sidebar-width);
  display: flex;
}

.jth-shell .jth-nav a, .jth-shell .jth-nav a.extiw, .jth-shell .jth-nav a:visited {
  width: 100%;
  color: var(--jth-fg-1);
  font-size: .925rem;
  display: inline-block;
}

.jth-shell .jth-nav a.jth-brand {
  text-align: center;
  font-family: JotunnheimCheltenhamCondensed, var(--jth-title);
  letter-spacing: -.02em;
  color: var(--jth-fg);
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  margin: 1rem 0;
  font-size: 1.5rem;
  font-weight: 500;
  display: flex;
}

.jth-shell .jth-nav a.jth-brand img {
  border-radius: 50%;
}

.jth-shell .jth-nav input[type="checkbox"] {
  display: none;
}

.jth-shell .jth-nav #p-user-page-label {
  content: "User";
}

.jth-shell .jth-nav .mw-portlet {
  padding: 0 .25rem;
}

.jth-shell .jth-nav .mw-portlet h3 {
  font-family: var(--jth-body);
  font-variant: small-caps;
  flex-direction: row;
  align-items: center;
  width: 100%;
  margin: .25rem 0 0 .25rem;
  padding: 0;
  font-size: 1rem;
  font-weight: 500;
  display: inline-flex;
  position: relative;
}

.jth-shell .jth-nav .mw-portlet h3:after {
  content: "";
  border-bottom: 1px solid var(--jth-fg-1);
  flex: 1;
  height: 0;
  margin: 0 .25rem;
  display: inline-flex;
  position: relative;
  top: 2px;
}

.jth-shell .jth-nav .mw-portlet ul {
  margin: 0 0 0 1rem;
  list-style: none;
}

.jth-shell .jth-header {
  flex-direction: row;
  padding: .25rem;
  display: flex;
}

.jth-shell .jth-header #p-search {
  background-color: var(--jth-page);
  flex-direction: column;
  width: 100%;
  min-width: 0;
  display: flex;
}

.jth-shell .jth-header #p-search section {
  border: 1px solid var(--jth-fg-1);
  flex-direction: column;
  display: flex;
}

.jth-shell .jth-header #p-search label {
  font-variant: small-caps;
  border-bottom: 1px dotted var(--jth-fg-1);
  width: 100%;
  padding-left: .25rem;
  font-weight: 600;
}

.jth-shell .jth-header #p-search label:after {
  content: ":";
}

.jth-shell .jth-header #p-search input[type="search"] {
  box-sizing: border-box;
  background-color: var(--jth-page);
  color: var(--jth-fg);
  font-family: inherit;
  font-size: inherit;
  border: none;
  width: 100%;
  padding: .25rem .5rem;
  display: block;
}

.jth-shell .jth-header #p-search input[type="search"]::placeholder {
  color: #0000;
}

.jth-shell .jth-header #p-search .searchButton {
  border: 1px solid var(--jth-fg-1);
  color: var(--jth-fg);
  font-variant: small-caps;
  background-color: #0000;
  border-top: none;
  margin: 0;
  font-family: inherit;
  font-weight: 600;
}

.jth-shell .jth-header #p-search .searchButton:hover, .jth-shell .jth-header #p-search .searchButton:focus {
  background: repeating-linear-gradient(-45deg, color-mix(var(--jth-fg-1), var(--jth-page) 80%) 0px, color-mix(var(--jth-fg-1), var(--jth-page) 80%) 2px, var(--jth-page) 2px, var(--jth-page) 3px);
}

.jth-shell .jth-main {
  flex-direction: column;
  width: max-content;
  display: flex;
}

.jth-shell .jth-byline {
  color: var(--jth-fg-1);
  font-style: italic;
}

.jth-shell main#content {
  background: var(--jth-page);
  --toc-width: 15rem;
  padding: 1rem;
  position: relative;
}

.jth-shell main#content:has(#toc) {
  padding-left: calc(var(--toc-width)  + 1rem);
}

.jth-shell main#content:has(#toc) .mw-body-content {
  width: min(100ch, calc(100vw - var(--jth-sidebar-width)  - var(--toc-width)  - 3rem));
}

.jth-shell main#content h1#firstHeading {
  font-family: var(--jth-body);
  font-variant: small-caps;
  margin-bottom: .25rem;
  padding: 0;
}

.jth-shell main#content .jth-title-row {
  text-transform: lowercase;
  border-bottom: 1px solid var(--jth-fg-1);
  align-items: flex-end;
  margin-bottom: .25rem;
  display: flex;
}

.jth-shell main#content .jth-title-row h1#firstHeading {
  border-bottom: 0;
  flex: 1;
  min-width: 0;
  margin-bottom: 0;
  overflow: hidden;
}

.jth-shell main#content .jth-title-row .jth-title-actions {
  white-space: nowrap;
  flex: none;
  margin-left: .25em;
  font-size: 1rem;
  font-weight: 500;
}

.jth-shell main#content .jth-title-row .jth-title-actions ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.jth-shell main#content .mw-body-content {
  width: 100ch;
}

.jth-shell main#content #toc {
  box-sizing: border-box;
  float: left;
  width: calc(var(--toc-width)  - 1rem);
  margin-left: calc(-1 * var(--toc-width));
  background-color: #0000;
  border: none;
  max-height: calc(100vh - 2rem);
  position: sticky;
  top: 1rem;
  overflow-y: auto;
}

.jth-shell main#content #toc .toctogglespan {
  display: none;
}

.jth-shell main#content #toc .toctitle {
  text-align: left;
  display: flex;
}

.jth-shell main#content #toc #mw-toc-heading {
  font-variant: small-caps;
  flex: 1;
  font-weight: 400;
}

.jth-shell main#content #toc li a {
  align-items: flex-end;
  width: 100%;
  display: flex;
}

.jth-shell main#content #toc li a .tocnumber {
  order: 1;
  margin-left: .25em;
}

.jth-shell main#content #toc li a .toctext {
  flex: 1;
  min-width: 0;
  display: block;
  overflow: hidden;
}

.jth-shell main#content #toc li a .toctext:after {
  content: "";
  border-bottom: 1px dotted var(--jth-fg-1);
  vertical-align: .2em;
  width: 100%;
  margin-left: .25em;
  margin-right: calc(-100% - .25em);
  display: inline-block;
}

.jth-shell main#content #toc li.toclevel-1:has(ul) > a > .toctext {
  font-variant: small-caps;
}

.jth-shell main#content .jth-toc-column {
  width: calc(var(--toc-width)  - 1rem);
  height: 0;
  margin-left: calc(-1 * var(--toc-width));
  align-self: flex-start;
  position: sticky;
  top: 1rem;
}

.jth-shell main#content .jth-toc-column #toc {
  float: none;
  width: 100%;
  margin-left: 0;
  position: static;
}

.jth-shell main#content figure {
  background-color: #0000;
  border: none;
}

.jth-shell main#content figure figcaption {
  background-color: #0000;
  border: none;
}

.jth-shell main#content figure .mw-file-description:after {
  background-image: none;
}

.jth-shell main#content table.infobox {
  border: thick double var(--jth-fg-1);
  background-color: #0000;
}

.jth-shell main#content table.infobox.geography td, .jth-shell main#content table.infobox.geography th {
  border-top-color: var(--jth-fg-1);
}

.jth-shell footer.mw-footer, .jth-shell footer.mw-footer ul {
  flex-direction: row;
  align-items: center;
  gap: 1rem;
  margin: 0;
  list-style: none;
  display: flex;
}

.jth-shell footer.mw-footer {
  margin: 1rem;
}

.jth-shell h1, .jth-shell h2 {
  border-bottom: 1px solid var(--jth-fg-1);
}

.jth-shell :is(h2:has(.mw-editsection), .jth-title-actions) a {
  margin-left: .25rem;
  margin-right: .75rem;
}

.jth-shell :is(h2, h3, h4, h5, h6):has(.mw-editsection) {
  align-items: flex-end;
  display: flex;
}

.jth-shell :is(h2, h3, h4, h5, h6):has(.mw-editsection) .mw-headline {
  flex: 1;
  min-width: 0;
  display: block;
  overflow: hidden;
}

.jth-shell :is(h2, h3, h4, h5, h6):has(.mw-editsection) .mw-editsection {
  white-space: nowrap;
  flex: none;
  margin-left: .25em;
  font-size: 1rem;
  font-weight: 500;
}

.jth-shell :is(h2, h3, h4, h5, h6):has(.mw-editsection) .mw-editsection .mw-editsection-bracket, .jth-shell :is(h2, h3, h4, h5, h6):has(.mw-editsection) .mw-editsection .mw-editsection-divider {
  display: none;
}

.jth-shell :is(h3, h4, h5, h6):has(.mw-editsection) .mw-headline:after {
  content: "";
  border-bottom: 1px dashed var(--jth-fg-1);
  vertical-align: .2em;
  width: 100%;
  margin-left: .25em;
  margin-right: calc(-100% - .25em);
  display: inline-block;
}

.jth-shell :is(h3, h4, h5, h6):has(.mw-editsection) .mw-editsection a:after {
  content: "";
  border-bottom: 1px solid var(--jth-fg-1);
  vertical-align: .2em;
  width: .325rem;
  height: 0;
  margin-inline: .25rem;
  display: inline-block;
}

.jth-shell .catlinks {
  background: none;
  border: none;
}

.jth-shell .wikitable {
  color: inherit;
  border: thick double var(--jth-fg-1);
  background-color: #0000;
}

.jth-shell .wikitable th, .jth-shell .wikitable td {
  border-color: var(--jth-fg-1);
}

.jth-shell .wikitable th {
  font-variant: small-caps;
  background-color: #0000;
}

.jth-shell .mw-collapsible-toggle-default .mw-collapsible-text {
  color: var(--jth-link-normal);
}

@media (width <= 1100px) {
  .jth-shell main#content .mw-body-content {
    width: min(100ch, calc(100vw - var(--jth-sidebar-width)  - 3rem));
  }

  .jth-shell main#content:has(#toc) {
    padding-left: 1rem;
  }

  .jth-shell main#content:has(#toc) .mw-body-content {
    width: min(100ch, calc(100vw - var(--jth-sidebar-width)  - 3rem));
  }

  .jth-shell main#content #toc {
    float: none;
    width: auto;
    max-width: 100%;
    max-height: none;
    margin-left: 0;
    position: static;
    overflow: visible;
  }

  .jth-shell main#content .jth-toc-column {
    align-self: stretch;
    width: auto;
    height: auto;
    margin-left: 0;
    position: static;
  }
}

html.client-nojs body.skin-jotunnheim .jth-shell main#content:has(#toc) {
  padding-left: 1rem;
}

html.client-nojs body.skin-jotunnheim .jth-shell main#content:has(#toc) .mw-body-content {
  width: min(100ch, calc(100vw - var(--jth-sidebar-width)  - 3rem));
}

html.client-nojs body.skin-jotunnheim .jth-shell main#content:has(#toc) #toc {
  float: none;
  width: auto;
  max-width: 100%;
  max-height: none;
  margin-left: 0;
  position: static;
  overflow: visible;
}

@media (width <= 50rem) {
  body.skin-jotunnheim .jth-shell {
    display: block;
  }

  html.client-nojs body.skin-jotunnheim .jth-shell {
    flex-direction: column;
    display: flex;
  }

  html.client-nojs body.skin-jotunnheim .jth-shell > .jth-main {
    order: 1;
  }

  html.client-nojs body.skin-jotunnheim .jth-shell > .jth-nav {
    border-top: 1px solid var(--jth-fg-1);
    order: 2;
    margin-top: 1rem;
    padding: 1rem;
  }

  body.skin-jotunnheim .jth-shell .jth-nav, body.skin-jotunnheim .jth-shell .jth-main {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
  }

  body.skin-jotunnheim .jth-shell main#content, body.skin-jotunnheim .jth-shell main#content:has(#toc) {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    padding: clamp(.75rem, 3vw, 1.25rem);
    padding-bottom: calc(5rem + env(safe-area-inset-bottom));
  }

  body.skin-jotunnheim .jth-shell main#content .mw-body-content, body.skin-jotunnheim .jth-shell main#content:has(#toc) .mw-body-content, html.client-nojs body.skin-jotunnheim .jth-shell main#content:has(#toc) .mw-body-content {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  body.skin-jotunnheim .jth-shell main#content .jth-toc-column, body.skin-jotunnheim .jth-shell main#content #toc {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
  }

  body.skin-jotunnheim .jth-shell .jth-title-row {
    flex-wrap: wrap;
  }

  body.skin-jotunnheim .jth-shell .jth-title-actions {
    margin-left: 0;
  }

  body.skin-jotunnheim .mw-body-content img {
    max-width: 100%;
    height: auto;
  }

  body.skin-jotunnheim .mw-body-content pre {
    max-width: 100%;
    overflow-x: auto;
  }

  body.skin-jotunnheim .mw-parser-output .infobox {
    box-sizing: border-box;
    float: none;
    clear: both;
    width: 100%;
    max-width: 100%;
    margin: 0 0 1rem;
  }

  body.skin-jotunnheim.page-Main_Page #mp-topbanner {
    box-sizing: border-box;
    flex-wrap: wrap;
    max-width: 100%;
  }

  body.skin-jotunnheim.page-Main_Page .mw-parser-output > table, body.skin-jotunnheim.page-Main_Page .mw-parser-output > table > tbody, body.skin-jotunnheim.page-Main_Page .mw-parser-output > table > tbody > tr, body.skin-jotunnheim.page-Main_Page .mw-parser-output > table > tbody > tr > td {
    box-sizing: border-box;
    max-width: 100%;
    display: block;
    width: 100% !important;
  }

  body.skin-jotunnheim .jth-shell footer.mw-footer, body.skin-jotunnheim .jth-shell footer.mw-footer ul {
    flex-wrap: wrap;
  }

  html.jth-mobile-ready body.skin-jotunnheim .jth-shell .jth-nav, html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column {
    box-sizing: border-box;
    z-index: 1201;
    overscroll-behavior: contain;
    background: var(--jth-page);
    visibility: hidden;
    width: min(22rem, 100vw - 3.5rem);
    height: auto;
    margin: 0;
    padding: 1rem;
    transition: transform .2s, visibility .2s;
    position: fixed;
    top: 0;
    bottom: 0;
    overflow-y: auto;
    box-shadow: 0 0 1rem #0e0c0633;
  }

  html.jth-mobile-ready body.skin-jotunnheim .jth-shell .jth-nav {
    border-right: 1px solid var(--jth-fg-1);
    left: 0;
    right: auto;
    transform: translateX(-105%);
  }

  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column {
    border-left: 1px solid var(--jth-fg-1);
    left: auto;
    right: 0;
    transform: translateX(105%);
  }

  html.jth-menu-open body.skin-jotunnheim .jth-shell .jth-nav, html.jth-toc-open body.skin-jotunnheim > .jth-toc-column {
    visibility: visible;
    transform: none;
  }

  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc {
    box-sizing: border-box;
    float: none;
    background: none;
    border: 0;
    width: 100%;
    max-width: 100%;
    max-height: none;
    margin: 0;
    position: static;
    overflow: visible;
  }

  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc .toctogglespan {
    display: none;
  }

  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc .toctitle {
    text-align: left;
    display: flex;
  }

  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #mw-toc-heading {
    font-variant: small-caps;
    flex: 1;
    font-weight: 400;
  }

  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc li a {
    align-items: flex-end;
    width: 100%;
    display: flex;
  }

  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc .tocnumber {
    order: 1;
    margin-left: .25em;
  }

  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc .toctext {
    flex: 1;
    min-width: 0;
    display: block;
    overflow: hidden;
  }

  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc .toctext:after {
    content: "";
    border-bottom: 1px dotted var(--jth-fg-1);
    vertical-align: .2em;
    width: 100%;
    margin-left: .25em;
    margin-right: calc(-100% - .25em);
    display: inline-block;
  }

  html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column #toc li.toclevel-1:has(ul) > a > .toctext {
    font-variant: small-caps;
  }

  body.skin-jotunnheim.jth-mobile-panel-open {
    overflow: hidden;
  }

  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-backdrop {
    z-index: 1200;
    background: #0e0c0673;
    position: fixed;
    inset: 0;
  }

  body.skin-jotunnheim .jth-mobile-backdrop[hidden] {
    display: none;
  }

  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls {
    right: calc(1rem + env(safe-area-inset-right));
    bottom: calc(1rem + env(safe-area-inset-bottom));
    z-index: 1202;
    flex-direction: column-reverse;
    align-items: flex-end;
    gap: .75rem;
    display: flex;
    position: fixed;
  }

  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls button {
    border: 1px solid var(--jth-fg-1);
    background: var(--jth-fg-1);
    width: 3.5rem;
    height: 3.5rem;
    color: var(--jth-page);
    cursor: pointer;
    border-radius: 1.25rem;
    place-items: center;
    padding: 0;
    display: grid;
    box-shadow: 0 .2rem .6rem #0e0c0640;
  }

  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls button.jth-mobile-toc {
    width: 2.5rem;
    height: 2.5rem;
  }

  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls button[aria-expanded="true"] {
    background: var(--jth-page);
    color: var(--jth-fg-1);
  }

  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls button:focus-visible {
    outline: 3px solid var(--jth-link-normal);
    outline-offset: 3px;
  }

  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2px;
    width: 1.5rem;
    height: 1.5rem;
  }

  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls .jth-close-icon, html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls button[aria-expanded="true"] .jth-open-icon {
    display: none;
  }

  html.jth-mobile-ready body.skin-jotunnheim .jth-mobile-controls button[aria-expanded="true"] .jth-close-icon {
    display: block;
  }
}

body.skin-jotunnheim .jth-mobile-controls {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  html.jth-mobile-ready body.skin-jotunnheim .jth-nav, html.jth-mobile-ready body.skin-jotunnheim > .jth-toc-column {
    transition: none;
  }
}

body.skin-jotunnheim .mw-body-content {
  counter-reset: jth-figure;
}

body.skin-jotunnheim .mw-body-content figure {
  counter-increment: jth-figure;
}

body.skin-jotunnheim .mw-body-content figure img {
  border-color: var(--jth-fg-1);
}

body.skin-jotunnheim .mw-body-content figure > figcaption:before, body.skin-jotunnheim .mw-body-content figure[typeof] > figcaption:before {
  content: "Fig." counter(jth-figure, upper-roman) ".—";
  font-variant: small-caps;
  float: none;
  width: auto;
  height: auto;
  margin: 0;
  display: inline;
}

body.skin-jotunnheim > .suggestions {
  font-family: var(--jth-body);
  box-shadow: 0 3px 8px #0e0c0626;
}

body.skin-jotunnheim > .suggestions .suggestions-results, body.skin-jotunnheim > .suggestions .suggestions-special {
  background: var(--jth-page);
  border-color: var(--jth-fg-1);
}

body.skin-jotunnheim > .suggestions .suggestions-result, body.skin-jotunnheim > .suggestions a.mw-searchSuggest-link {
  color: var(--jth-fg);
}

body.skin-jotunnheim > .suggestions .suggestions-result-current {
  background: var(--jth-fg-1);
  color: var(--jth-page);
}

body.skin-jotunnheim > .suggestions .suggestions-result-current a.mw-searchSuggest-link {
  color: var(--jth-page);
}

body.skin-jotunnheim.jth-mobile-panel-open > .suggestions {
  z-index: 1203;
}