:root{
  --ink:#171717;
  --paper:#f4f0e7;
  --paper2:#ebe5d8;
  --gold:#caa74d;
  --gold-dark:#a98532;
  --muted:#706a5f;
  --line:rgba(23,23,23,.22);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#111;color:var(--ink);font-family:"Times New Roman",Georgia,serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
[hidden]{display:none!important}

.envelope-screen{min-height:100vh;display:grid;place-items:center;padding:34px 18px;background:radial-gradient(circle at 50% 15%,#424242 0,#262626 38%,#121212 80%);overflow:hidden}
.envelope-stage{width:min(680px,94vw);text-align:center;color:white}
.small-cap{margin:0 0 24px;font-family:Arial,sans-serif;font-size:12px;letter-spacing:.32em;font-weight:700;color:#eadfbf}
.envelope{position:relative;width:min(580px,92vw);aspect-ratio:1.52/1;margin:0 auto 30px;perspective:1200px;filter:drop-shadow(0 30px 45px rgba(0,0,0,.45))}
.envelope-back{position:absolute;inset:0;background:#d8d0bf;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}
.flyer-card{position:absolute;left:50%;top:8%;width:44%;height:82%;transform:translateX(-50%);background:white;padding:5px;overflow:hidden;transition:transform 1s cubic-bezier(.2,.8,.2,1),top 1s cubic-bezier(.2,.8,.2,1);z-index:2;box-shadow:0 8px 25px rgba(0,0,0,.35)}
.flyer-card img{display:block;width:100%;height:100%;object-fit:cover}
.env-side,.env-bottom,.env-flap{position:absolute;inset:0}
.env-left{clip-path:polygon(0 0,52% 54%,0 100%);background:#e9e1d3;z-index:4}
.env-right{clip-path:polygon(100% 0,48% 54%,100% 100%);background:#ddd4c3;z-index:4}
.env-bottom{clip-path:polygon(0 100%,50% 48%,100% 100%);background:#eee6d9;z-index:5}
.env-flap{clip-path:polygon(0 0,50% 59%,100% 0);background:#cec4b1;transform-origin:top;transition:transform .85s cubic-bezier(.3,.7,.2,1);z-index:6;backface-visibility:hidden}
.seal{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#e0c36e,#9d7622 70%);border:2px solid #e4cc83;color:#171717;font-family:Arial,sans-serif;font-weight:800;font-size:10px;letter-spacing:.08em;z-index:7;box-shadow:0 4px 15px rgba(0,0,0,.25);transition:opacity .25s}
.envelope.open .env-flap{transform:rotateX(180deg);z-index:1}
.envelope.open .seal{opacity:0}
.envelope.open .flyer-card{top:-40%;transform:translateX(-50%) scale(1.22);z-index:3}
.open-invite{border:1px solid var(--gold);background:transparent;color:#fff;padding:14px 27px;font-family:Arial,sans-serif;font-size:12px;letter-spacing:.19em;font-weight:800;transition:.2s}
.open-invite:hover{background:var(--gold);color:#111}
.envelope-screen.leaving{animation:leaveIntro .7s ease forwards}
@keyframes leaveIntro{to{opacity:0;transform:scale(1.02)}}

.invite-page{min-height:100vh;padding:54px 18px 70px;background:linear-gradient(180deg,#e3ddd1 0,#f5f1e8 20%,#e9e2d6 100%)}
.invite-card{width:min(760px,100%);margin:0 auto;background:var(--paper);box-shadow:0 24px 65px rgba(0,0,0,.22);border:1px solid rgba(35,28,18,.15);padding:72px 74px 46px;text-align:center;position:relative}
.invite-card:before{content:"";position:absolute;inset:12px;border:1px solid rgba(202,167,77,.65);pointer-events:none}
.invite-header,.reply-block,.date-block,.venue-block,.schedule-block,.about-block,.form-wrap,.invite-footer{position:relative;z-index:1}
.festival{font-family:Arial,sans-serif;font-weight:800;letter-spacing:.15em;font-size:13px;margin:0;color:var(--ink)}
.partner-line{font-family:Arial,sans-serif;letter-spacing:.2em;font-size:9px;margin:15px 0;color:var(--muted)}
h1{font-family:Arial,sans-serif;font-size:23px;line-height:1.15;letter-spacing:.065em;margin:0;font-weight:900}
.presents{margin:22px auto 13px;font-size:17px;font-style:italic;color:#403b34}
h2{font-size:47px;line-height:.98;letter-spacing:.01em;margin:0;color:var(--gold-dark);font-weight:500}
.award-line{font-family:Arial,sans-serif;font-size:9px;letter-spacing:.16em;font-weight:700;margin:15px 0 0;color:#625d53}
.rule{height:1px;background:linear-gradient(90deg,transparent,var(--gold) 17%,var(--gold) 83%,transparent);margin:34px 0}
.reply-block{padding:8px 0 2px}
.scriptish{font-size:31px;font-style:italic;margin:0 0 21px;font-weight:400}
.reply-buttons{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.reply-button,.submit-button{min-width:185px;border:1px solid var(--ink);background:var(--ink);color:#fff;padding:13px 20px;font-family:Arial,sans-serif;font-size:11px;font-weight:800;letter-spacing:.14em}
.reply-button.secondary{background:transparent;color:var(--ink)}
.reply-button.active{background:var(--gold);border-color:var(--gold);color:#161616}
.date-block{margin-top:40px}
.weekday,.doors,.section-kicker{font-family:Arial,sans-serif;font-weight:800;letter-spacing:.18em;font-size:10px}
.weekday{margin:0 0 10px}
.date-display{display:flex;justify-content:center;align-items:center;gap:15px;color:var(--ink)}
.date-display span{font-family:Arial,sans-serif;font-weight:900;font-size:18px;letter-spacing:.08em}
.date-display strong{font-family:Arial,sans-serif;font-weight:900;font-size:76px;line-height:.9;color:var(--gold-dark)}
.doors{margin:13px 0 0;color:#514b43}
.venue-block{margin-top:42px}
.section-kicker{margin:0 0 12px;color:var(--gold-dark)}
.venue-block h3,.form-wrap h3{margin:0 0 7px;font-family:Arial,sans-serif;font-size:20px;letter-spacing:.05em}
.venue-block p{margin:0;font-size:17px;line-height:1.5}
.text-link{display:inline-block;margin-top:13px;color:var(--ink);font-family:Arial,sans-serif;font-size:10px;font-weight:800;letter-spacing:.14em;text-underline-offset:5px}
.schedule-block{max-width:590px;margin:0 auto}
.schedule-row{display:grid;grid-template-columns:95px 1fr;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);text-align:left;align-items:start}
.schedule-row time{font-family:Arial,sans-serif;font-size:12px;font-weight:900;color:var(--gold-dark);letter-spacing:.04em}
.schedule-row span{font-family:Arial,sans-serif;font-size:12px;font-weight:700;letter-spacing:.05em;line-height:1.4}
.party-note{font-style:italic;margin:13px 0 0;font-size:14px;color:#5f594f}
.about-block{max-width:590px;margin:0 auto}
.about-block>p:last-child{font-size:17px;line-height:1.62;margin:0}
.form-wrap{max-width:590px;margin:0 auto;padding-top:2px}
.form-intro{margin:0 0 22px;color:#5b554b;font-size:15px}
#rsvpForm{text-align:left}
#rsvpForm label{display:block;margin:0 0 17px;font-family:Arial,sans-serif;font-size:9px;font-weight:800;letter-spacing:.13em;color:#565047}
#rsvpForm input,#rsvpForm select,#rsvpForm textarea{display:block;width:100%;margin-top:7px;border:1px solid #bfb7a7;background:#fffdf7;color:#191919;border-radius:0;padding:12px 13px;font-family:Arial,sans-serif;font-size:15px;letter-spacing:0;outline:none}
#rsvpForm input:focus,#rsvpForm select:focus,#rsvpForm textarea:focus{border-color:var(--gold-dark);box-shadow:0 0 0 2px rgba(202,167,77,.15)}
.attending-fields{display:grid;grid-template-columns:150px 1fr;gap:14px}
.submit-button{display:block;margin:25px auto 0;background:var(--gold);border-color:var(--gold);color:#161616}
.backend-note{font-size:11px;line-height:1.5;text-align:center;color:#827a6d;margin:13px auto 0;max-width:430px}
.confirmation{padding:20px 0 10px}
.confirmation-partners{font-family:Arial,sans-serif;font-size:10px;font-weight:800;letter-spacing:.16em;line-height:1.6;margin:0 0 18px;color:var(--gold-dark)}
.confirmation p:last-child{font-size:16px}
.invite-footer{margin-top:48px;padding-top:25px;border-top:1px solid var(--line);font-family:Arial,sans-serif;font-size:9px;font-weight:800;letter-spacing:.15em;display:flex;flex-direction:column;gap:9px;align-items:center}
.invite-footer a{color:var(--gold-dark);text-decoration:none}

@media (max-width:650px){
  .invite-page{padding:18px 8px 36px}
  .invite-card{padding:54px 26px 35px}
  .invite-card:before{inset:8px}
  h1{font-size:18px}
  h2{font-size:35px}
  .date-display strong{font-size:62px}
  .schedule-row{grid-template-columns:82px 1fr;gap:12px}
  .attending-fields{grid-template-columns:1fr}
  .flyer-card{width:48%}
  .envelope.open .flyer-card{top:-25%;transform:translateX(-50%) scale(1.12)}
}
