/*
 * 06-paper.css  —  紙面（記事・固定ページ）
 *
 * このファイル群は読み込み順がそのままカスケードになる。
 * functions.php の ichika_style_parts() が順番を持っている。
 * 並べ替える前に tools/vr の回帰テストを走らせること。
 */

.page-title{font-size:clamp(2.1rem,6vw,5rem);line-height:1;margin:.2em 0 .25em}
.entry{width:min(850px,100%);margin:0 auto}
.entry-meta{font-size:.86rem;color:var(--wine);margin:10px 0 28px}
.entry-hero{margin:0 0 34px}
.entry-content{font-size:1.02rem}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:60px;padding-top:24px;border-top:1px solid rgba(17,11,35,.18)}
/* v0.1.5: ABOUT ME */
.about-profile{
  display:grid;
  grid-template-columns:minmax(180px,280px) minmax(0,1fr);
  gap:clamp(24px,4vw,52px);
  align-items:center;
  border-bottom:1px solid rgba(17,11,35,.16);
}
.about-profile-image{min-width:0}
.about-avatar{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  background:#eae8f0;
}
.about-avatar-placeholder{
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,var(--pink),var(--wine));
  font-weight:800;
  letter-spacing:.08em;
}
.about-name{
  font-size:clamp(2rem,4vw,3.8rem);
  line-height:1.1;
  font-weight:800;
}
.about-reading{
  margin-top:8px;
  color:var(--deep-red);
  font-size:.88rem;
  font-weight:800;
  letter-spacing:.12em;
}
.about-intro{
  margin:24px 0 0;
  font-size:1rem;
  line-height:1.9;
}
.about-content{
  margin-top:0;
}
@media(max-width:700px){
  .about-profile{grid-template-columns:1fr}
  .about-profile-image{max-width:280px}
}
/* v0.3.2: fixed-page spacing aligned with WORKS / NOTES */
.about-entry{
  width:100%;
  max-width:none;
  margin:0;
}
.about-entry .page-title,
.contact-entry .page-title{
  margin-bottom:22px;
}
.about-profile{
  margin:18px 0 36px;
  padding-bottom:32px;
}
@media (min-width:901px){
  body.single-post article.entry,
    body.single-jetpack-portfolio article.entry{
      position:relative;
      max-width:900px;
      margin:0 auto;
      padding:56px 64px 64px 82px;
      background:#fffdf8;
      border:1px solid rgba(17,11,35,.18);
      box-shadow:0 5px 0 rgba(17,11,35,.07);
    }
  body.single-post article.entry::before,
    body.single-jetpack-portfolio article.entry::before{
      content:"";
      position:absolute;
      top:0;
      bottom:0;
      left:42px;
      width:1px;
      background:rgba(74,48,151,.22);
    }
  body.single-post article.entry::after,
    body.single-jetpack-portfolio article.entry::after{
      content:"";
      position:absolute;
      top:0;
      bottom:0;
      left:48px;
      width:1px;
      background:rgba(74,48,151,.08);
    }
}
@media (min-width:901px){
  body.page:not(.home) main.wrap > article.entry{
      position:relative;
      width:min(900px,100%);
      max-width:900px;
      margin:0 auto;
      padding:56px 64px 64px 82px;
      background:#fffdf8;
      border:1px solid rgba(17,11,35,.18);
      box-shadow:0 5px 0 rgba(17,11,35,.07);
    }
  body.page:not(.home) main.wrap > article.entry::before{
      content:"";
      position:absolute;
      top:0;
      bottom:0;
      left:42px;
      width:1px;
      background:rgba(74,48,151,.22);
      pointer-events:none;
    }
  body.page:not(.home) main.wrap > article.entry::after{
      content:"";
      position:absolute;
      top:0;
      bottom:0;
      left:48px;
      width:1px;
      background:rgba(74,48,151,.08);
      pointer-events:none;
    }
}
/* About and Contact had full-width overrides; notebook sizing wins here. */
@media (min-width:901px){
  body.page:not(.home) .about-entry{
      width:min(900px,100%);
      max-width:900px;
      margin-left:auto;
      margin-right:auto;
    }
}
@media (min-width:901px){
  body.single-trpg-log article.entry{
      width:min(940px,100%);
      max-width:940px;
      margin:0 auto;
      padding:48px 56px 56px;
      background:#fffdf8;
      border:2px solid rgba(17,11,35,.18);
      box-shadow:0 4px 0 rgba(17,11,35,.07);
    }
  body.single-trpg-log .page-title{
      color:var(--ink);
    }
}
@media (min-width:901px){
  body.single-trpg-log .entry-meta{
      color:var(--wine);
    }
}
/* v0.6.5: typography consistency pass.
   Normalize reading rhythm without changing the site's visual hierarchy. */
