:root{--cream:#faf2e4;--ink:#203c34;--jade:#173e35;--wine:#7e2633;--gold:#d6b474;--line:#b8986050;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#0e2925;color:var(--ink);font:400 16px/1.85 var(--sans)}[hidden]{display:none!important}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:6px}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #c99747;outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.04}h2{font-size:clamp(42px,11vw,60px);letter-spacing:-.025em}h3{font-size:32px}main{max-width:540px;margin:auto;overflow:hidden;background:var(--cream)}section{padding:76px 32px}.cream{background:var(--cream)}.jade{background:var(--jade);color:var(--cream)}.wine{background:var(--wine);color:var(--cream)}.eyebrow{font-size:12px;letter-spacing:.2em;font-weight:600;line-height:1.8}.intro{margin:25px 0;line-height:1.9}.sample-note,.tiny{font-size:12px;line-height:1.8;opacity:.8}.gold-button,.outline-button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 23px;text-decoration:none;border:1px solid var(--gold);font:600 14px/1.6 var(--sans);letter-spacing:.02em;text-align:center}.gold-button{background:var(--gold);color:#1a392f}.outline-button{background:transparent;color:var(--ink);border-color:#9e7957}.text-link{display:inline-block;font-size:14px;min-height:44px;padding:10px 0}.chapter{display:flex;align-items:center;gap:16px;margin-bottom:36px}.chapter>span{font:italic 44px var(--serif);color:#a66b54}.chapter>p{font-size:12px;letter-spacing:.18em;line-height:1.8}.chapter:after{content:'';height:1px;background:var(--line);flex:1}.jade .chapter>span{color:var(--gold)}
.entrance{position:fixed;inset:0;z-index:100;background:radial-gradient(ellipse at 50% 40%,#963c45,#651e2b);display:grid;place-items:center;padding:24px;overflow:auto;transition:opacity .6s,transform .6s}.entrance.leaving{opacity:0;transform:translateY(-4%);pointer-events:none}.envelope{border:1px solid #d6b47475;outline:1px solid #d6b47435;outline-offset:8px;width:min(430px,100%);text-align:center;padding:38px 20px;color:#f9e8c9;box-shadow:0 20px 80px #290c1730}.envelope h1{font-size:clamp(62px,18vw,88px);margin:15px 0 10px}.seal{margin:22px auto 0;width:86px;height:86px;border:1px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 0 0 5px #d6b47415}.seal span{font:54px var(--serif)}.seal small{font-size:10px;position:absolute;bottom:5px;letter-spacing:.2em}.envelope-date{font-size:12px;letter-spacing:.17em}.envelope-note{font:24px/1.4 var(--serif);margin:25px 0}.envelope .tiny{margin-top:20px}.envelope .gold-button{width:100%;max-width:270px}.hero{position:relative;min-height:850px;background:#122d2b;color:#ffe8b7;isolation:isolate}.hero-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:58% center;z-index:-3}.hero-shade{position:absolute;inset:0;background:linear-gradient(#0b252cf5,#102e3180 37%,#102e3144 65%,#102e31ed);z-index:-2}.hero-copy{padding:68px 30px 0;position:relative;z-index:2}.hero-copy h1{font-size:clamp(82px,23vw,126px);letter-spacing:-.04em;margin-top:12px}.hero-subtitle{font:italic 25px var(--serif);margin-top:4px}.hero-date{display:flex;align-items:center;gap:15px;margin-top:28px}.hero-date>span{font:58px var(--serif);padding-right:16px;border-right:1px solid #d6b47466}.hero-date p{font-size:11px;letter-spacing:.15em;line-height:2}.hero-character{position:absolute;height:460px;width:70%;object-fit:contain;object-position:right bottom;right:16px;bottom:35px;z-index:1;filter:drop-shadow(0 10px 15px #071c2855)}.hero-whisper{position:absolute;left:30px;bottom:205px;width:145px;font:italic 22px/1.5 var(--serif);z-index:2}.scroll-cue{position:absolute;bottom:19px;left:30px;font-size:11px;letter-spacing:.1em;z-index:3}.letter{padding-block:80px;text-align:center}.letter h2{margin:24px 0 30px}.letter>p:not(.eyebrow){margin-top:20px;text-align:left}.signature{font:italic 29px var(--serif);color:#8a3f40;display:block;margin-top:30px}.family{padding-top:12px}.parents{border-block:1px solid var(--line);margin-top:36px;padding:32px 20px;text-align:center}.parents h3{margin:20px 0;font-size:35px;line-height:1.12}.parents i{font-size:25px;color:#986e4c}.parents>p:last-child{font-size:14px}.godparents{margin-top:32px;padding-left:22px;border-left:2px solid #a7645644}.godparents h3{font-size:29px;line-height:1.35;margin-top:15px}.second-label{margin-top:28px}.garden-interlude{position:relative;margin:0;background:#f4e8ce}.garden-interlude img{width:100%;height:420px;object-fit:cover;object-position:40% center}.garden-interlude:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 35%,#1c3d36ed)}.garden-interlude figcaption{position:absolute;bottom:34px;left:32px;right:32px;color:#fff0d2;font:italic 38px/1.15 var(--serif);z-index:1}.countdown{text-align:center;padding:65px 25px}.countdown h2{font-size:43px;margin-top:18px}.clock{display:grid;grid-template-columns:repeat(4,1fr);margin:36px 0 24px;border-block:1px solid #d6b47466;padding:23px 0}.clock div+div{border-left:1px solid #d6b47433}.clock b{display:block;font:45px var(--serif);color:#f0d5a0}.clock span{font-size:10px;letter-spacing:.07em}.countdown>p:not(.eyebrow){font-size:14px}.countdown .text-link{margin-top:14px;color:#edcf9a}.venues h2{margin-bottom:36px}.venue{padding:28px 0;border-top:1px solid var(--line)}.venue h3{font-size:34px;margin:15px 0 18px}.venue-name{font-weight:600}.venue>p:not(.eyebrow){font-size:14px}.venue .outline-button{margin-top:24px;width:100%}.reception{margin-top:12px}.schedule h2{margin-top:20px}.timeline{list-style:none;padding:0;margin:40px 0 0}.timeline li{display:grid;grid-template-columns:60px 1fr;gap:18px;padding-bottom:31px;position:relative}.timeline li:after{content:'';position:absolute;left:67px;top:7px;bottom:0;border-left:1px solid #cba66d55}.timeline li:last-child:after{display:none}.timeline time{font-size:13px;color:#e6c88f;padding-top:5px}.timeline h3{font-size:31px;margin-bottom:8px}.timeline p{font-size:14px;color:#eee1c8}.timeline .special{margin:5px -12px 25px;padding:24px 12px;background:#ffffff08;border-block:1px solid #d6b47455}.special h3{font-size:48px;color:#f1d39a;margin-top:10px}.special .eyebrow{font-size:10px}.court{border-top:1px solid #d6b47444;margin-top:10px;padding-top:28px}.court>p:not(.eyebrow){font-size:14px;margin-top:10px}.court>span{font:italic 23px var(--serif);display:block;margin-top:19px;color:#e0c799}.details{padding:0}.fan-panel{position:relative}.fan-panel img{width:100%;height:360px;object-fit:cover;object-position:50% 50%}.fan-panel:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,#641c30d9)}.fan-panel figcaption{position:absolute;bottom:27px;left:32px;z-index:1;color:#fff0da;font:italic 35px/1.1 var(--serif)}.detail-copy{padding:60px 32px}.detail-copy h2{margin:20px 0 25px}.reserved-color{display:flex;align-items:center;gap:17px;margin-top:25px}.reserved-color>span{width:28px;height:28px;background:#8d293b;border:4px solid #faf2e4;outline:1px solid #a88055;border-radius:50%;flex-shrink:0}.reserved-color p{font-size:14px}.gift{border-top:1px solid var(--line);padding-top:35px;margin-top:36px}.gift h3{font-size:44px;margin:12px 0 18px}.hashtag{font:italic 31px var(--serif);margin-top:33px;color:#8c3e3c}.rsvp h2{font-size:46px}.family-pass{position:relative;border:1px solid #d6b47477;padding:28px 22px;margin-top:35px;background:linear-gradient(120deg,#214a3d,#12352f)}.family-pass:before,.family-pass:after{content:'';width:20px;height:20px;border-radius:50%;background:var(--jade);position:absolute;top:60%;border:1px solid #d6b47477}.family-pass:before{left:-11px}.family-pass:after{right:-11px}.family-pass h3{margin-top:16px;font-size:35px}.pass-count{border-top:1px dashed #d6b47466;margin-top:24px;padding-top:16px;display:flex;gap:16px;align-items:center}.pass-count b{font:60px var(--serif);color:#e6c98f}.pass-count span{font-size:11px;letter-spacing:.17em;line-height:1.8}.family-pass .text-link{color:#eed09a}.campo{margin-bottom:22px}.campo label,legend{display:block;font-size:14px;margin-bottom:8px}.campo small{font-size:12px}.campo input,.campo select,.campo textarea,.demo-details select{width:100%;padding:14px;border:1px solid #c1ab7d;background:#f9f2e5;color:#173a31;border-radius:0;min-height:50px}.campo textarea{resize:vertical}.rsvp fieldset{border:0;padding:0;margin:0 0 22px}.choices{display:flex;gap:10px}.choices label{flex:1}.choices input{position:absolute;opacity:0}.choices span{display:flex;align-items:center;justify-content:center;border:1px solid #d6b47455;min-height:52px;padding:10px;font-size:13px}.choices input:checked+span{background:#d6b474;color:#173e35}.choices input:focus-visible+span{outline:3px solid #f1dba8;outline-offset:4px}form>.gold-button{width:100%}form>.sample-note{margin-top:16px}.thanks{border-top:1px solid #d6b47466;padding-top:30px}.thanks h3{font-size:40px;margin:16px 0}.thanks a{margin-top:23px}.closing{position:relative;background:#0a2929;color:#fae4b9;text-align:center}.closing>img{width:100%;height:490px;object-fit:cover;object-position:58% center;opacity:.65}.closing>div{position:absolute;inset:0;padding:100px 30px 30px;background:linear-gradient(#0b292a00,#0b292af0)}.closing h2{font-size:70px;margin-top:38px}.closing .eyebrow{font-size:10px}.closing-name{font:italic 44px var(--serif);margin-top:12px}.closing-name+p{font-size:11px;letter-spacing:.18em;margin-top:22px}.demo-area{padding:34px 28px 90px;text-align:center}.demo-details{text-align:left;margin-top:25px;border-block:1px solid var(--line);padding:16px 0}.demo-details summary{cursor:pointer;font-size:13px;min-height:34px}.demo-details p{font-size:13px;margin:15px 0}.demo-details h3{margin:25px 0 15px}.demo-details a,.demo-details button{display:block;margin:12px 0;padding:12px;border:1px solid #b3986b;background:transparent;color:#203c34;font-size:13px;width:100%;text-align:center;text-decoration:none}.demo-table{overflow:auto}.demo-table table{width:100%;border-collapse:collapse;font-size:12px}.demo-table td,.demo-table th{padding:8px 4px;border-bottom:1px solid var(--line);text-align:left}.dicha-signature{display:inline-block;font:italic 22px var(--serif);margin-top:22px;text-decoration:none}.music-control{position:fixed;bottom:17px;right:17px;z-index:20;background:#faf2e4;color:#234234;border:1px solid #c3a46b;border-radius:30px;padding:10px 15px;min-height:44px;font-size:12px;box-shadow:0 3px 15px #0d282b33}
@media(min-width:600px){.hero{min-height:940px}.hero-character{height:520px}.hero-whisper{bottom:240px}.hero-copy{padding-top:76px}}@media(max-width:360px){section{padding:60px 24px}.hero{min-height:790px}.hero-copy{padding:55px 24px 0}.hero-character{height:410px;right:8px;bottom:38px}.hero-whisper{left:24px;bottom:195px;width:120px;font-size:19px}.hero-copy h1{font-size:82px}.hero-subtitle{font-size:23px}.hero-date{margin-top:20px}.detail-copy{padding-inline:24px}.rsvp h2{font-size:39px}.clock b{font-size:36px}.envelope{padding:24px 16px}.seal{width:65px;height:65px;margin-top:15px}.seal span{font-size:43px}.envelope h1{font-size:63px}.envelope-note{margin:18px 0}.envelope .tiny{font-size:11px}}@media(max-height:650px){.entrance{padding:18px}.envelope{padding:20px}.seal{width:55px;height:55px;margin-top:10px}.seal span{font-size:36px}.seal small{font-size:8px}.envelope h1{font-size:60px;margin:8px}.envelope-note{font-size:20px;margin:12px 0}.envelope .tiny{margin-top:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.entrance{transition:none}}

/* Mobile finishing */
.hero-whisper{top:325px;bottom:auto;width:280px;font-size:21px;line-height:1.35}.hero-character{height:420px;bottom:38px}.parents{padding:0 20px 30px;overflow:hidden;border:1px solid #b8986070;border-radius:150px 150px 0 0;background:#f5ead7;box-shadow:0 12px 25px #724b2710}.family-floral{width:calc(100% + 40px);max-width:none;margin:0 -20px 27px;height:150px;object-fit:cover;object-position:50% 8%;border-bottom:1px solid #b8986060}.godparents{position:relative;padding:0 22px 27px;background:#f0e3ce;border:1px solid #b8986060;overflow:hidden}.godparents-art{width:calc(100% + 44px);max-width:none;height:110px;object-fit:cover;object-position:50% 34%;margin:0 -22px 24px}.godparents h3{color:#733139}.second-label{padding-top:22px;border-top:1px solid #b8986050}.hero-copy .eyebrow,.hero-date p,.scroll-cue{font-size:12px}.clock span{font-size:12px;letter-spacing:0}.choices span{font-size:14px}.music-control{font-size:13px}.sample-note{opacity:1;color:#627267}.jade .sample-note{color:#d7dfd5}.wine .sample-note{color:#f0dfd6}.entrance.leaving .envelope{transform:translateY(-18px);transition:transform .55s ease}.entrance .envelope{transform:translateY(0)}@media(min-width:600px){.hero-character{height:500px}.hero-whisper{top:350px}}@media(max-width:360px){.hero-whisper{top:310px;width:260px;font-size:20px}.hero-character{height:370px;bottom:38px}.clock span{font-size:11px}.parents h3{font-size:31px}.godparents h3{font-size:28px}.music-control{right:10px;bottom:12px;padding:9px 12px}}@media(prefers-reduced-motion:reduce){.entrance.leaving .envelope{transition:none;transform:none}}

/* Date and dedication stay in document flow at every text size. */
.hero-whisper{position:static;top:auto;bottom:auto;left:auto;width:auto;max-width:100%;margin-top:22px;line-height:1.5}.hero-date{gap:18px;flex-wrap:nowrap}.hero-date>span{flex-shrink:0;line-height:1.1}.hero-date p{min-width:0}.hero-character{position:relative;right:auto;bottom:auto;display:block;width:calc(100% - 50px);height:420px;object-position:right bottom;margin:20px 20px 65px 30px}.hero{padding-bottom:1px}@media(min-width:600px){.hero-character{height:500px}}@media(max-width:360px){.hero-character{height:370px;margin-top:18px}.hero-whisper{margin-top:22px}}

.song-section{padding:38px 28px;text-align:center;border-block:1px solid #cba66d55}.song-section h2{font-size:38px;margin:12px 0}.song-section>p:not(.eyebrow),.song-section>a{font-size:13px}.song-frame{margin:24px auto 15px;min-height:220px;width:100%;max-width:480px}.song-frame iframe{width:100%;height:220px;border:0}.song-section>a{display:inline-block;padding:12px;text-underline-offset:4px}
