@font-face{font-family:'Great Vibes';src:url('assets/vendor/GreatVibes-Regular.ttf') format('truetype');font-display:swap}
:root{--album-width:min(94vw,1380px,210vh);--gold:#d7b86c;--petrol:#06151c}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;width:100%;height:100%;overflow:hidden}
body{background:#9a5628;font-family:Georgia,'Times New Roman',serif}
.table-scene{position:relative;height:100%;height:100dvh;width:100%;overflow:hidden;background:#9a5628;touch-action:none;user-select:none;-webkit-user-select:none;isolation:isolate;outline:none}
.table-scene:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:20;background:radial-gradient(ellipse at center,transparent 55%,rgba(33,12,3,.1))}
.album-camera{position:absolute;left:50%;top:50%;width:var(--album-width);height:calc(var(--album-width)/2.84);transform:translate(-50%,-50%) scale(1.24) translateX(-25%);transition:transform 1080ms cubic-bezier(.22,.72,.2,1);will-change:transform;isolation:isolate}
.table-surface{position:absolute;left:50%;top:50%;width:180vw;height:180vh;height:180dvh;transform:translate(-50%,-50%);background:#9a5628 url('assets/table.webp') center/cover no-repeat;pointer-events:none;z-index:0}
.album-contact-shadow{position:absolute;left:50%;top:1%;width:50%;height:99%;border-radius:3px;background:rgba(32,15,5,.19);box-shadow:0 3px 4px rgba(24,12,4,.3),0 12px 19px rgba(32,15,5,.18);pointer-events:none;z-index:1;opacity:1;transition:left 1080ms cubic-bezier(.22,.72,.2,1),width 1080ms cubic-bezier(.22,.72,.2,1),opacity 350ms ease}
.album-camera[data-position='spread'] .album-contact-shadow{left:0;width:100%}
.album-camera[data-position='back'] .album-contact-shadow{left:0;width:50%}
.table-scene[data-phase='user_fold'] .album-contact-shadow,.table-scene[data-phase='flipping'] .album-contact-shadow{opacity:.85}
.album-camera[data-position='spread']{transform:translate(-50%,-50%) scale(.96) translateX(0)}
.album-camera[data-position='back']{transform:translate(-50%,-50%) scale(1.24) translateX(25%)}
.album-book{width:100%;height:100%;position:relative;z-index:2;filter:drop-shadow(0 4px 4px rgba(30,15,5,.18))}
.album-page{display:none;overflow:hidden;background:#faf8f2;border:1px solid #e5e0d6;color:#7a756a}
.hard-cover{background:#073657 url('assets/cover-linen.webp') center/cover;border:1px solid #0b405f;box-shadow:inset 0 0 0 2px rgba(2,20,33,.1)}
.front-cover-image{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
.cover-content{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:17px}
.couple-name{padding:0 8%;font-family:'Great Vibes',cursive;font-weight:400;font-size:clamp(26px,4.3vw,65px);line-height:1.2;text-align:center;color:var(--gold);background:linear-gradient(125deg,#a88637 0%,#f2df9f 37%,#d6b05c 62%,#a47d2e 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 1px 1px rgba(0,0,0,.22))}
.back-brand img{width:clamp(48px,6vw,84px);height:clamp(48px,6vw,84px);object-fit:contain;filter:brightness(0) saturate(100%) invert(72%) sepia(38%) saturate(592%) hue-rotate(7deg) brightness(94%) contrast(87%)}
.gold-rule{width:42px;height:1px;background:var(--gold);opacity:.7}
.phone{font:400 clamp(11px,1.2vw,18px)/1.4 Arial,sans-serif;letter-spacing:1.7px;color:var(--gold)}
.paper-page{background:#faf8f2;box-shadow:inset 0 0 4px rgba(110,93,65,.07)}
.photo-mat{position:absolute;inset:3.2%;overflow:hidden;background:#f7f5ee;border:1px solid rgba(120,108,84,.17)}
.page-photo{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
.photo-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:3px;padding:8%;background:linear-gradient(135deg,#fbfaf6,#f1eee6);font:600 clamp(8px,1.3vw,18px)/1.6 Arial,sans-serif;letter-spacing:1.5px}
.photo-placeholder span{font-size:.72em;letter-spacing:1px;color:#a89e8d}
@media(max-width:700px){:root{--album-width:96vw}.album-camera[data-position='front']{transform:translate(-50%,-50%) scale(1.32) translateX(-25%)}.album-camera[data-position='back']{transform:translate(-50%,-50%) scale(1.32) translateX(25%)}.cover-content{gap:11px}.couple-name{font-size:clamp(23px,5.5vw,38px)}.phone{letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){.album-camera,.album-contact-shadow{transition-duration:180ms}}
