/*
boluobao — styles
A calm, warm, intimate design.
*/


/*👆 \1F446 */
details.intro {
  position: relative;
  & > summary:first-of-type {
    cursor: pointer;
    display: list-item;
    list-style-type: disclosure-closed;
    [open] > & {
      list-style-type: disclosure-open;
    }
  }
  &::after {
    content: url("/icons/1F446.svg");
    width: 1.1em;
    opacity: 0;
    top: 2.0rem;
    left: -1.05rem;
    position: absolute;
    z-index: 10;
    animation: detailsClick 2.5s ease-in-out 0.75s forwards;
  }
}

@keyframes detailsClick {
  0% {
    transform: scale(1) rotate(0deg) translateY(0);
    opacity: 0;
  }
  15% {
    transform: scale(1.05) rotate(0deg) translateY(-1.4rem) translateX(0.35rem);
    opacity: 1;
  }
  20%, 35% {
    transform: scale(1.15) rotate(0deg) translateY(-1.4rem) translateX(0.325rem);
    opacity: 1;
  }
  45% {
    transform: scale(1.275) rotate(5deg) translateY(-1.25rem) translateX(0.35rem);
    opacity: 1;
  }
  55% {
    transform: scale(1.275) rotate(5deg) translateY(-1.25rem) translateX(0.40rem) rotateX(20deg);
    opacity: 1;
  }
  65% {
    transform: scale(1.25) rotate(5deg) translateY(-1.25rem) translateX(0.50rem) rotateX(35deg);
    opacity: 1;
  }
  75%, 90% {
    transform: scale(1.25) rotate(0deg) translateY(-1.25rem) translateX(0.55rem);
    opacity: 0.95;
  }
  100% {
    transform: scale(1.15) rotate(0deg) translateY(-1.25rem) translateX(0.55rem);
    opacity: 0;
    outline: none;
  }
}

svg.inline.peace {
  display: inline;
  --offset-y: 0.3rem;
  transform: translateY(var(--offset-y));
  animation:
    handAppear 0.5s ease-out 0.5s forwards,
    handWave 2.5s ease-in-out 25ms;
  transform-origin: bottom center;
  &:hover {
    animation: inherit;
  }
  & + .handwritten.inline {
    margin-inline-start: 0.1em;
    margin-inline-end: -0.1em;
    & + .hanzi {
      font-size: larger;
    }
  }
}

@keyframes handAppear {
  0% {
    transform: scale(0) rotate(0deg) translateY(var(--offset-y));
    opacity: 0;
  }
  60% {
    transform: scale(1.2) rotate(0deg) translateY(var(--offset-y));
    opacity: 1;
  }
  100% {
    transform: scale(1) rotate(0deg) translateY(var(--offset-y));
    opacity: 1;
  }
}

@keyframes handWave {
  0% {
    transform: rotate(0deg) translateY(var(--offset-y));
  }
  10% {
    transform: rotate(10deg) translateY(var(--offset-y));
  }
  20% {
    transform: rotate(-15deg) translateY(var(--offset-y));
  }
  30% {
    transform: rotate(-15deg) translateY(var(--offset-y));
  }
  40% {
    transform: rotate(-15deg) translateY(var(--offset-y));
  }
  50% {
    transform: rotate(0deg) translateY(var(--offset-y));
  }
  60% {
    transform: rotate(0deg) translateY(var(--offset-y));
  }
  100% {
    transform: rotate(0deg) translateY(var(--offset-y));
  }
}

@font-face {
  font-family: "YShiWritten";
  font-display: fallback;
  size-adjust: 100%;
  src:
    local("YShiWritten-Regular"),
    url("YShiWritten-Regular.woff2") format("woff2");
}

@font-face {
  font-family: "YuppySC";
  font-display: fallback;
  size-adjust: 100%;
  src:
    local("YuppySC-Regular"),
    url("YuppySC-Regular.woff2") format("woff2");
}

@font-face {
  font-family: "Southpaw";
  font-display: fallback;
  size-adjust: 100%;
  src:
    url("southpaw-webfont") format("woff");
}

