:root{
  --ink:#0d0e0c;
  --paper:#f0ece2;
  --paper-2:#dfd7c8;
  --muted:#aaa193;
  --line:rgba(240,236,226,.22);
  --brass:#b89a69;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;background:var(--ink);color:var(--paper);font-family:Arial,Helvetica,sans-serif}
button,input{font:inherit}
button{color:inherit}
.skip{position:fixed;left:12px;top:-80px;z-index:100;background:var(--paper);color:var(--ink);padding:10px 14px;text-decoration:none}
.skip:focus{top:12px}
.topbar{
  position:absolute;z-index:20;top:0;left:0;right:0;
  display:flex;align-items:center;justify-content:space-between;
  padding:24px clamp(20px,4.5vw,72px);mix-blend-mode:normal
}
.brand{color:var(--paper);text-decoration:none;font-size:11px;letter-spacing:.22em;font-weight:700}
.rsvp-link{
  border:0;border-bottom:1px solid rgba(240,236,226,.7);background:transparent;
  padding:7px 0;font-size:11px;letter-spacing:.18em;font-weight:700;cursor:pointer
}
.hero{position:relative;min-height:100svh;overflow:hidden;display:flex;align-items:flex-end}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-shade{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(8,9,8,.88) 0%,rgba(8,9,8,.52) 46%,rgba(8,9,8,.22) 76%),
    linear-gradient(0deg,rgba(8,9,8,.92) 0%,transparent 50%,rgba(8,9,8,.26) 100%)
}
.hero-content{
  position:relative;z-index:2;width:min(900px,90vw);
  padding:140px clamp(20px,5vw,84px) 180px
}
.kicker,.section-kicker,.dialog-kicker{
  margin:0 0 22px;color:#d5c6ab;font-size:10px;font-weight:700;letter-spacing:.24em
}
.hero h1{
  margin:0;display:flex;flex-direction:column;align-items:flex-start;
  font-family:Georgia,'Times New Roman',serif;font-weight:400;
  font-size:clamp(76px,13.2vw,190px);line-height:.73;letter-spacing:-.065em
}
.hero h1 i{
  font-size:.34em;line-height:1.25;margin:.08em 0 .03em .08em;
  color:var(--brass);font-weight:400
}
.at{margin:26px 0 0;font:italic clamp(22px,2.2vw,34px)/1.2 Georgia,serif;color:#e6dece}
.hero-line{margin:24px 0 0;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#cbc5bb}
.primary-cta{
  margin-top:34px;min-width:160px;border:1px solid rgba(240,236,226,.75);
  background:var(--paper);color:var(--ink);padding:15px 24px;
  font-size:11px;font-weight:800;letter-spacing:.18em;cursor:pointer;text-transform:uppercase
}
.primary-cta:hover{background:transparent;color:var(--paper)}
.primary-cta.light{background:transparent;color:var(--paper)}
.primary-cta.light:hover{background:var(--paper);color:var(--ink)}
.countdown-shell{
  position:absolute;z-index:4;right:clamp(20px,4.5vw,72px);bottom:34px;
  width:min(430px,calc(100% - 40px));padding:18px 20px;
  border-top:1px solid var(--line);backdrop-filter:blur(8px);background:rgba(10,11,10,.28)
}
.countdown-label{margin:0 0 13px;font-size:9px;letter-spacing:.22em;color:#c7b99e}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.countdown div{border-left:1px solid var(--line);padding-left:12px}
.countdown strong{display:block;font:30px/1 Georgia,serif;font-weight:400}
.countdown span{display:block;margin-top:5px;color:#a9a296;font-size:8px;letter-spacing:.16em}
.statement{
  padding:clamp(90px,11vw,170px) clamp(20px,8vw,140px);
  max-width:1500px;margin:0 auto
}
.statement h2{
  margin:0;max-width:1060px;font:400 clamp(42px,6.4vw,96px)/1.02 Georgia,serif;
  letter-spacing:-.04em
}
.levels{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  display:grid;grid-template-columns:repeat(3,1fr);max-width:1500px;margin:0 auto
}
.levels article{min-height:330px;padding:42px clamp(24px,3vw,52px);border-right:1px solid var(--line);display:flex;flex-direction:column}
.levels article:last-child{border-right:0}
.levels span{font:18px Georgia,serif;color:var(--brass)}
.levels p{margin:auto 0 10px;font-size:9px;letter-spacing:.2em;color:var(--muted)}
.levels h3{margin:0;font:400 clamp(28px,3vw,44px)/1.05 Georgia,serif}
.visual-break{position:relative;min-height:82svh;margin-top:clamp(80px,10vw,150px);overflow:hidden}
.visual-break img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.visual-break:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,8,7,.85),rgba(7,8,7,.04) 66%)}
.visual-copy{position:absolute;z-index:2;left:clamp(20px,7vw,110px);bottom:clamp(44px,8vw,100px)}
.visual-copy p{font-size:9px;letter-spacing:.22em;color:#d6cbb8}
.visual-copy h2{margin:12px 0 0;font:400 clamp(56px,9vw,132px)/.9 Georgia,serif;letter-spacing:-.05em}
footer{padding:50px clamp(20px,5vw,80px) 90px;border-top:1px solid var(--line);color:#a8a195;font-size:11px;line-height:1.7}
footer strong{color:var(--paper);letter-spacing:.13em}
footer .fine{margin-top:22px;font-size:10px}
.mobile-rsvp{display:none}
#rsvp-dialog{
  width:min(520px,calc(100% - 28px));max-height:calc(100svh - 28px);overflow:auto;
  border:1px solid #4a463f;background:#121310;color:var(--paper);padding:42px;
  box-shadow:0 30px 100px rgba(0,0,0,.55)
}
#rsvp-dialog::backdrop{background:rgba(0,0,0,.76);backdrop-filter:blur(4px)}
#rsvp-dialog h2{margin:5px 0 14px;font:400 64px/1 Georgia,serif;letter-spacing:-.04em}
.dialog-close{position:absolute;right:16px;top:10px;border:0;background:transparent;font-size:32px;cursor:pointer}
.dialog-event{color:#b9b1a4;line-height:1.6;font-size:14px}
#rsvp-form{margin-top:30px}
#rsvp-form label{display:block;margin:17px 0;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#b9b1a4}
#rsvp-form label span{text-transform:none;letter-spacing:0}
#rsvp-form input{
  display:block;width:100%;margin-top:7px;padding:13px 12px;
  border:1px solid #4b4a44;background:#0b0c0a;color:var(--paper);font-size:16px
}
.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-submit{width:100%;margin-top:25px}
.form-status{min-height:20px;color:#cdbd9d;font-size:13px;line-height:1.5;margin:16px 0 0}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--brass);outline-offset:4px}
@media(max-width:820px){
  .hero-content{padding-bottom:245px}
  .countdown-shell{left:20px;right:20px;bottom:28px;width:auto}
  .levels{grid-template-columns:1fr}
  .levels article{min-height:220px;border-right:0;border-bottom:1px solid var(--line)}
  .levels article:last-child{border-bottom:0}
  .statement{padding-left:24px;padding-right:24px}
}
@media(max-width:600px){
  .topbar{padding-top:20px}
  .hero{min-height:100svh}
  .hero-shade{background:linear-gradient(0deg,rgba(8,9,8,.94) 0%,rgba(8,9,8,.35) 68%,rgba(8,9,8,.3) 100%)}
  .hero-content{padding:130px 20px 230px}
  .hero h1{font-size:clamp(72px,25vw,118px)}
  .hero-line{max-width:260px;line-height:1.6}
  .primary-cta{min-width:146px}
  .countdown-shell{bottom:76px}
  .countdown{gap:4px}
  .countdown div{padding-left:8px}
  .countdown strong{font-size:26px}
  .visual-break{min-height:72svh}
  #rsvp-dialog{padding:36px 22px 30px}
  #rsvp-dialog h2{font-size:54px}
  footer{padding-bottom:120px}
  .mobile-rsvp{
    display:block;position:fixed;z-index:30;left:14px;right:14px;bottom:max(12px,env(safe-area-inset-bottom));
    width:calc(100% - 28px);border:1px solid #d1c8ba;background:rgba(239,235,225,.96);
    color:#11120f;padding:15px 16px;font-size:10px;font-weight:800;letter-spacing:.14em;
    box-shadow:0 12px 40px rgba(0,0,0,.34);cursor:pointer
  }
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
