@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@400;500;600&family=Great+Vibes&display=swap');
:root{--canvas:#f8f5ef;--wine:#582d3c;--gold:#b29464;--ink:#3f3434;--muted:#7f706b;--sans:'DM Sans',Arial,sans-serif;--serif:'Cormorant Garamond',Georgia,serif;--script:'Great Vibes','Brush Script MT',cursive}
*{box-sizing:border-box}
html{background:var(--canvas)}
body{margin:0;min-width:320px;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;background:radial-gradient(ellipse at 50% 38%,#fffdf9 1%,#f9f5ef 54%,#f2e9de 100%)}
::selection{background:#dbc5c9;color:#442534}
a:focus-visible{outline:2px solid #96683c;outline-offset:5px}
.site-frame,.site-inner-frame{position:fixed;inset:19px;border:1px solid #c6ab7e76;pointer-events:none;z-index:10}
.site-inner-frame{inset:28px;border-color:#fffaf3c6}
.public-wrap{position:relative;display:flex;flex-direction:column;isolation:isolate;min-height:100vh;min-height:100svh;overflow:hidden}
.public-header{z-index:3;position:relative;width:min(100% - 130px,1170px);min-height:95px;display:flex;align-items:center;justify-content:space-between;margin:0 auto;gap:25px}
.brand-monogram{color:var(--wine);font:500 29px/1 var(--serif);letter-spacing:-.025em;text-decoration:none;white-space:nowrap}
.brand-monogram span,.public-footer i{font-style:italic;color:var(--gold);font-weight:400;font-size:.75em;margin:0 .05em}
.header-caption,.header-year{font:600 10px/1.5 var(--sans);letter-spacing:.28em;color:#967c64;white-space:nowrap}
.header-year{letter-spacing:.13em}
.public-main{position:relative;flex:1;display:grid;place-items:center;padding:48px 30px 105px;isolation:isolate}
.public-main:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,#fffdf8b5,transparent 62%);z-index:-2;pointer-events:none}
.public-arch{position:absolute;inset:0 max(8.6vw,80px) -100px;border:1px solid #c9ae8480;border-radius:50% 50% 0 0 / 34% 34% 0 0;pointer-events:none;z-index:-1}
.public-arch:before{content:"";position:absolute;inset:11px;border:1px solid #e7dac5b8;border-radius:inherit}
.public-floral{position:absolute;z-index:-1;pointer-events:none;user-select:none;filter:saturate(.78);object-fit:contain}
.floral-top{width:clamp(370px,42vw,660px);height:auto;top:5px;left:-95px;opacity:.83}
.floral-bottom{width:clamp(410px,51vw,700px);height:auto;bottom:12px;right:-110px;opacity:.68}
.public-content{width:min(100%,900px);text-align:center;position:relative;z-index:1;margin:0 auto;padding:60px 0 80px;animation:riseIn 1.1s both cubic-bezier(.2,.7,.2,1)}
.pretitle{display:flex;align-items:center;justify-content:center;gap:18px;margin:0 0 30px;color:#92765e;font:600 10px/1.7 var(--sans);letter-spacing:.34em;white-space:nowrap}
.hairline{display:block;background:var(--gold);width:39px;height:1px;flex:none;opacity:.7}
.opening-line{font:italic 400 clamp(20px,2.6vw,28px)/1.25 var(--serif);color:#8d7568;margin:0}
.couple-names{font:400 clamp(79px,11.9vw,157px)/1 var(--script);color:var(--wine);margin:30px 0 0;font-weight:400;text-shadow:0 1px 0 #fffcf5}
.couple-names>span{display:inline-block;white-space:nowrap}
.couple-names em{display:inline-block;font:400 .45em/1 var(--serif);color:var(--gold);vertical-align:middle;margin:0 .14em .12em}
.fine-ornament{display:flex;align-items:center;justify-content:center;gap:15px;color:var(--gold);margin:26px auto 28px}
.fine-ornament>span{width:67px;height:1px;background:linear-gradient(90deg,transparent,#b294649c)}
.fine-ornament>span:last-child{transform:rotate(180deg)}
.fine-ornament svg{width:39px;height:22px;flex-shrink:0}
.public-message{font:400 clamp(25px,3.2vw,38px)/1.25 var(--serif);letter-spacing:-.018em;color:#60434b;margin:0 auto 25px}
.public-month{font:600 10px/1.6 var(--sans);letter-spacing:.34em;color:#9f8062;margin:0}
.public-month span{letter-spacing:.2em}
.invitation-notice{margin:43px auto 0;width:min(100%,420px)}
.notice-rule{display:block;width:36px;height:1px;background:#bda17b;margin:0 auto 17px;opacity:.6}
.invitation-notice p{font:400 13px/1.85 var(--sans);color:#786b67;letter-spacing:.015em;margin:0}
.public-footer{position:relative;z-index:3;width:min(100% - 130px,1170px);min-height:87px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 auto;color:#a08973;font:600 9px/1.7 var(--sans);letter-spacing:.2em}
.footer-diamond{font-size:23px;color:var(--gold);font-weight:400}
/* Quiet, unmistakable not-found state, using the same visual vocabulary. */
.public-not-found .public-content{max-width:740px;padding-top:35px}
.public-not-found .floral-top{opacity:.72}
.public-not-found .floral-bottom{opacity:.65}
.error-signet{width:87px;height:87px;border:1px solid #dbc4a4;border-radius:50%;display:grid;place-items:center;margin:0 auto 20px;color:#a78760;background:#fffaf49e;box-shadow:0 12px 40px #573c2410}
.error-signet svg{width:48px;height:48px}
.error-title{font:400 clamp(61px,8.5vw,111px)/1.05 var(--script);color:var(--wine);margin:12px 0 0}
.public-not-found .fine-ornament{margin:14px auto 22px}
.error-lead{font:400 clamp(22px,2.8vw,31px)/1.24 var(--serif);color:#60454d;margin:0 0 14px}
.error-body{font:400 14px/1.8 var(--sans);color:#786a65;width:min(100%,430px);margin:0 auto}
.home-action{display:inline-flex;align-items:center;justify-content:center;gap:15px;background:var(--wine);border:1px solid var(--wine);color:#fff9f2;text-decoration:none;min-height:54px;padding:15px 25px;margin-top:32px;font:600 12px/1.2 var(--sans);letter-spacing:.03em;box-shadow:0 9px 24px #572c3923;transition:transform .25s ease,background .25s ease,box-shadow .25s ease}
.home-action svg{width:17px;height:17px}
.home-action:hover{transform:translateY(-3px);background:#6a374a;box-shadow:0 12px 28px #572c3930}
@keyframes riseIn{from{opacity:0;transform:translateY(17px)}to{opacity:1;transform:translateY(0)}}
@media (max-width:850px){.header-caption{display:none}.public-header,.public-footer{width:calc(100% - 94px)}.public-arch{inset:32px 43px -70px}.floral-top{width:440px;top:8px;left:-143px;opacity:.61}.floral-bottom{width:420px;right:-115px;bottom:5px;opacity:.48}.public-content{padding:80px 0 105px}.couple-names{font-size:clamp(81px,13vw,122px)}}
@media (max-width:600px){.site-frame{inset:12px}.site-inner-frame{inset:19px}.public-header{width:calc(100% - 67px);min-height:76px}.brand-monogram{font-size:25px}.header-year{font-size:9px;letter-spacing:.1em}.public-main{padding:27px 27px 65px;min-height:580px}.public-arch{inset:31px 27px -20px;border-radius:50% 50% 0 0 / 21% 21% 0 0}.floral-top{width:292px;top:0;left:-115px;opacity:.58}.floral-bottom{width:305px;bottom:5px;right:-130px;opacity:.45}.public-content{padding:80px 0 90px}.pretitle{font-size:9px;letter-spacing:.2em;gap:10px;margin-bottom:27px}.hairline{width:23px}.opening-line{font-size:20px}.couple-names{font-size:clamp(72px,17vw,112px);line-height:.88;margin:27px auto 18px;max-width:340px}.couple-names>span{display:block}.couple-names em{font-size:.5em;line-height:.8;margin:.1em auto .12em}.fine-ornament{margin:18px auto 23px}.public-message{font-size:28px;line-height:1.13}.public-month{font-size:9px;letter-spacing:.2em}.invitation-notice{margin-top:31px}.invitation-notice p{font-size:12px}.public-footer{min-height:73px;width:calc(100% - 66px);font-size:8px;letter-spacing:.11em}.public-not-found .public-content{padding:75px 0 80px}.error-signet{width:75px;height:75px;margin-bottom:22px}.error-title{font-size:clamp(56px,13vw,82px)}.error-lead{font-size:25px}.error-body{font-size:13px;max-width:290px}.public-not-found .pretitle{margin-bottom:23px}.home-action{margin-top:29px}}
@media (max-width:370px){.header-year{display:none}.public-footer{font-size:7px}.floral-top{left:-125px}.couple-names{font-size:68px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.site-frame,.site-inner-frame{position:absolute}body{background:#fff!important}.public-main{min-height:210mm}.public-content{animation:none}}
