/* DreamDay — Batavia Gigi Balang / Betawi Veranda Social House */
.bgb-body {
  --bgb-cream:#f6e9d4;
  --bgb-cream-2:#fff8eb;
  --bgb-teal:#0b5b5a;
  --bgb-teal-2:#177875;
  --bgb-terra:#c96548;
  --bgb-wood:#4a2d24;
  --bgb-wood-2:#2f1e19;
  --bgb-gold:#d6a85e;
  --bgb-ink:#2e2521;
  --bgb-muted:#786b61;
  --bgb-sage:#78927f;
  --bgb-shadow:0 18px 50px rgba(61,39,30,.14);
  margin:0;
  color:var(--bgb-ink);
  background:var(--bgb-cream-2);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.bgb-body *,.bgb-body *::before,.bgb-body *::after{box-sizing:border-box}
.bgb-body img{max-width:100%;display:block}
.bgb-body a{color:inherit}
.bgb-body button,.bgb-body input,.bgb-body select,.bgb-body textarea{font:inherit}
.bgb-body button,.bgb-body a{-webkit-tap-highlight-color:transparent}
.bgb-body.bgb-locked{overflow:hidden}
.bgb-site{position:relative;min-height:100vh;min-height:100dvh;overflow:clip;background:url("assets/backgrounds/veranda-plaster.svg") center top/1200px auto repeat-y,var(--bgb-cream-2)}
.bgb-shell{width:min(1180px,calc(100% - 48px));margin-inline:auto;position:relative}
.bgb-kicker{margin:0 0 12px;font-size:.72rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--bgb-terra)}
.bgb-muted{color:var(--bgb-muted)}
.bgb-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Opening — gate to veranda */
.bgb-opening{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;min-height:100vh;min-height:100dvh;overflow:hidden;background:var(--bgb-cream-2);transition:opacity .62s ease,visibility .62s ease}
.bgb-opening[aria-hidden="true"]{opacity:0;visibility:hidden;pointer-events:none}
.bgb-opening__plaster{position:absolute;inset:0;background:url("assets/backgrounds/veranda-plaster.svg") center/cover;pointer-events:none}
.bgb-opening__cornice{position:absolute;left:50%;top:max(14px,env(safe-area-inset-top));width:min(1050px,94vw);transform:translateX(-50%);z-index:2;pointer-events:none}
.bgb-opening__gate{position:absolute;inset:0;z-index:1;display:flex;pointer-events:none;perspective:1400px}
.bgb-opening__door{position:absolute;top:0;bottom:0;width:50.5%;background:linear-gradient(90deg,rgba(74,45,36,.94),rgba(47,30,25,.98));transition:transform .9s cubic-bezier(.72,0,.22,1);box-shadow:inset 0 0 0 14px rgba(214,168,94,.15)}
.bgb-opening__door::after{content:"";position:absolute;inset:16% 12%;border:2px solid rgba(246,233,212,.35);background:linear-gradient(135deg,transparent 48%,rgba(214,168,94,.16) 49% 51%,transparent 52%)}
.bgb-opening__door--left{left:0;transform-origin:left center}.bgb-opening__door--right{right:0;transform-origin:right center}
.bgb-opening.is-opening .bgb-opening__door--left{transform:translateX(-101%) rotateY(12deg)}
.bgb-opening.is-opening .bgb-opening__door--right{transform:translateX(101%) rotateY(-12deg)}
.bgb-opening__content{position:relative;z-index:5;width:min(590px,calc(100% - 38px));padding:44px 34px;text-align:center;background:rgba(255,248,235,.94);border:1px solid rgba(74,45,36,.2);box-shadow:0 22px 80px rgba(31,20,17,.26);backdrop-filter:blur(6px)}
.bgb-opening__content::before,.bgb-opening__content::after{content:"";position:absolute;top:18px;bottom:18px;width:8px;background:repeating-linear-gradient(to bottom,var(--bgb-teal) 0 16px,var(--bgb-terra) 16px 32px)}
.bgb-opening__content::before{left:-8px}.bgb-opening__content::after{right:-8px}
.bgb-opening h1{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.8rem,8vw,5.7rem);line-height:.96;color:var(--bgb-wood);font-weight:600;letter-spacing:-.055em}
.bgb-opening__date{margin:18px 0 26px;color:var(--bgb-teal);font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.88rem}
.bgb-opening__guest{display:grid;gap:5px;margin:0 auto 24px;padding:18px 22px;max-width:390px;border-top:1px solid rgba(74,45,36,.18);border-bottom:1px solid rgba(74,45,36,.18)}
.bgb-opening__guest span{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--bgb-muted)}
.bgb-opening__guest strong{font-family:Georgia,serif;font-size:1.25rem;color:var(--bgb-wood)}

