@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500&family=Great+Vibes&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{width:100%;height:100%;overflow:hidden}body{overscroll-behavior:none;touch-action:manipulation;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background:#e8d9c0;width:100%;min-height:100%;overflow:hidden}#root{width:100%;height:100dvh;min-height:100svh;overflow:hidden}button{appearance:none;cursor:pointer}img{max-width:100%;display:block}.intro-screen{box-sizing:border-box;text-align:center;background:radial-gradient(circle at top,#ffffff9e,#0000 34%),radial-gradient(at 50% 38%,#f7f1e8 0%,#efe2cf 58%,#e4d3bc 100%);flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100svh;padding:40px 24px;display:flex;position:relative;overflow:hidden}.intro-screen:before{content:"";pointer-events:none;background:linear-gradient(#fff3,#fff0),repeating-linear-gradient(0deg,#0000,#0000 2px,#96785005 2px 3px);position:absolute;inset:0}.intro-screen:after{content:"";pointer-events:none;border:1px solid #b8956a38;border-radius:28px;position:absolute;inset:22px}.intro-decor{pointer-events:none;position:absolute;inset:0}.intro-splash{opacity:.06;filter:sepia(.28);width:clamp(220px,36vw,420px);position:absolute;top:7%;right:min(5vw,36px)}.intro-floral{-webkit-user-select:none;user-select:none;position:absolute}.intro-floral--left{opacity:.28;transform-origin:0 100%;width:clamp(220px,28vw,380px);bottom:clamp(-76px,-5vw,-24px);left:clamp(-74px,-4vw,-24px)}.intro-floral--right{opacity:.24;transform-origin:50%;width:clamp(220px,28vw,380px);top:clamp(-76px,-5vw,-24px);right:clamp(-74px,-4vw,-24px)}.intro-content{z-index:1;flex-direction:column;align-items:center;width:min(100%,560px);padding:clamp(18px,4vw,28px) clamp(14px,3vw,24px);display:flex;position:relative}.intro-content:before{content:"";z-index:-1;opacity:.75;pointer-events:none;background:linear-gradient(#fffcf752,#fffcf71f);border-radius:32px;position:absolute;inset:0}.intro-eyebrow{letter-spacing:.35em;text-transform:uppercase;color:#8b7355;margin:0 0 40px;font-family:Cormorant Garamond,serif;font-size:clamp(10px,2.8vw,13px);font-weight:400}.intro-rings{opacity:.88;filter:drop-shadow(0 16px 28px #7b583014);width:clamp(76px,11vw,108px);margin-bottom:18px}.intro-names-wrap{flex-direction:column;align-items:center;gap:0;margin:0 0 6px;display:flex}.intro-name{color:#3d2b1f;margin:0;font-family:Great Vibes,cursive;font-size:clamp(52px,13vw,80px);line-height:1.05}.intro-ampersand{color:#b8956a;margin:4px 0;font-family:Cormorant Garamond,serif;font-size:clamp(20px,5vw,28px);font-style:italic;font-weight:300;display:block}.intro-divider{opacity:.45;width:min(220px,70vw);margin:20px 0 18px}.intro-date{letter-spacing:.22em;color:#5a4030;text-transform:uppercase;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(14px,3.8vw,18px);font-weight:400}.intro-location{letter-spacing:.16em;color:#8b7355;text-transform:uppercase;margin:8px 0 0;font-family:Cormorant Garamond,serif;font-size:clamp(11px,3vw,14px);font-weight:400}.intro-cta{color:#3d2b1f;letter-spacing:.28em;text-transform:uppercase;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fffbf599;border:1px solid #b8956abf;border-radius:999px;margin-top:36px;padding:14px 34px;font-family:Cormorant Garamond,serif;font-size:clamp(12px,3.2vw,15px);font-weight:400;transition:color .4s,letter-spacing .4s,border-color .4s,background-color .4s,transform .4s;position:relative;overflow:hidden;box-shadow:0 14px 30px #674e3112}.intro-cta:before{content:"";transform-origin:0;z-index:-1;background:linear-gradient(135deg,#b8956a,#9f7650);transition:transform .4s;position:absolute;inset:0;transform:scaleX(0)}.intro-cta:hover{color:#fdf8f0;letter-spacing:.34em;transform:translateY(-1px)}.intro-cta:hover:before{transform:scaleX(1)}@media (width<=680px){.intro-screen{padding:28px 18px}.intro-screen:after{border-radius:24px;inset:14px}.intro-splash{opacity:.05;width:240px;top:12%;right:-24px}.intro-floral--left{opacity:.2;width:230px;bottom:-54px;left:-82px}.intro-floral--right{opacity:.18;width:230px;top:-54px;right:-82px}.intro-content{padding:22px 14px}.intro-cta{margin-top:32px;padding:13px 28px}}.page-wrapper{-webkit-user-select:none;user-select:none;background:radial-gradient(at 50% 30%,#fdf8f0 0%,#f2e9d8 100%);flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.page-wrapper.cover-page,.page-wrapper.back-cover-page{background:radial-gradient(at 50% 40%,#f5ede0 0%,#e8d9c4 100%)}.page-wrapper.cover-page:after,.page-wrapper.back-cover-page:after{content:"";pointer-events:none;position:absolute;inset:0}.page-wrapper.cover-page:after{background:linear-gradient(90deg,#49311a29,#49311a0f 10%,#49311a00 22%)}.page-wrapper.back-cover-page:after{background:linear-gradient(270deg,#49311a29,#49311a0f 10%,#49311a00 22%)}.page-wrapper.has-bg-image{background:0 0}.page-wrapper.has-bg-image:after{display:none}.page-bg-image{object-fit:cover;object-position:center;z-index:0;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.page-content{box-sizing:border-box;z-index:1;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:6% 8%;display:flex;position:relative;container-type:inline-size}.botanical-arch{opacity:.75;width:88%;max-width:300px}.botanical-divider{opacity:.65;width:70%;max-width:240px;margin:8px 0}.botanical-footer{opacity:.65;width:55%;max-width:200px;margin-top:6px}.page-eyebrow{letter-spacing:.28em;text-transform:uppercase;color:#8b7355;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(8px,2.1vw,11px);font-weight:400;line-height:1.4}.page-names{color:#3d2b1f;text-align:center;margin:0;font-family:Great Vibes,cursive;font-size:clamp(34px,9vw,52px);line-height:1.1}.page-names-small{color:#3d2b1f;text-align:center;margin:0;font-family:Great Vibes,cursive;font-size:clamp(28px,7.5vw,42px);line-height:1.1}.page-ampersand{color:#b8956a;margin:2px 0;font-family:Cormorant Garamond,serif;font-size:clamp(16px,4vw,22px);font-style:italic;font-weight:300}.page-title{color:#3d2b1f;letter-spacing:.05em;text-align:center;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(18px,4.5vw,26px);font-weight:500}.page-subtitle{color:#8b7355;letter-spacing:.18em;text-transform:uppercase;text-align:center;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(11px,3vw,15px);font-weight:400}.page-body{color:#5a4030;text-align:center;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(11px,3vw,14px);font-weight:400;line-height:1.8}.page-body-italic{color:#5a4030;text-align:center;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(12px,3.2vw,16px);font-style:italic;font-weight:300;line-height:1.85}.page-detail-label{letter-spacing:.32em;text-transform:uppercase;color:#b8956a;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(7px,1.8vw,9px);font-weight:400}.page-detail-value{color:#3d2b1f;letter-spacing:.04em;margin:1px 0 0;font-family:Cormorant Garamond,serif;font-size:clamp(12px,3.2vw,17px);font-weight:500}.detail-block{flex-direction:column;align-items:center;gap:2px;display:flex}.details-grid{flex-direction:column;align-items:center;gap:14px;display:flex}.gap-xs{height:6px}.gap-sm{height:12px}.gap-md{height:20px}.gap-lg{height:28px}.actions-grid{grid-template-rows:repeat(3,clamp(72px,22cqi,104px));grid-template-columns:repeat(3,clamp(72px,22cqi,104px));place-items:center;gap:6px;display:grid}.action-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;align-items:center;gap:7px;text-decoration:none;transition:transform .2s;display:flex}.action-btn:active{transform:scale(.93)}.action-btn-circle{-webkit-backdrop-filter:blur(4px);background:#b8956ae0;border:1.5px solid #fdf8f080;border-radius:50%;justify-content:center;align-items:center;width:clamp(56px,17cqi,80px);height:clamp(56px,17cqi,80px);transition:background .2s,box-shadow .2s;display:flex;box-shadow:0 2px 12px #3d2b1f38}.action-btn--c .action-btn-circle{width:clamp(64px,19cqi,90px);height:clamp(64px,19cqi,90px)}.action-btn:hover .action-btn-circle,.action-btn:focus .action-btn-circle{background:#b8956a;box-shadow:0 4px 18px #3d2b1f52}.action-btn-circle svg{width:clamp(24px,9cqi,34px);height:clamp(24px,9cqi,34px)}.action-btn--c .action-btn-circle svg{width:clamp(26px,10cqi,38px);height:clamp(26px,10cqi,38px)}.action-btn-label{color:#3d2b1f;text-align:center;letter-spacing:.02em;max-width:clamp(64px,20cqi,84px);font-family:Cormorant Garamond,serif;font-size:17px;font-weight:900;line-height:1.25}.action-btn--tl{grid-area:1/1}.action-btn--tr{grid-area:1/3}.action-btn--c{grid-area:2/2}.action-btn--bl{grid-area:3/1}.action-btn--br{grid-area:3/3}.flipbook-scene{box-sizing:border-box;overscroll-behavior:none;touch-action:manipulation;background:radial-gradient(at 50% 35%,#f2e8d5 0%,#e0ceb2 50%,#cfc0a0 100%);flex-direction:column;justify-content:center;align-items:center;width:100%;height:100dvh;min-height:100svh;padding:16px 16px 60px;display:flex;position:relative;overflow:hidden}.flipbook-scene:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(#0000 55%,#50371e2e 100%);position:fixed;inset:0}.flipbook-wrapper{z-index:1;will-change:transform;touch-action:pan-y;-webkit-tap-highlight-color:transparent;max-width:calc(100vw - 28px);position:relative;transform:translateZ(0)}.flipbook-wrapper .stf__parent{touch-action:pan-y}.flipbook-wrapper:before{content:"";filter:blur(14px);pointer-events:none;z-index:-1;background:radial-gradient(#3d2b1f42 0%,#3d2b1f14 48%,#3d2b1f00 78%);height:34px;position:absolute;bottom:-18px;left:8%;right:8%}.flipbook-wrapper .stf__outerShadow,.flipbook-wrapper .stf__innerShadow,.flipbook-wrapper .stf__hardShadow,.flipbook-wrapper .stf__hardInnerShadow{display:none!important}.mobile-page-stage{z-index:1;position:relative}.mobile-pageflip{z-index:1;touch-action:pan-y;-webkit-tap-highlight-color:transparent;position:relative}.mobile-pageflip:after{content:"";filter:blur(13px);pointer-events:none;z-index:-1;background:radial-gradient(#3d2b1f52,#3d2b1f14 55%,#3d2b1f00);height:24px;position:absolute;bottom:-16px;left:7%;right:7%}.mobile-pageflip.stf__parent,.mobile-pageflip .stf__parent{touch-action:pan-y;border-radius:6px;overflow:hidden;box-shadow:0 22px 44px #3c261238,inset 0 2px #ffffffb3,0 0 0 1px #704c2629}.mobile-pageflip canvas{border-radius:6px}.mobile-back-cover-actions{z-index:12;box-sizing:border-box;pointer-events:none;justify-content:center;align-items:center;padding:6% 8%;display:flex;position:absolute;inset:0;container-type:inline-size}.mobile-back-cover-actions .actions-grid{width:100%;height:100%}.mobile-back-cover-actions .action-btn{pointer-events:auto}.flipbook-nav{z-index:1;align-items:center;gap:20px;margin-top:22px;display:flex;position:relative}.nav-btn{-webkit-backdrop-filter:blur(8px);cursor:pointer;color:#3d2b1f;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#f9f4ecd1;border:1px solid #b8956a80;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;padding:0;transition:all .3s;display:flex}.nav-btn:hover:not(:disabled){background:#f9f4ecf5;border-color:#b8956a;transform:scale(1.08)}.nav-btn:disabled{opacity:.35;cursor:default;pointer-events:none;transform:none}.nav-btn svg{width:14px;height:14px}.page-counter{letter-spacing:.2em;color:#3d2b1fbf;text-align:center;min-width:60px;font-family:Cormorant Garamond,serif;font-size:12px;font-weight:400}.flipbook-hint{z-index:1;letter-spacing:.22em;text-transform:uppercase;color:#3d2b1f80;text-align:center;margin-top:12px;font-family:Cormorant Garamond,serif;font-size:10px;position:relative}.back-btn{z-index:200;-webkit-backdrop-filter:blur(8px);color:#3d2b1f;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#f9f4ece0;border:1px solid #b8956a73;padding:8px 16px;font-family:Cormorant Garamond,serif;font-size:11px;transition:all .3s;position:fixed;top:18px;left:18px;box-shadow:0 2px 12px #3d2b1f1a}.back-btn:hover{background:#f9f4ecf5;border-color:#b8956a}.mobile-page-actions{display:none}@media (width<=767px){.flipbook-scene{justify-content:flex-start;padding:68px 14px 18px}.flipbook-scene:before{background:radial-gradient(#0000 58%,#50371e24 100%)}.flipbook-wrapper{margin-top:4px}.flipbook-nav{gap:18px;min-height:44px;margin-top:16px}.nav-btn{background:#f9f4ecf0;width:48px;height:48px}.nav-btn:hover:not(:disabled){transform:none}.nav-btn svg{width:18px;height:18px}.page-counter{letter-spacing:.14em;min-width:76px;font-size:13px}.flipbook-hint{letter-spacing:.16em;margin-top:6px;font-size:9px}.back-btn{top:max(12px, env(safe-area-inset-top));letter-spacing:.13em;padding:10px 13px;font-size:10px;left:12px}.mobile-page-actions{z-index:3;pointer-events:none;display:block;position:fixed;inset:0}.mobile-page-action{color:#3d2b1fb8;opacity:.72;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#f9f4ec57;border:0;border-radius:8px;justify-content:center;align-items:center;width:46px;height:96px;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.mobile-page-action--prev{left:4px}.mobile-page-action--next{right:4px}.mobile-page-action:disabled{opacity:0;pointer-events:none}.mobile-page-action svg{width:22px;height:22px}}@media (height<=700px) and (width<=767px){.flipbook-scene{padding-top:58px}.flipbook-nav{min-height:42px;margin-top:10px}.nav-btn{width:44px;height:44px}.flipbook-hint{display:none}}.audio-control{z-index:200;flex-direction:column;align-items:center;gap:5px;display:flex;position:fixed;top:18px;right:18px}.audio-btn{-webkit-backdrop-filter:blur(8px);cursor:pointer;background:#f9f4ece0;border:1px solid #b8956a8c;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:all .35s;display:flex;box-shadow:0 2px 12px #3d2b1f1f}.audio-btn:hover{background:#f9f4ecf5;border-color:#b8956ae6;transform:scale(1.06);box-shadow:0 4px 18px #3d2b1f2e}.audio-btn svg{color:#3d2b1f;width:16px;height:16px}.audio-label{letter-spacing:.18em;text-transform:uppercase;color:#8b7355;white-space:nowrap;font-family:Cormorant Garamond,serif;font-size:9px}@keyframes ripple{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}.audio-btn.playing:after{content:"";border:1px solid #b8956a80;border-radius:50%;animation:2s ease-out infinite ripple;position:absolute;inset:0}