@font-face {
	font-family: "ScriboRough";
	font-weight: 1 1000;
	font-display: auto;
	size-adjust: 125%;
	font-style: normal italic;
	font-feature-settings:
      "liga" on,
      "dlig" on,
      "calt" on,
      "zero" on,
      "ss04" on;   /* underlines ==== */
	src:
    local("ScriboRoughPro-Regular.woff2"),
    url("ScriboRoughPro-Regular.woff2") format(woff2);
}

@font-face {
  font-family: "OpenMojiBlack";
  font-display: fallback;
  size-adjust: 100%;
  src:
    local("OpenMoji-black-glyf"),
    url("OpenMoji-black-glyf.woff2") format("woff2"),
    url("https://raw.githubusercontent.com/hfg-gmuend/openmoji/5ac4182/font/OpenMoji-black-glyf/OpenMoji-black-glyf.woff2") format("woff2");
  unicode-range: U+A9,U+AE,U+200D,U+203C,U+2049,U+20E3,U+2117,U+2120,U+2122,U+2139,U+2194-2199,U+21AA,U+229C,U+231A,U+231B,U+2328,U+23CF,U+23E9-23F3,U+23F8-23FE,U+24C2,U+25A1,U+25AA-25AE,U+25B6,U+25C0,U+25C9,U+25D0,U+25D1,U+25E7-25EA,U+25ED,U+25EE,U+25FB-25FE,U+2600-2605,U+260E,U+2611,U+2614,U+2615,U+2618,U+261D,U+2620,U+2622,U+2623,U+2626,U+262A,U+262E,U+262F,U+2638-263A,U+2640,U+2642,U+2648-2653,U+265F,U+2660,U+2663,U+2665,U+2666,U+2668,U+267B,U+267E,U+267F,U+2691-2697,U+2699,U+269B,U+269C,U+26A0,U+26A1,U+26A7,U+26AA,U+26AB,U+26B0,U+26B1,U+26BD,U+26BE,U+26C4,U+26C5,U+26C8,U+26CE,U+26CF,U+26D1,U+26D3,U+26D4,U+26E9,U+26EA,U+26F0-26F5,U+26F7-26FA,U+26FD,U+2702,U+2705,U+2708-270D,U+270F,U+2712,U+2714,U+2716,U+271D,U+2721,U+2728,U+2733,U+2734,U+2744,U+2747,U+274C,U+274E,U+2753-2755,U+2757,U+2763,U+2764,U+2795-2797,U+27A1,U+27B0,U+27BF,U+2934,U+2935,U+2B05-2B07,U+2B0C,U+2B0D,U+2B1B,U+2B1C,U+2B1F-2B24,U+2B2E,U+2B2F,U+2B50,U+2B55,U+2B58,U+2B8F,U+2BBA-2BBC,U+2BC3,U+2BC4,U+2BEA,U+2BEB,U+3030,U+303D,U+3297,U+3299,U+E000-E009,U+E010,U+E011,U+E040-E06D,U+E080-E0B4,U+E0C0-E0CC,U+E0FF-E10D,U+E140-E14A,U+E150-E157,U+E181-E189,U+E1C0-E1C4,U+E1C6-E1D9,U+E200-E216,U+E240-E269,U+E280-E283,U+E2C0-E2C4,U+E2C6-E2DA,U+E300-E303,U+E305-E30F,U+E312-E316,U+E318-E322,U+E324-E329,U+E32B,U+E340-E348,U+E380,U+E381,U+F000,U+F77A,U+F8FF,U+FE0F,U+1F004,U+1F0CF,U+1F10D-1F10F,U+1F12F,U+1F16D-1F171,U+1F17E,U+1F17F,U+1F18E,U+1F191-1F19A,U+1F1E6-1F1FF,U+1F201,U+1F202,U+1F21A,U+1F22F,U+1F232-1F23A,U+1F250,U+1F251,U+1F260-1F265,U+1F300-1F321,U+1F324-1F393,U+1F396,U+1F397,U+1F399-1F39B,U+1F39E-1F3F0,U+1F3F3-1F3F5,U+1F3F7-1F4FD,U+1F4FF-1F53D,U+1F549-1F54E,U+1F550-1F567,U+1F56F,U+1F570,U+1F573-1F57A,U+1F587,U+1F58A-1F58D,U+1F590,U+1F595,U+1F596,U+1F5A4,U+1F5A5,U+1F5A8,U+1F5B1,U+1F5B2,U+1F5BC,U+1F5C2-1F5C4,U+1F5D1-1F5D3,U+1F5DC-1F5DE,U+1F5E1,U+1F5E3,U+1F5E8,U+1F5EF,U+1F5F3,U+1F5FA-1F64F,U+1F680-1F6C5,U+1F6CB-1F6D2,U+1F6D5-1F6D7,U+1F6DC-1F6E5,U+1F6E9,U+1F6EB,U+1F6EC,U+1F6F0,U+1F6F3-1F6FC,U+1F7E0-1F7EB,U+1F7F0,U+1F90C-1F93A,U+1F93C-1F945,U+1F947-1F9FF,U+1FA70-1FA7C,U+1FA80-1FA88,U+1FA90-1FABD,U+1FABF-1FAC5,U+1FACE-1FADB,U+1FAE0-1FAE8,U+1FAF0-1FAF8,U+1FBC5-1FBC9,U+E0061-E0067,U+E0069,U+E006C-E0079,U+E007F;
}

