:root{--green:#224323;--gold:#d8b47c;--cream:#fffdf5;--soft:#ede9dd;color-scheme:light}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden}
body{font-family:Vazirmatn,Vazir,Tahoma,"Segoe UI",sans-serif;overscroll-behavior:none;background:#f6f6ed}
[hidden]{display:none!important}
button,input,select{font:inherit}
button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
a{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.stage{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;display:grid;place-items:center;overflow:clip;isolation:isolate;background:#f8f8f0}
.stage::before{content:"";position:absolute;inset:-15%;background:url('assets/cover.jpg') center/cover no-repeat;filter:blur(38px) brightness(.98);transform:scale(1.1);opacity:.68;transition:background .4s;pointer-events:none}
.stage.video-open{background:#1d3c20}
.stage.video-open::before{background-image:url('assets/cover.jpg');filter:blur(38px) brightness(.28) saturate(1.2);opacity:.8}
.postcard{position:relative;isolation:isolate;width:min(100vw,56.25dvh);height:min(100dvh,177.77778vw);aspect-ratio:9/16;min-width:0;overflow:hidden;background:#fbfcf3;box-shadow:0 10px 42px #10261926}
.video{display:block;width:100%;height:100%;object-fit:contain;background:#244522;user-select:none}
.cover{position:absolute;inset:0;z-index:3;display:block;width:100%;height:100%;border:0;padding:0;overflow:hidden;background:#fafaf1;color:var(--green);text-align:center;transition:opacity .55s ease,visibility .55s ease}
.cover img{width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.cover.is-dismissing{opacity:0;visibility:hidden;pointer-events:none}
.cover-cta{position:absolute;left:57%;top:39.5%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:12px;white-space:nowrap;width:max-content;max-width:84%;min-height:62px;padding:8px 17px 8px 12px;color:#fff9e9;background:linear-gradient(115deg,#1c3d2a 0%,#315638 47%,#1a3827 100%);border:1.5px solid #d7b778;border-radius:17px;outline:1px solid #fff8e2a8;outline-offset:-5px;box-shadow:0 5px 0 -2px #dbbd87,0 12px 28px #24452644,inset 0 1px 0 #fff5;font-size:clamp(14px,2.45dvh,18px);font-weight:700;letter-spacing:-.1px;line-height:1.5}
.cover-cta::before,.cover-cta::after{content:"";position:absolute;left:23px;right:23px;height:1px;background:linear-gradient(90deg,transparent,#f6e1a4a0,transparent);pointer-events:none}
.cover-cta::before{top:5px}.cover-cta::after{bottom:5px}
.cover-cta-text{display:block;text-shadow:0 1px 1px #091b1244}
.cover .seal{width:37px;height:37px;flex:none;display:grid;place-items:center;border:1px solid #ead3a1;border-radius:50%;background:radial-gradient(circle at 30% 22%,#f4e0ae,#cba15e 78%);box-shadow:0 2px 7px #0003,inset 0 1px 1px #fff9;color:#23442b}
.cover .seal svg{width:23px;height:23px}
.cover-arrow{color:#e7c993;font-size:17px;line-height:1}
.cover.is-loading .cover-cta{opacity:.85}
.map-actions{position:absolute;z-index:2;top:60.2%;left:50%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;width:90%;max-width:360px;visibility:hidden;opacity:0;pointer-events:none;transform:translate(-50%,13px) scale(.97);transition:opacity .45s,transform .5s cubic-bezier(.2,1,.3,1),visibility .5s}
.map-actions.is-visible{visibility:visible;opacity:1;pointer-events:auto;transform:translate(-50%,0) scale(1)}
.map-choice{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:clamp(49px,8.1dvh,62px);padding:6px 8px;border:1.5px solid #d6b57b;border-radius:16px;text-decoration:none;background:linear-gradient(130deg,#fffdf4,#e7d7b5);color:#25462c;box-shadow:0 6px 18px #071c1166,inset 0 1px 0 #fff;touch-action:manipulation}
.map-choice:nth-child(2){background:linear-gradient(130deg,#f9f1db,#ddc59c)}
.map-choice svg{height:22px;width:22px;flex:none;fill:none;stroke:#2d5734;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.map-copy{display:flex;align-items:center;justify-content:center;flex-direction:column;line-height:1.35;min-width:0}
.map-copy small{font-size:clamp(11px,1.7dvh,13px);font-weight:400;white-space:nowrap}
.map-copy strong{font-size:clamp(16px,2.5dvh,20px);font-weight:700;white-space:nowrap}
.floating-action{position:absolute;z-index:2;left:50%;display:flex;align-items:center;justify-content:center;gap:12px;min-width:0;width:85%;max-width:350px;min-height:clamp(51px,7.8dvh,63px);padding:9px 14px;border:1.5px solid #e4c68d;border-radius:17px;background:linear-gradient(120deg,#fffdf3,#ead5a8);color:#284727;box-shadow:0 8px 22px #071c116e,inset 0 1px #fff;font-size:clamp(15px,2.35dvh,19px);font-weight:700;line-height:1.4;text-decoration:none;white-space:nowrap;transform:translate(-50%,14px) scale(.96);visibility:hidden;opacity:0;pointer-events:none;transition:opacity .45s ease,transform .5s cubic-bezier(.2,1,.3,1),visibility .5s}
.floating-action.is-visible{visibility:visible;opacity:1;pointer-events:auto;transform:translate(-50%,0) scale(1)}
.floating-action svg{width:19px;height:19px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
.floating-action .arrow{width:18px;height:18px;color:#aa8754}
.floating-action .heart{font-size:27px;line-height:1;color:#ad8852;font-family:Georgia,serif;font-weight:normal}
.rsvp-action{top:83.1%}
.floating-action:active,.map-choice:active{filter:brightness(.96)}
.rsvp-dialog{position:fixed;box-sizing:border-box;inset:0;margin:auto;width:min(420px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:min(690px,calc(100dvh - 24px));max-height:min(690px,calc(100vh - 24px));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:23px clamp(16px,5vw,29px) 20px;border:1px solid #d6c39f;border-radius:22px;background:linear-gradient(145deg,#fffef7,#f4f1e5);box-shadow:0 24px 85px #07160ca8;color:#274323;text-align:right;scrollbar-width:thin}
@supports(height:100dvh){.rsvp-dialog{max-height:min(690px,calc(100dvh - 24px))}}
.rsvp-dialog::backdrop{background:#07180bc9;backdrop-filter:blur(8px)}
.dialog-close{position:absolute;inset-block-start:12px;inset-inline-end:12px;display:grid;place-items:center;border:1px solid #e1d9c9;background:#fffdf6;color:#526a50;width:45px;height:45px;border-radius:50%;font:28px/1 Arial,sans-serif}
.modal-ornament{text-align:center;color:#c9a16c;font-size:17px;line-height:1.2}
.eyebrow{font-size:13px;color:#a48a5c;text-align:center;margin:8px 0 5px}
h1,h2{margin:0;text-align:center;line-height:1.6}h1{font-size:clamp(23px,5vw,28px)}
.form-intro{text-align:center;line-height:1.95;color:#64765c;font-size:14px;max-width:34ch;margin:5px auto 17px}
.input-label,fieldset legend{display:block;margin:0 0 7px;color:#395135;font-size:14px;font-weight:700}
.text-field{appearance:none;display:block;min-width:0;width:100%;height:52px;border:1px solid #d8d9cd;border-radius:12px;padding:0 12px;background:#fff;color:#263d2b;text-align:right;font-size:16px;line-height:1.5}
.text-field:focus{border-color:#b89461;outline:2px solid #b8946160;outline-offset:0}
fieldset{margin:17px 0 14px;padding:0;border:0;min-width:0}
.attendance-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0}
.choice{position:relative;display:block;min-width:0;cursor:pointer}
.choice input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}
.choice>span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:82px;padding:9px 4px;border:1px solid #e1dccc;border-radius:12px;background:#fffef8;color:#40543d;font-size:clamp(13px,3vw,15px);line-height:1.7;text-align:center;overflow-wrap:anywhere}
.choice-icon{font:22px/1 Georgia,serif;color:#b29366}
.choice input:checked+span{background:#edf1e4;border-color:#9caf86;box-shadow:inset 0 0 0 1px #c7d4b9}
.choice input:focus-visible+span{outline:3px solid #cba66b;outline-offset:2px}
#guest-count-wrap{margin-bottom:13px}
.submit-button{display:flex;align-items:center;justify-content:center;gap:15px;width:100%;min-height:54px;margin-top:15px;border:0;border-radius:12px;background:#244b2b;color:#fffbe9;font-size:16px;font-weight:700}
.dialog-signature{text-align:center;color:#ab8d5f;margin:16px 0 0;font-size:12px}
.dialog-signature span{margin:0 6px}
.thanks-view{text-align:center;padding:19px 0 5px}.thanks-heart{font:50px/1.3 Georgia,serif;color:#bc9867}.thanks-view h2{font-size:22px}.thanks-view p{font-size:13px;line-height:1.9;color:#5e7059}.thanks-view .demo-disclaimer{font-size:11px;color:#aa8656}
@media(max-width:345px){.rsvp-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);padding-inline:13px}.choice>span{font-size:12px}.attendance-options{gap:6px}.floating-action{width:91%;gap:7px;font-size:14px}.map-actions{width:94%;gap:6px}.map-choice{gap:5px;padding:5px 4px}.map-choice svg{width:18px;height:18px}.map-copy small{font-size:10px}.map-copy strong{font-size:15px}.cover-cta{gap:7px;padding-inline:10px;font-size:14px;min-height:55px}.cover .seal{width:30px;height:30px}}
@media(max-height:680px){.map-actions{top:60.3%}.rsvp-action{top:82.5%}.rsvp-dialog{padding-block:14px}.form-intro{margin-bottom:9px}fieldset{margin-block:11px}.choice>span{min-height:64px}.dialog-signature{margin-top:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* Refined, iOS-inspired controls — restrained glass and tactile depth */
.cover-cta{
  top:39.5%;min-height:64px;padding:11px 18px 11px 12px;gap:12px;
  border:1px solid rgba(255,255,255,.52);outline:0;border-radius:999px;
  background:linear-gradient(145deg,rgba(34,68,47,.90),rgba(17,48,32,.94));
  color:#fffaf0;box-shadow:0 12px 36px #173a2940,inset 0 1px 0 #ffffff55;
  -webkit-backdrop-filter:blur(22px) saturate(1.35);backdrop-filter:blur(22px) saturate(1.35);
  font-weight:650;letter-spacing:0;text-shadow:none;
}
.cover-cta::before,.cover-cta::after{display:none}
.cover-cta-text{text-shadow:none}
.cover .seal{width:39px;height:39px;border:1px solid #ffffff55;background:rgba(255,255,255,.16);box-shadow:inset 0 1px #ffffff66;color:#f7e6c5}
.cover-arrow{color:#f2d6a2}
.map-actions{gap:10px;width:91%;max-width:370px}
.map-choice{
  min-height:clamp(55px,8.5dvh,68px);border:1px solid #ffffff8a;border-radius:20px;
  background:rgba(249,249,241,.87)!important;color:#1d3d29;
  -webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);
  box-shadow:0 8px 26px #091f1955,inset 0 1px #ffffffdf;
}
.map-choice svg{stroke:#2d5037}
.map-copy small{color:#526856;font-weight:500}
.map-copy strong{font-weight:750}
.floating-action{
  min-height:clamp(58px,8.7dvh,70px);width:88%;border:1px solid #ffffff75;border-radius:22px;
  background:linear-gradient(145deg,rgba(31,71,46,.94),rgba(19,51,34,.95));
  color:#fffdf5;box-shadow:0 12px 32px #0a1c1266,inset 0 1px #ffffff45;
  -webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);
  font-weight:750;
}
.floating-action .heart,.floating-action .arrow{color:#e8c98c}
.map-choice:active,.floating-action:active,.cover:active .cover-cta{filter:brightness(1.07);scale:.985}
@media(max-width:345px){
 .cover-cta{min-height:55px;padding:8px 12px;gap:7px}
 .map-actions{gap:6px;width:94%}
 .map-choice{border-radius:16px;min-height:52px}
 .floating-action{min-height:55px;border-radius:18px}
}

/* V4: compact right-aligned cover control, single rectangular Neshan link */
.cover-cta{left:auto;right:5.5%;top:39.5%;transform:translateY(-50%);max-width:63%;min-height:49px;padding:7px 11px 7px 8px;gap:8px;font-size:clamp(12px,1.8dvh,15px);border-radius:16px;box-shadow:0 7px 20px #173a293b,inset 0 1px #ffffff55}
.cover .seal{width:31px;height:31px;flex:none}
.cover-arrow{font-size:12px}
.map-actions{grid-template-columns:minmax(0,1fr);width:52%;max-width:205px;gap:0}
.map-choice{min-height:49px;padding:6px 14px;border-radius:12px;gap:12px;box-shadow:0 5px 18px #091f1940}
.map-copy{display:flex;flex-direction:row;align-items:center;gap:5px}
.map-copy small{font-size:12px}.map-copy strong{font-size:16px}
@media(max-width:345px){.cover-cta{right:4%;max-width:68%;min-height:44px;padding:6px 9px;gap:6px;font-size:12px}.cover .seal{width:27px;height:27px}.map-actions{width:57%}.map-choice{min-height:46px;padding:5px 10px}.map-copy small{font-size:11px}.map-copy strong{font-size:15px}}

/* V5: requested exact typography and dimensions */
.cover-cta{font-size:clamp(14px,2dvh,18px)}
.map-copy small{font-size:16px}
.floating-action{width:75%}
@media(max-width:345px){.cover-cta{font-size:clamp(14px,2dvh,18px)}.map-copy small{font-size:16px}.floating-action{width:75%}}

/* V8: RSVP button requested width */
.floating-action{width:auto}
@media(max-width:345px){.floating-action{width:auto}}

/* Ensure only the active sound icon is displayed. */
