:root{--accent:#57634a;--paper:#f3f0e6;--ink:#343c2e;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font:12px/1.8 var(--sans)}body:has(dialog[open]){overflow:hidden}[hidden]{display:none!important}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}h2{font:400 clamp(34px,4vw,52px)/1.05 var(--serif);white-space:pre-line;text-wrap:balance}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:5px}img{display:block;max-width:100%}.eyebrow{text-transform:uppercase;letter-spacing:.23em;font:500 9px/1.7 var(--sans)}header{position:absolute;inset:0 0 auto;z-index:5;padding:18px 5%;display:flex;align-items:center;justify-content:space-between;color:white}header>a{font:italic 30px var(--serif)}.respond-link{border:0;border-bottom:1px solid #fff7;color:white;background:none;font-size:10px;letter-spacing:.12em;padding:7px 1px}.hero{height:85svh;min-height:580px;max-height:900px;position:relative;overflow:hidden;color:white;background:var(--accent)}.hero>img{width:100%;height:100%;object-fit:cover;object-position:var(--hero-pos)}.hero-shade{position:absolute;inset:0;background:linear-gradient(#1d201818,transparent 25%,#19201619 45%,#111c14bd)}.hero-copy{position:absolute;bottom:7%;width:100%;text-align:center;padding:0 22px}.hero h1{font:400 clamp(68px,7vw,98px)/.9 var(--serif);margin:18px auto 22px;overflow-wrap:anywhere}.hero h1 span{display:block}.hero h1 span:first-child{font-size:.5em;font-style:italic;margin-bottom:6px}.hero h1 span:nth-child(2){font-size:.3em;font-style:italic;margin-bottom:8px}#hero-lines:focus{outline:none}.down{display:block;width:35px;height:30px;margin:22px auto 0}.down span{display:block;width:1px;height:25px;background:#fff9;margin:auto;position:relative}.down span:after{content:'';width:6px;height:6px;border-right:1px solid #fff;border-bottom:1px solid #fff;transform:rotate(45deg);position:absolute;bottom:0;left:-3px}.invitation{text-align:center;padding:55px 24px 40px;position:relative;max-width:760px;margin:auto}.invitation h2{margin:15px auto 18px}.invitation>p:not(.eyebrow):not(.signature){font-size:12px;max-width:455px;line-height:1.9;margin:auto}.signature{font:italic 23px var(--serif);margin-top:18px}.celebration{max-width:1000px;margin:auto;position:relative;padding:30px 24px 40px;isolation:isolate}.scene-heading{text-align:center}.scene-heading h2{margin:12px 0 0;font-size:38px}.living-scene{height:345px;max-width:650px;margin:0 auto;position:relative;isolation:isolate}.living-scene canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1}.scene-aura{position:absolute;inset:5% 15%;background:radial-gradient(ellipse,#fffdf5,transparent 65%);filter:blur(12px);z-index:0}.living-scene:after{content:'';position:absolute;bottom:20px;left:20%;right:20%;height:10px;border-radius:50%;background:#5c513a0e;filter:blur(8px)}#scene-trigger{position:absolute;z-index:2;inset:0;width:100%;background:transparent;border:0;color:var(--ink);display:flex;align-items:flex-end;justify-content:center;padding-bottom:18px;font-size:10px;letter-spacing:.03em}#scene-trigger:disabled{cursor:wait}.touch-ring{position:absolute;bottom:59px;left:calc(50% - 17px);width:34px;height:34px;border:1px solid #bda67a80;border-radius:50%;animation:breathe 2.5s ease-in-out infinite;pointer-events:none}#scene-hint{background:var(--paper);padding:0 8px;max-width:100%}.date-panel{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center;padding-top:4px;animation:appear 1.2s ease both;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--paper) 92%,transparent) 0%,color-mix(in srgb,var(--paper) 72%,transparent) 26%,transparent 59%)}#date-day{font:400 85px/.9 var(--serif)}#date-month{font:italic 29px/1.2 var(--serif);margin:5px 0 15px}.calendar-link{pointer-events:auto;border:0;background:var(--accent);color:#fffdf3;font-size:10px;letter-spacing:.05em;padding:9px 18px;border-radius:1px}#countdown{font-size:9px;margin-top:12px;opacity:.75}.scene-replay{position:absolute;right:0;bottom:12px;font-size:8px;z-index:4;background:transparent;border:0;border-bottom:1px solid #81725255;padding:4px;color:var(--ink)}.timeline{display:grid;grid-template-columns:1fr 1fr;position:relative;max-width:690px;margin:5px auto 0;gap:65px}.timeline:before{content:'';position:absolute;top:50px;left:22%;right:22%;height:1px;background:linear-gradient(90deg,transparent,#c7b892,transparent);z-index:-1}.timeline article{text-align:center;position:relative}.timeline .icon-button{margin:0 auto 5px;display:block;width:100px;height:100px;border:0;background:var(--paper);padding:0;position:relative}.timeline img{height:100%;width:100%;transition:transform .6s}.timeline .icon-button:hover img{transform:translateY(-5px) scale(1.04)}.timeline .time{font:italic 21px var(--serif);color:var(--accent)}.timeline h3{font:500 23px/1.1 var(--serif);margin:5px 0 8px;text-wrap:balance}.timeline .address{font-size:10px;opacity:.85}.timeline .map-link{font-size:9px;border-bottom:1px solid #a59b8370;background:none;padding:3px 0;display:inline-block;margin-top:5px}.venue-detail{margin-top:7px;font-size:10px;animation:appear .5s ease}.response{text-align:center;padding:35px 24px 40px;border-top:1px solid #90846b22;max-width:850px;margin:0 auto}.response h2{font-size:38px;margin:12px 0 20px}.primary{border:1px solid var(--accent);background:var(--accent);color:#fffdf6;padding:13px 25px;font-size:10px;letter-spacing:.06em;line-height:1.6;box-shadow:0 5px 18px #3a352212}.primary:hover{filter:brightness(1.12)}#deadline{font-size:9px;opacity:.7;margin-top:13px}footer{padding:14px 24px 28px;text-align:center}footer p{font:italic 21px/1.3 var(--serif)}.mini-cross{display:block;position:relative;width:1px;height:22px;background:#b49b6c;margin:0 auto 15px}.mini-cross:after{content:'';position:absolute;width:13px;height:1px;top:7px;left:-6px;background:#b49b6c}.text-button{background:none;border:0;border-bottom:1px solid #a5967866;padding:5px 0;font-size:9px}footer .text-button{font-size:8px;opacity:.55;margin-top:18px}dialog{border:0;padding:0;color:var(--ink)}dialog::backdrop{background:#1d261b90;backdrop-filter:blur(6px)}#opening{width:100%;height:100%;max-width:none;max-height:none;margin:0;overflow:hidden;background:var(--paper)}.intro-background{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,#fffdf3,#eee9d9 58%,#d2d0be);pointer-events:none}.toile-tendresse .intro-background{background:radial-gradient(ellipse at 50% 45%,#fffaf1,#eee0d7 62%,#d4c2b6)}.light-arch{position:absolute;left:calc(50% - 185px);bottom:-60px;width:370px;height:88%;border:1px solid #fff9;border-radius:190px 190px 0 0;box-shadow:0 0 75px #fff9,inset 0 0 70px #fff8;background:linear-gradient(110deg,#fff8,transparent,#fff6);transform:perspective(600px) rotateX(2deg)}.light-arch:after{content:'';position:absolute;inset:15px;border:1px solid #fff7;border-radius:190px 190px 0 0}.intro-top{text-align:center;position:absolute;top:8%;left:15px;right:15px;z-index:3;pointer-events:none}.intro-top h2{font:italic clamp(38px,5vw,55px)/1.1 var(--serif);margin-top:15px}#opening-stage{position:absolute;inset:15% 0 15%;z-index:2}#opening-stage canvas{display:block;width:100%;height:100%}.intro-actions{position:absolute;bottom:7%;left:20px;right:20px;z-index:4;display:flex;flex-direction:column;align-items:center;text-align:center;transition:opacity .5s}.intro-actions p{font:italic 21px var(--serif);margin-bottom:17px}.intro-actions .text-button{margin-top:12px;font-size:9px}.intro-actions .primary{min-width:230px}.intro-light{position:absolute;inset:-30%;z-index:8;pointer-events:none;background:radial-gradient(ellipse,#fffef7 10%,#fffbeefa 35%,transparent 65%);transform:scale(.01);opacity:0;transition:opacity .9s ease,transform 1.4s ease-in}.intro-depart .intro-actions>.primary,.intro-depart #intro-hint{opacity:0;pointer-events:none}.intro-reveal .intro-light{transform:scale(2.8);opacity:1}#rsvp-dialog{width:min(450px,calc(100% - 30px));max-height:90svh;overflow:auto;margin:auto;background:#fdfaf3;padding:32px 34px 28px;box-shadow:0 20px 100px #0003;outline:1px solid #b7a78c66;outline-offset:-10px}.close{position:absolute;right:14px;top:9px;font:25px var(--serif);background:none;border:0;padding:2px 9px}.response-monogram{font:italic 40px var(--serif);color:var(--accent);line-height:1.1;margin-bottom:13px}#rsvp-dialog h2{font-size:38px;margin:10px 0 20px}form>label{display:block;font-size:10px;margin-bottom:14px}input:not([type=radio]),textarea{display:block;width:100%;border:0;border-bottom:1px solid #a59b8770;border-radius:0;background:transparent;padding:6px 0;color:var(--ink);min-width:0}fieldset{border:0;padding:0;margin:0 0 16px}legend{font-size:10px;margin-bottom:8px}.radio{font-size:10px;display:inline-flex;gap:5px;align-items:center;margin-right:20px}.radio input{accent-color:var(--accent)}.guest-counts{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-bottom:16px;font-size:10px}.guest-counts input{max-width:100%;font-size:15px}.connection-note{font-size:9px;line-height:1.6;color:#746c5f;margin:15px 0}form>.primary{width:100%}#form-status{font-size:10px;line-height:1.6;margin-top:12px}.local-actions{display:flex;justify-content:space-between;margin-top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#loading{height:100svh;display:grid;place-items:center;font:italic 25px var(--serif)}#error{padding:40px;color:#823e37}.scene-unavailable #opening-stage:after{content:'';display:block;width:70px;height:110px;border:1px solid #baa277;border-top-left-radius:50%;border-top-right-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 65px #fff}#date-fallback{text-align:center;padding:20px}#fallback-date{font:italic 20px var(--serif);background:transparent;border:0;border-bottom:1px solid #a58b67;padding:5px}
@keyframes breathe{50%{transform:scale(1.25);opacity:.25}}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:900px){.hero>img{width:64%;margin-left:auto;object-position:center 10%}.hero-shade{background:linear-gradient(90deg,#293223f5,#293223df 25%,#29322355 53%,transparent 78%)}.hero-copy{width:49%;bottom:18%}.toile-tendresse .hero-shade{background:linear-gradient(90deg,#553d40f5,#553d40df 25%,#553d4040 53%,transparent 78%)}.hero-copy .eyebrow{max-width:320px;margin:auto}.hero h1{font-size:100px}.hero{height:80svh;min-height:570px;max-height:850px}.living-scene{height:350px}.celebration{padding-top:25px;padding-bottom:25px}.timeline{gap:120px}.invitation{padding-top:50px;padding-bottom:25px}.response{padding-top:30px}.intro-top{top:6%}#opening-stage{inset:10% 10% 13%}.intro-actions{bottom:5%}.light-arch{width:480px;left:calc(50% - 240px)}}
@media(max-width:600px){header{padding:15px 6%}.hero{height:78svh;min-height:550px;max-height:800px}.hero h1{font-size:78px;margin:15px auto 18px}.hero-copy .eyebrow{font-size:8px}.hero-copy{bottom:5%}.down{margin-top:15px}.invitation{padding:38px 25px 25px}.invitation h2{font-size:36px;margin:13px 0 16px}.invitation>p:not(.eyebrow):not(.signature){font-size:11px;max-width:330px}.signature{font-size:21px;margin-top:15px}.celebration{padding:23px 20px 25px}.scene-heading h2{font-size:34px}.living-scene{height:300px;margin-top:0}.timeline{gap:22px;margin-top:0}.timeline .icon-button{width:90px;height:90px;margin-bottom:3px}.timeline:before{top:45px}.timeline h3{font-size:21px;min-height:46px;display:grid;align-items:center;margin:3px 0 5px}.timeline .time{font-size:20px}.timeline .address{font-size:9px}.timeline .map-link{font-size:8px}.timeline .venue-detail{font-size:9px}.response{padding:29px 25px 28px}.response h2{font-size:34px;max-width:300px;margin:12px auto 18px}footer{padding-top:9px}footer p{font-size:18px;max-width:300px;margin:auto}#scene-hint{font-size:9px}#date-day{font-size:70px}#date-month{font-size:26px}#countdown{font-size:8px}.intro-top{top:7%}.intro-top h2{font-size:41px}.intro-top .eyebrow{font-size:8px}#opening-stage{inset:16% -5% 18%}.intro-actions{bottom:6%}.intro-actions p{font-size:19px;margin-bottom:14px}.intro-actions .primary{font-size:9px}.light-arch{left:calc(50% - 148px);width:296px}.scene-replay{font-size:7px;bottom:6px}.date-panel{padding-top:0}.toile-tendresse .living-scene{height:315px}#rsvp-dialog{padding:28px 28px 23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.intro-light{display:none}}
.timeline .icon-button{border-radius:50%}.timeline article.is-lit img{filter:drop-shadow(0 0 12px #dcc47799);transform:translateY(-4px) scale(1.05)}
.hero h1 span:last-child{font-size:calc(1em * var(--name-scale,1));line-height:.95;word-break:normal;overflow-wrap:normal;hyphens:auto}
@media(min-width:900px){.celebration{display:grid;grid-template-columns:1.1fr 1fr;column-gap:45px}.scene-heading{grid-column:1/-1}.living-scene{width:100%;grid-column:1;grid-row:2}.timeline{grid-column:2;grid-row:2;align-items:center;gap:35px;width:100%;padding-top:15px}.timeline:before{top:42%}.scene-heading h2{margin-bottom:5px}.invitation{padding-top:40px;padding-bottom:20px}.response{padding-top:25px;padding-bottom:25px}footer{padding-bottom:20px}.hero{height:76svh;min-height:530px}}
