
:root {
  color-scheme: light;
  --paper: #f7f1e3;
  --paper-deep: #eee4cf;
  --sheet: #fffdf6;
  --ink: #3d3d3d;
  --ink-soft: #66655f;
  --line: #bcb39f;
  --line-soft: #ddd4c2;
  --mint: #7ed6c4;
  --mint-soft: #d9f3eb;
  --yellow: #ffd166;
  --yellow-soft: #fff0bb;
  --salmon: #ffad9b;
  --salmon-soft: #ffe0d8;
  --bluegray: #8d99ae;
  --sky: #c8f0f0;
  --sky-shadow: #a8dce8;
  --cheek: #f5c6c6;
  --outline: #3a6b7a;
  --white: #fff;
  --focus: #176f68;
  --shadow: rgba(61, 61, 61, .12);
  --grain: rgba(78, 68, 49, .035);
  --human: "Klee One", "Yu Mincho", serif;
  --machine: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", sans-serif;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --paper: #242725;
    --paper-deep: #1c201e;
    --sheet: #303430;
    --ink: #f3eedf;
    --ink-soft: #c3c1b8;
    --line: #77766f;
    --line-soft: #4c504c;
    --mint: #82d9c8;
    --mint-soft: #244b44;
    --yellow: #ffd166;
    --yellow-soft: #514626;
    --salmon: #ffad9b;
    --salmon-soft: #553a35;
    --bluegray: #adb8cc;
    --sky: #bcebec;
    --sky-shadow: #8fc6d1;
    --cheek: #edbaba;
    --outline: #315f6c;
    --white: #fff;
    --focus: #9ce7d9;
    --shadow: rgba(0, 0, 0, .28);
    --grain: rgba(255, 255, 255, .022);
  }
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #242725;
  --paper-deep: #1c201e;
  --sheet: #303430;
  --ink: #f3eedf;
  --ink-soft: #c3c1b8;
  --line: #77766f;
  --line-soft: #4c504c;
  --mint: #82d9c8;
  --mint-soft: #244b44;
  --yellow: #ffd166;
  --yellow-soft: #514626;
  --salmon: #ffad9b;
  --salmon-soft: #553a35;
  --bluegray: #adb8cc;
  --sky: #bcebec;
  --sky-shadow: #8fc6d1;
  --cheek: #edbaba;
  --outline: #315f6c;
  --white: #fff;
  --focus: #9ce7d9;
  --shadow: rgba(0, 0, 0, .28);
  --grain: rgba(255, 255, 255, .022);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body { margin: 0; min-width: 0; overflow-x: hidden; color: var(--ink); background: var(--paper); font-family: var(--machine); line-height: 1.75; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { text-decoration-color: var(--salmon); }
img { display: block; max-width: 100%; height: auto; }
button, input { font: inherit; }
::selection { color: var(--ink); background: var(--yellow); }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
.paper-grain { position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .9; background-image: radial-gradient(var(--grain) .8px, transparent .9px), radial-gradient(var(--grain) .8px, transparent .9px); background-position: 0 0, 8px 9px; background-size: 17px 17px; }
.skip-link { position: fixed; z-index: 99; top: .5rem; left: .5rem; padding: .5rem 1rem; transform: translateY(-150%); background: var(--ink); color: var(--paper); }
.skip-link:focus { transform: none; }
.site-header { width: min(1180px, calc(100% - 32px)); margin: 0 auto; min-height: 94px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 2rem; border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: .8rem; text-decoration: none; line-height: 1.25; }
.brand b { display: block; font-family: var(--human); font-size: 1.08rem; }
.brand small { display: block; margin-top: .25rem; color: var(--ink-soft); font-size: .55rem; letter-spacing: .15em; }
.brand-seed { width: 28px; height: 36px; display: inline-block; flex: 0 0 auto; transform: rotate(-15deg); border: 2px solid var(--ink); border-radius: 62% 40% 58% 42%; background: var(--mint); }
.brand-seed::after { content: ""; display: block; width: 11px; height: 7px; margin: 6px 0 0 19px; transform: rotate(-32deg); border: solid var(--ink); border-width: 2px 0 0 2px; border-radius: 70% 0; }
.site-header nav { justify-self: end; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .3rem 1.25rem; min-width: 0; font-size: .78rem; font-weight: 700; }
.site-header nav a { position: relative; padding: .4rem 0; text-decoration: none; }
.site-header nav a[aria-current="page"]::after { content: ""; position: absolute; left: 8%; right: 8%; bottom: .15rem; height: 3px; transform: rotate(-1deg); background: var(--salmon); }
.theme-switch { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .55rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: transparent; font-size: .7rem; cursor: pointer; }
.theme-switch span { width: .9rem; height: .9rem; border: 1px solid var(--ink); border-radius: 50%; background: linear-gradient(90deg, var(--yellow) 50%, var(--paper-deep) 50%); }
main { width: min(1180px, calc(100% - 32px)); margin: 0 auto; }
.portal-back { position: fixed; left: 12px; bottom: 12px; z-index: 40; display: inline-flex; align-items: center; padding: .45rem .8rem; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink-soft); font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-decoration: none; box-shadow: 0 2px 10px rgba(0,0,0,.06); }.portal-back:hover { color: var(--ink); border-color: var(--ink); }.portal-back:focus-visible { outline: 2px solid var(--mint); outline-offset: 2px; }@media print { .portal-back { display: none; } }@media (max-width: 560px) { .portal-back { left: 8px; bottom: 8px; font-size: .64rem; padding: .38rem .65rem; } }.site-footer .to-portal { display: inline-block; margin-top: .55rem; color: var(--ink); font-weight: 700; text-decoration: none; border-bottom: 1px solid var(--line); }.site-footer .to-portal:hover { border-bottom-color: var(--ink); }.site-footer { width: min(1180px, calc(100% - 32px)); margin: 7rem auto 0; padding: 2.2rem 0 3rem; display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: .78rem; }
.site-footer > div { display: flex; align-items: center; gap: 1rem; }
.site-footer p { margin: 0; }
.site-footer a { color: var(--ink); font-weight: 700; letter-spacing: .08em; }
.eyebrow { margin: 0 0 .5rem; color: var(--ink-soft); font-size: .65rem; font-weight: 900; letter-spacing: .18em; line-height: 1.4; }
.kicker { display: flex; align-items: center; gap: .8rem; margin: 0; color: var(--ink-soft); font-size: .82rem; font-weight: 700; letter-spacing: .08em; }
.kicker span { padding: .15rem .6rem; transform: rotate(-1deg); color: var(--ink); background: var(--yellow); }
.section-heading { margin-bottom: 2rem; }
.section-heading h2 { margin: 0; font-family: var(--human); font-size: clamp(1.7rem, 4vw, 2.8rem); font-weight: 600; line-height: 1.35; }
.section-heading p { max-width: 44rem; }
.section-heading.split { display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.section-heading.split > p { max-width: 26rem; margin: 0; color: var(--ink-soft); font-size: .84rem; }
.section-heading.wide { max-width: 760px; }
.section-heading.wide > p:last-child { color: var(--ink-soft); }
.ink-link { display: inline-block; margin-top: 1rem; font-family: var(--human); font-weight: 600; text-decoration: none; border-bottom: 2px solid var(--ink); }
.quiet { color: var(--ink-soft); }
.ruled { padding: 1rem 0; border-block: 1px dashed var(--line); }
.center-action { margin: 3rem 0 0; text-align: center; }
.text-link.is-muted { color: var(--ink-soft); }
.store-button { display: inline-block; padding: .75rem 1.2rem; border: 2px solid var(--ink); border-radius: 999px; background: var(--mint); color: #263b37; font-weight: 900; text-decoration: none; box-shadow: 3px 3px 0 var(--ink); }
.store-button:hover { transform: translate(1px, 1px); box-shadow: 2px 2px 0 var(--ink); }
.store-button.small { padding: .35rem .7rem; border-width: 1px; box-shadow: none; font-size: .68rem; }
.page-mascot { display: flex; justify-content: flex-end; margin: -3rem 0 3rem; }.page-mascot-link { display: flex; align-items: center; gap: .8rem; padding: .4rem .8rem .4rem .4rem; transform: rotate(1deg); border: 1px solid var(--line); background: var(--sheet); color: var(--ink-soft); font-size: .65rem; text-decoration: none; }.page-mascot img { width: 70px; aspect-ratio: 1; object-fit: contain; background: var(--white); }.page-mascot-link > span b { display: block; color: var(--ink); font-family: var(--human); font-size: .9rem; }
.art-missing { min-height: 120px; display: grid; place-items: center; border: 1px dashed var(--line); background: var(--paper-deep); }
.art-missing i { width: 48px; height: 58px; border: 2px solid var(--line); border-radius: 60% 40% 55% 45%; }

/* Today */
.adventure-hero { position: relative; isolation: isolate; min-height: 820px; overflow: hidden; padding: 5.5rem 2rem 6.5rem; border-bottom: 1px solid var(--line); background: radial-gradient(circle at 91% 18%, var(--yellow-soft) 0 8.5rem, transparent 8.6rem), linear-gradient(112deg, transparent 0 72%, color-mix(in srgb, var(--mint-soft) 72%, transparent) 72% 73%, transparent 73%); }
.adventure-hero::before { content: ""; position: absolute; z-index: -1; width: 620px; height: 300px; right: -210px; bottom: 55px; transform: rotate(-12deg); border: 1px dashed var(--bluegray); border-radius: 50%; }
.adventure-title { position: relative; z-index: 1; }
.adventure-title .kicker span { background: var(--mint); }
.adventure-title h1 { max-width: 1080px; margin: 1.3rem 0 .6rem; font-family: var(--human); font-size: clamp(4.2rem, 10vw, 8.7rem); font-weight: 600; letter-spacing: -.075em; line-height: .98; }
.adventure-lead { display: inline-block; margin: .3rem 0 3.2rem 2rem; padding: .15rem .8rem .35rem; transform: rotate(-1.5deg); background: var(--yellow); color: #3d392f; font-family: var(--human); font-size: clamp(1.5rem, 3vw, 2.35rem); font-weight: 600; line-height: 1.35; box-shadow: 5px 6px 0 var(--salmon-soft); }
.premise-copy { position: relative; z-index: 1; width: min(800px, calc(100% - 270px)); padding-left: clamp(0rem, 4vw, 3rem); font-family: var(--human); }
.premise-line { margin: .45rem 0; font-size: clamp(1.02rem, 1.7vw, 1.3rem); line-height: 1.8; }
.premise-1, .premise-2, .premise-3 { font-size: clamp(1.25rem, 2.35vw, 1.85rem); font-weight: 600; line-height: 1.65; }
.premise-3 { margin: 1rem 0 1.4rem; padding: .7rem 1rem; transform: rotate(-.35deg); border-left: 7px solid var(--salmon); background: var(--sheet); box-shadow: 5px 5px 0 var(--mint-soft); }
.premise-4 { margin-top: 1.7rem; }
.premise-6, .premise-7 { font-weight: 600; }
.premise-7 { display: inline-block; margin-top: 1rem; border-bottom: 3px solid var(--yellow); font-size: clamp(1.25rem, 2vw, 1.65rem); }
.hero-countdown { position: absolute; z-index: 2; width: 245px; height: 245px; right: 2rem; bottom: 5.2rem; display: grid; grid-template-columns: 1fr auto; place-content: center; padding: 2rem; transform: rotate(4deg); border: 2px solid var(--ink); border-radius: 48% 52% 44% 56%; background: var(--yellow-soft); text-align: center; box-shadow: 9px 10px 0 var(--salmon-soft); }
.hero-countdown span, .hero-countdown small { grid-column: 1 / -1; font-family: var(--human); }
.hero-countdown span { font-size: .82rem; }.hero-countdown b { font-size: 5.4rem; line-height: .9; letter-spacing: -.09em; }.hero-countdown em { align-self: end; padding: 0 0 .45rem .35rem; font-style: normal; }.hero-countdown small { margin-top: .6rem; color: var(--ink-soft); font-size: .7rem; line-height: 1.45; }
.adventure-marks i { position: absolute; z-index: -1; display: block; border-radius: 50%; background: var(--mint); }
.adventure-marks i:nth-child(1) { width: 18px; height: 18px; top: 33%; right: 27%; }.adventure-marks i:nth-child(2) { width: 11px; height: 11px; top: 38%; right: 24%; background: var(--salmon); }.adventure-marks i:nth-child(3) { width: 7px; height: 7px; top: 43%; right: 21%; background: var(--yellow); }

.home-today { display: grid; grid-template-columns: 245px minmax(0, 1fr); gap: clamp(2rem, 7vw, 6rem); align-items: center; padding: 5.5rem 2rem; border-bottom: 1px solid var(--line); }
.home-today > header { align-self: stretch; display: flex; flex-direction: column; justify-content: center; border-right: 1px solid var(--line); }
.home-today > header > span { display: block; color: var(--bluegray); font-size: .7rem; font-weight: 900; letter-spacing: .12em; }.home-today > header > span b { display: block; color: var(--ink); font-size: clamp(3.2rem, 7vw, 5.4rem); letter-spacing: -.07em; line-height: 1; }
.home-today h2 { margin: .8rem 0 .5rem; font-family: var(--human); font-size: 1.25rem; }.home-today .ink-link { width: max-content; font-size: .72rem; }.home-today .human-note { margin: 0; }

.quest-section { display: grid; grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr); gap: clamp(3rem, 8vw, 7rem); padding: 8rem 2rem; border-bottom: 1px solid var(--line); background: linear-gradient(170deg, transparent 0 8%, var(--mint-soft) 8.1% 92%, transparent 92.1%); }
.quest-heading { align-self: center; }.quest-heading h2 { margin: .6rem 0 1.5rem; font-family: var(--human); font-size: clamp(2.1rem, 4.4vw, 3.4rem); font-weight: 600; line-height: 1.35; text-wrap: balance; }.quest-heading h2 span { display: inline-block; }.quest-heading h2 span + span { margin-left: .4em; }.quest-heading > p:last-child { max-width: 24rem; color: var(--ink-soft); font-family: var(--human); }
.quest-grid { counter-reset: quest; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.quest-grid li { position: relative; min-height: 150px; display: flex; flex-direction: column; justify-content: space-between; padding: 1.25rem 1.4rem; transform: rotate(-.5deg); border: 1px solid var(--line); background: var(--sheet); box-shadow: 5px 6px 0 color-mix(in srgb, var(--ink) 10%, transparent); }
.quest-grid li:nth-child(even) { transform: rotate(.65deg); }.quest-grid li::after { content: "→"; position: absolute; right: 1rem; top: .5rem; color: var(--salmon); font-size: 1.6rem; font-weight: 900; }.quest-grid li.is-open { border-style: dashed; background: color-mix(in srgb, var(--sheet) 58%, transparent); }.quest-grid li.is-open::after { content: "?"; }
.quest-grid span { color: var(--bluegray); font-size: .62rem; font-weight: 900; letter-spacing: .15em; }.quest-grid b { max-width: 15rem; font-family: var(--human); font-size: clamp(1.1rem, 2vw, 1.4rem); line-height: 1.6; }

.weapons-section { margin: 5rem 2rem; padding: 2.2rem 2.5rem; border: 1px solid var(--line); background: var(--sheet); box-shadow: 7px 8px 0 var(--paper-deep); }
.weapons-copy h2 { margin: 0; font-family: var(--human); font-size: clamp(1.7rem, 3vw, 2.35rem); }.weapons-copy > p:not(.eyebrow) { margin: .35rem 0; color: var(--ink-soft); font-size: .78rem; }.weapons-copy .weapons-line { margin-top: .8rem; color: var(--ink); font-family: var(--human); font-size: .95rem; line-height: 1.7; }
.velocity-counts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 2rem 0; border-block: 1px solid var(--line); }.velocity-card { min-width: 0; min-height: 235px; display: flex; flex-direction: column; padding: 1.2rem 1rem; }.velocity-card + .velocity-card { border-left: 1px solid var(--line-soft); }.velocity-card.is-human { background: linear-gradient(to bottom, var(--yellow-soft) 0 .35rem, transparent .35rem); }.velocity-card h3 { min-height: 3em; margin: 0; font-family: var(--human); font-size: .88rem; line-height: 1.5; }.velocity-link { text-underline-offset: .2em; }.velocity-card strong { display: flex; align-items: baseline; gap: .18rem; margin: 1.2rem 0 .6rem; color: var(--ink); font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1; letter-spacing: -.06em; }.velocity-card strong small { color: var(--ink-soft); font-size: .62rem; letter-spacing: 0; }.velocity-detail { margin: 0; color: var(--ink); font-size: .68rem; font-weight: 700; line-height: 1.6; }.velocity-every { margin: .55rem 0 0; display: inline-block; align-self: flex-start; padding: .2rem .55rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-soft); font-size: .62rem; font-weight: 700; letter-spacing: .06em; }.velocity-note { margin: auto 0 0; padding-top: .9rem; border-top: 1px dotted var(--line); color: var(--ink-soft); font-size: .6rem; line-height: 1.65; }.velocity-card.is-human .velocity-note { font-family: var(--human); font-size: .68rem; }
.weapon-faces { margin: 1.6rem 0 0; padding-top: 1.4rem; border-top: 1px dotted var(--line); }.weapon-faces-lead { margin: 0 0 .9rem; color: var(--ink-soft); font-size: .7rem; }.weapon-faces ul { display: flex; flex-wrap: wrap; gap: .9rem; margin: 0; padding: 0; list-style: none; }.weapon-faces ul a { display: flex; flex-direction: column; align-items: center; gap: .3rem; width: 72px; color: inherit; text-decoration: none; }.weapon-faces ul a:hover span { text-decoration: underline; }.weapon-face-img { width: 64px; aspect-ratio: 1; object-fit: contain; background: var(--white); border: 1px solid var(--line-soft); }.weapon-faces span { color: var(--ink-soft); font-size: .6rem; line-height: 1.4; text-align: center; }.weapon-faces-all { margin: 1rem 0 0; font-size: .7rem; }.ledger-thumb { display: block; width: 34px; flex: none; }.ledger-thumb img { width: 100%; aspect-ratio: 1; object-fit: contain; background: var(--white); border: 1px solid var(--line-soft); }.character-origin { margin: 1rem 0 0; font-size: .75rem; }.added-on { display: inline-block; margin: 1.4rem 0 .5rem; padding: .15rem .6rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-soft); font-family: var(--machine); font-size: .62rem; letter-spacing: .06em; }.human-more { margin: 1rem 0 0; font-size: .78rem; }.human-more a { color: var(--ink-soft); }.human-more a:hover { color: var(--ink); }.velocity-question { margin: 0; padding-top: 1.1rem; border-top: 1px dashed var(--line); font-family: var(--human); font-size: 1.05rem; font-weight: 600; text-align: center; }

