@font-face {
  font-family: "Harugalpi Proof Serif";
  src: url("/assets/fonts/calendar-serif-30.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Harugalpi Proof Sans";
  src: url("/assets/fonts/harugalpi-proof-sans-v6.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
:root { color-scheme: light; background: #f7f3e8; color: #252a27; }
* { box-sizing: border-box; }
body { margin: 0; font-family: "Harugalpi Proof Serif", serif; font-weight: 400; }
.sheet { width: calc(100% - 48px); max-width: 480px; margin: 32px auto 64px; }
.brand { margin: 0 0 16px; font: 400 16px/1.5 "Harugalpi Proof Sans", sans-serif; }
.date { margin: 0 0 16px; color: #526058; font: 400 14px/1.6 "Harugalpi Proof Sans", sans-serif; }
/* D03 only: center the entire scene; the viewport removes blank paper. */
.art-frame { position: relative; width: 100%; aspect-ratio: 1097.142857 / 709; overflow: hidden; margin-bottom: 16px; }
.art {
  position: absolute;
  display: block;
  width: 140%;
  height: auto;
  max-width: none;
  left: -20%;
  top: -24.8236953%;
}
h1 { margin: 0 0 16px; font-size: 24px; font-weight: 400; line-height: 1.45; word-break: keep-all; overflow-wrap: anywhere; }
.reading { font-size: 20px; line-height: 1.75; word-break: keep-all; overflow-wrap: anywhere; }
.reading p { margin: 0; }
.reading p + p { margin-top: 24px; }
.image-save { margin-top: 32px; padding-top: 24px; border-top: 1px solid #ced4ca; font-family: "Harugalpi Proof Sans", sans-serif; }
.preview { margin-top: 32px; padding-top: 16px; border-top: 1px solid #ced4ca; font-family: "Harugalpi Proof Sans", sans-serif; }
summary { min-height: 44px; padding: 10px 0; color: #314f43; font-size: 15px; line-height: 24px; cursor: pointer; }
figure { margin: 16px 0 20px; }
.lock-preview { display: block; width: 100%; height: auto; }
figcaption { margin-top: 12px; color: #526058; font-size: 13px; line-height: 1.6; }
.save { display: inline-block; min-height: 44px; padding: 12px 16px; background: #314f43; color: #fff; font-size: 16px; line-height: 24px; text-decoration: none; }
.save:hover { background: #252a27; }
.save-note { margin: 16px 0 0; color: #526058; font-size: 14px; line-height: 1.7; }
footer { margin-top: 40px; color: #526058; font: 400 13px/1.7 "Harugalpi Proof Sans", sans-serif; }
:focus-visible { outline: 2px solid #314f43; outline-offset: 5px; }
::selection { background: #314f43; color: #fff; }
/* Keep the reading typography and woodcut geometry from the approved D03 proof. */
.date, .storage, footer, .information { font-family: system-ui, sans-serif; }
.storage { margin-top: 28px; padding-top: 22px; border-top: 1px solid #ced4ca; }
.storage p { margin: 8px 0; font-size: 14px; line-height: 1.7; color: #526058; }
.storage button { min-height: 44px; padding: 10px 20px; border: 0; background: #314f43; color: #fff; font: inherit; cursor: pointer; }
.storage button:disabled, .storage button[aria-disabled="true"] { opacity: .7; cursor: wait; }
.storage details { margin-top: 12px; }
.storage a, nav a, .information a { display: inline-block; padding: 10px 0; min-height: 44px; color: #314f43; text-underline-offset: .2em; }
.storage [hidden], #save-status:empty { display: none; }
.information { line-height: 1.8; font-size: 18px; }
.information h1 { font-size: 26px; }
.device-downloads { margin: 0 0 16px; font-family: system-ui, sans-serif; }
.device-downloads h2 { margin: 0 0 10px; font-size: 1.1rem; }
.device-downloads a { display: inline-flex; align-items: center; gap: .35em; min-height: 44px; padding: 0 .8em; margin: 0 .2em .4em 0; border: 1px solid #78867d; border-radius: 4px; color: #314f43; text-decoration: none; }
.device-downloads small { color: #526058; font-size: .78em; }
.device-downloads a:hover, .device-downloads a:focus-visible { text-decoration: underline; }
