/* Mealora invitation maker. Card rules are scoped under .iv so they cannot clash with site styles. */
.iv #sc{width:540px;height:764px;transform-origin:top left}
.iv .card{width:540px;height:764px;position:relative;overflow:hidden;background:var(--cb);color:var(--cf);font-family:var(--bf)}
.iv .card::before, .iv .card::after{content:"";position:absolute;border:2px solid var(--ca)}
.iv .card::before{inset:18px}
.iv .card::after{inset:27px;border-width:1px;opacity:.65}
.iv .in{position:absolute;inset:40px 40px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:9px}
.iv .in svg{display:block}
.iv .orn{font-size:30px;color:var(--ca);letter-spacing:6px}
.iv .ttl{font:700 15px var(--bf);letter-spacing:.3em;text-transform:uppercase;color:var(--ca)}
.iv .kick{font:italic 500 17px/1.35 "Playfair Display",Georgia,serif;opacity:.92;max-width:380px}
.iv .nm{font:400 52px/1.1 var(--nf);color:var(--ca);word-break:break-word}
.iv .nm .amp{display:block;font-size:30px;color:var(--cf);margin:2px 0}
.iv .sb{font:500 18px var(--bf);opacity:.95}
.iv .sep{color:var(--ca);letter-spacing:10px;font-size:14px}
.iv .dt{font:700 22px var(--bf)}
.iv .dt small{display:block;font:500 18px var(--bf);margin-top:2px}
.iv .vn{font:500 18px/1.4 var(--bf);max-width:380px}
.iv .ct{font:500 16px/1.7 var(--bf);border-top:1px solid var(--ca);padding-top:10px;min-width:260px}
.iv .nt{font:italic 500 16px/1.4 "Playfair Display",Georgia,serif;max-width:360px;opacity:.9}
.iv .card.d1::before{border-radius:260px 260px 14px 14px}
.iv .card.d1::after{border-radius:250px 250px 8px 8px}
.iv .card.d2::before, .iv .card.d2::after{inset:0 0 auto 0;height:32px;border:0;opacity:1;background:var(--ca)}
.iv .card.d2::after{inset:auto 0 0 0}
.iv .card.d3::before{inset:20px;border:2px dashed var(--ca);border-radius:28px}
.iv .card.d3::after{inset:32px;border-radius:20px}
.iv .card.d4::before{inset:16px;border:8px double var(--ca)}
.iv .card.d4::after{display:none}
.iv .mand{position:absolute;left:50%;top:50%;width:640px;height:640px;margin:-320px 0 0 -320px;opacity:.17;animation:spin 120s linear infinite}
.iv .cors{position:absolute;inset:0}
.iv .cor{position:absolute;width:104px;height:104px}
.iv .c1{left:20px;top:20px}
.iv .c2{right:20px;top:20px;transform:scaleX(-1)}
.iv .c3{left:20px;bottom:20px;transform:scaleY(-1)}
.iv .c4{right:20px;bottom:20px;transform:scale(-1)}
.iv .card.d1 .cors, .iv .card.d2 .cors, .iv .card.d3 .cors{display:none}
.iv .fx{position:absolute;inset:0;overflow:hidden}
.iv .fx .pt{position:absolute;top:0;border-radius:0 100% 0 100%;opacity:.8;animation:fall linear infinite}
.iv .fx .cf{position:absolute;top:0;opacity:.85;animation:fall linear infinite}
.iv .fx .sp{position:absolute;color:var(--ca);font-size:18px;animation:tw 2.4s ease-in-out infinite}
.iv .fx .rs{position:absolute;bottom:-30px;font-size:24px;color:var(--ca);animation:rise 10s linear infinite}
.iv .shine{position:absolute;top:0;bottom:0;left:-170px;width:110px;background:linear-gradient(100deg,transparent,rgba(255,255,255,.32),transparent);animation:shine 6s ease-in-out infinite}
.iv .art{animation:bob 4s ease-in-out infinite}
.iv .art [fill='#ffb300']:not([stroke]){transform-box:fill-box;transform-origin:50% 100%;animation:flick .35s ease-in-out infinite}
.iv .nm{text-shadow:0 2px 14px rgba(0,0,0,.18)}
.iv .sep::before, .iv .sep::after{content:'';display:inline-block;width:70px;height:1px;background:var(--ca);vertical-align:middle;margin:0 10px}
@keyframes fall{0%{transform:translate(0,-40px) rotate(0)}50%{transform:translate(22px,400px) rotate(180deg)}100%{transform:translate(-12px,820px) rotate(360deg)}}
@keyframes rise{0%{transform:translateY(0) scale(.8);opacity:0}15%{opacity:.85}100%{transform:translateY(-820px) scale(1.15);opacity:0}}
@keyframes tw{0%,100%{opacity:.15;transform:scale(.6)}50%{opacity:1;transform:scale(1.3)}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes shine{0%,55%{transform:translateX(0)}100%{transform:translateX(760px)}}
@keyframes flick{0%,100%{transform:scale(1,1)}50%{transform:scale(.8,1.2)}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes pulse{0%,100%{box-shadow:0 6px 20px rgba(194,24,91,.35)}50%{box-shadow:0 6px 30px rgba(245,124,0,.65)}}
.iv .fx, .iv .shine, .iv .mand{display:none!important}
.iv .mand{animation:none}

/* Invitation maker: page chrome in the Mealora look (flat colour, thick black frames, Archivo) */
.iv{--bd:#000;--mu:#444;--ac:var(--gold);--acx:#000;--bg:#fff;--panel:#fff;--tx:#000}
.iv .grid{display:grid;gap:24px;grid-template-columns:minmax(0,1fr);grid-template-areas:"top" "prev" "form";counter-reset:s}
@media(min-width:900px){.iv .grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"top prev" "form prev";align-items:start;gap:32px}.iv .prev{position:sticky;top:96px}}
.iv .top{grid-area:top}.iv .prev{grid-area:prev}.iv .form{grid-area:form}
.iv h2{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:800;font-stretch:100%;text-transform:none;letter-spacing:0;line-height:1.2;margin:22px 0 10px}
.iv .top h2:first-child{margin-top:0}
.iv h2::before{counter-increment:s;content:counter(s);width:28px;height:28px;flex:none;border-radius:50%;background:var(--gold);border:3px solid #000;font-size:13px;font-weight:900;display:grid;place-items:center}
.iv .tabs{display:flex;gap:8px;flex-wrap:wrap}
.iv .tab,.iv .ch{padding:10px 16px;border:3px solid #000;border-radius:999px;background:#fff;color:#000;font-family:inherit;font-size:15px;font-weight:800;cursor:pointer}
.iv .tab{flex:1;text-align:center}.iv .ch{font-size:14px;padding:7px 14px;font-weight:700}
.iv .tab:hover,.iv .ch:hover{background:var(--sky)}
.iv .tab.on,.iv .ch.on{background:var(--gold)}
.iv .ds{display:flex;flex-wrap:wrap;gap:8px}
.iv .tpl,.iv .ill{display:flex;gap:10px;overflow-x:auto;padding:4px 4px 10px}
.iv .t{flex:0 0 74px;text-align:center;font-size:12px;font-weight:700;color:#444;cursor:pointer;background:none;border:0;padding:0;font-family:inherit}
.iv .t i{display:block;height:96px;border-radius:8px;border:3px solid transparent;outline:2px solid #000;margin-bottom:5px;position:relative}
.iv .t i::after{content:"";position:absolute;inset:6px;border:1px solid;border-color:inherit;opacity:.8;border-radius:3px}
.iv .t.on{color:#000;font-weight:800}.iv .t.on i{outline-width:4px}
.iv .ib{flex:0 0 100px;border:3px solid #000;border-radius:10px;padding:3px;cursor:pointer;background:#fff;text-align:center;font-family:inherit}
.iv .ib.on{background:var(--gold)}.iv .ib span{display:block;font-size:12px;font-weight:700;margin-top:3px}
.iv .form{background:#fff;border:4px solid #000;border-radius:var(--radius-m);padding:18px}
.iv .form h2{margin-top:0}
.iv .f{display:grid;gap:12px}
@media(min-width:520px){.iv .f{grid-template-columns:1fr 1fr}.iv .f .w{grid-column:1/-1}}
.iv label{display:block;font-size:13px;font-weight:800;color:#000;margin-bottom:4px}
.iv input,.iv textarea{width:100%;padding:10px 12px;border:3px solid #000;border-radius:10px;background:#fff;color:#000;font-family:inherit;font-size:16px;font-weight:500}
.iv textarea{resize:vertical;min-height:58px}
.iv .btn{width:100%;justify-content:center;margin-top:16px;padding:14px;border:4px solid #000;border-radius:999px;background:#000;color:#fff;font-size:17px;font-weight:800;cursor:pointer}
.iv .btn:hover{background:var(--gold);color:#000}.iv .btn:disabled{opacity:.6;cursor:wait}
.iv #msg{min-height:22px;margin:10px 0 0;font-size:14px;font-weight:700;text-align:center}
.iv .box{width:100%;max-width:540px;margin:0 auto;outline:4px solid #000;box-shadow:8px 8px 0 #000}
.iv .note{max-width:none;margin:18px 0 0;text-align:center;font-size:14px;font-weight:700}
.iv .card:focus{outline:none}
.iv-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