:root {
  /* Warm cream and muted rose palette */
  --color-bg: #faf6f1;
  --color-bg-subtle: #f3ede5;
  --color-text: #3d3632;
  --color-text-muted: #8a7e76;
  --color-accent: #c4908a;
  --color-accent-soft: #ddb8b3;
  --color-accent-hover: #b07a74;
  --color-border: #e8ddd4;

  /* Typography */
  --font-serif: OpenMojiBlack, "Lora", Georgia, "Times New Roman", serif;
  --font-sans: OpenMojiBlack, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-hanzi: OpenMojiBlack, "YShiWritten", "YuppySC", "Noto Sans SC", "PingFang SC", sans-serif;
  --font-handwritten: OpenMojiBlack, "Southpaw", "YShiWritten", "YuppySC", "Noto Sans SC", "PingFang SC", sans-serif;
  --font-tight: OpenMojiBlack, "ScriboRough", "Southpaw", "YShiWritten", "YuppySC", "Noto Sans SC", "PingFang SC", sans-serif;

  /* Spacing */
  --space-3xs: 0.125rem;
  --space-2xs: 0.25rem;
  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2.5rem;
  --space-xl: 4rem;
  --space-2xl: 6rem;

  /* shadows */
  --shadow-small: 0 1px 2px 0 rgb(0 0 0 / .05);
  --shadow-medium: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);
  --shadow-large: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);

   /*radius */
  --radius-small: .125rem;
  --radius-medium: .375rem;
  --radius-large: .75rem;
  --radius-full: 9999px;

  /* Layout */
  /*--content-width: 600px;*/
  --content-width: min(85dvi, 55rem);
  --content-min-width: 45rem;
}

/* ---- Reset & Base ---- */

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 18px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--font-sans);
  font-weight: 300;
  color: var(--color-text);
  background-color: var(--color-bg);
  line-height: 1.7;
  min-height: 100svh;
  display: flex;
  flex-direction: column;

  & figure:has(img,video) {
    border: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    text-align: center;
    margin-inline: auto;
    max-width: 100%;

    video,
    img {
      box-shadow: var(--shadow-small), var(--shadow-medium), var(--shadow-large);
      border-radius: var(--radius-large);
      border: 0;
      max-width: 100%;
    }

    > figcaption {
      font-size: 0.75em;
      font-style: italic;
      text-align: center;
      margin-block: var(--space-xs) var(--space-md);
    }
  }

  & span.emoji {
    display: inline-block;
    font-size: 90%;
  }
}

/* chinese characters */
:lang(zh) {
  font-family: var(--font-hanzi);
  font-variant-east-asian: simplified;
  font-size: larger;
  &.inline {
    font-size: revert;
    display: inline;
  }
}