.previous-days { padding: 6rem 2rem; border-top: 1px solid var(--line); }.previous-days .section-heading > a { font-size: .75rem; font-weight: 700; }.recent-days { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 2px solid var(--ink); }.recent-day { min-width: 0; min-height: 205px; display: flex; flex-direction: column; padding: 1.25rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-decoration: none; }.recent-day:last-child { border-right: 0; }.recent-day:hover { background: var(--yellow-soft); }.recent-day > span { color: var(--bluegray); font-size: .62rem; font-weight: 900; letter-spacing: .12em; }.recent-day > small { margin: .35rem 0 1rem; font-family: var(--human); }.recent-day > b { font-family: var(--human); font-size: 1rem; font-weight: 600; line-height: 1.75; }.recent-day > em { margin-top: auto; padding-top: 1rem; color: var(--ink-soft); font-size: .6rem; font-style: normal; }

.today-hero { min-height: 600px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); align-items: center; gap: clamp(2rem, 8vw, 7rem); padding: 5rem 2rem 4rem; border-bottom: 1px solid var(--line); }
.hero-copy h1 { margin: 1.6rem 0 1rem; font-family: var(--human); font-weight: 400; line-height: .92; }
.hero-copy h1 span { display: block; margin-bottom: .2rem; font-size: clamp(1.1rem, 2.5vw, 1.55rem); letter-spacing: .03em; line-height: 1.4; }
.hero-copy h1 b { display: inline-block; font-family: var(--machine); font-size: clamp(7.5rem, 18vw, 14rem); font-weight: 900; letter-spacing: -.09em; }
.hero-copy h1 em { margin-left: .7rem; font-size: 1.7rem; font-style: normal; }
.hero-lead { max-width: 32rem; font-family: var(--human); font-size: clamp(1rem, 2vw, 1.25rem); line-height: 2; }
.hero-cast { position: relative; min-height: 470px; }
.hero-cover { position: absolute; z-index: 2; width: min(310px, 72%); top: 78px; left: 14%; transform: rotate(2deg); border: 10px solid var(--white); background: var(--white); box-shadow: 0 14px 0 var(--sky-shadow); }
.hero-cover img { width: 100%; aspect-ratio: 1; object-fit: contain; }
.hero-cast .speech { position: absolute; z-index: 4; top: 12px; left: 0; margin: 0; padding: .7rem 1rem; transform: rotate(-3deg); border: 2px solid var(--ink); border-radius: 50%; background: var(--sheet); font-family: var(--human); font-weight: 600; }
.hero-cast > small { position: absolute; z-index: 5; right: 0; bottom: 8px; padding: .7rem 1rem; transform: rotate(2deg); background: var(--yellow-soft); color: var(--ink); font-family: var(--human); line-height: 1.6; }
.orbit-line { position: absolute; inset: 44px 15px 22px; border: 1px dashed var(--bluegray); border-radius: 50%; transform: rotate(-15deg); }
.hero-sticker { position: absolute; z-index: 3; width: 88px; border: 5px solid var(--white); border-radius: 6px; background: var(--white); box-shadow: 3px 4px 0 var(--shadow); }
.hero-sticker img { aspect-ratio: 1; object-fit: contain; }
.sticker-1 { right: 0; top: 70px; transform: rotate(9deg); }
.sticker-2 { right: -10px; top: 205px; transform: rotate(-6deg); }
.sticker-3 { left: 0; bottom: 55px; transform: rotate(-8deg); }
.sticker-4 { right: 58px; bottom: 2px; transform: rotate(5deg); }
.sticker-5 { left: 2px; top: 175px; transform: rotate(6deg); }
.proof-ribbon { position: relative; margin: -1px 0 0; padding: 1.8rem 3rem; transform: rotate(-.35deg); background: var(--ink); color: var(--paper); }
.proof-ribbon::before, .proof-ribbon::after { content: ""; position: absolute; width: 36px; height: 14px; top: -5px; background: var(--yellow-soft); opacity: .8; }
.proof-ribbon::before { left: 3%; transform: rotate(-8deg); }.proof-ribbon::after { right: 4%; transform: rotate(7deg); }
.proof-ribbon p { margin: 0 0 .6rem; font-family: var(--human); font-size: 1rem; }
.proof-ribbon div { display: flex; align-items: baseline; flex-wrap: wrap; gap: .6rem 1rem; }
.proof-ribbon span { white-space: nowrap; }.proof-ribbon b { margin-right: .2rem; color: var(--yellow); font-size: clamp(1.8rem, 4vw, 3.2rem); line-height: 1; }.proof-ribbon i { width: 4px; height: 4px; border-radius: 50%; background: var(--mint); }
.today-spread { display: grid; grid-template-columns: 80px minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(1.5rem, 5vw, 4rem); padding: 7rem 2rem; }
.today-margin { display: flex; align-items: center; flex-direction: column; gap: 1rem; color: var(--ink-soft); font-size: .68rem; letter-spacing: .12em; writing-mode: vertical-rl; }
.today-margin i { flex: 1; width: 1px; background: var(--line); }
.human-note { position: relative; align-self: start; min-width: 0; padding: 2.4rem 2.7rem 2.8rem; transform: rotate(-.4deg); border: 1px solid var(--line); background: var(--sheet); box-shadow: 7px 8px 0 var(--yellow-soft); }
.human-note::before { content: ""; position: absolute; width: 76px; height: 19px; top: -10px; left: calc(50% - 38px); transform: rotate(2deg); background: var(--mint-soft); opacity: .88; }
.human-note blockquote { margin: 1rem 0; font-family: var(--human); font-size: clamp(1.45rem, 3.5vw, 2.45rem); font-weight: 600; line-height: 1.75; }
.human-note .no-words { margin: 1.5rem 0; color: var(--ink-soft); font-family: var(--human); font-size: clamp(1.2rem, 2.6vw, 1.8rem); line-height: 1.7; }
.human-summary { margin: 1rem 0 1.8rem; padding-bottom: 1.3rem; border-bottom: 1px dotted var(--line); }.human-summary small { display: block; color: var(--bluegray); font-family: var(--machine); font-size: .6rem; font-weight: 900; letter-spacing: .13em; }.human-summary h2 { margin: .45rem 0 0; font-family: var(--machine); font-size: clamp(1.8rem, 4vw, 2.9rem); font-weight: 900; letter-spacing: -.035em; line-height: 1.35; }.human-original-label { margin: 0; color: var(--ink-soft); font-family: var(--machine); font-size: .58rem; font-weight: 700; letter-spacing: .08em; }
.human-meta { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; font-size: .72rem; }.human-meta > * { padding: .15rem .55rem; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; }
.machine-ledger { min-width: 0; color: var(--ink-soft); }.machine-ledger ol { overflow-x: auto; }
.ledger-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding-bottom: .8rem; border-bottom: 2px solid var(--ink); }
.ledger-heading p { margin: 0; }.ledger-heading strong { color: var(--ink); font-size: 2.3rem; line-height: 1; }.ledger-heading strong small { margin-left: .2rem; font-size: .7rem; }
.machine-ledger ol { margin: 0; padding: 0; list-style: none; }
.machine-ledger li { display: grid; grid-template-columns: 5rem 1fr; gap: 1rem; padding: .9rem 0; border-bottom: 1px dotted var(--line); font-size: .82rem; }
.machine-ledger li > b { color: var(--bluegray); font-size: .62rem; letter-spacing: .1em; }.machine-ledger li div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 1rem; min-width: 0; }.machine-ledger li div > a, .machine-ledger li div > span { flex: 1 1 auto; min-width: min(100%, max-content); overflow-wrap: anywhere; }.machine-ledger li a, .machine-ledger li span { color: var(--ink); font-weight: 700; }.machine-ledger li small { white-space: nowrap; font-size: .65rem; flex: 0 1 auto; }@media (max-width: 900px) { .machine-ledger li { grid-template-columns: 1fr; gap: .15rem; } .machine-ledger li div { flex-direction: column; align-items: flex-start; gap: .2rem; } .machine-ledger li small { white-space: normal; } .machine-ledger li div > a, .machine-ledger li div > span { min-width: 0; } }.machine-empty { padding: 1rem 0; border-block: 1px dotted var(--line); font-size: .82rem; }
.newborn-section, .cast-preview, .journey-map, .sales-cast, .all-stickers, .character-ledger { padding: 6rem 2rem; border-top: 1px solid var(--line); }
.name-roll { display: flex; flex-wrap: wrap; gap: .7rem; }.name-roll > span { padding: .7rem 1rem; transform: rotate(-1deg); border: 1px solid var(--line); background: var(--sheet); }.name-roll > span:nth-child(even) { transform: rotate(1deg); background: var(--mint-soft); }.name-roll b, .name-roll small { display: block; }.name-roll small { color: var(--ink-soft); font-size: .58rem; letter-spacing: .08em; }
.born-tier + .born-tier { margin-top: 2.5rem; }.born-tier > small { display: block; margin-bottom: .6rem; color: var(--bluegray); font-size: .6rem; font-weight: 900; letter-spacing: .13em; }