.entry-content{
  line-height:var(--body-leading);
}
.entry-meta{
  line-height:var(--meta-leading);
}
.page-title,
.entry .page-title{
  letter-spacing:-.02em;
}
@media (max-width:900px){
  .entry-content{
      line-height:1.74;
    }
}
@media (max-width:900px){
  .page-title,
  .entry .page-title{
      letter-spacing:-.015em;
    }
}
.about-entry > .page-title,
.contact-entry > .page-title,
.not-found-page > .page-title{
  font-weight:700;
  letter-spacing:-.02em;
}
.about-entry > .page-title,
.contact-entry > .page-title,
body.page:not(.home) main.paper-page > .entry > .page-title{
  position:relative;
  isolation:isolate;
}
.about-entry > .page-title::after,
.contact-entry > .page-title::after,
body.page:not(.home) main.paper-page > .entry > .page-title::after{
  content:"";
  position:absolute;
  z-index:-1;          /* above the heading's own background, below its text */
  left:0;
  right:0;
  bottom:.02em;
  height:.32em;
  pointer-events:none;
  background:linear-gradient(180deg,
    var(--marker-pale),
    var(--marker-deep) 45%,
    var(--marker-pale) 100%);
  mix-blend-mode:multiply;
  /* Ragged ends: a stroke starts and stops by hand, not at a ruler edge. */
  clip-path:polygon(
    0 26%,5px 4%,13px 0,
    calc(100% - 9px) 7%,100% 28%,
    calc(100% - 3px) 76%,calc(100% - 13px) 100%,
    11px 95%,2px 80%);
  transform:rotate(-.5deg);
}
/* Fixed pages have no padding on the heading, so the box must shrink to the
   text before the stroke can follow it. */
.about-entry > .page-title,
.contact-entry > .page-title,
body.page:not(.home) main.paper-page > .entry > .page-title{
  display:inline-block;
}
/* The archive headings are index cards with their own padding (v0.6.1), so
   the stroke is inset to match. Change these together with that padding. */
@media (prefers-reduced-motion:reduce){
  .about-entry > .page-title::after,
  .contact-entry > .page-title::after,
  body.page:not(.home) main.paper-page > .entry > .page-title::after{
      transform:none;
    }
}
/* Paper sheets and index-card bodies fill that box.
     Their own vertical padding and borders are left untouched. */
@media (min-width:901px){
  .site-main > main.wrap > article.entry{
      width:100%;
      max-width:none;
      margin-left:0;
      margin-right:0;
    }
}
/* v0.9.7: hold the reading measure on wide screens.

   v0.9.6 made every page as wide as the front-page cards, which is right for
   card grids but lets a paragraph run very long on a large monitor: at a
   2560px viewport the paper is 1510px and the text column was 1364px, around
   84 Japanese characters per line.

   The paper still spans the full card width — that is the point of v0.9.6 —
   so the horizontal padding grows instead, and the text column settles at a
   readable length. Nothing changes below 1401px: at a 1280px viewport the
   column is already ~35 characters and at 1440px ~40, both comfortable.

   The notebook margin rules are positioned from the same custom property, so
   they stay the same distance from the text instead of stranding themselves
   at the far left edge of a very wide sheet. */
@media (min-width:1401px){
  body:not(.home) .site-main > main.wrap > article.entry{
      --paper-pad-l:clamp(82px,calc(26vw - 282px),400px);
      --paper-pad-r:clamp(64px,calc(24vw - 272px),340px);
      padding-left:var(--paper-pad-l);
      padding-right:var(--paper-pad-r);
    }
}
/* The ruled margin sits 40px / 34px left of the text, as it always has. */
@media (min-width:1401px){
  body:not(.home) .site-main > main.wrap > article.entry::before{
      left:calc(var(--paper-pad-l) - 40px);
    }
  body:not(.home) .site-main > main.wrap > article.entry::after{
      left:calc(var(--paper-pad-l) - 34px);
    }
}
/* The TRPG record is an information card, not a notebook page: it has no
     margin rule, so its padding stays symmetric. */
