/* v1.0.3: 幻想案内所ページだけ、タイトルと余白を減らして作品を主役にする */
body.pfl-immersive-page {
  background:
    radial-gradient(circle at 50% 28%, rgba(255,248,238,.98), rgba(251,234,233,.82) 46%, rgba(239,226,246,.72) 100%) !important;
}
body.pfl-immersive-page .wp-block-post-title,
body.pfl-immersive-page .entry-title {
  display:none !important;
}
body.pfl-immersive-page .wp-block-post-content,
body.pfl-immersive-page .entry-content {
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}
body.pfl-immersive-page .wp-block-post-content > *,
body.pfl-immersive-page .entry-content > * {
  margin-block-start:0 !important;
  margin-block-end:0 !important;
}
body.pfl-immersive-page main {
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

body.pfl-world-open { overflow: hidden; }

.puwaponon-fantasy-library {
  --pfl-ink: #49365f;
  --pfl-ink-soft: #6c587d;
  color: var(--pfl-ink);
  font-family: "Yu Gothic", "Hiragino Sans", "Meiryo", sans-serif;
  /* WordPressの本文幅から左右へ広げつつ、画面中央に固定する */
  position: relative;
  width: 100vw;
  max-width: 100vw !important;
  margin-top: 0;
  margin-bottom: 0;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  transform: none;
  overflow-x: clip;
}
.puwaponon-fantasy-library *,
.puwaponon-fantasy-library *::before,
.puwaponon-fantasy-library *::after { box-sizing: border-box; }
.puwaponon-fantasy-library button,
.puwaponon-fantasy-library a { font: inherit; }
.pfl-portal { width:100%; min-height:0; display:flex; justify-content:center; align-items:flex-start; padding:clamp(4px,.8vw,10px); }
.pfl-sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.pfl-visual-portal { width:100%; max-width:100%; display:flex; justify-content:center; overflow:hidden; }
.pfl-art-frame { position:relative; flex:0 1 auto; width:min(1180px,calc(100vw - 16px),calc((100dvh - 70px)*1445/1088)); max-width:calc(100vw - 16px); margin:0 auto; aspect-ratio:1445/1088; border-radius:12px; overflow:hidden; background:#fff7f0; box-shadow:0 24px 60px rgba(92,69,102,.18),0 0 0 1px rgba(229,197,151,.38); }
.pfl-art-frame::before { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; box-shadow:inset 0 0 55px rgba(255,255,255,.5),inset 0 0 0 1px rgba(255,255,255,.44); }
.pfl-main-visual { position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:contain; background:#fff7f0; }
.pfl-book-hotspots,.pfl-top-link-hotspots,.pfl-social-link-hotspots { position:absolute; inset:0; }
.pfl-book-hotspots { z-index:3; }
.pfl-top-link-hotspots,.pfl-social-link-hotspots { z-index:4; pointer-events:none; }
.pfl-top-link { position:absolute; top:3.2%; height:5%; border-radius:999px; pointer-events:auto; background:transparent; border:0; cursor:pointer; }
.pfl-top-link:hover,.pfl-top-link:focus-visible { outline:none; box-shadow:0 0 18px rgba(255,231,170,.56),inset 0 0 0 1px rgba(255,238,188,.48); }
.pfl-top-link-profile{left:62.2%;width:11%}.pfl-top-link-line{left:74.2%;width:11.8%}.pfl-top-link-club{left:86.4%;width:12.6%}
.pfl-social-link,.pfl-contact-link { position:absolute; border-radius:50%; pointer-events:auto; background:transparent; border:0; cursor:pointer; }
.pfl-social-link:hover,.pfl-social-link:focus-visible,.pfl-contact-link:hover,.pfl-contact-link:focus-visible { outline:none; box-shadow:0 0 22px rgba(255,231,170,.72),inset 0 0 0 1px rgba(255,238,188,.5); }
.pfl-social-link { top:82.25%; width:4.8%; height:6.6%; }
.pfl-social-link-note{left:67.05%}.pfl-social-link-x{left:74.85%}.pfl-social-link-youtube{left:82.35%}
.pfl-contact-link { left:65.65%;top:92.45%;width:22.6%;height:5.35%;border-radius:999px; }
.pfl-book-hotspot { position:absolute; top:37.8%; width:9.8%; height:36.2%; border:0; border-radius:10px; padding:0; color:transparent; background:transparent; cursor:pointer; }
.pfl-book-hotspot::before { content:""; position:absolute; inset:-8px -6px; border:1px solid rgba(255,226,151,0); border-radius:18px; opacity:0; transition:opacity .26s ease,border-color .26s ease,box-shadow .26s ease; }
.pfl-book-hotspot:hover::before,.pfl-book-hotspot:focus-visible::before { border-color:rgba(255,227,158,.76); box-shadow:0 0 28px rgba(255,225,151,.64),inset 0 0 22px rgba(255,255,255,.36); opacity:1; }
.pfl-book-hotspot:focus-visible{outline:none}
.pfl-book-hotspot[data-key="note"]{left:14.2%}.pfl-book-hotspot[data-key="family"]{left:25.2%}.pfl-book-hotspot[data-key="story"]{left:36.1%}.pfl-book-hotspot[data-key="diagnosis"]{left:47.1%}.pfl-book-hotspot[data-key="goods"]{left:58.1%}.pfl-book-hotspot[data-key="works"]{left:69%}.pfl-book-hotspot[data-key="youtube"]{left:80%;width:9.3%}
.pfl-spark-origin { position:absolute; z-index:5; width:10px;height:10px;left:var(--spark-x,50%);top:var(--spark-y,52%);pointer-events:none; }
.pfl-spark-origin.is-sparking::before,.pfl-spark-origin.is-sparking::after { content:""; position:absolute; left:50%; top:50%; width:8px;height:8px;border-radius:50%;background:rgba(255,239,177,.95);box-shadow:-26px -12px 0 rgba(255,255,255,.88),-14px 22px 0 rgba(236,201,255,.78),18px -28px 0 rgba(255,226,155,.86),30px 18px 0 rgba(196,232,231,.82),2px -42px 0 rgba(255,255,255,.9);animation:pflShelfSpark .98s ease-out forwards; }
.pfl-spark-origin.is-sparking::after { width:5px;height:5px;box-shadow:-38px 2px 0 rgba(255,226,155,.82),-8px -30px 0 rgba(255,255,255,.86),28px -8px 0 rgba(236,201,255,.74),42px 28px 0 rgba(255,255,255,.86),0 34px 0 rgba(196,232,231,.76);animation-duration:1.2s; }
.pfl-world-view { position:fixed; inset:0; z-index:999999; display:grid; place-items:center; padding:clamp(8px,1.8vw,20px); background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.84),rgba(255,245,226,.5) 34%,transparent 58%),linear-gradient(135deg,#b9a8d1,#efd2dc 46%,#fff0d8); opacity:0; pointer-events:none; transition:opacity .76s ease; }
.pfl-world-view.is-active{opacity:1;pointer-events:auto}
.pfl-soft-flash{position:absolute;inset:0;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.98),rgba(255,245,210,.42) 34%,transparent 62%);opacity:0;pointer-events:none}
.pfl-world-view.is-active .pfl-soft-flash{animation:pflSoftFlash 1s ease-out forwards}
.pfl-close-world{position:fixed;top:clamp(14px,2.5vw,28px);right:clamp(14px,2.5vw,30px);z-index:5;width:46px;height:46px;border:1px solid rgba(218,181,113,.5);border-radius:50%;color:#715c82;background:rgba(255,255,255,.78);box-shadow:0 10px 26px rgba(78,54,86,.18),0 0 18px rgba(255,231,168,.45);cursor:pointer}
.pfl-world-book-image{position:relative;z-index:2;width:min(100%,1360px);aspect-ratio:3/2;opacity:0;transform:translateY(20px) scale(.97);filter:drop-shadow(0 28px 38px rgba(74,52,82,.22))}
.pfl-world-view.is-ready .pfl-world-book-image{animation:pflBookSceneIn .76s cubic-bezier(.2,.72,.2,1) forwards}
.pfl-world-background{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:contain}
.pfl-world-overlay{position:absolute;inset:0;z-index:2}
.pfl-world-title{position:absolute;left:21%;right:21%;top:8.6%;margin:0;color:var(--pfl-ink);font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(1.8rem,3.15vw,3.25rem);font-weight:700;line-height:1.2;text-align:center;text-shadow:0 2px 0 rgba(255,255,255,.66),0 0 12px rgba(255,245,210,.8)}
.pfl-world-card{position:absolute;top:25.1%;width:18.6%;height:47.7%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px,1.4vw,18px);padding:4.8% 1.55% 4%;border:0;border-radius:16px;color:var(--pfl-ink);text-align:center;text-decoration:none;background:transparent;cursor:pointer;opacity:0;transform:translateY(12px)}
.pfl-world-view.is-ready .pfl-world-card{animation:pflTextRise .68s ease forwards;animation-delay:var(--card-delay)}
.pfl-world-card:hover,.pfl-world-card:focus-visible{outline:none;box-shadow:inset 0 0 0 1px rgba(228,184,105,.34),0 0 26px rgba(255,235,169,.52)}
.pfl-card-1{left:12.3%}.pfl-card-2{left:31.3%}.pfl-card-3{left:50.4%}.pfl-card-4{left:69.5%}
.pfl-world-card h3{margin:0;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(1rem,1.65vw,1.65rem);font-weight:700;line-height:1.42;text-shadow:0 1px 0 rgba(255,255,255,.76),0 0 10px rgba(255,250,236,.9)}
.pfl-world-card p{margin:0;color:var(--pfl-ink-soft);font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(.78rem,1.05vw,1.08rem);font-weight:700;line-height:1.75;text-shadow:0 1px 0 rgba(255,255,255,.78)}
.pfl-world-card.has-mini-buttons{gap:clamp(12px,1.5vw,20px);justify-content:center}
.pfl-card-button-list{display:grid;gap:clamp(8px,1vw,14px);width:min(92%,210px)}
.pfl-mini-card-button{display:grid;place-items:center;min-height:clamp(34px,4.2vw,48px);padding:8px 12px;border:1px solid rgba(221,174,104,.46);border-radius:999px;color:var(--pfl-ink);font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(.78rem,1.05vw,1.05rem);font-weight:700;line-height:1.35;text-align:center;text-decoration:none;background:radial-gradient(circle at 50% 15%,rgba(255,248,218,.72),transparent 46%),rgba(255,244,231,.54);box-shadow:0 6px 14px rgba(112,78,103,.08);cursor:pointer}
.pfl-mini-card-button:hover,.pfl-mini-card-button:focus-visible{outline:none;box-shadow:0 0 18px rgba(255,228,159,.66),inset 0 0 0 1px rgba(255,255,255,.5)}
.pfl-world-card.is-pending{cursor:default}
.pfl-back-to-shelf{position:absolute;left:50%;bottom:8.4%;z-index:3;width:20%;height:7%;min-width:190px;border:1px solid rgba(255,237,190,.74);border-radius:999px;color:#fffaf7;background:radial-gradient(circle at 50% 18%,rgba(255,246,214,.52),transparent 46%),linear-gradient(135deg,rgba(174,148,199,.9),rgba(219,166,188,.86));font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(1rem,1.45vw,1.42rem);font-weight:700;text-shadow:0 2px 8px rgba(70,47,91,.42),0 0 12px rgba(255,232,166,.72);transform:translateX(-50%);cursor:pointer;box-shadow:0 10px 22px rgba(89,61,109,.18),0 0 20px rgba(255,230,166,.5),inset 0 0 0 2px rgba(255,255,255,.18)}
.pfl-back-to-shelf:hover,.pfl-back-to-shelf:focus-visible{outline:none;background:radial-gradient(circle at 50% 18%,rgba(255,250,226,.68),transparent 48%),linear-gradient(135deg,rgba(160,132,190,.94),rgba(213,150,181,.9));box-shadow:0 12px 26px rgba(89,61,109,.22),0 0 28px rgba(255,231,170,.72),inset 0 0 0 1px rgba(255,244,211,.5)}
@keyframes pflShelfSpark{0%{opacity:0;transform:translate(-50%,-50%) scale(.28)}24%{opacity:1}100%{opacity:0;transform:translate(-50%,-112%) scale(1.9)}}
@keyframes pflSoftFlash{0%{opacity:0;transform:scale(.65)}28%{opacity:.96}100%{opacity:0;transform:scale(1.35)}}
@keyframes pflBookSceneIn{to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes pflTextRise{to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){.pfl-portal{align-items:start;padding:10px}.pfl-art-frame{width:100%;border-radius:8px}.pfl-world-view{overflow:auto;place-items:start center}.pfl-world-book-image{width:1040px;max-width:none;margin-top:52px}}
@media(max-width:520px){.pfl-portal{min-height:auto;padding:8px}.pfl-visual-portal{width:100%;overflow:hidden}.pfl-art-frame{width:calc(100vw - 20px);max-width:calc(100vw - 20px);border-radius:8px}}
