@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Cinzel:wght@400;500;600;700&family=Dancing+Script:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap";html{font-size:16px;scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;width:100%}:root{--bg-dark: #1a1410;--bg-gradient: #1a1410;--gold: #d4af37;--gold-light: #f4d03f;--cream: #faf6ed;--paper: #f8f4e8;--paper-aged: #f3ebe0;--brown-dark: #2c1810;--brown-leather: #4a2c2a;--text-dark: #2d1f1f;--text-light: #5c4033;--purple: #9d7bc4;--font-display: "Cinzel", serif;--font-body: "Cormorant Garamond", serif;--font-script: "Dancing Script", cursive;--font-elegant: "Playfair Display", serif}*{margin:0;padding:0;box-sizing:border-box}body{background:radial-gradient(ellipse at center,transparent 0%,rgba(0,0,0,.4) 100%),repeating-linear-gradient(90deg,#1a1410 0px 2px,#15100c 2px 4px),linear-gradient(180deg,#1a1410,#0d0a08);min-height:100vh;overflow:hidden}.app{height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}@media(max-width:767px){.app{padding-bottom:70px}.book-container{margin-top:-30px}}.book-container.loading{opacity:0}.book-container{opacity:1;transition:opacity .3s ease}.page-number{position:absolute;bottom:15px;left:50%;transform:translate(-50%);font-family:var(--font-body);font-size:.85rem;color:var(--text-light);opacity:.7}.book-container{display:flex;align-items:center;justify-content:center;gap:20px;z-index:10;padding:20px}.book-wrapper{perspective:2500px}.book-container.on-front-cover .stf__wrapper{clip-path:inset(0 0 0 50%)}.book-container.on-front-cover .book-wrapper{transform:translate(-25%)}.book-container.on-back-cover .stf__wrapper{clip-path:inset(0 50% 0 0)!important}.book-container.on-back-cover .book-wrapper{transform:translate(25%)!important}.book-wrapper{transition:transform .3s ease}.book-container.on-front-cover .nav-arrow-left,.book-container.on-back-cover .nav-arrow-right{opacity:0!important;pointer-events:none}.nav-arrow{background:none;border:none;color:var(--gold);font-size:3rem;cursor:pointer;padding:20px 15px;transition:all .3s ease;opacity:.5;-webkit-user-select:none;user-select:none}.nav-arrow:hover{opacity:1!important;transform:scale(1.1)}.nav-arrow:disabled{cursor:default}.nav-arrow-left{margin-right:-10px}.nav-arrow-right{margin-left:-10px}.book{background:transparent}.stf__wrapper{box-shadow:0 5px 30px #0006,0 20px 60px #0000004d}.page-cover{background:linear-gradient(145deg,#4a2c2a,#2c1810,#1a0f0a);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.page-cover:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23noise)' opacity='0.08'/%3E%3C/svg%3E");pointer-events:none}.cover-front{border-radius:3px 8px 8px 3px}.cover-back{border-radius:8px 3px 3px 8px}.cover-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:30px;position:relative}.cover-ornaments{position:absolute;inset:15px;pointer-events:none}.corner-ornament{position:absolute;width:35px;height:35px;border:2px solid var(--gold);opacity:.5}.corner-ornament.tl{top:0;left:0;border-right:none;border-bottom:none}.corner-ornament.tr{top:0;right:0;border-left:none;border-bottom:none}.corner-ornament.bl{bottom:0;left:0;border-right:none;border-top:none}.corner-ornament.br{bottom:0;right:0;border-left:none;border-top:none}.cover-inner{text-align:center;z-index:2}.cover-emblem{font-size:1.3rem;color:var(--gold);margin-bottom:12px;opacity:.8}.cover-title{font-family:var(--font-display);font-size:clamp(1.4rem,4vw,1.9rem);color:var(--gold);text-shadow:0 2px 8px rgba(0,0,0,.5);letter-spacing:3px;line-height:1.3}.cover-line{width:70px;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:15px auto}.cover-subtitle{font-family:var(--font-elegant);font-size:clamp(.75rem,2vw,.9rem);color:var(--cream);font-style:italic;opacity:.8}.back-content{text-align:center;color:var(--gold);display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.back-emblem{font-family:var(--font-display);font-size:1.8rem;letter-spacing:3px;margin-bottom:15px;opacity:.7}.back-domain{font-family:var(--font-display);font-size:.9rem;letter-spacing:2px;opacity:.8}.back-year{font-family:var(--font-body);font-size:.8rem;opacity:.5;margin-top:6px}.page-inside-cover{background:linear-gradient(135deg,#f5f0e6,#e8e0d5)}.page-inside-cover .page-content{justify-content:center;align-items:center}.inside-cover-content{text-align:center;color:var(--text-light)}.inside-quote{font-family:var(--font-body);font-size:1.1rem;color:var(--brown-dark);margin-bottom:8px}.inside-meaning{font-family:var(--font-elegant);font-size:.85rem;font-style:italic;color:var(--text-light)}.inside-note{font-family:var(--font-body);font-size:.9rem;color:var(--text-light)}.inside-year{font-family:var(--font-display);font-size:.8rem;color:var(--gold);margin-top:10px;letter-spacing:2px}.page{background:var(--paper);position:relative;overflow:hidden}.page:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none}.page-light{background:linear-gradient(135deg,var(--paper) 0%,var(--paper-aged) 100%)}.page-cream{background:linear-gradient(135deg,#faf8f0,#f5f0e6)}.page-ivory{background:linear-gradient(135deg,#fffff5,#faf6ed)}.page-content{height:100%;padding:25px 22px 35px;display:flex;flex-direction:column;position:relative}.page-number{position:absolute;bottom:15px;left:50%;transform:translate(-50%);font-family:var(--font-body);font-size:.85rem;color:var(--text-dark);opacity:.7;z-index:10}.poem{height:100%;display:flex;flex-direction:column}.poem-title{font-family:var(--font-elegant);font-size:clamp(.95rem,2.5vw,1.15rem);color:var(--brown-dark);text-align:center;margin-bottom:15px;position:relative;padding-bottom:10px}.poem-title:after{content:"~";position:absolute;bottom:0;left:50%;transform:translate(-50%);color:var(--gold);font-size:.9rem}.poem-content{flex:1;font-family:var(--font-body);font-size:clamp(.8rem,2vw,.92rem);line-height:1.55;color:var(--text-dark)}.poem-content.poem-continued{padding-top:45px}.poem-content p{margin-bottom:2px}.poem-content .poem-break{height:8px}.poem-author{font-family:var(--font-script);font-size:.9rem;color:var(--text-light);text-align:right;margin-top:auto;padding-top:10px}.dedication{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.ornament{font-size:1.4rem;color:var(--gold);margin-bottom:15px}.dedication h3{font-family:var(--font-elegant);font-size:clamp(.9rem,2.5vw,1.05rem);color:var(--brown-dark);font-style:italic;margin-bottom:18px}.dedication-text{font-family:var(--font-body);font-size:clamp(.82rem,2vw,.92rem);color:var(--text-dark);line-height:1.7;font-style:italic}.signature-block{margin-top:25px;display:flex;flex-direction:column;gap:3px}.signature-block span{font-family:var(--font-body);font-size:.8rem;color:var(--text-light)}.signature{font-family:var(--font-script)!important;font-size:1.2rem!important;color:var(--brown-dark)!important}.toc{height:100%;display:flex;flex-direction:column}.toc-title{font-family:var(--font-display);font-size:clamp(.85rem,2.2vw,1rem);color:var(--brown-dark);text-align:center;letter-spacing:3px;margin-bottom:5px}.toc-line{width:50%;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:0 auto 10px}.toc-list{list-style:none;flex:1}.toc-item{display:flex;align-items:baseline;margin-bottom:3px;font-family:var(--font-body);font-size:clamp(.65rem,1.6vw,.75rem);color:var(--text-dark);transition:color .15s ease,background .15s ease,transform .1s ease;padding:4px 6px;border-radius:3px;cursor:pointer;-webkit-tap-highlight-color:rgba(212,175,55,.5);touch-action:manipulation;-webkit-user-select:none;user-select:none;position:relative;z-index:100}.toc-item:hover{color:var(--brown-leather);background:#d4af3726}.toc-item:focus{outline:none;background:#d4af3733}.toc-item:active{color:var(--brown-leather);background:#d4af3740;transform:scale(.97)}@media(max-width:767px){.toc-item{padding:6px 8px;-webkit-tap-highlight-color:rgba(212,175,55,.6)}}.toc-item.toc-pressed{background:#d4af3759!important;transform:scale(.96);color:var(--brown-leather)}.toc-name{font-style:italic;white-space:nowrap}.toc-dots{flex:1;border-bottom:1px dotted var(--text-light);margin:0 4px 2px;opacity:.3}.toc-num{color:var(--text-light);font-size:.7em}.about{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.about-title{font-family:var(--font-display);font-size:clamp(.9rem,2.5vw,1rem);color:var(--brown-dark);letter-spacing:2px;margin-bottom:12px}.about-avatar{font-family:var(--font-display);font-size:2.5rem;width:60px;height:60px;background:linear-gradient(145deg,var(--brown-leather),var(--brown-dark));color:var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:10px;border:2px solid var(--gold);opacity:.8}.about p{font-family:var(--font-body);font-size:clamp(.78rem,2vw,.88rem);color:var(--text-dark);margin-bottom:6px}.about-text{line-height:1.5;max-width:90%}.about-quote{font-style:italic;color:var(--text-light);margin-top:10px!important}.about-link{font-family:var(--font-display);font-size:.75rem;color:var(--gold);margin-top:15px;letter-spacing:1px}.page-end .page-content{justify-content:center;align-items:center}.end-content{text-align:center}.end-quote{font-family:var(--font-body);font-size:clamp(.82rem,2vw,.92rem);color:var(--text-dark);line-height:1.7;font-style:italic;margin:12px 0}.thank-you{font-family:var(--font-script);font-size:clamp(1rem,3vw,1.3rem);color:var(--brown-dark);margin-top:15px}@media(max-width:600px){.book-container{gap:8px;padding:10px}.nav-arrow{font-size:2rem;padding:15px 8px}.corner-ornament{width:25px;height:25px}.page-content{padding:18px 16px 30px}}@media(max-height:600px){.page-content{padding:15px 15px 28px}.poem-content{line-height:1.45}}.nav-slider-container{position:fixed;bottom:25px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:15px;background:#1e140fd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:10px 20px;border-radius:30px;border:1px solid rgba(212,175,55,.2);z-index:100;box-shadow:0 4px 20px #0006}.nav-slider-btn{background:none;border:none;color:var(--gold);cursor:pointer;padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease;opacity:.7}.nav-slider-btn:hover{opacity:1;background:#d4af3726;transform:scale(1.1)}.nav-slider-btn:active{transform:scale(.95)}.nav-slider-track{position:relative;width:180px;height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.nav-slider-progress{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-light));border-radius:3px;transition:width .2s ease;pointer-events:none}.nav-slider{position:absolute;top:50%;left:0;transform:translateY(-50%);width:100%;height:20px;opacity:0;cursor:pointer;margin:0;-webkit-appearance:none;appearance:none}.nav-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--gold);border-radius:50%;cursor:pointer}.nav-slider::-moz-range-thumb{width:16px;height:16px;background:var(--gold);border-radius:50%;cursor:pointer;border:none}@media(max-width:767px){.nav-slider-container{bottom:15px;padding:8px 15px;gap:10px}.nav-slider-track{width:120px}.nav-slider-btn{padding:6px}.nav-slider-btn svg{width:16px;height:16px}}
