*,*:before,*:after{box-sizing:border-box}body{margin:0;padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0);min-height:100vh;min-height:100dvh;font-family:"Source Sans 3",system-ui,sans-serif;font-weight:300;font-size:1.0625rem;line-height:1.7;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}#root{min-height:100vh}:root{--bg: #f7f4ef;--bg-card: #fffcfa;--text: #1f1c19;--muted: #5c5650;--line: rgba(31, 28, 25, .1);--line-strong: rgba(31, 28, 25, .18);--accent: #3d3530;--content-max: min(68rem, 94vw);--content-text: min(38rem, 100%);--site-header-h: 3.5rem;--shadow-soft: 0 24px 48px rgba(31, 28, 25, .06);--shadow-card: 0 4px 24px rgba(31, 28, 25, .05);--radius: 3px}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--site-header-h) + .5rem)}.app{min-height:100vh;background:var(--bg)}.site-header{position:fixed;top:0;left:0;right:0;z-index:200;min-height:var(--site-header-h);display:flex;align-items:center;background:transparent;transition:background .4s ease,backdrop-filter .4s ease}.site-header--solid{background:#fcfaf7f0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.site-header-inner{width:100%;padding:max(.85rem,env(safe-area-inset-top,0px)) clamp(1.25rem,5vw,3rem) .85rem;padding-left:max(clamp(1.25rem,5vw,3rem),env(safe-area-inset-left,0px));padding-right:max(clamp(1.25rem,5vw,3rem),env(safe-area-inset-right,0px));display:flex;align-items:center;justify-content:space-between;gap:1rem}.site-logo{font-family:"Instrument Serif",Georgia,serif;font-size:clamp(1rem,2.5vw,1.2rem);font-weight:400;color:#fffffff5;text-decoration:none;white-space:nowrap;letter-spacing:-.02em;text-shadow:0 2px 20px rgba(0,0,0,.45);transition:color .35s ease,text-shadow .35s ease,opacity .2s ease}.site-logo:hover{opacity:.88}.site-header--solid .site-logo{color:var(--text);text-shadow:none}.site-logo-amp{font-style:italic}.site-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem 1.35rem}.site-nav a{font-size:.65rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#ffffffe0;text-decoration:none;text-shadow:0 1px 14px rgba(0,0,0,.4);transition:color .35s ease,text-shadow .35s ease,opacity .2s ease}.site-nav a:hover{color:#fff}.site-header--solid .site-nav a{color:var(--muted);text-shadow:none}.site-header--solid .site-nav a:hover{color:var(--text)}@media(max-width:640px){.site-nav{gap:.4rem .65rem}.site-nav a{font-size:.58rem;letter-spacing:.12em}}.hero{position:relative;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(2rem,6vw,4rem);padding-top:max(clamp(2rem,6vw,4rem),env(safe-area-inset-top,0px));padding-bottom:max(clamp(2rem,6vw,4rem),env(safe-area-inset-bottom,0px));background-color:#141210;background-image:url(/banner.jpeg);background-size:cover;background-position:center 28%}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,#141210bf,#14121059,#1412108c)}.hero-inner{position:relative;z-index:1;width:100%;max-width:52rem;text-align:center}.hero-scroll-hint{position:absolute;bottom:max(clamp(1.5rem,5vh,2.75rem),env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:1;font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:#fff6}.hero-kicker{font-family:"Source Sans 3",sans-serif;font-size:.72rem;font-weight:500;letter-spacing:.42em;text-transform:uppercase;color:#ffffffb8;margin:0 0 1.25rem}.hero-title{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(3rem,11vw,5rem);line-height:1.02;letter-spacing:-.03em;color:#faf8f5;margin:0}.hero-title em{font-style:italic;font-weight:400}.hero-sub{margin:1.5rem 0 0;font-size:1.08rem;font-weight:300;letter-spacing:.02em;color:#ffffffd1}.hero-intro{margin:1.35rem auto 0;max-width:26rem;font-size:clamp(.95rem,3.5vw,1.05rem);line-height:1.65;font-weight:300;color:#ffffffc7}.eyebrow{font-size:.68rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin:0 0 1rem}.section-intro{text-align:center;max-width:36rem;margin:0 auto 2.75rem}.section-intro--left{text-align:left;margin-left:0;margin-right:0;max-width:none}.section-title{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(2rem,4.5vw,2.75rem);line-height:1.15;letter-spacing:-.02em;color:var(--text);margin:0 0 .75rem}.section-display-title{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(2.25rem,5vw,3.25rem);line-height:1.12;letter-spacing:-.03em;color:var(--text);margin:0 0 .75rem}.section-display-meta{margin:0;font-size:1.125rem;color:var(--muted);font-weight:400}.section-body-blurb{margin:1.75rem 0 0;font-size:1.02rem;line-height:1.75;color:var(--muted);font-weight:300}.section-lead{margin:0;font-size:1.05rem;line-height:1.65;color:var(--muted)}.section-lead--follow{margin-top:1rem}.body-text{margin:0 0 1rem;color:var(--muted);max-width:var(--content-text)}.body-text:last-child{margin-bottom:0}.body-text--note{font-size:.98rem;opacity:.92}.section-band{position:relative;padding:clamp(4rem,12vw,7rem) clamp(1.25rem,5vw,3rem)}.section-band-inner{width:100%;max-width:var(--content-max);margin:0 auto}.section-band-inner--wide{max-width:min(72rem,96vw)}.section-band--date{text-align:center}.section-band--gift{padding:0}.section-band--date .section-band-inner{max-width:40rem}.local-grid{display:grid;gap:clamp(2rem,5vw,3.5rem);align-items:center;max-width:var(--content-max);margin:0 auto}@media(min-width:900px){.local-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(2.5rem,6vw,5rem)}}.local-copy{padding:.5rem 0}.local-copy .section-title{margin-bottom:1.25rem}.local-photo{margin:0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft);aspect-ratio:3 / 4;max-height:min(72vh,38rem)}.local-photo img{width:100%;height:100%;object-fit:cover;display:block}.messages-layout{display:grid;gap:1.75rem;align-items:start}@media(min-width:900px){.messages-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:2rem}}.card-elevated{background:var(--bg-card);border-radius:var(--radius);padding:clamp(1.5rem,4vw,2rem);box-shadow:var(--shadow-soft)}.card-elevated--muted{background:#fffcfaa6;max-height:min(70vh,36rem);overflow-y:auto}.message-form{margin:0}.messages-section .message-form{margin-bottom:0}.message-form .field{display:block;margin-bottom:1.15rem}.field-label{display:block;font-size:.65rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem}.message-form input,.message-form textarea{width:100%;font:inherit;font-size:1rem;font-weight:400;color:var(--text);background:#fff;border-radius:var(--radius);padding:.75rem .9rem;box-shadow:0 2px 14px #1f1c190f;transition:box-shadow .2s ease}.message-form input:focus,.message-form textarea:focus{outline:none;box-shadow:0 2px 14px #1f1c1914,0 0 0 4px #3d353012}.message-form textarea{resize:vertical;min-height:7rem}.message-form input:disabled,.message-form textarea:disabled{opacity:.55}.btn-submit{font-family:inherit;font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#faf8f5;background:var(--accent);border:none;border-radius:var(--radius);padding:.85rem 1.75rem;cursor:pointer;margin-top:.35rem;transition:background .2s ease,transform .15s ease}.btn-submit:hover:not(:disabled){background:#2a2522}.btn-submit:active:not(:disabled){transform:translateY(1px)}.btn-submit:disabled{opacity:.45;cursor:not-allowed}.form-success{margin:.9rem 0 0;font-size:.95rem;color:var(--muted)}.form-error{margin:.9rem 0 0;font-size:.9rem;color:#8b3d34}.form-hint{font-size:.92rem;color:var(--muted);margin:0 0 1rem}.code-inline{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.82em}.messages-placeholder{font-size:.95rem;color:var(--muted);margin:0 0 1rem}.messages-list{list-style:none;margin:0;padding:0}.message-card{padding:0 0 1.5rem;margin:0 0 1.5rem}.message-card:last-child{margin-bottom:0;padding-bottom:0}.message-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;margin:0 0 .45rem;font-size:.9rem}.message-meta strong{font-weight:600;color:var(--text)}.message-date{font-size:.75rem;letter-spacing:.06em;color:var(--muted)}.message-body{margin:0;color:var(--muted);white-space:pre-wrap;line-height:1.65}.gift-grid{display:grid;gap:0;min-height:min(85vh,52rem);max-width:100%}@media(min-width:900px){.gift-grid{grid-template-columns:.95fr 1fr}}.gift-photo{margin:0;min-height:22rem;overflow:hidden}.gift-photo img{width:100%;height:100%;min-height:22rem;object-fit:cover;display:block}.gift-copy{padding:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,5vw,4rem);display:flex;flex-direction:column;justify-content:center;max-width:36rem}.gift-block{margin-top:2rem;padding:1.75rem 1.5rem;border-radius:var(--radius);background:var(--bg-card);box-shadow:var(--shadow-soft)}.gift-block-label{font-size:.65rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 .65rem}.gift-block .iban{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.98rem;letter-spacing:.04em;color:var(--text);word-break:break-all;margin:0}.gift-block .iban-holder{font-size:.92rem;color:var(--muted);margin:.85rem 0 0}.closing{text-align:center;padding:clamp(6rem,18vw,10rem) clamp(1.5rem,6vw,3rem);background:var(--bg)}.closing-inner{max-width:42rem;margin:0 auto}.closing-kicker{margin:0 0 1rem;font-size:.68rem;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--muted)}.closing-title{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(2.5rem,7vw,3.75rem);line-height:1.08;letter-spacing:-.03em;margin:0 0 1.75rem;color:var(--text)}.closing-text{margin:0;font-size:1.2rem;line-height:1.85;font-weight:300;color:var(--muted);letter-spacing:.01em}.closing-text--second{margin-top:1.35rem;font-size:1.05rem;line-height:1.75}.site-footer{width:100%;background:var(--bg);color:var(--muted);padding:clamp(2.5rem,8vw,3.5rem) 0}.site-footer-inner{width:100%;max-width:none;margin:0;padding:0 clamp(1.25rem,5vw,3rem);display:grid;gap:2rem;justify-items:center;text-align:center}@media(min-width:640px){.site-footer-inner{grid-template-columns:1fr 1fr;align-items:start;text-align:left;justify-items:stretch}.site-footer-brand{justify-self:start}.site-footer-nav{justify-self:end;justify-content:flex-end}}.site-footer-names{font-family:"Instrument Serif",Georgia,serif;font-size:clamp(1.35rem,3vw,1.65rem);font-weight:400;color:var(--text);margin:0 0 .4rem;letter-spacing:-.02em}.site-footer-tagline{margin:0;font-size:.88rem;font-weight:300;letter-spacing:.04em;color:var(--muted)}.site-footer-nav{display:flex;flex-wrap:wrap;gap:.6rem 1.1rem;justify-content:center}.site-footer-nav a{font-size:.62rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .2s ease}.site-footer-nav a:hover{color:var(--text)}.site-footer-copy{grid-column:1 / -1;margin:0;padding-top:.5rem;font-size:.72rem;letter-spacing:.14em;color:var(--muted);opacity:.75}@media(max-width:560px){.site-header-inner{flex-wrap:wrap;row-gap:.65rem}.site-nav{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;max-width:100%;padding-bottom:.2rem;margin:0 -.25rem;padding-left:.25rem;padding-right:.25rem}.site-nav::-webkit-scrollbar{display:none}.site-nav a{flex:0 0 auto;padding:.55rem .15rem;min-height:44px;display:inline-flex;align-items:center}.section-band{padding:clamp(2.75rem,10vw,4rem) clamp(1rem,4vw,1.5rem)}.section-intro{margin-bottom:2rem}.section-display-title{font-size:clamp(1.85rem,8vw,2.5rem)}.section-body-blurb{font-size:.98rem}.local-grid{gap:1.75rem}.local-photo{max-height:min(65vh,32rem)}.messages-layout{gap:1.25rem}.card-elevated--muted{max-height:min(55vh,28rem)}.gift-grid{min-height:0}.gift-photo,.gift-photo img{min-height:16rem}.gift-copy{padding:clamp(2rem,5vw,2.75rem) clamp(1rem,4vw,1.5rem)}.closing{padding:clamp(4rem,14vw,6rem) clamp(1rem,4vw,1.5rem)}.closing-title{font-size:clamp(2rem,9vw,2.75rem)}.closing-text{font-size:1.08rem}.site-footer{padding-bottom:max(2rem,env(safe-area-inset-bottom,0px))}}.message-form textarea::placeholder{color:#5c56508c;line-height:1.5}.btn-submit{width:100%;min-height:48px;padding-top:1rem;padding-bottom:1rem}@media(min-width:561px){.btn-submit{width:auto;min-height:0;padding-top:.85rem;padding-bottom:.85rem}}
