@import url('https://fonts.googleapis.com/css2?family=Allura&family=Cormorant+Garamond:wght@400;500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--ink:#54484a;--soft:#847575;--rose:#bd999f;--pale:#f7f2ed;--pearl:#fffefa;--sage:#a6b2a1;--line:#e4d6d2;--serif:'Cormorant Garamond',Georgia,serif;--script:'Allura','Brush Script MT',cursive;--sans:'DM Sans',system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;min-width:320px;color:var(--ink);background:#fcfaf7;font-family:var(--sans);overflow-x:hidden}button,a{font:inherit}button{cursor:pointer}a{color:inherit}img{max-width:100%;height:auto}button:focus-visible,a:focus-visible{outline:3px solid #ad7182;outline-offset:4px}::selection{background:#e6d5d1;color:#554146}.js body:not(.entered){overflow:hidden}
.kicker,.eyebrow,.chapter-kicker,.chapter-count,.location-label{font-size:10px;letter-spacing:.28em;font-weight:700;text-transform:uppercase}.kicker{color:#aa8b87}.reveal{transition:transform .9s cubic-bezier(.2,.65,.25,1),opacity .9s ease}.js .reveal:not(.visible){transform:translateY(27px);opacity:0}.js .reveal.visible{transform:none;opacity:1}
/* The opening screen has no session-memory bypass. It is visible on EVERY page load. */
.opening-screen{z-index:500;position:relative;min-height:850px;min-height:100svh;background:radial-gradient(ellipse at 50% 33%,#fffefb 5%,#f6efed 60%,#e9dad4 100%);display:flex;flex-direction:column;align-items:center;justify-content:space-between;isolation:isolate;overflow:hidden;text-align:center;padding:29px 15px 16px}
.js .opening-screen{position:fixed;inset:0;overflow:auto;min-height:0}
.opening-screen:before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.18;background:url('lace.svg') center/132px repeat;mask-image:linear-gradient(90deg,#000,transparent 37%,transparent 63%,#000)}
.intro-topline,.intro-footer{position:relative;z-index:5;font:700 9px/1.5 var(--sans);letter-spacing:.35em;color:#9a807b}.intro-topline span{padding:0 8px;color:#bd9d9e}.intro-footer{font-size:8px;letter-spacing:.25em;margin-top:4px}
.intro-ambience{position:absolute;inset:0;overflow:hidden;pointer-events:none}.orb{position:absolute;border-radius:50%;background:radial-gradient(circle at 29% 24%,#fff 4%,#ebd7d1 50%,#c8b0ae 76%,#fff 95%);box-shadow:0 0 20px #dccac784;opacity:.42;animation:floatOrb 10s ease-in-out infinite}.orb-1{width:18px;height:18px;left:15%;top:37%}.orb-2{width:10px;height:10px;left:82%;top:20%;animation-delay:-4s}.orb-3{width:14px;height:14px;left:85%;top:72%;animation-delay:-7s}@keyframes floatOrb{0%,100%{transform:translateY(0)}50%{transform:translateY(-36px)}}
.portal-zone{width:min(490px,100%);margin:10px auto 6px;z-index:2;display:flex;flex-direction:column;align-items:center;gap:12px}
.portal-halo{position:absolute;width:min(550px,95vw);height:min(650px,74svh);border-radius:50%;background:radial-gradient(ellipse,#fff9ef 5%,#fff0e9 35%,transparent 69%);filter:blur(8px);z-index:-1;pointer-events:none}
.portal{position:relative;flex:none;width:min(410px,79vw);height:clamp(340px,60svh,560px);margin:0 auto;perspective:1000px;isolation:isolate;filter:drop-shadow(0 24px 23px #8c6c6435)}
.portal:before{content:'';position:absolute;inset:-15px;border:2px dotted #c9afa4;border-radius:49% 49% 9px 9px / 29% 29% 9px 9px;opacity:.72;pointer-events:none}
.portal-inside{position:absolute;inset:0;overflow:hidden;background:#f7e6d9;border-radius:49% 49% 10px 10px/29% 29% 10px 10px}
.portal-inside img{height:100%;width:100%;object-fit:cover;object-position:center 20%;filter:saturate(.65) sepia(.05)}.portal-inside-glow{position:absolute;inset:0;background:linear-gradient(transparent 35%,#634b4661 100%)}.portal-inside-text{position:absolute;bottom:24px;left:0;right:0;color:#fffdf5;text-shadow:0 2px 12px #462a26;font:500 39px/1 var(--serif)}.portal-inside-text i{font:43px var(--script)}
.portal-pair{position:absolute;inset:0;display:flex;transform-style:preserve-3d;border-radius:49% 49% 10px 10px/29% 29% 10px 10px;overflow:visible}
.portal-leaf{position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(114deg,#fcf8f4,#e4d3cd 61%,#d8c4bf);backface-visibility:visible;transform-style:preserve-3d;transition:transform 2.05s cubic-bezier(.26,.65,.14,1),filter 1.8s;box-shadow:inset 0 0 0 3px #eee0d6,inset 0 0 0 11px #fbf6f0,inset 0 0 0 13px #c6ae9f,0 0 18px #735b5130;overflow:hidden}
.portal-left{left:0;border-radius:98% 0 0 5px/58% 0 0 5px;transform-origin:0 50%}.portal-right{right:0;border-radius:0 98% 5px 0/0 58% 5px 0;transform-origin:100% 50%;background:linear-gradient(245deg,#fcf8f4,#e4d3cd 61%,#d8c4bf)}
.leaf-lace{position:absolute;inset:14px;border:1px solid #cbb3aa;background:url('lace.svg') center/95px repeat;opacity:.37}.leaf-embroidery{position:absolute;left:24px;right:24px;top:25%;bottom:14%;border:1px solid #bea397;border-radius:48% 48% 3px 3px/18% 18% 3px 3px}.leaf-embroidery:before{content:'';position:absolute;inset:10px;border:1px dotted #cbb3aa;border-radius:inherit}.leaf-embroidery:after{content:'❀';position:absolute;top:34%;left:0;right:0;color:#d2b8aa;font:46px var(--serif);text-shadow:0 0 8px white}
.door-beads{position:absolute;top:19%;bottom:10%;left:28px;width:4px;background:repeating-linear-gradient(to bottom,#fffbf3 0 4px,#cab5b1 4px 6px,transparent 6px 16px);border-radius:4px;filter:drop-shadow(0 1px 2px #74646150)}.portal-right .door-beads{left:auto;right:28px}.door-handle{position:absolute;top:54%;right:12px;width:9px;height:25px;border-radius:9px;background:radial-gradient(circle at 30% 20%,white,#c7a18d 55%,#9b7b6a);box-shadow:0 0 0 3px #f7e9de8c}.portal-right .door-handle{right:auto;left:12px}
.portal-arch{position:absolute;pointer-events:none;inset:-9px;border-radius:49% 49% 9px 9px / 29% 29% 9px 9px;border:4px solid #e6cfbc;box-shadow:0 0 0 2px #bda495,0 0 0 7px #fff9f2,0 0 0 9px #d0baad}.portal-arch.arch-inner{inset:7px;border:1px dotted #ceb6ac;box-shadow:none;opacity:.65}
.portal-crest{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);height:136px;width:155px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #bdac9f;border-radius:49%;background:radial-gradient(circle at 35% 28%,#fffefb,#ead9ce);box-shadow:0 0 0 6px #fffdfbba,0 0 0 8px #c9b5aa,0 10px 17px #745b5436;z-index:4;transition:opacity .2s ease,transform .75s ease}
.crest-small,.crest-date{font:700 8px var(--sans);letter-spacing:.22em;color:#9d8177}.portal-crest strong{font:500 55px var(--serif);color:#84695f;line-height:1.25}.portal-crest strong i{font:39px var(--script);font-weight:400;color:#ba9a90}
.pearl-string{position:absolute;z-index:6;top:-14px;width:110px;height:55px;pointer-events:none;border-bottom:5px dotted #faf9f5;border-radius:50%;filter:drop-shadow(0 1px 2px #97746c)}.pearl-string-left{left:-31px;transform:rotate(27deg)}.pearl-string-right{right:-31px;transform:rotate(-27deg)}
.opening-screen.opening .portal-left{transform:rotateY(-114deg);filter:brightness(.95)}.opening-screen.opening .portal-right{transform:rotateY(114deg);filter:brightness(.95)}.opening-screen.opening .portal-crest{opacity:0;transform:translate(-50%,-50%) scale(.6)}.opening-screen.opening .portal-arch{opacity:0;transition:opacity .8s ease .45s}.opening-screen.opening .intro-controls{opacity:0;transform:translateY(18px);transition:.5s}
.intro-controls{margin:11px auto 0;position:relative;z-index:7;width:min(100%,430px)}.intro-caption{font:59px/1 var(--script);color:#8c6d70;margin:0 0 13px}.intro-caption span{color:#c8a9a0}.intro-primary,.intro-secondary{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 auto;text-align:center;border:1px solid #a98981;min-height:47px;max-width:330px;width:100%;font-size:11px;font-weight:700;letter-spacing:.105em;padding:10px 15px;transition:background .25s,transform .25s}.intro-primary{background:#806769;color:white;box-shadow:0 8px 16px #957c7c24}.intro-primary:hover{background:#674d54;transform:translateY(-2px)}.intro-secondary{background:transparent;color:#806769;border-color:transparent;margin-top:3px;font-size:10px}.intro-secondary:hover{text-decoration:underline}.intro-footnote{margin:4px 0 0;font:12px var(--serif);color:#9c8683}
.js body.entered .opening-screen{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .75s ease,visibility 0s linear .75s}
.site-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:73px;background:#fffcf9ed;backdrop-filter:blur(16px);padding:10px clamp(22px,5.5vw,95px);border-bottom:1px solid #d9c7c25c}.brand{font:500 33px/1 var(--serif);text-decoration:none;white-space:nowrap}.brand span{font:35px var(--script);color:#bf9fa4}.nav-main{display:flex;gap:clamp(12px,2.9vw,46px);align-items:center;flex-wrap:wrap;justify-content:flex-end}.nav-main a{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#897c79;text-decoration:none;padding:9px 2px}.nav-main a:hover{color:#ac7784}.music-control{position:fixed;bottom:20px;right:20px;z-index:110;min-height:50px;background:#fffdf9;border:1px solid #d2b8b2;border-radius:99px;display:none;align-items:center;gap:11px;padding:8px 17px;box-shadow:0 6px 32px #5c444c28;color:#87676c;font-size:11px;font-weight:700;letter-spacing:.06em}.entered .music-control{display:flex}.music-icon{font-size:21px}.music-wave{display:flex;align-items:center;gap:3px;height:18px}.music-wave i{display:block;width:2px;height:5px;background:#bd8e9c;border-radius:3px}.music-control.playing .music-wave i{animation:waves .9s infinite alternate}.music-control.playing .music-wave i:nth-child(2){animation-delay:.2s}.music-control.playing .music-wave i:nth-child(3){animation-delay:.4s}@keyframes waves{to{height:17px}}
.hero-scene{position:relative;min-height:790px;background:radial-gradient(ellipse at 25% 42%,#fffef9 0,#faf2ef 47%,#f7efea 100%);padding:80px max(24px,calc((100% - 1150px)/2)) 95px;overflow:hidden}.hero-scene:before{content:'';position:absolute;inset:0;background:url('lace.svg') 0 0/165px;opacity:.055;pointer-events:none}.hero-bg-ornament.top{position:absolute;right:-95px;top:-120px;width:300px;height:300px;border:1px solid #dfc8bb;border-radius:50%;box-shadow:0 0 0 17px #ffffff56,0 0 0 18px #dfc8bb66,0 0 0 38px #ffffff50}
.hero-content{position:relative;z-index:2;max-width:1200px;margin:auto;display:grid;grid-template-columns:.93fr 1.1fr;gap:clamp(25px,6vw,100px);align-items:center}.hero-image-column{width:100%;position:relative;display:grid;place-items:center}.portrait-border{position:relative;width:min(360px,100%);padding:13px;border-radius:46% 46% 9px 9px/25% 25% 9px 9px;border:1px solid #c8aea8;background:#fffcf6;box-shadow:0 18px 46px #8d6b6126;transform:rotate(-1.5deg)}.portrait-border:after{content:'';inset:-15px;position:absolute;border:1px dotted #c5a9a0;border-radius:inherit;pointer-events:none}.portrait-inner{overflow:hidden;border-radius:46% 46% 5px 5px/25% 25% 5px 5px;height:510px}.portrait-inner img{width:100%;height:100%;object-fit:cover;object-position:center 28%}.float-flower{position:absolute;z-index:2;color:#ceb1ab;text-shadow:0 3px 12px #876c6660}.flora-a{font-size:94px;top:3%;left:6%}.flora-b{font-size:58px;bottom:11%;right:1%}.portrait-label{position:absolute;bottom:4%;left:50%;transform:translateX(-50%);width:196px;text-align:center;background:#fcf7f1ef;border:1px solid #cfb6a2;border-radius:1px;padding:7px 8px;box-shadow:0 8px 20px #7e585834}.portrait-label span{font:26px var(--script)}.portrait-label strong{display:block;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:#9a8580;font-weight:500}
.hero-text-column{text-align:center}.eyebrow{display:flex;align-items:center;justify-content:center;gap:10px;color:#9e8683;letter-spacing:.24em;line-height:1.4}.eyeline{width:30px;height:1px;background:#c7aab0}.hero-welcome{font:30px var(--script);color:#a98991;margin:23px 0 5px}.hero-names{font:500 clamp(76px,8vw,112px)/.81 var(--serif);letter-spacing:-.055em;margin:12px 0 20px;color:#655153}.hero-names em{display:block;font:72px/1 var(--script);letter-spacing:0;color:#b99c9c;margin:1px 0 -7px}.hero-names span{display:block}.hero-message{font:23px/1.3 var(--serif);color:#87777a;margin:27px 0}.hero-date{margin:25px 0 30px;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px;color:#806467}.hero-date b{font:500 50px var(--serif)}.hero-date span{font:32px var(--serif);color:#c9aaa4}.hero-date small{width:100%;font-size:11px;letter-spacing:.25em;font-weight:700;color:#a18983}.pill-button{display:inline-flex;align-items:center;justify-content:center;gap:13px;min-height:51px;padding:15px 24px;background:#785d64;color:#fffdf7;text-decoration:none;text-transform:uppercase;font-size:10px;font-weight:700;letter-spacing:.15em;border:1px solid #785d64;transition:transform .25s,background .25s;white-space:normal}.pill-button:hover{background:#5e464d;transform:translateY(-2px)}.pill-button span{font-size:18px;line-height:0}.hero-tiny{font-size:9px;letter-spacing:.3em;color:#a98d8a;margin-top:22px}.hero-divider{position:absolute;left:50%;bottom:-36px;transform:translateX(-50%);width:400px;opacity:.5}
.program-intro{padding:104px 20px 110px;text-align:center;background:#fffdfa;position:relative}.section-serif{font:500 clamp(47px,6vw,80px)/1.02 var(--serif);letter-spacing:-.025em;margin:15px 0;color:#695758}.section-serif em{font-weight:400;color:#b7929a}.section-description{font:21px/1.5 var(--serif);color:#97817e;max-width:570px;margin:20px auto 42px}.three-steps{display:flex;align-items:center;justify-content:center;gap:clamp(10px,3vw,44px)}.three-steps a{display:flex;flex-direction:column;gap:6px;align-items:center;text-decoration:none;font:26px var(--serif);min-width:92px}.three-steps a:hover{text-decoration:underline}.three-steps a span{font:10px var(--sans);letter-spacing:.2em;color:#a99093}.three-steps i{font-style:normal;color:#d0b1ae}
.chapter{--chapter-bg:#f9edef;--chapter-accent:#a97985;--chapter-dark:#6d4d59;--chapter-soft:#f4dedf;position:relative;overflow:hidden;background:var(--chapter-bg);border-top:1px solid #eadfd86e}.chapter-henna{--chapter-bg:#edf1eb;--chapter-accent:#7e9889;--chapter-dark:#566d65;--chapter-soft:#dde6db}.chapter-marriage{--chapter-bg:#e9edf3;--chapter-accent:#778fa8;--chapter-dark:#566776;--chapter-soft:#d9e2ec}
.chapter:before,.chapter:after{content:'';position:absolute;pointer-events:none;border-radius:50%;border:1px solid var(--chapter-accent);opacity:.14}.chapter:before{width:370px;height:370px;right:-180px;top:-125px;box-shadow:0 0 0 30px white,0 0 0 31px var(--chapter-accent)}.chapter:after{width:260px;height:260px;left:-130px;bottom:-90px}
.chapter-head{display:flex;flex-direction:column;align-items:center;gap:13px;padding:72px 20px 0;color:var(--chapter-accent);text-align:center}.chapter-count{letter-spacing:.4em}.chapter-symbol{font:34px var(--serif)}.chapter-kicker{font-size:9px;letter-spacing:.32em}.chapter-main{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,105px);align-items:center;width:min(1100px,calc(100% - 58px));margin:0 auto;min-height:710px;padding:40px 0 90px}.chapter:nth-of-type(odd) .chapter-main{}.chapter-copy{padding:20px 0}.arabic-word{font:25px/1.6 Georgia,'Times New Roman',serif;color:var(--chapter-accent)}.chapter-copy h2{margin:0 0 5px;font:500 clamp(78px,8.6vw,125px)/.85 var(--serif);color:var(--chapter-dark);letter-spacing:-.05em}.chapter-copy h2 em{font-weight:400;color:var(--chapter-accent)}.chapter-quote{font:italic 23px/1.35 var(--serif);color:#8d797a;max-width:470px;margin:22px 0 33px}.date-box{display:flex;align-items:center;gap:20px;max-width:330px;margin:28px 0;color:var(--chapter-dark)}.date-day{font:500 76px/.9 var(--serif);letter-spacing:-.05em;padding-right:18px;border-right:1px solid var(--chapter-accent)}.date-box div{display:flex;flex-direction:column;gap:8px}.date-box strong{font-size:14px;letter-spacing:.28em}.date-box div span{font:500 18px var(--serif);letter-spacing:.1em}.location-detail{display:flex;flex-direction:column;gap:8px;margin:28px 0 24px}.location-label{color:var(--chapter-accent);font-size:9px}.location-detail strong{font:500 32px var(--serif);color:var(--chapter-dark)}.location-detail span:not(.location-label){font:18px/1.3 var(--serif);color:#7b7375}.chapter-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.event-button{background:var(--chapter-dark);border-color:var(--chapter-dark)}.event-button:hover{background:var(--chapter-accent)}.outline-button{min-height:51px;border:1px solid var(--chapter-accent);background:transparent;color:var(--chapter-dark);padding:13px 16px;font-size:10px;letter-spacing:.1em;font-weight:700;text-transform:uppercase}.outline-button:hover{background:#fff8}.dress-note{display:flex;align-items:flex-start;gap:12px;border-top:1px solid var(--chapter-accent);padding:21px 0 0;margin-top:28px;max-width:460px;color:var(--chapter-dark)}.dress-note .dress-icon{font:24px var(--serif);margin-top:-3px}.dress-note p{font:18px/1.4 var(--serif);margin:0}.dress-note strong{font-size:20px}.chapter-end{text-align:center;border-top:1px solid #cbbab662;padding:26px 14px;font-size:9px;letter-spacing:.26em;color:var(--chapter-accent);font-weight:700}
.chapter-art{width:min(470px,100%);height:min(550px,85vw);min-height:370px;position:relative;display:grid;place-items:center;margin:0 auto}.chapter-art:before{content:'';position:absolute;width:93%;height:93%;border-radius:50%;border:1px dotted var(--chapter-accent);opacity:.6}.chapter-art:after{content:'';position:absolute;width:71%;height:71%;border-radius:50%;border:1px solid var(--chapter-accent);opacity:.23}.art-ring{z-index:1;width:75%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fffaf8,var(--chapter-soft));border:1px solid var(--chapter-accent);box-shadow:0 0 0 12px #fff8,0 0 0 13px #dcc2bd6e,0 18px 50px #9c878428;display:grid;place-items:center}.art-ring-inner{width:78%;aspect-ratio:1;border-radius:50%;border:2px dotted var(--chapter-accent);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--chapter-accent)}.art-emblem{font:clamp(110px,16vw,190px)/1 var(--serif);height:55%;text-shadow:0 8px 16px #ae9f8a20}.art-sub{font:700 10px var(--sans);letter-spacing:.35em}.art-pearl{position:absolute;z-index:2;width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 30% 23%,#fff 2%,#f2eae4 42%,#bda7a7 80%,#fff);box-shadow:0 4px 12px #82787735}.pearl-a{top:7%;left:13%}.pearl-b{bottom:6%;right:17%;width:14px;height:14px}.art-leaf,.art-flourish{position:absolute;font:130px/1 var(--serif);opacity:.34;color:var(--chapter-accent)}.art-leaf.left{top:21%;left:0;transform:rotate(36deg)}.art-leaf.right{right:1%;bottom:16%;transform:rotate(220deg)}.art-flourish.fl-left{top:4%;left:0;transform:rotate(-45deg)}.art-flourish.fl-right{bottom:1%;right:0;transform:rotate(120deg)}.art-henna .art-ring{background:radial-gradient(circle at 35% 35%,#fff,#e1e8db)}.art-henna .art-emblem{font-size:185px;color:#92a998}.art-marriage .mini-photo-frame{position:relative;z-index:2;border-radius:50% 50% 5px 5px/34% 34% 5px 5px;height:490px;width:74%;overflow:hidden;border:9px solid #fffdfa;outline:1px solid #b4c0c9;box-shadow:0 22px 53px #667b8442}.mini-photo-frame img{height:100%;width:100%;object-fit:cover;object-position:center 32%}.heart-halo{position:absolute;top:2%;right:0;color:#91a0b0;opacity:.6;font:125px var(--script)}
.countdown-scene{min-height:800px;text-align:center;padding:110px 23px 105px;background:radial-gradient(circle at 50% 15%,#fffdfa 0,#f8f0ed 65%,#f3e5e2 100%);position:relative}.countdown-scene .section-serif{margin-bottom:10px}.count-floral{width:min(480px,80%);display:block;margin:-14px auto -28px;opacity:.57}.countdown-grid{display:flex;gap:12px;justify-content:center;align-items:center;max-width:800px;margin:17px auto 19px}.countdown-grid> b{font:500 38px var(--serif);color:#bda7a9;margin-top:-33px}.time-unit{min-width:0;flex:0 1 144px;padding:20px 10px;background:#fffdf6;border:1px solid #d8c3bd;box-shadow:0 0 0 6px #fffdf67d,0 12px 25px #b99c9b18}.time-unit strong{font:500 clamp(40px,6vw,69px)/1 var(--serif);font-variant-numeric:tabular-nums;color:#745d63;display:block;white-space:nowrap}.time-unit span{display:block;margin-top:9px;font-size:9px;letter-spacing:.2em;font-weight:700;color:#9c8c88}.countdown-note{font:16px/1.5 var(--serif);color:#9a8580;margin:33px auto 0}.signature-line{font:clamp(61px,9vw,103px)/1.1 var(--script);color:#9c7682;margin-top:75px}.signature-line span{color:#c7a7ae}.closing-message{font:23px var(--serif);color:#8b7777;margin:15px 0 50px}.return-link{font:700 10px var(--sans);letter-spacing:.18em;text-transform:uppercase;text-underline-offset:7px;color:#80676a}.site-footer{min-height:90px;display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap;background:#70585d;color:#fff9f6;padding:22px clamp(20px,7vw,110px);font-size:9px;letter-spacing:.22em;font-weight:700}
@media (hover:hover){.three-steps a:hover{color:#aa8086}}
@media(max-width:920px){.hero-content{grid-template-columns:.8fr 1.2fr;gap:28px}.portrait-inner{height:410px}.hero-names{font-size:76px}.chapter-main{gap:32px}.chapter-copy h2{font-size:88px}.chapter-art{min-height:330px}.art-marriage .mini-photo-frame{height:420px}}
@media(max-width:720px){.site-header{min-height:63px;padding:10px 15px;gap:7px}.brand{font-size:29px}.nav-main{gap:11px}.nav-main a{font-size:9px;letter-spacing:.02em}.hero-scene{padding:60px 20px 100px;min-height:0}.hero-content{grid-template-columns:1fr;gap:54px}.hero-image-column{max-width:300px;margin:auto}.portrait-border{width:min(280px,76vw)}.portrait-inner{height:390px}.flora-a{font-size:65px}.hero-names{font-size:clamp(73px,16vw,99px)}.hero-text-column{margin:auto}.hero-welcome{margin:10px 0}.hero-message{font-size:21px}.program-intro{padding:85px 20px}.chapter-main{grid-template-columns:1fr;gap:10px;width:min(520px,calc(100% - 44px));min-height:0;padding:13px 0 75px}.chapter-art{height:400px;width:390px;max-width:93%;min-height:0;grid-row:1}.chapter-copy{grid-row:2;padding:20px 0}.chapter-head{padding-top:66px;gap:8px}.chapter-copy h2{font-size:clamp(80px,15vw,110px)}.art-henna .art-emblem{font-size:160px}.art-marriage .mini-photo-frame{height:365px}.chapter-quote{margin:19px 0 24px}.chapter-end{font-size:8px}.countdown-scene{min-height:700px;padding:100px 16px}.signature-line{margin-top:65px}}
@media(max-width:440px){.opening-screen{padding:15px 10px 11px}.intro-topline{font-size:8px;letter-spacing:.2em}.portal-zone{gap:1px;margin:5px auto}.portal{width:min(300px,73vw);height:clamp(335px,52svh,472px)}.portal-crest{height:102px;width:122px}.portal-crest strong{font-size:41px}.portal-crest strong i{font-size:29px}.crest-small,.crest-date{font-size:6.4px}.leaf-lace{inset:9px}.leaf-embroidery{left:17px;right:17px}.intro-caption{font-size:47px;margin:10px 0 8px}.intro-primary,.intro-secondary{min-height:43px;font-size:9px;max-width:285px}.intro-secondary{margin-top:0}.intro-footnote{margin:0}.intro-footer{font-size:7px;letter-spacing:.13em}.site-header{padding:9px 10px;gap:6px}.brand{font-size:23px}.nav-main{gap:8px}.nav-main a{font-size:8px}.hero-scene{padding-top:45px}.hero-image-column{max-width:270px}.portrait-inner{height:330px}.hero-names{font-size:76px}.hero-date b{font-size:42px}.section-serif{font-size:49px}.three-steps{gap:8px}.three-steps a{font-size:22px;min-width:82px}.three-steps i{font-size:12px}.chapter-art{height:335px;width:340px}.chapter-copy h2{font-size:82px}.arabic-word{font-size:23px}.date-day{font-size:67px}.art-emblem{font-size:135px}.art-henna .art-emblem{font-size:135px}.art-marriage .mini-photo-frame{height:303px}.location-detail strong{font-size:29px}.chapter-actions{flex-direction:column;align-items:stretch}.chapter-actions a,.chapter-actions button{width:100%}.countdown-grid{gap:5px}.time-unit{padding:17px 4px}.time-unit strong{font-size:clamp(30px,9vw,42px)}.time-unit span{font-size:7px;letter-spacing:.07em}.countdown-grid>b{font-size:23px}.signature-line{font-size:67px}.site-footer{justify-content:center;text-align:center;gap:10px;flex-direction:column;padding:25px}.music-control{bottom:13px;right:13px;min-height:45px;padding:5px 12px}}
@media(max-height:670px){.js .opening-screen{justify-content:flex-start;gap:8px}.portal{height:340px}.intro-controls{margin-top:2px}.intro-caption{margin:3px}.intro-footer{padding-bottom:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important;animation-iteration-count:1!important}.js .reveal:not(.visible){opacity:1;transform:none}}


/* Edition haute couture: lace, pearls, soft light and distinctive ceremony panels. */
:root{--champagne:#c5a384;--milk:#fffefa;--powder:#f5e4e7}
body{background:#fffaf6}
.opening-screen{background:radial-gradient(ellipse at 50% 27%,#fffdf9 8%,#fcf0ee 57%,#e8d8d6 100%)}
.opening-screen:before{background-size:98px;opacity:.23}
.opening-screen:after{content:'';position:absolute;inset:13px;pointer-events:none;border:1px solid #c5ae9b55;box-shadow:inset 0 0 0 7px #fffaf66b,inset 0 0 0 9px #e4d2ce76;z-index:1}
.lace-curtain{position:absolute;width:17vw;max-width:220px;top:-15px;bottom:-15px;background:url('lace.svg') center top/100px repeat;opacity:.28;pointer-events:none;z-index:0}
.lace-curtain-left{left:0;mask-image:linear-gradient(90deg,#000 0%,transparent 100%)}
.lace-curtain-right{right:0;mask-image:linear-gradient(270deg,#000 0%,transparent 100%)}
.gate-pearl-strings{position:absolute;inset:0;pointer-events:none;z-index:2}
.gate-pearl-strings span{position:absolute;width:2px;height:90px;top:0;background:linear-gradient(#eadfda,#c3a89b);opacity:.75;transform-origin:top;animation:pearlsSway 9s ease-in-out infinite}
.gate-pearl-strings span:after{content:'';position:absolute;bottom:-9px;left:-8px;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 32% 30%,#fff 12%,#f0e4de 52%,#bda3a1 88%);box-shadow:0 2px 14px #ae888666}
.gate-pearl-strings span:nth-child(1){left:10%;height:70px;animation-delay:-3s}.gate-pearl-strings span:nth-child(2){left:24%;height:43px;animation-delay:-6s}.gate-pearl-strings span:nth-child(3){right:18%;height:74px;animation-delay:-4s}.gate-pearl-strings span:nth-child(4){right:8%;height:47px;animation-delay:-1s}
@keyframes pearlsSway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
.portal-shadow{position:absolute;left:22%;right:22%;bottom:4%;height:24px;background:#b18c8150;filter:blur(18px);border-radius:50%}
.portal-crest{z-index:10;background:radial-gradient(circle at 30% 30%,#fffefa,#f5e7df 75%,#f1dbd2)}
.portal-crest:after{content:'✧';position:absolute;bottom:15px;font-size:16px;color:#b68c81;opacity:.8}
.portal:after{content:'';position:absolute;inset:-26px;border-top:1px solid #dec7bbaa;border-radius:50% 50% 0 0 / 32% 32% 0 0;pointer-events:none;z-index:-1}
.intro-primary{background:linear-gradient(105deg,#8a6b69,#6f5353)!important;box-shadow:0 14px 35px #98797835}
.intro-primary:hover{filter:brightness(1.1)}
.intro-topline{font-size:10px;letter-spacing:.31em}
.hero-scene:before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,transparent 54%,#eed3d424 54%,transparent 55%),radial-gradient(circle at 9% 74%,#efd6da65,transparent 37%)}
.hero-content{isolation:isolate}
.hero-names em{color:#cba2a5}
.heart-divider{display:flex;align-items:center;justify-content:center;gap:12px;font:24px var(--serif);color:#c49ba3;margin:7px auto}
.heart-divider span{height:1px;width:58px;background:linear-gradient(90deg,transparent,#d8b5b8)}.heart-divider span:last-child{transform:rotate(180deg)}
.portrait-border{box-shadow:0 25px 60px #9b75772b,0 0 0 1px #d9bfc099,0 0 0 11px #fffdfaa8,0 0 0 12px #e8d4d099}
.program-intro{background:radial-gradient(ellipse at 50% 11%,#fffdf9,#fbf3f0 75%,#f7eae8)}
.three-steps a{transition:transform .3s ease,color .3s ease}.three-steps a:hover{transform:translateY(-4px)}
.chapter{isolation:isolate}
.chapter:before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.36;background:url('lace.svg') left top/95px repeat-y;mask-image:linear-gradient(90deg,#000,transparent 28%)}
.chapter:after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.2;background:url('lace.svg') right top/100px repeat-y;mask-image:linear-gradient(270deg,#000,transparent 22%)}
.chapter-head,.chapter-main,.chapter-end{position:relative;z-index:1}
.chapter-outia{background:linear-gradient(165deg,#fdf0f1 0%,#fff9f6 55%,#f7e7e8 100%)}
.chapter-henna{background:linear-gradient(160deg,#ebf0e9 0%,#f9fbf5 49%,#e8e8da 100%)}
.chapter-marriage{background:linear-gradient(155deg,#f1f6fa 0%,#fffefa 52%,#e5eef5 100%)}
.chapter-art .art-ring{backdrop-filter:blur(2px)}
.chapter-illustration{display:block;width:77%;height:auto;max-height:80%;object-fit:contain;filter:drop-shadow(0 5px 12px #ac858126);animation:illustrationDrift 8s ease-in-out infinite}
@keyframes illustrationDrift{0%,100%{transform:translateY(1px) rotate(-1deg)}50%{transform:translateY(-8px) rotate(1deg)}}
.chapter-henna .chapter-copy h2{font-size:clamp(64px,7.2vw,105px);line-height:.98;max-width:600px}
.chapter-henna .chapter-copy h2 em{display:block;font-size:.69em;line-height:1.05}
.chapter-copy h2{filter:drop-shadow(0 5px 14px #5e504409)}
.chapter-head .chapter-symbol{background:var(--chapter-soft);width:59px;height:59px;border:1px solid var(--chapter-accent);border-radius:50%;display:grid;place-items:center;box-shadow:0 0 0 6px #fffafa88}
.date-box{padding-bottom:15px;border-bottom:1px solid #aa91924d}
.location-detail strong{letter-spacing:-.015em}
.dress-note{background:#fffdfa98;border:1px solid #dec9c3a8;padding:18px 20px;border-radius:0 23px 0 23px;box-shadow:0 14px 27px #baa1a112}
.chapter-end{background:#ffffff65}
.countdown-scene{background:radial-gradient(ellipse at 50% 0%,#fffefa 5%,#fcf0ed 75%,#f6e7e3 100%)}
.time-unit{box-shadow:0 0 0 6px #fffdf67d,0 12px 24px #b99c9b17,0 2px 2px #b99c9b17}
.music-control{z-index:180}.music-control.playing .music-wave i{animation:musicBar 800ms ease-in-out infinite alternate}
@keyframes musicBar{from{height:5px}to{height:16px}}
.music-panel[hidden]{display:none!important}
.music-panel{position:fixed;z-index:190;right:17px;bottom:82px;width:min(345px,calc(100vw - 24px));max-height:calc(100vh - 130px);overflow:auto;padding:15px;background:#fffdf9;border:1px solid #cbb3ab;box-shadow:0 17px 55px #483d3d42;outline:7px solid #fff9f1bd;border-radius:4px}
.music-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:7px;margin-bottom:11px}
.music-panel-heading strong{display:block;font:25px/1.1 var(--serif);color:#64504c}
.music-micro{display:block;margin:0 0 5px;color:#a28481;font:700 9px var(--sans);letter-spacing:.25em}
.music-panel-heading button{border:1px solid #dcc7c2;background:#fff;width:42px;height:42px;border-radius:50%;font-size:17px;color:#635151;flex:none}
.video-frame{background:#ece6df;aspect-ratio:16/11;min-height:205px}
.video-frame iframe{display:block;width:100%;height:100%;min-height:205px;border:0}
.music-timing{font:14px var(--serif);color:#786364;margin:12px 0 6px}.music-timing span{color:#a28e89;font-style:italic}
.music-youtube-link{display:inline-flex;margin:3px 0 8px;color:#846367;text-underline-offset:4px;font:700 11px var(--sans);letter-spacing:.05em}
.music-disclaimer{font:11px/1.45 var(--sans);color:#928381;margin:0}
@media(max-width:720px){.chapter-art:before{opacity:.35}.chapter-henna .chapter-copy h2{font-size:clamp(63px,12vw,83px)}.intro-topline{letter-spacing:.23em}.music-panel{right:12px;bottom:75px}}
@media(max-width:440px){.opening-screen:after{inset:8px}.intro-topline{font-size:8px}.chapter-henna .chapter-copy h2{font-size:67px}.chapter-illustration{width:83%}.music-panel{width:calc(100vw - 24px)}}
@media(prefers-reduced-motion:reduce){.gate-pearl-strings span,.chapter-illustration{animation:none}}


/* ÉDITION FINALE — PHOTOGRAPHIES DES CÉRÉMONIES ET MUSIQUE INTÉGRÉE */
.art-photo{
  height:620px;
  min-height:0;
  overflow:visible;
  filter:drop-shadow(0 18px 22px rgba(83,61,65,.12));
}
.art-photo:before{
  height:88%;width:92%;border-color:var(--chapter-accent);opacity:.44;
  background:radial-gradient(ellipse at center,rgba(255,255,255,.47),transparent 62%);
}
.art-photo:after{height:76%;width:79%;border:1px dashed var(--chapter-accent);opacity:.27}
.ceremony-frame{
  position:relative;z-index:3;margin:0;
  height:min(540px,90%);aspect-ratio:9/16;
  padding:8px;
  background:linear-gradient(135deg,#fffefa,#e5c8c0 46%,#fffdfa 70%,#c6a397);
  border:1px solid #d1b4aa;
  border-radius:47% 47% 9px 9px / 20% 20% 9px 9px;
  box-shadow:0 0 0 8px #fffaf5bd,0 0 0 9px #dac4ba9c,0 28px 55px #8a646131;
  overflow:hidden;
}
.ceremony-frame:after{
  position:absolute;content:'';inset:8px;z-index:1;pointer-events:none;
  border:1px solid #fffdfa88;border-radius:inherit;
}
.ceremony-frame img{
  display:block;width:100%;height:100%;object-fit:cover;
  object-position:center center;
  border-radius:45% 45% 2px 2px / 19% 19% 2px 2px;
}
.ceremony-frame-outia{background:linear-gradient(140deg,#fff9ec,#cda6a2,#fffdf1,#bb958c)}
.ceremony-frame-henna{background:linear-gradient(140deg,#fff,#afbfc9,#fffefa,#91aaba);border-color:#91aaba;box-shadow:0 0 0 8px #fffaf5bd,0 0 0 9px #b7c9ce99,0 28px 55px #617c9040}
.ceremony-photo-label{
  position:absolute;z-index:4;bottom:9px;left:50%;transform:translateX(-50%);
  white-space:nowrap;padding:9px 20px;background:#fffcf4ed;
  border:1px solid #cfb8aa;color:var(--chapter-dark);
  font:500 19px var(--serif);letter-spacing:.055em;
  box-shadow:0 5px 15px #8c6d6433;
}
.ceremony-photo-label span{padding:0 7px;color:var(--chapter-accent);font-size:11px}
.event-frame-petal{position:absolute;z-index:2;color:var(--chapter-accent);opacity:.35;font:100px var(--serif)}
.petal-one{left:-4%;top:9%;transform:rotate(-18deg)}
.petal-two{right:-4%;bottom:12%;transform:rotate(22deg)}
.chapter-henna{background:linear-gradient(155deg,#eaf0f4 0%,#f9f9f6 52%,#e9eff2 100%)}
.chapter-henna{--chapter-accent:#7693aa;--chapter-dark:#4f6d84;--chapter-soft:#e0eaf0}
.chapter-henna .dress-note{background:#fafdffb5;border-color:#b3c8d8}
.chapter-outia .dress-note{background:#fffafab8}
.hero-song-note{font:14px/1.5 var(--serif);color:#937879;margin:13px auto 0;max-width:370px;text-align:center}
.audio-notice{position:fixed;z-index:190;bottom:84px;right:14px;max-width:min(320px,calc(100% - 28px));background:#fff9f4;border:1px solid #c5aca5;color:#775954;padding:13px 17px;font:13px/1.4 var(--sans);box-shadow:0 9px 20px #43303036}
.audio-notice[hidden]{display:none}
@media(max-width:920px){.art-photo{height:520px}.ceremony-frame{height:min(455px,90%)}}
@media(max-width:720px){
 .art-photo{height:535px;width:min(420px,100%);max-width:100%;margin:15px auto 5px}
 .ceremony-frame{height:470px}
 .chapter-main{gap:26px}
 .chapter-head{padding-top:70px}
 .ceremony-photo-label{bottom:0}
}
@media(max-width:440px){
 .art-photo{height:445px;width:310px;max-width:100%}
 .ceremony-frame{height:390px}
 .ceremony-photo-label{font-size:16px;bottom:0;padding:8px 12px}
 .event-frame-petal{font-size:65px}
 .hero-song-note{font-size:12px}
}
@media(prefers-reduced-motion:reduce){.ceremony-frame{animation:none}}

/* 28 OCT 2026 — visuel non souhaité retiré, remplacé par des ornements */
.portal-inside-ornament {background:radial-gradient(ellipse at 50% 37%,#fffdf8 0%,#f6ebe4 55%,#dec9c2 100%)}
.portal-inside-silk {position:absolute;inset:11px;border:1px dotted #c49b95;border-radius:inherit;
 background:repeating-radial-gradient(circle at 50% 34%,transparent 0 28px,#c59b9815 29px 30px,transparent 31px 58px),url('lace.svg') center/112px;opacity:.58}
.portal-inside-monogram {position:absolute;top:30%;left:0;right:0;display:flex;gap:9px;align-items:center;justify-content:center;color:#987a73;
 font:500 clamp(75px,10vw,116px)/1 var(--serif);text-shadow:0 8px 20px #96776e30}
.portal-inside-monogram small{font:52px var(--script);color:#be9f9a}
.portal-inside-ornament .portal-inside-text{color:#796263;text-shadow:none}
.portrait-ornament{position:relative;background:radial-gradient(ellipse at 50% 44%,#fffaf5 0%,#f6e9e5 55%,#eddbd4 100%);display:flex;flex-direction:column;justify-content:center;align-items:center;isolation:isolate;border:1px solid #ecd2c9}
.portrait-ornament:before{content:'';position:absolute;inset:15px;border:1px solid #d3b5aa;border-radius:46% 46% 5px 5px/25% 25% 5px 5px;pointer-events:none;z-index:-1}
.portrait-ornament:after{content:'';position:absolute;inset:27px;border:1px dotted #c7aaa4;border-radius:46% 46% 5px 5px/25% 25% 5px 5px;pointer-events:none;z-index:-1}
.ornament-medallion{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:6px;width:78%;aspect-ratio:1;border-radius:50%;
 border:1px solid #cdb0a7;background:radial-gradient(circle at 39% 30%,#fffef8 0%,#f4e7df 75%,#ebd0c9 100%);
 box-shadow:0 0 0 9px #fffaf7b9,0 0 0 10px #ceb0a7b0,0 13px 32px #9d79742b;
 font:500 clamp(74px,9vw,120px)/1 var(--serif);color:#816667}
.ornament-medallion i{font:clamp(38px,5vw,58px) var(--script);color:#b28f90;font-weight:400}
.ornament-medallion:before{content:'❀';position:absolute;top:-14px;font:31px var(--serif);color:#c4a1a1;text-shadow:0 1px 6px white}
.ornament-floral{position:absolute;font:82px var(--serif);color:#d6b6b2;opacity:.65;pointer-events:none}
.ornament-floral.floral-top{left:-4%;top:6%}.ornament-floral.floral-bottom{right:-5%;bottom:6%;font-size:66px}
.ornament-lines{font:23px var(--serif);letter-spacing:.3em;color:#c3a19b;margin:18px 0 13px}
.ornament-lines-bottom{margin:12px 0 16px}
.ornament-sub{font-size:8px;letter-spacing:.22em;font-weight:700;color:#967b77;padding:2px 12px;text-align:center}
.music-control{display:flex!important;z-index:700}
.invitation-gated .music-control{right:14px;bottom:14px;padding:7px 12px;min-height:40px;background:#fffcf7e8}
.invitation-gated .music-control .music-status{display:none}
.intro-footnote{margin-top:12px}
@media(max-width:720px){.ornament-medallion{font-size:93px}.ornament-medallion i{font-size:46px}}
@media(max-width:440px){.ornament-medallion{font-size:84px}.ornament-medallion i{font-size:40px}.ornament-lines{font-size:19px;margin:12px 0 10px}.ornament-sub{font-size:7px}}

/* Photo de la page d'accueil restaurée. Photo du seul chapitre Mariage supprimée. */
.marriage-without-photo{isolation:isolate}
.marriage-without-photo:before{width:94%;height:88%;border:1px dotted #91a0b0;opacity:.55}
.marriage-without-photo:after{width:83%;height:78%;border:1px solid #adb9c3;opacity:.33}
.marriage-pearl-emblem{z-index:2;position:relative;width:min(76%,360px);aspect-ratio: .83;border-radius:47% 47% 12px 12px/31% 31% 12px 12px;
  display:grid;place-items:center;border:2px solid #d5c5bf;background:radial-gradient(ellipse at 39% 29%,#fffefa 0%,#f7f2ef 55%,#e7eef2 100%);
  box-shadow:0 22px 52px #6d85932c,0 0 0 9px #fffef8dc,0 0 0 10px #cbb7ad,0 0 0 23px #fffafab8,0 0 0 24px #c5cdd5c4;
}
.marriage-pearl-emblem:before{content:'';position:absolute;inset:14px;border-radius:inherit;border:1px dotted #bdb0ae;pointer-events:none}
.marriage-pearl-emblem:after{content:'✧';position:absolute;bottom:-23px;left:50%;transform:translateX(-50%);font:55px var(--serif);color:#c4a7a0;text-shadow:0 5px 9px #bd9f9f29}
.marriage-emblem-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#7f8c9a;gap:12px}
.marriage-emblem-sparkle{font:24px var(--serif);letter-spacing:.18em;color:#be9e9a}
.marriage-emblem-names{font:500 clamp(85px,9vw,122px)/1 var(--serif);color:#747d8e;letter-spacing:-.08em}
.marriage-emblem-names i{font:clamp(45px,6vw,68px) var(--script);color:#b09da5;letter-spacing:0}
.marriage-emblem-heart{font:50px/1 var(--script);color:#b9a4ab}
.marriage-emblem-date{font:700 11px var(--sans);letter-spacing:.26em;color:#858b95}
.marriage-ornate-branch{position:absolute;z-index:1;font:180px/1 var(--serif);color:#a4b4c3;opacity:.3;top:25%}
.marriage-branch-left{left:-6%;transform:rotate(-36deg)}
.marriage-branch-right{right:-6%;transform:scaleX(-1) rotate(-36deg)}
@media(max-width:720px){.marriage-pearl-emblem{width:min(71%,270px)}.marriage-emblem-names{font-size:91px}.marriage-emblem-sparkle{font-size:18px}}
@media(max-width:440px){.marriage-pearl-emblem{width:70%;}.marriage-emblem-names{font-size:76px}.marriage-emblem-names i{font-size:40px}.marriage-emblem-heart{font-size:35px}.marriage-emblem-date{font-size:9px}.marriage-ornate-branch{font-size:115px}}

/* ÉDITION 2027 — Logo officiel fourni par les mariés dans le chapitre Mariage. */
.brand{letter-spacing:-.045em}
.brand span{padding:0 .025em}
.portal-crest strong{display:flex;align-items:baseline;justify-content:center;white-space:nowrap;font-size:45px;letter-spacing:-.065em}
.portal-crest strong i{font-size:32px;margin:0 3px;letter-spacing:0}
@media(max-width:440px){.portal-crest strong{font-size:34px}.portal-crest strong i{font-size:25px}}
.marriage-with-logo{isolation:isolate}
.marriage-with-logo:before{width:98%;height:89%;border:1px dotted #92a5b9;opacity:.68}
.marriage-with-logo:after{width:89%;height:81%;border:1px solid #b7c2cd;opacity:.40}
.wedding-logo-frame{position:relative;z-index:3;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;width:min(88%,415px);padding:23px 20px 20px;background:radial-gradient(circle at 37% 25%,#fffefb 0%,#faf5ee 69%,#efecf2 100%);border-radius:46% 46% 24px 24px / 32% 32% 24px 24px;border:1px solid #ddc7b9;box-shadow:0 0 0 8px #fffdf6b6,0 0 0 9px #b6a1a0bb,0 25px 60px #68798c32}
.wedding-logo-frame:before{content:'';position:absolute;inset:10px;z-index:-1;border:1px dotted #b8a69d;border-radius:inherit;pointer-events:none}
.wedding-logo-photo{overflow:hidden;width:100%;aspect-ratio:1;border-radius:50%;background:#f8f0e3;box-shadow:0 0 0 5px #fffaf4,0 0 0 6px #d1b9a5,0 12px 22px #6e5c6b28}
.wedding-logo-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.wedding-logo-caption{display:flex;align-items:center;flex-direction:column;gap:6px;margin-top:19px;color:#765b6a;text-align:center}
.wedding-logo-caption strong{font:500 clamp(29px,4vw,39px)/1 var(--serif);letter-spacing:-.04em}
.wedding-logo-caption strong span{font:400 27px/1 var(--script);color:#ba9f8f;padding:0 3px}
.wedding-logo-caption small{font:700 9px/1.4 var(--sans);letter-spacing:.24em;color:#927e80}
.wedding-logo-glint{position:absolute;z-index:4;font:38px var(--serif);color:#ceb08f;pointer-events:none;text-shadow:0 5px 17px #95734e49}
.glint-first{top:4%;right:11%;animation:wedding-twinkle 4.2s ease-in-out infinite}
.glint-second{bottom:16%;left:5%;font-size:22px;animation:wedding-twinkle 5.1s ease-in-out 1.2s infinite}
@keyframes wedding-twinkle{0%,100%{opacity:.5;transform:scale(.85)}50%{opacity:1;transform:scale(1.2)}}
@media(max-width:720px){.wedding-logo-frame{width:min(84%,335px);padding:18px 17px 18px}.wedding-logo-caption{margin-top:17px}}
@media(max-width:440px){.wedding-logo-frame{width:83%;padding:14px 12px 13px}.wedding-logo-caption{margin-top:14px}.wedding-logo-caption strong{font-size:29px}.wedding-logo-caption small{font-size:8px}.wedding-logo-glint{font-size:29px}.marriage-ornate-branch{opacity:.18}}
@media(prefers-reduced-motion:reduce){.wedding-logo-glint{animation:none}}
