body{
margin:0;
background:#e6e0d6;
font-family:'Cormorant Garamond', serif;

display:flex;
align-items:center;
justify-content:center;

height:100vh;
overflow:hidden;
}

/* MAIN INVITATION CARD */

.frame{
position:relative;

width:880px;
max-width:92vw;
height:90vh;

padding:50px 55px;

background:#f3efe7;
border-radius:4px;

box-shadow:0 18px 45px rgba(0,0,0,0.18);
overflow:hidden;
}

/* PAPER TEXTURE */

.frame:before{
content:"";
position:absolute;
inset:0;
background-image:url("https://www.transparenttextures.com/patterns/paper-fibers.png");
opacity:0.35;
pointer-events:none;
}

/* FLORAL FRAME */

.frame-image{
position:absolute;
top:50%;
left:50%;

transform:translate(-50%,-50%) scale(0.75);

width:120%;
height:auto;

pointer-events:none;
opacity:0.95;
}

/* CONTENT BLOCK */

.container{
position:relative;
z-index:2;

text-align:center;
max-width:420px;

margin:auto;
}

/* TYPOGRAPHY */

h1{
font-family:'Playfair Display', serif;
font-size:48px;
margin-bottom:8px;

letter-spacing:0.5px;
color:#111;
}

h2{
font-size:20px;
font-weight:500;
margin-bottom:24px;
color:#333;
}

.divider{
width:110px;
height:2px;
background:#b69a6d;
margin:24px auto;
}

/* EVENT DETAILS */

.date{
font-size:19px;
margin-bottom:18px;
color:#222;
line-height:1.7;
}

.venue{
font-size:18px;
line-height:1.8;
margin-bottom:24px;
color:#1f1f1f;
}

.note{
font-size:18px;
margin-bottom:28px;
color:#2a2a2a;
line-height:1.8;
}

/* RSVP */

h3{
font-size:24px;
margin-bottom:16px;
color:#111;
}

/* FORM */

form{
display:flex;
flex-direction:column;
align-items:center;
gap:10px;
}

label{
font-size:16px;
color:#333;
}

/* INPUTS */

input,select{
width:250px;
padding:10px;

font-family:'Cormorant Garamond', serif;
font-size:16px;

border:1px solid #c8b9a3;
background:white;

border-radius:4px;   /* polish tweak */
}

/* BUTTON */

button{
margin-top:16px;

padding:11px 28px;
font-size:16px;

background:#7c3f2c;
color:white;

border:none;
border-radius:4px;

cursor:pointer;

transition:0.25s;
}

button:hover

/* tap feedback */

button:active{
transform:scale(0.98);
}

.hidden{
display:none;
}

/* ========================= */
/* MOBILE LAYOUT */
/* ========================= */

@media (max-width: 768px){

body{
height:auto;
overflow:auto;
padding:30px 0;
}

/* card becomes vertical */

.frame{
width:92vw;
height:auto;

/* extra bottom padding so flowers don't cover form */
padding:50px 25px 240px 25px;
}

/* ANCHOR FLOWERS TO BOTTOM */

.frame-image{
top:auto;
bottom:0;
left:50%;

transform:translateX(-50%) scale(0.92);

width:150%;
opacity:0.95;
}

/* text scaling */

.container{
max-width:90%;
}

h1{
font-size:34px;
}

h2{
font-size:18px;
}

.date{
font-size:17px;
}

.venue{
font-size:17px;
}

.note{
font-size:17px;
}

/* form usability */

input,select{
width:90%;
}

button{
width:90%;
}

}
