:root{--bg:#f5f1e8;--ink:#1d2a23;--paper:#fffdf8;--green:#315b47;--pale:#dfe6db;--display:"Iowan Old Style",Baskerville,"Times New Roman",serif;--body:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body)}button,input{font:inherit}button{color:inherit}img{display:block;width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}.button{border:0;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;background:var(--green);color:var(--paper);font-weight:700}.button:disabled{opacity:.48;cursor:not-allowed}.outline{background:transparent;color:var(--green);border:1px solid #aab7ad;padding:.8rem 1.3rem;border-radius:999px}
.hero{min-height:100svh;display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);padding:clamp(1.25rem,4vw,4.5rem);gap:clamp(2rem,5vw,6rem);position:relative;overflow:hidden}.hero::before{content:"";position:absolute;width:28rem;height:28rem;border:1px solid rgb(49 91 71/12%);border-radius:50%;left:-18rem;top:12%}.hero-copy{align-self:center;max-width:42rem;position:relative;z-index:2}.monogram{width:4.4rem;height:4.4rem;border:1px solid rgb(49 91 71/55%);border-radius:50%;display:grid;place-items:center;font:italic 1rem var(--display);color:var(--green);margin-bottom:clamp(2.5rem,6vw,5.5rem)}.eyebrow{margin:0 0 1.3rem;text-transform:uppercase;letter-spacing:.22em;font-size:.76rem;font-weight:700;color:#5d7666}h1,h2{font-family:var(--display);font-weight:400;letter-spacing:-.045em}h1{font-size:clamp(4.3rem,8.8vw,8.5rem);line-height:.76;margin:0}h1 span{font-size:.45em;font-style:italic;color:#738a79}.invitation-copy{font-size:1.07rem;line-height:1.8;max-width:32rem;color:#5d665f;margin:2.4rem 0}.primary-action{min-height:3.4rem;border-radius:999px;padding:0 1.55rem;font-size:.92rem}.hero-visual{position:relative;min-height:42rem;display:flex;align-items:center;justify-content:center}.arch-image{width:min(100%,39rem);aspect-ratio:.76;overflow:hidden;border-radius:20rem 20rem 1.25rem 1.25rem;box-shadow:0 35px 80px rgb(33 51 41/16%)}.arch-image img{height:100%;object-fit:cover;object-position:51% 46%}.date-seal{position:absolute;left:1%;bottom:9%;width:7.3rem;height:7.3rem;border-radius:50%;background:var(--green);color:var(--paper);display:grid;place-content:center;text-align:center;box-shadow:0 15px 40px rgb(33 51 41/23%)}.date-seal span{font:2rem/1 var(--display)}.date-seal i{font-size:.8rem;font-style:normal;letter-spacing:.25em;margin-top:.3rem;border-top:1px solid rgb(255 255 255/45%);padding-top:.3rem}.vertical-note{position:absolute;right:-1.2rem;top:50%;transform:rotate(90deg) translateX(50%);transform-origin:right top;font-size:.68rem;letter-spacing:.25em;color:#718075}
.location-strip{width:min(100% - 2rem,74rem);margin:0 auto;padding:1.4rem 2rem;border-block:1px solid #d0cbc0;display:flex;align-items:center;gap:1rem;color:inherit;text-decoration:none;transition:background .2s}.location-strip:hover{background:rgb(49 91 71/5%)}.map-icon{font-size:1.8rem;color:var(--green)}.location-strip div{display:flex;flex-direction:column;gap:.15rem}.location-strip div span{font-size:.67rem;text-transform:uppercase;letter-spacing:.18em;color:#7a7e79}.location-strip strong{font:400 1.2rem var(--display)}.location-strip .location-city{margin-left:auto;color:#4f6357;font-size:.9rem;display:block}
.share-section{background:#254333;color:#f7f3ea;padding:clamp(5.5rem,10vw,9rem) max(1.25rem,calc((100% - 70rem)/2));display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(3rem,8vw,8rem)}.share-heading .eyebrow{color:#b8cbbd}.share-heading h2{font-size:clamp(3.4rem,6vw,6rem);line-height:.9;margin:0}.share-heading>p:last-child{max-width:28rem;color:#c9d1cb;line-height:1.75;margin-top:2rem}.upload-card{background:var(--paper);color:var(--ink);border-radius:1.5rem;padding:clamp(1.4rem,4vw,2.5rem);box-shadow:0 30px 80px rgb(7 24 15/22%);align-self:start}.upload-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;margin-bottom:1.8rem}.guide-step{min-height:7rem;padding:1rem .85rem;border-radius:.85rem;background:#f0f3ed;animation:guide-in .55s ease both}.guide-step:nth-child(2){animation-delay:.1s}.guide-step:nth-child(3){animation-delay:.2s}.guide-step span{width:2rem;height:2rem;display:grid;place-items:center;border-radius:50%;background:#dfe8de;color:var(--green);margin-bottom:.7rem}.guide-step p{font-size:.74rem;line-height:1.45;margin:0;color:#536057}.guide-step b{color:var(--green)}.field-label{display:flex;justify-content:space-between;font-size:.85rem;font-weight:700;margin-bottom:.7rem}.field-label span{color:#91958f;font-size:.72rem;font-weight:500}.name-input{width:100%;height:3.3rem;border:1px solid #dad6cb;border-radius:.75rem;padding:0 1rem;color:var(--ink);background:var(--paper);outline:none}.name-input:focus{border-color:#62806e;box-shadow:0 0 0 3px rgb(98 128 110/15%)}.drop-zone{width:100%;min-height:13rem;margin-top:1.5rem;border:1px dashed #94a397;border-radius:1rem;background:#f1f4ef;color:#304c3b;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:.2s}.drop-zone:hover,.drop-zone.dragging{background:#e7ede5;border-color:#4c6c59;transform:translateY(-2px)}.upload-icon{width:3.2rem;height:3.2rem;border-radius:50%;display:grid;place-items:center;background:var(--green);color:white;margin-bottom:1rem;animation:upload-bob 2s ease-in-out infinite;font-size:1.5rem}.drop-zone strong{font-size:.96rem}.drop-zone small{color:#80867f;margin-top:.4rem}.file-list{margin-top:1.25rem;display:grid;gap:.7rem}.file-item{display:grid;grid-template-columns:2.3rem 1fr 2rem;align-items:center;gap:.8rem;padding:.75rem;border:1px solid #e0ddd5;border-radius:.8rem}.file-icon{width:2.3rem;height:2.3rem;display:grid;place-items:center;border-radius:.55rem;background:#e5ebe3;color:#41634f}.file-info{min-width:0}.file-info>div:first-child{display:flex;justify-content:space-between;gap:.6rem;margin-bottom:.45rem}.file-info strong{font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-info span,.file-info small{font-size:.68rem;color:#868a85;white-space:nowrap}.progress-track{height:.35rem;background:#e2e6e1;border-radius:999px;overflow:hidden;margin-bottom:.25rem}.progress-track span{display:block;height:100%;background:var(--green);transition:width .2s}.remove-file{border:0;background:transparent;color:#66736a;font-size:1.35rem;cursor:pointer}.upload-submit{width:100%;min-height:3.5rem;border-radius:999px;margin-top:1.4rem}.privacy-note{text-align:center;color:#898e89;font-size:.7rem;margin:.8rem 0 0}.form-message{color:#9f3f3f;text-align:center;font-size:.82rem;line-height:1.45}.success-state{min-height:28rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.success-state>span{width:4.5rem;height:4.5rem;border-radius:50%;background:var(--green);color:white;display:grid;place-items:center;margin-bottom:2rem;font-size:1.8rem}.success-state .eyebrow{margin-bottom:.7rem}.success-state h3{font:400 3rem var(--display);margin:0}.success-state>p:not(.eyebrow){color:#777e78;margin:.8rem 0 2rem}
.photo-bridge{background:var(--pale);display:grid;grid-template-columns:minmax(0,1fr) minmax(24rem,.8fr);align-items:center}.photo-bridge-image{height:clamp(30rem,63vw,54rem);overflow:hidden}.photo-bridge-image img{height:100%;object-fit:cover;object-position:50% 48%}.photo-bridge blockquote{margin:0;padding:clamp(3rem,8vw,8rem)}.photo-bridge blockquote>span{font-size:2rem;color:#60806d}.photo-bridge blockquote p{font:italic 400 clamp(2.3rem,4.5vw,4.6rem)/1.08 var(--display);margin:2rem 0 0;color:#294436}footer{text-align:center;padding:5rem 1rem 7rem}footer .monogram{margin:0 auto 1.4rem}footer p{font:italic 1.7rem var(--display);margin:0 0 .6rem}footer span{font-size:.7rem;letter-spacing:.23em;color:#718075}.mobile-upload-cta{display:none}
@keyframes guide-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes upload-bob{50%{transform:translateY(-6px)}}
@media(max-width:800px){.hero{min-height:auto;display:flex;flex-direction:column;padding:1rem 1rem 4.5rem;gap:0}.hero-copy{order:2;margin-top:-3.7rem;padding:2.1rem 1.1rem 0;background:var(--bg);width:calc(100% - 1.2rem);border-radius:0 1.4rem 0 0}.hero-copy .monogram{display:none}.hero-visual{order:1;min-height:0;width:100%}.arch-image{width:100%;height:64svh;min-height:31rem;border-radius:10rem 10rem .8rem .8rem}.arch-image img{object-position:50% 46%}.date-seal{width:5.9rem;height:5.9rem;left:auto;right:.8rem;top:1rem;bottom:auto}.date-seal span{font-size:1.55rem}.vertical-note{display:none}h1{font-size:clamp(3.55rem,16vw,5.4rem);line-height:.8}.eyebrow{font-size:.67rem}.invitation-copy{margin:1.6rem 0 1.9rem;font-size:.98rem;line-height:1.65}.primary-action{display:none}.location-strip{width:calc(100% - 2rem);padding:1.2rem .5rem}.location-strip .location-city{font-size:.75rem}.share-section{grid-template-columns:1fr;padding:5.5rem 1.1rem 6rem;gap:3rem}.share-heading{padding:0 .45rem}.share-heading h2{font-size:clamp(2.9rem,12vw,3.9rem)}.upload-card{border-radius:1.2rem}.upload-guide{grid-template-columns:1fr;gap:.55rem}.guide-step{min-height:0;display:flex;align-items:center;gap:.8rem;padding:.8rem}.guide-step span{margin:0;flex:none}.guide-step p{font-size:.82rem}.photo-bridge{grid-template-columns:1fr}.photo-bridge-image{height:72svh;max-height:43rem}.photo-bridge blockquote{padding:4rem 1.5rem 4.8rem}.photo-bridge blockquote p{font-size:clamp(2.35rem,11vw,3.7rem)}footer{padding-bottom:9.5rem}.mobile-upload-cta{position:fixed;z-index:20;left:50%;bottom:calc(.7rem + env(safe-area-inset-bottom));transform:translateX(-50%);display:grid;grid-template-columns:4.25rem 1fr 1.8rem;align-items:center;gap:.55rem;background:var(--paper);color:#294536;text-decoration:none;width:calc(100% - 1.4rem);max-width:30rem;min-height:4.75rem;padding:.35rem .85rem .35rem .35rem;border:1px solid rgb(49 91 71/18%);border-radius:1.15rem;box-shadow:0 14px 40px rgb(23 48 34/28%)}.mobile-upload-art{width:4.15rem;height:4.15rem;display:grid;place-items:center;border-radius:.9rem;background:#dfe8dd;overflow:hidden}.mobile-upload-art>span{width:3.5rem;height:3.5rem;display:grid;place-items:center}.mobile-upload-cta>span:nth-child(2){display:flex;flex-direction:column;gap:.12rem}.mobile-upload-cta small{font-size:.67rem;color:#738078}.mobile-upload-cta strong{font:400 1.22rem var(--display)}.mobile-cta-arrow{color:#58705f}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.guide-step,.upload-icon{animation:none}}
.drop-zone.choosing{background:#e7ede5;cursor:wait}.drop-zone.choosing .upload-icon{animation:upload-spin .8s linear infinite}@keyframes upload-spin{to{transform:rotate(360deg)}}
@media(max-width:800px){.mobile-upload-cta{transition:opacity .2s ease,transform .2s ease}.mobile-upload-cta.upload-in-view{opacity:0;pointer-events:none;transform:translate(-50%,1rem)}}
@media(prefers-reduced-motion:reduce){.drop-zone.choosing .upload-icon{animation:none}}