@media (min-width:1401px){
  body.single-trpg-log .site-main > main.wrap > article.entry{
      --paper-pad-l:clamp(56px,calc(25vw - 294px),370px);
      --paper-pad-r:var(--paper-pad-l);
    }
}
.not-found-page > .page-title{
  color:#e2ddf2;
}
/* v1.1.17: WORKS notebook/detail polish. */
.portfolio-single-page .paper-page-copyright{
  margin-top:48px;
  padding-top:14px;
  border-top:1px dashed rgba(74,48,151,.22);
  color:rgba(17,11,35,.52);
  font-size:.72rem;
  line-height:1.4;
  letter-spacing:.04em;
  text-align:center;
}
.portfolio-single-page .post-nav .post-nav-arrow{
  display:block;
  color:#4a3097;
  font-size:1.7rem;
  line-height:1;
  font-weight:700;
}
.portfolio-single-page .post-nav .post-nav-title{
  display:block;
  color:var(--wine);
  font-weight:700;
  line-height:1.35;
}
.portfolio-single-page .post-nav-next{
  text-align:right;
}
.portfolio-single-page .page-title{
  position:relative;
  display:inline-block;
  isolation:isolate;
}
.portfolio-single-page .page-title::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:4px;
  right:6px;
  /* v1.2.2: was -4px, which sat the stroke below the letters. A highlighter is
     swiped across text, so it overlaps the bottom of them. */
  bottom:.02em;
  height:var(--marker-stroke-height);
  /* Same ink as before -- rgb(221,177,67) throughout, only the alpha moves.
     A real highlighter lays down least where the nib first touches, pools
     through the middle of the stroke and thins again at the bottom edge, so
     the density is graded rather than flat. multiply puts the ink over the
     paper instead of on top of it, which is what keeps the letters readable
     through the stroke. */
  background:linear-gradient(180deg,
    rgba(221,177,67,.26) 0%,
    rgba(221,177,67,.60) 34%,
    rgba(221,177,67,.66) 68%,
    rgba(221,177,67,.30) 100%);
  mix-blend-mode:multiply;
  transform:rotate(-.7deg);
  transform-origin:left center;
}
@media (max-width:900px){
  .portfolio-single-page .paper-page-copyright{
      margin-top:38px;
      padding-top:12px;
    }
}
/* Shared copyright line on paper. */
.paper-page-copyright{
  margin-top:48px;
  padding-top:14px;
  border-top:1px dashed rgba(74,48,151,.22);
  color:rgba(17,11,35,.52);
  font-size:.72rem;
  line-height:1.4;
  letter-spacing:.04em;
  text-align:center;
}
.notes-single-page .post-nav-arrow,
.trpg-single-page .post-nav-arrow{
  display:block;
  color:#4a3097;
  font-size:1.7rem;
  line-height:1;
  font-weight:700;
}
.notes-single-page .post-nav-title,
.trpg-single-page .post-nav-title{
  display:block;
  color:var(--wine);
  font-weight:700;
  line-height:1.35;
}
.notes-single-page .post-nav-next,
.trpg-single-page .post-nav-next{
  text-align:right;
}
/* Preserve marker stroke on individual NOTES/TRPG/fixed-page headings. */
.notes-single-page .page-title,
.trpg-single-page .page-title,
body.page:not(.home) .page-title{
  position:relative;
  display:inline-block;
  isolation:isolate;
}
.notes-single-page .page-title::after,
.trpg-single-page .page-title::after,
body.page:not(.home) .page-title::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:4px;
  right:6px;
  /* v1.2.2: was -4px, which sat the stroke below the letters. A highlighter is
     swiped across text, so it overlaps the bottom of them. */
  bottom:.02em;
  height:var(--marker-stroke-height);
  /* Same ink as before -- rgb(221,177,67) throughout, only the alpha moves.
     A real highlighter lays down least where the nib first touches, pools
     through the middle of the stroke and thins again at the bottom edge, so
     the density is graded rather than flat. multiply puts the ink over the
     paper instead of on top of it, which is what keeps the letters readable
     through the stroke. */
  background:linear-gradient(180deg,
    rgba(221,177,67,.26) 0%,
    rgba(221,177,67,.60) 34%,
    rgba(221,177,67,.66) 68%,
    rgba(221,177,67,.30) 100%);
  mix-blend-mode:multiply;
  transform:rotate(-.7deg);
  transform-origin:left center;
}
@media (max-width:900px){
  .paper-page-copyright{
      margin-top:38px;
      padding-top:12px;
    }
}
.portfolio-single-page .post-nav .post-nav-arrow,
.notes-single-page .post-nav .post-nav-arrow,
.trpg-single-page .post-nav .post-nav-arrow{
  display:block;
  flex:0 0 auto;
  color:#4a3097;
  font-size:2.6rem;
  line-height:.85;
  font-weight:700;
}
.portfolio-single-page .post-nav .post-nav-title,
.notes-single-page .post-nav .post-nav-title,
.trpg-single-page .post-nav .post-nav-title{
  display:block;
  color:var(--wine);
  font-size:.88rem;
  line-height:1.35;
  font-weight:700;
}
.portfolio-single-page .post-nav-next,
.notes-single-page .post-nav-next,
.trpg-single-page .post-nav-next{
  text-align:right;
}
/* On the right-hand item keep the arrow at the outer edge, title inward. */
.portfolio-single-page .post-nav-next .post-nav-title,
.notes-single-page .post-nav-next .post-nav-title,
.trpg-single-page .post-nav-next .post-nav-title{
  order:-1;
}
@media (max-width:900px){
  .portfolio-single-page .post-nav .post-nav-arrow,
    .notes-single-page .post-nav .post-nav-arrow,
    .trpg-single-page .post-nav .post-nav-arrow{
      font-size:2.2rem;
    }
  .portfolio-single-page .post-nav .post-nav-title,
    .notes-single-page .post-nav .post-nav-title,
    .trpg-single-page .post-nav .post-nav-title{
      font-size:.82rem;
    }
}
main.notebook-sheet > .page-title{
  display:inline-block;
  width:auto;
  margin:0 0 18px;
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
  color:var(--ink);
  position:relative;
  isolation:isolate;
}
main.notebook-sheet > .page-title::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:4px;
  right:6px;
  /* v1.2.2: was -4px, which sat the stroke below the letters. A highlighter is
     swiped across text, so it overlaps the bottom of them. */
  bottom:.02em;
  height:var(--marker-stroke-height);
  /* Same ink as before -- rgb(221,177,67) throughout, only the alpha moves.
     A real highlighter lays down least where the nib first touches, pools
     through the middle of the stroke and thins again at the bottom edge, so
     the density is graded rather than flat. multiply puts the ink over the
     paper instead of on top of it, which is what keeps the letters readable
     through the stroke. */
  background:linear-gradient(180deg,
    rgba(221,177,67,.26) 0%,
    rgba(221,177,67,.60) 34%,
    rgba(221,177,67,.66) 68%,
    rgba(221,177,67,.30) 100%);
  mix-blend-mode:multiply;
  transform:rotate(-.7deg);
  transform-origin:left center;
}
/* v1.1.23: unify archive heading/filter/card vertical rhythm.
   WORKS / NOTES / TRPG LOG use the same spacing regardless of older rules. */
