.ebook-body{font-family:var(--body);background:var(--cream);background-image:radial-gradient(circle at 10% 20%, var(--mint-soft) 0%, transparent 40%), radial-gradient(circle at 90% 80%, var(--lavender-soft) 0%, transparent 40%);color:var(--ink);min-height:100vh;overflow-x:hidden}.topbar{z-index:50;-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);background:#f5f1eabf;border-bottom:1px solid #e5dfd380;justify-content:space-between;align-items:center;gap:16px;padding:14px clamp(20px,4vw,56px);display:flex;position:fixed;top:0;left:0;right:0}.topbar-brand{flex-shrink:0;align-items:center;gap:clamp(16px,2.5vw,24px);display:flex}.topbar-back{transition:gap .3s var(--ease), color .3s;align-items:center;gap:10px;font-size:14px;font-weight:500;display:inline-flex}.topbar-back:hover{color:var(--lavender-deep);gap:14px}.topbar-back svg{width:16px;height:16px;transition:transform .3s var(--ease)}.topbar-back:hover svg{transform:translate(-3px)}.topbar-info{text-align:center;flex:1}.topbar-info-label{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);font-size:11px;display:block}.topbar-info-title{font-family:var(--display);font-variation-settings:"SOFT" 60, "opsz" 20;margin-top:2px;font-size:16px;font-weight:500}.topbar-page{font-family:var(--display);font-variation-settings:"SOFT" 60;color:var(--ink-soft);font-variant-numeric:tabular-nums;text-align:right;min-width:80px;font-size:14px;font-weight:500}@media (max-width:720px){.topbar-info{display:none}}.stage{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:78px 20px 86px;display:flex;position:relative}.stage-blobs{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.stage-blob{filter:blur(60px);opacity:.5;border-radius:50%;position:absolute}.stage-blob-1{background:var(--lavender);width:420px;height:420px;animation:28s ease-in-out infinite morph;top:-10%;left:-10%}.stage-blob-2{background:var(--mint);width:380px;height:380px;animation:32s ease-in-out infinite reverse morph;bottom:-10%;right:-10%}.book-wrap{z-index:1;justify-content:center;align-items:center;width:100%;max-width:min(1120px,96vw,177.778dvh - 298.667px);display:flex;position:relative}#book{margin:0 auto}.page{background:var(--paper);font-family:var(--body);color:var(--ink);padding:56px 48px;line-height:1.55;position:relative;overflow:hidden}.page-cover{padding:0}.page-number{letter-spacing:.18em;color:var(--ink-mute);font-variant-numeric:tabular-nums;font-size:11px;position:absolute;bottom:24px}.page--left .page-number{left:48px}.page--right .page-number{right:48px}.page-running{font-family:var(--display);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-mute);font-size:10px;position:absolute;top:24px}.page--left .page-running{left:48px}.page--right .page-running{text-align:right;right:48px}.cover-bg{background:linear-gradient(135deg, var(--lavender-deep) 0%, #6b5b8a 100%);position:absolute;inset:0;overflow:hidden}.cover-shape{filter:blur(40px);border-radius:50%;position:absolute}.cover-shape-1{aspect-ratio:1;background:#fff3;width:50%;top:-10%;left:-15%}.cover-shape-2{aspect-ratio:1;background:var(--mint);opacity:.5;width:40%;top:40%;right:-10%}.cover-shape-3{aspect-ratio:1;background:var(--butter);opacity:.4;filter:blur(30px);width:30%;bottom:-10%;left:30%}.cover-content{z-index:1;color:#fff;flex-direction:column;justify-content:space-between;height:100%;padding:48px;display:flex;position:relative}.cover-meta{letter-spacing:.25em;text-transform:uppercase;opacity:.85;justify-content:space-between;font-size:12px;display:flex}.cover-title{font-family:var(--display);letter-spacing:-.025em;font-variation-settings:"SOFT" 60, "opsz" 60;font-size:clamp(34px,5.5vw,52px);font-weight:400;line-height:.98}.cover-title em{opacity:.9;font-style:italic;font-weight:300}.cover-author{letter-spacing:.06em;font-size:13px}.cover-author strong{font-family:var(--display);font-variation-settings:"SOFT" 80;margin-top:4px;font-size:15px;font-weight:500;display:block}.title-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:80px 48px;display:flex}.title-page-mark{background:var(--lavender-deep);border-radius:50%;width:28px;height:28px;margin-bottom:40px;position:relative}.title-page-mark:after{content:"";border:1px solid var(--lavender);border-radius:50%;position:absolute;inset:-8px}.title-page h1 em{color:var(--lavender-deep);font-style:italic}.title-page>p{font-family:var(--display);color:var(--ink-soft);font-variation-settings:"SOFT" 80, "opsz" 24;max-width:320px;margin-top:24px;font-size:17px;font-style:italic}.title-page-author{letter-spacing:.15em;text-transform:uppercase;color:var(--ink-mute);margin-top:auto;font-size:12px}.title-page-author strong{font-family:var(--display);letter-spacing:0;text-transform:none;color:var(--ink);font-variation-settings:"SOFT" 60;margin-top:4px;font-size:16px;display:block}.toc-page{flex-direction:column;height:100%;padding:80px 48px 60px;display:flex}.toc-eyebrow{font-family:var(--display);letter-spacing:.22em;text-transform:uppercase;color:var(--lavender-deep);margin-bottom:28px;font-size:11px}.toc-page h2{font-family:var(--display);letter-spacing:-.02em;font-variation-settings:"SOFT" 50, "opsz" 48;margin-bottom:36px;font-size:36px;font-weight:400;line-height:1}.toc-page h2 em{color:var(--lavender-deep);font-style:italic}.toc-list{flex:1;list-style:none}.toc-item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;padding:14px 0;display:flex}.toc-item-num{font-family:var(--display);color:var(--ink-mute);font-variant-numeric:tabular-nums;min-width:24px;font-size:13px}.toc-item-title{font-family:var(--display);font-variation-settings:"SOFT" 60;flex:1;font-size:16px;font-weight:500}.toc-item-page{font-family:var(--display);color:var(--ink-mute);font-variant-numeric:tabular-nums;font-size:13px}.chapter-opener{flex-direction:column;justify-content:center;height:100%;padding:80px 48px;display:flex;position:relative}.chapter-num{font-family:var(--display);font-variation-settings:"SOFT" 100, "opsz" 144;color:var(--mint-deep);letter-spacing:-.04em;margin-bottom:16px;font-size:clamp(80px,12vw,160px);font-weight:400;line-height:.85}.chapter-eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:16px;font-size:11px}.chapter-title{font-family:var(--display);letter-spacing:-.02em;font-variation-settings:"SOFT" 50, "opsz" 48;max-width:360px;font-size:clamp(28px,4vw,36px);font-weight:400;line-height:1.05}.chapter-title em{color:var(--lavender-deep);font-style:italic}.chapter-intro{font-family:var(--display);color:var(--ink-soft);font-variation-settings:"SOFT" 80;max-width:380px;margin-top:28px;font-size:17px;font-style:italic;line-height:1.5}.text-page{flex-direction:column;height:100%;padding:70px 56px;display:flex}.text-page h3{font-family:var(--display);letter-spacing:-.015em;font-variation-settings:"SOFT" 60, "opsz" 30;color:var(--ink);margin-bottom:18px;font-size:22px;font-weight:500;line-height:1.2}.text-page p{color:var(--ink);margin-bottom:14px;font-size:14.5px;line-height:1.65}.text-page p em{font-family:var(--display);color:var(--lavender-deep);font-variation-settings:"SOFT" 80;font-style:italic}.text-page p strong{color:var(--ink);font-weight:600}.dropcap:first-letter{font-family:var(--display);font-variation-settings:"SOFT" 80, "opsz" 72;float:left;color:var(--lavender-deep);padding:8px 10px 0 0;font-size:64px;font-weight:500;line-height:.85}.pullquote{font-family:var(--display);font-variation-settings:"SOFT" 100, "opsz" 36;border-left:3px solid var(--mint-deep);color:var(--ink);margin:24px 0;padding-left:18px;font-size:22px;font-style:italic;font-weight:400;line-height:1.35}.callout-box{background:var(--mint-soft);border-radius:14px;margin:20px 0;padding:22px}.callout-box-label{letter-spacing:.2em;text-transform:uppercase;color:var(--mint-deep);margin-bottom:8px;font-size:10px;font-weight:700;display:block}.callout-box p{color:var(--ink)!important;margin:0!important;font-size:13.5px!important;line-height:1.55!important}.callout-box.lav{background:var(--lavender-soft)}.callout-box.lav .callout-box-label{color:var(--lavender-deep)}.image-page{background:var(--paper);flex-direction:column;height:100%;padding:40px 40px 60px;display:flex}.image-page-art{background:linear-gradient(135deg, var(--mint-soft), var(--lavender-soft));border-radius:18px;flex:1;margin-bottom:18px;position:relative;overflow:hidden}.image-page-art:before,.image-page-art:after{content:"";filter:blur(30px);border-radius:50%;position:absolute}.image-page-art:before{aspect-ratio:1;background:var(--lavender);opacity:.7;width:60%;top:-15%;right:-15%}.image-page-art:after{aspect-ratio:1;background:var(--mint-deep);opacity:.5;width:40%;bottom:-10%;left:10%}.image-page-mock{z-index:1;background:#fff;border-radius:12px;flex-direction:column;gap:6px;padding:14px;display:flex;position:absolute;inset:18% 12%;box-shadow:0 16px 30px #1f233026}.image-page-mock-bar{background:var(--mint-soft);border-radius:3px;width:50%;height:6px}.image-page-mock-bar.lav{background:var(--lavender-soft);width:75%}.image-page-mock-blocks{flex:1;grid-template-columns:1fr 1fr;gap:6px;margin-top:4px;display:grid}.image-page-mock-block{background:var(--cream);border-radius:6px}.image-page-mock-block.alt{background:var(--lavender-soft)}.image-caption{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);font-size:11px}.image-caption strong{color:var(--ink);letter-spacing:0;text-transform:none;font-weight:600;font-family:var(--display);font-size:13px}.colophon-page{text-align:center;background:var(--cream-warm);flex-direction:column;justify-content:center;height:100%;padding:80px 48px;display:flex}.colophon-page h2{font-family:var(--display);font-variation-settings:"SOFT" 50, "opsz" 48;letter-spacing:-.02em;margin-bottom:32px;font-size:32px;font-weight:400;line-height:1.05}.colophon-page h2 em{color:var(--lavender-deep);font-style:italic}.colophon-page p{color:var(--ink-soft);max-width:340px;margin:0 auto 18px;font-size:14px;line-height:1.6}.colophon-page p em{font-family:var(--display);color:var(--ink);font-style:italic}.colophon-page-cta{background:var(--ink);color:#fff;transition:background .3s, transform .4s var(--ease);border-radius:999px;align-self:center;align-items:center;gap:8px;margin-top:24px;padding:12px 22px;font-size:13px;font-weight:500;display:inline-flex}.colophon-page-cta:hover{background:var(--lavender-deep);transform:translateY(-2px)}.back-cover{background:var(--ink);height:100%;color:var(--cream);flex-direction:column;justify-content:space-between;padding:56px 48px;display:flex;position:relative;overflow:hidden}.back-cover-bg{background:radial-gradient(circle at 20% 10%,#c8e6d533,#0000 50%),radial-gradient(circle at 80% 90%,#dcd0ec33,#0000 50%);position:absolute;inset:0}.back-cover-content{z-index:1;position:relative}.back-cover h2{font-family:var(--display);font-variation-settings:"SOFT" 50, "opsz" 36;letter-spacing:-.02em;margin-bottom:18px;font-size:28px;font-weight:400;line-height:1.1}.back-cover h2 em{color:var(--mint);font-style:italic}.back-cover p{color:#f5f1eabf;max-width:340px;font-size:14px;line-height:1.6}.controls{z-index:50;-webkit-backdrop-filter:blur(20px)saturate(1.4);backdrop-filter:blur(20px)saturate(1.4);background:#ffffffd9;border:1px solid #e5dfd399;border-radius:999px;align-items:center;gap:8px;padding:8px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #1f23301f}.control-btn{background:var(--cream-warm);width:44px;height:44px;transition:background .3s, transform .4s var(--ease), color .3s;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.control-btn:hover{background:var(--lavender);color:#fff;transform:scale(1.06)}.control-btn:disabled{opacity:.3;pointer-events:none}.control-btn svg{width:18px;height:18px}.control-display{font-family:var(--display);font-variation-settings:"SOFT" 60;font-variant-numeric:tabular-nums;color:var(--ink);text-align:center;min-width:90px;padding:0 16px;font-size:13px;font-weight:500}.control-display .total{color:var(--ink-mute)}.hint{letter-spacing:.04em;color:var(--ink-mute);text-align:center;opacity:0;pointer-events:none;font-size:12px;transition:opacity .6s;position:fixed;bottom:84px;left:50%;transform:translate(-50%)}.hint.show{opacity:1}.hint kbd{background:var(--cream-warm);border:1px solid var(--line);font-family:var(--display);border-bottom-width:2px;border-radius:6px;margin:0 4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.cover-thumbnail-img{object-fit:cover}.page-cover-thumbnail{background:var(--ink);padding:0;overflow:hidden}.page-cover-inside{position:relative}.cover-inside-overlay{z-index:2;color:#fff;background:linear-gradient(#0f111826 0%,#0f1118b8 58%,#0f1118e6 100%);flex-direction:column;justify-content:flex-end;padding:clamp(20px,4vw,36px);display:flex;position:absolute;inset:0}.cover-inside-label{letter-spacing:.22em;text-transform:uppercase;opacity:.85;margin-bottom:8px;font-size:10px}.cover-inside-title{font-family:var(--display);font-variation-settings:"SOFT" 60, "opsz" 36;letter-spacing:-.02em;max-width:32ch;font-size:clamp(20px,3.2vw,28px);font-weight:500;line-height:1.12}.cover-inside-desc{opacity:.92;max-width:42ch;margin-top:10px;font-size:clamp(12px,1.6vw,14px);line-height:1.5}.cover-inside-meta{letter-spacing:.12em;text-transform:uppercase;opacity:.8;gap:16px;margin-top:14px;font-size:11px;display:flex}.cover-bg-image{object-fit:cover;z-index:0}.cover-bg-scrim{z-index:1;background:linear-gradient(160deg,#00000059 0%,#0000008c 100%);position:absolute;inset:0}.cover-bg .cover-shape{z-index:2}.cover-bg+.cover-content,.page-cover>.cover-content{position:absolute;inset:0}.page-pdf{background:var(--paper);padding:0}.pdf-page-img{object-fit:contain;width:100%;height:100%;display:block}.page-pdf .page-number{background:#ffffffe6;border-radius:999px;padding:4px 10px;bottom:16px;left:auto;right:20px}.ebook-loading{z-index:2;text-align:center;color:var(--ink-soft);font-size:15px;position:relative}.ebook-loading-spinner{border:2px solid var(--line);border-top-color:var(--lavender-deep);border-radius:50%;width:40px;height:40px;margin:0 auto 20px;animation:.8s linear infinite ebookSpin}@keyframes ebookSpin{to{transform:rotate(360deg)}}.title-page h1{font-family:var(--display);letter-spacing:-.025em;font-variation-settings:"SOFT" 50, "opsz" 60;max-width:380px;font-size:clamp(28px,4vw,42px);font-weight:400;line-height:1.1}@media (max-width:720px){.stage{padding:74px 12px 88px}.page{padding:36px 28px}.cover-content,.title-page,.toc-page,.chapter-opener,.text-page,.colophon-page,.back-cover{padding-left:32px;padding-right:32px}.page-pdf{padding:0}}
