/* Ulrich & Anike — public site styles */
[hidden]{display:none !important}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;background:#efe6d4;color:#413f38;font-family:'Jost',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;position:relative;width:100%;overflow-x:hidden}
input,textarea,button{font-family:inherit}
::selection{background:#c3a35a;color:#fff}
a{color:inherit}
img{max-width:100%}

@keyframes uaFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes uaPulse{0%,100%{opacity:.4}50%{opacity:.95}}
@keyframes uaCue{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(7px);opacity:1}}

/* ---------- NAV ---------- */
.ua-nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:16px clamp(20px,4vw,52px);
  background:rgba(240,232,214,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(65,63,56,.1);
  opacity:0;transform:translateY(-100%);pointer-events:none;
  transition:opacity .8s ease .3s, transform .9s cubic-bezier(.2,.8,.2,1) .3s;
}
.ua-nav.is-revealed{opacity:1;transform:translateY(0);pointer-events:auto}
.ua-nav__brand{font-family:'Cormorant Garamond',serif;font-size:clamp(17px,3.6vw,22px);font-weight:500;letter-spacing:.1em;color:#413f38;text-decoration:none;white-space:nowrap}
.ua-nav__brand span{color:#a9884b;font-style:italic}
.ua-nav__links{display:flex;flex-wrap:wrap;gap:clamp(14px,2vw,30px);justify-content:flex-end}
.ua-nav__links a{font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:#5b594f;text-decoration:none;font-weight:500;transition:color .2s}
.ua-nav__links a:hover{color:#a9884b}
.ua-nav__toggle{display:none;background:none;border:none;padding:4px;margin:0;font-size:24px;line-height:1;color:#413f38;cursor:pointer;flex:none}

@media(max-width:740px){
  .ua-nav__toggle{display:flex;align-items:center;justify-content:center}
  .ua-nav__links{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:rgba(240,232,214,.98);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    border-bottom:1px solid rgba(65,63,56,.1);
    padding:0 clamp(20px,6vw,40px);
    max-height:0;overflow:hidden;opacity:0;
    transition:max-height .38s cubic-bezier(.4,0,.2,1),opacity .3s ease;
  }
  .ua-nav__links.is-open{max-height:420px;opacity:1;padding-bottom:10px}
  .ua-nav__links a{padding:13px 0;border-top:1px solid rgba(65,63,56,.08);text-align:left}
  .ua-nav__links a:first-child{border-top:none}
}

/* ---------- HERO ---------- */
.ua-hero{position:relative;height:100vh;min-height:620px;width:100%;overflow:hidden;background:#3c4436}
.ua-hero__img{position:absolute;inset:0;z-index:0;background:#3c4436 center/cover no-repeat;transform:scale(1.18);transition:transform 6.5s cubic-bezier(.2,.6,.2,1)}
.is-revealed .ua-hero__img{transform:scale(1)}
.ua-hero__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(30,34,26,.42) 0%,rgba(30,34,26,.12) 32%,rgba(30,34,26,.28) 70%,rgba(30,34,26,.72) 100%)}
.ua-hero__content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:90px 24px 60px;color:#fdfbf4}
.ua-hero__kicker{display:flex;align-items:center;gap:16px;margin-bottom:26px;opacity:0;transform:translateY(26px);transition:opacity 1s ease .15s,transform 1.1s cubic-bezier(.2,.75,.25,1) .15s}
.ua-hero__kicker .rule{width:34px;height:1px;background:rgba(253,251,244,.55)}
.ua-hero__kicker span:not(.rule){font-size:12.5px;letter-spacing:.42em;text-transform:uppercase;font-weight:400;text-shadow:0 1px 12px rgba(0,0,0,.35)}
.ua-hero__names{margin:0;font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(58px,12vw,150px);line-height:.94;letter-spacing:.01em;text-shadow:0 4px 40px rgba(0,0,0,.4);opacity:0;transform:translateY(26px);transition:opacity 1s ease .35s,transform 1.1s cubic-bezier(.2,.75,.25,1) .35s}
.ua-hero__names span{font-style:italic;font-weight:300;color:#e8cf95}
.ua-hero__meta{margin-top:30px;display:flex;flex-direction:column;align-items:center;gap:10px;opacity:0;transform:translateY(26px);transition:opacity 1s ease .6s,transform 1.1s cubic-bezier(.2,.75,.25,1) .6s}
.ua-hero__meta .date,.ua-hero__meta .place{font-size:13px;letter-spacing:.34em;text-transform:uppercase;font-weight:400;text-shadow:0 1px 10px rgba(0,0,0,.4)}
.ua-hero__meta .time{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(20px,3vw,27px);font-weight:400;color:#f3ead4;text-shadow:0 1px 14px rgba(0,0,0,.4)}
.ua-hero__cta{pointer-events:auto;margin-top:42px;display:inline-block;padding:17px 52px;border:1px solid rgba(253,251,244,.7);color:#fdfbf4;text-decoration:none;font-size:12.5px;letter-spacing:.36em;text-transform:uppercase;font-weight:500;background:rgba(253,251,244,.04);backdrop-filter:blur(2px);opacity:0;transform:translateY(26px);transition:opacity 1s ease .9s,transform 1.1s cubic-bezier(.2,.75,.25,1) .9s,background .4s ease,color .4s ease}
.ua-hero__cta:hover{background:#fdfbf4;color:#413f38}
.is-revealed .ua-hero__kicker,.is-revealed .ua-hero__names,.is-revealed .ua-hero__meta,.is-revealed .ua-hero__cta{opacity:1;transform:translateY(0)}
.ua-hero__cue{position:absolute;bottom:30px;left:50%;display:flex;flex-direction:column;align-items:center;gap:9px;opacity:0;transform:translateX(-50%) translateY(26px);transition:opacity 1s ease 1.2s,transform 1.1s cubic-bezier(.2,.75,.25,1) 1.2s}
.is-revealed .ua-hero__cue{opacity:1;transform:translateX(-50%) translateY(0)}
.ua-hero__cue span:first-child{font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;opacity:.85}
.ua-hero__cue .line{width:1px;height:34px;background:linear-gradient(rgba(253,251,244,.8),rgba(253,251,244,0));animation:uaCue 2s ease-in-out infinite}

/* ---------- SECTIONS (shared) ---------- */
.ua-section{scroll-margin-top:72px;padding:clamp(84px,13vh,150px) 24px}
.ua-section--cream{background:#efe6d4}
.ua-section--sage{background:#e7eadf}
.ua-section--dark{background:#3c4436;color:#f2ecdd}
.ua-wrap{max-width:1080px;margin:0 auto}
.ua-wrap-narrow{max-width:1040px;margin:0 auto}
.ua-wrap-faq{max-width:860px;margin:0 auto}
.ua-center{text-align:center}
.ua-eyebrow{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:#a9884b;font-weight:500;margin-bottom:18px}
.ua-eyebrow i{font-size:1.05em;position:relative;top:-1px;margin-right:2px}
.ua-eyebrow--gold{color:#d4b877}
.ua-h2{margin:0 0 14px;font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(38px,5.5vw,64px);line-height:1.02;color:#3b3a33}
.ua-h2--light{color:#faf6ea}
.ua-intro{margin:0 auto;font-size:14.5px;line-height:1.7;color:#6d7264;font-weight:300;max-width:40ch}
.ua-section--dark .ua-intro{color:#c3c2b0}
.ua-intro--wide{max-width:48ch;font-size:15.5px;color:#66645a}
.ua-p{margin:0 0 20px;font-size:16.5px;line-height:1.85;color:#66645a;font-weight:300;max-width:52ch}

/* ---------- OUR STORY ---------- */
.ua-story__grid{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:clamp(46px,6vw,88px);align-items:center}
@media(min-width:860px){.ua-story__grid{grid-template-columns:1fr 1fr}}
.ua-story__text{max-width:560px}
.ua-story-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ua-story-pair .frame:first-child{margin-top:34px}
.ua-story-photo,.ua-story-empty{width:100%;aspect-ratio:3/4;border-radius:8px}
.ua-story-photo{background:#e7e0cf center/cover no-repeat}
.ua-story-empty{border:1px dashed rgba(65,63,56,.3);background:#e7e0cf;display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;color:#a99c7e;font-size:12.5px;line-height:1.5}
.ua-carousel{position:relative;max-width:540px;margin:0 auto;width:100%;padding:14px 18px 0}
.ua-carousel__frame{position:relative;overflow:visible;aspect-ratio:3/4}
.ua-carousel__slide{position:absolute;inset:0;border-radius:12px;background:#e3ddcc center/cover no-repeat;box-shadow:0 20px 50px -24px rgba(60,50,30,.5);transition:transform .7s cubic-bezier(.6,0,.2,1),opacity .5s ease;will-change:transform}
.ua-carousel__arrow{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:none;background:rgba(60,68,54,.62);color:#faf6ea;font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);transition:background .3s;z-index:10}
.ua-carousel__arrow:hover{background:rgba(60,68,54,.9)}
.ua-carousel__arrow--l{left:12px}
.ua-carousel__arrow--r{right:12px}
.ua-carousel__dots{display:flex;justify-content:center;gap:9px;margin-top:18px}
.ua-carousel__dot{width:8px;height:8px;border-radius:20px;border:none;cursor:pointer;padding:0;transition:all .4s;background:rgba(120,110,80,.35)}
.ua-carousel__dot.is-active{width:22px;background:#a9884b}

/* ---------- SCHEDULE ---------- */
.ua-section--schedule{position:relative;overflow:visible}
.ua-schedule__corner{position:absolute;height:auto;pointer-events:none;opacity:.95;z-index:1}
.ua-schedule__corner--tl{top:-100px;left:-40px;width:clamp(90px,14vw,190px)}
.ua-schedule__corner--br{bottom:-120px;right:-40px;width:clamp(150px,23vw,320px)}
@media(max-width:640px){.ua-schedule__corner--tl{width:76px;top:-40px;left:0px;}.ua-schedule__corner--br{width:130px;bottom:-50px;right: 0px;}}
.ua-schedule{max-width:600px;margin:0 auto;display:flex;flex-direction:column;gap:2px}
.ua-schedule__item{display:grid;grid-template-columns:120px 1fr;gap:22px;align-items:baseline;padding:20px 0;border-top:1px solid rgba(65,63,56,.14)}
.ua-schedule__time{font-family:'Cormorant Garamond',serif;font-size:26px;color:#566249;font-weight:500;text-align:right}
.ua-schedule__title{font-size:16.5px;color:#3b3a33;font-weight:400}
.ua-schedule__title i{color:#a9884b;font-size:.85em;margin-right:7px}
.ua-schedule__sub{font-size:13px;color:#8a8878;font-weight:300;margin-top:3px}
.ua-schedule__note{text-align:center;margin-top:24px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#a99c7e;font-weight:400}

/* horizontal schedule layout */
.ua-schedule-h{position:relative;max-width:980px;margin:0 auto;padding:0 12px}
.ua-schedule-h__icons{display:flex;justify-content:center;flex-wrap:wrap;gap:clamp(16px,3.4vw,40px);margin-bottom:20px}
.ua-schedule-h__icons i{font-size:22px;color:#566249}
.ua-schedule-h__hr{height:1px;background:linear-gradient(90deg,rgba(65,63,56,0),rgba(65,63,56,.25) 20%,rgba(65,63,56,.25) 80%,rgba(65,63,56,0));margin:0 auto 30px}
.ua-schedule-h__cols{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(18px,3.4vw,40px)}
.ua-schedule-h__col{text-align:center;min-width:88px;max-width:150px}
.ua-schedule-h__col .time{font-family:'Cormorant Garamond',serif;font-size:19px;color:#566249;margin-bottom:5px}
.ua-schedule-h__col .ttl{font-size:13px;color:#3b3a33;line-height:1.4;font-weight:500}
.ua-schedule-h__col .sub{font-size:11px;color:#8a8878;margin-top:3px;line-height:1.4;font-weight:300}

/* ---------- VENUE ---------- */
.ua-section--venue{position:relative;overflow:visible}
.ua-venue__willow{position:absolute;top:50px;left:0;width:620px;height:auto;pointer-events:none;opacity:.95;z-index:1}
/* large laptop / small desktop */
@media(max-width:1440px){.ua-venue__willow{width:560px;top:50px}}
/* small laptop */
@media(max-width:1200px){.ua-venue__willow{width:460px;top:60px}}
/* tablet landscape */
@media(max-width:1024px){.ua-venue__willow{width:380px;top:80px}}
/* tablet portrait */
@media(max-width:900px){.ua-venue__willow{width:300px;top:110px}}
/* large phone */
@media(max-width:760px){.ua-venue__willow{width:220px;top:200px}}
/* mid phone */
@media(max-width:600px){.ua-venue__willow{width:170px;top:260px}}
/* small phone */
@media(max-width:480px){.ua-venue__willow{width:130px;top:260px}}
.venue-head{margin-bottom:30px;padding-left:clamp(0px,36vw,270px)}
@media(max-width:900px){.venue-head{padding-left: 0px;}}
#venue-map-wrap{margin:12px 0 8px}
.ua-map-pin{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#566249;text-decoration:none;border-bottom:1px solid rgba(86,98,73,.35);padding-bottom:3px;transition:color .2s,border-color .2s}
.ua-map-pin:hover{color:#a9884b;border-color:rgba(169,136,75,.5)}
.ua-venue__photowrap{position:relative;max-width:1240px;margin:0 auto}
.ua-venue__photo{width:100%;height:auto;aspect-ratio:16/7.4;border-radius:16px;background:#e7e0cf center/cover no-repeat}
.ua-venue__fade{position:absolute;left:0;right:0;bottom:0;height:22%;border-radius:0 0 16px 16px;pointer-events:none;background:linear-gradient(180deg,rgba(239,230,212,0) 0%,rgba(239,230,212,.5) 100%)}
.ua-venue__cards{position:relative;z-index:2;margin-top:-118px;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;padding:0 clamp(14px,2vw,22px)}
.ua-venue__card{
  padding:22px 22px 24px;border-radius:16px;
  background:rgba(253,250,242,.32);
  backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);
  border:1px solid rgba(255,255,255,.45);
  box-shadow:0 14px 34px -18px rgba(30,26,14,.4),inset 0 1px 0 rgba(255,255,255,.3);
}
.ua-venue__card-icon{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:13px;font-size:16px;color:#fdfbf4;background:rgba(65,74,54,.55);border:1px solid rgba(255,255,255,.35)}
.ua-venue__card .t{font-family:'Cormorant Garamond',serif;font-size:23px;color:#33392c;margin-bottom:9px}
.ua-venue__card p{margin:0;font-size:14.5px;line-height:1.7;color:#3f3d34;font-weight:400}
@media(max-width:640px){.ua-venue__cards{margin-top:-46px;grid-template-columns:1fr}.ua-venue__fade{height:30%}}

/* ---------- DRESS ---------- */
.ua-section--dress{background:#f3ede1}
.ua-dress__graphic{display:block;width:100%;max-width:1080px;height:auto;margin:22px auto 34px;border-radius:10px}
.ua-dress__slot{display:block;width:100%;max-width:560px;height:auto;aspect-ratio:3/2;margin:8px auto 30px;border-radius:10px;border:1px dashed rgba(65,63,56,.3);background:#e9e1cf center/cover no-repeat;display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;color:#a99c7e;font-size:13px;line-height:1.5}
.ua-dress__celebrate{max-width:44ch;padding-top: 40px;margin:0 auto 40px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:25px;line-height:1.5;color:#8a6f4a}
.ua-dress__dontwear{max-width:44ch;padding-top: 30px;margin:0 auto 40px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:19px;line-height:1.5;color:#8a6f4a}
.ua-swatches-row{display:flex;align-items:center;justify-content:center;gap:clamp(10px,3vw,32px)}
.ua-swatches{display:flex;justify-content:center;flex-wrap:wrap;gap:26px}
.ua-swatch{display:flex;flex-direction:column;align-items:center;gap:9px}
.ua-swatch .dot{width:52px;height:52px;border-radius:50%;border:1px solid rgba(65,63,56,.12);box-shadow:0 2px 10px rgba(0,0,0,.08);background-size:cover;background-position:center}
.ua-swatch .name{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#8a8878}
.ua-branch{flex:none;width:78px;height:auto;opacity:.95;pointer-events:none}
@media(max-width:520px){.ua-branch{display:none}}
@media(max-width:640px){
  .ua-swatches{gap:16px}
  .ua-swatch{gap:6px}
  .ua-swatch .dot{width:34px;height:34px}
  .ua-swatch .name{font-size:8.5px;letter-spacing:.14em}
}

/* ---------- COUNTDOWN ---------- */
.ua-countdown{display:flex;justify-content:center;gap:clamp(14px,4vw,34px);margin:0 0 44px}
.ua-countdown__item{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:56px}
.ua-countdown__item .num{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(30px,7vw,46px);color:#d4b877;line-height:1;font-variant-numeric:tabular-nums}
.ua-countdown__item .lbl{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#a9ac97}

/* ---------- RSVP ---------- */
.ua-rsvp-gated{text-align:center;padding:32px 26px;border:1px solid rgba(212,184,119,.28);border-radius:14px;background:rgba(212,184,119,.06)}
.ua-rsvp-gated .title{font-family:'Cormorant Garamond',serif;font-size:27px;color:#faf6ea;margin-bottom:12px}
.ua-rsvp-gated p{margin:0 auto;font-size:14.5px;line-height:1.8;color:#c3c2b0;font-weight:300;max-width:40ch}
.ua-rsvp-replied{text-align:center;padding:20px 0}
.ua-rsvp-replied .check{width:56px;height:56px;border-radius:50%;border:1px solid #d4b877;display:flex;align-items:center;justify-content:center;margin:0 auto 22px;color:#d4b877;font-family:'Cormorant Garamond',serif;font-size:30px}
.ua-rsvp-replied h3{margin:0 0 10px;font-family:'Cormorant Garamond',serif;font-weight:400;font-size:34px;color:#faf6ea}
.ua-rsvp-replied p{margin:0 auto 22px;font-size:15px;line-height:1.75;color:#c3c2b0;font-weight:300;max-width:36ch}
.ua-link-btn{background:none;border:none;color:#a9ac97;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;border-bottom:1px solid rgba(169,172,151,.4);padding-bottom:3px}
.ua-link-btn:hover{color:#d4b877}
.ua-rsvp-form{display:flex;flex-direction:column;gap:30px}
.ua-field label{display:block;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#a9ac97;margin-bottom:12px}
.ua-field label span{text-transform:none;letter-spacing:0;color:#7f826f;font-style:italic;font-family:'Cormorant Garamond',serif;font-size:14px}
.ua-field input[type=text],.ua-field input[type=email]{width:100%;padding:12px 0;background:transparent;border:none;border-bottom:1px solid rgba(242,236,221,.3);color:#faf6ea;font-size:18px;font-weight:300;outline:none;transition:border-color .3s}
.ua-field input[type=text]:focus,.ua-field input[type=email]:focus{border-bottom-color:#d4b877}
.ua-hint{margin-top:10px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:15px;color:#8f927f}
.ua-yt-toggle{margin-top:12px;background:none;border:none;padding:0;display:flex;align-items:center;gap:7px;color:#a9ac97;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border-bottom:1px solid rgba(169,172,151,.4);padding-bottom:3px;width:max-content}
.ua-yt-toggle i{color:#d4b877;font-size:1.1em}
.ua-yt-toggle:hover{color:#d4b877}
.ua-yt-search{margin-top:16px;padding:16px;background:rgba(242,236,221,.05);border:1px solid rgba(242,236,221,.14);border-radius:10px}
.ua-yt-search__row{display:flex;gap:8px}
.ua-yt-search__row input{flex:1;min-width:0;padding:10px 12px;background:rgba(0,0,0,.15);border:1px solid rgba(242,236,221,.2);border-radius:6px;color:#faf6ea;font-size:14.5px;outline:none;transition:border-color .3s}
.ua-yt-search__row input:focus{border-color:#d4b877}
.ua-yt-search__row button{flex:none;width:42px;background:#d4b877;color:#3c4436;border:none;border-radius:6px;cursor:pointer;font-size:15px;transition:background .3s}
.ua-yt-search__row button:hover{background:#e3ca8c}
.ua-yt-results{margin-top:12px;display:flex;flex-direction:column;gap:6px;max-height:280px;overflow-y:auto}
.ua-yt-result{display:flex;align-items:center;gap:10px;padding:7px;background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer;text-align:left;transition:background .2s,border-color .2s}
.ua-yt-result:hover{background:rgba(242,236,221,.08);border-color:rgba(242,236,221,.16)}
.ua-yt-result img{width:56px;height:42px;object-fit:cover;border-radius:4px;flex:none}
.ua-yt-result__text{min-width:0}
.ua-yt-result__title{font-size:13.5px;color:#faf6ea;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ua-yt-result__channel{font-size:11px;color:#8f927f;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ua-yt-msg{margin-top:10px;font-size:13px;color:#8f927f;font-style:italic}
.ua-locked-name{font-family:'Cormorant Garamond',serif;font-size:26px;color:#faf6ea;padding:4px 0;border-bottom:1px solid rgba(242,236,221,.16)}
.ua-attend-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ua-attend-btn{padding:15px 12px;border-radius:2px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;cursor:pointer;transition:all .3s;background:transparent;color:#c3c2b0;border:1px solid rgba(242,236,221,.28)}
.ua-attend-btn i{margin-right:4px;font-size:.95em}
.ua-attend-btn.is-on{background:#d4b877;color:#3c4436;border:1px solid #d4b877}
.ua-checkbox{display:flex;align-items:center;gap:11px;cursor:pointer;font-size:14.5px;color:#c3c2b0;text-transform:none;letter-spacing:normal}
.ua-checkbox input{width:17px;height:17px;accent-color:#d4b877}
.ua-acc-panel{margin-top:20px;padding:22px;background:rgba(242,236,221,.05);border:1px solid rgba(242,236,221,.14);border-radius:12px;display:flex;flex-direction:column;gap:26px}
.ua-acc-intro{margin:0;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:16px;line-height:1.6;color:#c3c2b0}
.ua-acc-section__title{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#d4b877;margin-bottom:4px}
.ua-acc-section__note{font-size:12.5px;color:#8f927f;font-weight:300;margin-bottom:14px}
.ua-acc-item{padding:13px 0;border-top:1px solid rgba(242,236,221,.1);display:flex;flex-direction:column;gap:3px}
.ua-acc-item__row{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.ua-acc-item__name{font-size:15.5px;color:#faf6ea}
.ua-acc-item__price{font-size:13px;color:#d4b877;white-space:nowrap}
.ua-acc-item__desc{font-size:13.5px;color:#a9ac97;font-weight:300;line-height:1.55}
.ua-acc-item__link{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#d4b877;text-decoration:none;border-bottom:1px solid rgba(212,184,119,.4);padding-bottom:2px;align-self:flex-start;margin-top:4px;display:inline-block}
.ua-partner{margin-top:6px;padding-top:26px;border-top:1px solid rgba(242,236,221,.16)}
.ua-partner__title{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:21px;color:#e8cf95;margin-bottom:6px}
.ua-partner .ua-checkbox{margin-top:14px}
.ua-partner__panel{margin-top:20px;display:flex;flex-direction:column;gap:22px;padding:20px;background:rgba(242,236,221,.05);border-radius:10px}
.ua-error{font-size:13px;color:#e6b6ae;font-weight:300}
.ua-submit-btn{align-self:flex-start;margin-top:4px;padding:16px 48px;background:#d4b877;color:#3c4436;border:none;font-size:12.5px;letter-spacing:.28em;text-transform:uppercase;font-weight:600;cursor:pointer;transition:background .3s}
.ua-submit-btn:hover{background:#e3ca8c}

/* ---------- PLAYLIST ---------- */
.ua-playlist{max-width:560px;margin:76px auto 0;padding-top:44px;border-top:1px solid rgba(242,236,221,.16)}
.ua-playlist__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:26px}
.ua-playlist__head h3{margin:0;font-family:'Cormorant Garamond',serif;font-weight:400;font-size:30px;color:#faf6ea}
.ua-playlist__head span{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#a9ac97}
.ua-song{display:flex;align-items:baseline;gap:16px;padding:13px 0;border-bottom:1px solid rgba(242,236,221,.1)}
.ua-song .note{font-family:'Cormorant Garamond',serif;font-size:16px;color:#7f826f;min-width:22px}
.ua-song .title{flex:1;font-size:15.5px;color:#eee7d6;font-weight:300}
.ua-song .who{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:15px;color:#8f927f}
.ua-playlist__empty{margin:0;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:18px;color:#a9ac97;font-weight:300}

/* ---------- REGISTRY ---------- */
.ua-section--registry{position:relative;overflow:visible}
.ua-registry__vine {
    position: absolute;
    top: -80px;
    left: -35px;
    width: clamp(140px, 20vw, 300px);
    height: auto;
    pointer-events: none;
    opacity: .95;
    z-index: 1;
}
@media(max-width:760px){.ua-registry__vine{width:150px;top:-30px;left:-15px;}}
.ua-registry__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;margin-bottom:44px}
.ua-registry__card{background:#faf6ec;border:1px solid rgba(65,63,56,.08);border-radius:10px;padding:32px 26px;box-shadow:0 2px 14px rgba(60,50,30,.05)}
.ua-registry__card .label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#a9884b;margin-bottom:14px}
.ua-registry__card .title{font-family:'Cormorant Garamond',serif;font-size:27px;color:#3b3a33;margin-bottom:10px}
.ua-registry__card p{margin:0;font-size:14px;line-height:1.7;color:#77746a;font-weight:300}
.ua-registry__links-box{text-align:center;background:#e7eadf;border-radius:10px;padding:38px 28px}
.ua-registry__links-title{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:20px;color:#566249;margin-bottom:20px}
.ua-registry__links{display:flex;justify-content:center;flex-wrap:wrap;gap:14px}
.ua-registry__links a{padding:13px 30px;background:#fff;border:1px solid rgba(65,63,56,.14);border-radius:2px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#3b3a33;text-decoration:none;transition:all .3s}
.ua-registry__links a:hover{border-color:#a9884b;color:#a9884b}
.ua-registry__banking{margin:22px auto 0;font-size:13px;line-height:1.7;color:#8a8878;font-weight:300;max-width:44ch;white-space:pre-line}

/* ---------- FAQ ---------- */
.ua-faq__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px 48px}
.ua-faq__item .q{font-family:'Cormorant Garamond',serif;font-size:23px;color:#3b3a33;margin-bottom:8px}
.ua-faq__item p{margin:0;font-size:15px;line-height:1.75;color:#66645a;font-weight:300}

/* ---------- FOOTER ---------- */
.ua-footer{position:relative;overflow:visible;background:#3c4436;color:#c3c2b0;padding:70px 24px 44px;text-align:center}
.ua-footer__corner{position:absolute;height:auto;pointer-events:none;opacity:.95}
.ua-footer__corner--tl{top:-20px;left:-20px ;width:clamp(90px,13vw,170px)}
.ua-footer__corner--br{bottom:0;right:-40px;width:clamp(150px,21vw,280px)}
@media(max-width:640px){.ua-footer__corner--tl{width:78px}.ua-footer__corner--br{width:128px}}
.ua-footer__names{font-family:'Cormorant Garamond',serif;font-size:44px;font-weight:400;color:#faf6ea;letter-spacing:.06em}
.ua-footer__names span{font-style:italic;color:#d4b877}
.ua-footer__date{margin:16px 0 6px;font-size:12px;letter-spacing:.34em;text-transform:uppercase}
.ua-footer__place{font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:#8f927f}
.ua-footer__tagline{margin-top:34px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:17px;color:#7f826f}
.ua-footer__admin{margin-top:40px;padding-top:22px;border-top:1px solid rgba(242,236,221,.1)}
.ua-footer__admin a{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:#5f6356;text-decoration:none}
.ua-footer__admin a:hover{color:#a9ac97}

/* ---------- ENVELOPE OVERLAY ---------- */
.ua-overlay{
  position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;
  background:radial-gradient(130% 120% at 50% 38%,#f7f1e5 0%,#ece2ce 58%,#e2d6bd 100%);
  cursor:pointer;
  transition:opacity 1.15s cubic-bezier(.7,0,.25,1), transform 1.5s cubic-bezier(.7,0,.25,1), visibility 1.15s;
}
.ua-overlay.is-revealed{opacity:0;transform:scale(1.14);visibility:hidden;pointer-events:none}
/* No click/scroll/keyboard "open" listeners are attached until every envelope frame has actually
   finished downloading (see initEnvelopeFrames in site.js), so the cursor shouldn't imply it's
   already clickable during that window. */
.ua-overlay.is-loading{cursor:default}
.ua-overlay__top{text-align:center;margin-bottom:clamp(30px,6vh,58px)}
.ua-overlay__pre{font-size:12px;letter-spacing:.4em;text-transform:uppercase;color:#a9884b;font-weight:500;margin-bottom:14px}
.ua-overlay__sub{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(22px,3.4vw,30px);color:#6d6a5c;font-weight:300}
.ua-envelope-float{container-type:inline-size;position:relative;width:min(80vw,380px,calc(60vh * 0.9175));aspect-ratio:885/600;animation:uaFloat 5.5s ease-in-out infinite}
@media(min-width:760px){.ua-envelope-float{width:min(56vw,600px,calc(60vh * 0.9175))}}
.ua-envelope{position:absolute;left:0;bottom:0;width:100%;aspect-ratio:885/1025}
/* Always-on static placeholder (see index.html) -- sits below every real sprite frame so it's
   only ever visible for the brief window before frame-0.webp finishes loading, or if a frame
   request fails outright. No JS needed: opaque frames simply paint over it once ready. */
.ua-envelope__placeholder{position:absolute;left:0;bottom:0;width:100%;height:auto;z-index:0;pointer-events:none;user-select:none}
.ua-envelope__frame{position:absolute;left:0;bottom:0;width:100%;height:auto;z-index:3;opacity:0;pointer-events:none;user-select:none}
.ua-envelope__frame.is-shown{opacity:1}
.ua-envelope__frame--rest{z-index:1}
/* Sized and positioned to sit exactly where the letter/card sits in the final envelope frame (885x1025 canvas, card box x:135.9-744.9 y:162.8-806) */
.ua-envelope__letter{position:absolute;top:15.88%;bottom:21.36%;left:15.36%;right:15.83%;z-index:2;overflow:visible;opacity:0;transform:translateY(-40.1%)}
/* 0% lines up with the rest sprite frame's own card position (bottom-matched handoff); rises slightly further, then settles into the final resting spot.
   The descent (25%->100%) is one continuous eased segment on purpose -- splitting it into more stops each re-applies the timing function
   and decelerates to a near-stop at every stop, which reads as a stutter/glitch rather than a single smooth settle. */
@keyframes uaLetterRise{
  0%{transform:translateY(-40.1%);animation-timing-function:cubic-bezier(.33,0,.2,1)}
  25%{transform:translateY(-45.1%);animation-timing-function:cubic-bezier(.45,0,.2,1)}
  100%{transform:translateY(0)}
}
/* JS adds is-rising the instant the rest sprite frame is revealed; only then should the card become visible, so it never shows through the still-closing envelope */
.ua-envelope__letter.is-rising{opacity:1;animation:uaLetterRise .85s linear forwards}
/* min-height (not height) so unusually long guest names can push the paper taller instead of the card floating past its own background */
.ua-envelope__letter-inner{width:100%;min-height:100%;background:linear-gradient(#fdfaf1,#f6efdf);border-radius:4px;box-shadow:0 10px 22px -12px rgba(80,64,30,.35);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:8.6%;padding-bottom:6%;overflow:visible}
/* Gradient matches the SVG source exactly (paint0_linear on the card's border box: #FEF9EE -> #F8E8C7 at 50.13% -> #FEF9EE, vertical) */
/* padding-top:9.05% matches the monogram's offset from the border-box top in the SVG source. Note % padding resolves against the *parent's* width (this element's containing block), not its own -- since this is width:80% of its parent, that's letter-inner's full width, not this card's own 80%-reduced width */
/* overflow:visible (not hidden) -- a flex item's automatic min-height collapses to 0 once it has any
   non-visible overflow, which was letting the flex column shrink this below its actual text content
   height and silently clip long guest names instead of the card just growing taller */
.ua-envelope__card{width:80%;flex-shrink:0;border:1px solid rgba(169,136,75,.4);border-radius:3px;padding:9.05% 14px 30px;text-align:center;overflow:visible;background:linear-gradient(180deg,#fef9ee 0%,#f8e8c7 50.13%,#fef9ee 100%)}
/* font-size in cqw (relative to .ua-envelope-float's own width, not viewport) so it tracks the card's actual rendered size exactly, matching the SVG source's monogram-to-card ratio */
.ua-envelope__card .monogram{font-family:'Cormorant Garamond',serif;font-size:clamp(24px,10.06cqw,68px);color:#566249;line-height:1;font-weight:600}
.ua-envelope__card .monogram i{font-style:italic;color:#a9884b}
.ua-envelope__card .guestband{margin:16px -14px 0;padding:12px 14px}
.ua-envelope__card .dear{font-size:8.5px;letter-spacing:.34em;text-transform:uppercase;color:#a9884b;margin-bottom:7px}
.ua-envelope__card .guest-name{font-family:'Cormorant Garamond',serif;font-size:clamp(19px,4.4vw,29px);color:#566249;line-height:1.06;font-weight:500}
.ua-envelope__card .guest-partner{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(13px,3vw,18px);color:#a9884b;margin-top:3px}
.ua-envelope__card .invited{margin:11px 0 0;font-size:9px;letter-spacing:.32em;text-transform:uppercase;color:#a9884b}
.ua-envelope__card .invited-mono{font-size:9.5px;letter-spacing:.36em;text-transform:uppercase;color:#a9884b}
.ua-envelope__card .date-mono{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:14px;color:#8a8878;margin-top:8px}
.ua-overlay__prompt{margin-top:clamp(34px,7vh,64px);display:flex;flex-direction:column;align-items:center;gap:12px;opacity:1;transition:opacity .4s ease}
.is-open .ua-overlay__prompt{opacity:0}
.ua-overlay__prompt span{font-size:11.5px;letter-spacing:.34em;text-transform:uppercase;color:#8a7f66;animation:uaPulse 2.6s ease-in-out infinite}
/* Truck + "Incoming Delivery ..." is the ONLY thing shown while #ua-overlay has .is-loading (see
   boot() in site.js) -- the envelope (incl. its CSS placeholder, kept in the markup purely as a
   fallback for if a frame ever fails to load) and the heading text stay hidden until every frame
   has actually finished loading, then everything swaps back in together. */
.is-loading .ua-overlay__top,
.is-loading .ua-envelope-float{display:none}
.ua-mail-loading{display:none;flex-direction:column;align-items:center;gap:12px}
.is-loading .ua-mail-loading{display:flex}
.is-loading .ua-overlay__prompt{display:none}
.ua-mail-loading__road{position:relative;width:120px;height:24px}
.ua-mail-loading__road::before{content:'';position:absolute;left:0;right:0;bottom:5px;border-bottom:1px dashed rgba(138,127,102,.35)}
.ua-mail-loading__road i{position:absolute;bottom:5px;left:-24px;font-size:19px;color:#8a7f66;animation:uaTruckDrive 1.8s cubic-bezier(.45,0,.1,1) infinite}
@keyframes uaTruckDrive{
  0%{left:-24px}
  60%{left:calc(100% - 4px)}
  60.001%,100%{left:-24px}
}
.ua-mail-loading span{font-size:11.5px;letter-spacing:.34em;text-transform:uppercase;color:#8a7f66}

@media (prefers-reduced-motion:reduce){
  .ua-envelope-float{animation:none}
  .ua-mail-loading__road i{animation:none;left:calc(50% - 10px)}
}