main.notebook-sheet > .page-title{
  margin:0 0 28px;
  line-height:1;
}
/* v1.1.24: policy links beside the paper footers. */
.paper-page-footer{
  margin-top:48px;
  padding-top:14px;
  border-top:1px dashed rgba(74,48,151,.22);
  text-align:center;
}
.paper-page-footer-links{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:10px 24px;
  margin:0 0 10px;
}
.paper-page-footer .paper-page-copyright{
  margin:0;
  padding:0;
  border:0;
  color:rgba(17,11,35,.52);
  font-size:.72rem;
  line-height:1.4;
  letter-spacing:.04em;
  text-align:center;
}
@media (max-width:900px){
  .paper-page-footer{
      margin-top:38px;
      padding-top:12px;
    }
  .paper-page-footer-links{
      gap:8px 18px;
    }
}
/* The sheet, and only the sheet. .portfolio-single-page / .notes-single-page /
   .trpg-single-page used to be listed here too, but those classes are on the
   <main> -- the positioning box -- not on the paper. They were only here to
   undo the blanket black, and with that gone they must stay transparent or the
   desk turns cream behind the sheet. */
.site-main > main.wrap > article.entry,
.site-main > main.wrap > .about-entry{
  background-color:#fffaf2;
}
/* ==========================================================================
   固定ページ共通紙面（.paper-page）
   v1.1.47: v0.6.2 / v0.8.8 / v1.1.35 / v1.1.36 に分散していた
   ABOUT / CONTACT / 通常固定ページの外枠・幅・モバイル余白を統合。
   ========================================================================== */
