/* node_modules/@fontsource/noto-serif/400.css */
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("./fonts/noto-serif-cyrillic-ext-400-normal-ZAIGZGB5.woff2") format("woff2"), url("./fonts/noto-serif-cyrillic-ext-400-normal-HVGPRLUB.woff") format("woff");
  unicode-range:
    U+0460-052F,
    U+1C80-1C8A,
    U+20B4,
    U+2DE0-2DFF,
    U+A640-A69F,
    U+FE2E-FE2F;
}
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("./fonts/noto-serif-cyrillic-400-normal-DQ3P2K7O.woff2") format("woff2"), url("./fonts/noto-serif-cyrillic-400-normal-CAS7QSH2.woff") format("woff");
  unicode-range:
    U+0301,
    U+0400-045F,
    U+0490-0491,
    U+04B0-04B1,
    U+2116;
}
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("./fonts/noto-serif-greek-ext-400-normal-XTJGCKFZ.woff2") format("woff2"), url("./fonts/noto-serif-greek-ext-400-normal-7ZDN2HM7.woff") format("woff");
  unicode-range: U+1F00-1FFF;
}
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("./fonts/noto-serif-greek-400-normal-OZQGWY2P.woff2") format("woff2"), url("./fonts/noto-serif-greek-400-normal-4XO7E6J2.woff") format("woff");
  unicode-range:
    U+0370-0377,
    U+037A-037F,
    U+0384-038A,
    U+038C,
    U+038E-03A1,
    U+03A3-03FF;
}
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("./fonts/noto-serif-math-400-normal-7CETQCEZ.woff2") format("woff2"), url("./fonts/noto-serif-math-400-normal-GBOC5CO4.woff") format("woff");
  unicode-range:
    U+0302-0303,
    U+0305,
    U+0307-0308,
    U+0310,
    U+0312,
    U+0315,
    U+031A,
    U+0326-0327,
    U+032C,
    U+032F-0330,
    U+0332-0333,
    U+0338,
    U+033A,
    U+0346,
    U+034D,
    U+0391-03A1,
    U+03A3-03A9,
    U+03B1-03C9,
    U+03D1,
    U+03D5-03D6,
    U+03F0-03F1,
    U+03F4-03F5,
    U+2016-2017,
    U+2034-2038,
    U+203C,
    U+2040,
    U+2043,
    U+2047,
    U+2050,
    U+2057,
    U+205F,
    U+2070-2071,
    U+2074-208E,
    U+2090-209C,
    U+20D0-20DC,
    U+20E1,
    U+20E5-20EF,
    U+2100-2112,
    U+2114-2115,
    U+2117-2121,
    U+2123-214F,
    U+2190,
    U+2192,
    U+2194-21AE,
    U+21B0-21E5,
    U+21F1-21F2,
    U+21F4-2211,
    U+2213-2214,
    U+2216-22FF,
    U+2308-230B,
    U+2310,
    U+2319,
    U+231C-2321,
    U+2336-237A,
    U+237C,
    U+2395,
    U+239B-23B7,
    U+23D0,
    U+23DC-23E1,
    U+2474-2475,
    U+25AF,
    U+25B3,
    U+25B7,
    U+25BD,
    U+25C1,
    U+25CA,
    U+25CC,
    U+25FB,
    U+266D-266F,
    U+27C0-27FF,
    U+2900-2AFF,
    U+2B0E-2B11,
    U+2B30-2B4C,
    U+2BFE,
    U+3030,
    U+FF5B,
    U+FF5D,
    U+1D400-1D7FF,
    U+1EE00-1EEFF;
}
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("./fonts/noto-serif-vietnamese-400-normal-7XKR3RZ2.woff2") format("woff2"), url("./fonts/noto-serif-vietnamese-400-normal-S362UGWB.woff") format("woff");
  unicode-range:
    U+0102-0103,
    U+0110-0111,
    U+0128-0129,
    U+0168-0169,
    U+01A0-01A1,
    U+01AF-01B0,
    U+0300-0301,
    U+0303-0304,
    U+0308-0309,
    U+0323,
    U+0329,
    U+1EA0-1EF9,
    U+20AB;
}
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("./fonts/noto-serif-latin-ext-400-normal-42B2SSZA.woff2") format("woff2"), url("./fonts/noto-serif-latin-ext-400-normal-SA5MNBC4.woff") format("woff");
  unicode-range:
    U+0100-02BA,
    U+02BD-02C5,
    U+02C7-02CC,
    U+02CE-02D7,
    U+02DD-02FF,
    U+0304,
    U+0308,
    U+0329,
    U+1D00-1DBF,
    U+1E00-1E9F,
    U+1EF2-1EFF,
    U+2020,
    U+20A0-20AB,
    U+20AD-20C0,
    U+2113,
    U+2C60-2C7F,
    U+A720-A7FF;
}
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("./fonts/noto-serif-latin-400-normal-OFDX7465.woff2") format("woff2"), url("./fonts/noto-serif-latin-400-normal-2EHITF5F.woff") format("woff");
  unicode-range:
    U+0000-00FF,
    U+0131,
    U+0152-0153,
    U+02BB-02BC,
    U+02C6,
    U+02DA,
    U+02DC,
    U+0304,
    U+0308,
    U+0329,
    U+2000-206F,
    U+20AC,
    U+2122,
    U+2191,
    U+2193,
    U+2212,
    U+2215,
    U+FEFF,
    U+FFFD;
}

