:root{color-scheme:dark;--bg:#101410;--surface:rgba(255,255,255,0.08);--surface-strong:rgba(255,255,255,0.14);--text:#fffaf0;--muted:rgba(255,250,240,0.72);--line:rgba(255,250,240,0.18);--primary:#d7b46a;--secondary:#1d6a58;--accent:#8f314c;--paper:#fff3dd;--shadow:0 28px 80px rgba(0,0,0,0.38);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden;overflow-y:auto;touch-action:pan-y;overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch}body{margin:0;min-height:100vh;overflow-x:hidden;overflow-y:visible;touch-action:pan-y;background:linear-gradient(135deg,color-mix(in srgb,var(--secondary),#050806 78%),transparent 45%),linear-gradient(155deg,#070907 0%,var(--bg) 52%,color-mix(in srgb,var(--accent),#060606 68%) 100%);color:var(--text)}.page-curtain{position:fixed;inset:0;z-index:9999;pointer-events:none;background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--secondary),#070907 44%),transparent 72%),var(--bg);opacity:1;will-change:opacity;transition:opacity 900ms cubic-bezier(0.65,0,0.25,1)}.page-curtain.is-gone{opacity:0}body::before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,0.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.028) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(to bottom,black,transparent 76%)}a{color:inherit}svg{width:1.18rem;height:1.18rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.catalog{width:min(1180px,calc(100% - 2rem));margin:0 auto;padding:3rem 0 4rem}.catalog__hero{min-height:min(72svh,760px);display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,28rem);gap:clamp(1rem,4vw,3rem);align-items:center}.catalog__copy{padding:clamp(1rem,4vw,2.5rem) 0}.catalog__kicker,.kicker{margin:0 0 0.8rem;color:var(--primary);font-size:0.76rem;font-weight:900;letter-spacing:0.16em;text-transform:uppercase}.catalog h1,.invite-title,.section-title,.venue-card h2,.rsvp h2{font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-weight:650;letter-spacing:0}.catalog h1{max-width:13ch;margin:0;font-size:clamp(3.2rem,8vw,7.5rem);line-height:0.9;overflow-wrap:anywhere}.catalog__copy>p:not(.catalog__kicker){max-width:42rem;color:var(--muted);font-size:clamp(1rem,1.5vw,1.18rem);line-height:1.7}.catalog__proof{display:flex;flex-wrap:wrap;gap:0.6rem;margin-top:1.5rem}.catalog__proof span{padding:0.65rem 0.8rem;border:1px solid var(--line);border-radius:6px;color:var(--paper);font-size:0.78rem;font-weight:800}.catalog__visual{position:relative;min-height:36rem;overflow:hidden;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.catalog__visual img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.catalog__visual::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,0.1),rgba(0,0,0,0.72)),linear-gradient(135deg,color-mix(in srgb,var(--secondary),transparent 42%),color-mix(in srgb,var(--accent),transparent 54%))}.catalog__stamp{position:absolute;left:1.2rem;right:1.2rem;bottom:1.2rem;z-index:1;border-top:1px solid rgba(255,250,240,0.34);padding-top:1rem;font-family:"Cormorant Garamond",Georgia,serif;max-width:15ch;font-size:2rem;line-height:1}.catalog-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.85rem}.template-card{position:relative;isolation:isolate;min-height:16rem;display:grid;align-content:space-between;overflow:hidden;padding:1rem;border:1px solid var(--line);border-radius:8px;background:var(--surface);text-decoration:none;box-shadow:0 18px 50px rgba(0,0,0,0.22);transition:transform 180ms ease,border-color 180ms ease}.template-card::before,.template-card::after{content:"";position:absolute;inset:0;z-index:-2}.template-card::before{background-image:var(--card-image);background-position:center;background-size:cover;transition:transform 500ms ease}.template-card::after{z-index:-1;background:linear-gradient(180deg,rgba(4,5,4,0.08) 8%,rgba(4,5,4,0.28) 46%,rgba(4,5,4,0.96) 100%),linear-gradient(135deg,color-mix(in srgb,var(--card-color,var(--primary)),transparent 75%),transparent 55%)}.template-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--card-color,var(--primary)),white 16%)}.template-card:hover::before{transform:scale(1.045)}.template-card span{width:3rem;height:3rem;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--card-color,var(--primary)),white 20%);border-radius:999px;background:rgba(8,9,8,0.32);backdrop-filter:blur(7px);color:var(--paper);font-size:1.4rem}.template-card strong{display:block;margin-bottom:0.25rem;font-family:"Cormorant Garamond",Georgia,serif;font-size:2rem;line-height:0.95}.template-card small{color:rgba(255,250,240,0.78);line-height:1.45}.invite-page{background:linear-gradient(150deg,color-mix(in srgb,var(--secondary),#030403 70%),transparent 45%),linear-gradient(180deg,#060706 0%,var(--bg) 50%,color-mix(in srgb,var(--accent),#030303 76%) 100%)}.two-col,.details-grid,.note-band,.rsvp,.footer{content-visibility:auto;contain-intrinsic-size:auto 560px}.invite-app{min-height:100vh;touch-action:pan-y}.invite-hero{position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(21rem,0.95fr);gap:clamp(1rem,4vw,3rem);align-items:stretch;width:min(1180px,calc(100% - 2rem));margin:0 auto;padding:max(1rem,env(safe-area-inset-top)) 0 2rem}.hero-copy{display:grid;align-content:center;padding:4rem 0 2rem}.invite-type{margin:0 0 1rem;color:var(--primary);font-weight:900;letter-spacing:0.18em;text-transform:uppercase;font-size:0.78rem}.invite-title{margin:0;max-width:10ch;font-size:clamp(4rem,10vw,8.5rem);line-height:0.86;text-wrap:balance;overflow-wrap:anywhere;text-shadow:0 16px 42px rgba(0,0,0,0.35)}.invite-title--long{font-size:clamp(3.5rem,8vw,7rem)}.invite-title--extra-long{font-size:clamp(3rem,7vw,6.1rem)}.invite-subtitle{max-width:38rem;margin:1.15rem 0 1.7rem;color:var(--muted);font-size:clamp(1rem,1.7vw,1.22rem);line-height:1.7}.date-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:min(100%,28rem);min-height:5.2rem;border-top:1px solid color-mix(in srgb,var(--primary),transparent 30%);border-bottom:1px solid color-mix(in srgb,var(--primary),transparent 30%)}.date-row span{min-width:0;font-size:0.82rem;font-weight:900;letter-spacing:0.12em;text-transform:uppercase}.date-row strong{color:var(--primary);font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(3.5rem,10vw,5.2rem);line-height:0.85}.hero-media{position:relative;min-height:39rem;overflow:hidden;align-self:stretch;border:1px solid var(--line);border-radius:8px;background:#111;box-shadow:var(--shadow)}.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(var(--image-saturation,1)) contrast(var(--image-contrast,1));pointer-events:none;user-select:none;-webkit-user-drag:none}.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,0.06),rgba(0,0,0,0.72)),linear-gradient(135deg,color-mix(in srgb,var(--secondary),transparent 46%),color-mix(in srgb,var(--accent),transparent 58%))}.hero-badge{position:absolute;left:1.15rem;right:1.15rem;bottom:1.15rem;z-index:1;display:grid;gap:0.8rem}.badge-symbol{width:4.4rem;height:4.4rem;display:grid;place-items:center;border:1px solid rgba(255,250,240,0.38);border-radius:999px;background:rgba(0,0,0,0.26);backdrop-filter:blur(14px);font-size:2rem}.hero-badge p{margin:0;max-width:23rem;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(2rem,5vw,3.1rem);line-height:0.95}.top-actions{position:absolute;inset:max(1rem,env(safe-area-inset-top)) 0 auto;z-index:4;display:flex;justify-content:space-between}.scroll-hint{display:none}.icon-btn,.button{-webkit-tap-highlight-color:transparent}.icon-btn{width:2.9rem;height:2.9rem;display:grid;place-items:center;border:1px solid var(--line);border-radius:999px;color:var(--text);background:rgba(0,0,0,0.22);backdrop-filter:blur(16px)}.content{width:min(1180px,calc(100% - 2rem));margin:0 auto}.countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.75rem;margin:-0.6rem 0 1rem}.time-card,.venue-card,.detail-card,.schedule,.rsvp,.note-band{border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary),transparent 88%),transparent),var(--surface);box-shadow:0 18px 55px rgba(0,0,0,0.22);backdrop-filter:blur(18px)}.time-card{min-height:6.2rem;display:grid;place-items:center;align-content:center;gap:0.18rem}.time-card strong{color:var(--primary);font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(2rem,5vw,3.2rem);line-height:0.85}.time-card span{color:var(--muted);font-size:0.68rem;font-weight:900;letter-spacing:0.08em;text-transform:uppercase}.two-col{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(18rem,0.9fr);gap:1rem;margin-top:1rem;min-width:0}.venue-card,.schedule,.rsvp,.note-band{padding:clamp(1.15rem,2.5vw,1.7rem);min-width:0;max-width:100%}.venue-card h2,.rsvp h2,.section-title{margin:0.45rem 0 0.7rem;font-size:clamp(2.25rem,5vw,4rem);line-height:0.92}.venue-card p,.rsvp p,.note-band p,.detail-card p{color:var(--muted);line-height:1.62}.meta-list{display:flex;flex-wrap:wrap;gap:0.5rem;margin:1rem 0 1.2rem}.meta-list span{padding:0.52rem 0.72rem;border:1px solid color-mix(in srgb,var(--primary),transparent 60%);border-radius:999px;color:color-mix(in srgb,var(--primary),white 12%);background:rgba(0,0,0,0.14);font-size:0.78rem;font-weight:900}.actions{display:flex;flex-wrap:wrap;gap:0.7rem}.map-frame{position:relative;width:100%;aspect-ratio:16 / 9;min-height:13rem;margin-top:1rem;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:rgba(0,0,0,0.22);min-width:0;max-width:100%}.map-frame iframe{width:100%;height:100%;border:0;filter:saturate(0.76) contrast(1.03);pointer-events:none}.button{min-height:3.25rem;display:inline-flex;align-items:center;justify-content:center;gap:0.55rem;border:1px solid var(--line);border-radius:999px;padding:0.86rem 1rem;color:var(--text);background:rgba(255,255,255,0.08);font-weight:900;text-decoration:none;cursor:pointer}.button--primary{border-color:transparent;background:var(--paper);color:#141611}.button--accent{border-color:transparent;background:linear-gradient(135deg,color-mix(in srgb,var(--primary),white 18%),color-mix(in srgb,var(--accent),var(--primary) 42%));color:#141611}.details-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0}.detail-card{min-height:13rem;padding:1.15rem;min-width:0;max-width:100%}.detail-card svg{width:1.7rem;height:1.7rem;margin-bottom:0.9rem;color:var(--primary)}.detail-card h3{margin:0.45rem 0 0.5rem;font-family:"Cormorant Garamond",Georgia,serif;font-size:2rem;line-height:0.95}.schedule-item{display:grid;grid-template-columns:5rem 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid rgba(255,250,240,0.12)}.schedule-item:last-child{padding-bottom:0;border-bottom:0}.schedule-item time{color:var(--primary);font-weight:950}.schedule-item strong{display:block;margin-bottom:0.18rem}.schedule-item span{color:var(--muted)}.note-band{margin:1rem 0}.note-band p{max-width:62rem;margin-bottom:0;font-size:clamp(1.1rem,2vw,1.38rem)}.rsvp{margin:1rem 0 4rem;text-align:center}.rsvp .button{width:min(100%,24rem)}.footer{padding:0 0 max(2rem,env(safe-area-inset-bottom));color:rgba(255,250,240,0.58);text-align:center;font-size:0.85rem}.reveal{transform:translateY(22px);opacity:0;transition:transform 680ms ease,opacity 680ms ease}.reveal.is-visible{transform:translateY(0);opacity:1}.theme-luctuoso{--image-saturation:0.2;--image-contrast:0.92}@media (max-width:900px){html,body{width:100%;height:100%;overflow:hidden}.catalog,.invite-app{height:100dvh;min-height:0;overflow-x:hidden;overflow-y:scroll;touch-action:pan-y;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--primary),transparent 28%) transparent}.catalog__hero,.two-col{grid-template-columns:1fr}.catalog__hero{min-height:auto;padding-top:1rem}.catalog__copy{text-align:center}.catalog__proof{justify-content:center}.catalog h1,.catalog__copy>p:not(.catalog__kicker){margin-left:auto;margin-right:auto}.catalog__visual{min-height:26rem}.invite-hero{width:100%;min-height:92svh;display:block;overflow:hidden;padding:0}.hero-copy{position:relative;z-index:2;width:min(100% - 1.5rem,480px);margin:0 auto;min-height:92svh;padding:max(5rem,calc(env(safe-area-inset-top) + 4rem)) 0 2rem;align-content:end;justify-items:center;text-align:center}.invite-title,.invite-subtitle{margin-left:auto;margin-right:auto}.hero-media{position:absolute;inset:0;min-height:100%;margin:0;border:0;border-radius:0;box-shadow:none}.hero-media::after{background:linear-gradient(to bottom,rgba(0,0,0,0.08),rgba(0,0,0,0.22) 30%,rgba(0,0,0,0.94) 88%),linear-gradient(135deg,color-mix(in srgb,var(--secondary),transparent 38%),color-mix(in srgb,var(--accent),transparent 56%))}.hero-badge{display:none}.top-actions{top:max(0.75rem,env(safe-area-inset-top));left:0.85rem;right:0.85rem}.scroll-hint{position:absolute;left:50%;bottom:max(0.55rem,env(safe-area-inset-bottom));z-index:5;width:2.4rem;height:2.4rem;display:grid;place-items:center;border:1px solid rgba(255,250,240,0.34);border-radius:999px;color:var(--text);background:rgba(0,0,0,0.3);backdrop-filter:blur(12px);transform:translateX(-50%);animation:scrollHint 1.7s ease-in-out infinite}.content,.venue-card,.schedule,.detail-card,.note-band,.rsvp{text-align:center}.meta-list,.actions{justify-content:center}.schedule-item{grid-template-columns:1fr;justify-items:center;gap:0.3rem}.schedule-item div{text-align:center}.detail-card svg{margin-left:auto;margin-right:auto}.details-grid{grid-template-columns:1fr}}@media (max-width:540px){.catalog{width:min(100% - 1rem,480px);padding-top:1rem}.catalog h1{font-size:clamp(2.9rem,13vw,3.7rem)}.catalog-grid{grid-template-columns:1fr}.template-card{min-height:15rem;justify-items:center;text-align:center}.invite-hero{width:100%}.content{width:min(100% - 1.25rem,480px)}.invite-title{max-width:9.5ch;font-size:clamp(3.65rem,17vw,5.3rem);line-height:0.88}.invite-title--long{max-width:11ch;font-size:clamp(3.05rem,14vw,4.45rem)}.invite-title--extra-long{max-width:12ch;font-size:clamp(2.55rem,11.8vw,3.75rem);line-height:0.92}.invite-subtitle{margin:0.85rem 0 1.2rem;font-size:0.94rem;line-height:1.55}.date-row{width:100%;min-height:4.45rem;gap:0.35rem}.date-row span{font-size:0.64rem;letter-spacing:0.08em;line-height:1.25}.date-row span:first-child{text-align:center}.date-row span:last-child{text-align:center}.date-row strong{font-size:clamp(3.2rem,15vw,4.15rem)}.countdown{grid-template-columns:repeat(4,minmax(0,1fr));gap:0.4rem;margin:0.65rem 0}.time-card{min-height:4.75rem}.time-card strong{font-size:clamp(1.8rem,9vw,2.6rem)}.time-card span{font-size:0.58rem}.two-col,.details-grid{gap:0.65rem;margin-top:0.65rem}.venue-card,.schedule,.rsvp,.note-band,.detail-card{padding:1rem}.map-frame{min-height:15rem}.detail-card{min-height:auto}.detail-card svg{margin-bottom:0.65rem}.detail-card h3{font-size:1.8rem}.schedule-item{grid-template-columns:1fr;gap:0.65rem;padding:0.85rem 0}.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.button{width:100%;min-width:0;padding-inline:0.72rem;font-size:0.84rem;overflow-wrap:anywhere}.venue-card h2,.rsvp h2,.section-title{font-size:clamp(2.15rem,12vw,3.15rem)}.note-band,.rsvp{margin:0.65rem 0}.rsvp{margin-bottom:2.5rem}}@media (max-width:540px) and (max-height:720px){.invite-hero,.hero-copy{min-height:96svh}.hero-copy{padding-bottom:1rem}.invite-title{font-size:clamp(3.2rem,15vw,4.5rem)}.invite-title--long{font-size:clamp(2.8rem,13vw,3.85rem)}.invite-title--extra-long{font-size:clamp(2.35rem,10.8vw,3.25rem)}.invite-subtitle{margin:0.65rem 0 0.85rem;font-size:0.87rem;line-height:1.45}}@media (max-width:350px){.countdown{grid-template-columns:repeat(2,1fr)}.actions{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto !important;animation-duration:1ms !important;animation-iteration-count:1 !important;transition-duration:1ms !important}}@keyframes scrollHint{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,6px)}}