body{margin:0;padding:0}img{max-width:100%}:root{--paper:#F8F4F0;--paper-2:#F3EDE7;--card:#FBF8F5;--ink:#2A2320;--ink-soft:#5E534D;--muted:#8E827A;--line:#E4DAD2;--accent:#C4502A;--accent-deep:#A9401F;--accent-wash:#F3E2DA;--olive:#5B5A3A;--script:"Great Vibes","Snell Roundhand","Apple Chancery",cursive;--serif:"Cormorant Garamond","Cormorant",Garamond,"Times New Roman",serif;--label:"Marcellus","Trajan Pro","Cormorant Garamond",Georgia,serif;--hdr:68px;color-scheme:light}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth;scroll-padding-top:var(--hdr)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:19px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--paper)}a{color:inherit}.wrap{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.inner{max-width:1080px;margin:0 auto}.narrow{max-width:760px;margin:0 auto}.hdr{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:50;height:var(--hdr);transition:background .35s,box-shadow .35s}.hdr.solid{background:color-mix(in srgb,var(--paper-2) 94%,transparent);box-shadow:0 1px 0 var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hdr .inner{height:100%;display:flex;align-items:center;gap:24px;max-width:1100px}.logo{font-family:var(--script);font-size:34px;line-height:1;text-decoration:none;color:var(--ink);opacity:0;transition:opacity .35s}.hdr.solid .logo{opacity:1}.nav{margin-left:auto;display:flex;gap:34px}.nav a{font-family:var(--label);font-size:15px;letter-spacing:.02em;text-decoration:none;color:var(--ink-soft);transition:color .2s}.nav a:hover,.nav a:focus-visible{color:var(--accent)}.lang{margin-left:48px;font-family:var(--label);font-size:14px;color:var(--muted);display:flex;align-items:center;gap:6px}.lang button{all:unset;cursor:pointer;color:var(--muted);padding:2px}.lang button[aria-pressed=true]{color:var(--accent)}.lang button:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.lang span{color:var(--line)}@media (max-width:760px){.nav{display:none}.lang{margin-left:auto}}.hero{position:relative;overflow:hidden;text-align:center;padding-block:150px 90px}.corner{position:absolute;pointer-events:none;-webkit-user-select:none;user-select:none}.corner-tl{top:0;left:0;width:min(470px,38vw);height:auto}.corner-br{bottom:0;right:0;width:min(430px,34vw);height:auto}.eyebrow{font-family:var(--serif);font-weight:500;font-size:14px;letter-spacing:.42em;text-transform:uppercase;color:var(--ink-soft);margin:0}.names{font-family:var(--script);font-weight:400;font-size:clamp(64px,11vw,128px);line-height:1.05;margin:.15em 0 .25em;color:var(--ink)}.date-line{display:flex;align-items:center;justify-content:center;gap:18px;font-family:var(--label);font-size:22px;letter-spacing:.06em;color:var(--ink-soft)}.date-line:before,.date-line:after{content:"";width:60px;height:1px;background:var(--line)}.countdown{display:flex;justify-content:center;gap:clamp(22px,5vw,64px);margin:34px 0 40px;font-variant-numeric:tabular-nums}.cd b{display:block;font-family:var(--label);font-weight:400;font-size:clamp(38px,6vw,50px);line-height:1;color:var(--ink)}.cd small{display:block;margin-top:10px;font-family:var(--serif);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.ctas{display:flex;justify-content:center;flex-wrap:wrap;gap:18px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--label);font-size:15px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;padding:14px 34px;border:1px solid var(--accent);cursor:pointer;transition:background .2s,color .2s}.btn-solid{background:var(--accent);color:#fff}.btn-solid:hover{background:var(--accent-deep)}.btn-ghost{background:transparent;color:var(--accent);border-color:var(--accent-wash)}.btn-ghost:hover{background:var(--accent-wash)}.btn:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.btn svg{width:16px;height:16px;flex:none}.mouse{display:block;margin:28px auto 0;width:22px;height:36px;border:1.5px solid var(--muted);border-radius:12px;position:relative}.mouse:after{content:"";position:absolute;left:50%;top:7px;width:3px;height:8px;margin-left:-1.5px;border-radius:2px;background:var(--muted);animation:wheel 1.8s infinite}@keyframes wheel{0%{opacity:1;transform:translateY(0)}70%{opacity:0;transform:translateY(10px)}to{opacity:0}}@media (max-width:600px){.hero{padding-block:170px 120px}.corner-tl{width:44vw;top:0;left:-4vw}.corner-br{width:48vw;right:-4vw;bottom:0}.countdown{gap:18px}}section{padding-block:110px}.alt{background:var(--paper-2)}.sec-head{text-align:center;margin-bottom:56px}.sec-head .eyebrow{font-size:13px;letter-spacing:.38em}.script-title{font-family:var(--script);font-weight:400;font-size:clamp(46px,7vw,66px);line-height:1.15;margin:.1em 0 0;text-wrap:balance}.script-title em{font-family:var(--serif);font-style:normal;font-weight:500;color:var(--accent);font-size:.92em;letter-spacing:.01em}.story p{text-align:center;margin:0 0 2.2em;font-size:20px;text-wrap:pretty}.story p:last-child{margin-bottom:0}.story .hl{color:var(--accent)}.story .aside{font-style:italic;color:var(--ink-soft)}.story .closing{font-style:italic;color:var(--ink-soft);margin-top:3em}.stack-btn{all:unset;display:block;margin:0 auto;cursor:pointer;position:relative;width:min(420px,86vw);aspect-ratio:1.25}.stack-btn:focus-visible{outline:2px solid var(--accent);outline-offset:12px}.stack-btn{--ease:cubic-bezier(.22,1,.36,1);--spring:cubic-bezier(.34,1.3,.5,1);perspective:1100px}.stack-tilt{position:absolute;top:0;right:0;bottom:0;left:0;transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .6s var(--ease)}.stack-btn .pc{position:absolute;left:50%;top:50%;width:52%;aspect-ratio:3/4;background:#fff;padding:5px;overflow:hidden;border-radius:1px;box-shadow:0 18px 40px -16px #3c281e59,0 2px 6px #3c281e14;transform:translate(-50%,-22%) rotate(0) scale(.82);opacity:0;transition:transform 1.15s var(--spring),opacity .7s ease,box-shadow .9s var(--ease);transition-delay:calc(var(--i,0) * .12s);will-change:transform;backface-visibility:hidden}.stack-btn .pc.lifted{visibility:hidden}.stack-btn .pc .ph{width:100%;height:100%}.stack-btn .pc:nth-child(1){--i:0;--z:0px;--fan:translate(-92%,-46%) rotate(-12deg);--open:translate(-106%,-47%) rotate(-16deg)}.stack-btn .pc:nth-child(2){--i:1;--z:14px;--fan:translate(-72%,-56%) rotate(-5deg);--open:translate(-80%,-60%) rotate(-7deg)}.stack-btn .pc:nth-child(3){--i:2;--z:28px;--fan:translate(-48%,-58%) rotate(2deg);--open:translate(-44%,-63%) rotate(3.5deg)}.stack-btn .pc:nth-child(4){--i:3;--z:42px;--fan:translate(-26%,-48%) rotate(9deg);--open:translate(-11%,-49%) rotate(13deg)}.stack-btn.in .pc{transform:var(--fan) translateZ(var(--z));opacity:1}.stack-btn.ready .pc{transition:transform .85s var(--ease),opacity .4s ease,box-shadow .85s var(--ease);transition-delay:calc(var(--i,0) * 28ms)}.stack-btn.ready:hover .pc,.stack-btn.ready:focus-visible .pc{transform:var(--open) translateZ(var(--z));box-shadow:0 30px 55px -20px #3c281e6b,0 3px 10px #3c281e14}.stack-btn.ready:active .pc{transition-duration:.35s;transform:var(--fan) translateZ(var(--z)) scale(.97)}.hint{text-align:center;font-style:italic;font-size:15px;color:var(--muted);margin-top:34px;opacity:0;transform:translateY(8px);transition:opacity .8s ease .55s,transform .8s cubic-bezier(.22,1,.36,1) .55s}#gallery .stack-btn.in+.hint{opacity:1;transform:none}img.ph{opacity:0;transition:opacity .8s ease;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}img.ph.loaded{opacity:1}.pc img.ph{transform:scale(1.07);transition:opacity .8s ease,transform 1.6s cubic-bezier(.22,1,.36,1)}.pc img.ph.loaded{transform:none}.ph{display:block;object-fit:cover;background:var(--paper-2)}.ph-fake{position:relative;display:flex;align-items:flex-end;justify-content:flex-start;overflow:hidden}.ph-fake .tag{position:relative;margin:8%;font-family:var(--label);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#ffffffeb}.lb{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top,0px) + 56px) 0 calc(env(safe-area-inset-bottom,0px) + 56px);--ease:cubic-bezier(.22,1,.36,1)}.lb:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#f8f4f0cc;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);opacity:0;transition:opacity .55s ease}.lb.open:before{opacity:1}.lb-stage{position:relative;width:100%;flex:1;min-height:0;overflow:hidden;touch-action:pan-y;user-select:none;-webkit-user-select:none}.lb-track{position:absolute;top:0;right:0;bottom:0;left:0;perspective:1600px}.lb-slide{position:absolute;top:0;bottom:0;left:50%;display:flex;align-items:center;justify-content:center;transition:transform .8s var(--ease),opacity .65s ease;will-change:transform,opacity;backface-visibility:hidden}.lb-slide:not(.is-cur){cursor:pointer}.lb:not(.open) .lb-slide:not(.is-cur){opacity:0!important}.lb-track.dragging .lb-slide{transition:none}.lb-track.dragging{cursor:grabbing}.lb-slide .ph{max-height:100%;height:100%;width:auto;aspect-ratio:3/4;box-shadow:0 30px 60px -30px #28191480;transition:opacity .8s ease,box-shadow .8s var(--ease)}.lb-slide.is-cur .ph{box-shadow:0 40px 80px -36px #2819148c,0 4px 14px #28191414}.lb-slide img.ph{aspect-ratio:auto;height:auto;width:auto;max-height:calc(100% - 12px);max-width:min(80vw,900px);border:6px solid #fff;background:#fff}.lb-slide .ph-fake{border:6px solid #fff}.lb-x,.lb-nav{all:unset;position:absolute;z-index:2;cursor:pointer;color:var(--ink);display:grid;place-items:center;width:46px;height:46px;border-radius:50%;opacity:0;transition:opacity .45s ease,background .25s ease,transform .35s var(--ease)}.lb.open .lb-x,.lb.open .lb-nav,.lb.open .lb-dots{opacity:1;transition-delay:.2s,0s,0s}.lb-x:hover,.lb-nav:hover{background:#2a232012}.lb-x:focus-visible,.lb-nav:focus-visible{outline:2px solid var(--accent)}.lb-x{top:calc(env(safe-area-inset-top,0px) + 10px);right:max(14px,env(safe-area-inset-right,0px))}.lb-x:hover{transform:rotate(90deg)}.lb-prev{left:max(10px,env(safe-area-inset-left,0px));top:50%;translate:0 -50%}.lb-next{right:max(10px,env(safe-area-inset-right,0px));top:50%;translate:0 -50%}.lb-prev:hover{transform:translate(-3px)}.lb-next:hover{transform:translate(3px)}.lb-x svg,.lb-nav svg{width:24px;height:24px}.lb-dots{position:absolute;z-index:2;bottom:calc(env(safe-area-inset-bottom,0px) + 22px);left:0;right:0;display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap;padding-inline:16px;opacity:0;transition:opacity .45s ease}.lb-dots button{all:unset;cursor:pointer;width:7px;height:7px;border-radius:4px;background:var(--line);transition:width .55s var(--ease),background .35s ease}.lb-dots button:hover{background:var(--muted)}.lb-dots button[aria-current=true]{width:24px;background:var(--accent)}.lb-dots button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.venue{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.venue>*{min-width:0}.venue h3{font-family:var(--label);font-weight:400;font-size:clamp(28px,3.6vw,34px);margin:0 0 18px;line-height:1.2}.addr{display:flex;gap:16px;align-items:flex-start;font-size:18px;line-height:1.5}.addr svg{width:20px;height:20px;color:var(--accent);flex:none;margin-top:3px}.addr small{display:block;font-size:15px;color:var(--muted)}.sched{margin:32px 0 30px;background:var(--card);border:1px solid var(--line);padding:30px 34px}.sched h4{font-family:var(--label);font-weight:400;font-size:20px;margin:0 0 16px}.sched ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}.sched li{display:flex;align-items:center;gap:26px;font-size:18px}.sched time{font-family:var(--label);color:var(--accent);font-size:21px;min-width:58px;font-variant-numeric:tabular-nums}.sched li span:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--olive);margin-right:18px;vertical-align:middle}.notes{list-style:none;padding:0;margin:0 0 30px;display:grid;gap:10px;font-size:16px;color:var(--ink-soft)}.notes li{display:flex;gap:14px;align-items:center}.notes svg{width:18px;height:18px;color:var(--muted);flex:none}.btn-outline{background:transparent;color:var(--accent);border-color:var(--accent);padding:12px 26px;font-size:14px}.btn-outline:hover{background:var(--accent-wash)}.map{display:block;position:relative;aspect-ratio:1/1.02;border:1px solid var(--line);overflow:hidden;text-decoration:none;color:var(--ink);background:#f6eee4}.map svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.map .pop{position:absolute;left:4%;top:4%;background:#fff;padding:12px 16px;box-shadow:0 2px 8px #0000001f;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.45;color:#333;max-width:70%}.map .pop b{display:block;font-size:13px;color:#202124}.map .pop span{color:#1a73e8}.map:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media (max-width:820px){.venue{grid-template-columns:1fr;gap:40px}}.center{text-align:center}.lead{font-size:21px;margin:0 auto;max-width:640px;text-wrap:pretty}.note{font-style:italic;font-size:15px;color:var(--muted);margin:28px auto 0;max-width:680px;text-wrap:pretty}.deadline{text-align:center;margin:8px 0 0;font-size:17px;color:var(--ink-soft)}.deadline b{font-weight:500;color:var(--accent)}form{max-width:640px;margin:44px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:22px 26px}.f{display:grid;gap:8px;min-width:0}.f.full{grid-column:1/-1}.f label{font-family:var(--label);font-size:15px;color:var(--ink)}.f input,.f select,.f textarea{font:inherit;font-size:17px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:0;padding:12px 16px;width:100%;-moz-appearance:none;appearance:none;-webkit-appearance:none;transition:border-color .2s,box-shadow .2s}.f select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235E534D' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}.f textarea{min-height:110px;resize:vertical}.f input::placeholder,.f textarea::placeholder{color:#b5aaa2}.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.f .err{font-size:14px;color:var(--accent-deep);min-height:0}form .btn{grid-column:1/-1;width:100%;padding:16px}.thanks{max-width:640px;margin:44px auto 0;text-align:center;background:var(--card);border:1px solid var(--line);padding:44px 28px}.thanks p{margin:0}.thanks .script-title{font-size:48px}.contact{max-width:640px;margin:44px auto 0;padding-top:32px;border-top:1px solid var(--line);text-align:center}.contact p{margin:0 0 14px;font-size:16px;color:var(--ink-soft)}.contact ul{list-style:none;padding:0;margin:0;display:flex;justify-content:center;flex-wrap:wrap;gap:10px 34px;font-size:16px;color:var(--ink-soft)}.contact li{display:flex;align-items:center;gap:10px;-webkit-user-select:all;user-select:all}.contact svg{width:17px;height:17px;flex:none}@media (max-width:600px){form{grid-template-columns:1fr}}.gift-ic{width:72px;height:72px;margin:0 auto 22px;border-radius:50%;background:var(--accent-wash);display:grid;place-items:center;color:var(--accent)}.gift-ic svg{width:30px;height:30px}.divider{display:flex;align-items:center;justify-content:center;gap:12px;margin:44px 0;color:var(--accent)}.divider:before,.divider:after{content:"";width:34px;height:1px;background:var(--line)}.divider svg{width:16px;height:16px}.envelope{max-width:740px;margin:32px auto 0;background:var(--paper-2);border:1px solid var(--line);padding:24px;text-align:center;font-family:var(--label);font-size:18px;letter-spacing:.02em}.small-muted{font-size:17px;color:var(--ink-soft);max-width:740px;margin:0 auto;text-wrap:pretty}footer{text-align:center;padding-block:70px 60px;border-top:1px solid var(--line)}footer .mono{font-family:var(--script);font-size:54px;line-height:1}footer p{margin:10px 0 0;font-family:var(--label);letter-spacing:.2em;font-size:13px;color:var(--muted)}form>.err{font-size:15px;color:var(--accent-deep);text-align:center}form .btn:disabled{opacity:.65;cursor:progress}.contact a{text-decoration:none}.contact a:hover{color:var(--accent)}
