.flipbook-room{--flipbook-ink:var(--ink);--flipbook-muted:var(--muted);--flipbook-page-color:#fff8f2;--flipbook-cover-color:#f3ddd4;--flipbook-back-cover-color:#e8cfc4;--flipbook-page-texture:repeating-linear-gradient(2deg,transparent 0 3px,rgba(169,84,88,0.035) 4px);--flipbook-cover-texture:repeating-linear-gradient(88deg,transparent 0 5px,rgba(113,64,44,0.05) 6px);--flipbook-back-cover-texture:none;--flipbook-page-ratio:0.7353;--flipbook-spread-ratio:1.4706;--flipbook-max-spread:1040px;min-height:0;display:grid;grid-template-rows:auto minmax(280px,1fr) auto;gap:12px;overflow:hidden;padding:12px 8px 20px;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.55),transparent 38%),linear-gradient(180deg,color-mix(in srgb,var(--champagne) 70%,transparent),transparent 86%);isolation:isolate;border-radius:1.25rem}:root[data-theme=dark] .flipbook-room{--flipbook-page-color:#22181c;--flipbook-cover-color:#2c2024;--flipbook-back-cover-color:#1a1416;--flipbook-page-texture:repeating-linear-gradient(2deg,transparent 0 3px,rgba(230,160,168,0.05) 4px);--flipbook-cover-texture:repeating-linear-gradient(88deg,transparent 0 5px,rgba(228,190,132,0.06) 6px);background:radial-gradient(circle at 50% 42%,rgba(90,55,62,.35),transparent 40%),linear-gradient(180deg,rgba(35,27,33,.55),transparent 86%)}.flipbook-room--loading{place-items:center}.flipbook-room--loading:before{content:"";width:min(42vw,280px);aspect-ratio:var(--flipbook-page-ratio);border-radius:2px 10px 10px 2px;background:var(--flipbook-cover-color);box-shadow:8px 12px 28px rgba(113,64,44,.16),inset 0 0 0 1px var(--border-soft)}.flipbook-header{position:relative;z-index:30;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;font-family:var(--font-body),sans-serif;font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--flipbook-muted)}.flipbook-header p{margin:0;font-family:var(--font-display),serif;font-weight:500;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--flipbook-ink)}.flipbook-header span:last-child{justify-self:end;color:var(--flipbook-muted)}.flipbook-stage{position:relative;z-index:2;min-height:0;display:grid;place-items:center;perspective:1900px}.photo-book-rig{position:relative;z-index:4;width:min(82vw,calc((100svh - 150px) * var(--flipbook-spread-ratio)),var(--flipbook-max-spread));display:grid;place-items:center;transform:rotateX(5deg) rotate(-.18deg);transform-style:preserve-3d;transition:transform .7s cubic-bezier(.2,.7,.1,1)}.is-turning .photo-book-rig{transform:rotateX(6.5deg) rotate(-.08deg) translateY(-.5%)}.photo-book{filter:drop-shadow(0 30px 22px rgba(113,64,44,.22));transition:filter .7s ease}.is-turning .photo-book{filter:drop-shadow(0 36px 28px rgba(113,64,44,.28))}:root[data-theme=dark] .photo-book{filter:drop-shadow(0 30px 24px rgba(0,0,0,.45))}.flipbook-ground-shadow{position:absolute;z-index:1;left:50%;top:57%;width:min(78vw,960px);height:130px;transform:translate(-50%,-50%);border-radius:50%;background:rgba(113,64,44,.16);filter:blur(30px);transition:width .7s ease,filter .7s ease,opacity .7s ease}.is-turning .flipbook-ground-shadow{width:min(73vw,900px);filter:blur(36px);opacity:.78}:root[data-theme=dark] .flipbook-ground-shadow{background:rgba(0,0,0,.45)}.photo-leaf.stf__item{--leaf-color:var(--flipbook-page-color);--leaf-texture:var(--flipbook-page-texture);position:absolute;overflow:hidden;background:linear-gradient(90deg,rgba(70,64,52,.045),transparent 5%,transparent 94%,rgba(70,64,52,.075)),var(--leaf-color);border:1px solid rgba(86,49,32,.12);box-shadow:inset 0 0 22px rgba(70,64,52,.04);color:var(--flipbook-ink)}.photo-leaf.stf__item.photo-leaf--cover{--leaf-color:var(--flipbook-cover-color);--leaf-texture:var(--flipbook-cover-texture)}.photo-leaf.stf__item.photo-leaf--back-cover{--leaf-color:var(--flipbook-back-cover-color);--leaf-texture:var(--flipbook-back-cover-texture);background:var(--flipbook-back-cover-color)}.photo-leaf:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.08;mix-blend-mode:multiply;background-image:var(--leaf-texture)}.photo-leaf__media{position:absolute;inset:0;box-sizing:border-box}.photo-leaf img{display:block;width:100%;height:100%;object-position:center;user-select:none;-webkit-user-drag:none}.photo-leaf--fit-fill img{object-fit:fill}.photo-leaf--fit-cover img{object-fit:cover}.photo-leaf--fit-contain img{object-fit:contain}.photo-leaf__copy{position:absolute;z-index:2;inset:auto 8% 7%}.photo-leaf__copy p{margin:.4em 0 0;font-family:var(--font-hand),cursive}.photo-leaf__caption{font-family:var(--font-body),sans-serif;font-size:9px;letter-spacing:.12em;text-transform:uppercase}.flipbook-controls{position:relative;z-index:30;display:flex;justify-content:center;align-items:center;gap:16px}.flipbook-controls button{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--border-soft);border-radius:50%;background:var(--surface-strong);color:var(--flipbook-ink);cursor:pointer;font:24px/1 var(--font-display),serif;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);transition:transform .16s ease,background .16s ease,opacity .16s ease}.flipbook-controls button:hover:not(:disabled){transform:translateY(-2px);background:var(--button-secondary-hover)}.flipbook-controls button:focus-visible{outline:2px solid var(--rose-deep);outline-offset:3px}.flipbook-controls button:disabled{opacity:.25;cursor:default}.flipbook-status{min-width:170px;color:var(--flipbook-muted);text-align:center;text-transform:uppercase}.flipbook-status span{display:block;font-family:var(--font-body),sans-serif;font-size:.68rem;letter-spacing:.16em}.flipbook-status small{display:block;margin-top:5px;font-size:.62rem;letter-spacing:.1em;text-transform:none}@media (max-width:720px){.flipbook-room{gap:8px;padding:10px 4px 14px;min-height:0}.flipbook-header{grid-template-columns:1fr 1fr;letter-spacing:.16em;gap:8px}.flipbook-header p,.flipbook-header span:last-child{display:none}.photo-book-rig{width:min(92vw,calc((100svh - 135px) * var(--flipbook-page-ratio)));transform:rotateX(3deg)}.is-turning .photo-book-rig{transform:rotateX(4.5deg) translateY(-.5%)}.flipbook-ground-shadow{width:68vw;height:92px}}@media (max-height:650px){.flipbook-room{padding-block:8px 10px}.flipbook-status small{display:none}.flipbook-controls button{width:34px;height:34px}}@media (prefers-reduced-motion:reduce){.flipbook-controls button,.flipbook-ground-shadow,.photo-book,.photo-book-rig{transition-duration:.01ms}}