@font-face{font-family:InvitationArmenian;src:url('assets/NotoSerifArmenian.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{color-scheme:dark;--gold:#ecd39a;--light:#fff4d6;--muted:#ddcaa4;--line:#e9ce8f66}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px;scrollbar-width:none}body{margin:0;background:#916530;color:var(--light);font:14px/1.9 InvitationArmenian,Georgia,serif;scrollbar-width:none}body::-webkit-scrollbar{display:none}body.cover-active{overflow:hidden}[hidden]{display:none!important}button,input,textarea{font:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #fff0b7;outline-offset:6px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}h2{font-size:clamp(27px,5vw,44px);line-height:1.65;text-wrap:balance;color:#f5dfac;margin-bottom:25px;text-shadow:0 2px 15px #3f250c66}h2 em{font-weight:400;font-size:.85em;color:#fff0c7}p{font-size:13px}.eyebrow{font-size:9px;letter-spacing:1.6px;line-height:2;color:#e8ca87;margin:0 0 20px}
/* The champagne still life stays fixed for the entire scroll journey. */
.champagne-backdrop{position:fixed;inset:0;z-index:0;overflow:hidden;background:#916530;pointer-events:none}
.champagne-backdrop::before{content:'';position:absolute;inset:-25px;background:url('assets/champagne-scene.png') center/cover no-repeat;filter:blur(25px);opacity:.55}
.champagne-backdrop img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.94}
.champagne-backdrop::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#86561b38,#4d2c0e88 45%,#4d2c0e99);pointer-events:none}
.champagne-bubbles{position:fixed;inset:0;z-index:1;display:block;width:100%;height:100%;pointer-events:none}.cover-active .champagne-bubbles{visibility:hidden}
/* Cover photograph, paper, ribbon and bow are separate opening layers. */
.gift-cover{position:fixed;inset:0;z-index:30;overflow:hidden;background:#d8c5a8;transition:opacity 1s ease}
.open-gift{position:relative;display:block;width:100%;height:100svh;border:0;padding:0;background:#d8c5a8;perspective:1700px;isolation:isolate;text-align:center}
.cover-photo{position:absolute;inset:0 auto 0 0;width:52%;overflow:hidden;background:#9f783c;transition:transform 2.1s ease .7s,opacity 2.1s ease .7s}
.cover-photo::before{content:'';position:absolute;inset:-20px;background:url('assets/champagne-cover.png') center/cover no-repeat;filter:blur(12px);opacity:.7}
.cover-photo img{display:block;position:relative;width:100%;height:100%;object-fit:cover;object-position:center}
.cover-card{position:absolute;inset:0 0 0 52%;background:linear-gradient(100deg,#c5b294,#d7c6ab 10%,#dbcbb2);box-shadow:-3px 0 5px #71552522;transform-origin:right;backface-visibility:hidden;transition:transform 2.4s cubic-bezier(.22,.61,.36,1) .4s,opacity 1.5s ease 1s}
.ribbon-band{position:absolute;z-index:3;left:0;right:0;top:calc(50% - 17px);height:34px;background:linear-gradient(0deg,#ad751d,#f2d47a 15%,#ffe49b 38%,#e0ad40 75%,#f8df97 92%,#b77c21);border-block:1px solid #bc8d39;box-shadow:0 4px 5px #624a2233,inset 0 1px #fff2bf88;transition:transform 1.8s cubic-bezier(.4,0,.2,1) .2s,opacity 1.4s ease .3s}
.ribbon-bow{--bow-width:clamp(160px,42vw,260px);position:absolute;z-index:4;width:var(--bow-width);height:calc(var(--bow-width)*1.25);left:calc(64% - var(--bow-width)/2);top:calc(50% - var(--bow-width)*.4);filter:drop-shadow(0 5px 4px #6e501c44);transition:opacity 1s ease,transform 1.3s ease;pointer-events:none}
.ribbon-bow img{display:block;width:100%;height:100%;object-fit:contain}
.open-caption{position:absolute;bottom:6%;left:56%;right:4%;z-index:5;color:#857151;font-size:9px;line-height:2;transition:opacity .6s ease}
.opening .ribbon-bow{opacity:0;transform:translateY(24px) rotate(8deg) scale(1.05)}.opening .ribbon-band{transform:translateX(-110%);opacity:0}.opening .cover-card{transform:rotateY(105deg);opacity:0}.opening .cover-photo{transform:translateX(-8%);opacity:0}.opening .open-caption{opacity:0}.gift-cover.leaving{opacity:0;pointer-events:none}
/* Transparent sections keep the champagne photo visible behind every page. */
#invitation{position:relative;z-index:2;width:100%}.page-section{position:relative;isolation:isolate;text-align:center;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:85px 24px;overflow:hidden}
.page-section::before{content:'';position:absolute;left:calc(50% - 55px);top:0;width:110px;height:1px;background:linear-gradient(90deg,transparent,#f0dca477,transparent)}
.section-inner{width:100%;max-width:720px;margin:0 auto}
.hero{padding-top:50px;padding-bottom:35px;min-height:100svh}.hero::before{display:none}.hero .section-inner{max-width:760px}
h1{margin:0 auto 15px}h1>span{display:block;font-size:clamp(35px,9vw,70px);font-style:italic;color:#f1d99d;line-height:1.7;text-shadow:0 2px 10px #4a2a0a99}h1>strong{display:block;font:clamp(95px,26vw,155px)/1.1 Georgia,serif;color:#fff1cb;font-weight:400;text-shadow:0 3px 15px #4a2a0a55;margin:0 auto 20px;letter-spacing:1px}
.hero .eyebrow{font-size:9px;margin-bottom:5px}.hero-event{font-size:clamp(21px,5.2vw,34px);color:#f0d7a0;line-height:1.8;max-width:650px;margin:0 auto 15px;text-wrap:balance;text-shadow:0 2px 8px #3b240d66}.company-name{font-style:italic;font-size:clamp(22px,5vw,35px);color:#f9e9bd;line-height:1.9;overflow-wrap:anywhere;margin:0 auto 25px;text-shadow:0 2px 12px #3b240d55}
.date-plate{max-width:400px;margin:32px auto 22px}.date-plate>span{display:block;font-size:12px;color:#edd5a5;line-height:1.8}.date-plate>div{display:grid;grid-template-columns:1fr 75px 1fr;align-items:center;gap:9px}.date-plate>div>span{border-block:1px solid #eed79a77;padding:10px 2px;font-size:10px;line-height:1.9;color:#f1dfb9}.date-plate strong{font:56px/1.1 Georgia,serif;color:#ffedb6;font-weight:400}
.scroll-cue{display:flex;flex-direction:column;align-items:center;gap:10px;width:max-content;margin:26px auto 0;padding:0 20px;color:#e8cc8f;font-size:9px;letter-spacing:.7px}.scroll-cue svg{width:15px;height:30px;fill:none;stroke:currentColor;stroke-width:.9}
.prose{font-size:13px;line-height:2.4;color:#f0e1c2;max-width:600px;margin:0 auto;text-shadow:0 2px 10px #43250766}.fine-rule{display:block;width:80px;height:1px;background:linear-gradient(90deg,transparent,#e7c77e,transparent);margin:26px auto 30px}.venue-details{margin-top:40px}.venue-details .eyebrow{margin-bottom:10px}.venue-details h3{font-size:29px;font-style:italic;color:#f6dfab;line-height:1.8;margin-bottom:10px}.venue-details>p:not(.eyebrow){color:#d8c6a6;font-size:12px}
.gold-button{display:inline-flex;align-items:center;justify-content:center;gap:18px;max-width:100%;min-height:47px;padding:12px 28px;border:1px solid #f3d792;border-radius:40px;background:linear-gradient(105deg,#ac772a,#f1d58d 8%,#fff0bb 18%,#d8b06a 45%,#f9e8af 78%,#bd8c3f);box-shadow:inset 0 0 0 2px #fff3bc55,0 5px 16px #37200a33;color:#684616;font-size:11px;line-height:1.8;transition:filter .2s,transform .2s}.gold-button>span{font-family:Arial,sans-serif}.gold-button:hover{filter:brightness(1.08);transform:translateY(-2px)}.gold-button:disabled{opacity:.6;cursor:wait}
.calendar{width:100%;max-width:500px;margin:30px auto 0;border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums}.calendar caption{font-size:22px;color:#f4d994;margin-bottom:24px}.calendar th{height:35px;font-size:10px;font-weight:400;color:#e0c897}.calendar abbr{text-decoration:none}.calendar td{height:56px;font:20px Georgia,InvitationArmenian,serif;color:#f2e3bd;position:relative}.calendar time{display:inline-grid;place-items:center;min-width:35px;min-height:35px}.calendar .event-date time{border:1px solid #f4d17c;border-radius:50%;background:radial-gradient(circle at 30% 20%,#fff0b6aa,#dcad3d88);color:#fff7dc;box-shadow:0 0 15px #ffe3a533}.calendar-note{font-size:11px;color:#e8d2a5;margin-top:27px}
.countdown{display:flex;justify-content:center;align-items:flex-start;gap:10px;margin:35px auto}.countdown>div{min-width:43px}.countdown strong{display:block;font:42px/1.2 Georgia,serif;color:#fff0bc;font-weight:400;font-variant-numeric:tabular-nums}.countdown span{display:block;font-size:10px;color:#dfc79a;margin-top:8px}.countdown b{font:26px/1.6 Georgia,serif;font-weight:400;color:#dcbb77}.countdown-caption{font-size:12px;color:#decaa4;line-height:2.2}.countdown-message{color:#ffe8b1}
.program{list-style:none;max-width:490px;margin:40px auto 0;padding:0;text-align:left}.program li{position:relative;display:grid;grid-template-columns:67px minmax(0,1fr);gap:28px;padding-bottom:35px}.program li::before{content:'';position:absolute;left:81px;top:13px;bottom:-13px;width:1px;background:linear-gradient(#dfbe77aa,#dfbe7755)}.program li:last-child::before{display:none}.program li::after{content:'';position:absolute;left:78px;top:11px;width:7px;height:7px;border-radius:50%;background:#f3d58e;box-shadow:0 0 8px #ffe6a855}.program time{font:italic 23px/1.7 Georgia,serif;color:#ffe2a1}.program h3{font-size:14px;line-height:1.9;color:#fff0c8;margin:0 0 7px}.program p{font-size:11px;line-height:1.9;color:#ddc8a0;margin:0}
.dress-description{font-size:15px;line-height:2;color:#ecd5aa;max-width:550px;margin:0 auto;text-wrap:balance}.dress-colors{list-style:none;padding:0;margin:35px auto 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:410px;gap:20px}.dress-colors li{display:flex;flex-direction:column;align-items:center;gap:18px;min-width:0}.swatch{width:65px;aspect-ratio:1;border-radius:50%;border:4px solid #956a35;outline:1px solid #f5d78a88;background:linear-gradient(130deg,#ffffff33,transparent 60%,#0002),var(--color);box-shadow:0 5px 15px #38210833}.dress-colors li>span:last-child{font-size:11px;color:#ecd5a9;line-height:1.9}.soft-note{font-size:11px;color:#d5bd94;line-height:2.1;margin:30px auto 0;max-width:460px}
.rsvp-intro{font-size:13px;color:#e6cea5;margin-bottom:28px}.rsvp-section form{max-width:470px;margin:0 auto;text-align:left}.preview-note{font-size:10px;line-height:1.9;color:#d7bd90;margin-bottom:24px}.rsvp-section label,.rsvp-section legend{font-size:12px;line-height:1.8;color:#f1d9ac;display:block;margin-bottom:9px}.rsvp-section input:not([type=radio]),.rsvp-section textarea{display:block;width:100%;min-height:48px;padding:12px 13px;border:1px solid #ecd09166;border-radius:3px;background:#3f240b44;color:#fff1ce;margin:0 0 23px;font-size:13px;line-height:1.8}.rsvp-section textarea{resize:vertical}.rsvp-section input::placeholder,.rsvp-section textarea::placeholder{font-size:11px;color:#d2b88c}.rsvp-section fieldset{border:0;padding:0;min-width:0;margin:0 0 23px}.attendance-options{display:grid;gap:10px}.rsvp-section .attendance-options label{display:flex;align-items:center;gap:9px;padding:12px 11px;border:1px solid #ecd09155;border-radius:3px;margin:0;font-size:11px}.attendance-options input{accent-color:#dfb96a;width:15px;height:15px;flex-shrink:0;margin:0}.attendance-options label:has(input:checked){border-color:#f2d392;background:#d6ab4c22}.optional{font-size:10px;color:#d3ba8a}#submit-rsvp{width:100%}#form-status{font-size:12px;line-height:1.9;color:#ffe9b3;margin:18px 0 0}#form-status.error{color:#ffcdc0}
.thank-you .company-name{margin-top:35px}.thank-you h2{font-style:italic}.noscript{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:30px;background:#b58b52;color:#fff3d0}
/* IntersectionObserver adds/removes this class on entry in either scroll direction. */
.js-reveal .reveal{opacity:0;transform:translate3d(0,32px,0);transition:opacity .9s ease,transform 1.1s cubic-bezier(.22,.61,.36,1);transition-delay:var(--delay,0ms);will-change:opacity,transform}.js-reveal .reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}
@media(min-width:768px){.champagne-backdrop img{object-fit:contain}.cover-photo img{object-fit:contain}.ribbon-band{height:44px;top:calc(50% - 22px)}.ribbon-bow{--bow-width:280px}.open-caption{font-size:11px;letter-spacing:1px}.page-section{padding:100px 55px}.hero{padding-top:55px;padding-bottom:45px}.eyebrow{font-size:10px}.hero .eyebrow{font-size:11px}.hero-event{font-size:35px}.date-plate{max-width:500px;margin-top:40px}.date-plate>div{grid-template-columns:1fr 100px 1fr;gap:20px}.date-plate>div>span{font-size:13px}.date-plate strong{font-size:76px}.date-plate>span{font-size:14px}.prose{font-size:15px}.venue-details h3{font-size:36px}.calendar td{height:66px;font-size:23px}.calendar th{font-size:12px}.calendar caption{font-size:26px}.calendar time{min-width:42px;min-height:42px}.countdown{gap:24px}.countdown>div{min-width:78px}.countdown strong{font-size:65px}.countdown span{font-size:12px}.countdown b{font-size:35px}.program time{font-size:27px}.program h3{font-size:17px}.program p{font-size:12px}.swatch{width:90px}.dress-colors{max-width:480px;gap:35px}.dress-description{font-size:18px}.attendance-options{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.js-reveal .reveal{opacity:1;transform:none;will-change:auto}}
.js-reveal .reveal:focus-within{opacity:1;transform:none}
@media(min-width:768px){
 .champagne-backdrop img{width:auto;max-width:100%;left:50%;right:auto;transform:translateX(-50%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
 .cover-photo img{width:auto;max-width:100%;margin:0 auto;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
}

/* The audio control mirrors actual playback and stays above the opening cover. */
.music-button{position:fixed;right:16px;bottom:18px;z-index:40;display:grid;place-items:center;width:46px;height:46px;border:1px solid #f4d48c88;border-radius:50%;padding:12px;color:#ffe8ae;background:#5f3c17cc;box-shadow:0 3px 15px #3b230d33;backdrop-filter:blur(4px)}
.music-button svg{width:20px;height:20px;display:block}
.music-button .music-play{fill:currentColor;stroke:none}
.music-button .music-pause{display:none;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round}
.music-button[aria-pressed=true] .music-play{display:none}
.music-button[aria-pressed=true] .music-pause{display:block}
.music-button:disabled{opacity:.45;cursor:default}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(min-width:768px){.music-button{right:25px;bottom:25px}}
