:root{--paper:#eee2ca;--wine:#6c302d;--ink:#594735;--gold:#aa8752}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:22px 'EB Garamond',Georgia,serif}body.waiting{overflow:hidden}body:after{content:'';position:fixed;inset:0;pointer-events:none;z-index:30;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}h1,h2,p{margin:0}h2{font:400 clamp(38px,5vw,64px)/1.15 'Bodoni Moda',Georgia,serif}button,a{touch-action:manipulation}button{cursor:pointer;font:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--wine);outline-offset:6px}.eyebrow,.text-link,.begin,.clock span,.placeholder-label,.chapter-number,.skip,.time-note{font:400 9px/1.7 'DM Sans',sans-serif;letter-spacing:2.5px;text-transform:uppercase}.eyebrow{display:block}.names{font:400 clamp(86px,8.4vw,120px)/1.05 'Pinyon Script',cursive;color:#63372f}.names span,.names i{display:block}.names i{font:italic .35em/1.15 'Bodoni Moda',serif;color:#937349;margin:8px 0 16px}.invitation-line,.italic{font-style:italic;font-size:25px}.gate{position:fixed;inset:0;z-index:40;background:var(--paper) url('assets/heritage.png') center bottom/cover no-repeat;display:flex;justify-content:center;text-align:center;padding:clamp(30px,6vh,80px) 24px 40px;transition:opacity 1.2s,visibility 1.2s;overflow:auto}.gate.closed{opacity:0;visibility:hidden;pointer-events:none}.gate-inner{position:relative;z-index:2}.gate .eyebrow{margin:0 0 25px;color:#68503b}.gate .names{margin-bottom:24px}.gate .invitation-line{margin-bottom:24px}.begin{border-radius:11px;padding:16px 35px;min-width:190px;background:var(--wine);color:var(--paper);border:1px solid #b49462;box-shadow:0 4px 12px #50322220,inset 0 0 0 3px #ffffff08;font-size:10px;letter-spacing:2.4px}.begin:hover{background:#552521}.petals{position:absolute;inset:0;overflow:hidden;pointer-events:none}.petal{position:absolute;top:-30px;width:12px;height:19px;border-radius:75% 12% 70% 25%;background:radial-gradient(ellipse at 30% 25%,#b66d64,#80383f 55%,#51232e);opacity:0;animation:fall 13s linear infinite}.petal:nth-child(3n){background:#c3a47f}@keyframes fall{0%{transform:translate(0,-30px) rotate(0);opacity:0}10%,85%{opacity:.55}100%{transform:translate(80px,110vh) rotate(390deg);opacity:0}}main[inert],footer[inert]{visibility:hidden}.intro{text-align:center;position:relative;min-height:850px;height:100svh;padding:90px 20px 120px;background:linear-gradient(#eee2ca44,#eee2ca88 65%,var(--paper)),url('assets/heritage.png') center bottom/cover}.intro .names{margin:28px 0}.text-link{display:inline-block;background:transparent;border:0;border-bottom:1px solid #9d805b;padding:12px 0;color:var(--wine);letter-spacing:1.5px;font-size:10px}.intro .text-link{margin-top:25px}.intro-bottom{position:absolute;bottom:0;left:0;right:0}.stem{display:block;margin:20px auto 0;height:60px;width:1px;background:linear-gradient(var(--gold),transparent)}.story{height:850svh;position:relative}.story-stage{height:100svh;min-height:500px;position:sticky;top:0;overflow:hidden;background:#d4c2a1}.scenes,.scene,.story-shade{position:absolute;inset:0}.scene{opacity:0;will-change:opacity;overflow:hidden}.scene:first-child{opacity:1}.scene video{width:100%;height:100%;object-fit:cover;display:block}.wash{position:absolute;inset:-10%;background:radial-gradient(ellipse at 20% 65%,var(--a),transparent 60%),radial-gradient(ellipse at 85% 20%,var(--c),transparent 55%),linear-gradient(145deg,var(--b),var(--a));animation:breathe 20s ease-in-out infinite alternate}.wash:after{content:'';position:absolute;inset:0;background:url('assets/heritage.png') center bottom/cover;opacity:.15;filter:blur(4px)}@keyframes breathe{to{transform:scale(1.08) translate(2%,-2%)}}.story-shade{background:linear-gradient(var(--paper),transparent 18%,transparent 60%,#352d272d);pointer-events:none}.story-heading{position:absolute;top:12%;left:8%;right:8%;display:flex;justify-content:space-between;gap:20px}.chapter-copy{position:absolute;top:47%;left:8%;right:8%;text-align:center;transform:translateY(-20%);color:#51362d;text-shadow:0 1px 20px #eee2ca90}.chapter-copy h2{font-family:'Pinyon Script',cursive;font-size:clamp(58px,8vw,105px);margin:22px 0 12px}.chapter-copy p{font-size:clamp(20px,2.5vw,27px);font-style:italic;max-width:600px;margin:auto}.placeholder-label{display:block;margin-top:38px;font-size:8px;letter-spacing:1.5px;opacity:.7}.story-bottom{position:absolute;bottom:7%;left:8%;right:8%;text-align:center}.progress{display:flex;gap:8px;max-width:320px;margin:0 auto 24px}.progress a{height:18px;flex:1;border-top:1px solid #654b3940;position:relative}.progress a.active{border-color:#654b39}.story-bottom .eyebrow{font-size:8px}.skip{display:inline-block;margin-top:14px;font-size:8px;letter-spacing:1px;text-decoration:underline;text-underline-offset:5px}.section{text-align:center;padding:100px 24px}.reveal{background:linear-gradient(#d4c2a1,var(--paper) 130px);padding-top:130px}.flourish{width:260px;height:80px;object-fit:contain;margin:0 auto 28px;display:block}.section>.eyebrow{margin-bottom:22px}.reveal h2{font-family:'Pinyon Script',cursive;font-size:clamp(54px,7vw,85px);margin-bottom:20px}.scratch-card{position:relative;width:min(540px,100%);height:270px;margin:40px auto 20px;background:#e4c796;box-shadow:0 12px 40px #75593216;clip-path:polygon(1% 2%,15% 0,30% 2%,46% 0,65% 2%,82% 0,99% 2%,100% 98%,85% 100%,65% 98%,42% 100%,26% 98%,0 100%)}.date-content{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:20px}.date-content strong{font:400 clamp(30px,5vw,43px) 'Bodoni Moda',serif;color:#582b29}.date-content .eyebrow{font-size:8px}.date-content .location{letter-spacing:2px;font-size:20px}.date-content em{font-size:23px}#scratch{position:absolute;inset:0;width:100%;height:100%;touch-action:none;transition:opacity .8s}#scratch.revealed{opacity:0;pointer-events:none}.reveal-status{font-style:italic;min-height:28px;font-size:18px;margin-top:12px}.countdown{background:linear-gradient(var(--paper),#d4ceb2 20%,#c4c5a7 55%,var(--paper));padding-block:120px}.countdown h2{font-size:clamp(30px,5vw,50px)}.clock{display:flex;justify-content:center;gap:clamp(22px,5vw,65px);margin:48px 0 30px}.clock strong{display:block;font:400 clamp(40px,7vw,75px)/1 'Bodoni Moda',serif;color:#606449}.clock span{display:block;margin-top:15px;font-size:8px;letter-spacing:1.5px}.time-note{font-size:8px;letter-spacing:1px;margin-top:18px}.closing{padding-bottom:140px}.closing .names{font-size:clamp(78px,8vw,110px);margin:30px auto}.closing .text-link{margin-top:55px}footer{text-align:center;background:linear-gradient(var(--paper),#ad8772 60px,#582b29 180px);padding:220px 20px 50px;color:#ead8ba}footer .company{font:32px 'Bodoni Moda',serif;margin:20px 0}footer>p:last-child{font-size:15px;color:#d6bd9d}@media(min-width:900px){.gate{background-size:auto 120%;background-color:#eadbbd}.gate:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#eadbbd,transparent 25%,transparent 75%,#eadbbd);pointer-events:none}}@media(max-width:600px){.gate{padding:clamp(30px,7vh,65px) 22px 30px}.gate .names{font-size:88px}.gate .names i{font-size:32px}.gate .eyebrow{font-size:8px;letter-spacing:2.3px;margin-bottom:27px}.gate .invitation-line{font-size:22px}.intro{min-height:780px;padding-top:65px}.intro .names{font-size:88px}.section{padding-inline:22px}.scratch-card{height:240px}.clock{gap:22px}.chapter-copy{left:6%;right:6%}.chapter-copy h2{line-height:1.05}.story-heading{top:10%}}@media(max-height:650px){.gate{padding-top:22px}.gate .names{font-size:65px}.gate .eyebrow{margin-bottom:15px}.gate .invitation-line{font-size:20px}.gate .names{margin-bottom:16px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before{animation:none!important;transition:none!important}.petals{display:none}}

/* One-time petal shower after the scratch coating has fully faded. */
.reveal-petal-shower{position:fixed;inset:0;z-index:35;overflow:hidden;pointer-events:none;perspective:700px}
.reveal-petal-shower i{position:absolute;top:-30px;display:block;width:var(--size);height:calc(var(--size)*1.5);border-radius:80% 12% 70% 25%;background:radial-gradient(ellipse at 25% 20%,#ffffff66,transparent 65%),var(--petal-color);box-shadow:inset -2px -2px 3px #511c3026;opacity:0;animation:reveal-petal-fall var(--duration) var(--delay) linear both}
@keyframes reveal-petal-fall{0%{opacity:0;transform:translate3d(0,-25px,0) rotate(0) rotateY(0)}8%{opacity:.9}45%{transform:translate3d(calc(var(--drift)*-.3),48vh,0) rotate(calc(var(--spin)*.45)) rotateY(140deg)}85%{opacity:.85}100%{opacity:0;transform:translate3d(var(--drift),110vh,0) rotate(var(--spin)) rotateY(300deg)}}
@media(prefers-reduced-motion:reduce){.reveal-petal-shower{display:none}}