/* handwritten english */
.handwritten:lang(en) {
  font-family: var(--font-handwritten);
  font-variant-east-asian: simplified;
  font-size: larger;
  blockquote & {
    display: inline-block;
    /*transform: translateY(0.25rem);*/
  }
  &.inline {
    display: inline;
  }
  &.tight {
    font-family: var(--font-tight);
  }
}

/* ---- Header / Nav ---- */

.site-header {
  padding: var(--space-md) var(--space-md);
}

.site-nav {
  min-width: var(--content-min-width);
  max-width: var(--content-width);
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

.nav-home {
  font-family: var(--font-serif);
  font-size: 1rem;
  font-weight: 500;
  color: var(--color-accent);
  text-decoration: none;
  letter-spacing: 0.02em;
}

.nav-home:hover {
  color: var(--color-accent-hover);
}

.nav-links {
  display: flex;
  gap: var(--space-sm);
}

.nav-links a {
  font-size: 0.78rem;
  color: var(--color-text-muted);
  text-decoration: none;
  letter-spacing: 0.04em;
  text-transform: lowercase;
}

.nav-links a:hover {
  color: var(--color-accent);
}

/* ---- Main Content ---- */

.site-main {
  flex: 2;
  min-width: var(--content-min-width);
  max-width: var(--content-width);
  margin-block: 0;
  margin-inline: auto;
  padding-block: var(--space-lg);
  padding-inline: var(--space-md);
}

/* ---- Post / Daily Content ---- */

.post {
  display: flex;
  flex-direction: column;
  min-height: 75svh;
  padding-block: var(--space-sm) 0;
  padding-inline: 0;
  & .center {
    text-align: center;
    margin-inline: auto;
  }
}

.post-date {
  display: flex;
  flex-direction: row;
  align-items: center;
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 400;
  color: var(--color-text-muted);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: var(--space-lg);
}

.post-format {
  display: inline-block;
  font-size: 0.7rem;
  color: var(--color-accent);
  background: transparent;
  border: 1px solid var(--color-border);
  border-radius: 2rem;
  padding: 0.15rem 0.6rem;
  margin-left: var(--space-xs);
  letter-spacing: 0.04em;
  text-transform: lowercase;
  vertical-align: middle;
}

.timeline-page,
.post-content {
  flex: 2;
  display: flex;
  flex-direction: column;
  font-family: var(--font-serif);
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.85;
  color: var(--color-text);

  & blockquote {
    margin-block: var(--space-sm) var(--space-md);
    padding-block: var(--space-3xs);
    padding-inline: var(--space-md);
    border-inline-start: 2px solid var(--color-accent-soft);
    font-size: 0.9em;
    font-style: italic;
    color: var(--color-text-muted);

    /* TODO: make bottom border vertically resizable */
    &.transclude {
      & > .content {
        height: 35svh;
        overflow-y: scroll;
        overflow-x: clip;
        resize: vertical;
      }
      border-inline-start: 0.75px solid var(--color-accent-soft);
      border-radius: var(--radius-large);
      box-shadow: var(--shadow-medium), var(--shadow-large);
      box-shadow: 0 -2px 2px 0 rgb(0 0 0 / .05), var(--shadow-large);
      padding-block: var(--space-sm);
      padding-inline: calc(var(--space-md) * 1.5) var(--space-md);
      font-style: normal;
      font-size: 0.85em;
      background-color: color-mix(in oklab, var(--color-bg-subtle), white 75%);
      scale: 0.975;
      text-wrap: pretty;

      & > .post-date {
        transition: all 100ms ease-in-out;
        &:hover {
          font-weight: 500;
          font-size: 0.72rem;
          color: var(--color-accent-hover);
          & > time {
            text-decoration-color: var(--color-accent-hover);
            &::before {
              color: var(--color-accent-hover);
              transform: translateX(2px);
            }
          }
        }
        width: fit-content;
        margin-block: var(--space-2xs) var(--space-sm);
        font-size: 0.7rem;
        text-decoration: none;

        /* it's a link back to the original post — look like one */
        & > time {
          text-decoration: underline;
          text-decoration-color: color-mix(in hsl, var(--color-accent-soft), transparent 20%);
          text-underline-offset: 0.2em;
          transition: all 100ms ease-in-out;
          &::before {
            content: "↩︎";
            rotate: 45deg;
            font-size: 0.80rem;
            position: absolute;
            left: var(--space-sm);
            display: inline-block;
            color: var(--color-accent);
            transition: all 100ms ease-in;
          }
        }

        & > .post-format {
          font-size: 0.62rem;
          padding: 0.015rem 0.5rem;
        }
      }

      &.taped {
        /* "taped up" — a hand-ripped piece of translucent washi tape on each
           corner, papercss-inspired jagged edges + varied rotation */
        position: relative;

        --tape-w: 5.25rem;
        --tape-h: 1.3rem;
        --tape-bg: linear-gradient(
          100deg,
          color-mix(in oklab, var(--color-accent-soft), transparent 60%),
          color-mix(in oklab, var(--color-accent-soft), transparent 45%)
        );
        /* jagged, hand-torn tape silhouette */
        --tape-clip: polygon(
          0% 15%, 3% 3%, 9% 9%, 16% 2%, 24% 8%, 32% 2%, 40% 9%, 48% 3%,
          56% 8%, 64% 2%, 72% 9%, 80% 3%, 88% 8%, 96% 2%, 100% 14%,
          98% 50%, 100% 86%, 95% 98%, 88% 92%, 80% 99%, 72% 92%, 64% 98%,
          56% 92%, 48% 98%, 40% 92%, 32% 98%, 24% 92%, 16% 98%, 8% 92%,
          3% 97%, 0% 85%, 2% 50%
        );

        &::before,
        &::after,
        & > .post-date::before,
        & > .post-date::after {
          content: "";
          position: absolute;
          z-index: 1;
          width: var(--tape-w);
          height: var(--tape-h);
          background: var(--tape-bg);
          clip-path: var(--tape-clip);
          box-shadow: 0 1px 2px rgb(0 0 0 / 8%);
          pointer-events: none;
        }

        &::before {
          top: calc(var(--tape-h) / -2);
          left: -1.4rem;
          transform: rotate(-7deg);
        }
        &::after {
          top: calc(var(--tape-h) / -2);
          right: -1.4rem;
          transform: rotate(6deg);
        }
        & > .post-date::before {
          bottom: calc(var(--tape-h) / -2);
          left: -1.4rem;
          transform: rotate(5deg);
        }
        & > .post-date::after {
          bottom: calc(var(--tape-h) / -2);
          right: -1.4rem;
          transform: rotate(-6deg);
        }
      }
    }
  }

  & hr {
    border: none;
    border-block-start: 1px solid color-mix(in hsl, var(--color-border), transparent 35%);
    margin-block: var(--space-xs) var(--space-md);
    &.footnotes-sep {
      margin-block: auto 0;
    }
  }
  & .footnotes {
    padding-block: 0;
    margin-block: 0 0;
    font-size: smaller;
    font-size: 0.7em;
    color: var(--color-text-muted);
    & .footnotes-list {
      margin-block-start: var(--space-sm);
      margin-block-end: 0;
    }
    .footnote-backref {
      color: var(--color-text-muted);
      text-decoration-color: transparent;
      transition: all 0.15s ease-in;
      &:hover {
        color: var(--color-accent-hover);
        text-decoration-color: color-mix(in hsl, var(--color-accent-hover), transparent 5%);
      }
    }
  }
  & .footnote-ref a {
    text-decoration: none;
    color: color-mix(in hsl, var(--color-text), transparent 20%);
    transition: all 0.15s ease-in;
    &:hover {
      color: var(--color-accent-hover);
      text-decoration-color: color-mix(in hsl, var(--color-accent-hover), transparent 5%);
    }
  }
}

.post-content p {
  margin-bottom: var(--space-md);
}

.post-content p:last-child {
  margin-bottom: 0;
}

.post-content ul,
.post-content ol {
  margin-bottom: var(--space-md);
  padding-left: var(--space-md);
}

.post-content li {
  margin-bottom: var(--space-xs);
}

.post-content em {
  font-style: italic;
}

.post-content strong {
  font-weight: 600;
}

/* ---- Post Navigation (prev/next) ---- */

.post-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-block: var(--space-md) 0;
  margin-block: var(--space-lg) 0;
  border-top: 1px solid var(--color-border);
}

