/*
Theme Name: Onpu
Description: A pastel, boxy block theme with scrolling symbol backgrounds, drop-shadow tiles and an "onpu-rple" dark mode. Converted from a hand-built static site stylesheet.
Author: You
Version: 1.4.0
Requires at least: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: onpu
*/

/* Fonts are chosen in Styles → Typography (text, headings, buttons) and Styles → Blocks
   (Site Title, Navigation, Pagination). Only sizes are set in this file. */

/* ==========================================================================
   PART 1 — ORIGINAL SITE STYLES (kept as-is so your old classes still work)
   ========================================================================== */

.small {
  font-size: small;
}

/* colors */

/*
  Every color comes from the palette in Appearance → Editor → Styles → Colors → Palette.
  Change a swatch there and the whole site updates live. The "(dark)" swatches are
  used when the visitor's device is in dark mode.
*/
:root {
  --cont-color: var(--wp--preset--color--card);
  --title-color: var(--wp--preset--color--title-box);
  --back-color: var(--wp--preset--color--page-bg);
  --font-color: var(--wp--preset--color--text);
  --border-color: var(--wp--preset--color--border);
  --shadow-1: color-mix(in srgb, var(--wp--preset--color--shadow) 40%, transparent);
  --shadow-2: color-mix(in srgb, var(--wp--preset--color--shadow) 30%, transparent);
  --link-color: var(--wp--preset--color--link);
  --link-hover: var(--wp--preset--color--link-hover);
  --divider-color: var(--wp--preset--color--divider);
}

/* dork mode */
@media (prefers-color-scheme: dark) {
  :root {
    --cont-color: var(--wp--preset--color--card-dark);
    --title-color: var(--wp--preset--color--title-box-dark);
    --back-color: var(--wp--preset--color--page-bg-dark);
    --font-color: var(--wp--preset--color--text-dark);
    --border-color: var(--wp--preset--color--border-dark);
    --shadow-1: color-mix(in srgb, var(--wp--preset--color--shadow-dark) 40%, transparent);
    --shadow-2: color-mix(in srgb, var(--wp--preset--color--shadow-dark) 30%, transparent);
    --link-color: var(--wp--preset--color--link-dark);
    --link-hover: var(--wp--preset--color--link-hover-dark);
    --divider-color: var(--wp--preset--color--divider-dark);
  }

  img {
    filter: brightness(80%);
  }
}

a {
  color: var(--link-color);
}

/* very important header stuff */

header ul {
  display: flex;
  flex: auto 1 1;
  justify-content: space-evenly;
  align-self: center;
  padding-left: 0px;
}

#letters li {
  padding: 2%;
  font-size: min(5.5vw, 88px);
  line-height: normal;
}

#letters li:hover {
  scale: 1.1;
}

header ul li {
  padding: 1.5%;
  font-size: min(1.5vw, 24px);
  line-height: normal;
  transition-duration: 1s;
  border: 2px solid var(--border-color);
  border-radius: 10px;
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  background-color: var(--title-color);
}

#headerLinks a{
  padding: 1.5%;
  font-size: min(1.5vw, 24px);
  line-height: normal;
  transition-duration: 1s;
  border: 2px solid var(--border-color);
  border-radius: 10px;
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  background-color: var(--title-color);
  text-decoration: none;
}

#headerLinks a:hover {
  scale: 1.05;
}

#headerLinks {
  display: flex;
  flex: auto 1 1;
  justify-content: space-evenly;
  align-self: center;
  padding-left: 0px;
  margin-top: 1em;
  margin-bottom: 1em;
}
/* encrypted stuff */

.encrypted {
  word-break: break-all;
  font-family: 'MS Gothic', monospace;
}

.hide {
  display: none;
}

/* index */

.alpha {
  column-count: 4;
  margin-top: 2.5%;
}