/* Cast shelves and evidence wall */
.author-store-link { margin: 2.5rem 0 0; text-align: center; }
.cast-shelf { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: clamp(1rem, 3vw, 2.4rem); row-gap: 4rem; padding: 1rem 0 2.2rem; background-image: linear-gradient(transparent calc(100% - 2.5rem), var(--line) calc(100% - 2.45rem), var(--line) calc(100% - 2.34rem), transparent calc(100% - 2.3rem)); }
.cast-card { position: relative; min-width: 0; transform: rotate(var(--tilt)); }
.cast-card::after { content: ""; position: absolute; z-index: -1; left: 6%; right: 6%; bottom: -7px; height: 9px; background: var(--shadow); filter: blur(4px); }
.cast-store-link { position: relative; display: block; height: 100%; padding: .65rem .65rem 1.3rem; border: 1px solid var(--line-soft); background: var(--sheet); color: var(--ink); text-decoration: none; }
.cast-cover { width: 100%; aspect-ratio: 1; object-fit: contain; background: var(--white); }
.cast-card .on-sale { position: absolute; top: .15rem; right: -.35rem; padding: .2rem .55rem; transform: rotate(5deg); background: var(--salmon); color: #382b28; font-size: .58rem; font-weight: 900; letter-spacing: .12em; }
.cast-card h3 { margin: 1rem .5rem .2rem; font-family: var(--human); font-size: 1.25rem; }.cast-card p { min-height: 2.8em; margin: 0 .5rem .5rem; color: var(--ink-soft); font-size: .72rem; line-height: 1.45; }.cast-card small { display: block; margin: 0 .5rem; color: var(--ink-soft); font-size: .62rem; }.cast-card .cast-store-link b { display: block; margin: 1rem .5rem 0; color: var(--outline); font-size: .72rem; }.profile-link { display: block; margin: .45rem .6rem 0; color: var(--ink-soft); font-size: .65rem; text-align: right; }
.cast-shelf.is-compact .cast-card:nth-child(n+5) { margin-top: 2rem; }
.mosaic-wall { display: grid; gap: 5rem; }.sticker-family { position: relative; display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 2rem; }.family-label { position: sticky; top: 1rem; align-self: start; padding-right: 1rem; border-right: 1px solid var(--line); }.family-label > div { width: 86px; transform: rotate(-3deg); border: 5px solid var(--white); background: var(--white); }.family-face { aspect-ratio: 1; object-fit: contain; }.family-label p b, .family-label p span { display: block; }.family-label p b { font-family: var(--human); font-size: 1.15rem; }.family-label p span { color: var(--ink-soft); font-size: .6rem; letter-spacing: .12em; }.sticker-grid { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: clamp(.35rem, 1vw, .8rem); }.sticker-tile { position: relative; aspect-ratio: 1; display: grid; place-items: center; padding: .15rem; border: 1px solid transparent; background: var(--white); }.sticker-tile:nth-child(3n) { transform: rotate(.8deg); }.sticker-tile:nth-child(5n) { transform: rotate(-.8deg); }.sticker-tile:hover { z-index: 2; transform: scale(1.09) rotate(-1deg); border-color: var(--salmon); }.sticker-image { width: 100%; height: 100%; object-fit: contain; }

/* Journey map */
.day-ribbon { display: grid; grid-template-columns: repeat(31, minmax(0, 1fr)); gap: .34rem; margin: 2rem 0; padding: 2rem; list-style: none; border: 1px solid var(--line); background: var(--sheet); }.day-ribbon li { min-width: 0; }.day-ribbon a { position: relative; display: block; aspect-ratio: 1; border: 1px solid var(--line-soft); border-radius: 50%; background: var(--paper); text-decoration: none; }.day-ribbon a span { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); color: var(--ink-soft); font-size: clamp(.36rem, .68vw, .55rem); }.day-ribbon a.has-machine { border: 2px solid var(--mint); }.day-ribbon a.has-human::after { content: ""; position: absolute; width: 36%; height: 36%; top: -10%; right: -10%; border-radius: 50%; background: var(--yellow); }.day-ribbon a.is-future { border-style: dashed; background: transparent; opacity: .48; }.day-ribbon a.is-current { opacity: 1; transform: scale(1.25); background: var(--salmon-soft); border-color: var(--ink); border-style: solid; }.map-key { display: flex; flex-wrap: wrap; gap: .7rem 1.5rem; color: var(--ink-soft); font-size: .68rem; }.map-key span::before { content: ""; display: inline-block; width: .7rem; height: .7rem; margin-right: .4rem; border-radius: 50%; vertical-align: -.08em; }.key-machine::before { border: 2px solid var(--mint); }.key-human::before { background: var(--yellow); }.key-future::before { border: 1px dashed var(--line); background: transparent; opacity: .6; }