@media (min-width:901px){
  body.page:not(.home) .site-main > main.paper-page{
      box-sizing:border-box;
    }
}
@media (min-width:901px){
  body.page:not(.home) main.wrap > article.entry,
  body.page:not(.home) .about-entry{
      width:100%;
      max-width:none;
    }
}
/* v1.1.92 — one paper element on every paper route.

   Above 900px the sheet has always been article.entry, for both single posts
   and fixed pages. Below it, fixed pages moved the sheet onto main.paper-page
   while single posts left it on article.entry, and the two stopped lining up:

     390px   sheet x   sheet width   text x
     page      14         362          49
     post      43         310          43

   The ruled line was drawn on main at left:17px -- x=31 either way -- so on a
   fixed page it sat on the paper and on a single post it sat on the bare desk
   nine pixels to the left of the sheet. That is the "the rule line does not
   line up between CONTACT and a blog post" report. The post also had no
   padding at all here, so its text ran into the left edge of its own sheet.

   Both are the same cause, so both are fixed the same way: the sheet is
   article.entry everywhere, main is only the positioning box, and the ruled
   line belongs to the sheet that it decorates. */
@media (max-width:900px){
  body.page:not(.home) .site-main > main.paper-page,
  body.single-post .site-main > main.wrap.paper-page,
  body.single-jetpack-portfolio .site-main > main.wrap.paper-page,
  body.single-trpg-log .site-main > main.wrap.paper-page{
      width:100%;
      max-width:none;
      margin:0;
      padding:0;
      background:transparent;
      border:0;
      box-shadow:none;
    }
  body.page:not(.home) .site-main > main.paper-page > article.entry,
  body.single-post .site-main > main.wrap.paper-page > article.entry,
  body.single-jetpack-portfolio .site-main > main.wrap.paper-page > article.entry,
  body.single-trpg-log .site-main > main.wrap.paper-page > article.entry{
      position:relative;
      width:calc(100% - 28px);
      max-width:none;
      margin:28px auto 36px;
      padding:30px 22px 42px 34px;
      box-sizing:border-box;
      background:#fffaf2;
      border:1px solid rgba(17,11,35,.14);
      box-shadow:0 2px 7px rgba(17,11,35,.055);
    }
  body.page:not(.home) .site-main > main.paper-page > article.entry::before,
  body.single-post .site-main > main.wrap.paper-page > article.entry::before,
  body.single-jetpack-portfolio .site-main > main.wrap.paper-page > article.entry::before,
  body.single-trpg-log .site-main > main.wrap.paper-page > article.entry::before{
      content:"";
      position:absolute;
      top:0;
      bottom:0;
      left:17px;
      width:1px;
      background:rgba(74,48,151,.17);
      pointer-events:none;
    }
}
main.archive-page.notebook-sheet > .page-title{
  display:inline-block;
  width:auto;
  color:var(--ink);
  font-size:clamp(2.4rem,4vw,4.5rem);
  font-weight:700;
  line-height:1;
  letter-spacing:-.02em;
  position:relative;
  z-index:2;
}
main.archive-page.notebook-sheet > .page-title::after{
  clip-path:polygon(
    0 26%,5px 4%,13px 0,
    calc(100% - 9px) 7%,100% 28%,
    calc(100% - 3px) 76%,calc(100% - 13px) 100%,
    11px 95%,2px 80%);
  pointer-events:none;
}
@media (max-width:900px){
  main.archive-page.notebook-sheet > .page-title{
      font-size:clamp(2rem,10vw,3rem);
    }
}
/* Small supporting text */
.entry-meta{
  font-size:.9rem;
}
.paper-page-copyright{
  font-size:.8rem;
}
.portfolio-single-page .post-nav .post-nav-title,
.notes-single-page .post-nav .post-nav-title,
.trpg-single-page .post-nav .post-nav-title{
  font-size:.9rem;
}
body.single-post .site-main > main.wrap > article.entry,
body.single-jetpack-portfolio .site-main > main.wrap > article.entry,
body.single-trpg-log .site-main > main.wrap > article.entry{
  background:#fffaf2;
}
@media (min-width:901px){
  body.page:not(.home) .site-main > main.paper-page{
      width:100%;
      max-width:none;
      margin-left:0;
      margin-right:0;
      padding-left:clamp(24px,4vw,64px);
      padding-right:clamp(24px,4vw,64px);
      background:#000;
      border:0;
      box-shadow:none;
    }
  body.page:not(.home) .site-main > main.paper-page > article.entry{
      position:relative;
      width:100%;
      max-width:none;
      margin:0;
      padding:56px 64px 64px 82px;
      box-sizing:border-box;
      background:#fffaf2;
      border:1px solid rgba(17,11,35,.18);
      box-shadow:0 5px 0 rgba(17,11,35,.07);
    }
  body.page:not(.home) .site-main > main.paper-page > article.entry::before,
    body.page:not(.home) .site-main > main.paper-page > article.entry::after{
      content:"";
      position:absolute;
      top:0;
      bottom:0;
      width:1px;
      pointer-events:none;
    }
  body.page:not(.home) .site-main > main.paper-page > article.entry::before{
      left:42px;
      background:rgba(74,48,151,.22);
    }
  body.page:not(.home) .site-main > main.paper-page > article.entry::after{
      left:48px;
      background:rgba(74,48,151,.08);
    }
}
@media (min-width:1401px){
  body.page:not(.home) .site-main > main.paper-page > article.entry,
    body.single-post .site-main > main.wrap > article.entry,
    body.single-jetpack-portfolio .site-main > main.wrap > article.entry,
    body.single-trpg-log .site-main > main.wrap > article.entry{
      --paper-pad-l:12%;
      --paper-pad-r:5%;
      padding-left:var(--paper-pad-l);
      padding-right:var(--paper-pad-r);
    }
  body.page:not(.home) .site-main > main.paper-page > article.entry::before,
    body.single-post .site-main > main.wrap > article.entry::before,
    body.single-jetpack-portfolio .site-main > main.wrap > article.entry::before{
      left:calc(var(--paper-pad-l) - 40px);
    }
  body.page:not(.home) .site-main > main.paper-page > article.entry::after,
    body.single-post .site-main > main.wrap > article.entry::after,
    body.single-jetpack-portfolio .site-main > main.wrap > article.entry::after{
      left:calc(var(--paper-pad-l) - 34px);
    }
}
body.page:not(.home) main.paper-page > .entry > .page-title,
.portfolio-single-page .page-title,
.notes-single-page .page-title,
.trpg-single-page .page-title,
main.archive-page.notebook-sheet > .page-title{
  font-size:clamp(2.4rem,4vw,4.5rem);
}
.about-entry > .page-title::after,
.contact-entry > .page-title::after,
body.page:not(.home) main.paper-page > .entry > .page-title::after,
.portfolio-single-page .page-title::after,
.notes-single-page .page-title::after,
.trpg-single-page .page-title::after,
body.page:not(.home) .page-title::after,
main.notebook-sheet > .page-title::after,
main.archive-page.notebook-sheet > .page-title::after{
  height:var(--marker-stroke-height);
}
/* Mobile refinements */
@media (max-width:900px){
  body.page:not(.home) main.paper-page > .entry > .page-title,
    .portfolio-single-page .page-title,
    .notes-single-page .page-title,
    .trpg-single-page .page-title,
    main.archive-page.notebook-sheet > .page-title{
      font-size:clamp(2rem,10vw,3rem);
    }
}
.entry-content::after{content:"";display:block;clear:both}
.entry-content > .alignwide,
.entry-content > .alignfull{
  width:auto;
  max-width:none;
}
.entry-content > .alignwide{margin-inline:calc(-1 * var(--ichika-wide-bleed))}
.entry-content > .alignfull{margin-inline:calc(-1 * var(--ichika-full-bleed))}
.page-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin:34px 0 0;
  font-size:.9rem;
}