/* node_modules/@fontsource/noto-serif/700.css */
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("./fonts/noto-serif-cyrillic-ext-700-normal-YIHDGKQ2.woff2") format("woff2"), url("./fonts/noto-serif-cyrillic-ext-700-normal-RHH3YYWP.woff") format("woff");
  unicode-range:
    U+0460-052F,
    U+1C80-1C8A,
    U+20B4,
    U+2DE0-2DFF,
    U+A640-A69F,
    U+FE2E-FE2F;
}
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("./fonts/noto-serif-cyrillic-700-normal-HHXKK2FF.woff2") format("woff2"), url("./fonts/noto-serif-cyrillic-700-normal-YXEEEH3J.woff") format("woff");
  unicode-range:
    U+0301,
    U+0400-045F,
    U+0490-0491,
    U+04B0-04B1,
    U+2116;
}
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("./fonts/noto-serif-greek-ext-700-normal-4QG7XO2J.woff2") format("woff2"), url("./fonts/noto-serif-greek-ext-700-normal-KNGWYPFM.woff") format("woff");
  unicode-range: U+1F00-1FFF;
}
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("./fonts/noto-serif-greek-700-normal-MH227E4E.woff2") format("woff2"), url("./fonts/noto-serif-greek-700-normal-ROYWEDGX.woff") format("woff");
  unicode-range:
    U+0370-0377,
    U+037A-037F,
    U+0384-038A,
    U+038C,
    U+038E-03A1,
    U+03A3-03FF;
}
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("./fonts/noto-serif-math-700-normal-QTIC47XR.woff2") format("woff2"), url("./fonts/noto-serif-math-700-normal-PBLA7KFZ.woff") format("woff");
  unicode-range:
    U+0302-0303,
    U+0305,
    U+0307-0308,
    U+0310,
    U+0312,
    U+0315,
    U+031A,
    U+0326-0327,
    U+032C,
    U+032F-0330,
    U+0332-0333,
    U+0338,
    U+033A,
    U+0346,
    U+034D,
    U+0391-03A1,
    U+03A3-03A9,
    U+03B1-03C9,
    U+03D1,
    U+03D5-03D6,
    U+03F0-03F1,
    U+03F4-03F5,
    U+2016-2017,
    U+2034-2038,
    U+203C,
    U+2040,
    U+2043,
    U+2047,
    U+2050,
    U+2057,
    U+205F,
    U+2070-2071,
    U+2074-208E,
    U+2090-209C,
    U+20D0-20DC,
    U+20E1,
    U+20E5-20EF,
    U+2100-2112,
    U+2114-2115,
    U+2117-2121,
    U+2123-214F,
    U+2190,
    U+2192,
    U+2194-21AE,
    U+21B0-21E5,
    U+21F1-21F2,
    U+21F4-2211,
    U+2213-2214,
    U+2216-22FF,
    U+2308-230B,
    U+2310,
    U+2319,
    U+231C-2321,
    U+2336-237A,
    U+237C,
    U+2395,
    U+239B-23B7,
    U+23D0,
    U+23DC-23E1,
    U+2474-2475,
    U+25AF,
    U+25B3,
    U+25B7,
    U+25BD,
    U+25C1,
    U+25CA,
    U+25CC,
    U+25FB,
    U+266D-266F,
    U+27C0-27FF,
    U+2900-2AFF,
    U+2B0E-2B11,
    U+2B30-2B4C,
    U+2BFE,
    U+3030,
    U+FF5B,
    U+FF5D,
    U+1D400-1D7FF,
    U+1EE00-1EEFF;
}
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("./fonts/noto-serif-vietnamese-700-normal-YMLLBHA7.woff2") format("woff2"), url("./fonts/noto-serif-vietnamese-700-normal-4GN76MDI.woff") format("woff");
  unicode-range:
    U+0102-0103,
    U+0110-0111,
    U+0128-0129,
    U+0168-0169,
    U+01A0-01A1,
    U+01AF-01B0,
    U+0300-0301,
    U+0303-0304,
    U+0308-0309,
    U+0323,
    U+0329,
    U+1EA0-1EF9,
    U+20AB;
}
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("./fonts/noto-serif-latin-ext-700-normal-BMAL55SB.woff2") format("woff2"), url("./fonts/noto-serif-latin-ext-700-normal-JDL5RVX6.woff") format("woff");
  unicode-range:
    U+0100-02BA,
    U+02BD-02C5,
    U+02C7-02CC,
    U+02CE-02D7,
    U+02DD-02FF,
    U+0304,
    U+0308,
    U+0329,
    U+1D00-1DBF,
    U+1E00-1E9F,
    U+1EF2-1EFF,
    U+2020,
    U+20A0-20AB,
    U+20AD-20C0,
    U+2113,
    U+2C60-2C7F,
    U+A720-A7FF;
}
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("./fonts/noto-serif-latin-700-normal-PDRCAGPK.woff2") format("woff2"), url("./fonts/noto-serif-latin-700-normal-UOD6HPZB.woff") format("woff");
  unicode-range:
    U+0000-00FF,
    U+0131,
    U+0152-0153,
    U+02BB-02BC,
    U+02C6,
    U+02DA,
    U+02DC,
    U+0304,
    U+0308,
    U+0329,
    U+2000-206F,
    U+20AC,
    U+2122,
    U+2191,
    U+2193,
    U+2212,
    U+2215,
    U+FEFF,
    U+FFFD;
}