.post-nav a {
  font-family: var(--font-sans);
  font-size: 0.82rem;
  color: var(--color-text-muted);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  transition: color 0.2s ease;
}

.post-nav a:hover {
  color: var(--color-accent);
}

.post-nav .nav-arrow {
  font-size: 1.1rem;
  line-height: 1;
}

.post-nav .nav-prev {
  margin-right: auto;
}

.post-nav .nav-next {
  margin-left: auto;
}

/* Placeholder for when there's no prev or next */
.post-nav .nav-spacer {
  flex: 1;
}

/* ---- Timeline Page ---- */

.timeline-page h1 {
  font-family: var(--font-serif);
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--color-text);
  margin-bottom: var(--space-xl);
}

.timeline {
  position: relative;
  padding-left: var(--space-lg);
}

.timeline::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.4rem;
  bottom: 0;
  width: 1px;
  background: var(--color-border);
}

.timeline-year {
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--color-accent);
  letter-spacing: 0.06em;
  margin-bottom: var(--space-sm);
  margin-top: var(--space-lg);
  position: relative;
}

.timeline-year:first-child {
  margin-top: 0;
}

.timeline-year::before {
  content: "";
  position: absolute;
  left: calc(var(--space-lg) * -1.05 + 0px);
  top: 50%;
  transform: translateY(-50%);
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--color-accent);
}

