.book-page-icons{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.book-page-icon{position:absolute;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.book-page-icon--s{width:2rem;height:auto;max-height:2rem}.book-page-icon--m{width:2.75rem;height:auto;max-height:2.75rem}.book-page-icon--l{width:3.5rem;height:auto;max-height:3.5rem}.book-page-icon--tl{top:.75rem;left:.75rem}.book-page-icon--tr{top:.75rem;right:.75rem}.book-page-icon--bl{bottom:.75rem;left:.75rem}.book-page-icon--br{bottom:.75rem;right:.75rem}@keyframes book-icon-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes book-icon-float-slow{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes book-icon-pulse{0%,to{transform:scale(1);opacity:.9}50%{transform:scale(1.06);opacity:1}}@keyframes book-icon-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.book-page-icon--float{animation:book-icon-float 2.8s ease-in-out infinite}.book-page-icon--float-slow{animation:book-icon-float-slow 4s ease-in-out infinite}.book-page-icon--pulse{animation:book-icon-pulse 2.2s ease-in-out infinite}.book-page-icon--sway{animation:book-icon-sway 3.5s ease-in-out infinite}.book-page-icon--tl.book-page-icon--float{animation-delay:0s}.book-page-icon--tr.book-page-icon--float{animation-delay:.4s}.book-page-icon--bl.book-page-icon--float{animation-delay:.8s}.book-page-icon--br.book-page-icon--float,.book-page-icon--tl.book-page-icon--float-slow{animation-delay:.2s}.book-page-icon--tr.book-page-icon--float-slow{animation-delay:.6s}.book-page-icon--bl.book-page-icon--float-slow{animation-delay:.5s}.book-page-icon--br.book-page-icon--float-slow{animation-delay:.1s}.valentine-decorations{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.valentine-heart{position:absolute;width:1.5rem;height:1.5rem;background:url(/heart.svg) center / contain no-repeat;color:var(--accent);opacity:.5}.valentine-heart--1{left:8%;top:12%;width:1.25rem;height:1.25rem;opacity:.4;transform:rotate(-12deg)}.valentine-heart--2{right:10%;top:15%;width:1.75rem;height:1.75rem;opacity:.45;transform:rotate(8deg)}.valentine-heart--3{left:5%;bottom:25%;width:1rem;height:1rem;opacity:.35;transform:rotate(-5deg)}.valentine-heart--4{right:8%;bottom:22%;width:1.2rem;height:1.2rem;opacity:.4;transform:rotate(15deg)}.valentine-heart--5{left:50%;top:8%;margin-left:-.75rem;width:1.5rem;height:1.5rem;opacity:.3;transform:rotate(-8deg)}.valentine-heart--6{left:18%;top:50%;width:1.1rem;height:1.1rem;opacity:.38;transform:rotate(10deg)}.valentine-heart--7{right:20%;top:48%;width:1.3rem;height:1.3rem;opacity:.42;transform:rotate(-10deg)}.valentine-rose{position:absolute;width:1rem;height:1rem;border-radius:50%;background:radial-gradient(circle at 30% 30%,#e85a6b,#c45c6a 40%,#9e3a48);box-shadow:0 0 0 .5px #c85a6466;opacity:.6}.valentine-rose--1{left:12%;top:22%;width:.9rem;height:.9rem;transform:rotate(-15deg)}.valentine-rose--2{right:15%;top:28%;width:1.1rem;height:1.1rem;transform:rotate(12deg)}.valentine-rose--3{left:50%;bottom:18%;margin-left:-.5rem;width:.85rem;height:.85rem;opacity:.5;transform:rotate(5deg)}.valentine-phrase{position:absolute;font-family:var(--font-serif);font-size:clamp(.7rem,2vw,.9rem);color:var(--accent);opacity:.75;letter-spacing:.05em;white-space:nowrap}.valentine-phrase--1{left:6%;top:28%;transform:rotate(-6deg)}.valentine-phrase--2{right:6%;top:32%;transform:rotate(4deg)}.valentine-phrase--3{left:10%;bottom:35%;transform:rotate(-4deg)}.valentine-phrase--4{right:10%;bottom:38%;transform:rotate(5deg)}.valentine-phrase--5{left:50%;bottom:8%;transform:translate(-50%) rotate(-2deg)}.valentine-horse{position:absolute;width:2rem;height:1.6rem;background:url(/horse.svg) center / contain no-repeat;opacity:.5}.valentine-horse--1{left:3%;top:20%;width:1.8rem;height:1.44rem;opacity:.45;transform:rotate(-15deg)}.valentine-horse--2{right:4%;top:18%;width:2.2rem;height:1.76rem;opacity:.5;transform:rotate(12deg)}.valentine-horse--3{left:15%;bottom:15%;width:1.5rem;height:1.2rem;opacity:.4;transform:rotate(8deg)}.valentine-horse--4{right:12%;bottom:12%;width:1.7rem;height:1.36rem;opacity:.48;transform:rotate(-10deg)}.valentine-coin{position:absolute;width:1.25rem;height:1.25rem;background:url(/coin.svg) center / contain no-repeat;opacity:.65}.valentine-coin--1{left:8%;top:35%;width:1.1rem;height:1.1rem;opacity:.55;transform:rotate(-20deg)}.valentine-coin--2{right:7%;top:38%;width:1.3rem;height:1.3rem;opacity:.6;transform:rotate(15deg)}.valentine-coin--3{left:45%;top:5%;width:1rem;height:1rem;opacity:.5;transform:rotate(10deg)}.valentine-coin--4{left:22%;bottom:30%;width:1.15rem;height:1.15rem;opacity:.58;transform:rotate(-12deg)}.valentine-coin--5{right:25%;bottom:28%;width:1.2rem;height:1.2rem;opacity:.6;transform:rotate(18deg)}.valentine-cute-icon{position:absolute;width:2.5rem;height:auto;max-height:2.5rem;object-fit:contain;opacity:.7;filter:drop-shadow(0 2px 4px rgba(0,0,0,.25));animation:valentine-icon-float 4s ease-in-out infinite}.valentine-cute-icon--heart-book{left:4%;top:22%;width:2.25rem;animation-delay:0s}.valentine-cute-icon--rings{right:5%;top:25%;width:2rem;animation-delay:.8s}.valentine-cute-icon--valentines{left:6%;bottom:20%;width:2.25rem;animation-delay:.4s}.valentine-cute-icon--heart-key{right:6%;bottom:22%;width:2rem;animation-delay:1.2s}.valentine-cute-icon--horse-pocket{left:10%;bottom:28%;width:2.5rem;animation-delay:.2s}.valentine-cute-icon--clickable{pointer-events:auto;cursor:pointer}@keyframes valentine-icon-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.egg-particles{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:20;overflow:hidden}.egg-particle{position:fixed;transform:translate(-50%,-50%);animation-duration:2.6s;animation-timing-function:ease-in;animation-fill-mode:forwards}.egg-particle--coin{width:var(--coin-size, 1.2rem);height:var(--coin-size, 1.2rem);background:url(/coin.svg) center / contain no-repeat;animation-name:egg-coin-arc;animation-duration:2.8s;animation-delay:var(--coin-delay, 0s);animation-timing-function:ease-in;animation-fill-mode:forwards;opacity:.95;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}@keyframes egg-coin-arc{0%{transform:translate(-50%,-50%) translateY(0) translate(0);opacity:.95}12%{transform:translate(-50%,-50%) translateY(calc(-1 * var(--coin-rise, 60px))) translate(var(--coin-drift, 0));opacity:.95}75%{transform:translate(-50%,-50%) translateY(100vh) translate(var(--coin-drift, 0));opacity:.5}to{transform:translate(-50%,-50%) translateY(100vh) translate(var(--coin-drift, 0));opacity:0}}.egg-particle--date{font-family:var(--font-serif);font-size:1.25rem;font-weight:600;color:var(--accent);text-shadow:0 1px 2px rgba(0,0,0,.2);animation-name:egg-scatter;animation-duration:2.4s;animation-timing-function:ease-out;animation-fill-mode:forwards}@keyframes egg-scatter{0%{transform:translate(-50%,-50%) scale(.6);opacity:0}12%{transform:translate(-50%,-50%) scale(1);opacity:1}70%{transform:translate(calc(-50% + var(--scatter-dx, 0)),calc(-50% + var(--scatter-dy, 0))) scale(1);opacity:1}to{transform:translate(calc(-50% + var(--scatter-dx, 0)),calc(-50% + var(--scatter-dy, 0))) scale(1);opacity:0}}.egg-particle--icon{width:2.5rem;height:auto;max-height:2.5rem;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.3));animation-name:egg-scatter;animation-duration:2.4s;animation-timing-function:ease-out;animation-fill-mode:forwards}.egg-particle--rings-heart{width:1.5rem;height:1.5rem;background:url(/heart.svg) center / contain no-repeat;animation-name:egg-rings-draw;animation-duration:2.6s;animation-delay:var(--ring-delay, 0s);animation-timing-function:ease-out;animation-fill-mode:forwards;opacity:0;filter:drop-shadow(0 1px 3px rgba(196,92,106,.4))}@keyframes egg-rings-draw{0%{transform:translate(-50%,-50%) translate(0) scale(0);opacity:0}20%{transform:translate(-50%,-50%) translate(0) scale(.4);opacity:.6}50%{transform:translate(-50%,-50%) translate(var(--ring-dx, 0),var(--ring-dy, 0)) scale(1);opacity:1}75%{transform:translate(-50%,-50%) translate(var(--ring-dx, 0),var(--ring-dy, 0)) scale(1.08);opacity:1}to{transform:translate(-50%,-50%) translate(var(--ring-dx, 0),var(--ring-dy, 0)) scale(1);opacity:0}}.book-view{--cover-height: min(56vh, 36rem);--cover-width: min(88vw, calc(var(--cover-height) * 1.55));--cover-thickness: clamp(.5rem, 1.5vh, 1.25rem);position:relative;height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(.5rem,1.5vh,2rem);gap:clamp(.25rem,1vh,.5rem);background:radial-gradient(ellipse 90% 60% at 50% 40%,rgba(196,92,106,.08) 0%,transparent 55%),var(--bg)}.peek-characters{width:calc(var(--cover-width) + var(--cover-thickness) * 2);margin-bottom:clamp(-1rem,-2vh,-2.5rem);flex-shrink:0;position:relative;z-index:0;pointer-events:none}.peek-characters__image-wrap{position:relative;width:100%;max-width:min(20rem,18vw);margin:0 auto}.peek-characters__image{width:100%;height:auto;display:block;object-fit:contain}.peek-characters__eye-overlay{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:none;overflow:visible}.peek-characters__pupil-dot{position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:#1a1517;box-shadow:0 0 0 .5px #ffffff26;transition:transform .08s ease-out}.book-wrapper{--spine-width: .5rem;--page-edge-width: .35rem;flex-shrink:0;position:relative;z-index:1;width:calc(var(--cover-width) + var(--cover-thickness) * 2);height:calc(var(--cover-height) + var(--cover-thickness) * 2);padding:var(--cover-thickness);background:linear-gradient(165deg,#2a2226,#1e191c 40%,#181418);border-radius:.5rem;box-shadow:inset 0 1px #ffffff0f,inset 0 -1px #0006,0 20px 50px #00000080,0 0 0 1px #0000004d}.book-wrapper__spine{position:absolute;left:50%;top:0;bottom:0;width:var(--spine-width);transform:translate(-50%);background:linear-gradient(90deg,#00000080,#00000040 30%,#00000026,#00000040 70%,#00000080);border-radius:2px;pointer-events:none}.book-wrapper__pages{position:absolute;top:var(--cover-thickness);bottom:var(--cover-thickness);width:var(--page-edge-width);background:linear-gradient(90deg,rgba(0,0,0,.2) 0%,rgba(0,0,0,.08) 50%,transparent 100%);pointer-events:none}.book-wrapper__pages--left{left:var(--cover-thickness);border-radius:2px 0 0 2px;background:linear-gradient(90deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.1) 40%,transparent 100%)}.book-wrapper__pages--right{right:var(--cover-thickness);border-radius:0 2px 2px 0;background:linear-gradient(-90deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.1) 40%,transparent 100%)}.book{--book-width: var(--cover-width);--book-height: var(--cover-height);width:var(--book-width);height:var(--book-height);position:relative;box-shadow:0 0 0 1px #0003,0 8px 30px #00000059}.book__inner{width:100%;height:100%;display:flex;perspective:1200px;border-radius:.25rem;overflow:hidden}.book__page{position:relative;width:50%;height:100%;display:grid;transform:rotateY(0);transition:transform .9s cubic-bezier(.645,.045,.355,1);transform-origin:0% 0%;background-color:var(--surface)}.book__page--left{background-image:linear-gradient(-90deg,rgba(0,0,0,.25) 0%,transparent 18%);border-radius:.25rem 0 0 .25rem;padding:2rem 2.5rem 2rem 2rem;overflow:hidden}.book__page--can-turn{cursor:pointer}.book__page--right{background-image:linear-gradient(90deg,rgba(0,0,0,.25) 0%,transparent 18%);border-radius:0 .25rem .25rem 0;padding:0;box-shadow:2px 0 12px #00000014}.book__page-under{position:absolute;top:0;right:0;bottom:0;left:0;padding:2rem 2.5rem 2rem 2rem;z-index:0;background-color:var(--surface);background-image:linear-gradient(90deg,rgba(0,0,0,.25) 0%,transparent 18%);border-radius:0 .25rem .25rem 0;overflow:auto;box-shadow:2px 0 12px #00000014}.book__page--flip{position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;transform-style:preserve-3d;transform:rotateY(0);transition:transform .9s cubic-bezier(.645,.045,.355,1);transform-origin:0% 0%;background-color:var(--surface);background-image:linear-gradient(90deg,rgba(0,0,0,.25) 0%,transparent 18%);border-radius:0 .25rem .25rem 0;box-shadow:2px 0 12px #00000014}.book__page--flip.book__page--turned,.book__page--flip.book__page--turned-back{transform:rotateY(-180deg)}.book__page--flip.book__page--no-transition{transition:none}.book__page-front{position:absolute;width:100%;height:100%;padding:2rem 2.5rem 2rem 2rem;transform:rotateY(0) translateZ(1px);overflow:auto;backface-visibility:hidden}.book__page-back{position:absolute;width:100%;height:100%;padding:2rem 2.5rem 2rem 2rem;transform:rotateY(180deg) translateZ(1px);overflow:auto;backface-visibility:hidden}.book-cover--left,.book-cover--right{width:100%;min-height:100%;display:flex;align-items:center;justify-content:center}.book-cover--left{padding:2rem}.book-cover__decoration{width:6rem;height:6rem;display:flex;align-items:center;justify-content:center;border:1px solid rgba(196,92,106,.3);border-radius:50%}.book-cover__heart{font-size:2.5rem;color:var(--accent)}.book-cover--right{flex-direction:column;text-align:center;padding:2rem}.book-cover__label{font-size:.75rem;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);margin:0 0 .5rem}.book-cover__title{font-family:var(--font-serif);font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:600;line-height:1.2;margin:0 0 .75rem;color:var(--text)}.book-cover__subtitle{font-size:.9375rem;color:var(--text-muted);margin:0 0 2rem;max-width:20rem}.book-cover__hint{font-size:.8125rem;color:var(--text-muted);opacity:.8;margin:0}.book-chapter{height:100%;display:flex;flex-direction:column}.book-chapter--left{align-items:center;justify-content:center}.book-chapter__image-wrap{width:100%;max-width:22rem;max-height:min(70vh,28rem);border-radius:.25rem;overflow:hidden;background:var(--bg);box-shadow:0 4px 20px #0000004d;display:flex;align-items:center;justify-content:center}.book-chapter__image{max-width:100%;max-height:min(70vh,28rem);width:auto;height:auto;display:block;object-fit:contain;object-position:center}.book-chapter--right{justify-content:center}.book-chapter__place{display:block;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:.2rem}.book-chapter__when{display:block;font-size:.8125rem;color:var(--text-muted);margin-bottom:.5rem}.book-chapter__label{font-family:var(--font-serif);font-size:clamp(1.5rem,2.5vw,1.875rem);font-weight:600;margin:0 0 .75rem;color:var(--text)}.book-chapter__text{font-size:.9375rem;line-height:1.7;color:var(--text-muted);margin:0;max-width:26rem}.book-end{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:100%;width:100%}.book-end__title{font-family:var(--font-serif);font-size:clamp(1.5rem,2.5vw,1.875rem);font-weight:600;margin:0;color:var(--text)}.book-end__heart{width:3.5rem;height:3.5rem;margin-bottom:1rem;color:var(--accent)}.book-end__heart svg{width:100%;height:100%}.book-end__text{font-size:1rem;color:var(--text);margin:0 0 .25rem}.book-end__sign{font-size:.9375rem;color:var(--text-muted);margin:0}.book-nav{display:flex;align-items:center;justify-content:center;gap:clamp(.75rem,2vw,1.5rem);margin-top:clamp(.5rem,1.5vh,2rem);flex-shrink:0}.book-nav__btn{width:2.75rem;height:2.75rem;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.12);border-radius:50%;background:var(--surface);color:var(--text);cursor:pointer;transition:background .2s,color .2s,border-color .2s}.book-nav__btn:hover:not(:disabled){background:#c45c6a33;border-color:#c45c6a66;color:var(--accent-soft)}.book-nav__btn:disabled{opacity:.4;cursor:not-allowed}.book-nav__arrow{font-size:1.25rem;line-height:1}.book-nav__progress{font-size:.8125rem;color:var(--text-muted);min-width:4ch;text-align:center}:root{--bg: #0d0a0b;--bg-soft: #151113;--surface: #1c1719;--text: #f5eef0;--text-muted: #a8929a;--accent: #c45c6a;--accent-soft: #d97a87;--gold: #d4a574;--font-serif: "Cormorant Garamond", Georgia, serif;--font-sans: "Outfit", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;height:100%;overflow:hidden}body{margin:0;height:100%;overflow:hidden;font-family:var(--font-sans);font-weight:300;font-size:1rem;line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root,.app{height:100%;min-height:0;overflow:hidden}h1,h2,h3{font-family:var(--font-serif);font-weight:600}img{max-width:100%;height:auto;display:block}