.let {
  background-color: var(--cont-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 0.3em 0.3em, var(--shadow-2) 0.6em 0.6em;
  padding: 2.5%;
  margin-bottom: 7.5%;
  break-inside: avoid;
}

.let h2 {
  margin-top: 0;
  background-color: var(--title-color);
  transform: translate(-5%,-25%);
  padding: 5%;
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  text-align: center;
}

.let dd {
  margin-bottom: 0;
}

.let dt:first-child {
  padding-top: 0;
}

.let dt {
  padding-top: 1rem;
}

/* homepage */

.hp > * {
  width:100%;
}

.hp-cont {
  padding: 2.5rem 2rem 2rem 2rem;
  margin: 0 2.5% 2.5% 2.5%;
  text-align: justify;
  line-height: 1.6rem;
  background-color: var(--cont-color);
}

.statValue, .statLink {
  margin-left: 2em;
}

.statTitle {
  font-style: italic;
  font-size: 1.25rem;
}

.hp-heading {
  background-color: var(--title-color);
  transform: translate(2rem,2rem);
  padding: 1.2rem;
  border: 2px solid var(--border-color);
  width: max-content;
  font-weight: 400;
  font-size: 2.2rem;
  line-height: 1;
}


/* chronology/contents */

ul {
  list-style: none;
}

.chronology dl {
  padding-left: 10%;
}

dd {
  margin-bottom: 3%;
}

li a {
  text-decoration: none;
}

/* nonfic notes */

.book img {
  width: 20%;
  float: left;
  padding-right: 4%;
}

.book summary {
  margin-top: auto;
}

.book p {
  font-size: 100%;
  line-height: 1.5;
}

.book {
  margin: 3%;
  padding: 4%;
  background-color: var(--cont-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  overflow: auto;
}

/* reading lists */

.list li {
  background-color: var(--title-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 0.3em 0.3em, var(--shadow-2) 0.6em 0.6em;
  padding: 5%;
  margin-bottom: 5%;
}

.list h2 {
  margin-top: 0;
  margin-bottom: 2rem;
  border-bottom: 2px solid var(--border-color);
}

/* ye olde journal stuff */

.month {
  display: grid;
  grid-template-columns: repeat(7, minmax(125px, 1fr));
  gap: 10px;
}

.day p {
  font-size: 1rem;
  line-height: 1.2rem;
}

.day h3 {
  text-align: center;
}

/* collapsibles */

summary {
  font-weight: 400;
  margin-top: 2rem;
  margin-bottom: 2rem;
  font-size: 2.5rem;
  line-height: 1;
}

details summary > * {
  display: inline;
}

details summary {
  cursor: pointer;
}

/* media display stuff */

.media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));
  gap: 15px;
  place-items: center;
  padding: 1%;
  height: 80vh;
  overflow-y: scroll;
  margin-right: 2.5%;
}

.media-item > a > img {
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: 200px;
  height: 300px;
}

.media-item > a {
  text-decoration: none;
}

.mediainfo > img {
  float: left;
  width: 200px;
  height: 300px;
  margin: 0.5em 2em 1em 0;
}

.media-item, .logo img:hover {
  transform: scale(1.1);
}

.cover > img {
  width: 200px;
  height: 300px;
}

/* notebook */

.notes {
  display: flex;
  opacity: 0.9;
}

.note {
  background-color: var(--cont-color);
  padding: 2.5%;
  margin-top: 5%;
  border: 2px var(--border-color);
  border-radius: 0px 15px 15px 0px;
  box-shadow: var(--shadow-1) 0.3em 0.3em, var(--shadow-2) 0.6em 0.6em;
  border-style: solid solid solid dashed;
}

.col {
  width: 20%;
  text-align: justify;
  margin-left: 0.5%;
  margin-right: 0.5%;
  line-height: 1.5;
}

/* might be used somewhere? */

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1rem;
  text-align: center;
  margin-bottom: 4rem;
}

/* can gallery */

.can-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(275px, 1fr));
  gap: 25px;
  justify-items: center;
}

.can {
  background-color: var(--cont-color);
  border: 2px solid var(--border-color);
  border-radius: 15px;
  box-shadow: var(--shadow-1) 0.3em 0.3em, var(--shadow-2) 0.6em 0.6em;
}

.can .small {
  font-family: monospace;
}

.can > img {
  border-radius: 15px 15px 0px 0px;
  border-bottom: 2px solid var(--border-color);
}

.can-desc {
  padding: 3%;
}

.can-desc > table {
  width: 100%;
  line-height: 1.4;
}

/* writing catalog */

.catalog > * {
  width: 45%;
}