/* Day pages */
.day-page, .week-page, .character-page { padding: 4rem 2rem 0; }.day-title { display: grid; grid-template-columns: 1fr auto 220px; align-items: center; gap: 3rem; min-height: 310px; }.day-title h1 { margin: 1rem 0 .2rem; font-family: var(--human); font-size: clamp(2.2rem, 5vw, 4rem); font-weight: 600; }.day-title > div > p:last-child { color: var(--ink-soft); }.remaining-seal { width: 210px; height: 210px; display: grid; grid-template-columns: 1fr auto; place-content: center; transform: rotate(3deg); border: 2px solid var(--ink); border-radius: 49% 51% 46% 54%; text-align: center; background: var(--yellow-soft); }.remaining-seal small { grid-column: 1 / -1; font-family: var(--human); }.remaining-seal b { font-size: 5.2rem; line-height: 1; letter-spacing: -.08em; }.remaining-seal span { align-self: end; padding-bottom: .6rem; }.day-ambassador { display: flex; flex-direction: column; align-items: center; color: var(--ink-soft); font-size: .68rem; text-align: center; text-decoration: none; }.day-ambassador img { width: 130px; aspect-ratio: 1; object-fit: contain; transform: rotate(-2deg); border: 6px solid var(--white); background: var(--white); }.day-ambassador b { color: var(--ink); font-family: var(--human); font-size: .95rem; }.day-rule { display: grid; grid-template-columns: 1fr 12px 1fr; align-items: center; gap: 1rem; margin: 1rem 0 5rem; }.day-rule span { height: 1px; background: var(--line); }.day-rule i { width: 10px; height: 10px; transform: rotate(45deg); background: var(--mint); }.day-page > .human-note { width: min(820px, 92%); margin: 0 auto 6rem; }.field-columns { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 6rem); padding: 4rem 0; border-top: 1px solid var(--line); }.born-log h2 { margin: .3rem 0 1.5rem; font-family: var(--human); }.photo-notes { padding: 5rem 0; border-top: 1px solid var(--line); }.photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }.photo-grid figure { margin: 0; padding: .7rem .7rem 1.8rem; transform: rotate(-.5deg); background: var(--sheet); border: 1px solid var(--line-soft); }.photo-grid figure:nth-child(even) { transform: rotate(.7deg); }.photo-grid img { width: 100%; max-height: 620px; object-fit: cover; }.photo-grid video { width: 100%; max-height: 620px; background: #000; display: block; }.photo-grid figcaption { padding: .6rem .4rem 0; color: var(--ink-soft); font-size: .65rem; }.day-turn, .week-turn { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; margin-top: 5rem; padding: 2rem 0; border-block: 1px solid var(--line); }.day-turn a { text-decoration: none; }.day-turn a:last-child { text-align: right; }.day-turn span, .day-turn b { display: block; }.day-turn span { color: var(--ink-soft); font-size: .68rem; }.day-turn b { font-size: 1.1rem; }.day-turn .to-index { padding: .4rem .8rem; border: 1px solid var(--line); border-radius: 999px; font-size: .7rem; }
.field-columns.is-single { grid-template-columns: 1fr; }

/* Indexes and weeks */
.book-heading { max-width: 780px; margin: 0 auto; padding: 6rem 0 5rem; text-align: center; }.book-heading h1 { margin: .4rem 0 1rem; font-family: var(--human); font-size: clamp(2.6rem, 7vw, 5.5rem); font-weight: 600; line-height: 1.2; }.book-heading > p:last-child { color: var(--ink-soft); }.month-stack { display: grid; gap: 6rem; }.month-index { display: grid; grid-template-columns: 160px 1fr; gap: 3rem; }.month-index > header { position: sticky; top: 1rem; align-self: start; padding-top: 1rem; border-top: 3px solid var(--ink); }.month-index header span { color: var(--salmon); font-size: 3rem; font-weight: 900; line-height: 1; }.month-index header h2 { margin: .3rem 0; font-family: var(--human); font-size: 1.8rem; }.month-index header p { margin: 0; color: var(--ink-soft); font-size: .6rem; letter-spacing: .12em; }.month-index ol { margin: 0; padding: 0; list-style: none; }.month-index li { border-top: 1px solid var(--line-soft); }.month-index li:last-child { border-bottom: 1px solid var(--line-soft); }.month-index li a { display: grid; grid-template-columns: 70px 130px minmax(0, 1fr) 90px; gap: 1rem; align-items: baseline; padding: .8rem .5rem; text-decoration: none; }.month-index li a:hover { background: var(--mint-soft); }.index-day { font-weight: 900; }.index-date { font-family: var(--human); }.index-line { min-width: 0; overflow: hidden; color: var(--ink-soft); font-family: var(--human); font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }.index-made { color: var(--bluegray); font-size: .65rem; text-align: right; }
.week-routes { position: relative; max-width: 970px; margin: 0 auto; }.week-routes::before { content: ""; position: absolute; left: 67px; top: 0; bottom: 0; border-left: 1px dashed var(--line); }.week-route { position: relative; display: grid; grid-template-columns: 135px 1fr 90px; align-items: center; gap: 2rem; min-height: 145px; border-top: 1px solid var(--line-soft); }.week-route:last-child { border-bottom: 1px solid var(--line-soft); }.week-number { z-index: 1; width: 86px; height: 86px; display: grid; place-content: center; justify-self: center; border: 2px solid var(--ink); border-radius: 50%; background: var(--paper); text-align: center; text-decoration: none; }.week-number small, .week-number b { display: block; }.week-number small { font-size: .52rem; letter-spacing: .15em; }.week-number b { font-size: 2rem; line-height: 1.1; }.week-route h2 { margin: 0; font-family: var(--human); font-size: 1.4rem; }.week-route p { margin: .2rem 0; color: var(--ink-soft); font-size: .72rem; }.week-dots { display: flex; gap: .35rem; margin-top: .7rem; }.week-dots i { width: 12px; height: 12px; border: 1px solid var(--line); border-radius: 50%; }.week-dots i.has-machine { border: 2px solid var(--mint); }.week-dots i.has-human { background: var(--yellow); }.week-face img { width: 78px; aspect-ratio: 1; object-fit: contain; transform: rotate(3deg); border: 4px solid var(--white); background: var(--white); }
.week-title { display: flex; justify-content: space-between; align-items: center; gap: 2rem; min-height: 300px; border-bottom: 2px solid var(--ink); }.week-title h1 { margin: .3rem 0; font-size: clamp(4rem, 10vw, 8rem); line-height: .9; letter-spacing: -.07em; }.week-title > a { display: flex; align-items: center; gap: 1rem; text-decoration: none; }.week-guide { width: 150px; aspect-ratio: 1; object-fit: contain; transform: rotate(2deg); border: 7px solid var(--white); background: var(--white); }.week-title > a span { font-family: var(--human); }.translation-note { margin: 2rem 0; padding: 1rem 1.5rem; border-left: 5px solid var(--yellow); background: var(--yellow-soft); font-size: .82rem; }.week-day-entry { display: grid; grid-template-columns: 170px minmax(0, 1.1fr) minmax(0, .9fr); gap: 2.5rem; padding: 3.5rem 0; border-bottom: 1px solid var(--line); }.entry-date { text-decoration: none; }.entry-date > * { display: block; }.entry-date small { color: var(--bluegray); font-size: .65rem; font-weight: 900; letter-spacing: .1em; }.entry-date b { margin: .4rem 0; font-family: var(--human); font-size: 1.15rem; }.entry-date span { color: var(--ink-soft); font-size: .68rem; }.human-note.is-compact { padding: 1.5rem; box-shadow: 4px 5px 0 var(--yellow-soft); }.human-note.is-compact blockquote { font-size: 1.15rem; }.human-note.is-compact .no-words { font-size: .95rem; }.machine-ledger.is-compact li { grid-template-columns: 3.8rem 1fr; gap: .5rem; padding: .55rem 0; font-size: .72rem; }.machine-ledger.is-compact .ledger-heading strong { font-size: 1.5rem; }.week-turn a { font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-decoration: none; }.week-turn a:nth-child(2) { text-align: center; }.week-turn a:last-child { text-align: right; }
.week-guide-link { display: flex; align-items: center; gap: 1rem; text-decoration: none; }.week-guide-link > span { font-family: var(--human); }.human-note.is-compact .human-summary { margin-bottom: 1rem; padding-bottom: .8rem; }.human-note.is-compact .human-summary h2 { font-size: 1.1rem; }

/* World */
.world-hero { min-height: 620px; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: 1fr auto; gap: 2rem 4rem; align-items: center; padding: 5rem 2rem; border-bottom: 1px solid var(--line); }.world-title h1 { margin: .7rem 0 1.5rem; font-family: var(--human); font-size: clamp(2.8rem, 7vw, 5.6rem); font-weight: 600; line-height: 1.25; }.world-title h1 span { display: inline-block; }.world-title > p:last-child { max-width: 570px; color: var(--ink-soft); }.world-count { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1.3rem; transform: rotate(1deg); padding: 2rem; border: 2px solid var(--ink); border-radius: 52% 48% 49% 51%; background: var(--yellow-soft); text-align: center; }.world-count span b { display: block; font-size: clamp(3rem, 7vw, 5rem); line-height: .9; letter-spacing: -.08em; }.world-count span { font-size: .58rem; font-weight: 900; letter-spacing: .1em; }.world-count i { font-style: normal; }.world-count small { grid-column: 1 / -1; color: var(--ink-soft); font-weight: 900; letter-spacing: .18em; }.world-guide { grid-column: 1 / -1; justify-self: end; display: flex; align-items: center; gap: 1rem; padding: .5rem 1rem .5rem .5rem; transform: rotate(-2deg); border: 1px solid var(--line); background: var(--sheet); text-decoration: none; }.world-guide img { width: 90px; aspect-ratio: 1; object-fit: contain; background: var(--white); }.world-guide span { font-family: var(--human); }.character-ledger { margin-top: 3rem; }.ledger-tier { margin-top: 5rem; }.ledger-tier > h3 { display: flex; align-items: baseline; gap: 1rem; padding-bottom: .6rem; border-bottom: 2px solid var(--ink); font-family: var(--human); font-size: 1.4rem; }.ledger-tier > h3 span { color: var(--bluegray); font-family: var(--machine); font-size: .6rem; letter-spacing: .15em; }.registry-shelf { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: var(--line-soft); border: 1px solid var(--line-soft); }.registry-entry { min-width: 0; padding: 1rem; background: var(--paper); text-decoration: none; }.registry-entry:hover { background: var(--mint-soft); }.registry-entry > img, .registry-entry > .art-missing { width: 100%; aspect-ratio: 1; object-fit: contain; }.game-tier .registry-entry > img { aspect-ratio: 4 / 5; object-fit: cover; filter: saturate(.9); }.registry-entry span b, .registry-entry span small { display: block; }.registry-entry span b { margin-top: .8rem; font-family: var(--human); }.registry-entry span small { color: var(--ink-soft); font-size: .6rem; }.born-shelf { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Character records */
.back-link { display: inline-block; margin-bottom: 3rem; color: var(--ink-soft); font-size: .75rem; }.character-page > header { display: grid; grid-template-columns: minmax(300px, 500px) minmax(0, 1fr); gap: clamp(3rem, 8vw, 7rem); align-items: center; }.character-portrait { padding: 1rem; transform: rotate(-1deg); border: 1px solid var(--line); background: var(--sheet); box-shadow: 9px 10px 0 var(--mint-soft); }.character-portrait > img { width: 100%; max-height: 620px; aspect-ratio: 1; object-fit: contain; background: var(--white); }.registry-character.is-game-art .character-portrait > img { aspect-ratio: 4 / 5; object-fit: contain; background: var(--paper-deep); }.character-page h1 { margin: .5rem 0 0; font-family: var(--human); font-size: clamp(3rem, 7vw, 6rem); font-weight: 600; line-height: 1.15; }.name-en { margin: 0; color: var(--bluegray); font-size: .75rem; font-weight: 900; letter-spacing: .16em; }.character-role { margin: 2rem 0; font-family: var(--human); font-size: 1.05rem; line-height: 2; }.character-page dl { display: grid; grid-template-columns: 5rem 1fr; margin: 2rem 0; padding-block: .8rem; border-block: 1px solid var(--line); font-size: .78rem; }.character-page dt, .character-page dd { margin: 0; padding: .45rem 0; border-bottom: 1px dotted var(--line-soft); }.character-page dt { color: var(--ink-soft); }.character-stickers, .appearance-log { margin-top: 7rem; padding-top: 5rem; border-top: 1px solid var(--line); }.single-sticker-grid { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: .8rem; }.single-sticker-grid a { aspect-ratio: 1; padding: .3rem; background: var(--white); }.single-sticker-grid img { width: 100%; height: 100%; object-fit: contain; }.record-slip { width: max-content; max-width: 100%; margin: 5rem 0 0 auto; padding: 1rem 1.5rem; transform: rotate(2deg); border: 1px dashed var(--line); color: var(--ink-soft); font-size: .62rem; letter-spacing: .08em; }.appearance-log ol { display: flex; flex-wrap: wrap; gap: .7rem; padding: 0; list-style: none; }.appearance-log li a, .appearance-log li > span { display: block; padding: .6rem 1rem; border: 1px solid var(--line); background: var(--sheet); text-decoration: none; }.appearance-log li b, .appearance-log li span { display: block; }.appearance-log li b { font-size: .7rem; }.appearance-log li span { color: var(--ink-soft); font-family: var(--human); font-size: .75rem; }
.single-sticker-grid > span { aspect-ratio: 1; padding: .3rem; background: var(--white); }

/* Tags and English */
.tag-field { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }.tag-card { min-height: 150px; display: grid; grid-template-columns: auto 1fr 70px; align-items: center; gap: .5rem; padding: 1.2rem; border-block: 1px solid var(--line); text-decoration: none; }.tag-card:hover { background: var(--yellow-soft); }.tag-card > span { color: var(--salmon); font-size: 2rem; font-weight: 900; }.tag-card > b { font-family: var(--human); font-size: 1.25rem; }.tag-card > small { grid-column: 2; color: var(--ink-soft); font-size: .6rem; letter-spacing: .1em; }.tag-card > img { grid-column: 3; grid-row: 1 / 3; width: 70px; aspect-ratio: 1; object-fit: contain; transform: rotate(3deg); border: 4px solid var(--white); background: var(--white); }.empty-page { min-height: 30vh; padding: 3rem; border-block: 1px dashed var(--line); color: var(--ink-soft); text-align: center; }.tag-heading h1 span { color: var(--salmon); }.tag-days { max-width: 880px; margin: 0 auto; }.tag-day { display: grid; grid-template-columns: 170px 1fr; gap: 2rem; align-items: start; padding: 2.5rem 0; border-bottom: 1px solid var(--line); }.tag-day > a { text-decoration: none; }.tag-day > a small, .tag-day > a b { display: block; }.tag-day > a small { color: var(--bluegray); font-size: .65rem; }.tag-day > a b { font-family: var(--human); }
.en-heading { max-width: 900px; }.en-heading h1 { font-family: var(--machine); font-size: clamp(2.7rem, 7vw, 5.6rem); font-weight: 900; letter-spacing: -.045em; }.en-principle { max-width: 760px; margin: 0 auto 5rem; padding: 2rem 2.5rem; transform: rotate(-.5deg); border: 1px solid var(--line); background: var(--yellow-soft); }.en-principle b { font-family: var(--human); font-size: 1.5rem; }.en-principle p { margin-bottom: 0; }.en-weeks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }.en-week { display: grid; grid-template-columns: 90px 1fr 76px; align-items: center; gap: 1rem; min-height: 130px; padding: 1.2rem; border-bottom: 1px solid var(--line); text-decoration: none; }.en-week:nth-child(odd) { border-right: 1px solid var(--line); }.en-week:hover { background: var(--mint-soft); }.en-week > span small, .en-week > span b { display: block; }.en-week > span small { color: var(--bluegray); font-size: .55rem; letter-spacing: .13em; }.en-week > span b { font-size: 2rem; line-height: 1; }.en-week p { font-weight: 700; }.en-week p small { display: block; color: var(--ink-soft); font-size: .6rem; font-weight: 500; }.en-week img { width: 76px; aspect-ratio: 1; object-fit: contain; transform: rotate(2deg); border: 4px solid var(--white); background: var(--white); }

@media (max-width: 980px) {
  .site-header { grid-template-columns: 1fr auto; padding: 1rem 0; }.site-header nav { grid-column: 1 / -1; grid-row: 2; justify-self: stretch; justify-content: flex-start; flex-wrap: wrap; padding-bottom: .2rem; }.theme-switch { grid-column: 2; grid-row: 1; }
  .adventure-hero { min-height: 780px; }.premise-copy { width: min(720px, calc(100% - 190px)); }.hero-countdown { width: 205px; height: 205px; right: 1rem; padding: 1.4rem; }.hero-countdown b { font-size: 4.3rem; }
  .quest-section { grid-template-columns: 1fr; }.quest-heading { max-width: 720px; }.quest-heading h2 br { display: none; }
  .recent-days { grid-template-columns: repeat(2, minmax(0, 1fr)); }.recent-day:nth-child(2) { border-right: 0; }
  .today-hero { grid-template-columns: 1fr; padding-top: 4rem; }.hero-cast { width: min(540px, 100%); margin: 0 auto; }.today-spread { grid-template-columns: 35px 1fr; }.today-machine { grid-column: 2; }.cast-shelf { grid-template-columns: repeat(3, minmax(0, 1fr)); }.sticker-grid, .single-sticker-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }.day-title { grid-template-columns: 1fr auto; }.day-ambassador { grid-column: 1 / -1; flex-direction: row; justify-self: end; }.day-ambassador img { width: 90px; }.week-day-entry { grid-template-columns: 130px 1fr; }.week-day-entry .machine-ledger { grid-column: 2; }.registry-shelf { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* リアルの積み上げ。
   AI側とまったく同じ .velocity-counts / .velocity-card を使う。
   幅・余白・数字の大きさをCSSで作り直すと、必ずどちらかが小さく見える（要件§3）。
   状態は色だけで区別しない。「準備中」「構想」と文字で必ず書く。 */
.real-section { border-top: 3px solid var(--mint); }
.real-card .velocity-note { margin: 1rem 0 0; }
.real-recent { margin: .55rem 0 0; color: var(--ink-soft); font-size: .62rem; font-weight: 700; }
.real-latest { display: flex; flex-direction: column; gap: .25rem; margin: 1rem 0 0; padding-top: .85rem; border-top: 1px dotted var(--line); }
.real-latest small { color: var(--ink-soft); font-family: var(--machine); font-size: .58rem; font-weight: 700; letter-spacing: .1em; }
.real-latest b { font-family: var(--human); font-size: .84rem; line-height: 1.5; }
.real-latest span { color: var(--ink); font-size: .68rem; line-height: 1.65; }
.real-latest em { color: var(--ink-soft); font-family: var(--human); font-size: .74rem; font-style: normal; line-height: 1.65; }
.real-latest i { color: var(--ink-soft); font-family: var(--machine); font-size: .58rem; font-style: normal; }
.real-row-state { display: inline-block; margin-left: .35rem; padding: .1rem .5rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-soft); font-family: var(--machine); font-size: .56rem; font-weight: 700; }
.real-breakdown { margin: 1.1rem 0 0; padding-top: .9rem; border-top: 1px dotted var(--line); }
.real-breakdown summary { cursor: pointer; color: var(--ink-soft); font-family: var(--machine); font-size: .64rem; font-weight: 700; }
.real-breakdown summary:hover { color: var(--ink); }
.real-breakdown summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.real-breakdown ul { display: grid; gap: .9rem; margin: .9rem 0 0; padding: 0; list-style: none; }
.real-row { padding-top: .85rem; border-top: 1px dotted var(--line-soft); }
.real-row:first-child { padding-top: 0; border-top: 0; }
.real-row p { margin: 0 0 .28rem; overflow-wrap: anywhere; }
.real-row p:last-child { margin-bottom: 0; }
.real-row-head { font-family: var(--human); font-size: .78rem; line-height: 1.5; }
.real-row-head em { margin-left: .3rem; font-family: var(--machine); font-size: .66rem; font-style: normal; font-weight: 700; }
.real-row-what { color: var(--ink); font-size: .66rem; line-height: 1.65; }
.real-row-quote { color: var(--ink-soft); font-family: var(--human); font-size: .72rem; line-height: 1.7; }
.real-row-note, .real-row-date { color: var(--ink-soft); font-family: var(--machine); font-size: .58rem; line-height: 1.6; }
.real-foot { margin: 1.5rem 0 0; padding-top: 1.1rem; border-top: 1px dotted var(--line); color: var(--ink-soft); font-size: .66rem; line-height: 1.85; }

/* AIとリアルが、つながったこと。抽象的な循環図にせず、実例を出す。 */
.bridge-section { margin: 5rem 2rem; padding: 2.2rem 2.5rem; border: 1px solid var(--line); background: var(--sheet); box-shadow: 7px 8px 0 var(--paper-deep); }
.bridge-heading h2 { margin: 0; font-family: var(--human); font-size: clamp(1.5rem, 2.7vw, 2.1rem); }
.bridge-heading > p:not(.eyebrow) { margin: .55rem 0 0; color: var(--ink-soft); font-family: var(--human); font-size: .92rem; line-height: 1.7; }
.bridge-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 2rem 0 0; padding: 0; list-style: none; border-block: 1px solid var(--line); }
.bridge-item { min-width: 0; padding: 1.5rem 1.3rem; }
.bridge-item + .bridge-item { border-left: 1px solid var(--line-soft); }
.bridge-state { display: inline-block; margin: 0 0 .8rem; padding: .2rem .65rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-soft); font-family: var(--machine); font-size: .62rem; font-weight: 700; letter-spacing: .06em; }
.bridge-item h3 { margin: 0 0 1rem; font-family: var(--human); font-size: 1rem; line-height: 1.55; }
.bridge-item dl { margin: 0; }
.bridge-item dt { color: var(--ink-soft); font-family: var(--machine); font-size: .58rem; font-weight: 700; letter-spacing: .1em; }
.bridge-item dd { margin: .3rem 0 .9rem; color: var(--ink); font-size: .73rem; line-height: 1.8; overflow-wrap: anywhere; }
.bridge-unconfirmed { margin: .3rem 0 0; padding-top: .85rem; border-top: 1px dotted var(--line); color: var(--ink-soft); font-size: .65rem; line-height: 1.75; }
.bridge-links { margin: .95rem 0 0; font-size: .68rem; }
.bridge-links a { margin-right: .8rem; }
.bridge-foot { margin: 1.5rem 0 0; color: var(--ink-soft); font-size: .66rem; line-height: 1.85; }
.weapons-close { margin: 4rem 2rem 5rem; }

