/* Wedding e-invites — the whole stylesheet. Every class begins ei-. */
:root { --ei-ink:#2f2a24; --ei-muted:#7c7267; --ei-line:#e5ded4; --ei-paper:#fbf8f4; --ei-leaf:#6f8f4a; }
* { box-sizing: border-box; }
body { margin:0; background:var(--ei-paper); color:var(--ei-ink);
       font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; }
img { max-width:100%; height:auto; display:block; }

.ei-top { display:flex; justify-content:space-between; align-items:center; gap:1rem;
          padding:1rem 1.25rem; border-bottom:1px solid var(--ei-line); background:#fff; }
.ei-top a { color:var(--ei-ink); text-decoration:none; font-size:.9rem; }
.ei-top a:hover { color:var(--ei-leaf); }

.ei-main { padding:2rem 1.25rem 3rem; }
.ei-wrap { max-width:68rem; margin:0 auto; }
.ei-wrap--card { max-width:34rem; text-align:center; }
.ei-h1 { font-size:clamp(1.6rem,4vw,2.4rem); margin:0 0 .5rem; font-weight:600; }
.ei-lede { color:var(--ei-muted); margin:0 0 2rem; }
.ei-hint { color:var(--ei-muted); font-size:.85rem; }

.ei-grid { list-style:none; padding:0; margin:0; display:grid; gap:1.25rem;
           grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr)); }
.ei-card a { display:block; text-decoration:none; color:inherit; }
.ei-card img { width:100%; border-radius:10px; border:1px solid var(--ei-line);
               transition:transform .18s ease, box-shadow .18s ease; }
.ei-card a:hover img { transform:translateY(-3px); box-shadow:0 14px 30px -18px rgb(0 0 0 / .5); }
.ei-card__name { display:block; margin-top:.6rem; font-size:.95rem; }

.ei-edit { display:grid; gap:2rem; max-width:68rem; margin:0 auto; grid-template-columns:1fr; }
@media (min-width:900px) {
    .ei-edit { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); align-items:start; }
    .ei-stage { position:sticky; top:1.5rem; }
}

/* container-type is what keeps the preview honest: region sizes are given as a
   share of the card's own height, exactly as GD measures them when drawing. */
.ei-canvas { position:relative; container-type:size; border-radius:8px; overflow:hidden;
             border:1px solid var(--ei-line); background:#fff; }
.ei-canvas__bg { width:100%; height:100%; object-fit:cover; }
.ei-region { position:absolute; display:block; white-space:pre-wrap;
             overflow-wrap:anywhere; pointer-events:none; }

.ei-form { display:grid; gap:1rem; }
.ei-field { display:grid; gap:.35rem; }
.ei-field__label { font-size:.8rem; color:var(--ei-muted); }
.ei-field input, .ei-field textarea { width:100%; padding:.65rem .75rem; font:inherit;
    color:inherit; background:#fff; border:1px solid var(--ei-line); border-radius:8px; }
.ei-field input:focus, .ei-field textarea:focus { outline:2px solid var(--ei-leaf);
    outline-offset:1px; border-color:transparent; }

/* hidden where it stands, not parked off-screen where an overflow check sees it */
.ei-hp { position:absolute; width:1px; height:1px; padding:0; margin:-1px;
         overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); border:0; }

.ei-go { display:inline-block; padding:.8rem 1.5rem; min-height:44px; background:var(--ei-leaf);
         color:#fff; border:0; border-radius:999px; font:inherit; font-weight:600;
         cursor:pointer; text-decoration:none; }
.ei-go:hover { filter:brightness(.94); }
.ei-go[disabled] { opacity:.6; cursor:progress; }
.ei-note { min-height:1.4rem; font-size:.9rem; }
.ei-note.is-bad { color:#b23c3c; }

.ei-final { border-radius:10px; border:1px solid var(--ei-line); margin:0 auto 1.5rem; }
.ei-actions { display:flex; flex-wrap:wrap; gap:.75rem; justify-content:center; margin-bottom:1rem; }
.ei-share { display:inline-flex; align-items:center; min-height:44px; padding:.7rem 1.2rem;
    border:1px solid var(--ei-line); border-radius:999px; background:#fff; font:inherit;
    color:inherit; cursor:pointer; text-decoration:none; }
.ei-share:hover { border-color:var(--ei-leaf); }
.ei-again { color:var(--ei-muted); font-size:.9rem; }

/* a reserved height, so a late advert cannot push the words down mid-read */
.ei-ad { max-width:68rem; margin:2rem auto 0; min-height:100px; }
.ei-foot { padding:1.5rem; text-align:center; color:var(--ei-muted); font-size:.85rem; }
.ei-foot a { color:inherit; }
