
:root{--story:#ef7fa2;--story-pale:#fff0f5;--book-paper:#fffdf9}
.book-page{
  position:relative;min-height:100vh;overflow-x:hidden;
  background:
    radial-gradient(circle at 12% 15%,rgba(255,255,255,.70) 0 1px,transparent 1.7px),
    radial-gradient(circle at 71% 22%,rgba(255,255,255,.70) 0 1px,transparent 1.6px),
    radial-gradient(circle at 84% 63%,rgba(255,235,130,.65) 0 1.2px,transparent 2px),
    linear-gradient(180deg,#342d67 0%,#231e49 100%);
  background-size:260px 210px,300px 260px,340px 300px,auto;
  color:#fff;
}
.book-page main,.book-page .book-hero,#official-header,#official-footer{position:relative;z-index:5}
.sky-effects{position:fixed;inset:74px 0 0;pointer-events:none;overflow:hidden;z-index:2}
.shooting-star{
  position:absolute;width:130px;height:2px;border-radius:999px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),#fff);
  filter:drop-shadow(0 0 5px rgba(255,255,255,.7));
  transform:rotate(-20deg);
  opacity:0;
  animation:shoot 1.15s ease-out forwards;
}
.shooting-star:after{
  content:"";position:absolute;right:-2px;top:-2px;width:6px;height:6px;border-radius:50%;
  background:#fff;box-shadow:0 0 10px #fff7c7;
}
@keyframes shoot{
  0%{opacity:0;transform:translate3d(0,0,0) rotate(-20deg)}
  12%{opacity:1}
  75%{opacity:.95}
  100%{opacity:0;transform:translate3d(430px,155px,0) rotate(-20deg)}
}
.book-hero{text-align:center;padding:40px 18px 18px}
.book-hero .eyebrow{font-size:12px;letter-spacing:.18em;font-weight:900;color:#ffd5e4}
.book-hero h1{font-size:clamp(31px,5vw,48px);margin:8px 0 7px}
.book-hero p{font-size:15px;line-height:1.8;max-width:720px;margin:0 auto;color:#f4f1fa}
.book-main{max-width:900px;margin:auto;padding:12px 16px 62px}
.flipbook-stage{
  position:relative;max-width:650px;margin:0 auto;padding:26px 66px 24px;
  border-radius:44px;background:rgba(10,8,31,.52);
  box-shadow:0 25px 55px rgba(0,0,0,.25);
  overflow:visible;
}
.flipbook{position:relative;aspect-ratio:409/507;perspective:1900px;overflow:visible}
.book-sheet{
  position:absolute;inset:0;transform-origin:left center;transform-style:preserve-3d;
  transition:transform .62s cubic-bezier(.2,.75,.15,1);border-radius:15px;
}
.book-sheet.flipped{transform:rotateY(-180deg)}
.page-face{position:absolute;inset:0;border-radius:15px;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:var(--book-paper);box-shadow:0 8px 18px rgba(0,0,0,.12);transform-style:preserve-3d;}
.page-front{transform:rotateY(0deg) translateZ(.35px)}
.page-back{transform:rotateY(180deg) translateZ(.35px);background:linear-gradient(90deg,rgba(140,120,134,.10),rgba(255,253,249,0) 6%),linear-gradient(180deg,#fffdf9,#fffaf7)}
.page-back:after{
  content:"";position:absolute;inset:17px;border:1px solid rgba(110,87,98,.05);
  border-radius:9px;
}

/* 重要：ページ画像はめくり後かなり早い段階で消す。
   左ページ自体（紙）は残る。 */
.book-sheet.turning-forward .page-front>*{
  visibility:visible!important;
  animation:front-image-vanish .62s linear both;
}
@keyframes front-image-vanish{
  0%,26%{opacity:1;visibility:visible}
  36%{opacity:0;visibility:visible}
  37%,100%{opacity:0;visibility:hidden}
}
.book-sheet.flipped:not(.turning-back):not(.turning-forward) .page-front>*{
  visibility:hidden!important;
}
.book-sheet.turning-back .page-front>*{
  visibility:visible!important;opacity:1!important;
}

.cover-page{position:absolute;inset:0}
.cover-page img{width:100%;height:100%;object-fit:cover;display:block}
.opening-page{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:32px 36px 40px;color:#463a43;
  background:linear-gradient(180deg,var(--story-pale),#fffdf9 68%,#fff);
}
.opening-page:after{
  content:"";position:absolute;inset:18px;
  border:1px solid color-mix(in srgb,var(--story) 28%,transparent);border-radius:18px;pointer-events:none
}
.opening-page img{width:205px;height:205px;object-fit:contain;margin-bottom:12px;filter:drop-shadow(0 10px 14px rgba(70,42,55,.11))}
.opening-place{font-size:16px;line-height:1.75;font-weight:700;color:#7f7079;margin:0 0 12px}
.opening-personality{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:20px;line-height:1.75;margin:0}
.opening-cue{font-size:25px;line-height:1.5;color:#765165;margin:18px 0 0}
.story-page{position:absolute;inset:0;display:grid;grid-template-rows:minmax(0,1fr) auto;color:#433840;background:#fffdf9}
.illustration-placeholder{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;background:linear-gradient(rgba(28,30,58,.10),rgba(28,30,58,.18)),url("../img/covers/book_cover_base.png") center/cover no-repeat;overflow:hidden;margin-left:-1px;margin-right:-1px;width:calc(100% + 2px)}
.illustration-placeholder img{width:44%;height:44%;max-width:250px;max-height:250px;object-fit:contain;filter:drop-shadow(0 10px 14px rgba(0,0,0,.18))}
.placeholder-copy{position:absolute;left:20px;right:20px;bottom:20px;text-align:center;color:#fff}
.placeholder-copy b{display:inline-block;font-size:12px;letter-spacing:.12em;background:rgba(20,22,50,.72);border-radius:999px;padding:6px 9px;margin-bottom:6px}
.placeholder-copy small{display:block;font-size:13px;line-height:1.5}
.story-text{min-height:150px;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px 28px 28px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:18px;line-height:1.95;white-space:pre-line}
.story-text.big{font-size:25px;font-weight:700}

/* 添付の最終ページ方向：キャラ＋次に読む導線 */
.ending-page{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  color:#493d45;background:linear-gradient(180deg,#fff8fb,#fffdf9 45%,#fff);
  padding:23px 24px 19px;text-align:center;
}
.ending-kicker{font-size:11px;letter-spacing:.18em;font-weight:900;color:#ef7fa2}
.ending-page h2{font-size:25px;line-height:1.35;margin:5px 0 2px}
.ending-page>p{font-size:13px;line-height:1.7;color:#7a6e75;margin:3px 0 7px}
.ending-character{width:168px;height:168px;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(80,45,62,.11));margin:2px 0 6px}
.next-title{font-size:16px;font-weight:900;margin:4px 0 10px}
.ending-next{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;margin-bottom:10px}
.ending-next a{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:118px;padding:10px 8px;border:1px solid #eadfe5;border-radius:16px;background:#fff;color:#5d5057}
.ending-next a:nth-child(1){background:#fff3f7}
.ending-next a:nth-child(2){background:#fff9e8}
.ending-next a:nth-child(3){background:#eef8fc}
.ending-next img{width:76px;height:76px;object-fit:contain}
.ending-next b{font-size:13px;line-height:1.45;margin-top:6px}
.ending-all{display:inline-block;border-radius:999px;background:#3b385b;color:#fff;padding:8px 15px;font-size:11px;font-weight:900}
.page-number{position:absolute;right:14px;bottom:11px;font-size:11px;color:#7b6f76}
.turn-arrow{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(28,25,58,.55);color:#fff;cursor:pointer;z-index:180}
.turn-arrow.prev{left:12px}.turn-arrow.next{right:12px}
.flip-controls{display:flex;justify-content:center;align-items:center;gap:24px;margin:18px 0 5px}
.flip-controls button{border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(16,14,38,.34);color:#fff;padding:10px 17px;font-weight:800;cursor:pointer}
.flip-controls button:disabled{opacity:.32;cursor:default}.flip-controls span{min-width:66px;text-align:center;font-weight:900}
.flip-hint{text-align:center;font-size:12px;color:#d9d4e4;margin:8px 0 0}
.story-transcript{max-width:650px;margin:24px auto 0;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:rgba(255,255,255,.07)}
.story-transcript summary{cursor:pointer;padding:14px 17px;font-weight:900}
.story-transcript__body{padding:0 18px 18px;font-size:15px;line-height:1.9;color:#f0edf5;white-space:pre-line}
.book-back{display:inline-block;margin-top:16px;color:#f6dae5;font-weight:800;font-size:14px}
@media(max-width:620px){
  .sky-effects{inset:64px 0 0}.book-hero{padding-top:28px}
  .book-main{padding-left:8px;padding-right:8px}.flipbook-stage{padding:18px 42px 20px;border-radius:28px}
  .turn-arrow{width:34px;height:34px}.turn-arrow.prev{left:5px}.turn-arrow.next{right:5px}
  .opening-page{padding:22px 18px 32px}.opening-page img{width:155px;height:155px}
  .opening-place{font-size:13px}.opening-personality{font-size:16px}.opening-cue{font-size:20px}
  .story-text{font-size:15px;min-height:130px;padding:18px}
  .ending-page{padding:18px 14px 14px}.ending-character{width:105px;height:105px}
  .ending-page h2{font-size:21px}.ending-next a{min-height:72px}.ending-next img{width:37px;height:37px}
}

.story-page{background:#fffdf9}
.placeholder-copy{position:absolute;left:16px;right:16px;bottom:14px;text-align:center;color:#fff}
.placeholder-copy b{display:inline-block;font-size:12px;letter-spacing:.08em;background:rgba(20,22,50,.68);border-radius:999px;padding:6px 10px;margin-bottom:8px}
.placeholder-copy small{display:block;font-size:13px;line-height:1.5;text-shadow:0 1px 8px rgba(0,0,0,.35)}


/* BOOK FINAL FIXES V2
   - 見開き中央の影を薄く
   - 仮イラスト左右の白線/余白を消す
   - 仮イラスト枠を full bleed 化
*/

.page-face{
  box-shadow:0 6px 14px rgba(0,0,0,.10) !important;
}
.page-back{
  background:
    linear-gradient(90deg, rgba(124,113,124,.06), rgba(255,253,249,0) 4.5%),
    linear-gradient(180deg,#fffdf9,#fffcf8) !important;
}
.page-back:after{
  border:1px solid rgba(118,100,112,.025) !important;
}

/* ページの中央の黒さを抑える */
.book-sheet.turning-forward .page-back,
.book-sheet.turning-back .page-back{
  box-shadow:0 4px 10px rgba(0,0,0,.06) !important;
}
.book-sheet.turning-forward .page-front,
.book-sheet.turning-back .page-front{
  box-shadow:0 5px 12px rgba(0,0,0,.08) !important;
}

.story-page{
  overflow:hidden !important;
  grid-template-rows:minmax(0,1fr) auto !important;
  background:#fffdf9 !important;
}

.illustration-placeholder{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-width:100% !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  background:
    linear-gradient(rgba(28,30,58,.08),rgba(28,30,58,.14)),
    url("../img/covers/book_cover_base.png") center/cover no-repeat !important;
  background-size:cover !important;
  background-position:center center !important;
}
.illustration-placeholder::before{
  content:"" !important;
  position:absolute !important;
  inset:-1px !important;
  background:
    linear-gradient(rgba(28,30,58,.08),rgba(28,30,58,.14)),
    url("../img/covers/book_cover_base.png") center/cover no-repeat !important;
  background-size:cover !important;
  background-position:center center !important;
  z-index:0 !important;
}
.illustration-placeholder > *{
  position:relative !important;
  z-index:1 !important;
}
.illustration-placeholder img{
  width:42% !important;
  height:42% !important;
  max-width:235px !important;
  max-height:235px !important;
  object-fit:contain !important;
  filter:drop-shadow(0 8px 11px rgba(0,0,0,.16)) !important;
}
.placeholder-copy{
  left:12px !important;
  right:12px !important;
  bottom:12px !important;
}
.placeholder-copy b{
  background:rgba(20,22,50,.60) !important;
}
.placeholder-copy small{
  text-shadow:0 1px 8px rgba(0,0,0,.26) !important;
}

/* 最終ページの読みやすさ */
.ending-next a{
  min-height:116px !important;
}
.ending-next img{
  width:66px !important;
  height:66px !important;
  object-fit:contain !important;
}
.ending-next b{
  font-size:13px !important;
  line-height:1.4 !important;
}

@media(max-width:620px){
  .page-face{box-shadow:0 4px 10px rgba(0,0,0,.09) !important}
  .illustration-placeholder img{width:40% !important;height:40% !important;max-width:170px !important;max-height:170px !important}
  .ending-next a{min-height:104px !important;padding:8px 4px !important}
  .ending-next img{width:56px !important;height:56px !important}
  .ending-next b{font-size:12px !important}
}
/* END BOOK FINAL FIXES V2 */



/* ===== story.html reference refinements ===== */
.book-page{font-family:var(--site-font-body),"Zen Kaku Gothic New","Yu Gothic",sans-serif;letter-spacing:.01em}
.book-hero .eyebrow,.story-transcript summary,.page-number{font-family:var(--site-font-en)!important}
.book-hero h1,.opening-cue,.ending-page h2,.next-title{font-family:var(--site-font-round)!important;letter-spacing:.02em}
.book-hero p,.book-back,.flip-hint,.opening-place,.story-transcript__body,.ending-page p,.ending-next b,.ending-all,.flip-controls button,.turn-arrow{font-family:var(--site-font-body)!important}
.opening-personality,.story-text{font-family:var(--site-font-mincho)!important}
.book-hero{padding:44px 18px 22px}
.book-hero h1{font-size:clamp(34px,5.3vw,52px)!important;margin:8px 0 10px!important}
.book-hero p{font-size:16px!important;line-height:1.9!important;max-width:760px!important}
.book-back{display:inline-flex;align-items:center;justify-content:center;margin-top:14px;padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;text-decoration:none}
.book-main{max-width:930px!important}
.flipbook-stage{background:rgba(12,10,41,.42)!important;box-shadow:0 18px 42px rgba(0,0,0,.21)!important;border-radius:42px!important}
.flipbook{perspective:2100px!important}
.page-face{box-shadow:0 6px 14px rgba(0,0,0,.10)!important}
.page-back{background:linear-gradient(90deg,rgba(140,120,134,.04),rgba(255,253,249,0) 5%),linear-gradient(180deg,#fffefb,#fffaf7)!important}
.page-back:before{content:"";position:absolute;left:0;top:0;bottom:0;width:18px;background:linear-gradient(90deg,rgba(49,36,45,.06),rgba(49,36,45,0));pointer-events:none}
.page-back:after{inset:18px!important;border-color:rgba(110,87,98,.04)!important}
.illustration-placeholder{margin:0!important;width:100%!important;min-height:0!important;background:linear-gradient(rgba(24,28,61,.04),rgba(24,28,61,.10)),url("../img/covers/book_cover_base.png") center/cover no-repeat!important}
.illustration-placeholder img{width:48%!important;height:48%!important;max-width:290px!important;max-height:290px!important}
.placeholder-copy{left:18px!important;right:18px!important;bottom:18px!important}
.placeholder-copy b{display:inline-block;background:rgba(12,35,56,.78);padding:8px 15px;border-radius:999px;color:#fff;font-size:14px;font-weight:700;margin-bottom:10px;box-shadow:0 6px 12px rgba(0,0,0,.16)}
.placeholder-copy small{display:block;font-size:16px;line-height:1.7;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.3)}
.story-text{padding:34px 42px 46px!important;font-size:24px!important;line-height:2.02!important;color:#5e4b3e!important}
.story-text.big{font-size:31px!important;line-height:1.8!important}
.page-number{font-size:13px!important;letter-spacing:.08em!important;color:#b1a2aa!important}
.turn-arrow{width:44px!important;height:44px!important;border-radius:999px!important;border:1px solid rgba(255,255,255,.25)!important;background:rgba(255,255,255,.08)!important;box-shadow:none!important}
.flip-controls button{min-width:106px!important;padding:12px 18px!important;border-radius:999px!important;border:1px solid rgba(255,255,255,.24)!important;background:rgba(17,13,54,.62)!important;color:#fff!important}
.flip-controls button:disabled{opacity:.35!important}
.flip-hint{font-size:14px!important;color:#eae4f6!important}
.story-transcript{max-width:650px!important;margin:20px auto 0!important;border-radius:18px!important;background:rgba(255,255,255,.09)!important;border:1px solid rgba(255,255,255,.15)!important;overflow:hidden}
.story-transcript summary{cursor:pointer;padding:14px 16px;font-size:14px;color:#fff;letter-spacing:.08em}
.story-transcript__body{padding:0 16px 18px;color:#f6f2fb;font-size:15px;line-height:2;white-space:pre-wrap}
.ending-page{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:38px 24px 34px;color:#4d4048;background:linear-gradient(180deg,#fffafc,#fffdf9 72%) }
.ending-kicker{font-family:var(--site-font-en)!important;font-size:13px;letter-spacing:.22em;color:#ef7fa2;text-transform:uppercase;margin-bottom:10px}
.ending-page h2{font-size:36px;line-height:1.3;margin:0 0 10px;color:#4f4348}
.ending-page p{font-size:18px;line-height:1.9;color:#7b6d74;margin:0 0 18px}
.ending-character{width:178px;height:178px;object-fit:contain;margin:8px 0 10px;filter:drop-shadow(0 12px 16px rgba(92,74,80,.10))}
.next-title{font-size:24px;color:#53474d;margin:4px 0 12px}
.ending-next{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:min(100%,540px)}
.ending-next a{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 10px;border-radius:16px;background:#fff;border:1px solid #eadfe5;box-shadow:0 8px 18px rgba(78,62,68,.05)}
.ending-next a img{width:72px;height:72px;object-fit:contain}
.ending-next a b{font-size:14px;line-height:1.4;color:#5a4b52;text-align:center}
.ending-all{display:inline-flex;margin-top:16px;padding:11px 18px;border-radius:999px;background:#42386d;color:#fff;font-weight:700;text-decoration:none}
@media (max-width:720px){
  .book-hero h1{font-size:clamp(30px,10vw,40px)!important}
  .book-hero p{font-size:14px!important}
  .flipbook-stage{padding:18px 48px 20px!important}
  .story-text{padding:24px 24px 34px!important;font-size:18px!important;line-height:1.95!important}
  .story-text.big{font-size:24px!important}
  .placeholder-copy small{font-size:13px!important}
  .ending-page h2{font-size:28px!important}
  .ending-page p{font-size:15px!important}
  .ending-next{gap:8px!important}
  .ending-next a{padding:10px 8px!important}
  .ending-next a img{width:56px!important;height:56px!important}
  .ending-next a b{font-size:11px!important}
}


/* COVER PAGE TITLE OVERRIDE */
.book-hero h1{font-size:clamp(38px,6vw,56px)!important;line-height:1.22!important;text-align:center!important}
.book-hero h1 br{display:block}
.cover-page{position:absolute;inset:0;overflow:hidden}
.cover-page img{width:100%;height:100%;object-fit:cover;display:block}
.cover-title-overlay{
  position:absolute;
  left:0; right:0; top:0;
  height:152px;
  padding:22px 26px 0;
  background:linear-gradient(180deg, rgba(16,101,190,.96) 0%, rgba(19,112,202,.88) 68%, rgba(19,112,202,0) 100%);
  text-align:center;
  z-index:3;
}
.cover-series{
  font-family:var(--site-font-en), Georgia, serif;
  font-size:11px;
  line-height:1.2;
  letter-spacing:.18em;
  font-weight:700;
  color:rgba(255,227,238,.92);
  margin-bottom:10px;
}
.cover-title{
  margin:0;
  font-family:var(--site-font-round), "Hiragino Maru Gothic ProN", sans-serif;
  font-size:28px;
  line-height:1.36;
  font-weight:700;
  letter-spacing:.03em;
  color:#fff;
  text-shadow:0 2px 10px rgba(8,25,61,.40), 0 1px 2px rgba(8,25,61,.30);
}
.cover-title br{display:block}
@media (max-width:720px){
  .cover-title-overlay{height:136px;padding:18px 20px 0}
  .cover-series{font-size:10px;margin-bottom:8px}
  .cover-title{font-size:24px;line-height:1.34}
}
/* END COVER PAGE TITLE OVERRIDE */


/* STORY IMAGE CLEAN FIX */
.illustration-placeholder{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  background:url("../img/covers/story_forest_bg.png") center center / cover no-repeat!important;
}
.illustration-placeholder::before,
.illustration-placeholder::after{
  display:none!important;
  content:none!important;
}
.illustration-placeholder img{
  position:relative!important;
  z-index:1!important;
  width:auto!important;
  height:auto!important;
  max-width:58%!important;
  max-height:58%!important;
  object-fit:contain!important;
  image-rendering:auto!important;
  transform:none!important;
  filter:drop-shadow(0 9px 13px rgba(10,29,56,.16))!important;
}
.placeholder-copy{display:none!important}
.story-page{overflow:hidden!important}
@media(max-width:720px){
  .illustration-placeholder img{max-width:55%!important;max-height:55%!important}
}
/* END STORY IMAGE CLEAN FIX */


/* DYNAMIC HIGH-RES COVER */
.cover-page-generated{
  position:absolute;
  inset:0;
  overflow:hidden;
  border-radius:15px;
  background:#106bc2;
}
.cover-page-generated .cover-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
  z-index:0;
}
.cover-page-generated:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(4,45,108,.12) 0%,rgba(4,45,108,0) 34%,rgba(4,45,108,0) 78%,rgba(12,44,56,.05) 100%);
  pointer-events:none;
  z-index:1;
}
.cover-page-generated .cover-title-overlay{
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:auto;
  min-height:150px;
  padding:24px 26px 18px;
  background:linear-gradient(180deg,rgba(13,83,174,.76),rgba(13,83,174,.28) 64%,rgba(13,83,174,0));
  text-align:center;
  z-index:4;
}
.cover-page-generated .cover-series{
  font-family:var(--site-font-en),Georgia,serif;
  font-size:12px;
  line-height:1.2;
  letter-spacing:.20em;
  font-weight:700;
  color:rgba(255,232,240,.96);
  margin-bottom:10px;
  text-shadow:0 1px 5px rgba(6,34,87,.30);
}
.cover-page-generated .cover-title{
  margin:0;
  font-family:var(--site-font-round),"Hiragino Maru Gothic ProN",sans-serif;
  font-size:34px;
  line-height:1.28;
  font-weight:700;
  letter-spacing:.035em;
  color:#fff;
  text-shadow:0 2px 10px rgba(6,27,69,.42),0 1px 2px rgba(6,27,69,.32);
}
.cover-page-generated .cover-title br{display:block}
.cover-page-generated .cover-character{
  position:absolute;
  left:50%;
  top:54%;
  transform:translate(-50%,-50%);
  width:52%;
  height:52%;
  max-width:none;
  max-height:none;
  object-fit:contain;
  z-index:3;
  filter:drop-shadow(0 12px 18px rgba(8,37,69,.14));
}
.cover-page-generated .cover-enter{
  position:absolute;
  left:50%;
  bottom:43px;
  transform:translateX(-50%);
  white-space:nowrap;
  padding:9px 16px;
  border-radius:999px;
  background:rgba(17,55,62,.82);
  color:#fff;
  font-family:var(--site-font-body),sans-serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:.03em;
  z-index:4;
  box-shadow:0 5px 12px rgba(0,0,0,.12);
}
/* hide the generic page number on cover: its own book design is cleaner */
.book-sheet.cover .page-number{right:16px;bottom:13px;color:rgba(255,255,255,.84);z-index:5}
@media(max-width:720px){
  .cover-page-generated .cover-title-overlay{min-height:132px;padding:19px 18px 14px}
  .cover-page-generated .cover-series{font-size:10px;margin-bottom:8px}
  .cover-page-generated .cover-title{font-size:27px;line-height:1.28}
  .cover-page-generated .cover-character{width:55%;height:55%;top:55%}
  .cover-page-generated .cover-enter{bottom:35px;font-size:11px;padding:8px 13px}
}
/* END DYNAMIC HIGH-RES COVER */


/* CURRENT PAGE STYLE V11 */
/* Cover title: larger, still 2 lines */
.cover-page-generated .cover-title{
  font-size:42px !important;
  line-height:1.23 !important;
  letter-spacing:.025em !important;
}
.cover-page-generated .cover-title-overlay{
  min-height:178px !important;
  padding:26px 28px 22px !important;
}
.cover-page-generated .cover-series{
  font-size:13px !important;
  margin-bottom:11px !important;
}

/* Current-site style: compact cute '文章でまとめて読む' */
.story-transcript{
  width:auto !important;
  max-width:680px !important;
  margin:24px auto 0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  overflow:visible !important;
  text-align:center !important;
}
.story-transcript summary{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  width:auto !important;
  min-height:42px !important;
  padding:10px 18px !important;
  border:1px solid rgba(255,255,255,.13) !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.11) !important;
  color:#fff !important;
  font-family:var(--site-font-body) !important;
  font-size:14px !important;
  font-weight:700 !important;
  letter-spacing:.02em !important;
  cursor:pointer !important;
  box-shadow:0 7px 18px rgba(13,10,44,.12) !important;
  list-style:none !important;
  transition:.18s ease !important;
}
.story-transcript summary::-webkit-details-marker{display:none !important}
.story-transcript summary:hover{
  transform:translateY(-1px) !important;
  background:rgba(255,255,255,.16) !important;
}
.story-transcript[open] summary{
  margin-bottom:14px !important;
  background:rgba(255,255,255,.16) !important;
}
.story-transcript__body{
  max-width:650px !important;
  margin:0 auto !important;
  padding:26px 30px 30px !important;
  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:24px !important;
  background:#fffaf4 !important;
  color:#5e4b3e !important;
  font-family:var(--site-font-mincho) !important;
  font-size:17px !important;
  line-height:2.05 !important;
  text-align:left !important;
  white-space:pre-wrap !important;
  box-shadow:0 12px 30px rgba(9,7,35,.13) !important;
}

/* Current-site reading-after area */
.current-stories-nav{
  position:relative;
  z-index:6;
  background:#fbf6ee;
  color:#5e4b3e;
  padding:64px 20px 54px;
  border-top:1px solid rgba(255,255,255,.05);
}
.current-stories-nav__inner{
  max-width:900px;
  margin:0 auto;
  text-align:center;
}
.current-stories-kicker{
  font-family:var(--site-font-en);
  font-size:11px;
  letter-spacing:.28em;
  color:#d58b56;
  margin-bottom:10px;
}
.current-stories-nav h2{
  margin:0;
  font-family:var(--site-font-mincho);
  font-size:clamp(28px,4vw,38px);
  line-height:1.55;
  font-weight:500;
  color:#5a4437;
}
.current-stories-lead{
  margin:10px auto 26px;
  font-size:13px;
  line-height:1.8;
  color:#8b776a;
}
.current-story-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  text-align:left;
}
.current-story-card{
  position:relative;
  min-height:145px;
  padding:14px 12px 12px;
  border:1px solid #efcf99;
  border-radius:14px;
  background:#fffdf9;
  color:#6a574b;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  box-shadow:0 5px 12px rgba(109,83,62,.035);
}
.current-story-card.is-current{
  background:#fff9e9;
  border-color:#e5a839;
}
.current-story-no{
  font-size:10px;
  color:#d5922e;
  font-weight:700;
}
.current-story-card img{
  width:48px;
  height:48px;
  object-fit:contain;
  margin:2px auto 5px;
  align-self:center;
}
.current-story-card b{
  font-family:var(--site-font-body);
  font-size:12px;
  line-height:1.55;
  font-weight:500;
  min-height:38px;
}
.current-story-card small{
  margin-top:auto;
  font-size:9px;
  color:#d49836;
}
.current-other-characters{
  margin-top:48px;
  padding-top:36px;
  border-top:1px solid #e7ddd1;
}
.current-other-characters h3{
  margin:0 0 20px;
  font-family:var(--site-font-mincho);
  font-size:25px;
  font-weight:500;
  color:#5b493e;
}
.current-other-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.current-other-card{
  display:grid;
  grid-template-columns:92px 1fr;
  align-items:center;
  gap:14px;
  padding:16px 20px;
  border-radius:18px;
  text-align:left;
  background:#fff;
  text-decoration:none;
}
.current-other-card.kuri{border:2px solid #ef8db0;background:#fff2f6}
.current-other-card.noma{border:2px solid #5cb2da;background:#edf9ff}
.current-other-card img{
  width:82px;
  height:82px;
  object-fit:contain;
}
.current-other-card small{
  display:block;
  font-size:10px;
  letter-spacing:.08em;
  color:#d27896;
  margin-bottom:4px;
}
.current-other-card.noma small{color:#5aaed0}
.current-other-card b{
  display:block;
  font-family:var(--site-font-body);
  font-size:15px;
  font-weight:500;
  color:#5d4b43;
}
.current-other-card span{
  display:inline-block;
  margin-top:9px;
  font-size:10px;
  color:#e1789d;
}
.current-other-card.noma span{color:#5aaed0}
.current-story-list-back{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:20px;
  padding:10px 20px;
  border-radius:999px;
  background:#30295f;
  color:#fff;
  font-size:12px;
  font-weight:700;
  text-decoration:none;
}

@media(max-width:720px){
  .cover-page-generated .cover-title{font-size:34px !important;line-height:1.22 !important}
  .cover-page-generated .cover-title-overlay{min-height:154px !important;padding:21px 20px 18px !important}
  .story-transcript summary{font-size:13px !important;padding:9px 15px !important}
  .story-transcript__body{font-size:15px !important;padding:22px 20px 25px !important;line-height:1.95 !important}
  .current-stories-nav{padding:48px 14px 42px}
  .current-story-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .current-story-card{min-height:135px}
  .current-other-grid{grid-template-columns:1fr}
  .current-other-card{grid-template-columns:78px 1fr;padding:13px 16px}
  .current-other-card img{width:68px;height:68px}
}
/* END CURRENT PAGE STYLE V11 */


/* BOOK CONSISTENCY FIX V12 */
/* 1. Story illustration and paper geometry are identical on every story page. */
.story-page{
  display:grid !important;
  grid-template-rows:58% 42% !important;
  overflow:hidden !important;
  background:#fffdf9 !important;
}
.illustration-placeholder{
  position:relative !important;
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  display:grid !important;
  place-items:center !important;
  overflow:hidden !important;
  background:url("../img/covers/story_forest_bg.png") center center / cover no-repeat !important;
}
.story-illustration-frame{
  width:min(252px,52%) !important;
  aspect-ratio:1 / 1 !important;
  display:grid !important;
  place-items:center !important;
  flex:0 0 auto !important;
}
.story-illustration-frame img{
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  transform:none !important;
  filter:drop-shadow(0 9px 13px rgba(10,29,56,.14)) !important;
  image-rendering:auto !important;
}
.story-text{
  min-height:0 !important;
  height:100% !important;
  padding:26px 36px 30px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  font-size:clamp(17px,2.35vw,23px) !important;
  line-height:1.92 !important;
}
.story-text.big{
  font-size:clamp(22px,3vw,30px) !important;
  line-height:1.72 !important;
}

/* 2. Cover: remove white slivers and the detached navy block. */
.flipbook-stage{
  background:transparent !important;
  box-shadow:none !important;
}
.book-sheet.cover .page-face.page-front{
  background:#106bc2 !important;
  box-shadow:0 18px 30px rgba(7,5,32,.25) !important;
  border:0 !important;
}
.book-sheet.cover .page-face.page-front::before,
.book-sheet.cover .page-face.page-front::after{
  display:none !important;
  content:none !important;
}
.cover-page-generated{
  inset:-1px !important;
  border:0 !important;
  border-radius:15px !important;
  background:#106bc2 !important;
}
.cover-page-generated .cover-bg{
  inset:-2px !important;
  width:calc(100% + 4px) !important;
  height:calc(100% + 4px) !important;
}
.flipbook{
  filter:drop-shadow(0 16px 20px rgba(5,4,29,.18));
}

/* 3. End page: character choice is the focus. */
.ending-page{
  padding:34px 26px 30px !important;
  justify-content:center !important;
  background:linear-gradient(180deg,#fffafc 0%,#fffdf9 72%,#fffaf8 100%) !important;
}
.ending-kicker{
  margin-bottom:8px !important;
}
.ending-page h2{
  margin:0 0 7px !important;
  font-size:clamp(28px,4.2vw,38px) !important;
  line-height:1.35 !important;
  color:#4d4048 !important;
}
.ending-page>p{
  margin:0 0 22px !important;
  font-size:16px !important;
  line-height:1.7 !important;
  color:#7a6c73 !important;
}
.ending-next{
  width:min(100%,560px) !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:13px !important;
  margin:0 0 18px !important;
}
.ending-next a{
  min-height:160px !important;
  padding:12px 8px 13px !important;
  gap:7px !important;
  border-radius:18px !important;
  box-shadow:0 8px 18px rgba(76,59,67,.055) !important;
}
.ending-next a img{
  width:112px !important;
  height:112px !important;
  max-width:82% !important;
  object-fit:contain !important;
}
.ending-next a b{
  margin:0 !important;
  font-size:15px !important;
  line-height:1.3 !important;
  color:#54484e !important;
  font-family:var(--site-font-round) !important;
}
.ending-actions{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  gap:10px !important;
  flex-wrap:wrap !important;
}
.ending-cover-back,
.ending-all{
  min-height:42px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:10px 17px !important;
  border-radius:999px !important;
  font-family:var(--site-font-body) !important;
  font-size:12px !important;
  font-weight:700 !important;
  cursor:pointer !important;
  text-decoration:none !important;
}
.ending-cover-back{
  border:1px solid #d9cbd2 !important;
  background:#fff !important;
  color:#66565e !important;
}
.ending-all{
  margin:0 !important;
  border:1px solid #3f3669 !important;
  background:#3f3669 !important;
  color:#fff !important;
}

/* 4. Mobile: retain the same visual proportions, not a different layout. */
@media(max-width:720px){
  .flipbook-stage{
    padding:14px 38px 18px !important;
  }
  .story-page{
    grid-template-rows:58% 42% !important;
  }
  .story-illustration-frame{
    width:min(190px,54%) !important;
  }
  .story-text{
    padding:18px 20px 22px !important;
    font-size:clamp(14px,4.4vw,18px) !important;
    line-height:1.82 !important;
  }
  .story-text.big{
    font-size:clamp(19px,5.8vw,24px) !important;
  }
  .ending-page{
    padding:22px 13px 20px !important;
  }
  .ending-page h2{
    font-size:clamp(23px,7vw,29px) !important;
  }
  .ending-page>p{
    font-size:13px !important;
    margin-bottom:14px !important;
  }
  .ending-next{
    gap:7px !important;
    margin-bottom:14px !important;
  }
  .ending-next a{
    min-height:120px !important;
    padding:8px 4px 9px !important;
    border-radius:14px !important;
  }
  .ending-next a img{
    width:78px !important;
    height:78px !important;
    max-width:88% !important;
  }
  .ending-next a b{
    font-size:12px !important;
  }
  .ending-cover-back,
  .ending-all{
    min-height:38px !important;
    padding:9px 13px !important;
    font-size:11px !important;
  }
}
/* END BOOK CONSISTENCY FIX V12 */



/* === STORY LINE-BREAK SYSTEM === */
.story-text{
  line-break:strict!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  text-wrap:pretty;
}
.story-text .story-line{
  display:block;
  width:100%;
  white-space:nowrap;
  text-align:center;
}
.story-text .story-gap{height:.9em}
@media(max-width:620px){
  .story-text .story-line{white-space:nowrap}
}
/* === END STORY LINE-BREAK SYSTEM === */


/* === FINAL PATCH 2026-08-30 === */
/* make the inside-book character much larger and consistent */
.story-page{
  grid-template-rows:60% 40%!important;
}
.illustration-placeholder{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
}
.illustration-placeholder img{
  width:min(82%,430px)!important;
  height:auto!important;
  max-width:82%!important;
  max-height:86%!important;
  object-fit:contain!important;
  filter:drop-shadow(0 12px 18px rgba(7,31,66,.16))!important;
}
.story-text{
  padding:24px 34px 28px!important;
  font-size:clamp(18px,2.45vw,24px)!important;
  line-height:1.95!important;
  word-break:keep-all!important;
  line-break:strict!important;
  overflow-wrap:anywhere!important;
}
.story-text.big{font-size:clamp(24px,3vw,31px)!important;line-height:1.75!important}
.story-line{display:block!important}
.story-gap{display:block!important;height:1.05em!important}

/* enlarge the cover character and clean the cover edges */
.flipbook-stage{background:transparent!important;box-shadow:none!important}
.flipbook{filter:drop-shadow(0 18px 22px rgba(6,5,31,.20))!important}
.book-sheet.cover .page-face.page-front,
.book-sheet.cover .page-face.page-back{border:0!important;box-shadow:0 18px 34px rgba(6,5,31,.24)!important}
.book-sheet.cover .page-face.page-front::before,
.book-sheet.cover .page-face.page-front::after{display:none!important;content:none!important}
.cover-page-generated{
  inset:-1px!important;
  border-radius:16px!important;
  background:#106bc2!important;
}
.cover-page-generated .cover-bg{
  inset:-2px!important;
  width:calc(100% + 4px)!important;
  height:calc(100% + 4px)!important;
}
.cover-page-generated .cover-title-overlay{
  min-height:170px!important;
  padding:24px 24px 18px!important;
}
.cover-page-generated .cover-title{
  font-size:40px!important;
  line-height:1.2!important;
  letter-spacing:.02em!important;
  text-wrap:balance;
}
.cover-page-generated .cover-character{
  width:72%!important;
  height:72%!important;
  top:60%!important;
  max-width:none!important;
  max-height:none!important;
}
.cover-page-generated .cover-enter{bottom:36px!important}

/* ending page: show the character choices more clearly */
.ending-page{padding:30px 24px 24px!important}
.ending-page h2{font-size:32px!important;line-height:1.35!important;margin:4px 0 8px!important}
.ending-page>p{font-size:15px!important;line-height:1.75!important;margin:0 0 20px!important}
.ending-next{gap:14px!important;margin-bottom:16px!important}
.ending-next a{min-height:154px!important;border-radius:18px!important;padding:12px 8px 14px!important}
.ending-next img{width:108px!important;height:108px!important;max-width:82%!important}
.ending-next b{font-size:15px!important;line-height:1.45!important}

/* shooting star on book page also gets a cleaner path */
.shooting-star{
  width:124px!important;
  height:3px!important;
  transform:rotate(148deg)!important;
  animation:bookShootNatural 1.45s cubic-bezier(.18,.62,.24,.99) forwards!important;
}
@keyframes bookShootNatural{
  0%{opacity:0;transform:translate3d(0,0,0) rotate(148deg)}
  10%{opacity:1}
  80%{opacity:.95}
  100%{opacity:0;transform:translate3d(-320px,168px,0) rotate(148deg)}
}

@media(max-width:720px){
  .illustration-placeholder img{width:min(86%,320px)!important;max-width:86%!important;max-height:82%!important}
  .story-text{padding:18px 20px 22px!important;font-size:16px!important;line-height:1.88!important}
  .cover-page-generated .cover-title{font-size:32px!important}
  .cover-page-generated .cover-title-overlay{min-height:144px!important;padding:20px 18px 14px!important}
  .cover-page-generated .cover-character{width:76%!important;height:76%!important;top:61%!important}
  .ending-page h2{font-size:25px!important}
  .ending-next a{min-height:128px!important}
  .ending-next img{width:84px!important;height:84px!important}
}
/* === END FINAL PATCH 2026-08-30 === */


/* ==== 2026-08-30 follow-up fixes ==== */
/* "りゅーちぃの物語は、まだまだつづく。" cards: book-like ratio and larger character icons */
.current-story-grid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:12px!important;
  align-items:stretch!important;
}
.current-story-card{
  aspect-ratio:210 / 257!important;
  min-height:auto!important;
  padding:14px 14px 12px!important;
  border-radius:18px!important;
  justify-content:flex-start!important;
}
.current-story-card img{
  width:96px!important;
  height:96px!important;
  margin:8px auto 10px!important;
}
.current-story-card b{
  font-size:14px!important;
  line-height:1.55!important;
  min-height:42px!important;
}
.current-story-card small{
  font-size:10px!important;
}
@media(max-width:960px){
  .current-story-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:720px){
  .current-story-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .current-story-card{padding:12px 10px 10px!important}
  .current-story-card img{width:82px!important;height:82px!important;margin:6px auto 8px!important}
  .current-story-card b{font-size:13px!important;min-height:36px!important}
}
@media(max-width:430px){
  .current-story-grid{grid-template-columns:1fr 1fr!important}
  .current-story-card{aspect-ratio:172 / 248!important}
  .current-story-card img{width:76px!important;height:76px!important}
}


/* ==== 2026-08-30 readability emergency fix ==== */
/* The book text must always be readable. Let story lines wrap normally and reserve more space for text. */
.story-page{
  grid-template-rows:54% 46%!important;
}
.illustration-placeholder img{
  width:min(72%,360px)!important;
  max-width:72%!important;
  max-height:78%!important;
}
.story-text{
  padding:20px 28px 24px!important;
  font-size:clamp(16px,2.05vw,21px)!important;
  line-height:1.88!important;
  overflow:hidden!important;
  align-items:center!important;
  justify-content:center!important;
}
.story-text.big{
  font-size:clamp(21px,2.65vw,28px)!important;
  line-height:1.72!important;
}
.story-text .story-line{
  display:block!important;
  width:100%!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:break-word!important;
  line-break:strict!important;
  text-align:center!important;
}
.story-text .story-gap{
  display:block!important;
  height:.72em!important;
}
@media(max-width:720px){
  .story-page{
    grid-template-rows:52% 48%!important;
  }
  .illustration-placeholder img{
    width:min(76%,280px)!important;
    max-width:76%!important;
    max-height:74%!important;
  }
  .story-text{
    padding:16px 16px 20px!important;
    font-size:15px!important;
    line-height:1.82!important;
  }
  .story-text.big{
    font-size:21px!important;
    line-height:1.66!important;
  }
}
/* ==== end 2026-08-30 readability emergency fix ==== */


/* ==== 2026-08-30 line layout fix ==== */
/* Keep each scripted line readable instead of scattering spans horizontally. */
.story-page{
  grid-template-rows:50% 50%!important;
}
.story-text{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.34em!important;
  padding:22px 28px 28px!important;
  text-align:center!important;
}
.story-text.big{
  gap:.24em!important;
}
.story-text .story-line{
  display:block!important;
  width:auto!important;
  max-width:100%!important;
  flex:none!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
  text-align:center!important;
  margin:0!important;
}
.story-text .story-gap{
  display:block!important;
  width:100%!important;
  height:.5em!important;
}
@media(max-width:720px){
  .story-page{
    grid-template-rows:48% 52%!important;
  }
  .story-text{
    gap:.26em!important;
    padding:18px 18px 22px!important;
    font-size:clamp(14px,4vw,18px)!important;
    line-height:1.78!important;
  }
  .story-text.big{
    font-size:clamp(18px,5vw,22px)!important;
    line-height:1.62!important;
  }
  .story-text .story-line{
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
}
/* ==== end 2026-08-30 line layout fix ==== */


/* ==== 2026-08-30 move cover-enter below the book ==== */
.cover-page-generated .cover-enter{display:none!important}
.cover-stage-caption{
  margin:14px auto 8px!important;
  text-align:center!important;
  color:#fff!important;
  font-family:var(--site-font-body),sans-serif!important;
  font-size:14px!important;
  font-weight:700!important;
  letter-spacing:.03em!important;
  line-height:1.45!important;
}
.cover-stage-caption[hidden]{display:none!important}
@media(max-width:720px){
  .cover-stage-caption{
    margin:12px auto 6px!important;
    font-size:13px!important;
  }
}
/* ==== end 2026-08-30 move cover-enter below the book ==== */


/* ORIGINAL REVIEW BOOKS */
.book-review-note{display:inline-flex;margin:10px auto 2px;padding:6px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.28);font-size:11px;color:#efeaf8;background:rgba(255,255,255,.07)}
.original-all-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.original-all-grid .current-story-card{aspect-ratio:auto!important;min-height:125px!important;justify-content:center!important;text-align:center!important}
.original-all-grid .current-story-card b{font-size:14px!important;min-height:0!important}
@media(max-width:720px){.original-all-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.original-all-grid .current-story-card{min-height:110px!important}}
/* END ORIGINAL REVIEW BOOKS */


/* ==== 2026-08-30 post-expand readability fix ==== */
/* Stop forcing single-line spans on desktop. Long Japanese lines must wrap naturally. */
.story-page{
  grid-template-rows:46% 54%!important;
}
.illustration-placeholder img{
  width:min(64%,320px)!important;
  max-width:64%!important;
  max-height:72%!important;
}
.story-text{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.42em!important;
  padding:20px 24px 24px!important;
  font-size:clamp(15px,1.8vw,20px)!important;
  line-height:1.82!important;
  text-align:center!important;
}
.story-text.big{
  font-size:clamp(20px,2.4vw,26px)!important;
  line-height:1.72!important;
}
.story-text .story-line{
  display:block!important;
  width:auto!important;
  max-width:92%!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
  line-break:strict!important;
  text-align:center!important;
}
.story-text .story-gap{
  display:block!important;
  width:100%!important;
  height:.55em!important;
}
@media (max-width:720px){
  .story-page{grid-template-rows:44% 56%!important;}
  .illustration-placeholder img{
    width:min(70%,250px)!important;
    max-width:70%!important;
    max-height:68%!important;
  }
  .story-text{
    padding:16px 16px 20px!important;
    font-size:15px!important;
    line-height:1.78!important;
    gap:.34em!important;
  }
  .story-text.big{
    font-size:20px!important;
    line-height:1.62!important;
  }
  .story-text .story-line{max-width:96%!important;}
}


/* ==== STORY EDITOR V1: final robust text layout ==== */
.story-page{grid-template-rows:48% 52%!important;min-width:0!important;overflow:hidden!important}
.story-page.long{grid-template-rows:43% 57%!important}
.story-page.very-long{grid-template-rows:38% 62%!important}
.story-text{
  min-width:0!important;width:100%!important;box-sizing:border-box!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
  padding:22px 30px 26px!important;gap:.38em!important;overflow:hidden!important;
  font-size:clamp(15px,1.7vw,20px)!important;line-height:1.8!important;text-align:center!important;
}
.story-page.long .story-text{font-size:clamp(14px,1.55vw,18px)!important;line-height:1.72!important;padding:18px 25px 22px!important}
.story-page.very-long .story-text{font-size:clamp(13px,1.38vw,16px)!important;line-height:1.62!important;padding:15px 22px 18px!important}
.story-text .story-line,.story-text .story-paragraph{
  display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;
  white-space:normal!important;word-break:keep-all!important;overflow-wrap:anywhere!important;line-break:strict!important;
  text-align:center!important;box-sizing:border-box!important;
}
.story-text .story-gap{height:.45em!important;width:100%!important;flex:none!important}
.story-page.long .illustration-placeholder img{max-height:66%!important;max-width:60%!important}
.story-page.very-long .illustration-placeholder img{max-height:58%!important;max-width:54%!important}
.book-load-error{margin:40px auto;padding:30px;max-width:680px;border-radius:20px;background:#fff;color:#6a5159;text-align:center}
@media(max-width:720px){
 .story-page{grid-template-rows:44% 56%!important}.story-page.long{grid-template-rows:38% 62%!important}.story-page.very-long{grid-template-rows:34% 66%!important}
 .story-text{font-size:14px!important;line-height:1.7!important;padding:15px 14px 18px!important;gap:.28em!important}
 .story-page.long .story-text{font-size:13.5px!important;line-height:1.62!important;padding:13px 12px 16px!important}
 .story-page.very-long .story-text{font-size:12.5px!important;line-height:1.55!important;padding:11px 10px 14px!important}
 .story-text .story-line,.story-text .story-paragraph{word-break:normal!important;overflow-wrap:anywhere!important}
}
/* ==== END STORY EDITOR V1 ==== */


/* BOOK COVER GUARANTEE v2 — title and placeholder image may never disappear. */
.cover-page-generated .cover-title-overlay{z-index:8!important;pointer-events:none!important}
.cover-page-generated .cover-series{display:block!important;visibility:visible!important;opacity:1!important}
.cover-page-generated .cover-title{display:block!important;visibility:visible!important;opacity:1!important;color:#fff!important;z-index:9!important;max-width:100%!important;overflow:visible!important}
.cover-page-generated .cover-character{display:block!important;visibility:visible!important;opacity:1!important;z-index:4!important}
.cover-page-generated .cover-bg{display:block!important;visibility:visible!important;opacity:1!important;z-index:0!important}

/* ==== UNIFIED READER COVER — matches index cover system (2026-08-30) ==== */
.cover-page-generated{
  background:#0e65bb!important;
  border-radius:16px!important;
  box-shadow:0 0 0 3px rgba(255,255,255,.98) inset!important;
}
.cover-page-generated::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:6!important;
  left:3px!important;
  top:3px!important;
  bottom:3px!important;
  width:14px!important;
  background:linear-gradient(90deg,rgba(5,28,68,.28),rgba(255,255,255,.14) 45%,rgba(255,255,255,0))!important;
  pointer-events:none!important;
}
.cover-page-generated::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:2!important;
  inset:0!important;
  background:linear-gradient(180deg,rgba(8,37,93,.62) 0%,rgba(8,45,102,.30) 25%,rgba(5,56,96,.02) 50%,rgba(4,54,65,.06) 73%,rgba(8,44,55,.16) 100%)!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.24) inset!important;
  pointer-events:none!important;
}
.cover-page-generated .cover-title-overlay{
  z-index:8!important;
  min-height:170px!important;
  padding:24px 28px 18px!important;
  background:transparent!important;
}
.cover-page-generated .cover-series{
  color:rgba(255,255,255,.93)!important;
  font-size:12px!important;
  line-height:1!important;
  letter-spacing:.20em!important;
  margin-bottom:14px!important;
}
.cover-page-generated .cover-title{
  color:#fff!important;
  font-size:40px!important;
  line-height:1.2!important;
  letter-spacing:.02em!important;
  text-shadow:0 3px 8px rgba(0,31,79,.52),0 10px 24px rgba(0,24,64,.20)!important;
}
.cover-page-generated .cover-character{
  z-index:5!important;
  left:50%!important;
  top:64%!important;
  width:66%!important;
  height:54%!important;
  transform:translate(-50%,-50%)!important;
  object-fit:contain!important;
  filter:drop-shadow(0 12px 18px rgba(3,28,57,.20))!important;
}
.cover-character-trio{
  position:absolute!important;
  z-index:5!important;
  left:8%!important;
  right:6%!important;
  bottom:8%!important;
  height:46%!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
}
.cover-character-trio img{
  position:relative!important;
  width:39%!important;
  height:84%!important;
  object-fit:contain!important;
  filter:drop-shadow(0 10px 14px rgba(4,27,55,.18))!important;
}
.cover-character-trio img:nth-child(1){transform:translateX(12%) rotate(-3deg)!important}
.cover-character-trio img:nth-child(2){z-index:2!important;height:95%!important;transform:translateY(-5%)!important}
.cover-character-trio img:nth-child(3){transform:translateX(-12%) rotate(3deg)!important}
.cover-page-generated.cover-forest .cover-title-overlay{min-height:190px!important}
@media(max-width:720px){
  .cover-page-generated .cover-title-overlay{min-height:144px!important;padding:20px 18px 14px!important}
  .cover-page-generated .cover-series{font-size:10px!important;margin-bottom:10px!important}
  .cover-page-generated .cover-title{font-size:32px!important;line-height:1.22!important}
  .cover-page-generated .cover-character{width:68%!important;height:56%!important;top:64%!important}
}
/* ==== END UNIFIED READER COVER ==== */


/* 2026-09-01: ichinichii schedule headings */
.story-copy{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;}
.story-schedule-title{margin:0;color:var(--story);font-family:var(--site-font-sans,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif);font-size:clamp(18px,2.5vw,23px);font-weight:800;line-height:1.45;letter-spacing:.02em;text-align:center;}
.story-copy .story-paragraph{margin:0;max-width:100%;}
@media (max-width:560px){.story-copy{gap:9px}.story-schedule-title{font-size:17px;line-height:1.4}.story-copy .story-paragraph{font-size:inherit;line-height:inherit}}