@media (max-width: 720px) {
  .bridge-section { margin: 4rem .5rem; padding: 1.7rem 1.4rem; }
  .bridge-list { grid-template-columns: 1fr; }
  .bridge-item { padding: 1.4rem 0; }
  .bridge-item + .bridge-item { border-left: 0; border-top: 1px solid var(--line-soft); }
  .weapons-close { margin: 3rem .5rem 4rem; }
}

@media (max-width: 720px) {
  main, .site-header, .site-footer { width: min(100% - 22px, 1180px); }.brand small { display: none; }.site-header nav { gap: .8rem; font-size: .7rem; }.site-header nav a { white-space: nowrap; }
  .adventure-hero { min-height: auto; padding: 4rem .5rem 4.5rem; background: radial-gradient(circle at 94% 9%, var(--yellow-soft) 0 5rem, transparent 5.1rem); }.adventure-title h1 { font-size: clamp(3.9rem, 18vw, 7rem); }.adventure-lead { margin-left: .5rem; }.premise-copy { width: 100%; padding-left: 0; }.hero-countdown { position: relative; right: auto; bottom: auto; width: 205px; height: 205px; margin: 3rem 1rem 0 auto; }.adventure-marks { display: none; }
  .home-today { grid-template-columns: 1fr; padding: 4.5rem .5rem; }.home-today > header { padding-bottom: 2rem; border-right: 0; border-bottom: 1px solid var(--line); }.home-today > header > span b { display: inline; margin-left: .35rem; }.home-today .human-note { margin-top: 1rem; }
  .quest-section { padding: 6rem .5rem; background: linear-gradient(170deg, transparent 0 4%, var(--mint-soft) 4.1% 96%, transparent 96.1%); }.quest-heading h2 br { display: initial; }.quest-grid { gap: .7rem; }.quest-grid li { min-height: 135px; padding: 1rem; }
  .weapons-section { margin: 4rem .5rem; padding: 1.7rem 1.4rem; }.velocity-counts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; border: 1px solid var(--line-soft); background: var(--line-soft); }.velocity-card { min-height: 220px; background-color: var(--sheet); }.velocity-card + .velocity-card { border-left: 0; }.previous-days { padding: 4.5rem .5rem; }
  .today-hero, .world-hero { min-height: auto; padding-inline: .5rem; }.hero-copy h1 b { font-size: clamp(6.5rem, 38vw, 10rem); }.hero-cast { min-height: 400px; }.hero-sticker { width: 68px; }.proof-ribbon { margin-inline: -11px; padding: 1.5rem 1.2rem; }.proof-ribbon div { align-items: center; }.proof-ribbon i { display: none; }.proof-ribbon span { width: calc(50% - .5rem); white-space: normal; }.today-spread { grid-template-columns: 1fr; padding: 5rem .5rem; }.today-margin { display: none; }.today-machine { grid-column: auto; }.human-note { padding: 2rem 1.4rem; }.newborn-section, .cast-preview, .journey-map, .sales-cast, .all-stickers, .character-ledger { padding: 4.5rem .5rem; }.section-heading.split { display: block; }.section-heading.split > p { margin-top: 1rem; }.cast-shelf { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem 1rem; }.cast-card p { min-height: auto; }.day-ribbon { grid-template-columns: repeat(14, minmax(0, 1fr)); padding: 1rem; }.day-page, .week-page, .character-page { padding: 3rem .5rem 0; }.day-title { display: grid; grid-template-columns: 1fr auto; gap: 1rem; }.day-title > div:first-child { grid-column: 1 / -1; }.remaining-seal { width: 150px; height: 150px; }.remaining-seal b { font-size: 3.6rem; }.day-ambassador { grid-column: auto; }.field-columns { grid-template-columns: 1fr; }.photo-grid { grid-template-columns: 1fr; }.month-index { grid-template-columns: 1fr; gap: 1rem; }.month-index > header { position: static; display: flex; align-items: baseline; gap: .8rem; }.month-index li a { grid-template-columns: 50px 1fr auto; gap: .6rem; }.index-line { grid-column: 2 / -1; grid-row: 2; }.index-made { grid-column: 3; grid-row: 1; }.week-route { grid-template-columns: 85px 1fr; gap: 1rem; }.week-routes::before { left: 42px; }.week-number { width: 68px; height: 68px; }.week-face { display: none; }.week-title { min-height: 240px; }.week-guide-link > span { display: none; }.week-guide { width: 90px; }.week-day-entry { grid-template-columns: 1fr; gap: 1.5rem; }.week-day-entry .machine-ledger { grid-column: auto; }.entry-date { display: flex; align-items: baseline; gap: .7rem; }.world-hero { grid-template-columns: 1fr; }.world-count { padding: 1.5rem .8rem; }.world-guide { grid-column: auto; }.sticker-family { grid-template-columns: 1fr; }.family-label { position: static; display: grid; grid-template-columns: 70px 1fr auto; align-items: center; gap: .8rem; padding: 0 0 1rem; border-right: 0; border-bottom: 1px solid var(--line); }.family-label > div { width: 64px; }.sticker-grid, .single-sticker-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }.registry-shelf, .born-shelf { grid-template-columns: repeat(2, minmax(0, 1fr)); }.character-page > header { grid-template-columns: 1fr; justify-items: stretch; text-align: left; }.character-portrait { width: min(480px, 100%); margin: 0 auto; }.character-page > header > div { width: 100%; text-align: left; }.character-page h1, .character-page .name-en, .character-page .character-role { text-align: left; }.character-page dl { grid-template-columns: 1fr; gap: 0; }.character-page dt { padding-bottom: 0; border-bottom: 0; }.character-page dd { padding-top: .15rem; padding-left: 0; }.record-slip { margin: 3rem auto 0 0; }.tag-field { grid-template-columns: 1fr; }.tag-day { grid-template-columns: 1fr; }.en-weeks { grid-template-columns: 1fr; }.en-week:nth-child(odd) { border-right: 0; }.site-footer { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 430px) {
  .adventure-title .kicker { align-items: flex-start; flex-direction: column; }.adventure-title h1 { font-size: clamp(3.5rem, 19vw, 5.2rem); }.adventure-lead { font-size: 1.35rem; }.premise-1, .premise-2, .premise-3 { font-size: 1.18rem; }.premise-3 { padding-inline: .7rem; }.hero-countdown { margin-right: auto; }.quest-grid, .recent-days { grid-template-columns: 1fr; }.recent-day { border-right: 0; }.velocity-counts { grid-template-columns: 1fr; }.velocity-card { min-height: 0; }
  .brand b { font-size: .92rem; }.theme-switch { font-size: 0; }.theme-switch span { margin: .1rem; }.hero-cover { left: 16%; width: 68%; }.hero-sticker { width: 57px; }.proof-ribbon span { width: 100%; }.cast-shelf { gap-inline: .65rem; }.cast-store-link { padding: .35rem .35rem 1rem; }.cast-card h3 { margin-inline: .25rem; font-size: 1rem; }.cast-card p, .cast-card small, .cast-card .cast-store-link b { margin-inline: .25rem; }.cast-card p { font-size: .64rem; }.day-title { grid-template-columns: 1fr 100px; }.remaining-seal { width: 100px; height: 100px; }.remaining-seal small { font-size: .55rem; }.remaining-seal b { font-size: 2.5rem; }.remaining-seal span { font-size: .6rem; }.day-ambassador img { width: 65px; }.day-turn { grid-template-columns: 1fr 1fr; }.day-turn .to-index { grid-column: 1 / -1; grid-row: 1; justify-self: center; }.sticker-grid, .single-sticker-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }.family-label { grid-template-columns: 58px 1fr; }.family-label .store-button { grid-column: 1 / -1; justify-self: start; }.world-count { gap: .5rem; }.world-count span b { font-size: 2.7rem; }.en-week { grid-template-columns: 68px 1fr 55px; }.en-week img { width: 55px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
