@font-face{font-family:'Instrument Serif';src:url('assets/fonts/instrument-serif.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'Instrument Serif';src:url('assets/fonts/instrument-serif-italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:'Instrument Sans';src:url('assets/fonts/instrument-sans.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--emerald:#071e19;--gold:#d8bd7d;--paper:#f4ecd9;--ink:#343b2f;--bronze:#8e7345}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--emerald);color:var(--paper);font-family:'Instrument Serif',serif;overflow:hidden}body.opened{overflow:auto}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;font:inherit}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}.icon{width:25px;height:25px;flex-shrink:0;vertical-align:middle}.eyebrow,h3,.page-heading,.button,.scroll-cue,.countdown span,#open,.gate-date,.gate-note,#action-status{font-family:'Instrument Sans',sans-serif;font-weight:400;font-size:10px;letter-spacing:.22em;line-height:1.6}.eyebrow{margin:0}.gate{position:fixed;inset:0;z-index:20;display:grid;place-items:center;perspective:1300px;overflow:hidden;background:transparent}.gate[hidden]{display:none}.door{position:absolute;top:0;bottom:0;width:50.1%;background:radial-gradient(ellipse at 100% 50%,#244c39,#071e19 80%);border:1px solid #d8bd7d4a;transition:transform 1.65s cubic-bezier(.65,0,.15,1),opacity 1.4s;z-index:2;backface-visibility:hidden}.door-left{left:0;transform-origin:left center}.door-right{right:0;transform-origin:right center;background:radial-gradient(ellipse at 0 50%,#244c39,#071e19 80%)}.door-panel{position:absolute;inset:24px;border:1px solid #d8bd7d30;border-radius:48% 48% 0 0}.door-panel:after{content:'';position:absolute;inset:14px;border:1px solid #d8bd7d16;border-radius:inherit}.door:after{content:'';position:absolute;top:50%;width:3px;height:75px;background:linear-gradient(#73603f,#f5dea5,#73603f);box-shadow:0 0 10px #d8bd7d66}.door-left:after{right:18px}.door-right:after{left:18px}.gate-content{z-index:4;text-align:center;padding:30px 22px;transition:opacity .45s,transform .65s}.gate-content>.eyebrow{color:var(--gold);font-size:9px}.gate-monogram{font-size:92px;letter-spacing:-.12em;color:var(--gold);margin:30px auto}.gate-monogram span{font-style:italic;font-size:.6em;margin:0 9px}.gate-arabic{font-size:26px;color:var(--gold);margin:25px 0}.gate-names{font-size:clamp(50px,6vw,80px);margin:20px 0}.gate-names em{color:var(--gold);font-size:.65em}.gate-date{font-size:9px;color:#c3c9b4}.gate-note{font-size:10px;letter-spacing:.04em;color:#abb8a5;margin-top:26px}#open{display:flex;align-items:center;gap:16px;color:var(--gold);border:0;background:none;margin:35px auto 0;padding:14px;min-height:70px;font-size:10px}.seal{height:56px;width:56px;border:1px solid #d8bd7d88;border-radius:50%;display:grid;place-items:center;background:radial-gradient(at 25% 15%,#b1965a44,#142f24);box-shadow:0 0 0 5px #d8bd7d08}#open:hover .seal{box-shadow:0 0 30px #d8bd7d55}#open>.icon{width:17px}.door-light{position:absolute;inset:-20%;background:radial-gradient(ellipse at center,#fffdf0 5%,#ffe6aa 25%,#fff8dc00 65%);opacity:0;z-index:3;pointer-events:none;transform:scaleX(.02)}.opening .door-left{transform:rotateY(-105deg) translateX(-20%)}.opening .door-right{transform:rotateY(105deg) translateX(20%)}.opening .gate-content{opacity:0;transform:scale(1.08);pointer-events:none}.opening .door-light{animation:unveil-light 1.7s ease-in-out both}@keyframes unveil-light{0%{opacity:0;transform:scaleX(.02)}25%{opacity:.95}50%{opacity:1;transform:scaleX(1)}100%{opacity:0;transform:scale(1.25)}}main{position:relative;padding:25px 20px 55px;min-height:100svh;background:radial-gradient(ellipse at top,#214333,#071e19 65%)}.page-heading{display:flex;justify-content:space-between;max-width:1080px;margin:0 auto 25px;color:#c9bd94;font-size:8px}.invitation-card{position:relative;max-width:760px;margin:auto;background:radial-gradient(ellipse at 15% 10%,#fffdf4 0,#f4ecd9 53%,#e8dcc2 100%);color:var(--ink);padding:65px 42px 40px;box-shadow:0 24px 100px #0005;overflow:hidden}.invitation-card:before{content:'';position:absolute;inset:0;opacity:.055;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Cpath fill='%237f704a' filter='url(%23n)' d='M0 0h140v140H0z'/%3E%3C/svg%3E")}.card-border{position:absolute;inset:17px;border:1px solid #a58c5f9c;border-radius:43% 43% 25px 25px / 10% 10% 25px 25px;pointer-events:none}.card-border:after{content:'';position:absolute;inset:5px;border:1px solid #a58c5f38;border-radius:inherit}.card-content{position:relative;text-align:center}.invocation p{font-size:32px;line-height:1.6;color:#90794d;margin:0 0 25px}.families .eyebrow{font-size:10px;letter-spacing:.35em}.family-name{font-size:clamp(24px,3.5vw,33px);font-style:italic;line-height:1.22;margin:9px auto}.joining{display:flex;align-items:center;gap:15px;justify-content:center;margin:13px 0!important}.joining:before,.joining:after{content:'';height:1px;width:80px;background:#a58c5f66}.invitation-label{margin-top:25px;letter-spacing:.3em}.divider{display:flex;align-items:center;justify-content:center;gap:10px;margin:12px auto;color:var(--bronze)}.divider:before,.divider:after{content:'';height:1px;width:120px;max-width:26%;background:linear-gradient(90deg,transparent,#9e855f)}.divider:after{transform:rotate(180deg)}.divider .icon{width:24px;height:24px}.occasion>.eyebrow{letter-spacing:.35em}h1{font-weight:400;font-style:italic;font-size:clamp(58px,8.8vw,100px);line-height:1.1;letter-spacing:-.045em;color:#8c6c37;margin:3px -10px 7px}.occasion .divider{margin:7px auto 13px}.couple{margin:18px auto 24px}.couple h2{font-size:clamp(30px,4.5vw,45px);font-weight:400;line-height:1.14;letter-spacing:-.025em;margin:0}.couple h2 span{font-size:.76em;white-space:nowrap}.honour{font-size:18px;font-style:italic;line-height:1.4;margin:7px 0}.couple-and{display:flex;align-items:center;justify-content:center;gap:15px;margin:4px 0;color:var(--bronze)}.couple-and em{font-size:40px;line-height:1}.couple-and span{width:80px;height:1px;background:#a58c5f66}.details{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid #a58c5f66;padding-top:19px;margin-top:20px}.details>div{padding:0 10px}.details>div+div{border-left:1px solid #a58c5f66}.details .icon{color:var(--bronze);width:30px;height:30px;margin-bottom:5px}h3{font-size:10px;letter-spacing:.3em;margin:3px 0 6px}.details p{font-size:21px;font-style:italic;line-height:1.2;margin:0}.details small{display:block;font-size:17px;font-style:italic;line-height:1.3}.rsvp .divider{margin:18px auto 10px}.rsvp h3{font-size:12px;letter-spacing:.45em}.rsvp p{font-size:21px;line-height:1.25;margin:0}.rsvp a{text-decoration:none}.rsvp a:hover{text-decoration:underline}.floating-icons{position:absolute;inset:0;overflow:hidden;pointer-events:none}.float{position:absolute;width:65px;height:65px;color:#d8bd7d33;animation:float 8s ease-in-out infinite}.float-0{top:150px;left:4%}.float-1{top:410px;right:5%;width:40px}.float-2{top:700px;left:6%}.float-3{top:60px;right:7%;width:45px}.float-4{top:1060px;right:7%}.float-5{bottom:100px;left:4%}.float-6{top:1000px;left:3%;width:35px}.float-7{bottom:150px;right:4%}@keyframes float{50%{transform:translateY(-12px) rotate(4deg)}}.scroll-cue{display:flex;align-items:center;justify-content:center;gap:15px;max-width:760px;margin:26px auto 0;color:var(--gold);font-size:8px;letter-spacing:.16em;text-decoration:none}.scroll-cue .icon{height:21px;width:21px;animation:scroll-hint 2.5s ease-in-out infinite}@keyframes scroll-hint{50%{transform:translateY(5px)}}.guest-tools{position:relative;max-width:650px;text-align:center;margin:35px auto 0;padding-top:15px}.motif-trio{display:flex;justify-content:center;align-items:center;gap:30px;color:#d8bd7d99;margin-bottom:26px}.motif-trio .icon{width:35px;height:35px}.guest-tools>.eyebrow{color:var(--gold);font-size:9px}.countdown{display:flex;gap:32px;justify-content:center;margin:20px 0 25px}.countdown strong{font-weight:400;font-size:45px}.countdown span{display:block;color:#b8c0ab;font-size:8px}.actions{display:flex;justify-content:center;gap:12px}.button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 20px;border:1px solid #d8bd7d66;background:transparent;color:var(--gold);text-decoration:none;font-size:9px;letter-spacing:.12em;transition:background .25s}.button:hover{background:#d8bd7d16}.button .icon{width:19px;height:19px}#action-status{min-height:15px;font-size:10px;letter-spacing:0;color:var(--gold)}.closing-note{font-size:22px;font-style:italic;color:#c5cbb9;margin:30px 0 20px}.card-row{opacity:0;transform:translateY(20px);transition:opacity .9s var(--delay,0ms),transform 1.1s cubic-bezier(.16,1,.3,1) var(--delay,0ms)}.card-row.visible{opacity:1;transform:none}.card-row.visible .icon{stroke-dasharray:120;stroke-dashoffset:0;animation:draw-line 1.5s both}@keyframes draw-line{from{stroke-dashoffset:120}to{stroke-dashoffset:0}}.skip{position:fixed;z-index:30;left:15px;top:-70px;background:var(--paper);color:var(--emerald);padding:12px}.skip:focus{top:15px}#background-music{display:none}
@media(max-width:800px){main{padding:17px 13px 40px}.page-heading{font-size:7px;margin-bottom:17px}.float{opacity:.25}.invitation-card{padding:45px 24px 30px}.invocation p{font-size:27px;margin-bottom:22px}.family-name{font-size:29px}.families .eyebrow,.occasion>.eyebrow,.invitation-label{font-size:9px;letter-spacing:.23em}h1{font-size:clamp(55px,11vw,85px);margin:9px -8px}.couple h2{font-size:clamp(29px,6vw,43px)}.couple h2 span{display:block;font-size:.72em;margin-top:5px}.honour{font-size:16px;max-width:350px;margin:7px auto}.details>div{padding:0 6px}.details p{font-size:18px}.details small{font-size:15px}.details .icon{width:25px;height:25px}.details h3{font-size:8px;letter-spacing:.18em}.rsvp p{font-size:20px}.actions{flex-wrap:wrap}.gate-names{font-size:55px}.gate-monogram{font-size:80px}.gate-arabic{font-size:23px}.door-panel{inset:13px}.door-panel:after{inset:8px}.card-border{inset:10px}.scroll-cue{font-size:7px;gap:10px}.closing-note{font-size:21px}}
@media(max-width:380px){.invitation-card{padding-left:18px;padding-right:18px}.family-name{font-size:26px}.couple h2{font-size:29px}.details p{font-size:16px}.details small{font-size:13px}.honour{font-size:15px}.countdown{gap:22px}.countdown strong{font-size:38px}.gate-names{font-size:46px}.invocation p{font-size:24px}h1{font-size:52px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.card-row{opacity:1;transform:none}.door-light{display:none}}
/* Full-height editorial chapters continue below the unchanged invitation card. */
.story-section,.celebration-section,.closing-section{position:relative;margin-left:-20px;margin-right:-20px;padding:110px max(7vw,24px);min-height:85svh}.story-section{margin-top:70px;text-align:center;background:var(--paper);color:var(--emerald)}.story-frame{max-width:1020px;margin:auto;padding:75px 30px;border:1px solid #9e855b55;outline:1px solid #9e855b22;outline-offset:9px}.story-section .eyebrow{color:#776340}.story-section h2,.celebration-section h2,.closing-section h2{font-size:clamp(54px,6.5vw,92px);font-weight:400;line-height:1.05;letter-spacing:-.025em;margin:25px 0 30px}.story-section h2 em{color:#8b6d35}.story-copy{font-size:24px;line-height:1.65;max-width:540px;margin:24px auto;color:#425348}.story-rule{width:85px;height:1px;background:#ad915a;margin:35px auto}.story-section .motif-trio{color:#967a49;margin-top:42px}.chapter-next{display:inline-flex;align-items:center;gap:14px;font:9px/1.6 'Instrument Sans',sans-serif;letter-spacing:.18em;text-decoration:none}.chapter-next .icon{width:18px;height:18px}.chapter-number{position:absolute;bottom:24px;left:7%;font:8px 'Instrument Sans',sans-serif;letter-spacing:.2em;opacity:.55}.celebration-section{background:#0b281f;padding:120px 10% 90px}.celebration-grid{max-width:1150px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:10%}.celebration-section .eyebrow,.closing-section .eyebrow{color:var(--gold)}.celebration-section h2 em,.closing-section h2 em{color:var(--gold)}.city{font-size:22px;font-style:italic;color:#b4c0ab}.large-date{display:flex;align-items:center;gap:30px;font-size:155px;color:var(--gold);line-height:1;margin:35px 0}.large-date span{font:10px/2 'Instrument Sans',sans-serif;letter-spacing:.2em;border-left:1px solid #d8bd7d44;padding:18px 0 18px 25px}.event-line{display:flex;gap:22px;border-bottom:1px solid #d8bd7d44;padding:25px 0}.event-line>span{font:10px 'Instrument Sans',sans-serif;color:#9eaf96;padding-top:5px}.event-line h3{font-size:9px;color:var(--gold);letter-spacing:.22em}.event-line p{font-size:29px;line-height:1.3;margin:12px 0 5px}.event-line small{font:12px/1.7 'Instrument Sans',sans-serif;color:#bac4b2}.event-column .actions{justify-content:flex-start;flex-wrap:wrap;margin-top:30px}.celebration-countdown{max-width:1150px;margin:65px auto 0;border-top:1px solid #d8bd7d44;padding-top:50px;text-align:center}.celebration-countdown .countdown{gap:45px;margin-top:25px}.celebration-countdown .countdown strong{font-size:62px}.closing-section{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(ellipse at center,#173c2f,#061b16 72%);margin-bottom:-55px}.closing-monogram{font-size:75px;letter-spacing:-.12em;color:var(--gold);margin-bottom:35px}.closing-monogram span{font-size:.65em;font-style:italic;margin:0 8px}.closing-section h2{font-size:clamp(50px,5.5vw,80px)}.signature{font-size:38px;font-style:italic;color:var(--gold);margin:20px 0 25px}.closing-section .chapter-next{color:#b8c3ad}.scroll-reveal{opacity:0;transform:translateY(30px);transition:opacity 1s var(--delay,0ms),transform 1.2s cubic-bezier(.16,1,.3,1) var(--delay,0ms)}.scroll-reveal.visible{opacity:1;transform:none}
@media(max-width:800px){.story-section,.celebration-section,.closing-section{margin-left:-13px;margin-right:-13px;min-height:85svh;padding:80px 8%}.story-section{margin-top:50px}.story-frame{padding:55px 18px}.story-section h2{font-size:52px}.story-copy{font-size:22px;line-height:1.65}.celebration-grid{grid-template-columns:1fr;gap:25px}.celebration-section h2{font-size:68px}.large-date{font-size:125px}.event-line p{font-size:27px}.event-column .actions{display:grid}.celebration-countdown{margin-top:40px;padding-top:38px}.celebration-countdown .countdown{gap:27px}.celebration-countdown .countdown strong{font-size:46px}.closing-section{margin-bottom:-40px}.closing-section h2{font-size:49px}.closing-monogram{font-size:65px}.signature{font-size:34px}}
@media(max-width:360px){.story-section h2{font-size:46px}.celebration-section h2{font-size:60px}.closing-section h2{font-size:43px}.celebration-countdown .countdown{gap:21px}}
@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;transform:none;transition:none}}
/* Invitation hierarchy: the couple leads, followed by the occasion and families. */
.family-name{font-size:clamp(23px,2.8vw,29px);font-style:normal;line-height:1.28;margin:8px auto}
.occasion h1{font-size:clamp(54px,7.3vw,82px);margin-top:7px;margin-bottom:9px}
.couple{margin:27px auto 30px}
.couple h2{font-size:clamp(38px,5.7vw,56px);font-weight:600;line-height:1.1;letter-spacing:-.02em;color:#172e23}
.couple h2 span{display:block;font-size:.58em;font-weight:400;letter-spacing:0;margin-top:8px;color:#4c4b37}
.honour{font-size:18px;line-height:1.45;max-width:500px;margin:10px auto}
.couple-and{margin:14px 0}
@media(max-width:800px){
 .family-name{font-size:25px;line-height:1.25}
 .occasion h1{font-size:clamp(49px,10.4vw,76px)}
 .couple h2{font-size:clamp(36px,8.6vw,52px);line-height:1.12}
 .couple h2 span{font-size:.60em;margin-top:8px}
 .honour{font-size:15px;max-width:320px;margin:10px auto}
 .couple{margin-top:25px;margin-bottom:27px}
}
@media(max-width:380px){.family-name{font-size:23px}.occasion h1{font-size:47px}.couple h2{font-size:34px}.honour{font-size:14px}}
.couple{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}
.couple h2{width:100%;max-width:650px;margin-left:auto;margin-right:auto;text-align:center;text-wrap:balance}
.couple .honour,.couple-and{margin-left:auto;margin-right:auto;text-align:center}