.timeline-entry {
  margin-bottom: var(--space-xs);
  position: relative;
}

/* convert to list items */
.timeline-entry::before {
  content: "";
  position: absolute;
  left: calc(var(--space-lg) * -1.03 + 0px);
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--color-text-muted);
}

.timeline-entry a {
  display: inline-flex;
  align-items: center;
  justify-items: left;
  vertical-align: middle;
  gap: 0.1rem;
  font-size: 0.85rem;
  font-family: var(--font-sans);
  color: var(--color-text);
  text-decoration: none;
  &:hover {
    & .entry-date {
      font-weight: 500;
      color: var(--color-accent);
    }
    & .entry-format {
      font-weight: 500;
    }
  }
  & .entry-date {
    min-width: 3.25rem;
    font-size: 0.78rem;
    color: var(--color-text-muted);
    transition: all 0.1s ease-in-out;
  }
  & .entry-format {
    min-width: 6rem;
    font-size: 0.7rem;
    color: var(--color-accent-soft);
    transition: all 0.1s ease-in-out;
  }
}




/* ---- About Page ---- */

.about-page {
  padding: var(--space-xl) 0;
}

.about-page h1 {
  font-family: var(--font-serif);
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--color-text);
  margin-bottom: var(--space-lg);
}

.about-content {
  font-family: var(--font-serif);
  font-size: 0.95rem;
  line-height: 1.85;
}

.about-content p {
  margin-bottom: var(--space-md);
}

/* ---- Footer ---- */

.site-footer {
  padding-block: var(--space-lg) var(--space-lg);
  text-align: center;
}

.site-footer p {
  font-size: 0.72rem;
  color: var(--color-text-muted);
  letter-spacing: 0.06em;
  text-transform: lowercase;
}

/* ---- 404 ---- */

/*body:has([class="404"]) > :where(.site-header,.site-footer) {
  display: none;
}*/
body:has([class="404"]) {
  & > :where(.site-header,.site-footer) {
    display: none;
  }
  min-height: 85svh;
  background: url("/404.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  :where(h1,h2,h3,h4,h5,h6) {
    display: none;
    font-weight: 200;
  }
}

/* ---- Responsive ---- */

@media (max-width: 640px) {
  :root {
    --content-min-width: revert;
  }
  html {
    font-size: 0.875rem;
  }
  .about-content {
    font-size: 1rem;
  }
  .post-content {
    font-size: 0.95rem;
  }

  .post-date {
    margin-block: 0 var(--space-md);
  }

  .post {
    padding-inline: 0;
    padding-block: var(--space-sm) 0;
  }

  .site-main {
    padding-inline: 0;
    width: 77.5%;
    padding-block: var(--space-md) 0;
    padding-block: 0;
  }
}
