﻿/* Local, script-aware font families. Latin is optically compensated, not merely assigned the same px value. */
@font-face{font-family:'Invitation Serif';src:url('../fonts/notoserifbengali.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0980-09FF;}
@font-face{font-family:'Invitation Serif';src:url('../fonts/notoserif.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;size-adjust:110%;unicode-range:U+0000-024F,U+1E00-1EFF,U+2000-206F,U+20A0-20CF;}
@font-face{font-family:'Invitation Display';src:url('../fonts/tirobangla.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0980-09FF;}
@font-face{font-family:'Invitation Display';src:url('../fonts/playfairdisplay.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap;size-adjust:102%;unicode-range:U+0000-024F,U+1E00-1EFF,U+2000-206F,U+20A0-20CF;}
:root{--body-font:'Invitation Serif','Noto Serif Bengali','Nirmala UI',Georgia,serif;--display-font:'Invitation Display','Tiro Bangla','Nirmala UI',Georgia,serif;--english-font:'Invitation Serif',Georgia,serif;--gold:#e7c77c;--light-gold:#ffedb8;--cream:#fff4de;--copy-size:21px;--label-size:16px;--title-size:45px;--name-size:39px;--cover-name-size:49px;--poem-size:29px;}
body{font-family:var(--body-font);font-size:var(--copy-size);line-height:1.9;background:radial-gradient(ellipse at 0 25%,#184d4b40,transparent 45%),radial-gradient(ellipse at 100% 0,#92344d66,transparent 50%),linear-gradient(145deg,#260b1c,#4e142b 55%,#152b2d);color:#fff0d0;font-synthesis:none;}
body .topbar{background:linear-gradient(100deg,#123c3cdd,#321125 75%);border-bottom:1px solid #dcba6f77;box-shadow:0 6px 25px #0e07152b;}
body .brand{font-family:var(--display-font);font-size:33px;color:#ffe5a2;}body .topbar small{font-family:var(--body-font);font-size:16px;line-height:1.75;letter-spacing:.1px;color:#ead5a5;}body .topbar>span{font-size:18px;}
body .opening{background:radial-gradient(ellipse at 85% 0,#a8484355,transparent 48%),radial-gradient(ellipse at 10% 100%,#17605b30,transparent 43%),linear-gradient(145deg,#5e1a32,#310d22 65%,#3d1427);border-color:#e0bb6c;box-shadow:0 26px 90px #10051266,0 0 35px #d4a44809;outline-color:#bfa15b66;}
body .opening:before,body .opening:after{opacity:.18;}body .opening>.eyebrow{color:#ffdfa0;font-family:var(--display-font);font-size:27px;}body .opening>.eyebrow span{font-family:var(--display-font);font-size:25px;letter-spacing:.3px;line-height:1.6;color:#e7c98c;}
body .kicker,body .eyebrow{font-family:var(--body-font);font-size:var(--label-size);line-height:1.9;letter-spacing:.2px;}
body .opening .couple-title h1{font-size:var(--cover-name-size);line-height:1.55;font-family:var(--display-font);color:#ffebb3;}
body .opening h1 .cover-person{display:block;}body .cover-name-bn,body .cover-name-en{display:block;font-size:inherit;font-family:var(--display-font);font-weight:400;line-height:1.55;overflow-wrap:anywhere;}
body .cover-name-en{color:#e7c589;letter-spacing:-.015em;margin-top:2px;}body .opening h1 em{font:normal 34px/1.1 var(--display-font);margin:9px 0 11px;color:#cc9c52;}
body .greeting,body .opening-copy>.muted{font-family:var(--body-font);font-size:var(--copy-size);line-height:1.95;font-weight:400;}body .opening-copy>.muted{color:#e5cba2;}
body .button,body .ceremony-map{background:linear-gradient(118deg,#fbe6ac,#dfb867 55%,#efce87);color:#43142a;border-color:#ffe3a0;box-shadow:inset 0 1px 0 #fff8df99,0 7px 20px #1407133b;text-shadow:0 1px 0 #fff2c538;}
body .button{font-family:var(--body-font);font-size:19px;line-height:1.7;}body .button span{font-family:var(--body-font);font-size:19px;line-height:1.7;}
body .button:hover,body .ceremony-map:hover{background:linear-gradient(118deg,#fff1c9,#e9c47c 55%,#f5d99b);}
body .couple-frame{border-color:#efcb79;background:linear-gradient(140deg,#f0cb7a50,#49162b);box-shadow:0 0 0 6px #d6b66f10,0 0 0 7px #e7c77c55,0 20px 50px #13040e70;}
body .couple-frame figcaption{background:linear-gradient(120deg,#174b47,#351125);font-family:var(--display-font);font-size:23px;line-height:1.65;color:#ffebba;}body .couple-frame figcaption span{font-family:var(--display-font);font-size:23px;line-height:1.65;letter-spacing:0;margin-top:4px;}
body .personal,body .personal small{font-family:var(--body-font);font-size:18px;line-height:1.8;}
body h2{font-size:var(--title-size);font-family:var(--display-font);line-height:1.65;}body h2 small{font-family:var(--display-font);font-size:var(--title-size);line-height:1.55;font-style:normal;}
body .family-card.groom{background:radial-gradient(ellipse at 0 0,#2c77704d,transparent 65%),linear-gradient(150deg,#174c49,#142a2d);border-color:#c6ac69;}
body .family-card.bride{background:radial-gradient(ellipse at 100% 0,#a8405344,transparent 65%),linear-gradient(145deg,#70243d,#351024);border-color:#d5b374;}
body .family-card .family-portrait-frame{background:linear-gradient(135deg,#e8c76f44,#2d1723);border-color:#e7c279;}
body .family-card .family-details{background:radial-gradient(ellipse at top,#fffcf2,#f6e4c4);border-color:#f0d7a0;box-shadow:0 8px 22px #0d09102b;}
body .family-card p.family-role{font-size:18px;line-height:1.8;border-color:#e5c57d80;background:#ecce8d0c;}
body .family-card h3,body .stage-person h3{font-family:var(--display-font);font-size:var(--name-size);line-height:1.65;color:#ffedb9;}
body .family-card h3 small,body .stage-person h3 small{font-family:var(--display-font);font-size:var(--name-size);font-style:normal;font-weight:400;line-height:1.6;color:#e8c888;}
body .family-card .family-details p{font-family:var(--body-font);font-size:var(--copy-size);line-height:1.95;}
body .family-card .family-details small{font-family:var(--body-font);font-size:var(--copy-size);line-height:1.95;}
body .family-card .family-details .field-label,body .field-label{font-family:var(--body-font);font-size:var(--label-size);line-height:1.85;}
body .family-card.groom .family-details .field-label{color:#28645b;}body .family-card.bride .family-details .field-label{color:#98445a;}
body .poetry .poetry-bn,body .poetry .poetry-en,body .addressed-poetry .poetry-bn,body .addressed-poetry .poetry-en{font-family:var(--display-font);font-size:var(--poem-size);font-weight:400;font-style:normal;line-height:1.9;color:#ffedbf;}
body .poetry .poetry-en{color:#e8ce9e;}body .poetry figcaption,body .poetry figcaption span{font-family:var(--body-font);font-size:15px;line-height:1.9;letter-spacing:0;}body .poetry figcaption small{font-family:var(--body-font);font-size:13px;}
body .ceremony-cover{background:radial-gradient(ellipse at 50% 0,#a8444d44,transparent 75%),linear-gradient(135deg,#71203b,#391025);border-color:#d6b467;}
body .reception-card .reception-cover{background:radial-gradient(ellipse at 50% 0,#45897a44,transparent 75%),linear-gradient(135deg,#205e55,#12383b);}
body .ceremony-cover .ceremony-kicker,body .ceremony-kicker span{font-family:var(--body-font);font-size:17px;line-height:1.85;letter-spacing:.15px;color:#f1d79e;}
body .ceremony-card .ceremony-heading,body .ceremony-card .ceremony-heading small,body .reception-card .reception-heading,body .reception-card .reception-heading-second,body .reception-card .reception-heading small,body .personal-reception .ceremony-heading,body .personal-reception .reception-heading-second{font-family:var(--display-font);font-size:var(--title-size);font-style:normal;font-weight:400;line-height:1.6;}
body .reception-heading-second{margin-left:0;}
body .ceremony-content{background:radial-gradient(ellipse at 5% 0,#fffdf4,#f6e3bf 90%);}
body .ceremony-message p,body .ceremony-message p[lang=en]{font-family:var(--body-font);font-size:var(--copy-size);line-height:1.95;}
body .ceremony-date{background:linear-gradient(130deg,#7d3048,#46152b);border:1px solid #d1a861;box-shadow:0 7px 20px #66203a1a,inset 0 1px 0 #e4bf7820;}
body .reception-card .ceremony-date{background:linear-gradient(125deg,#28675d,#163c3e);}
body .ceremony-card .ceremony-date .field-label,body .ceremony-card .ceremony-detail .field-label{font-family:var(--body-font);font-size:var(--label-size);line-height:1.85;}
body .ceremony-date strong,body .ceremony-detail strong,body .ceremony-detail small,body .personal-reception .ceremony-date strong,body .personal-reception .ceremony-detail strong{font-family:var(--body-font);font-size:var(--copy-size);line-height:1.95;font-weight:400;}
body .ceremony-detail small{color:#805a3a;}
body .ceremony-icon{padding:5px;flex-basis:37px;width:37px;height:37px;background-color:#cba45112;background-size:26px;border:1px solid #c7a26844;border-radius:50%;}
body .ceremony-map,body .ceremony-map span[lang=en],body .personal-reception .ceremony-map,body .personal-reception .ceremony-map span[lang=en]{font-family:var(--body-font);font-size:18px;line-height:1.8;}
body .envelope{background:radial-gradient(ellipse at 100% 0,#b2475344,transparent 60%),linear-gradient(145deg,#6a243d 49.8%,#3c1028 50%);border-color:#e0ba70;box-shadow:0 20px 55px #12071266;}
body .reception-invitation-step #reception-next strong{font-family:var(--display-font);font-size:35px;line-height:1.7;}
body .reception-invitation-step #reception-next>span:not(.seal){font-family:var(--display-font);font-size:35px;line-height:1.7;letter-spacing:0;color:#ecd49a;}
body .reception-invitation-step #reception-next small{font-family:var(--body-font);font-size:18px;line-height:1.85;}
body .addressed-heading{background:radial-gradient(ellipse at 100% 0,#a34d4d33,transparent 60%),linear-gradient(135deg,#64203c,#31122b);}
body .addressed-heading>p,body .addressed-heading>p>span{font-family:var(--body-font);font-size:17px;line-height:1.85;letter-spacing:.2px;}
body .addressed-heading h2,body .addressed-heading h2 small{font-family:var(--display-font);font-size:var(--title-size);line-height:1.65;font-style:normal;}
body .addressed-content{background:radial-gradient(ellipse at top,#fffdf5,#f4e0bb);}
body .addressed-content h3,body .addressed-content h3 small{font-family:var(--display-font);font-size:var(--name-size);line-height:1.65;font-style:normal;}
body .addressed-message p,body .addressed-message p[lang=en]{font-family:var(--body-font);font-size:var(--copy-size);line-height:2;}
body .addressed-couple,body .addressed-couple small{font-family:var(--display-font);font-size:var(--name-size);font-style:normal;line-height:1.75;}
body .addressed-dear,body .invitation-scope{font-family:var(--body-font);font-size:17px;line-height:1.9;}
body .invitation-scope{border-color:#67988b66;background:#2866570b;color:#285e51;}
body .addressed-blessing,body .addressed-blessing small{font-family:var(--body-font);font-size:19px;line-height:1.9;}
body .addressed-poetry{background:radial-gradient(ellipse at 0 100%,#355b6b44,transparent 70%),linear-gradient(130deg,#5c253e,#2d1730);border-color:#bd9b61;}
body .countdown div{background:linear-gradient(140deg,#6b273f,#34122a);border-color:#d1ac62aa;box-shadow:inset 0 1px 0 #e8c77f22,0 6px 15px #2d17231a;}
body .countdown div:nth-child(even),body .personal-reception .countdown div:nth-child(even){background:linear-gradient(135deg,#28675e,#14373c);}
body .countdown b{font-family:var(--display-font);font-size:43px;line-height:1.5;color:#ffe4a6;}body .countdown span{font-family:var(--body-font);font-size:14px;line-height:1.9;}
body .rsvp-card{background:linear-gradient(135deg,#fffaf0,#f4e3c3);border-color:#d6b36c;box-shadow:0 25px 70px #08070a66;}
body .rsvp-card h2,body .rsvp-card h2 small{font-family:var(--display-font);font-size:34px;line-height:1.65;font-style:normal;}
body .rsvp-card label,body .rsvp-options legend{font-family:var(--body-font);font-size:18px;line-height:1.9;}
body .rsvp-option strong,body .rsvp-option small{font-family:var(--body-font);font-size:19px;line-height:1.9;font-weight:400;}
body .rsvp-card .rsvp-option.is-selected{border-color:#477e69;background:#dcead9;box-shadow:inset 3px 0 0 #3f755e;}
body .rsvp-card .rsvp-option input{accent-color:#356957;}
body .rsvp-card #guest-name,body .rsvp-card textarea{font-family:var(--body-font);font-size:20px;line-height:1.85;}
body .rsvp-card #reason-help,body .rsvp-card #form-error{font-family:var(--body-font);font-size:15px;line-height:1.9;}
body .text-button,body .rsvp-card #rsvp-back,body .personal-invitation>.text-button{font-family:var(--body-font);font-size:17px;line-height:1.9;}
body footer{background:linear-gradient(130deg,#153432,#2b1025);border-color:#cba85877;font-family:var(--body-font);font-size:20px;line-height:1.85;}body footer span{font-family:var(--body-font);font-size:20px;line-height:1.85;color:#e5c790;}
body .opening-bottom,body .opening-bottom span:last-child{font-family:var(--body-font);font-size:15px;line-height:1.85;letter-spacing:0;}
body .invalid h1,body .invalid h2{font-family:var(--display-font);font-size:var(--title-size);line-height:1.7;font-style:normal;}
body .invalid p,body .invalid p:last-child{font-family:var(--body-font);font-size:var(--copy-size);line-height:1.95;}
@media(max-width:760px){
 :root{--copy-size:20px;--label-size:15px;--title-size:33px;--name-size:32px;--cover-name-size:39px;--poem-size:25px;}
 body{background:radial-gradient(ellipse at 50% 0,#7c294559,transparent 60%),linear-gradient(160deg,#350d25,#431729 55%,#133236);background-attachment:scroll;}
 body .brand{font-size:29px;}body .topbar small{font-size:16px;}body .topbar{padding:18px 16px;}
 body .opening{padding-left:20px;padding-right:20px;}body .opening>.eyebrow{font-size:25px;}body .opening>.eyebrow span{font-size:23px;letter-spacing:.1px;}
 body .opening h1 em{font-size:29px;margin:8px 0;}body .cover-name-en{margin-top:2px;}
 body .button,body .button span,body .opening .button,body .opening .button span,body .addressed-content .button,body .addressed-content .button span{font-family:var(--body-font);font-size:18px;line-height:1.8;}
 body .couple-frame figcaption,body .couple-frame figcaption span{font-size:21px;line-height:1.75;letter-spacing:0;}
 body .family-card .family-details .field-label{font-size:15px;}body .family-card p.family-role{font-size:17px;}
 body .ceremony-cover .ceremony-kicker,body .ceremony-kicker span{font-size:16px;line-height:1.9;}
 body .ceremony-icon{flex-basis:30px;width:30px;height:30px;background-size:23px;}
 body .ceremony-date strong,body .personal-reception .ceremony-date strong{font-size:19px;}
 body .ceremony-card .ceremony-date .field-label{font-size:14px;}
 body .ceremony-map,body .ceremony-map span[lang=en],body .personal-reception .ceremony-map,body .personal-reception .ceremony-map span[lang=en]{font-size:17px;}
 body .reception-invitation-step #reception-next strong,body .reception-invitation-step #reception-next>span:not(.seal){font-size:28px;line-height:1.7;}
 body .reception-invitation-step #reception-next small{font-size:17px;}
 body .addressed-heading h2,body .addressed-heading h2 small{font-size:32px;}
 body .addressed-heading>p,body .addressed-heading>p>span{font-size:16px;line-height:1.9;letter-spacing:.1px;}
 body .addressed-blessing,body .addressed-blessing small{font-size:18px;}body .addressed-dear,body .invitation-scope{font-size:16px;}
 body .countdown b{font-size:35px;}body .countdown span,body .personal-reception .countdown span{font-size:12px;line-height:1.9;}
 body .rsvp-card h2,body .rsvp-card h2 small{font-size:29px;line-height:1.65;}
 body .rsvp-option strong,body .rsvp-option small{font-size:18px;line-height:1.95;}
 body .rsvp-card label,body .rsvp-options legend{font-size:17px;}
 body .rsvp-card #reason-help,body .rsvp-card #form-error{font-size:14px;}
 body .rsvp-card .button{font-size:17px;}
 body .personal,body .personal small{font-size:17px;}body .opening-bottom,body .opening-bottom span:last-child{font-size:14px;}
 body .invalid h1,body .invalid h2{font-size:31px;}
}
@media(max-width:360px){:root{--title-size:30px;--name-size:30px;--cover-name-size:35px;--poem-size:24px;}body .opening>.eyebrow span{font-size:21px;}body .couple-frame figcaption,body .couple-frame figcaption span{font-size:20px;}body .addressed-heading h2,body .addressed-heading h2 small{font-size:30px;}body .rsvp-card h2,body .rsvp-card h2 small{font-size:27px;}body .reception-invitation-step #reception-next strong,body .reception-invitation-step #reception-next>span:not(.seal){font-size:26px;}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important;}}
body .ceremony-card .ceremony-heading small{color:#f3dcaa;}body .reception-card .reception-heading small{color:#f3dcaa;}
