:root {
  --ink: #101c2c;
  --muted: #637083;
  --paper: #fbfcfd;
  --red: #e84837;
  --blue: #0f75a8;
  --line: #d9dde3;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: #e9edf1; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.55; }
img { display: block; max-width: 100%; }
a { color: inherit; }

.print-actions { position: sticky; top: 0; z-index: 10; padding: 14px max(20px, calc((100vw - 900px) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 18px; color: white; background: rgba(16, 28, 44, .97); }
.print-actions a { font-weight: 700; text-decoration: none; }
.print-action-buttons { display: flex; align-items: center; gap: 10px; }
.print-actions .pdf-download { padding: 9px 14px; border: 1px solid rgba(255,255,255,.7); border-radius: 2px; }
.print-actions .pdf-download:hover { background: rgba(255,255,255,.1); }
.print-actions button { padding: 11px 16px; border: 0; border-radius: 2px; color: white; background: var(--red); font: inherit; font-weight: 800; cursor: pointer; }
.print-actions button:hover { background: #cf392b; }

.print-book { width: min(900px, calc(100% - 32px)); margin: 32px auto 70px; background: var(--paper); box-shadow: 0 18px 55px rgba(16, 28, 44, .16); }
.print-cover, .print-toc, .print-poem, .print-end { min-height: 1120px; padding: 88px 82px; }
.print-cover { display: flex; flex-direction: column; justify-content: center; border-left: 12px solid var(--red); }
.print-cover > p, .print-kicker { margin: 0 0 24px; color: var(--red); font-size: .8rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.print-cover h1 { margin: 0 0 42px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(4rem, 10vw, 7.2rem); font-weight: 500; letter-spacing: -.045em; line-height: .95; }
.print-cover h1 em { color: var(--blue); font-weight: 400; }
.print-cover strong { color: var(--ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.7rem; font-weight: 400; }
.print-cover small { margin-top: 70px; color: var(--muted); font-weight: 750; }

.print-toc { border-top: 1px solid var(--line); }
.print-toc h2 { margin: 0 0 36px; font-family: Georgia, "Times New Roman", serif; font-size: 4.4rem; font-weight: 500; letter-spacing: -.035em; }
.print-toc-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 46px; }
.print-toc ol { margin: 0; padding: 0; list-style: none; }
.print-toc li { break-inside: avoid; margin: 0 0 10px; border-bottom: 1px solid var(--line); }
.print-toc li a { padding: 5px 0 8px; display: grid; grid-template-columns: 2.4rem 1fr; gap: 8px; text-decoration: none; }
.print-toc li span { color: var(--red); font-size: .76rem; font-weight: 850; letter-spacing: .08em; }
.print-note { margin: 40px 0 0; color: var(--muted); font-size: .84rem; }

.print-poem { border-top: 1px solid var(--line); }
.print-poem > header { margin-bottom: 38px; }
.print-poem > header > span { display: block; margin-bottom: 16px; color: var(--red); font-size: .78rem; font-weight: 850; letter-spacing: .15em; }
.print-poem h2 { max-width: 730px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.8rem, 7vw, 5.4rem); font-weight: 500; letter-spacing: -.035em; line-height: 1; }
.print-poem h2 small { color: var(--muted); font-family: Inter, sans-serif; font-size: .32em; font-weight: 650; letter-spacing: 0; white-space: nowrap; }
.print-poem-main { display: block; }
.print-poem-main.has-media { display: grid; grid-template-columns: minmax(0, .88fr) minmax(260px, 1.12fr); gap: 42px; align-items: start; }
.print-poem-main.image-grid .print-media { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.print-poem-main.image-count-2 .print-media { display: block; }
.print-poem-main.image-grid .print-video-link { grid-column: 1 / -1; }
.print-poem-main.gallery { display: block; }
.print-poem-main.gallery .print-poem-text { max-width: 620px; margin-bottom: 34px; }
.print-poem-main.gallery .print-media { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.print-poem-main.gallery .print-video-link { grid-column: 1 / -1; }
.print-poem-text, .print-introduction, .print-day-text { padding-left: 22px; border-left: 4px solid var(--red); font-family: Georgia, "Times New Roman", serif; font-size: 1.18rem; line-height: 1.7; }
.print-poem-text span, .print-introduction span, .print-day-text span { display: block; }
.print-stanza { margin-bottom: .9rem; break-inside: avoid; page-break-inside: avoid; }
.print-stanza:last-child { margin-bottom: 0; }
.stanza-gap { height: .9rem; }
.print-media figure, .print-day figure { margin: 0 0 20px; break-inside: avoid; }
.print-media img, .print-day img { width: 100%; max-height: 620px; object-fit: contain; object-position: top center; }
.print-video-link { margin: 16px 0 0; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: .82rem; }
.print-video-link a { color: var(--blue); font-weight: 750; }

.print-introduction { max-width: 620px; margin-bottom: 36px; }
.print-days { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.print-day { break-inside: avoid; padding-top: 15px; border-top: 3px solid var(--red); }
.print-day h3 { margin: 0 0 12px; color: var(--red); font-family: Inter, sans-serif; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }
.print-day-text { margin-bottom: 18px; padding-left: 0; border-left: 0; font-size: 1rem; }

.print-end { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; border-top: 12px solid var(--red); }
.print-end p { margin: 0 0 14px; color: var(--red); font-family: Georgia, "Times New Roman", serif; font-size: 2.7rem; }
.print-end strong { margin-bottom: 26px; font-size: 1.1rem; }
.print-end a { color: var(--muted); font-size: .88rem; }

@media (max-width: 720px) {
  .print-actions { align-items: stretch; flex-direction: column; }
  .print-action-buttons { align-items: stretch; flex-direction: column; }
  .print-actions .pdf-download { text-align: center; }
  .print-actions button { width: 100%; }
  .print-book { width: 100%; margin: 0; box-shadow: none; }
  .print-cover, .print-toc, .print-poem, .print-end { min-height: 0; padding: 64px 24px; }
  .print-cover { min-height: 85vh; }
  .print-toc-columns { grid-template-columns: 1fr; }
  .print-poem-main.has-media, .print-days { grid-template-columns: 1fr; }
  .print-poem-main.gallery .print-media { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .print-poem h2 { font-size: clamp(2.7rem, 13vw, 4.8rem); }
}

@page { size: A4 portrait; margin: 0; }

@media print {
  :root { --paper: #fff; }
  html, body { width: 210mm; margin: 0; padding: 0; background: white; }
  body { color: #111827; font-size: 10.5pt; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .print-actions { display: none !important; }
  .print-book { width: auto; margin: 0; background: white; box-shadow: none; }
  .print-cover, .print-toc, .print-poem, .print-end {
    width: 210mm;
    height: 297mm;
    min-height: 0;
    padding: 16mm 15mm 18mm;
    overflow: hidden;
    border-top: 0;
    break-after: page;
    page-break-after: always;
    break-inside: avoid-page;
    page-break-inside: avoid;
  }
  .print-cover { padding: 38mm 20mm 28mm 24mm; border-left: 4mm solid var(--red); }
  .print-cover h1 { font-size: 55pt; }
  .print-cover strong { font-size: 18pt; }
  .print-toc { padding-top: 18mm; }
  .print-toc h2 { margin-bottom: 7mm; font-size: 29pt; }
  .print-toc-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12mm; }
  .print-toc li { margin-bottom: 0; }
  .print-toc li a { padding: 1.05mm 0 1.35mm; font-size: 8.8pt; line-height: 1.2; }
  .print-note { margin-top: 5mm; }
  .print-poem > header { break-after: avoid-page; page-break-after: avoid; margin-bottom: 8mm; }
  .print-poem h2 { font-size: 31pt; }
  .print-poem-main.has-media { grid-template-columns: minmax(0, .9fr) minmax(60mm, 1.1fr); gap: 9mm; }
  .print-poem-main.image-grid .print-media { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4mm; }
  .print-poem-main.image-count-2 .print-media { display: block; }
  .print-poem-main.image-count-2 .print-media img { max-height: 82mm; }
  .print-poem-main.image-count-3 .print-media img,
  .print-poem-main.image-count-4 .print-media img { max-height: 78mm; }
  .print-poem-main.gallery { display: block; }
  .print-poem-main.gallery .print-poem-text { margin-bottom: 7mm; }
  .print-poem-main.gallery .print-media { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4mm; }
  .print-poem-main.gallery .print-media img { max-height: 70mm; }
  .print-poem-text, .print-introduction { font-size: 11pt; line-height: 1.58; }
  .print-media figure, .print-day { break-inside: avoid; page-break-inside: avoid; }
  .print-media img { max-height: 150mm; }
  .print-serial { padding-top: 12mm; }
  .print-serial > header { margin-bottom: 5mm; }
  .print-serial h2 { font-size: 26pt; }
  .print-serial .print-introduction { margin-bottom: 5mm; font-size: 9.2pt; line-height: 1.35; }
  .print-days { display: grid; grid-template-columns: 1fr; gap: 4mm; }
  .print-day { height: 66mm; padding-top: 3mm; display: grid; grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: 6mm; align-items: center; }
  .print-day-text { margin: 0; font-size: 9.2pt; line-height: 1.38; }
  .print-day-text h3 { margin-bottom: 2mm; }
  .print-day figure { margin: 0; height: 58mm; }
  .print-day img { width: 100%; height: 100%; max-height: 58mm; object-fit: contain; object-position: center; }
  .print-serial-part-2 { padding-top: 16mm; }
  .print-video-link { font-size: 8.5pt; }
  .poem-un-soir-sans-karate-le-cocon > header { margin-bottom: 5mm; }
  .poem-un-soir-sans-karate-le-cocon h2 { font-size: 27pt; }
  .poem-un-soir-sans-karate-le-cocon .print-poem-text { font-size: 9.4pt; line-height: 1.38; }
  .poem-un-soir-sans-karate-le-cocon .print-media img { max-height: 68mm; }
  .poem-tensho-au-chateau { padding-top: 12mm; }
  .poem-tensho-au-chateau > header { margin-bottom: 5mm; }
  .poem-tensho-au-chateau h2 { font-size: 27pt; }
  .poem-tensho-au-chateau .print-poem-main.has-media { grid-template-columns: minmax(0, 1fr) minmax(58mm, .82fr); gap: 7mm; }
  .poem-tensho-au-chateau .print-poem-text { font-size: 8.55pt; line-height: 1.29; }
  .poem-tensho-au-chateau .print-stanza { margin-bottom: .52rem; }
  .poem-tensho-au-chateau .print-media figure { margin-bottom: 3mm; }
  .poem-tensho-au-chateau .print-media img { max-height: 61mm; }
  .poem-tensho-au-chateau .print-video-link { margin-top: 2mm; padding-top: 2mm; font-size: 7.8pt; }
  .print-end { border-top: 4mm solid var(--red); break-after: auto; page-break-after: auto; }
  a { text-decoration: none; }
}