/* src/styles.css */
:root {
  color-scheme: light dark;
  --color-background: #ffffff;
  --color-border: #d2d5d8;
  --color-focus: #7a2ee6;
  --color-link: #005ea8;
  --color-muted: #5b6268;
  --color-surface: #ffffff;
  --color-text: #202124;
  --content-width: 74ch;
  font-family: "Noto Serif", serif;
  font-synthesis: none;
  line-height: 1.6;
  scroll-behavior: smooth;
  text-rendering: optimizeLegibility;
}
* {
  box-sizing: border-box;
}
body {
  background: var(--color-background);
  color: var(--color-text);
  margin: 0;
  min-height: 100vh;
}
.loading-screen {
  align-items: center;
  display: flex;
  justify-content: center;
  min-height: 100vh;
  min-height: 100dvh;
}
.loading-indicator {
  animation: loading-indicator-rotate 0.9s linear infinite;
  height: 3rem;
  width: 3rem;
}
.loading-indicator__track,
.loading-indicator__progress {
  fill: none;
  stroke-width: 4;
}
.loading-indicator__track {
  stroke: var(--color-border);
}
.loading-indicator__progress {
  stroke: var(--color-focus);
  stroke-dasharray: 82 38;
  stroke-linecap: round;
}
@keyframes loading-indicator-rotate {
  to {
    transform: rotate(360deg);
  }
}
.pdd-introduction,
.pdd-reader {
  margin-inline: auto;
  max-width: var(--content-width);
  padding-inline: clamp(1rem, 4vw, 2rem);
}
.pdd-introduction {
  padding-block: clamp(2rem, 6vw, 4rem) 1rem;
}
.pdd-introduction > :first-child {
  margin-block-start: 0;
}
.pdd-reader {
  background: var(--color-surface);
  padding-block: 1rem 4rem;
}
.pdd-section {
  border-block-start: 1px solid var(--color-border);
  padding-block: clamp(2rem, 5vw, 3.5rem);
  scroll-margin-block-start: 1rem;
  transition: border-color 180ms ease-out;
}
.pdd-section:first-child {
  border-block-start: 0;
}
.pdd-section[aria-current=page] {
  border-block-start-color: var(--color-focus);
}
.is-initializing .pdd-reader {
  scroll-behavior: auto;
}
.is-initializing .pdd-section {
  transition: none;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1.25;
  margin-block: 1.5em 0.6em;
  overflow-wrap: anywhere;
  text-wrap: balance;
}
h1 {
  font-size: clamp(1.5rem, 3.5vw, 2rem);
}
h2 {
  font-size: clamp(1.4rem, 4vw, 1.9rem);
}
p,
ol,
ul,
blockquote,
table {
  margin-block: 1em;
}
li + li {
  margin-block-start: 0.4em;
}
a {
  color: var(--color-link);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.16em;
}
a:hover {
  text-decoration-thickness: 0.14em;
}
:focus-visible {
  border-radius: 0.15rem;
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
}
::selection {
  background: var(--color-focus);
  color: var(--color-surface);
}
blockquote {
  border-inline-start: 0.25rem solid var(--color-border);
  color: var(--color-muted);
  margin-inline: 0;
  padding-inline-start: 1rem;
}
img,
svg,
video {
  display: block;
  height: auto;
  max-width: 100%;
}
table {
  border-collapse: collapse;
  display: block;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  white-space: normal;
}
th,
td {
  border: 1px solid var(--color-border);
  padding: 0.55rem 0.7rem;
  text-align: start;
  vertical-align: top;
}
th {
  background: var(--color-background);
}
code,
pre {
  font-family:
    ui-monospace,
    SFMono-Regular,
    Consolas,
    "Liberation Mono",
    monospace;
}
pre {
  max-width: 100%;
  overflow-x: auto;
  padding: 1rem;
}
@media (max-width: 767px) {
  body {
    display: flex;
    flex-direction: column;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
  }
  .pdd-introduction {
    flex: 0 1 auto;
    max-height: 35dvh;
    overflow-y: auto;
    padding-block: 0.75rem;
    width: 100%;
  }
  .pdd-introduction h1 {
    font-size: 1.25rem;
    margin-block: 0;
  }
  .pdd-reader {
    --column-gap: 0.75rem;
    --column-peek: 1.5rem;
    display: flex;
    flex: 1 1 auto;
    gap: var(--column-gap);
    margin: 0;
    max-width: none;
    min-height: 0;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    padding: 0 var(--column-peek) max(0.5rem, env(safe-area-inset-bottom));
    position: relative;
    scroll-padding-inline: var(--column-peek);
    scroll-behavior: smooth;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
  }
  .pdd-reader::-webkit-scrollbar {
    display: none;
  }
  .pdd-section {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0.65rem;
    flex: 0 0 calc(100vw - 2 * var(--column-peek));
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-block: contain;
    padding: 0.5rem 1rem calc(1rem + env(safe-area-inset-bottom));
    opacity: 0.72;
    scroll-margin: 0;
    scroll-snap-align: center;
    transform: scale(0.975);
    transition:
      border-color 220ms ease-out,
      box-shadow 220ms ease-out,
      opacity 220ms ease-out,
      transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
  }
  .pdd-section[aria-current=page] {
    border-color: var(--color-focus);
    box-shadow: 0 0.45rem 1.2rem rgb(0 0 0 / 14%);
    opacity: 1;
    transform: scale(1);
  }
  .pdd-section:first-child {
    border-block-start: 1px solid var(--color-border);
  }
}
@media (min-width: 768px) {
  .pdd-reader {
    border: 1px solid var(--color-border);
    border-radius: 0.75rem;
    box-shadow: 0 0.4rem 1.5rem rgb(0 0 0 / 8%);
    margin-block-end: 4rem;
    padding-inline: clamp(2rem, 5vw, 4rem);
  }
}
@media (prefers-color-scheme: dark) {
  :root {
    --color-background: #151719;
    --color-border: #484d52;
    --color-focus: #ffcb6b;
    --color-link: #82bfff;
    --color-muted: #b8bdc2;
    --color-surface: #1e2124;
    --color-text: #f2f4f5;
  }
}
@media (prefers-reduced-motion: reduce) {
  :root {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