.catalog li {
  background-color: var(--title-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 0.3em 0.3em, var(--shadow-2) 0.6em 0.6em;
  padding: 5%;
  margin-bottom: 5%;
}

.catalog h2 {
  margin-top: 0;
  margin-bottom: 2rem;
  border-bottom: 2px solid var(--border-color);
}

/* writings */

.heading {
  background-color: var(--title-color);
  transform: translate(-3%,3%);
  padding-left: 2%;
  padding-right: 2%;
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
}

.writing section {
  background-color: var(--cont-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  margin-bottom: 2%;
}

/* travel */

.row {
  display: flex;
  margin-bottom: 4%;
}

.row > img {
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  width: 60%;
}

.row > .caption {
  text-align: justify;
  padding-left: 2%;
  padding-right: 2%;
  line-height: 1.5;
  background-color: var(--cont-color);
  height: max-content;
  flex-shrink: 50;
}

.caption.right {
  transform: translate(-3%,3%);
}

.caption.left {
  transform: translate(2%,-3%);
  z-index: -1;
}

/* blog */

.index a {
  text-decoration: none;
  color: inherit;
}

.entry {
  background-color: var(--title-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 0.3em 0.3em, var(--shadow-2) 0.6em 0.6em;
  padding: 5%;
  margin-bottom: 5%;
}

.entry img {
  padding: 2%;
}

.index a:hover {
  color: inherit;
  filter: invert(5%);
}

.archive {
  width: 24%;
  background-color: var(--cont-color);
}

.archive ul {
  padding: 5%;
}

.blog summary {
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  background-color: var(--title-color);
  transform: translate(-7.5%, 5%);
  padding: 2%;
}

.review {
  width: 95%;
  margin-bottom: 2vh;
  margin-top: 0;
  padding: 0;
  max-width: none;
  background-color: #11ffee00;
}

.review > header {
  width: 80%;
  height: 11.5vh;
  transform: scale(0.7) translate(42.5%, -40%);
}

.review-header {
  position: absolute;
  top: 4%;
  left: 10%;
  padding: 1.25%;
  background-color: var(--title-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  font-weight: 400;
  font-size: min(3vw, 48px);
  line-height: 1;
}

.blog {
  background-color: var(--cont-color);
  border: 2px var(--border-color);
  border-radius: 0px 15px 15px 0px;
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  border-style: solid solid solid dashed;
}

.posts {
  padding: 1%;
  width: 30%;
  height: 80vh;
  overflow-y: scroll;
  margin-right: 2%;
  direction: rtl;
}

.posts ul {
  direction: ltr;
  padding-left: 0;
}

.posts li {
  background-color: var(--cont-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  transition-duration: 0.3s;
  margin-bottom: 5%;
  padding: 2%;
}

.posts li:hover {
  transform: translate(1%, -1%);
}

li > .date {
  font-style: italic;
}

.rev {
  background-color: var(--cont-color);
  padding: 2.5%;
  margin-top: 5%;
  border: 2px var(--border-color);
  box-shadow: var(--shadow-1) 0.3em 0.3em, var(--shadow-2) 0.6em 0.6em;
  border-style: solid;
}

.rev > img {
  width: 80%; display: block; margin-right: auto; margin-left: auto; margin-top:5%; margin-bottom:7.5%; border-top: 2px solid var(--border-color);
  border-left: 2px solid var(--border-color);
  box-shadow: 0px 1px 0px 0px var(--border-color), 1px 0px 0px 0px var(--border-color), 1px 2px 0px 0px var(--border-color), 2px 1px 0px 0px var(--border-color), 2px 3px 0px 0px var(--border-color), 3px 2px 0px 0px var(--border-color), 3px 4px 0px 0px var(--border-color), 4px 3px 0px 0px var(--border-color), 4px 5px 0px 0px var(--border-color), 5px 4px 0px 0px var(--border-color);
}

/* all the other stuff */

html {
  font-size: min(0.9vw, 14.4px);
  background-image: url("graphics/symgreen.png"), url("graphics/symbols2green.png"), url("graphics/symbols2green.png");
  background-size: 150px, 150px, 150px;
  background-repeat: repeat, repeat, repeat;
  background-position: 0px 0px, 0px 0px, 0px 0px;
  animation: bg-scrolling 15s linear infinite;
  background-color: var(--back-color);
}

@keyframes bg-scrolling {
  0% {
    background-position: 150px 0px, -150px 150px, -300px -150px;
  }
}

body {
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 10%;
  padding-left: 3%;
  padding-right: 3%;
  color: var(--font-color);
  max-width: 1600px;
  border-radius: 20px;
  counter-reset: sidenote-counter;
}

.border {
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
}

.flexwrap {
  display: flex;
  flex-wrap: wrap;
}

a:hover {
  color: var(--link-hover);
}

.indent {
  margin-left: 5%;
}

/* dark mode */

.dark {
  background-color: #121212;
  font-family: 'MS PGothic', monospace;
  color: #FFFFFF;
  filter: brightness(.6) contrast(1.3);
}

h1 {
  font-weight: 400;
  margin-top: 2.5rem;
  margin-bottom:2.5rem;
  font-size: 4.5rem;
  line-height: 1;
}

h2 {
  font-style: italic;
  font-weight: 400;
  margin-top: 2.1rem;
  margin-bottom: 1.4rem;
  font-size: 2.2rem;
  line-height: 1;
}

h3 {
  font-style: italic;
  font-weight: 400;
  font-size: 1.7rem;
  margin-top: 2rem;
  margin-bottom: 1.4rem;
  line-height: 1;
}

h4 {
  font-weight: 400;
  font-size: 1.7rem;
  margin-top: 1rem;
  margin-bottom: 1.4rem;
  line-height: 1;
}

hr {
  display: block;
  height: 1px;
  width: 55%;
  border: 0;
  border-top: 1px solid var(--divider-color);
  margin: 1em 0;
  padding: 0;
}

p.subtitle {
  font-style: italic;
  margin-top: 1rem;
  margin-bottom: 1rem;
  font-size: 1.8rem;
  display: block;
  line-height: 1;
}

.danger {
  color: red;
}

section {
  padding-top: 1rem;
  padding-bottom: 1rem;
  padding-left: 2rem;
}

section:last-of-type {
  padding-bottom: 2rem;
}

p,
dl,
ol,
ul {
  font-size: 1.4rem;
  line-height: 2rem;
}

p {
  margin-top: 1.4rem;
  margin-bottom: 1.4rem;
  padding-right: 0;
  vertical-align: baseline;
}

blockquote {
  font-size: 1.4rem;
}

blockquote {
  margin: 1.5em 0 1.5em 2.5em;
  padding-left: 1em;
}

blockquote p {
  margin-right: 0;
}

blockquote footer {
  font-size: 1.1rem;
  text-align: right;
}

section > p,
section > footer,
section > table {
  width: 67%;
}

/* 50 + 5 == 55, to be the same width as paragraph */
section > dl,
section > ol,
section > ul {
  width: 50%;
  -webkit-padding-start: 5%;
}

dt:not(:first-child),
li:not(:first-child) {
  margin-top: 0.25rem;
}

figure {
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  max-width: 65%;
  -webkit-margin-start: 0;
  -webkit-margin-end: 0;
  margin: 0 0 3em 0;
  background-color: var(--title-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  padding: 1%;
  transform: translate(-7%,0%);
}

figcaption {
  text-align: center;
  clear: right;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1.1rem;
  line-height: 1.6;
  vertical-align: baseline;
  max-width: 95%;
}

figure.fullwidth figcaption {
  margin-right: 24%;
}


/* Sidenotes, margin notes, figures, captions */
img {
  max-width: 100%;
}

.sidenote,
.marginnote {
  float: right;
  clear: right;
  margin-right: -40%;
  width: 35%;
  margin-top: 0.3rem;
  margin-bottom: 0;
  font-size: 1.1rem;
  line-height: 1.3;
  vertical-align: baseline;
  position: relative;
  background-color: var(--title-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  padding: 1%;
}

.sidenote-number {
  counter-increment: sidenote-counter;
}

.sidenote-number:after,
.sidenote:before {
  position: relative;
  vertical-align: baseline;
}

.sidenote-number:after {
  content: counter(sidenote-counter);
  font-size: 1rem;
  top: -0.5rem;
  left: 0.1rem;
}

.sidenote:before {
  content: counter(sidenote-counter) " ";
  font-size: 1rem;
  top: -0.5rem;
}

blockquote .sidenote,
blockquote .marginnote {
  margin-right: -82%;
  min-width: 59%;
  text-align: left;
}

div.fullwidth,
table.fullwidth {
  width: 100%;
}

div.table-wrapper {
  overflow-x: auto;
  font-family: "Trebuchet MS", "Gill Sans", "Gill Sans MT", sans-serif;
}

.sans {
  font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
  letter-spacing: .03em;
}

code, pre > code {
  font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
  font-size: 1.0rem;
  line-height: 1.42;
  -webkit-text-size-adjust: 100%;
}

.sans > code {
  font-size: 1.2rem;
}

h1 > code,
h2 > code,
h3 > code {
  font-size: 0.80em;
}

.marginnote > code,
.sidenote > code {
  font-size: 1rem;
}

pre > code {
  font-size: 0.9rem;
  width: 52.5%;
  margin-left: 2.5%;
  overflow-x: auto;
  display: block;
}

pre.fullwidth > code {
  width: 90%;
}

.fullwidth {
  max-width: 90%;
  clear:both;
}

span.newthought {
  font-variant: small-caps;
  font-size: 1.2em;
}

input.margin-toggle {
  display: none;
}

label.sidenote-number {
  display: inline-block;
  max-height: 2rem; /* should be less than or equal to paragraph line-height */
}

label.margin-toggle:not(.sidenote-number) {
  display: none;
}

.iframe-wrapper {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  padding-top: 25px;
  height: 0;
}

.iframe-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

@media (orientation: portrait) {
  html {
    font-size: min(1.5vw, 24px);
  }
  .catalog > *,.halves {
    width: 100%;
  }
  .alpha {
    column-count: 1;
  }
}

@media (orientation: landscape) {
  .hp > * {
    width:25%;
  }
  .hp > *:nth-child(1) {
    width:50%;
  }
  .hp > *:nth-child(2) {
    order:-1;
  }
  .halves {
    width: 50%;
  }
}

@media (max-width: 760px) {
  body {
    width: 84%;
    padding-left: 8%;
    padding-right: 8%;
  }

  hr,
  section > p,
  section > footer,
  section > table {
    width: 100%;
  }

  pre > code {
    width: 97%;
  }

  section > dl,
  section > ol,
  section > ul {
    width: 90%;
  }

  figure {
    max-width: 90%;
  }

  figcaption,
  figure.fullwidth figcaption {
    margin-right: 0%;
    max-width: none;
  }

  blockquote {
    margin-left: 1.5em;
    margin-right: 0em;
  }

  blockquote p,
  blockquote footer {
    width: 100%;
  }

  label.margin-toggle:not(.sidenote-number) {
    display: inline;
  }

  .sidenote,
  .marginnote {
    display: none;
  }

  .margin-toggle:checked + .sidenote,
  .margin-toggle:checked + .marginnote {
    display: block;
    float: left;
    left: 1rem;
    clear: both;
    width: 95%;
    margin: 1rem 2.5%;
    vertical-align: baseline;
    position: relative;
  }

  label {
    cursor: pointer;
  }

  div.table-wrapper,
  table {
    width: 85%;
  }

  img {
    width: 100%;
  }
}


/* ==========================================================================
   PART 2 — WORDPRESS INTEGRATION
   Maps the look above onto WordPress's own blocks and markup.
   ========================================================================== */

.onpu-sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Keep the scrolling background still for people who ask for less motion */
@media (prefers-reduced-motion: reduce) {
  html { animation: none; }
  * { transition-duration: 0s !important; }
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 3px dashed var(--link-hover);
  outline-offset: 3px;
}

/* ---------- Header: site title as letter tiles (recreates #letters) ---------- */

.onpu-header {
  padding-top: 1.5rem;
}

.onpu-letters {
  font-size: min(5.5vw, 88px);
  line-height: 1.3;
  margin: 0 0 1rem;
}

.onpu-letters a {
  color: inherit;
  text-decoration: none;
}

.onpu-letters .onpu-letter {
  display: inline-block;
  padding: 0 0.22em;
  margin: 0.08em 0.12em;
  border: 2px solid var(--border-color);
  border-radius: 10px;
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  background-color: var(--title-color);
  transition-duration: 1s;
}

.onpu-letters .onpu-letter:hover {
  scale: 1.1;
}

.onpu-letters .onpu-letter-space {
  display: inline-block;
  width: 0.35em;
}

/* ---------- Header: navigation as the original button tiles ---------- */

.onpu-nav {
  margin: 1rem 0 2.5rem;
}

header .wp-block-navigation__container,
header .wp-block-page-list {
  gap: 1.5rem;
  flex-wrap: wrap;
}

/* The original "li + li gets margin-top" rule knocks a row of tiles out of line */
header ul > li:not(:first-child) {
  margin-top: 0;
}

header .wp-block-navigation li {
  padding: 0.6em 1.1em;
}

header .wp-block-navigation li:hover {
  scale: 1.05;
}

header .wp-block-navigation a {
  text-decoration: none;
}

header .wp-block-navigation .wp-block-navigation__submenu-container {
  background-color: var(--cont-color) !important;
  border: 2px solid var(--border-color) !important;
}

@media (orientation: portrait) {
  header ul li,
  #headerLinks a {
    font-size: min(3.5vw, 56px);
  }
  .onpu-letters {
    font-size: min(9vw, 144px);
  }
}

/* ---------- Main + footer ---------- */

.onpu-main {
  padding-bottom: 2rem;
}

.onpu-footer {
  margin-top: 3rem;
  padding: 1rem 2rem;
  background-color: var(--title-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
}

.onpu-footer .wp-block-site-title {
  font-size: 2.2rem;
  margin: 0.5rem 0 0;
}

/* ---------- Post lists (home, archive, search) use .index + .entry ---------- */

.index .wp-block-post-template {
  padding-left: 0;
  margin-top: 0;
}

.index .entry .wp-block-post-title {
  margin-top: 0;
}

.wp-block-post-date {
  font-style: italic;
}

.index .wp-block-post-excerpt__more-link {
  display: inline-block;
  margin-top: 0.5rem;
  text-decoration: underline;
}

.wp-block-query-pagination {
  font-size: 1.6rem;
  margin-top: 2rem;
}

.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
  padding: 0.2em 0.6em;
}

.wp-block-query-pagination .page-numbers.current {
  background-color: var(--title-color);
  border: 2px solid var(--border-color);
  border-radius: 10px;
}

/* ---------- Single posts and pages: tab heading sitting on a notebook page ---------- */

.onpu-post {
  margin-top: 1rem;
}

.wp-block-post-title.hp-heading,
.wp-block-query-title.hp-heading,
.onpu-post > .hp-heading {
  position: relative;
  z-index: 1;
  margin: 0;
  width: fit-content;
  max-width: calc(100% - 4rem);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  overflow-wrap: anywhere;
}

.onpu-post > .hp-cont {
  margin-top: 0;
  padding-top: 4rem;
}

/* The notebook page already has its own padding */
.hp-cont .wp-block-post-content {
  text-align: left;
}

/* Your original CSS removes list bullets everywhere; bring them back inside posts */
.wp-block-post-content ul {
  list-style: disc;
}

.wp-block-post-content ol {
  list-style: decimal;
}

.wp-block-post-terms {
  font-size: 1.2rem;
  font-style: italic;
  margin-top: 1rem;
}

.onpu-post-nav {
  margin-top: 2rem;
  font-size: 1.4rem;
}

/* ---------- Comments ---------- */

.wp-block-comments {
  margin-top: 3rem;
  padding-top: 1rem;
  border-top: 2px dashed var(--border-color);
}

.wp-block-comment-template {
  list-style: none;
  padding-left: 0;
}

.wp-block-comment-template ol {
  list-style: none;
}

.onpu-comment {
  background-color: var(--title-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  padding: 1rem 1.5rem;
  margin-bottom: 1.5rem;
}

.onpu-comment .wp-block-comment-author-name {
  font-size: 1.5rem;
}

img.avatar {
  width: auto;
}

/* ---------- Forms and buttons ---------- */

.wp-block-post-comments-form input:not([type="submit"]):not([type="checkbox"]),
.wp-block-post-comments-form textarea,
.wp-block-search__input {
  background-color: var(--cont-color);
  color: var(--font-color);
  border: 2px solid var(--border-color);
  border-radius: 10px;
  padding: 0.5em 0.8em;
  font: inherit;
  font-size: 1.3rem;
}

.wp-element-button,
.wp-block-button__link,
.wp-block-search__button,
.wp-block-post-comments-form input[type="submit"] {
  font-size: 1.4rem;
  color: var(--font-color);
  background-color: var(--title-color);
  border: 2px solid var(--border-color);
  border-radius: 10px;
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  padding: 0.5em 1.2em;
  cursor: pointer;
  transition: scale 0.3s;
}

.wp-element-button:hover,
.wp-block-button__link:hover,
.wp-block-search__button:hover,
.wp-block-post-comments-form input[type="submit"]:hover {
  scale: 1.05;
  color: var(--link-hover);
}

/* ---------- Block style variations (see functions.php) ---------- */

/* Group → Card (like .let / .book) */
.wp-block-group.is-style-onpu-card {
  background-color: var(--cont-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 0.3em 0.3em, var(--shadow-2) 0.6em 0.6em;
  padding: 2.5%;
}

/* Group → Notebook page (like .note / .blog) */
.wp-block-group.is-style-onpu-notebook {
  background-color: var(--cont-color);
  border: 2px var(--border-color);
  border-style: solid solid solid dashed;
  border-radius: 0 15px 15px 0;
  box-shadow: var(--shadow-1) 0.3em 0.3em, var(--shadow-2) 0.6em 0.6em;
  padding: 2.5%;
}

/* Heading → Title box (like .heading) */
.wp-block-heading.is-style-onpu-tab {
  background-color: var(--title-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  padding: 0.6em 2%;
  transform: translate(-3%, 3%);
}

/* Image → Stair-step frame (like .rev > img) */
.wp-block-image.is-style-onpu-framed img {
  border-top: 2px solid var(--border-color);
  border-left: 2px solid var(--border-color);
  box-shadow: 0px 1px 0px 0px var(--border-color), 1px 0px 0px 0px var(--border-color), 1px 2px 0px 0px var(--border-color), 2px 1px 0px 0px var(--border-color), 2px 3px 0px 0px var(--border-color), 3px 2px 0px 0px var(--border-color), 3px 4px 0px 0px var(--border-color), 4px 3px 0px 0px var(--border-color), 4px 5px 0px 0px var(--border-color), 5px 4px 0px 0px var(--border-color);
}

/* List → Tiles (like .list li) */
.wp-block-list.is-style-onpu-tiles {
  list-style: none;
  padding-left: 0;
}

.wp-block-list.is-style-onpu-tiles li {
  background-color: var(--title-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 0.3em 0.3em, var(--shadow-2) 0.6em 0.6em;
  padding: 1rem 1.5rem;
  margin-bottom: 1.5rem;
}


/* ==========================================================================
   PART 3 — THREE-COLUMN HOMEPAGE (templates/home.html)
   ========================================================================== */

.onpu-home {
  gap: 3rem;
  align-items: flex-start;
  margin-top: 1rem;
}

/* Side cards: "archive (chrono)" / "archive (catego)" */
.onpu-archive {
  background-color: var(--cont-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 0.3em 0.3em, var(--shadow-2) 0.6em 0.6em;
  padding: 0 2rem 2rem;
  margin-top: 1.5rem;
}

.onpu-archive > .onpu-archive-title {
  margin: 0 0 1rem;
  padding: 1.2rem;
  width: calc(100% + 1rem);
  box-sizing: border-box;
  transform: translate(-2.5rem, -1rem);
  background-color: var(--title-color);
  border: 2px solid var(--border-color);
  box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  font-size: 3.2rem;
  line-height: 1.1;
}

.onpu-archive-group {
  font-size: 3.2rem;
  margin: 2rem 0 1.5rem;
}

.onpu-archive-group a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 2px;
}

.onpu-archive-items {
  list-style: none;
  padding-left: 0;
  margin: 0;
  font-size: 1.7rem;
  line-height: 1.4;
}

.onpu-archive-items li {
  margin: 0;
  padding-top: 1.2rem;
}

.onpu-archive-items li:not(:last-child)::after {
  content: "";
  display: block;
  width: 55%;
  margin-top: 1.2rem;
  border-top: 1px solid var(--divider-color);
}

/* Middle column: post cards */
.onpu-feed .wp-block-post-template {
  padding-left: 0;
  margin-top: 0;
}

.onpu-feed .entry {
  background-color: var(--cont-color);
  padding: 4rem 5rem 3rem;
  margin-bottom: 4rem;
  display: flow-root;
}

.onpu-feed .entry .wp-block-post-title {
  margin: 0 0 2rem;
  padding-bottom: 0.1em;
  border-bottom: 2px solid var(--border-color);
  font-size: 3.6rem;
}

.onpu-feed .wp-block-post-excerpt__excerpt {
  font-size: 1.7rem;
  line-height: 1.4;
}

.onpu-feed .wp-block-post-featured-image {
  float: right;
  width: 30%;
  max-width: 30%;
  margin: 0 0 1rem 2rem;
  transform: none;
}

.onpu-feed .wp-block-post-date {
  font-size: 1.2rem;
  clear: both;
}

/* Phones: posts first, archives after */
@media (max-width: 781px) {
  .onpu-home > .onpu-col-feed {
    order: -1;
  }
  .onpu-feed .entry {
    padding: 2rem;
  }
}


/* ==========================================================================
   PART 4 — SUBTITLES (uses the original p.subtitle look)
   ========================================================================== */

p.onpu-subtitle:empty {
  display: none;
}

.entry .onpu-subtitle {
  margin: -1rem 0 2rem;
  font-size: 2rem;
  line-height: 1.2;
}

.hp-cont > .onpu-subtitle {
  margin: 0 0 1.5rem;
  font-size: 2.2rem;
  line-height: 1.2;
  text-align: left;
}


/* ==========================================================================
   PART 5 — FOOTNOTES SHOWN AS SIDENOTES (assets/js/sidenotes.js)
   Wide screens: notes sit outside the post card, in the page margin, without
   changing the width of the post text. Narrower screens: the normal footnote
   list at the end of the post.
   ========================================================================== */

.onpu-sidenote {
  display: none;
}

.wp-block-footnotes {
  margin-top: 3rem;
  padding-top: 1.5rem;
  border-top: 2px dashed var(--border-color);
  font-size: 1.3rem;
  line-height: 1.5;
}

sup.fn a {
  text-decoration: none;
  font-weight: bold;
  padding: 0 0.1em;
}

body {
  overflow-x: clip;
}

@media (orientation: landscape) and (min-width: 1000px) {
  .onpu-sidenotes-ready > .wp-block-footnotes {
    display: none;
  }

  /* Width 12rem; pushed past the card's 2rem padding, its border and a 2rem gap.
     The negative margin is larger than the note's width, so text doesn't wrap around it. */
  .onpu-sidenotes-ready > .onpu-sidenote {
    display: block;
    float: right;
    clear: right;
    width: 12rem;
    max-width: none;
    margin: 0 calc(-12rem - 4rem - 2px) 1.2rem 0 !important;
    padding: 0.8rem 1rem;
    box-sizing: border-box;
    font-size: 1.2rem;
    line-height: 1.4;
    text-align: left;
    background-color: var(--title-color);
    border: 2px solid var(--border-color);
    box-shadow: var(--shadow-1) 5px 5px, var(--shadow-2) 10px 10px;
  }

  .onpu-sidenote-num {
    font-weight: bold;
    margin-right: 0.3em;
  }

  .onpu-sidenote.is-flashing {
    animation: onpu-note-flash 1.2s ease-out;
  }
}

@keyframes onpu-note-flash {
  0%, 30% {
    outline: 3px solid var(--link-hover);
    outline-offset: 4px;
  }
  100% {
    outline: 3px solid transparent;
    outline-offset: 4px;
  }
}

/* ==========================================================================
   PART 6 — FONTS, POST TEXT SIZE, CARD PREVIEWS, COLLAPSIBLE YEARS
   ========================================================================== */

/* Cinzel has no italic; keep headings upright instead of a fake slant */
h1, h2, h3, h4 {
  font-style: normal;
}

/* Post and page body text: 14pt */
.onpu-post .wp-block-post-content :is(p, ul, ol, dl, blockquote, td, th) {
  font-size: 14pt;
  line-height: 1.55;
}

.onpu-post .wp-block-post-content :is(li, dd) {
  font-size: inherit;
}

/* Date at the top of a post matches the body text */
.hp-cont > .wp-block-post-date {
  font-size: 14pt;
}

/* Post card previews (onpu/post-preview block) */
.onpu-preview p {
  font-size: 1.7rem;
  line-height: 1.45;
  margin: 0 0 1.2rem;
}

.index .onpu-preview-more {
  display: inline-block;
  margin-bottom: 1.2rem;
  font-size: 1.5rem;
  text-decoration: underline;
}

/* "archive (chrono)": one collapsible section per year */
.onpu-archive-year > summary.onpu-archive-group {
  font-size: 3.2rem;
  font-weight: 400;
  line-height: 1.1;
  margin: 2rem 0 1rem;
  cursor: pointer;
}

.onpu-archive-year > summary::marker {
  font-size: 0.6em;
}

.onpu-archive-year:not([open]) > summary.onpu-archive-group {
  margin-bottom: 0;
}
