@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Inter:wght@400;500;600&display=swap";:root{--serif:"Cormorant Garamond", Georgia, serif;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--page-pad:clamp(22px, 6vw, 72px);color:#111;font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#050505}*{box-sizing:border-box}html{scroll-behavior:smooth;background:#050505;min-width:320px}body{background:#050505;min-width:320px;min-height:100svh;margin:0}img{max-width:100%}#root{min-height:100svh}.envelope-intro{z-index:30;background:#151c16;place-items:center;min-height:100svh;transition:opacity .9s .52s,visibility .9s .52s;display:grid;position:fixed;inset:0;overflow:hidden}.envelope-intro.is-open{opacity:0;visibility:hidden;pointer-events:none}.intro-photo,.intro-shade{width:100%;height:100%;position:absolute;inset:0}.intro-photo{object-fit:cover;object-position:center 52%;filter:saturate(.94)contrast(1.03)brightness(.92);transition:transform 1.45s cubic-bezier(.22,.72,.2,1);transform:scale(1.015)}.intro-shade{background:#05090661;transition:background .9s}.envelope-intro.is-open .intro-photo{transform:scale(1.09)}.envelope-intro.is-open .intro-shade{background:#0509061a}.envelope-button{z-index:2;color:#fff;cursor:pointer;width:min(100vw - 44px,460px);min-height:min(78svh,680px);font:inherit;-webkit-tap-highlight-color:transparent;background:#00000014;border:1px solid #ffffff9e;place-items:center;padding:28px;transition:opacity .42s,transform .76s;display:grid;position:relative}.opening-card{text-shadow:0 5px 26px #0000009e;justify-items:center;gap:14px;width:100%;display:grid}.opening-kicker,.open-copy{letter-spacing:.34em;text-transform:uppercase;font-size:.64rem;line-height:1.6}.opening-kicker{color:#ffffffb8;margin-bottom:16px}.opening-mark{font-family:var(--serif);letter-spacing:-.1em;font-size:clamp(5.7rem,28vw,8.6rem);line-height:.74;transform:translate(-.05em)}.opening-card strong{font-family:var(--serif);font-size:clamp(2.1rem,10vw,3.2rem);font-weight:400;line-height:1}.opening-card small{font-family:var(--serif);letter-spacing:.3em;margin-top:8px;font-size:1rem}.opening-rule{background:#ffffffa6;width:54px;height:1px;margin:18px 0 8px}.open-copy{color:#ffffffe6}.envelope-intro.is-open .envelope-button{opacity:0;transform:translateY(-22px)scale(.97)}.site{opacity:0;min-height:100svh;transition:opacity .85s .62s,transform .85s .62s;transform:translateY(24px)}.site.is-entered{opacity:1;transform:translateY(0)}.reveal{opacity:0;transition:opacity .82s cubic-bezier(.22,1,.36,1),transform .82s cubic-bezier(.22,1,.36,1);transform:translateY(24px)}.reveal.is-visible{opacity:1;transform:translateY(0)}.media-reveal img{transition:transform 1.4s cubic-bezier(.22,1,.36,1);transform:scale(1.035)}.media-reveal.is-visible img{transform:scale(1)}.floral-frame.media-reveal img{transform:translate(-1.5%)scale(1.035)}.floral-frame.media-reveal.is-visible img{transform:translate(-1.5%)scale(1)}.site.is-entered .hero-content>*{animation:.85s cubic-bezier(.22,1,.36,1) both hero-rise}.site.is-entered .hero-content>:nth-child(2){animation-delay:90ms}.site.is-entered .hero-content>:nth-child(3){animation-delay:.16s}.site.is-entered .hero-content>:nth-child(4){animation-delay:.22s}.site.is-entered .hero-content>:nth-child(5){animation-delay:.29s}@keyframes hero-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.section,.section-dark{position:relative;overflow:hidden}.section{color:#111;background:#fff}.section-dark{color:#fff;background:#050505}.hero-section{min-height:100svh;padding:56px var(--page-pad) 82px;place-items:end center;display:grid}.hero-bg,.hero-vignette{position:absolute;inset:0}.hero-bg{object-fit:cover;object-position:center center;filter:saturate(.94)contrast(1.03)brightness(.92);width:100%;height:100%}.hero-vignette{background:#04090540}.hero-content{z-index:10;text-align:center;text-shadow:0 4px 24px #000000b8;justify-items:center;width:min(100%,560px);padding-bottom:28px;display:grid;position:relative}.monogram{font-family:var(--serif);color:#fffffff0;text-shadow:0 10px 38px #00000094;justify-content:center;align-items:flex-start;gap:.02em;margin:0 0 -5px;font-size:clamp(4.7rem,22vw,8.2rem);line-height:.78;display:flex}.monogram span{display:block}.monogram-g{margin-top:.12em;margin-left:-.05em}.hero-content h1{font-family:var(--serif);color:#fff;margin:8px 0 0;font-size:clamp(2.35rem,11.5vw,4.5rem);font-weight:400;line-height:.96}.hero-date{font-family:var(--serif);letter-spacing:.34em;color:#ffffffdb;margin:20px 0 0;font-size:clamp(1.28rem,5.5vw,2.2rem)}.hero-invite{letter-spacing:.36em;text-transform:uppercase;color:#ffffffc2;margin:18px 0 24px;font-size:.66rem}.countdown{border-block:1px solid #ffffff75;grid-template-columns:repeat(4,minmax(0,1fr));width:min(100%,560px);display:grid}.countdown-item{border-right:1px solid #ffffff61;gap:4px;padding:16px 4px;display:grid}.countdown-item:last-child{border-right:0}.countdown strong{font-family:var(--serif);font-size:clamp(1.7rem,8vw,3.4rem);font-weight:400;line-height:1}.countdown small{letter-spacing:.22em;text-transform:uppercase;color:#ffffffb8;font-size:.58rem}.music-control{top:max(18px, env(safe-area-inset-top));z-index:18;color:#fff;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);letter-spacing:.12em;text-transform:uppercase;background:#0000005c;border:1px solid #ffffff47;border-radius:999px;align-items:center;gap:8px;min-height:42px;padding:0 13px;font-size:.66rem;display:inline-flex;position:fixed;right:18px}.scroll-cue{z-index:10;color:#ffffffc2;text-transform:uppercase;letter-spacing:.28em;justify-items:center;gap:12px;font-size:.6rem;text-decoration:none;display:grid;position:absolute;bottom:28px}.hero-envelope-pocket{display:none}.scroll-cue i{border-bottom:1px solid;border-right:1px solid;width:20px;height:20px;animation:1.8s ease-in-out infinite cue-drift;transform:rotate(45deg)}@keyframes cue-drift{0%,to{opacity:.58;transform:translateY(0)rotate(45deg)}50%{opacity:1;transform:translateY(6px)rotate(45deg)}}.invitation-section{padding:86px var(--page-pad);gap:32px;display:grid}.section-copy{gap:20px;max-width:520px;display:grid}.guest-line,.label{letter-spacing:.32em;text-transform:uppercase;color:#5f6265;margin:0;font-size:.68rem}.section-copy h2,.calendar-heading h2,.venue-copy h2,.dress-code-copy h2,.program-heading h2,.closing-section h2{font-family:var(--serif);color:#080808;margin:0;font-weight:400;line-height:1}.section-copy h2{font-size:clamp(2.55rem,12vw,4.6rem)}.section-copy p:not(.guest-line){font-family:var(--serif);color:#242424;margin:0;font-size:clamp(1.08rem,4.8vw,1.55rem);line-height:1.56}.floral-frame{background:#191a18;align-self:center;margin:0;overflow:hidden}.floral-frame img{object-fit:cover;object-position:center 42%;filter:saturate(.94)contrast(1.03)brightness(.98);width:104%;max-width:none;max-height:620px;display:block;transform:translate(-1.5%)}.calendar-section{padding:82px var(--page-pad) 92px;background:linear-gradient(#fff,#f8f8f7 58%,#fff),#fff;border-block:1px solid #e4e4e4}.calendar-heading{align-items:center;gap:16px;width:min(100%,900px);margin:0 auto 34px;display:flex}.calendar-heading h2{font-size:clamp(2.35rem,10vw,4.3rem)}.calendar-grid{border:1px solid #dadada;background:#fff;border-top-color:#111;grid-template-columns:repeat(7,minmax(0,1fr));width:min(100%,900px);margin:0 auto;display:grid;position:relative;overflow:hidden;box-shadow:0 26px 70px #00000013,inset 0 1px #ffffffe6}.calendar-grid:before,.calendar-grid:after{content:none}.week-day,.calendar-day,.calendar-empty{border-bottom:1px solid #d9d9d9;border-right:1px solid #d9d9d9;place-items:center;min-height:42px;display:grid}.week-day{letter-spacing:.2em;text-transform:uppercase;color:#6f6f6f;background:#f7f7f7;min-height:46px;font-size:.58rem}.calendar-day{isolation:isolate;font-family:var(--serif);background:linear-gradient(#ffffffe6,#f8f8f7b8);font-size:clamp(1rem,4.4vw,1.48rem);transition:background .22s,color .22s;position:relative}.calendar-day:hover{background:#f3f2f0}.calendar-day.is-wedding-day{color:#fff;text-shadow:0 1px 2px #00000040}.calendar-day.is-wedding-day i{z-index:-1;background:#9d0f18;width:30px;height:30px;position:absolute;top:50%;left:50%;transform:translate(-50%,-41%)rotate(-45deg);box-shadow:0 8px 18px #9d0f1847}.calendar-day.is-wedding-day i:before,.calendar-day.is-wedding-day i:after{content:"";background:#9d0f18;border-radius:50%;width:30px;height:30px;position:absolute}.calendar-day.is-wedding-day i:before{top:-15px;left:0}.calendar-day.is-wedding-day i:after{top:0;left:15px}.venue-section{border-bottom:1px solid #e2e2e2;padding:0;display:grid}.venue-photo{min-height:300px;margin:0}.venue-photo img{object-fit:cover;filter:grayscale()contrast(1.08);width:100%;height:100%;min-height:300px;display:block}.venue-copy{padding:54px var(--page-pad);align-content:center;gap:18px;display:grid}.venue-copy h2{font-size:clamp(3.6rem,18vw,7rem)}.venue-type,.venue-address,.venue-time{letter-spacing:.16em;text-transform:uppercase;margin:0}.venue-type,.venue-address{font-size:.72rem}.venue-address{color:#575757;letter-spacing:.05em;text-transform:none;align-items:center;gap:8px;display:flex}.venue-time{color:#565656;gap:6px;margin-top:12px;font-size:.68rem;display:grid}.venue-time strong{font-family:var(--serif);color:#101010;font-size:3.3rem;font-weight:400;line-height:1}.outline-button{color:#151515;letter-spacing:.16em;text-transform:uppercase;background:0 0;border:1px solid #151515;justify-content:center;justify-self:start;align-items:center;min-height:44px;padding:0 20px;font-size:.68rem;text-decoration:none;transition:background .24s,color .24s,transform .24s;display:inline-flex}.outline-button:hover{color:#fff;background:#151515;transform:translateY(-2px)}.dress-code-section{padding:84px var(--page-pad) 96px;background:#f3eee6;border-bottom:1px solid #ded8cf;gap:38px;display:grid}.dress-code-copy{align-content:center;gap:18px;max-width:560px;display:grid}.dress-code-copy h2{font-size:clamp(2.65rem,12vw,4.9rem)}.dress-code-copy>p:not(.label){font-family:var(--serif);color:#2d2923;margin:0;font-size:clamp(1.08rem,4.8vw,1.55rem);line-height:1.6}.dress-code-copy .dress-code-note{font-family:var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#5d554b;border-top:1px solid #3f362b47;padding-top:14px;font-size:.65rem;line-height:1.8}.dress-code-board{background:#eee4d7;margin:0;overflow:hidden;box-shadow:0 24px 64px #4332201f}.dress-code-board img{filter:saturate(.96)contrast(1.01);width:100%;height:auto;margin-top:-39%;display:block}.program-section{padding:84px var(--page-pad) 108px}.program-heading{gap:16px;max-width:680px;margin-bottom:44px;display:grid}.program-heading h2{font-size:clamp(2.3rem,11vw,4.5rem)}.program-flow{gap:8px;max-width:760px;margin:0 auto;display:grid;position:relative}.program-flow:before{content:"";background:linear-gradient(#0000,#101010 12% 88%,#0000);width:1px;position:absolute;inset:8px auto 8px 50%}.program-item{grid-template-columns:1fr 18px 1fr;align-items:center;min-height:116px;display:grid;position:relative}.program-item:nth-child(2){transition-delay:60ms}.program-item:nth-child(3){transition-delay:.12s}.program-item:nth-child(4){transition-delay:.18s}.program-item:nth-child(5){transition-delay:.24s}.program-item time{font-family:var(--serif);font-size:clamp(1.15rem,5vw,1.9rem)}.program-item>div{gap:6px;display:grid}.program-item h3{letter-spacing:.24em;text-transform:uppercase;margin:0;font-size:.74rem}.program-item p{color:#555;margin:0;font-size:.92rem;line-height:1.5}.program-item.is-left time{justify-self:end;padding-right:24px}.program-item.is-left>div{grid-column:3;padding-left:24px}.program-item.is-right time{grid-column:3;justify-self:start;padding-left:24px}.program-item.is-right>div{text-align:right;grid-area:1/1;justify-items:end;padding-right:24px}.program-dot{z-index:1;background:#111;border-radius:50%;grid-column:2;justify-self:center;width:9px;height:9px;box-shadow:0 0 0 8px #fff}.closing-section p{color:#ffffffa8}.closing-section h2{color:#fff;max-width:620px}.closing-section{min-height:clamp(430px,58svh,620px);padding:64px var(--page-pad);text-align:center;background:#030303;align-content:center;place-items:center;gap:16px;display:grid}.closing-bg{pointer-events:none;object-fit:cover;object-position:center center;filter:saturate(.94)contrast(1.03)brightness(.88);opacity:1;width:100%;height:100%;position:absolute;inset:0}.closing-section:after{content:"";background:#04080480;position:absolute;inset:0}.closing-content{z-index:2;justify-items:center;gap:14px;display:grid;position:relative}.closing-section p{letter-spacing:.38em;text-transform:uppercase;margin:0}.closing-section h2{font-size:clamp(3.1rem,13vw,6.2rem);line-height:.96}.closing-line{background:#ffffff75;width:74px;height:1px;margin:4px 0;display:block}.closing-content strong{font-family:var(--serif);color:#ffffffc7;font-size:clamp(1.5rem,5vw,2.35rem);font-weight:400}.closing-mark{font-family:var(--serif);color:#ffffff6b;font-size:1.35rem}button{cursor:pointer;font-family:var(--sans)}button:disabled{cursor:not-allowed;opacity:.72}button:focus-visible,a:focus-visible{outline-offset:4px;outline:2px solid #9d0f18}.envelope-button:focus-visible{outline-offset:14px;outline:1px solid #ffffff8a}@media (width>=760px){.site{max-width:none;box-shadow:none;margin:0 auto}.hero-section{padding-inline:clamp(72px,8vw,132px)}.hero-content{transform:translateY(-8px)}.invitation-section{grid-template-columns:minmax(0,.92fr) minmax(300px,.78fr);align-items:center;padding-block:120px}.floral-frame img{max-height:620px}.calendar-section{padding-inline:clamp(72px,9vw,128px)}.week-day,.calendar-day,.calendar-empty{min-height:68px}.venue-section{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr)}.venue-photo,.venue-photo img{min-height:560px}.dress-code-section{grid-template-columns:minmax(0,.82fr) minmax(360px,.72fr);align-items:center;gap:clamp(56px,7vw,112px);padding-block:120px}.dress-code-board{justify-self:end;max-width:620px}.program-section{padding-inline:clamp(72px,9vw,128px)}}@media (width<=759px){.envelope-intro{padding:max(20px, env(safe-area-inset-top)) 18px max(20px, env(safe-area-inset-bottom))}.envelope-button{width:100%;min-height:calc(100svh - max(40px, env(safe-area-inset-top) + env(safe-area-inset-bottom)));padding:24px 18px}.open-copy{max-width:240px;line-height:1.6}.hero-section{border-radius:0;min-height:100svh;padding:54px 20px 72px}.hero-bg{object-position:center center}.monogram{font-size:clamp(4.65rem,23vw,6.1rem)}.monogram-t{transform:translateY(-.08em)}.monogram-g{margin-top:.16em}.hero-content h1{white-space:nowrap;max-width:100%;font-size:clamp(2rem,10.1vw,2.8rem)}.hero-date{margin-top:18px}.countdown{width:min(100%,350px)}}@media (width<=540px){.music-control span{display:none}.music-control{justify-content:center;width:42px;padding:0}.program-item{grid-template-columns:58px 18px minmax(0,1fr)}.program-item.is-right time{grid-column:1;justify-self:end;padding:0 18px 0 0}.program-item.is-right>div,.program-item.is-left>div{text-align:left;grid-column:3;justify-items:start;padding:0 0 0 18px}.program-flow:before{left:67px}.program-item h3{letter-spacing:.18em;font-size:.68rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.reveal.is-visible{opacity:1;transform:none}.media-reveal img,.media-reveal.is-visible img{transform:none}.floral-frame.media-reveal img,.floral-frame.media-reveal.is-visible img{transform:translate(-1.5%)}}
