/* A real two-sided cover and separate leaves; no duplicate photo beneath. */
.stage[data-variant=book]{background:#eee7dc;perspective:none}
.book-scene{background:radial-gradient(ellipse at 30% 20%,#fffdf7 0,#eee5d6 58%,#d9cbb8 100%);perspective:none;transform-style:flat}
.book-scene:after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(35deg,#937b5510 0 1px,transparent 1px 4px);opacity:.35}
.book-heading{position:absolute;top:6%;width:100%;text-align:center;font:2.8cqw Montserrat,Arial;letter-spacing:.16em;color:#334759}
.book-object{position:absolute;left:21%;top:20%;width:59%;height:56%;transform:rotate(-5deg);transform-style:flat;perspective:none;isolation:isolate}
.book-base,.book-leaf,.book-lid{position:absolute;inset:0;border-radius:2px 9px 9px 2px;transform-origin:0 50%;transform-style:flat}
.book-base{z-index:1}
.book-base{background:#f7f0e1;box-shadow:4px 3px 0 #d1c3a9,7px 6px 0 #f5ebd7,10px 9px 0 #71818a,15px 23px 25px #33271340;border:1px solid #cbb898;display:flex;align-items:center;justify-content:center;text-align:center;flex-direction:column;padding:8%;color:#374b5b}
.book-base:before{content:'';position:absolute;inset:5%;border:1px solid #b89d6d}
.book-base small{font:2.5cqw Montserrat;letter-spacing:.14em}
.book-base strong{font:9cqw Vibes,Georgia;font-weight:400;line-height:1.3;margin:15% 0 9%}
.book-base em{font:3.7cqw Georgia;color:#8e7349}
.book-leaf{z-index:3;background:linear-gradient(90deg,#d9c9ab,#fff9eb 13%,#f7efde 85%,#e6d8bc);border:1px solid #cabb9f;backface-visibility:visible;box-shadow:3px 3px 7px #34271218}
.book-leaf:after{content:'♡';position:absolute;inset:12%;border:1px solid #b79e6e55;display:grid;place-items:center;font:11cqw Georgia;color:#b29a6a55}
.book-leaf-one{z-index:4}
.book-lid{z-index:5;background:transparent;will-change:transform}
.book-face{position:absolute;inset:0;border-radius:2px 9px 9px 2px;backface-visibility:visible;overflow:hidden}
.book-front{background:repeating-linear-gradient(0deg,#ffffff08 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,#ffffff09 0 1px,transparent 1px 3px),#617583;border:1px solid #87969c;box-shadow:inset 9px 0 8px #152e4044,4px 5px 9px #2b30352a;display:grid;place-items:center}
.book-front:before{content:'';position:absolute;inset:7%;border:1px solid #d5b879;outline:1px solid #d5b87977;outline-offset:4px}
.book-medallion{width:78%;height:72%;border-radius:50%;background:linear-gradient(120deg,#f9f2e6,#e6dcc8);border:3px double #b8995c;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#2d4252;box-shadow:0 0 0 3px #ddc79b33}
.book-medallion strong{font:8cqw Vibes,Georgia;font-weight:400;line-height:1.05}
.book-medallion i{font:4cqw Vibes;line-height:1.3}
.book-medallion small{font:3cqw Georgia;margin-top:12%}
.book-medallion small:before{content:'❧';display:block;color:#a28a58;font:6cqw Georgia;margin-bottom:12%}
.book-inside{visibility:hidden;transform:scaleX(-1);background:linear-gradient(90deg,#f9efdb,#eee0c4);border:5px solid #637986;box-shadow:inset -8px 0 12px #533d2020}
.book-inside:after{content:'♡';position:absolute;inset:9%;border:1px solid #b29a65;display:grid;place-items:center;color:#ac9465;font:12cqw Georgia}
.stage[data-variant=book] .open-invitation{bottom:8%}
.stage[data-state=book-open] .open-invitation,.stage[data-state=book-open] .welcome{display:none}
.stage[data-state=book-open] .book-object{transform:rotate(0deg) translateX(28%) scale(.64)}
.stage[data-state=book-open] .book-lid{transform:scaleX(-1)}
.stage[data-state=book-open] .book-front{visibility:hidden}
.stage[data-state=book-open] .book-inside{visibility:visible}
.stage[data-state=book-open] .book-leaf-one{transform:scaleX(-.98);z-index:6}
.stage[data-state=book-open] .book-leaf-two{transform:scaleX(-.96);z-index:7}