.bgb-primary-btn,.bgb-solid-btn,.bgb-outline-btn{position:relative;z-index:2;display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:12px;border-radius:0;border:1px solid transparent;padding:13px 22px;text-decoration:none;font-weight:800;letter-spacing:.02em;cursor:pointer;transition:transform .22s ease,background-color .22s ease,color .22s ease,border-color .22s ease}
.bgb-primary-btn{border:0;background:var(--bgb-teal);color:#fff;box-shadow:8px 8px 0 var(--bgb-terra)}
.bgb-primary-btn:hover,.bgb-primary-btn:focus-visible{transform:translate(-2px,-2px);box-shadow:10px 10px 0 var(--bgb-terra)}
.bgb-primary-btn:active{transform:translate(4px,4px);box-shadow:4px 4px 0 var(--bgb-terra)}
.bgb-primary-btn--inline{width:max-content;max-width:100%}
.bgb-solid-btn{background:var(--bgb-terra);color:#fff;border-color:var(--bgb-terra)}
.bgb-solid-btn:hover,.bgb-solid-btn:focus-visible{background:var(--bgb-wood);border-color:var(--bgb-wood);transform:translateY(-2px)}
.bgb-outline-btn{color:var(--bgb-cream-2);border-color:rgba(255,248,235,.55);background:transparent}
.bgb-outline-btn:hover,.bgb-outline-btn:focus-visible{background:var(--bgb-cream-2);color:var(--bgb-wood)}
.bgb-text-link{display:inline-flex;align-items:center;gap:10px;margin-top:26px;text-decoration:none;font-weight:800;color:var(--bgb-teal);border-bottom:2px solid var(--bgb-terra);padding-bottom:5px}

/* Hero */
.bgb-hero{position:relative;min-height:100vh;min-height:100dvh;padding:190px 0 130px;display:grid;align-items:center;background:linear-gradient(110deg,rgba(255,248,235,.96) 0 56%,rgba(236,207,171,.62) 56% 100%);isolation:isolate}
.bgb-hero__awning{position:absolute;left:0;right:0;top:0;height:150px;overflow:hidden;z-index:2;pointer-events:none;transform:translateZ(0)}
.bgb-hero__awning img{width:100%;height:100%;object-fit:cover;object-position:bottom}
.bgb-hero__breeze{position:absolute;width:min(650px,65vw);right:-6vw;top:19%;opacity:.55;pointer-events:none;z-index:-1}
.bgb-hero__grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(330px,.76fr);align-items:center;gap:72px}
.bgb-hero__copy{position:relative;z-index:2}
.bgb-hero__eyebrow{margin:0 0 8px;color:var(--bgb-muted);font-weight:600}
.bgb-hero h2{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.08em .18em;font-family:Georgia,"Times New Roman",serif;font-size:clamp(4.2rem,9.4vw,9.4rem);line-height:.82;letter-spacing:-.075em;color:var(--bgb-wood)}
.bgb-hero h2 em{font-size:.48em;color:var(--bgb-terra);font-weight:400}
.bgb-hero__date{margin:30px 0 12px;font-weight:900;color:var(--bgb-teal);letter-spacing:.11em;text-transform:uppercase;font-size:.88rem}
.bgb-hero__welcome{max-width:620px;margin:0;color:var(--bgb-muted);font-size:1.05rem;line-height:1.8}
.bgb-hero__portal{--depth-x:0px;--depth-y:0px;position:relative;min-height:620px;transform:translate3d(var(--depth-x),var(--depth-y),0);will-change:transform}
.bgb-hero__portal::before{content:"";position:absolute;inset:0 6%;background:var(--bgb-wood);border-radius:48% 48% 4px 4px/22% 22% 4px 4px;opacity:.98}
.bgb-hero__portal::after{content:"";position:absolute;inset:28px 11% 20px;border:8px solid var(--bgb-gold);border-radius:48% 48% 4px 4px/22% 22% 4px 4px;pointer-events:none}
.bgb-hero__cover,.bgb-hero__cover-fallback{position:absolute;inset:52px 14% 30px;width:72%;height:calc(100% - 82px);object-fit:cover;border-radius:45% 45% 3px 3px/19% 19% 3px 3px;background:var(--bgb-teal);overflow:hidden}
.bgb-hero__cover-fallback{display:flex;align-items:center;justify-content:center;gap:18px;color:var(--bgb-cream-2);font-family:Georgia,serif;font-size:4.5rem;background:linear-gradient(135deg,var(--bgb-teal),var(--bgb-wood))}
.bgb-hero__cover-fallback i{font-size:.46em;color:var(--bgb-gold)}
.bgb-hero__rail{position:absolute;bottom:-14px;left:0;width:100%;height:120px;object-fit:cover;object-position:top;pointer-events:none}

/* Shared section typography */
.bgb-section-heading{max-width:700px;margin-bottom:52px}.bgb-section-heading--center{text-align:center;margin-inline:auto}
.bgb-section-heading h2,.bgb-map h2,.bgb-gift h2,.bgb-rsvp h2,.bgb-guestbook h2,.bgb-closing h2{margin:0 0 16px;font-family:Georgia,"Times New Roman",serif;font-weight:600;color:var(--bgb-wood);font-size:clamp(2.6rem,5vw,5.2rem);line-height:.98;letter-spacing:-.045em}
.bgb-section-heading>p:last-child,.bgb-map__content>p,.bgb-gift__intro>p,.bgb-rsvp__welcome>p,.bgb-guestbook .bgb-section-heading>p:last-child{color:var(--bgb-muted);line-height:1.8;font-size:1.02rem}

/* Countdown */
.bgb-countdown{position:relative;padding:108px 0 120px;background:var(--bgb-teal);color:#fff;overflow:hidden}
.bgb-countdown::before,.bgb-countdown::after{content:"";position:absolute;left:0;right:0;height:34px;background:linear-gradient(135deg,var(--bgb-terra) 25%,transparent 25%) 0 0/54px 54px,linear-gradient(225deg,var(--bgb-terra) 25%,transparent 25%) 27px 0/54px 54px;pointer-events:none}
.bgb-countdown::before{top:-1px;transform:rotate(180deg)}.bgb-countdown::after{bottom:-1px}
.bgb-countdown .bgb-section-heading h2{color:var(--bgb-cream-2)}.bgb-countdown .bgb-section-heading p:last-child{color:rgba(255,248,235,.72)}.bgb-countdown .bgb-kicker{color:var(--bgb-gold)}
.bgb-countdown__track{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:end;padding:20px 0 0}
.bgb-countdown__track::before{content:"";position:absolute;left:0;right:0;bottom:29px;height:2px;background:rgba(255,248,235,.28)}
.bgb-time-marker{position:relative;min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:10px;padding:28px 10px 20px;color:var(--bgb-cream-2);transform:translateY(var(--marker-y,0));transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.bgb-time-marker:nth-child(2){--marker-y:-20px}.bgb-time-marker:nth-child(3){--marker-y:16px}.bgb-time-marker:nth-child(4){--marker-y:-8px}
.bgb-time-marker::after{content:"";width:28px;height:28px;background:var(--bgb-terra);clip-path:polygon(50% 100%,0 0,100% 0);position:absolute;bottom:15px;transform:translateY(100%)}
.bgb-time-marker strong{font-family:Georgia,serif;font-size:clamp(3.1rem,7vw,6.6rem);line-height:.85;font-variant-numeric:tabular-nums}
.bgb-time-marker span{text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;color:var(--bgb-gold);font-weight:900}
.bgb-countdown__state{text-align:center;margin:32px 0 0;color:rgba(255,248,235,.8);font-weight:700}

/* Couple — two windows */
.bgb-couple{padding:140px 0 150px;background:linear-gradient(#fff8eb,#f2dfc3)}
.bgb-couple__windows{display:grid;grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);align-items:center;gap:24px}
.bgb-person{position:relative;display:grid;grid-template-rows:minmax(440px,64vh) auto;min-width:0}
.bgb-person__photo{position:relative;overflow:hidden;background:var(--bgb-teal);border:15px solid var(--bgb-wood);box-shadow:var(--bgb-shadow)}
.bgb-person--bride .bgb-person__photo{border-radius:46% 46% 4px 4px/16% 16% 4px 4px}.bgb-person--groom .bgb-person__photo{border-radius:4px 4px 46% 46%/4px 4px 16% 16%}
.bgb-person__photo::after{content:"";position:absolute;inset:14px;border:3px solid rgba(214,168,94,.78);pointer-events:none}
.bgb-person__photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.bgb-person__initial{position:absolute;inset:0;display:grid;place-items:center;font-family:Georgia,serif;font-size:9rem;color:var(--bgb-cream-2);background:linear-gradient(135deg,var(--bgb-teal),var(--bgb-teal-2))}
.bgb-person__caption{position:relative;margin:-34px 30px 0;padding:26px 28px 30px;background:var(--bgb-cream-2);border:1px solid rgba(74,45,36,.2);z-index:2;box-shadow:0 12px 30px rgba(60,35,25,.08)}
.bgb-person--groom .bgb-person__caption{margin-top:0;margin-bottom:-34px;order:-1;z-index:2}
.bgb-person__caption>span{display:block;color:var(--bgb-terra);font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}
.bgb-person__caption h3{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.8rem);line-height:1;margin:9px 0 12px;color:var(--bgb-wood)}
.bgb-person__caption p{margin:0;color:var(--bgb-muted);line-height:1.65}
.bgb-person__shutter{position:absolute;z-index:3;top:11%;bottom:22%;width:38px;background:repeating-linear-gradient(to bottom,var(--bgb-terra) 0 22px,var(--bgb-gold) 22px 25px);box-shadow:0 0 0 7px var(--bgb-wood);pointer-events:none}
.bgb-person--bride .bgb-person__shutter{left:-18px}.bgb-person--groom .bgb-person__shutter{right:-18px}
.bgb-couple__hallway{display:grid;gap:16px;justify-items:center;color:var(--bgb-terra)}
.bgb-couple__hallway span{display:block;width:2px;height:140px;background:linear-gradient(var(--bgb-wood),var(--bgb-gold))}.bgb-couple__hallway i{font-style:normal;font-size:1.5rem}

/* Event rooms */
.bgb-events{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-height:780px}
.bgb-event-room{position:relative;min-width:0;display:grid;align-items:center;padding:120px clamp(28px,6vw,100px);overflow:hidden}
.bgb-event-room__content{position:relative;z-index:2;max-width:620px}
.bgb-event-room h2{font-family:Georgia,serif;font-size:clamp(3.4rem,6vw,6.4rem);line-height:.92;margin:0 0 30px;letter-spacing:-.05em}.bgb-event-room h3{font-family:Georgia,serif;font-size:1.65rem;margin:18px 0 8px}.bgb-event-room address{font-style:normal;line-height:1.7;margin:0 0 28px}
.bgb-event-room__date{font-weight:800;letter-spacing:.06em;text-transform:uppercase}.bgb-event-room__time{font-family:Georgia,serif;font-size:2rem;margin:8px 0}
.bgb-event-room--inner{background:var(--bgb-wood-2);color:var(--bgb-cream-2)}.bgb-event-room--inner h2,.bgb-event-room--inner h3{color:var(--bgb-cream-2)}.bgb-event-room--inner .bgb-kicker{color:var(--bgb-gold)}.bgb-event-room--inner address{color:rgba(255,248,235,.72)}
.bgb-event-room__ceiling{position:absolute;inset:0 0 auto;height:120px;background:repeating-linear-gradient(90deg,var(--bgb-wood) 0 80px,var(--bgb-gold) 80px 84px);opacity:.62;pointer-events:none}
.bgb-event-room--veranda{background:#ead0ad;color:var(--bgb-wood)}
.bgb-event-room__awning{position:absolute;inset:0 0 auto;height:150px;background:repeating-linear-gradient(90deg,var(--bgb-teal) 0 70px,var(--bgb-cream-2) 70px 140px);clip-path:polygon(0 0,100% 0,100% 70%,96% 100%,92% 70%,88% 100%,84% 70%,80% 100%,76% 70%,72% 100%,68% 70%,64% 100%,60% 70%,56% 100%,52% 70%,48% 100%,44% 70%,40% 100%,36% 70%,32% 100%,28% 70%,24% 100%,20% 70%,16% 100%,12% 70%,8% 100%,4% 70%,0 100%);pointer-events:none}

/* Maps */
.bgb-map{padding:140px 0;background:var(--bgb-cream-2);overflow:hidden}
.bgb-map__grid{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.15fr);align-items:center;gap:90px}
.bgb-map__sign{--depth-x:0px;--depth-y:0px;position:relative;transform:translate3d(var(--depth-x),var(--depth-y),0);will-change:transform}.bgb-map__sign img{width:100%;filter:none}
.bgb-map__label{position:absolute;color:#fff;font-weight:900;letter-spacing:.13em;font-size:clamp(.7rem,1.7vw,1.05rem);transform:rotate(0deg);pointer-events:none}.bgb-map__label--one{left:29%;top:25%}.bgb-map__label--two{right:23%;top:56%}
.bgb-map__address{margin:34px 0;padding:28px 0 28px 26px;border-left:8px solid var(--bgb-terra)}.bgb-map__address>span{color:var(--bgb-muted);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;font-weight:800}.bgb-map__address h3{font-family:Georgia,serif;font-size:2rem;margin:7px 0 8px}.bgb-map__address address{font-style:normal;color:var(--bgb-muted);line-height:1.65}

/* Love story wall */
.bgb-story{padding:140px 0 170px;background:linear-gradient(180deg,#e9d1b0 0,#f7ead5 100%);position:relative;overflow:hidden}
.bgb-story::before{content:"";position:absolute;inset:92px 0 auto;height:10px;background:var(--bgb-wood);box-shadow:0 22px 0 rgba(74,45,36,.22);pointer-events:none}
.bgb-story__wall{display:grid;grid-template-columns:repeat(12,1fr);gap:34px 24px;align-items:start}
.bgb-story-frame{grid-column:span 4;position:relative;padding-top:70px;transform:translateY(calc((var(--frame-index) % 2) * 44px)) rotate(calc((var(--frame-index) % 3 - 1) * .8deg));transform-origin:top center}
.bgb-story-frame:nth-child(4n+2){grid-column:span 5}.bgb-story-frame:nth-child(4n+3){grid-column:span 3}
.bgb-story-frame__hanger{position:absolute;top:0;left:50%;width:2px;height:82px;background:var(--bgb-wood);transform:translateX(-50%)}.bgb-story-frame__hanger::before{content:"";position:absolute;left:50%;top:-6px;width:14px;height:14px;border-radius:50%;background:var(--bgb-gold);transform:translateX(-50%)}
.bgb-story-frame__paper{position:relative;min-height:270px;padding:42px 34px;background:var(--bgb-cream-2);border:10px solid var(--bgb-wood);box-shadow:12px 15px 0 rgba(11,91,90,.13)}
.bgb-story-frame__paper::after{content:"";position:absolute;inset:12px;border:2px solid rgba(201,101,72,.3);pointer-events:none}.bgb-story-frame__year{font-family:Georgia,serif;font-size:3.2rem;color:var(--bgb-terra);display:block}.bgb-story-frame small{display:block;margin:4px 0 22px;color:var(--bgb-teal);text-transform:uppercase;letter-spacing:.13em;font-weight:900}.bgb-story-frame p{position:relative;z-index:1;margin:0;line-height:1.75;color:var(--bgb-muted)}

/* Gallery */
.bgb-gallery{padding:140px 0 180px;background:var(--bgb-wood);color:var(--bgb-cream-2);overflow:hidden}.bgb-gallery .bgb-section-heading h2{color:var(--bgb-cream-2)}.bgb-gallery .bgb-section-heading p:last-child{color:rgba(255,248,235,.7)}.bgb-gallery .bgb-kicker{color:var(--bgb-gold)}
.bgb-gallery__wall{display:grid;grid-template-columns:repeat(12,1fr);gap:60px 24px;align-items:start;padding-top:36px}
.bgb-gallery-frame{grid-column:span 4;position:relative;border:0;background:transparent;color:inherit;padding:68px 0 0;cursor:zoom-in;transform-origin:50% 0;text-align:left}.bgb-gallery-frame:nth-child(3n+2){grid-column:span 5;transform:translateY(42px)}.bgb-gallery-frame:nth-child(3n+3){grid-column:span 3;transform:translateY(-18px)}
.bgb-gallery-frame__string{position:absolute;top:0;left:50%;width:2px;height:76px;background:var(--bgb-gold);transform:translateX(-50%);pointer-events:none}.bgb-gallery-frame__string::before{content:"";position:absolute;top:-8px;left:50%;width:16px;height:16px;border-radius:50%;background:var(--bgb-terra);transform:translateX(-50%)}
.bgb-gallery-frame__mat{display:block;padding:14px;background:var(--bgb-cream-2);border:10px solid #1f1713;box-shadow:12px 16px 0 rgba(214,168,94,.2);aspect-ratio:4/5;overflow:hidden}.bgb-gallery-frame__mat img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.bgb-gallery-frame:hover .bgb-gallery-frame__mat img,.bgb-gallery-frame:focus-visible .bgb-gallery-frame__mat img{transform:scale(1.035)}
.bgb-gallery-frame__caption{display:block;margin-top:18px;color:rgba(255,248,235,.72);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}
.bgb-lightbox{position:fixed;inset:0;z-index:10050;background:rgba(24,15,12,.94);display:grid;grid-template-columns:72px minmax(0,1fr) 72px;align-items:center;padding:40px max(20px,env(safe-area-inset-right)) 40px max(20px,env(safe-area-inset-left))}.bgb-lightbox[hidden]{display:none}.bgb-lightbox figure{margin:0;display:grid;place-items:center;gap:14px;min-width:0}.bgb-lightbox figure img{max-height:78vh;max-width:min(900px,100%);object-fit:contain;box-shadow:0 20px 70px rgba(0,0,0,.38)}.bgb-lightbox figcaption{color:#fff;text-align:center}.bgb-lightbox__close,.bgb-lightbox__nav{border:0;background:rgba(255,255,255,.1);color:#fff;cursor:pointer;min-width:48px;min-height:48px;border-radius:50%;font-size:2rem}.bgb-lightbox__close{position:absolute;right:max(20px,env(safe-area-inset-right));top:max(20px,env(safe-area-inset-top));z-index:2}.bgb-lightbox__nav{justify-self:center}

/* Gift */
.bgb-gift{padding:140px 0;background:var(--bgb-cream-2);position:relative;overflow:hidden}.bgb-gift::before{content:"";position:absolute;inset:0 0 auto;height:24px;background:repeating-linear-gradient(90deg,var(--bgb-teal) 0 40px,var(--bgb-terra) 40px 80px)}
.bgb-gift__layout{display:grid;grid-template-columns:minmax(0,.86fr) minmax(380px,1.14fr);gap:80px;align-items:start}.bgb-gift__address{margin-top:28px;padding:22px 24px;background:#ead0ad;border-left:8px solid var(--bgb-teal)}.bgb-gift__address span{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--bgb-terra);font-weight:900}.bgb-gift__address p{margin:7px 0 0;line-height:1.65;color:var(--bgb-wood)}
.bgb-gift__drawer{position:relative;padding:24px;background:var(--bgb-wood);box-shadow:18px 18px 0 rgba(201,101,72,.18)}.bgb-gift__drawer::before{content:"";position:absolute;left:50%;top:9px;width:80px;height:8px;border-radius:99px;background:var(--bgb-gold);transform:translateX(-50%)}
.bgb-bank-card{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:28px;background:var(--bgb-cream-2);border-bottom:2px solid rgba(74,45,36,.16)}.bgb-bank-card:last-child{border-bottom:0}.bgb-bank-card div{display:grid;gap:6px;min-width:0}.bgb-bank-card span{font-weight:900;color:var(--bgb-teal);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem}.bgb-bank-card strong{font-family:Georgia,serif;font-size:1.55rem;overflow-wrap:anywhere;color:var(--bgb-wood)}.bgb-bank-card small{color:var(--bgb-muted)}.bgb-copy-btn{flex:0 0 auto;min-height:44px;border:1px solid var(--bgb-teal);background:transparent;color:var(--bgb-teal);padding:10px 14px;font-weight:800;cursor:pointer}.bgb-copy-btn:hover,.bgb-copy-btn:focus-visible{background:var(--bgb-teal);color:#fff}

/* RSVP entrance desk */
.bgb-rsvp{padding:150px 0;background:linear-gradient(90deg,var(--bgb-teal) 0 34%,#f1dfc4 34% 100%);position:relative;overflow:hidden}.bgb-rsvp::after{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;background:repeating-linear-gradient(90deg,var(--bgb-wood) 0 18px,transparent 18px 94px);opacity:.18;pointer-events:none}
.bgb-rsvp__desk{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:72px;align-items:center}.bgb-rsvp__welcome{color:#fff;padding-right:20px}.bgb-rsvp__welcome h2{color:#fff}.bgb-rsvp__welcome>p{color:rgba(255,255,255,.76)}.bgb-rsvp__welcome .bgb-kicker{color:var(--bgb-gold)}.bgb-rsvp__stamp{width:130px;height:130px;margin-top:38px;border:3px solid rgba(255,248,235,.55);border-radius:50%;display:grid;place-items:center;text-align:center;text-transform:uppercase;letter-spacing:.08em;font-weight:900;transform:rotate(-8deg);color:var(--bgb-cream-2)}
.bgb-form{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:38px;background:var(--bgb-cream-2);border:1px solid rgba(74,45,36,.16);box-shadow:var(--bgb-shadow)}.bgb-form label{display:grid;gap:8px;min-width:0}.bgb-form label>span,.bgb-form legend{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:var(--bgb-teal)}.bgb-form input,.bgb-form select,.bgb-form textarea{width:100%;min-height:48px;border:1px solid rgba(74,45,36,.26);background:#fffdf7;color:var(--bgb-ink);padding:12px 14px;border-radius:0;outline:none}.bgb-form textarea{resize:vertical;min-height:110px}.bgb-form input:focus,.bgb-form select:focus,.bgb-form textarea:focus{border-color:var(--bgb-teal);box-shadow:0 0 0 3px rgba(11,91,90,.12)}.bgb-form fieldset{grid-column:1/-1;border:0;padding:0;margin:2px 0;display:flex;flex-wrap:wrap;gap:10px}.bgb-form fieldset legend{width:100%;margin-bottom:8px}.bgb-form fieldset label{display:flex;align-items:center;gap:8px;padding:11px 13px;border:1px solid rgba(74,45,36,.2);cursor:pointer}.bgb-form fieldset input{width:18px;min-height:18px;height:18px;padding:0}.bgb-form fieldset label>span{text-transform:none;letter-spacing:0;color:var(--bgb-ink);font-size:.9rem}.bgb-form__full,.bgb-form__submit,.bgb-form__status{grid-column:1/-1}.bgb-form__submit{justify-self:start}.bgb-form__status{min-height:1.4em;margin:0;font-weight:700;color:var(--bgb-teal)}.bgb-form__status.is-error{color:#a84032}.bgb-form__status.is-success{color:#176d4f}.bgb-form.is-loading{opacity:.78}.bgb-form.is-loading button[type="submit"]{pointer-events:none}

/* Guestbook */
.bgb-guestbook{padding:140px 0 170px;background:#f8ead4}.bgb-guestbook__grid{display:grid;grid-template-columns:minmax(320px,.75fr) minmax(0,1.25fr);gap:54px;align-items:start}.bgb-form--wish{grid-template-columns:1fr;position:sticky;top:28px}.bgb-form--wish>*{grid-column:1}.bgb-conversations{display:grid;gap:22px;min-height:320px}.bgb-conversations__empty{padding:28px;text-align:center;border:1px dashed rgba(74,45,36,.26);color:var(--bgb-muted)}.bgb-conversations__empty img{width:min(280px,80%);margin:0 auto 8px;opacity:.24}.bgb-wish-card{position:relative;margin-right:7%;padding:28px 30px 32px;background:var(--bgb-cream-2);border:1px solid rgba(74,45,36,.18);box-shadow:8px 10px 0 rgba(11,91,90,.12)}.bgb-wish-card:nth-child(even){margin-left:7%;margin-right:0;box-shadow:-8px 10px 0 rgba(201,101,72,.12)}.bgb-wish-card h3{margin:0 0 8px;font-family:Georgia,serif;font-size:1.35rem;color:var(--bgb-wood)}.bgb-wish-card p{margin:0;line-height:1.7;color:var(--bgb-muted)}

/* Closing */
.bgb-closing{position:relative;min-height:680px;display:grid;place-items:center;padding:130px 0 160px;background:linear-gradient(180deg,#f1d0a0,#d88961 55%,#775047);overflow:hidden;text-align:center;color:#fff}.bgb-closing__sun{position:absolute;width:min(52vw,620px);aspect-ratio:1;border-radius:50%;background:#f3d285;left:50%;bottom:-25%;transform:translateX(-50%);box-shadow:0 0 80px rgba(243,210,133,.22);pointer-events:none}.bgb-closing__content{z-index:2;max-width:780px}.bgb-closing h2{color:#fff;font-size:clamp(4rem,10vw,9rem)}.bgb-closing__content>p:not(.bgb-kicker){max-width:610px;margin:0 auto 24px;line-height:1.8;color:rgba(255,255,255,.82)}.bgb-closing__content>strong{letter-spacing:.12em;text-transform:uppercase}.bgb-closing__rail{position:absolute;left:0;right:0;bottom:-26px;width:100%;height:150px;object-fit:cover;object-position:top;filter:brightness(.55);pointer-events:none}

/* Room nav + music */
.bgb-room-nav{position:fixed;z-index:90;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:2px;padding:6px;background:rgba(255,248,235,.94);border:1px solid rgba(74,45,36,.18);box-shadow:0 10px 38px rgba(52,31,24,.18);backdrop-filter:blur(10px)}
.bgb-room-nav a{min-width:66px;min-height:50px;padding:7px 9px;display:grid;place-items:center;gap:1px;text-decoration:none;color:var(--bgb-muted);font-weight:800}.bgb-room-nav a span{font-size:1.05rem}.bgb-room-nav a small{font-size:.6rem;text-transform:uppercase;letter-spacing:.06em}.bgb-room-nav a.is-active,.bgb-room-nav a:hover,.bgb-room-nav a:focus-visible{color:#fff;background:var(--bgb-teal)}
.bgb-music{position:fixed;z-index:92;right:max(18px,env(safe-area-inset-right));bottom:max(22px,calc(env(safe-area-inset-bottom) + 4px));width:54px;height:54px;border-radius:50%;border:2px solid var(--bgb-wood);background:var(--bgb-cream-2);box-shadow:0 8px 25px rgba(47,30,25,.18);display:grid;place-items:center;cursor:pointer}.bgb-music[hidden]{display:none}.bgb-music img{width:28px}.bgb-music[aria-pressed="true"]{animation:bgb-music-pulse 2.2s ease-in-out infinite}@keyframes bgb-music-pulse{50%{transform:translateY(-3px)}}

/* Motion / progressive enhancement */
.bgb-js-ready .bgb-reveal{opacity:0;transform:translateY(32px);transition:opacity .72s ease,transform .72s cubic-bezier(.2,.7,.2,1)}
.bgb-js-ready .bgb-reveal.is-visible{opacity:1;transform:translateY(0)}
.bgb-js-ready .bgb-story-frame.bgb-reveal{transform:translateY(calc(32px + (var(--frame-index) % 2) * 44px));opacity:0}.bgb-js-ready .bgb-story-frame.bgb-reveal.is-visible{transform:translateY(calc((var(--frame-index) % 2) * 44px));opacity:1}
.bgb-float{animation:bgb-breeze 8s ease-in-out infinite alternate}@keyframes bgb-breeze{from{transform:translate3d(-12px,0,0)}to{transform:translate3d(14px,8px,0)}}

/* Responsive */
@media (max-width:1024px){
  .bgb-shell{width:min(100% - 36px,900px)}
  .bgb-hero{padding-top:160px}.bgb-hero__grid{grid-template-columns:1fr .78fr;gap:38px}.bgb-hero__portal{min-height:520px}
  .bgb-couple__windows{grid-template-columns:1fr 54px 1fr}.bgb-person{grid-template-rows:minmax(380px,55vh) auto}
  .bgb-events{grid-template-columns:1fr 1fr}.bgb-event-room{padding:110px 42px}
  .bgb-map__grid{gap:48px}
  .bgb-story-frame{grid-column:span 6}.bgb-story-frame:nth-child(4n+2),.bgb-story-frame:nth-child(4n+3){grid-column:span 6}
  .bgb-gallery-frame,.bgb-gallery-frame:nth-child(3n+2),.bgb-gallery-frame:nth-child(3n+3){grid-column:span 6;transform:none}
  .bgb-gift__layout{gap:44px;grid-template-columns:.85fr 1.15fr}.bgb-rsvp__desk{gap:42px}.bgb-guestbook__grid{gap:36px}
}
@media (max-width:768px){
  .bgb-shell{width:min(100% - 28px,680px)}
  .bgb-opening__cornice{width:120vw;max-width:none;top:4px}.bgb-opening__content{padding:36px 22px}.bgb-opening h1{font-size:clamp(2.6rem,14vw,4.5rem)}
  .bgb-hero{padding:146px 0 110px;background:linear-gradient(180deg,rgba(255,248,235,.98) 0 58%,rgba(236,207,171,.75) 58% 100%)}.bgb-hero__grid{grid-template-columns:1fr;gap:46px}.bgb-hero h2{font-size:clamp(4rem,18vw,7rem)}.bgb-hero__portal{min-height:580px;width:min(500px,100%);margin-inline:auto}.bgb-hero__breeze{width:90vw;right:-28vw;top:38%}
  .bgb-countdown{padding:96px 0 108px}.bgb-countdown__track{grid-template-columns:repeat(2,1fr);gap:22px 10px}.bgb-countdown__track::before{display:none}.bgb-time-marker:nth-child(n){--marker-y:0;min-height:130px;border-bottom:1px solid rgba(255,255,255,.18)}
  .bgb-couple{padding:110px 0}.bgb-couple__windows{grid-template-columns:1fr;gap:66px}.bgb-couple__hallway{display:none}.bgb-person{grid-template-rows:minmax(470px,68vh) auto}.bgb-person--groom .bgb-person__caption{order:initial;margin:-34px 30px 0}.bgb-person--groom .bgb-person__photo{border-radius:46% 46% 4px 4px/16% 16% 4px 4px}.bgb-person--groom .bgb-person__shutter{right:-8px}.bgb-person--bride .bgb-person__shutter{left:-8px}
  .bgb-events{grid-template-columns:1fr;min-height:0}.bgb-event-room{min-height:640px;padding:120px 28px 80px}.bgb-event-room__content{max-width:600px;margin-inline:auto;width:100%}
  .bgb-map{padding:110px 0}.bgb-map__grid{grid-template-columns:1fr;gap:36px}.bgb-map__sign{width:min(510px,94%);margin-inline:auto;order:2}
  .bgb-story{padding:110px 0 150px}.bgb-story__wall{grid-template-columns:1fr;gap:26px}.bgb-story-frame,.bgb-story-frame:nth-child(n){grid-column:1;transform:none;padding-top:54px}.bgb-js-ready .bgb-story-frame.bgb-reveal,.bgb-js-ready .bgb-story-frame.bgb-reveal.is-visible{transform:translateY(0)}.bgb-story-frame__hanger{height:62px}
  .bgb-gallery{padding:110px 0 150px}.bgb-gallery__wall{grid-template-columns:repeat(2,1fr);gap:48px 18px}.bgb-gallery-frame,.bgb-gallery-frame:nth-child(n){grid-column:auto;padding-top:54px}.bgb-gallery-frame__string{height:62px}
  .bgb-gift{padding:110px 0}.bgb-gift__layout{grid-template-columns:1fr;gap:38px}.bgb-bank-card{align-items:flex-start;flex-direction:column}.bgb-copy-btn{width:100%}
  .bgb-rsvp{padding:110px 0;background:linear-gradient(180deg,var(--bgb-teal) 0 31%,#f1dfc4 31% 100%)}.bgb-rsvp__desk{grid-template-columns:1fr;gap:52px}.bgb-rsvp__welcome{padding:0 10px 42px}.bgb-rsvp__stamp{width:108px;height:108px}.bgb-form{padding:26px;grid-template-columns:1fr}.bgb-form>*{grid-column:1/-1}
  .bgb-guestbook{padding:110px 0 150px}.bgb-guestbook__grid{grid-template-columns:1fr}.bgb-form--wish{position:relative;top:auto}
  .bgb-room-nav{left:12px;right:82px;transform:none;justify-content:space-between;overflow:auto}.bgb-room-nav a{min-width:56px;padding-inline:6px}.bgb-music{right:16px}
  .bgb-lightbox{grid-template-columns:46px minmax(0,1fr) 46px;padding-inline:10px}.bgb-lightbox__nav{min-width:42px;min-height:42px}
}
@media (max-width:480px){
  .bgb-shell{width:calc(100% - 22px)}
  .bgb-opening__content{width:calc(100% - 26px);padding:32px 16px}.bgb-opening__guest{padding-inline:10px}
  .bgb-primary-btn,.bgb-solid-btn,.bgb-outline-btn{width:100%}
  .bgb-hero{padding-top:128px}.bgb-hero__awning{height:118px}.bgb-hero h2{font-size:clamp(3.4rem,19vw,5.3rem)}.bgb-hero__portal{min-height:480px}.bgb-hero__cover,.bgb-hero__cover-fallback{inset:48px 12% 26px;width:76%}
  .bgb-section-heading{margin-bottom:38px}.bgb-section-heading h2,.bgb-map h2,.bgb-gift h2,.bgb-rsvp h2,.bgb-guestbook h2{font-size:clamp(2.4rem,13vw,3.8rem)}
  .bgb-time-marker strong{font-size:3.3rem}
  .bgb-person{grid-template-rows:minmax(420px,62vh) auto}.bgb-person__photo{border-width:10px}.bgb-person__caption,.bgb-person--groom .bgb-person__caption{margin:-28px 16px 0;padding:22px}.bgb-person__initial{font-size:7rem}
  .bgb-event-room{padding-inline:20px}.bgb-event-room h2{font-size:3.55rem}.bgb-event-room__time{font-size:1.7rem}
  .bgb-map__label{font-size:.62rem}.bgb-map__label--one{left:28%}.bgb-map__label--two{right:20%}
  .bgb-story-frame__paper{padding:34px 24px;border-width:8px}.bgb-story-frame__year{font-size:2.7rem}
  .bgb-gallery__wall{grid-template-columns:1fr}.bgb-gallery-frame{width:min(360px,92%);justify-self:center}.bgb-gallery-frame:nth-child(even){justify-self:end}.bgb-gallery-frame:nth-child(odd){justify-self:start}
  .bgb-gift__drawer{padding:16px}.bgb-bank-card{padding:22px 18px}.bgb-bank-card strong{font-size:1.3rem}
  .bgb-form{padding:22px 16px}.bgb-form fieldset{display:grid;grid-template-columns:1fr}.bgb-form fieldset label{width:100%}
  .bgb-wish-card,.bgb-wish-card:nth-child(even){margin-inline:0;padding:24px 22px}
  .bgb-room-nav a small{display:none}.bgb-room-nav a{min-width:48px;min-height:48px}.bgb-room-nav{right:80px}
}
@media (min-width:1200px){.bgb-person--bride{transform:translateY(22px)}.bgb-person--groom{transform:translateY(-24px)}.bgb-story__wall{min-height:600px}}
@media (min-width:1440px){.bgb-shell{width:min(1280px,calc(100% - 80px))}.bgb-hero__grid{grid-template-columns:1.1fr .72fr}.bgb-events{min-height:850px}}

@media (prefers-reduced-motion:reduce){
  .bgb-body *,.bgb-body *::before,.bgb-body *::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .bgb-js-ready .bgb-reveal,.bgb-js-ready .bgb-reveal.is-visible,.bgb-js-ready .bgb-story-frame.bgb-reveal,.bgb-js-ready .bgb-story-frame.bgb-reveal.is-visible{opacity:1!important;transform:none!important}
  .bgb-hero__portal,.bgb-map__sign{transform:none!important}
}
