:root{--ink: #1F1A1C;--accent: #5A2E3A;--ash: #6C5B61;--white: #FFFFFF;--warm: #FFF7F8;--mist: #FAEBEE;--rose-dust: #D9A7B0;--green-cream: #B9BE8E;--green-border: #BAC8AD;--radius: 14px;--font-instrument-serif: "Instrument Serif", serif;--font-italianno: "Italianno", cursive;--container: 1060px;--gutter: 24px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-instrument-serif);background:var(--white);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}ion-icon{display:inline-block}.body-sm{font-weight:400;font-size:16px;line-height:24px}.body-md{font-weight:400;font-size:18px;line-height:27px}.display-x1{font-weight:400;font-size:64px;line-height:70.4px}.display-lg{font-weight:400;font-size:48px;line-height:55.2px}.heading-lg{font-weight:400;font-size:30px;line-height:39px}.caption{font-weight:400;font-size:14px;line-height:20px;color:var(--ash)}.quote{font-family:var(--font-italianno);font-weight:400;font-size:32px;line-height:24px;color:var(--accent)}.btn{padding:0;background:transparent;border:0;color:var(--ink);cursor:pointer}.btn:hover{text-decoration:underline}.btn-unselected{color:var(--ash)}.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}.section{padding:clamp(56px,8vw,88px) 0}.section--mist{background:var(--mist)}.footer{padding:24px}.center{text-align:center}.icon{width:24px;height:24px;font-size:24px;stroke-width:1px;color:var(--accent)}.hero{position:relative;min-height:100vh;min-height:100svh;background-image:url(/paper-background.png);background-size:cover;background-position:center;background-repeat:no-repeat;overflow:hidden}.hero-inner{position:relative;min-height:100vh;min-height:100svh;padding:clamp(56px,7vw,90px) clamp(48px,8vw,120px);display:flex;flex-direction:column}.hero-nav{display:flex;align-items:center;justify-content:space-between;gap:48px}.hero-nav-links{display:flex;gap:48px;align-items:center}.hero-lang{display:flex;gap:24px;align-items:center}.hero-center{flex:1;display:grid;place-items:center;text-align:center;padding:28px 0 72px}.hero-center>div{width:min(100%,766px);margin:0 auto}.hero-image{width:100%;aspect-ratio:383 / 257;border-radius:var(--radius);overflow:hidden;background:var(--mist);border:1px solid rgba(186,200,173,.55)}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center 44%;display:block}.hero-meta{margin-top:10px;display:grid;gap:6px}.hero-scroll{position:absolute;left:50%;bottom:clamp(40px,8vw,120px);transform:translate(-50%);display:grid;justify-items:center;gap:6px;color:var(--ash);text-align:center}.hero-flower{position:absolute;right:120px;bottom:0;height:200px;width:auto;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.9}@media(max-width:900px){.hero-inner{padding:48px}.hero-nav{flex-direction:column;align-items:stretch;gap:10px}.hero-lang{justify-content:center}.hero-nav-links{gap:14px 24px;flex-wrap:wrap;justify-content:center}.hero-center{align-items:start;padding:40px 0 96px}.hero-center>div{width:min(100%,620px)}.hero-image{width:100%;aspect-ratio:4 / 3}.hero-flower{right:48px;height:128px}.hero-scroll{bottom:48px}}@media(max-width:600px){.display-lg{font-size:40px;line-height:46px}.hero-inner{padding:36px 24px 48px}.hero-image{aspect-ratio:3 / 4}.hero-image img{object-position:center 38%}.hero-flower{right:24px;height:104px}.hero-scroll{bottom:28px}}.nav-link{font-size:14px;color:var(--ash)}.nav-link.is-active{color:var(--ink);text-decoration:underline;text-underline-offset:6px}.lang-btn{font-size:12px;color:var(--ash)}.lang-btn.is-active{color:var(--ink);text-decoration:underline;text-underline-offset:5px}@keyframes chevron-bounce{0%,to{transform:translateY(0);opacity:.85}50%{transform:translateY(6px);opacity:1}}.scroll-icon{animation:chevron-bounce 1.4s ease-in-out infinite}.storyloc{position:relative;width:100%;overflow:hidden}.storyloc-inner{position:relative;padding:clamp(72px,9vw,110px) clamp(48px,8vw,120px)}.divisor{height:100px;background:var(--green-cream);opacity:.3}.story-section{position:relative}.storyloc-bg{position:absolute;inset:0;background-repeat:no-repeat;background-position:center;background-size:min(860px,78vw) auto;background-image:url(/map-desktop.svg);opacity:.88;pointer-events:none;-webkit-user-select:none;user-select:none}.story-panel{position:relative;width:min(720px,100%);min-height:420px;margin:0 auto;display:grid;align-content:center;gap:24px;justify-items:center;text-align:center}.story-panel .body-sm{max-width:560px}.storyloc-text{color:var(--ash)}.storyloc-quote{color:var(--accent)}.story-info-separator{width:min(1060px,calc(100% - 48px));height:1px;margin:0 auto;background:#bac8add9}.wedding-info{position:relative}.wedding-info-inner{padding:clamp(56px,8vw,90px) clamp(24px,8vw,120px)}.wedding-info-heading{text-align:center;margin-bottom:32px}.wedding-info-grid{width:min(1060px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:24px;align-items:stretch}.wedding-location-card{border:1px solid var(--green-border);border-radius:var(--radius);background:#ffffff47;display:grid;align-content:center;gap:18px;padding:22px;text-align:center;justify-items:center}.loc-card{border:1px solid var(--green-border);border-radius:var(--radius);padding:26px 24px;display:grid;gap:12px;background:#fff7f8b8;width:min(560px,100%)}.loc-row{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.loc-hr{height:1px;width:100%;background:var(--green-border);opacity:1;border:0;margin:0}.wedding-detail-grid{display:grid;gap:24px}.wedding-detail-card{border:1px solid var(--green-border);border-radius:var(--radius);background:#ffffff47;padding:28px;display:grid;grid-template-columns:78px minmax(0,1fr);gap:20px;align-items:center}.wedding-detail-title{margin-bottom:8px}.wedding-detail-icon{width:64px;height:64px;object-fit:contain;justify-self:center}.wedding-gift-icons{display:grid;gap:10px;justify-items:center}.wedding-gift-icons .wedding-detail-icon{width:56px;height:56px}.adult-note{border-top:1px solid var(--green-border);color:var(--ash);padding:18px 8px 0;text-align:center}@media(max-width:900px){.storyloc-inner{padding:64px 48px}.storyloc-bg{background-size:min(720px,92vw) auto}.story-panel{min-height:360px}.wedding-info-grid{grid-template-columns:1fr;gap:24px}}@media(max-width:600px){.storyloc-inner{padding:56px 24px}.story-panel{min-height:420px;gap:18px}.storyloc-bg{background-image:url(/map-mobile.svg);background-size:auto min(440px,90%)}.wedding-info-inner{padding:48px 24px 56px}.wedding-location-card,.wedding-detail-card{padding:20px}.wedding-detail-card{grid-template-columns:1fr;text-align:center;justify-items:center}.wedding-gift-icons{grid-template-columns:repeat(2,56px)}}.gal{position:relative}.gal-inner{padding:24px 0 0}.gal-frame{position:relative}.gal-track{width:100%;max-width:100%;display:flex;flex-wrap:nowrap;gap:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scroll-behavior:smooth;touch-action:pan-x pan-y;overscroll-behavior-x:contain}.gal-no-photos{text-align:center}.gal-track::-webkit-scrollbar{height:0}.gal-track{scrollbar-width:none}.gal-arrow{position:absolute;z-index:5;top:50%;transform:translateY(-50%);width:46px;height:46px;border:1px solid var(--green-border);border-radius:999px;background:#fff7f8db;color:var(--accent);display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 24px #1f1a1c1f;transition:transform .14s ease,background-color .14s ease}.gal-arrow:hover{background:var(--warm);transform:translateY(-50%) scale(1.04)}.gal-arrow ion-icon{font-size:24px}.gal-arrow--left{left:24px}.gal-arrow--right{right:24px}.gal-item{flex:0 0 auto;height:512px;scroll-snap-align:start}.gal-item img{height:100%;width:auto;display:block;object-fit:cover;touch-action:pan-x pan-y}@media(max-width:900px){.gal-inner{padding:12px 0 0}.gal-item{height:min(512px,72svh)}.gal-arrow{display:none}}.gal .gallery-flower{position:absolute;left:120px;bottom:0;height:200px;width:auto;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.9}.gal .gallery-flower.has-photos{opacity:.6;top:-176px}@media(max-width:900px){.gal .gallery-flower{left:48px;height:128px}.gal .gallery-flower.has-photos{opacity:.6;top:-116px}}.upload{display:grid;align-content:center;gap:24px;justify-items:center;text-align:center;position:relative;overflow:hidden;background-image:url(/paper-background.png);background-size:cover;background-position:center;background-repeat:no-repeat}.upload-block{display:grid;width:min(560px,80%);margin:24px auto 0;border-radius:var(--radius);border:1px solid var(--green-border);padding:24px;gap:12px;background:#ffffff47;box-shadow:0 12px 28px #1f1a1c0f}.icon-wrap{padding:10px;background-color:var(--warm);justify-self:center;width:44px;height:44px;border:1px solid var(--mist);border-radius:var(--radius);cursor:pointer;transition:transform .12s ease,background-color .12s ease;position:relative}.icon-wrap:hover{transform:translateY(-1px);background-color:var(--mist)}.icon-input{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-block.is-draghover{border-color:var(--rose-dust);background-color:#d9a7b024}.gallery-icon{align-self:center}.upload-instruction{color:var(--ash)}.btn-errors{color:var(--ash);justify-self:center}.upload-error-grid{display:grid;gap:6px}.gal{background-image:url(/paper-background.png);background-size:cover;background-position:center;background-repeat:no-repeat}.gallery-flower{position:absolute;left:120px;bottom:0;height:200px;width:auto;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.9}.upload-summary{width:100%;display:grid;gap:10px;margin-top:10px}.progress-track{height:8px;width:100%;background:var(--mist);border-radius:999px;overflow:hidden;border:1px solid var(--ink)}.progress-fill{height:100%;background:var(--rose-dust);width:0%}.upload-statusline{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--ash)}.drop small{display:block;margin-top:8px;color:var(--ash)}.form{width:min(540px,100%);margin:0 auto}.field{margin-top:0}.label{margin-left:10px}.input,.textarea,.select{width:100%;border:1px solid var(--green-border);border-radius:12px;padding:12px 14px;background:var(--warm);outline:none}.input:focus,.textarea:focus,.select:focus{border-color:#97ad8c;box-shadow:0 0 0 3px #bac8ad47}.drink-field{position:relative;z-index:2}.drink-field.is-open{z-index:60}.dropdown{position:relative}.dropdown.is-open{z-index:40}.dropdown-trigger{width:100%;min-height:48px;border:1px solid var(--green-border);border-radius:12px;padding:12px 44px 12px 14px;background:var(--warm);color:var(--ash);cursor:pointer;display:flex;align-items:center;justify-content:space-between;text-align:left}.dropdown-trigger:hover{border-color:#a8ba9a;background:#fff9fa}.dropdown-trigger:focus-visible{border-color:#97ad8c;box-shadow:0 0 0 3px #bac8ad47;outline:none}.select-icon{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;font-size:18px;color:var(--accent);pointer-events:none;transition:transform .14s ease}.dropdown.is-open .select-icon{transform:translateY(-50%) rotate(180deg)}.dropdown-menu{position:absolute;z-index:50;top:calc(100% + 8px);left:0;right:0;max-height:220px;overflow:auto;border:1px solid var(--green-border);border-radius:var(--radius);background:var(--warm);box-shadow:0 16px 38px #1f1a1c29;padding:6px}.dropdown-menu::-webkit-scrollbar{width:8px}.dropdown-menu::-webkit-scrollbar-track{background:transparent}.dropdown-menu::-webkit-scrollbar-thumb{background:var(--green-border);border:2px solid var(--warm);border-radius:999px}.dropdown-menu{scrollbar-color:var(--green-border) transparent;scrollbar-width:thin}.dropdown-option{width:100%;min-height:40px;border:0;border-radius:10px;padding:10px 12px;background:transparent;color:var(--ash);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left}.dropdown-option:hover,.dropdown-option:focus-visible{background:#bac8ad38;color:var(--ink);outline:none}.dropdown-option.is-selected{background:#bac8ad47;color:var(--ink)}.dropdown-check{width:18px;height:18px;font-size:18px;color:var(--accent);flex:0 0 auto}.textarea{min-height:92px;resize:vertical}.row{display:flex;gap:16px}.row>*{flex:1;margin:12px 0}.hr{height:1px;background:#1f1a1c1a;border:0;margin:24px 0}.rsvp{background:var(--mist);position:relative}.rsvp-inner{padding:clamp(64px,8vw,90px) clamp(48px,8vw,120px);text-align:center}@media(max-width:900px){.rsvp-inner{padding:48px}}.rsvp-card{width:min(560px,100%);margin:24px auto 0;border:1px solid var(--green-border);border-radius:var(--radius);padding:24px;background:#ffffff6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;gap:16px;text-align:left}.rsvp-actions{display:flex;justify-content:center;margin-top:10px}.rsvp-note{margin-top:26px;color:var(--ash)}.rsvp-attending{display:flex;gap:8px;align-items:center}.checkbox-label{display:inline-flex;align-items:center;gap:8px;min-height:28px;margin-left:0;cursor:pointer}.checkbox-input{position:absolute;opacity:0;pointer-events:none}.checkbox-icon{width:22px;height:22px;display:inline-grid;place-items:center;flex:0 0 auto;border:1px solid var(--green-border);border-radius:7px;background:var(--warm);color:transparent;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.checkbox-icon ion-icon{font-size:18px}.checkbox-input:checked+.checkbox-icon{background:var(--green-border);border-color:#9eb28f;color:var(--ink)}.checkbox-input:focus-visible+.checkbox-icon{box-shadow:0 0 0 3px #bac8ad57}@media(max-width:600px){.rsvp-inner{padding:56px 24px}.rsvp-card{padding:20px}.row{flex-direction:column;gap:0}}.admin-link{color:var(--mist)}.admin-login-card{margin-top:120px}
