:root{--paper:oklch(97.7% .009 78);--paper-2:oklch(95.8% .013 72);--surface:oklch(99.6% .005 82);--ink:oklch(27% .018 45);--ink-2:oklch(40% .02 42);--muted:oklch(53% .018 45);--line:oklch(88% .012 70);--line-strong:oklch(80% .016 62);--accent:oklch(60% .1 30);--accent-strong:oklch(51% .11 28);--accent-soft:oklch(93% .03 32);--accent-tint:oklch(96.6% .014 40);--shadow-soft:0 18px 44px -26px #3a261c57;--shadow-card:0 34px 76px -44px #301e1470;--display-font:"Cormorant Garamond", Georgia, "Times New Roman", serif;--body-font:"Manrope", "Segoe UI", system-ui, sans-serif;--theme-transition:.52s cubic-bezier(.22, .61, .36, 1);--ease:cubic-bezier(.22, .61, .36, 1)}body[data-theme=sage]{--accent:oklch(56% .06 155);--accent-strong:oklch(46% .06 153);--accent-soft:oklch(92% .03 155);--accent-tint:oklch(96.6% .013 152);--line:oklch(88% .012 150)}body[data-theme=champagne]{--accent:oklch(66% .07 82);--accent-strong:oklch(54% .08 76);--accent-soft:oklch(93% .035 84);--accent-tint:oklch(96.8% .016 82);--line:oklch(89% .012 78)}body[data-type=modern]{--display-font:"Manrope", "Segoe UI", system-ui, sans-serif}@keyframes rise-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes frame-in{0%{opacity:0;transform:translateY(24px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--paper);background-image:radial-gradient(130% 62% at 50% -12%, color-mix(in oklab, var(--accent-soft) 46%, transparent), transparent 58%);min-height:100vh;color:var(--ink);font-family:var(--body-font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background-color var(--theme-transition);transition:background-color var(--theme-transition);background-repeat:no-repeat;margin:0;font-size:16px;line-height:1.6}::selection{background:var(--accent-soft);color:var(--ink)}img{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}.app-shell{min-height:100vh;position:relative;overflow:clip}.page{z-index:1;width:min(1180px,100% - 44px);margin:0 auto;padding:0 0 72px;position:relative}.eyebrow{color:var(--accent-strong);font-family:var(--body-font);letter-spacing:.26em;text-transform:uppercase;align-items:center;gap:12px;margin:0;font-size:.72rem;font-weight:700;display:inline-flex}.eyebrow .idx{font-variant-numeric:tabular-nums;color:var(--muted);letter-spacing:.12em}.eyebrow .idx:after{content:"";vertical-align:middle;background:var(--line-strong);width:26px;height:1px;margin:0 2px 0 12px;display:inline-block}.monogram{font-family:var(--display-font);letter-spacing:.34em;color:var(--ink);text-indent:.34em;margin:0;font-size:1.55rem;font-weight:600;line-height:1}.monogram span{color:var(--accent-strong);font-style:italic;font-weight:500}[data-reveal]{opacity:1;transform:none}.hero{align-items:center;gap:30px;padding:40px 0 8px;display:grid}.hero-invite{animation:rise-in .9s var(--ease) both;justify-items:start;gap:20px;display:grid}.hero-eyebrow{animation:rise-in .8s 60ms var(--ease) both}.hero-invite .monogram{animation:rise-in .8s .14s var(--ease) both}.hero-together{color:var(--muted);font-style:italic;font-family:var(--display-font);margin:0;font-size:1.35rem;line-height:1.3}.couple{font-family:var(--display-font);letter-spacing:-.01em;text-wrap:balance;justify-items:start;margin:0;font-weight:500;line-height:.92;display:grid}.couple-name{font-size:clamp(3.4rem,9vw,6.4rem)}.couple-amp{color:var(--accent-strong);margin:.02em 0 .02em .06em;font-size:clamp(1.8rem,4vw,3rem);font-style:italic;font-weight:500;line-height:1}.hero-date,.hero-glance{color:var(--ink-2);letter-spacing:.02em;align-items:center;gap:14px;margin:0;font-size:.98rem;font-weight:600;display:inline-flex}.hero-date-sep,.hero-glance-sep{background:var(--accent);flex:none;width:6px;height:6px;transform:rotate(45deg)}.hero-place{color:var(--muted);letter-spacing:.02em;margin:0;font-size:.98rem}.hero-lead{max-width:34ch;color:var(--ink-2);text-wrap:pretty;margin:4px 0 2px;font-size:1.06rem;line-height:1.7}.hero-actions{flex-wrap:wrap;gap:12px;padding-top:4px;display:flex}.hero-glance{border-top:1px solid var(--line);color:var(--muted);width:100%;margin-top:6px;padding-top:18px;font-size:.92rem;font-weight:500}.hero-glance strong{color:var(--ink);margin-right:4px;font-weight:700}.hero-frame{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);animation:frame-in 1s .12s var(--ease) both;border-radius:6px;margin:0;padding:12px;position:relative}.hero-frame:after{content:"";border:1px solid color-mix(in oklab, var(--line) 60%, transparent);pointer-events:none;border-radius:3px;position:absolute;inset:6px}.hero-frame img{aspect-ratio:4/5;object-fit:cover;will-change:transform;border-radius:3px;width:100%}.hero-frame figcaption{text-align:center;font-family:var(--display-font);letter-spacing:.04em;color:var(--muted);margin-top:12px;font-size:1rem;font-style:italic}.button{letter-spacing:.14em;text-transform:uppercase;cursor:pointer;min-height:52px;transition:transform .32s var(--ease), background-color .32s ease, border-color .32s ease, box-shadow .32s ease, color .32s ease;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;padding:0 26px;font-size:.82rem;font-weight:700;text-decoration:none;display:inline-flex}.button:hover{box-shadow:var(--shadow-soft);transform:translateY(-2px)}.button:active{transform:translateY(0)}.button-primary{background:var(--accent-strong);color:var(--paper)}.button-primary:hover{background:var(--accent)}.button-secondary{border-color:var(--line-strong);color:var(--ink);background:0 0}.button-secondary:hover{border-color:var(--accent-strong);color:var(--accent-strong)}.section{border-top:1px solid var(--line);padding:84px 0;position:relative}.section:before{content:"";background:var(--paper);border:1px solid var(--line-strong);width:9px;height:9px;position:absolute;top:-5px;left:50%;transform:translate(-50%)rotate(45deg)}.section-copy{gap:14px;max-width:46rem;margin-bottom:40px;display:grid}.section-copy h2{font-family:var(--display-font);letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:clamp(2.4rem,5vw,3.9rem);font-weight:500;line-height:1}.section-lead,.ceremony-summary,.gallery-summary{max-width:40rem;color:var(--muted);text-wrap:pretty;margin:0;font-size:1.02rem;line-height:1.7}.aside-title{color:var(--accent-strong);letter-spacing:.2em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.details-layout{gap:30px;display:grid}.details-list{border-top:1px solid var(--line);display:grid}.detail-item{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr;gap:18px;padding:22px 0;display:grid}.detail-icon,.expectations li svg,.control-head svg{width:22px;height:22px;color:var(--accent-strong);flex:none}.detail-body{gap:5px;display:grid}.detail-title{color:var(--accent-strong);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.detail-body h3,.invitation-note h3,.preview-copy h3{font-family:var(--display-font);margin:0;font-size:clamp(1.6rem,3.4vw,2.3rem);font-weight:500;line-height:1.02}.detail-body p,.invitation-note p,.form-actions p,.control-head p,.ceremony-lead p,.footer p{color:var(--muted);text-wrap:pretty;margin:0;font-size:.98rem;line-height:1.65}.expectations{background:var(--accent-tint);border:1px solid var(--line);border-radius:14px;align-content:start;gap:16px;padding:24px;display:grid}.expectations ul{gap:14px;margin:0;padding:0;list-style:none;display:grid}.expectations li{color:var(--ink);align-items:center;gap:12px;font-weight:500;display:flex}.ceremony-copy{max-width:42rem}.ceremony-layout{gap:30px;display:grid}.entourage .ceremony-layout,.sponsors .ceremony-layout{border:1px solid var(--line);background:linear-gradient(180deg, var(--surface), color-mix(in oklab, var(--accent-tint) 60%, var(--surface)));box-shadow:var(--shadow-soft);border-radius:18px;padding:30px}.ceremony-lead{align-content:start;gap:12px;display:grid}.entourage-grid,.pair-row{gap:16px;display:grid}.pair-row-two{grid-template-columns:repeat(2,minmax(0,1fr))}.pair-row-one{grid-template-columns:minmax(0,1fr)}.party-group,.sponsor-panel{border:1px solid var(--line);background:var(--surface);transition:transform .3s var(--ease), box-shadow .3s ease, border-color .3s ease;border-radius:14px;align-content:start;gap:12px;padding:20px;display:grid}.party-group:hover,.sponsor-panel:hover{border-color:color-mix(in oklab, var(--accent) 40%, var(--line));box-shadow:var(--shadow-soft);transform:translateY(-3px)}.party-group.is-featured{background:linear-gradient(180deg, var(--accent-tint), var(--surface))}.party-role{color:var(--accent-strong);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.party-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.party-list li{color:var(--ink);font-size:1.02rem;font-family:var(--display-font);text-wrap:pretty;line-height:1.4}.sponsors-layout{gap:30px;display:grid}.secondary-sponsors{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;display:grid}.primary-sponsors .party-list{gap:10px}.gallery .section-copy{text-align:center;justify-items:center;margin-left:auto;margin-right:auto}.gallery-carousel{gap:18px;max-width:760px;margin:0 auto;display:grid}.carousel-track{aspect-ratio:4/5;cursor:grab;-webkit-user-select:none;user-select:none;border-radius:8px;max-height:74vh;position:relative;overflow:hidden}.carousel-track:active{cursor:grabbing}.carousel-slide{opacity:0;transition:opacity .52s var(--ease), transform .62s var(--ease);pointer-events:none;position:absolute;inset:0;transform:scale(1.04)}.carousel-slide.is-active{opacity:1;pointer-events:auto;transform:scale(1)}.carousel-slide img{object-fit:cover;width:100%;height:100%}.carousel-arrow{z-index:5;border:1px solid color-mix(in oklab, var(--line) 60%, transparent);background:color-mix(in oklab, var(--surface) 86%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:46px;height:46px;color:var(--ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:background .28s,transform .28s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 4px 16px #281a1024}.carousel-arrow svg{width:20px;height:20px}.carousel-arrow:hover{background:var(--surface);transform:translateY(-50%)scale(1.08)}.carousel-prev{left:16px}.carousel-next{right:16px}.carousel-dots{justify-content:center;gap:10px;display:flex}.carousel-dot{background:var(--line-strong);cursor:pointer;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:background .28s,transform .28s}.carousel-dot:hover{transform:scale(1.3)}.carousel-dot.is-active{background:var(--accent-strong);transform:scale(1.25)}.carousel-counter{text-align:center;letter-spacing:.14em;color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:.82rem;font-weight:600}.rsvp-layout{gap:26px;display:grid}.rsvp-sidebar{gap:18px;display:grid}.invitation-note{border:1px solid var(--line);background:var(--accent-tint);border-radius:16px;gap:8px;padding:26px;display:grid}.invitation-note h3{font-size:clamp(1.8rem,3vw,2.4rem)}.rsvp-form{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-soft);border-radius:18px;gap:20px;padding:30px;display:grid}.rsvp-form label,.rsvp-form fieldset{gap:9px;display:grid}.rsvp-form span,.rsvp-form legend{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);font-size:.76rem;font-weight:700}.rsvp-form fieldset{border:0;margin:0;padding:0}.form-grid{gap:18px;display:grid}input,select,textarea{border:1px solid var(--line-strong);background:var(--paper);width:100%;color:var(--ink);border-radius:10px;padding:14px 16px;transition:border-color .22s,box-shadow .22s}textarea{resize:vertical;min-height:132px}input::placeholder,textarea::placeholder{color:color-mix(in oklab, var(--muted) 82%, white 18%)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab, var(--accent) 26%, transparent);outline:none}.button:focus-visible,.theme-chip:focus-visible,.type-chip:focus-visible,.photo-chip:focus-visible,.carousel-arrow:focus-visible,.carousel-dot:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.choice{grid-template-columns:auto 1fr;align-items:center;gap:12px!important}.choice span{text-transform:none;letter-spacing:0;color:var(--ink);font-size:1rem;font-weight:500}.choice input{width:18px;height:18px;accent-color:var(--accent-strong);margin:0}.form-actions{gap:12px;display:grid}.form-actions .button{width:100%}.form-actions p{text-align:center;font-size:.86rem}.form-success{border:1px solid color-mix(in oklab, var(--accent) 34%, var(--line));background:var(--accent-soft);animation:rise-in .5s var(--ease) both;border-radius:12px;gap:6px;padding:18px 20px;display:none}.form-success strong{font-family:var(--display-font);font-size:1.4rem;font-weight:600}.form-success span{color:var(--ink-2);text-transform:none;letter-spacing:0;font-size:.95rem;font-weight:500}.form-success.is-visible{display:grid}.customize-layout{gap:30px;display:grid}.customize-controls{gap:26px;display:grid}.customize-preview{align-content:start;gap:14px;display:grid}.control-block{border-bottom:1px solid var(--line);gap:16px;padding-bottom:24px;display:grid}.control-block:last-child{border-bottom:0;padding-bottom:0}.control-head{grid-template-columns:auto 1fr;align-items:start;gap:14px;display:grid}.choice-row{flex-wrap:wrap;gap:12px;display:flex}.theme-chip,.type-chip,.photo-chip{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);cursor:pointer;transition:transform .2s var(--ease), border-color .2s ease, box-shadow .2s ease, background-color .2s ease}.theme-chip:hover,.type-chip:hover,.photo-chip:hover{box-shadow:var(--shadow-soft);transform:translateY(-2px)}.theme-chip.is-active,.type-chip.is-active,.photo-chip.is-active{border-color:var(--accent-strong);box-shadow:0 0 0 1px var(--accent-strong)}.theme-chip{border-radius:999px;align-items:center;gap:10px;min-height:48px;padding:0 16px;font-size:.92rem;font-weight:600;display:inline-flex}.type-chip{border-radius:999px;min-height:48px;padding:0 20px;font-size:.92rem;font-weight:600}.swatch{border:1px solid #00000014;border-radius:999px;width:22px;height:22px}.swatch-blush{background:oklch(60% .1 30)}.swatch-sage{background:oklch(56% .06 155)}.swatch-champagne{background:oklch(66% .07 82)}.photo-row{gap:12px}.photo-chip{border-radius:8px;width:72px;height:90px;padding:0;overflow:hidden}.photo-chip img{object-fit:cover;width:100%;height:100%}.preview-stage{border:1px solid var(--line);background:linear-gradient(180deg, var(--surface), var(--accent-tint));box-shadow:var(--shadow-soft);border-radius:18px;gap:18px;padding:20px;display:grid}.preview-stage.preview-sage{background:linear-gradient(180deg, var(--surface), oklch(96.6% .013 152))}.preview-stage.preview-champagne{background:linear-gradient(180deg, var(--surface), oklch(96.8% .016 82))}.preview-image{aspect-ratio:4/5;object-fit:cover;width:100%;box-shadow:var(--shadow-card);border-radius:12px}.preview-copy{gap:8px;display:grid}.preview-label{color:var(--accent-strong);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:700}.preview-copy h3{font-size:clamp(2rem,3vw,2.8rem)}.preview-stage.preview-type-modern .preview-copy h3{font-family:var(--body-font);letter-spacing:-.03em;font-weight:700}.preview-copy>p{color:var(--muted);margin:0;font-size:.95rem}.preview-tags{flex-wrap:wrap;gap:10px;padding-top:6px;display:flex}.preview-tags span{background:color-mix(in oklab, var(--surface) 80%, transparent);border:1px solid var(--line);min-height:34px;color:var(--ink);letter-spacing:.02em;border-radius:999px;align-items:center;padding:0 14px;font-size:.82rem;font-weight:600;display:inline-flex}.footer{text-align:center;border-top:1px solid var(--line);justify-items:center;gap:10px;padding:64px 0 8px;display:grid;position:relative}.footer:before{content:"";background:var(--paper);border:1px solid var(--line-strong);width:9px;height:9px;position:absolute;top:-5px;left:50%;transform:translate(-50%)rotate(45deg)}.footer-monogram{margin-bottom:4px;font-size:1.9rem}.footer-couple{font-family:var(--display-font);color:var(--ink);margin:0;font-size:1.4rem}.footer small{color:var(--muted);font-size:.86rem}@media (width>=720px){.hero{grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:56px;min-height:min(88vh,860px);padding:64px 0 24px}.hero-frame{padding:14px}.details-layout{grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);align-items:start}.ceremony-layout,.sponsors-layout{grid-template-columns:minmax(220px,.4fr) minmax(0,1fr);align-items:start;column-gap:40px}.ceremony-lead,.customize-preview,.rsvp-sidebar,.expectations{position:sticky;top:32px}.secondary-sponsors{grid-template-columns:repeat(3,minmax(0,1fr))}.pair-row-one{max-width:calc(50% - 8px)}.rsvp-layout{grid-template-columns:minmax(260px,.5fr) minmax(0,1.5fr);align-items:start}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.customize-layout{grid-template-columns:minmax(0,1.02fr) minmax(320px,.98fr);align-items:start;column-gap:40px}.carousel-track{aspect-ratio:16/10;max-height:none}.carousel-slide{height:88%;transition:opacity .52s var(--ease), transform .62s var(--ease), filter .62s var(--ease);border-radius:8px;position:absolute;inset:6% auto auto;overflow:hidden}.carousel-slide.is-active{z-index:3;opacity:1;filter:none;width:50%;box-shadow:var(--shadow-card);left:50%;transform:translate(-50%)}.carousel-slide.is-prev{z-index:2;opacity:.55;filter:saturate(.6);width:30%;left:1%;transform:scale(.9)}.carousel-slide.is-next{z-index:2;opacity:.55;filter:saturate(.6);width:30%;right:1%;transform:scale(.9)}.carousel-slide.is-hidden{opacity:0;z-index:1;transform:scale(.86)}}@media (width<=719px){.page{width:100%;padding-bottom:0}.hero,.section,.footer{padding-left:22px;padding-right:22px}.hero{text-align:center;align-items:flex-end;min-height:100svh;margin:0;padding:0;display:flex;position:relative;overflow:hidden}.hero-frame{box-shadow:none;z-index:0;background:0 0;border:0;border-radius:0;order:0;margin:0;padding:0;animation:none;position:absolute;inset:0}.hero-frame:after{background:linear-gradient(#1c110b4d 0%,#1c110b00 24%,#1a0f0914 46%,#180d089e 74%,#160c07d6 100%);border:0;border-radius:0;inset:0}.hero-frame img{aspect-ratio:auto;object-fit:cover;border-radius:0;width:100%;height:100%}.hero-frame figcaption{display:none}.hero-invite{z-index:1;text-align:center;width:100%;padding:0 24px calc(36px + env(safe-area-inset-bottom));color:#fffaf3eb;text-shadow:0 2px 18px #140a0680;animation:rise-in .9s var(--ease) both;justify-items:center;gap:14px;position:relative}.hero-eyebrow,.hero-place{color:#fffaf3d1}.hero-together{color:#fffaf3e6}.hero-invite .monogram{color:#fffaf3f5}.hero-invite .monogram span,.couple-amp{color:color-mix(in oklab, var(--accent) 45%, white)}.hero-date-sep,.hero-glance-sep{background:color-mix(in oklab, var(--accent) 45%, white)}.couple{justify-items:center}.couple-name{color:#fffdf9;font-size:clamp(3rem,15vw,4.6rem)}.hero-date{color:#fffaf3eb}.hero-lead{color:#fffaf3db;max-width:32ch}.hero-actions{flex-direction:column;width:min(100%,22rem);padding-top:2px}.hero-actions .button{width:100%}.hero-actions .button-secondary{color:#fffdf9;border-color:#fffaf38c}.hero-actions .button-secondary:hover{color:#fff;border-color:#fff}.hero-glance{color:#fffaf3d9;border-top-color:#fffaf347;justify-content:center}.hero-glance strong{color:#fffdf9}.section{padding:56px 22px}.section-copy{text-align:center;justify-items:center;margin-left:auto;margin-right:auto}.rsvp,.entourage,.sponsors{background:var(--accent-tint);margin:0 -22px;padding-left:22px;padding-right:22px}.entourage .ceremony-layout,.sponsors .ceremony-layout{background:var(--surface);padding:20px}.details-layout,.rsvp-layout,.customize-layout,.sponsors-layout,.ceremony-layout,.secondary-sponsors{justify-items:center}.details-list,.rsvp-form,.customize-controls,.rsvp-sidebar,.entourage-grid,.sponsors-layout,.secondary-sponsors,.primary-sponsors,.pair-row,.pair-row-one,.gallery-carousel,.customize-preview,.expectations{width:min(100%,34rem)}.detail-item{text-align:center;grid-template-columns:1fr;justify-items:center;gap:10px}.detail-body{justify-items:center}.expectations,.invitation-note,.ceremony-lead,.party-group,.sponsor-panel,.control-block{text-align:center;justify-items:center}.expectations li{justify-content:center}.control-head{text-align:center;grid-template-columns:1fr;justify-items:center}.choice-row{justify-content:center}.carousel-track{aspect-ratio:3/4;max-height:66vh}.carousel-arrow{width:40px;height:40px}.carousel-prev{left:10px}.carousel-next{right:10px}.footer{padding:48px 22px 2px}}.party-group,.sponsor-panel,.rsvp-form,.invitation-note,.expectations,.preview-stage,.button-primary,.detail-item,.section{transition-property:background-color,border-color,color,box-shadow,transform;transition-duration:var(--theme-transition);transition-timing-function:var(--ease)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
