@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-ext-500-normal-Yta7XZ9C.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-500-normal-lsPpqi9g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-500-normal-CyAY5ZLS.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-500-normal-DkJXBcIH.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-vietnamese-500-normal-BZGLGj12.woff2)format("woff2"),url(/assets/cormorant-garamond-vietnamese-500-normal-DqXqCC0q.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-ext-500-normal-CH1kM7og.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-ext-500-normal-DYeaGGzO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Crimson Text;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/crimson-text-vietnamese-400-normal-rDtJSp__.woff2)format("woff2"),url(/assets/crimson-text-vietnamese-400-normal-DwuTIOAR.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Crimson Text;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/crimson-text-latin-ext-400-normal-B_IkVVOe.woff2)format("woff2"),url(/assets/crimson-text-latin-ext-400-normal-CgOISYAx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Crimson Text;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/crimson-text-latin-400-normal-pRLgj_b_.woff2)format("woff2"),url(/assets/crimson-text-latin-400-normal-qfr3ao9R.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dancing-script-vietnamese-500-normal-kNXngsQM.woff2)format("woff2"),url(/assets/dancing-script-vietnamese-500-normal-DduN5Z2z.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dancing-script-latin-ext-500-normal-DwO33GHY.woff2)format("woff2"),url(/assets/dancing-script-latin-ext-500-normal-C6S_bQcr.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dancing-script-latin-500-normal-C3T38yDr.woff2)format("woff2"),url(/assets/dancing-script-latin-500-normal-DJfTWzQB.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cinzel-latin-ext-500-normal-1Z8Q-7rh.woff2)format("woff2"),url(/assets/cinzel-latin-ext-500-normal-BxIh9iwm.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cinzel-latin-500-normal-B-2dbOfA.woff2)format("woff2"),url(/assets/cinzel-latin-500-normal-DMNTwV-V.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#3a2614;--ink-soft:#6b4a2b;--paper:#f1e4c6;--paper-dark:#d9c69a;--leather:#3b1f14;--leather-light:#6b3a22;--gold:#c9a961;--gold-bright:#e8c978;--accent:#7a1f1f}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{color:var(--ink);-webkit-user-select:none;user-select:none;background:#000;font-family:Crimson Text,serif}#root{height:100%}.stage{perspective:1800px;justify-content:center;align-items:center;width:100%;height:100%;padding:24px;display:flex;position:relative}.stage:before{content:"";pointer-events:none;position:absolute;inset:0}.book{width:min(92vw,780px);height:min(88vh,980px);max-height:calc(100vh - 48px);transform-style:preserve-3d;will-change:transform;background:linear-gradient(145deg,#2a150c,#4a2416 50%,#2a150c);border-radius:8px 18px 18px 8px;padding:18px;position:relative;box-shadow:0 30px 80px #000000b3,inset 0 0 0 2px #1a0d06,inset 0 0 0 6px #5a2e1a,inset 0 0 0 8px #1a0d06,0 0 40px #c9a96126}.book-spine{transform-origin:100%;z-index:4;pointer-events:none;background:linear-gradient(90deg,#1a0a05,#2a150c 40%,#3b1f14 80%,#4a2416);border-radius:8px 0 0 8px;width:24px;position:absolute;top:0;bottom:0;left:0;transform:rotateY(15deg);box-shadow:inset -2px 0 6px #0006}.page-edges{transform-origin:100%;z-index:5;pointer-events:none;background:repeating-linear-gradient(#f0e4c8 0 1px,#c8b890 1px 2px,#e0d4b0 2px 3px);border-radius:1px 0 0 1px;width:14px;position:absolute;top:20px;bottom:20px;left:14px;transform:rotateY(10deg);box-shadow:inset -1px 0 3px #00000026,-1px 0 4px #0003}.book:after{content:"";pointer-events:none;background:repeating-linear-gradient(#e8d9b8 0 2px,#b89d6e 2px 3px);border-radius:0 4px 4px 0;width:10px;position:absolute;top:18px;bottom:18px;right:-2px;box-shadow:2px 0 4px #0006}.book-inner{background:radial-gradient(at 50% 0,#8b5a2b1f,#0000 60%),radial-gradient(at 50% 100%,#8b5a2b26,#0000 60%),linear-gradient(#f4e6c4 0%,#ecdcb0 50%,#e2d0a0 100%);border-radius:2px 8px 8px 2px;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 60px #65432140,inset 4px 0 10px #65432126}.book-inner:before{content:"";opacity:.5;mix-blend-mode:multiply;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='p'><feTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.35 0 0 0 0 0.15 0 0 0 0.08 0'/></filter><rect width='100%25' height='100%25' filter='url(%23p)'/></svg>");position:absolute;inset:0}.book-inner:after{content:"";pointer-events:none;background:radial-gradient(circle at 15% 85%,#78461e2e,#0000 12%),radial-gradient(circle at 85% 15%,#78461e1f,#0000 10%),radial-gradient(circle at 70% 75%,#78461e14,#0000 15%);position:absolute;inset:0}.ring-binder{z-index:10;pointer-events:none;transform-origin:100%;flex-direction:column;justify-content:space-between;display:flex;position:absolute;top:10%;bottom:10%;left:10px;transform:rotateY(12deg)translateZ(2px)}.ring{background:linear-gradient(90deg,gray 0%,#b0b0b0 25%,#e8e8e8 50%,#b0b0b0 75%,#909090 100%);border:2px solid #777;border-radius:50%;width:20px;height:28px;position:relative;transform:rotateY(-25deg);box-shadow:-3px 0 6px #0006,3px 2px 6px #0000004d,inset 0 -2px 4px #0003,inset 0 2px 4px #ffffff4d}.ring:after{content:"";background:#ffffff80;border-radius:50%;width:6px;height:4px;position:absolute;top:4px;left:6px;transform:rotate(-30deg)}.page{z-index:2;will-change:transform, opacity;flex-direction:column;padding:clamp(28px,5vh,56px) clamp(24px,5vw,64px);transition:transform .85s cubic-bezier(.65,0,.35,1),opacity .85s;display:flex;position:absolute;inset:0;overflow:hidden}.page.current{opacity:1;transform:translate(0)rotateY(0)}.page.exit-left{opacity:0;transform:translate(-110%)rotateY(-15deg)}.page.exit-right{opacity:0;transform:translate(110%)rotateY(15deg)}.page.enter-left{opacity:0;transform:translate(-110%)rotateY(-15deg)}.page.enter-right{opacity:0;transform:translate(110%)rotateY(15deg)}.corner{opacity:.55;pointer-events:none;z-index:1;width:50px;height:50px;position:absolute}.corner.tl{top:14px;left:14px}.corner.tr{top:14px;right:14px;transform:scaleX(-1)}.corner.bl{bottom:14px;left:14px;transform:scaleY(-1)}.corner.br{bottom:14px;right:14px;transform:scale(-1)}.cover{text-align:center;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.15 0 0 0 0 0.08 0 0 0 0 0.04 0 0 0 0.2 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"),radial-gradient(at 30% 20%,#6b3a2266,#0000 50%),radial-gradient(at 70% 80%,#5028124d,#0000 50%),linear-gradient(160deg,#3b1f14 0%,#2a150c 40%,#1a0a05 100%);border-radius:2px 8px 8px 2px;justify-content:center;align-items:center;gap:20px;box-shadow:inset 0 0 80px #0006}.end-cover{text-align:center;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.12 0 0 0 0 0.06 0 0 0 0 0.03 0 0 0 0.18 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"),radial-gradient(#5a2e1a4d,#0000 60%),linear-gradient(160deg,#2a150c 0%,#1f100a 50%,#150a05 100%);border-radius:2px 8px 8px 2px;justify-content:center;align-items:center;gap:16px;box-shadow:inset 0 0 80px #00000080}.cover .icon-frame{border:3px double var(--gold);background:radial-gradient(circle,#3b1f14,#2a150c);border-radius:50%;justify-content:center;align-items:center;width:clamp(120px,22vh,180px);height:clamp(120px,22vh,180px);padding:8px;animation:4s ease-in-out infinite floaty;display:flex;overflow:hidden;box-shadow:0 0 0 1px #c9a9614d,0 0 0 4px #c9a96126,0 8px 20px #0006,inset 0 0 20px #c9a96126}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.cover .icon-frame img{object-fit:cover;border:2px solid var(--gold);border-radius:50%;width:100%;height:100%}.cover h1{color:var(--gold-bright);letter-spacing:.08em;text-shadow:0 2px 4px #00000080,0 0 20px #c9a9614d;font-family:Cinzel,serif;font-size:clamp(28px,5.5vw,52px);line-height:1.1}.cover .subtitle{color:var(--gold);text-shadow:0 1px 3px #0006;max-width:480px;margin-top:6px;font-family:Crimson Text,serif;font-size:clamp(14px,2vw,18px);font-style:italic}.cover .tagline{color:var(--paper);text-shadow:0 1px 4px #0006;margin-top:8px;font-family:Dancing Script,cursive;font-size:clamp(22px,3.2vw,32px)}.end-cover h1{color:var(--gold-bright);letter-spacing:.08em;text-shadow:0 2px 4px #00000080,0 0 20px #c9a9614d;font-family:Cinzel,serif;font-size:clamp(28px,5.5vw,52px);line-height:1.1}.end-cover .subtitle{color:var(--gold);text-shadow:0 1px 3px #0006;font-family:Crimson Text,serif;font-size:clamp(14px,2vw,18px);font-style:italic}.end-cover .tagline{color:var(--paper);text-shadow:0 1px 4px #0006;font-family:Dancing Script,cursive;font-size:clamp(22px,3.2vw,32px)}.cover .ornament{color:var(--gold);letter-spacing:12px;filter:drop-shadow(0 1px 2px #0006);margin:4px 0;font-size:22px}.start-btn{letter-spacing:.25em;color:var(--gold-bright);border:2px solid var(--gold);cursor:pointer;text-transform:uppercase;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(145deg,#c9a96126,#c9a9610d);border-radius:2px;margin-top:24px;padding:14px 40px;font-family:Cinzel,serif;font-size:clamp(13px,1.6vw,16px);transition:color .3s,background .3s,box-shadow .3s;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #c9a96133,0 4px 12px #0006}.start-btn:before{content:"";background:linear-gradient(90deg,#0000,#e8c9784d,#0000);transition:transform .8s;position:absolute;inset:0;transform:translate(-100%)}.start-btn:hover{color:var(--paper);background:linear-gradient(145deg,#c9a96140,#c9a9611a);box-shadow:inset 0 0 0 1px #c9a96180,0 4px 20px #c9a9614d}.start-btn:hover:before{transform:translate(100%)}.start-btn:active{transform:translateY(1px)}.start-hint{color:var(--gold);opacity:.6;text-shadow:0 1px 2px #0000004d;margin-top:8px;font-size:11px;font-style:italic}.text-page{scrollbar-width:thin;scrollbar-color:var(--gold) transparent;gap:18px;overflow-y:auto}.text-page::-webkit-scrollbar{width:6px}.text-page::-webkit-scrollbar-thumb{background:var(--gold);border-radius:3px}.page-icon{text-align:center;color:var(--ink);filter:drop-shadow(0 2px 4px #00000026);justify-content:center;display:flex}.page-title{text-align:center;color:var(--ink);letter-spacing:.04em;font-family:Cinzel,serif;font-size:clamp(22px,4vw,36px);line-height:1.15}.page-subtitle{text-align:center;color:var(--accent);font-family:Dancing Script,cursive;font-size:clamp(16px,2.2vw,20px)}.divider{color:var(--gold);justify-content:center;align-items:center;gap:12px;width:80%;margin:4px auto;display:flex}.divider:before,.divider:after{content:"";background:linear-gradient(90deg, transparent, var(--gold), transparent);flex:1;height:1px}.divider span{font-size:14px}.description{color:var(--ink);text-align:justify;white-space:pre-wrap;-webkit-hyphens:auto;hyphens:auto;max-width:640px;margin:0 auto;font-family:Crimson Text,serif;font-size:clamp(15px,2vw,18px);line-height:1.75}.description .cursor{background:var(--ink);vertical-align:text-bottom;width:2px;height:1em;margin-left:2px;animation:1s infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.credits-page .description{text-align:center;font-size:clamp(16px,2.2vw,20px);font-style:italic}.credits-page .page-title{color:var(--accent)}.photo-page{justify-content:center;align-items:center;gap:20px}.polaroid{min-width:250px;max-width:min(85%,400px);transform:rotate(var(--rot,-1.5deg));background:#fbf6e8;padding:14px 14px 52px;transition:transform .6s cubic-bezier(.34,1.56,.64,1);position:relative;box-shadow:0 14px 30px #00000059,0 2px 6px #0003}.polaroid:before{content:"";pointer-events:none;background:linear-gradient(135deg,#fff6,#0000 40%,#0000000d);position:absolute;inset:0}.polaroid .photo-wrap{aspect-ratio:1;background:#222;width:100%;position:relative;overflow:hidden}.polaroid.landscape .photo-wrap{aspect-ratio:16/10}.polaroid .photo-wrap img{object-fit:cover;filter:sepia(.15)contrast(1.05)saturate(.95);width:100%;height:100%;display:block}.polaroid .caption{text-align:center;color:var(--ink);font-family:Dancing Script,cursive;font-size:clamp(18px,2.5vw,24px);position:absolute;bottom:6px;left:0;right:0}.photo-name{color:var(--ink);text-align:center;letter-spacing:.06em;font-family:Cinzel,serif;font-size:clamp(18px,2.5vw,24px)}.photo-quote{color:var(--ink-soft);text-align:center;max-width:420px;padding:0 20px;font-family:Crimson Text,serif;font-size:clamp(14px,1.8vw,17px);font-style:italic;line-height:1.5}.photo-title-bar{text-align:center}.photo-title-bar h3{color:var(--accent);margin-bottom:6px;font-family:Cinzel,serif;font-size:clamp(16px,2.2vw,20px)}.photo-title-bar p{color:var(--ink-soft);max-width:420px;padding:0 20px;font-family:Crimson Text,serif;font-size:clamp(13px,1.6vw,15px);font-style:italic;line-height:1.5}.video-page{justify-content:center;align-items:center;gap:16px}.video-frame{aspect-ratio:16/9;border:3px solid var(--gold);background:#000;width:min(92%,560px);overflow:hidden;box-shadow:0 14px 30px #0006}.video-frame.portrait{aspect-ratio:9/16;max-height:60vh}.video-frame iframe{border:0;width:100%;height:100%}.nav-arrow{border:2px solid var(--gold);width:48px;height:48px;color:var(--gold-bright);cursor:pointer;z-index:20;will-change:transform;background:linear-gradient(145deg,#4a2416,#2a150c);border-radius:50%;justify-content:center;align-items:center;transition:color .25s,box-shadow .25s,transform .25s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 4px 12px #00000080}.nav-arrow:hover:not(:disabled){color:var(--paper);transform:translateY(-50%)scale(1.08);box-shadow:0 4px 20px #c9a96166}.nav-arrow:disabled{opacity:.3;cursor:not-allowed}.nav-arrow.left{left:clamp(6px,2vw,24px)}.nav-arrow.right{right:clamp(6px,2vw,24px)}.progress-bar{z-index:15;background:#3a261433;border-radius:2px;width:min(80%,500px);height:4px;position:absolute;top:10px;left:50%;overflow:hidden;transform:translate(-50%)}.progress-fill{background:linear-gradient(90deg, var(--gold), var(--gold-bright));height:100%;transition:width .3s;box-shadow:0 0 8px #c9a96199}.page-number{color:var(--ink-soft);z-index:3;font-family:Cormorant Garamond,serif;font-size:13px;font-style:italic;position:absolute;bottom:28px}.page-number.left{left:36px}.page-number.right{right:36px}.control-panel{z-index:20;gap:8px;display:flex;position:absolute;top:22px;right:22px}.ctrl-btn{border:1.5px solid var(--gold);width:36px;height:36px;color:var(--gold-bright);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#3a261499;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,color .2s;display:flex}.ctrl-btn:hover,.ctrl-btn.active{background:var(--gold);color:var(--leather)}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-up>*{opacity:0;animation:.7s forwards fadeUp}.fade-up>:first-child{animation-delay:.1s}.fade-up>:nth-child(2){animation-delay:.25s}.fade-up>:nth-child(3){animation-delay:.4s}.fade-up>:nth-child(4){animation-delay:.55s}.fade-up>:nth-child(5){animation-delay:.7s}.fade-up>:nth-child(6){animation-delay:.85s}.fade-up>:nth-child(7){animation-delay:1s}.fade-up>:nth-child(8){animation-delay:1.15s}.book-opening .book-inner{animation:.9s cubic-bezier(.34,1.56,.64,1) forwards bookOpen}@keyframes bookOpen{0%{transform-origin:0;opacity:.5;transform:perspective(1800px)rotateY(-70deg)}to{transform-origin:0;opacity:1;transform:perspective(1800px)rotateY(0)}}.book-closing .book-inner{animation:.8s cubic-bezier(.65,0,.35,1) forwards bookClose}@keyframes bookClose{0%{transform-origin:0;opacity:1;transform:perspective(1800px)rotateY(0)}to{transform-origin:0;opacity:.3;transform:perspective(1800px)rotateY(-70deg)}}.page.flip-shadow{box-shadow:-8px 0 24px #0000004d}.page.flip-shadow-exit{box-shadow:8px 0 24px #0000004d}@keyframes photoDrop{0%{opacity:0;transform:rotate(var(--rot,-1.5deg)) translateY(-30px) scale(.9)}60%{opacity:1;transform:rotate(var(--rot,-1.5deg)) translateY(4px) scale(1.02)}80%{transform:rotate(var(--rot,-1.5deg)) translateY(-2px) scale(.99)}to{opacity:1;transform:rotate(var(--rot,-1.5deg)) translateY(0) scale(1)}}.polaroid.animate-drop{animation:.7s cubic-bezier(.34,1.56,.64,1) forwards photoDrop}@media (hover:hover){.polaroid{transition:transform .6s cubic-bezier(.34,1.56,.64,1),box-shadow .3s}.polaroid:hover{transform:rotate(0)scale(1.03);box-shadow:0 18px 40px #00000073,0 4px 10px #00000040}}@media (width<=640px){.stage{padding:8px}.book{border-radius:4px 10px 10px 4px;padding:10px}.book:after{width:6px;right:-1px}.nav-arrow{display:none}.corner{width:32px;height:32px}.control-panel{top:14px;right:14px}.ctrl-btn{width:32px;height:32px}.ring-binder{left:4px}.ring{width:16px;height:16px}.ring:after{width:5px;height:3px;top:2px;left:3px}.page-edges{width:10px;left:8px}}@media (height<=500px) and (orientation:landscape){.book{height:96vh}.page{padding:20px 24px}}.toast{color:var(--gold-bright);border:1px solid var(--gold);z-index:100;opacity:0;pointer-events:none;background:#2a150cf2;border-radius:4px;padding:10px 20px;font-size:13px;transition:opacity .4s;position:fixed;bottom:80px;left:50%;transform:translate(-50%)}.toast.show{opacity:1}
