:root{color-scheme:dark;--ebook-bg:#17191c;--toolbar:#232527d9}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
html{background:var(--ebook-bg)}
body.ebook-page{background:var(--ebook-bg);color:#f7f7f7;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;overscroll-behavior:none}
button,input{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #fff;outline-offset:3px}
.ebook{position:fixed;inset:0;width:100%;height:100dvh;display:flex;align-items:center;justify-content:center;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:none;background:var(--ebook-bg)}
.ebook-viewport{position:absolute;inset:0;z-index:1;overflow:auto;overscroll-behavior:contain;scrollbar-width:none;touch-action:none}
.ebook-viewport::-webkit-scrollbar{display:none}
.ebook-canvas{position:relative;min-width:100%;min-height:100%}
.ebook-spread{position:absolute;top:0;left:0;transform-origin:0 0;display:flex;align-items:center;justify-content:center;flex:0 0 auto;max-width:100%;max-height:100%;perspective:2000px;isolation:isolate;transform:translateZ(0) scale(var(--ebook-zoom,1))}
.ebook-page-image{display:block;flex:none;object-fit:contain;background:#fff;-webkit-user-drag:none;box-shadow:0 4px 30px #05050552}
.ebook-spread.is-double .ebook-page-image:first-child{box-shadow:-5px 0 24px #05050536}
.ebook-spread.is-double .ebook-page-image:nth-child(2){box-shadow:5px 0 24px #05050536}
.ebook-spread.is-double:after{content:"";pointer-events:none;position:absolute;z-index:1;left:50%;top:0;bottom:0;width:4px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(10,15,20,.16),transparent);opacity:.8}
/* PCの単独表紙は仮想見開きの右側、裏表紙は左側に配置する。 */
.ebook-spread.is-front-cover{justify-content:flex-end}
.ebook-spread.is-back-cover{justify-content:flex-start}
/* 表紙・裏表紙以外の幅変更では暗転させない（opacity を変えない） */
.ebook-spread.is-slide-forward{animation:ebook-slide-forward .35s cubic-bezier(.25,.72,.25,1)}
.ebook-spread.is-slide-backward{animation:ebook-slide-backward .35s cubic-bezier(.25,.72,.25,1)}
@keyframes ebook-slide-forward{from{transform:translateX(14px) scale(var(--ebook-zoom,1))}to{transform:translateX(0) scale(var(--ebook-zoom,1))}}
@keyframes ebook-slide-backward{from{transform:translateX(-14px) scale(var(--ebook-zoom,1))}to{transform:translateX(0) scale(var(--ebook-zoom,1))}}
/* スマホは旧ページと新ページを隙間なく横スライド。背後の黒を露出しない。 */
.ebook-slide-layer{position:absolute;inset:0;z-index:6;overflow:hidden;pointer-events:none;contain:paint;background:#fff}
.ebook-slide-track{display:flex;width:200%;height:100%;will-change:transform;transition:transform .39s cubic-bezier(.22,.7,.25,1)}
.ebook-slide-track.is-forward{transform:translateX(0)}
.ebook-slide-track.is-forward.is-moving{transform:translateX(-50%)}
.ebook-slide-track.is-backward{transform:translateX(-50%)}
.ebook-slide-track.is-backward.is-moving{transform:translateX(0)}
.ebook-slide-image{display:block;width:50%;height:100%;flex:none;object-fit:fill;background:#fff;-webkit-user-drag:none}
/* 内側の見開き同士では紙が中心の綴じ目を越えて動く */
/* 立体的なめくりは維持しつつ、綴じ目に浮いた影と白い隙間を作らない */
.ebook-flip-layer{position:absolute;inset:0;z-index:5;pointer-events:none;perspective:2200px;transform-style:preserve-3d;overflow:visible}
.ebook-cover-curtain{position:absolute;top:0;width:50%;height:100%;background:var(--ebook-bg);z-index:4;pointer-events:none}
.ebook-cover-curtain.is-left{left:0}.ebook-cover-curtain.is-right{right:0}
.ebook-flip-still{position:absolute;top:0;width:50%;height:100%;z-index:1;background:#fff;object-fit:fill;-webkit-user-drag:none}
.ebook-flip-still.is-left{left:0}.ebook-flip-still.is-right{right:0}
.ebook-flip-leaf{position:absolute;top:0;width:50%;height:100%;z-index:2;transform-style:preserve-3d;will-change:transform;transition:transform .66s cubic-bezier(.29,.05,.18,.99)}
.ebook-flip-leaf.forward{left:50%;transform-origin:0 50%;transform:rotateY(0deg)}
.ebook-flip-leaf.forward.is-flipping{transform:rotateY(-180deg)}
.ebook-flip-leaf.backward{left:0;transform-origin:100% 50%;transform:rotateY(0deg)}
.ebook-flip-leaf.backward.is-flipping{transform:rotateY(180deg)}
.ebook-flip-face{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;background:white;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:none}
.ebook-flip-face.back{transform:rotateY(180deg)}
/* 折り目の根元だけに薄い影を固定。回転する面の広範囲シャドウは撤去。 */
.ebook-flip-spine{position:absolute;top:0;bottom:0;left:50%;width:4px;transform:translateX(-50%);z-index:3;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(10,15,20,.16) 40%,rgba(10,15,20,.13) 60%,transparent)}
.ebook-flip-leaf:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.11),transparent 14%,transparent 85%,rgba(0,0,0,.08));opacity:0;animation:ebook-shadow .66s ease-in-out forwards;pointer-events:none;backface-visibility:hidden}
@keyframes ebook-shadow{0%,100%{opacity:0}50%{opacity:.32}}
.ebook-controls{position:absolute;inset:0;z-index:9;pointer-events:none;opacity:0;transition:opacity .18s ease}
.ebook.is-controls-visible .ebook-controls{opacity:1}
.ebook-arrow,.ebook-close,.ebook-toolbar{pointer-events:none;visibility:hidden}
.ebook.is-controls-visible .ebook-arrow:not(:disabled),.ebook.is-controls-visible .ebook-close,.ebook.is-controls-visible .ebook-toolbar{pointer-events:auto;visibility:visible}
.ebook-arrow{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:58px;display:grid;place-items:center;border:1px solid #ffffff2b;border-radius:13px;background:#17191c94;color:#fff;backdrop-filter:blur(8px);cursor:pointer;transition:background .16s ease}
.ebook-arrow:hover{background:#17191cde}
.ebook-arrow svg{width:29px;height:29px}
.ebook-arrow--prev{left:clamp(8px,2vw,24px)}.ebook-arrow--next{right:clamp(8px,2vw,24px)}
.ebook-arrow:disabled{visibility:hidden;pointer-events:none}
.ebook-close{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));right:calc(12px + env(safe-area-inset-right,0px));width:44px;height:44px;display:grid;place-items:center;border:1px solid #ffffff2a;border-radius:50%;background:#17191cbd;color:#fff;text-decoration:none;backdrop-filter:blur(8px)}
.ebook-close:hover{background:#000e}
.ebook-close svg{width:22px;height:22px}
.ebook-toolbar{position:absolute;left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:flex;align-items:center;gap:20px;padding:13px 18px;border:1px solid #ffffff29;border-radius:99px;box-shadow:0 6px 20px #0003;background:var(--toolbar);backdrop-filter:blur(12px);max-width:calc(100vw - 24px)}
.ebook-page-count{min-width:72px;font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:.05em;white-space:nowrap;text-align:center}
.ebook-progress{width:clamp(100px,26vw,270px);height:20px;cursor:pointer;accent-color:#fff;background:transparent}
.ebook-tool-separator{width:1px;height:20px;background:#ffffff30;flex:none}
.ebook-zoom-button{border:0;background:transparent;color:#fff;width:30px;height:32px;display:grid;place-items:center;border-radius:8px;cursor:pointer;font-size:21px;line-height:1;padding:0;flex:none}
.ebook-zoom-button:hover:not(:disabled){background:#ffffff22}
.ebook-zoom-button:disabled{opacity:.32;cursor:default}
.ebook-zoom-indicator{font-size:10px;min-width:33px;white-space:nowrap;text-align:center;color:#fffc;font-variant-numeric:tabular-nums}
.ebook-loading{position:absolute;inset:0;z-index:15;background:var(--ebook-bg);display:flex;align-items:center;justify-content:center;transition:opacity .3s ease}
.ebook-loading.is-finished{opacity:0;pointer-events:none}
.ebook-loading-inner{display:flex;align-items:center;flex-direction:column;gap:15px;width:min(330px,calc(100vw - 48px));font-size:13px;text-align:center;color:#fff9}
.ebook-loading-title{font-size:14px;color:#fffe;letter-spacing:.035em}
.ebook-loading-bar{height:3px;width:100%;background:#ffffff25;border-radius:5px;overflow:hidden}
.ebook-loading-bar span{display:block;height:100%;width:0%;background:#fff;border-radius:inherit;transition:width .18s ease}
.ebook-loading-count{font-variant-numeric:tabular-nums}
.ebook-retry{border:1px solid #ffffff50;padding:8px 19px;border-radius:30px;background:#333;color:white;cursor:pointer}
/* 電子パンフレット表示中は、右上の×と衝突するテスト切替UIだけ隠す。別モードでは従来どおり表示。 */
body.ebook-page .test-preview-switcher{display:none!important}
@media(max-width:760px){
 .ebook-arrow{width:41px;height:49px;border-radius:10px}
 .ebook-arrow svg{width:24px;height:24px}
 .ebook-arrow--prev{left:6px}.ebook-arrow--next{right:6px}
 .ebook-close{top:calc(9px + env(safe-area-inset-top,0px));right:calc(9px + env(safe-area-inset-right,0px));width:40px;height:40px}
 .ebook-toolbar{padding:10px 14px;gap:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px))}
 .ebook-page-count{font-size:12px;min-width:56px}
 .ebook-progress{width:clamp(70px,24vw,140px)}
 .ebook-toolbar{gap:7px;padding:8px 11px}
 .ebook-zoom-indicator{display:none}
 .ebook-zoom-button{width:30px;height:32px}
}
@media(prefers-reduced-motion:reduce){.ebook-controls,.ebook-loading,.ebook-flip-leaf{transition:none!important}.ebook-spread.is-slide-forward,.ebook-spread.is-slide-backward{animation:none!important}.ebook-slide-track{transition:none!important}}

.ebook-loading[hidden]{display:none!important}

/* プライバシーポリシーは共通PHP側で追加される。読書中はUIと同期し、目立たない左上に配置。 */
body.ebook-page .kiyokasai-privacy-footer-row{
  position:fixed!important;z-index:30!important;
  top:calc(5px + env(safe-area-inset-top,0px))!important;
  left:calc(7px + env(safe-area-inset-left,0px))!important;
  right:auto!important;bottom:auto!important;
  display:block!important;width:auto!important;margin:0!important;
  color:#fff!important;font-size:9px!important;line-height:1.2!important;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .18s ease,visibility .18s ease;
}
body.ebook-page.ebook-ui-on.ebook-ready .kiyokasai-privacy-footer-row{opacity:.52;visibility:visible;pointer-events:auto}
body.ebook-page .kiyokasai-privacy-footer-row a{
  display:inline-flex!important;min-height:29px!important;padding:7px 8px!important;
  font-size:9px!important;font-weight:400!important;line-height:1.2!important;
  border-radius:7px;color:#fff!important;background:#17191c55;
  text-decoration:none!important;opacity:1!important;
}
body.ebook-page .kiyokasai-privacy-footer-row a:hover,
body.ebook-page .kiyokasai-privacy-footer-row a:focus-visible{
  background:#17191cbb;text-decoration:underline!important;
}
