/* devani-site-styles:{"backgroundColor":"#ffffff","textColor":"#1a1a2e","fontFamily":"'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif","baseFontSize":"16px","headingFontFamily":"'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif","headingColor":"#13132b","linkColor":"#5b4cf0","containerMaxWidth":"1200px","customCss":""} */

:root {
    --bg: #ffffff;
    --surface: #f7f7fb;
    --surface-2: #efeefb;
    --ink: #1a1a2e;
    --ink-strong: #13132b;
    --muted: #6b6b85;
    --line: #ececf4;
    --line-2: #e2e1ee;
    --brand: #5b4cf0;
    --brand-ink: #4636d4;
    --brand-soft: #eeebff;
    --brand-grad: linear-gradient(135deg, #6f5cff 0%, #5b4cf0 55%, #7b5cf0 100%);
    --accent: #ff5c8a;
    --ok: #18b87a;
    --radius: 16px;
    --radius-lg: 24px;
    --radius-sm: 10px;
    --shadow-sm: 0 1px 2px rgba(19,19,43,0.04), 0 2px 6px rgba(19,19,43,0.05);
    --shadow: 0 10px 30px rgba(19,19,43,0.08);
    --shadow-lg: 0 24px 60px rgba(40,30,120,0.16);
    --container: 1120px;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: var(--ink);
    background: var(--bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a { color: var(--brand); text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4 {
    color: var(--ink-strong);
    letter-spacing: -0.022em;
    line-height: 1.1;
    margin: 0;
}

/* ---------- Layout ---------- */
.section { padding: 96px 24px; }
.section--tight { padding: 64px 24px; }
.container { max-width: var(--container); margin: 0 auto; }
.container--narrow { max-width: 760px; }

/* ---------- Buttons ---------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 26px;
    border-radius: 12px;
    font-weight: 600;
    font-size: 0.98rem;
    line-height: 1.1;
    cursor: pointer;
    border: 1px solid transparent;
    transition: transform 0.16s ease, box-shadow 0.16s ease, background 0.16s ease, border-color 0.16s ease;
    white-space: nowrap;
}
.btn--primary {
    background: var(--brand-grad);
    color: #fff;
    box-shadow: 0 8px 20px rgba(91,76,240,0.30);
}
.btn--primary:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(91,76,240,0.40); }
.btn--ghost {
    background: #fff;
    color: var(--ink-strong);
    border-color: var(--line-2);
    box-shadow: var(--shadow-sm);
}
.btn--ghost:hover { transform: translateY(-2px); border-color: #cfceea; }
.btn--light {
    background: rgba(255,255,255,0.14);
    color: #fff;
    border-color: rgba(255,255,255,0.28);
}
.btn--light:hover { background: rgba(255,255,255,0.22); }
.btn--lg { padding: 17px 32px; font-size: 1.04rem; border-radius: 14px; }
.btn--block { width: 100%; }

/* ---------- Eyebrow / badge ---------- */
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    background: var(--brand-soft);
    color: var(--brand-ink);
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.eyebrow .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--brand); }

/* ---------- Hero ---------- */
.hero {
    position: relative;
    text-align: center;
    padding: 120px 24px 96px;
    overflow: hidden;
    background:
        radial-gradient(60% 60% at 50% -10%, rgba(123,92,240,0.14), transparent 60%),
        radial-gradient(40% 40% at 85% 10%, rgba(255,92,138,0.10), transparent 60%),
        var(--bg);
}
.hero__inner { max-width: 820px; margin: 0 auto; position: relative; z-index: 2; }
.hero h1 {
    font-size: clamp(2.6rem, 6vw, 4.4rem);
    font-weight: 800;
    margin: 24px 0 0;
}
.hero h1 .grad {
    background: var(--brand-grad);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.hero .lede {
    font-size: clamp(1.08rem, 2vw, 1.3rem);
    color: var(--muted);
    max-width: 600px;
    margin: 22px auto 36px;
    line-height: 1.6;
}
.hero__cta { display: inline-flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.hero__note { margin-top: 18px; font-size: 0.88rem; color: var(--muted); }

/* Hero RSVP card mockup */
.hero__mock {
    max-width: 880px;
    margin: 64px auto 0;
    position: relative;
    z-index: 2;
}
.mock-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    text-align: left;
}
.mock-card__bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--line);
    background: var(--surface);
}
.mock-card__bar .d { width: 11px; height: 11px; border-radius: 50%; background: #d9d8e8; }
.mock-card__bar .url {
    margin-left: 10px; font-size: 0.82rem; color: var(--muted);
    background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 5px 12px;
}
.mock-card__body { display: grid; grid-template-columns: 1.1fr 1fr; }
.mock-invite {
    padding: 40px 36px;
    background: linear-gradient(160deg, #1c1640 0%, #2a1f63 100%);
    color: #fff;
}
.mock-invite .mi-eyebrow { font-size: 0.74rem; letter-spacing: 0.18em; text-transform: uppercase; color: #b9aef7; font-weight: 700; }
.mock-invite h3 { color: #fff; font-size: 1.9rem; margin: 14px 0 6px; font-weight: 800; }
.mock-invite .mi-meta { color: #cfc8f5; font-size: 0.95rem; margin-top: 16px; line-height: 1.7; }
.mock-rsvp { padding: 34px 32px; }
.mock-rsvp .mr-q { font-weight: 700; color: var(--ink-strong); margin-bottom: 16px; }
.mock-choice {
    display: flex; align-items: center; gap: 12px;
    border: 1.5px solid var(--line-2); border-radius: 12px;
    padding: 13px 16px; margin-bottom: 10px; font-weight: 600; color: var(--ink);
}
.mock-choice.is-on { border-color: var(--brand); background: var(--brand-soft); color: var(--brand-ink); }
.mock-choice .rb { width: 18px; height: 18px; border-radius: 50%; border: 2px solid #cdcce2; }
.mock-choice.is-on .rb { border-color: var(--brand); background: var(--brand); box-shadow: inset 0 0 0 3px #fff; }
.mock-rsvp .btn { margin-top: 8px; }

/* ---------- Logo strip ---------- */
.logos { text-align: center; padding: 48px 24px 8px; }
.logos p { font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); font-weight: 600; margin: 0 0 22px; }
.logos__row { display: flex; flex-wrap: wrap; justify-content: center; gap: 38px 56px; align-items: center; opacity: 0.7; }
.logos__row span { font-weight: 800; font-size: 1.25rem; color: #9a99b3; letter-spacing: -0.02em; }

/* ---------- Section heading ---------- */
.section-head { text-align: center; max-width: 660px; margin: 0 auto 60px; }
.section-head h2 { font-size: clamp(2rem, 4vw, 2.9rem); font-weight: 800; margin: 18px 0 14px; }
.section-head p { font-size: 1.1rem; color: var(--muted); margin: 0; }

/* ---------- Feature grid ---------- */
.features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.feature {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 30px 28px;
    box-shadow: var(--shadow-sm);
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}
.feature:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--line-2); }
.feature__icon {
    width: 50px; height: 50px; border-radius: 14px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--brand-soft); color: var(--brand-ink);
    margin-bottom: 20px;
}
.feature__icon svg { width: 24px; height: 24px; }
.feature h3 { font-size: 1.18rem; font-weight: 700; margin-bottom: 9px; }
.feature p { margin: 0; color: var(--muted); font-size: 0.98rem; }

/* ---------- Alternating showcase rows ---------- */
.showcase { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.showcase + .showcase { margin-top: 96px; }
.showcase--flip .showcase__media { order: 2; }
.showcase__copy .eyebrow { margin-bottom: 18px; }
.showcase__copy h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 800; margin-bottom: 16px; }
.showcase__copy p { color: var(--muted); font-size: 1.05rem; margin: 0 0 22px; }
.checklist { list-style: none; padding: 0; margin: 0 0 28px; }
.checklist li { display: flex; align-items: flex-start; gap: 12px; padding: 7px 0; font-weight: 500; color: var(--ink); }
.checklist li .ck {
    flex: 0 0 auto; width: 22px; height: 22px; border-radius: 7px;
    background: #e4fff3; color: var(--ok);
    display: inline-flex; align-items: center; justify-content: center; margin-top: 1px;
}
.showcase__media {
    background: var(--brand-grad);
    border-radius: var(--radius-lg);
    padding: 30px;
    box-shadow: var(--shadow-lg);
}
.showcase__media .pane {
    background: #fff; border-radius: 14px; padding: 22px; box-shadow: var(--shadow-sm);
}
.pane-row { display: flex; align-items: center; justify-content: space-between; padding: 13px 14px; border: 1px solid var(--line); border-radius: 11px; margin-bottom: 10px; }
.pane-row:last-child { margin-bottom: 0; }
.pane-row .who { display: flex; align-items: center; gap: 11px; font-weight: 600; color: var(--ink-strong); font-size: 0.95rem; }
.pane-row .av { width: 34px; height: 34px; border-radius: 50%; background: var(--surface-2); color: var(--brand-ink); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem; }
.tag { font-size: 0.74rem; font-weight: 700; padding: 4px 11px; border-radius: 999px; letter-spacing: 0.02em; }
.tag--yes { background: #e4fff3; color: #0f8f5c; }
.tag--no { background: #ffe9ef; color: #d23464; }
.tag--maybe { background: #fff4dd; color: #b1791a; }
.pane-stat { display: flex; gap: 14px; margin-top: 4px; }
.pane-stat .s { flex: 1; background: var(--surface); border-radius: 12px; padding: 16px; text-align: center; }
.pane-stat .s b { display: block; font-size: 1.7rem; color: var(--ink-strong); font-weight: 800; }
.pane-stat .s span { font-size: 0.8rem; color: var(--muted); font-weight: 600; }

/* ---------- Steps ---------- */
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; counter-reset: step; }
.step { position: relative; padding: 30px 26px; background: var(--surface); border-radius: var(--radius); border: 1px solid var(--line); }
.step__n {
    counter-increment: step;
    width: 40px; height: 40px; border-radius: 12px;
    background: var(--brand-grad); color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 800; margin-bottom: 16px;
}
.step__n::before { content: counter(step); }
.step h3 { font-size: 1.12rem; margin-bottom: 8px; }
.step p { margin: 0; color: var(--muted); font-size: 0.96rem; }

/* ---------- Stats band ---------- */
.band {
    background:
        radial-gradient(50% 120% at 0% 0%, rgba(123,92,240,0.5), transparent 60%),
        radial-gradient(50% 120% at 100% 100%, rgba(255,92,138,0.4), transparent 60%),
        #15102e;
    border-radius: var(--radius-lg);
    color: #fff;
    padding: 64px 48px;
}
.band .container { max-width: 980px; }
.band-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; text-align: center; }
.band-grid .b b { display: block; font-size: clamp(2.2rem, 4vw, 3rem); font-weight: 800; color: #fff; letter-spacing: -0.03em; }
.band-grid .b span { color: #c8bdf6; font-size: 0.92rem; font-weight: 600; }

/* ---------- Pricing ---------- */
.pricing { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: stretch; }
.plan {
    background: #fff; border: 1px solid var(--line-2); border-radius: var(--radius-lg);
    padding: 34px 30px; display: flex; flex-direction: column;
    box-shadow: var(--shadow-sm);
}
.plan--featured { border-color: var(--brand); box-shadow: var(--shadow); position: relative; }
.plan__flag {
    position: absolute; top: -13px; left: 50%; transform: translateX(-50%);
    background: var(--brand-grad); color: #fff; font-size: 0.72rem; font-weight: 700;
    letter-spacing: 0.08em; text-transform: uppercase; padding: 6px 14px; border-radius: 999px;
}
.plan h3 { font-size: 1.2rem; font-weight: 700; }
.plan .price { margin: 16px 0 4px; font-size: 2.6rem; font-weight: 800; color: var(--ink-strong); letter-spacing: -0.03em; }
.plan .price span { font-size: 0.95rem; font-weight: 600; color: var(--muted); }
.plan .plan__desc { color: var(--muted); font-size: 0.95rem; margin: 0 0 22px; min-height: 42px; }
.plan ul { list-style: none; padding: 0; margin: 0 0 26px; flex: 1; }
.plan ul li { display: flex; gap: 10px; align-items: flex-start; padding: 7px 0; font-size: 0.96rem; color: var(--ink); }
.plan ul li .ck { flex: 0 0 auto; width: 20px; height: 20px; border-radius: 6px; background: var(--brand-soft); color: var(--brand-ink); display: inline-flex; align-items: center; justify-content: center; margin-top: 1px; }

/* ---------- FAQ ---------- */
.faq { max-width: 760px; margin: 0 auto; }
.faq details {
    border: 1px solid var(--line-2); border-radius: 14px; padding: 4px 22px;
    margin-bottom: 12px; background: #fff;
}
.faq details[open] { border-color: var(--brand); box-shadow: var(--shadow-sm); }
.faq summary {
    list-style: none; cursor: pointer; font-weight: 600; color: var(--ink-strong);
    padding: 18px 0; display: flex; justify-content: space-between; align-items: center; gap: 16px;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary .pm { flex: 0 0 auto; width: 24px; height: 24px; border-radius: 7px; background: var(--surface-2); color: var(--brand-ink); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; transition: transform 0.2s ease; }
.faq details[open] summary .pm { transform: rotate(45deg); }
.faq details p { margin: 0 0 18px; color: var(--muted); line-height: 1.7; }

/* ---------- CTA closing ---------- */
.cta-final {
    text-align: center;
    background: var(--brand-grad);
    border-radius: var(--radius-lg);
    padding: 72px 40px;
    color: #fff;
    box-shadow: var(--shadow-lg);
}
.cta-final h2 { color: #fff; font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 800; margin-bottom: 14px; }
.cta-final p { color: rgba(255,255,255,0.86); font-size: 1.12rem; max-width: 520px; margin: 0 auto 30px; }
.cta-final .btn--primary { background: #fff; color: var(--brand-ink); box-shadow: 0 10px 24px rgba(0,0,0,0.18); }
.cta-final .btn--primary:hover { background: #f4f3ff; }

/* ---------- Header chrome ---------- */
header {
    position: sticky; top: 0; z-index: 60;
    background: rgba(255,255,255,0.82);
    backdrop-filter: saturate(160%) blur(12px);
    border-bottom: 1px solid var(--line);
}
header nav {
    max-width: var(--container); margin: 0 auto;
    display: flex; align-items: center; gap: 28px;
    padding: 16px 24px;
}
.brand { display: inline-flex; align-items: center; gap: 9px; font-weight: 800; font-size: 1.28rem; color: var(--ink-strong) !important; letter-spacing: -0.03em; }
.brand .brand__mark {
    width: 30px; height: 30px; border-radius: 9px; background: var(--brand-grad);
    display: inline-flex; align-items: center; justify-content: center; color: #fff; font-size: 1rem; font-weight: 800;
    box-shadow: 0 4px 12px rgba(91,76,240,0.35);
}
header nav .nav-links { display: flex; align-items: center; gap: 22px; margin-left: 8px; }
header nav .nav-links a { color: var(--muted); font-weight: 600; font-size: 0.95rem; transition: color 0.15s ease; }
header nav .nav-links a:hover, header nav .nav-links a.active { color: var(--ink-strong); }
header nav .nav-cta { margin-left: auto; display: flex; align-items: center; gap: 12px; }
header nav .nav-cta a { font-weight: 600; font-size: 0.95rem; }
header nav .nav-cta .login { color: var(--ink-strong); }

/* ---------- Footer ---------- */
footer { background: var(--surface); border-top: 1px solid var(--line); padding: 64px 24px 36px; }
.footer-inner { max-width: var(--container); margin: 0 auto; }
.footer-top { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--line-2); }
.footer-brand .brand { font-size: 1.3rem; }
.footer-brand p { color: var(--muted); font-size: 0.95rem; max-width: 280px; margin: 16px 0 0; }
.footer-col h4 { font-size: 0.8rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-bottom: 16px; }
.footer-col a { display: block; color: var(--ink); font-size: 0.95rem; font-weight: 500; padding: 6px 0; transition: color 0.15s ease; }
.footer-col a:hover { color: var(--brand); }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px; padding-top: 26px; }
.footer-bottom p { margin: 0; color: var(--muted); font-size: 0.88rem; }
.footer-bottom .soc { display: flex; gap: 10px; }
.footer-bottom .soc a { width: 36px; height: 36px; border-radius: 10px; background: #fff; border: 1px solid var(--line-2); display: inline-flex; align-items: center; justify-content: center; color: var(--muted); }
.footer-bottom .soc a:hover { color: var(--brand); border-color: var(--brand); }

/* ---------- Responsive ---------- */
@media (max-width: 920px) {
    .section { padding: 72px 22px; }
    .features, .steps, .pricing, .band-grid { grid-template-columns: 1fr; }
    .band-grid { gap: 30px; }
    .showcase { grid-template-columns: 1fr; gap: 36px; }
    .showcase--flip .showcase__media { order: 0; }
    .mock-card__body { grid-template-columns: 1fr; }
    .footer-top { grid-template-columns: 1fr 1fr; gap: 30px; }
    header nav .nav-links { display: none; }
}
@media (max-width: 540px) {
    .footer-top { grid-template-columns: 1fr; }
    .hero { padding-top: 84px; }
}
/* @devani:region graphics */
/* ===== Decorative CSS graphics layer (no images, no emoji) ===== */

/* Hero atmosphere: dot grid + soft mesh blobs + faint rings */
.hero { isolation: isolate; }
.hero::before {
    content: "";
    position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background-image: radial-gradient(circle, rgba(91,76,240,0.12) 1.2px, transparent 1.4px);
    background-size: 26px 26px;
    -webkit-mask-image: radial-gradient(70% 60% at 50% 38%, #000 0%, transparent 72%);
    mask-image: radial-gradient(70% 60% at 50% 38%, #000 0%, transparent 72%);
}
.hero__rings { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.hero__rings span {
    position: absolute; border-radius: 50%; border: 1.5px solid rgba(91,76,240,0.18);
}
.hero__rings span:nth-child(1) { width: 380px; height: 380px; top: -120px; left: -120px; }
.hero__rings span:nth-child(2) { width: 560px; height: 560px; top: -210px; left: -210px; border-color: rgba(91,76,240,0.10); }
.hero__rings span:nth-child(3) { width: 300px; height: 300px; bottom: -130px; right: -90px; border-style: dashed; border-color: rgba(255,92,138,0.22); }
.hero__blob {
    position: absolute; z-index: 0; pointer-events: none; border-radius: 50%;
    filter: blur(60px); opacity: 0.5;
}
.hero__blob.b1 { width: 360px; height: 360px; background: #b8a9ff; top: -60px; right: 8%; }
.hero__blob.b2 { width: 300px; height: 300px; background: #ffc2d4; bottom: -40px; left: 6%; opacity: 0.4; }

/* Small floating chips around the hero mock */
.float-chip {
    position: absolute; z-index: 6;
    background: #fff; border: 1px solid var(--line-2); border-radius: 12px;
    box-shadow: var(--shadow); padding: 10px 14px;
    display: inline-flex; align-items: center; gap: 9px;
    font-size: 0.85rem; font-weight: 600; color: var(--ink-strong);
    animation: floaty 5s ease-in-out infinite;
}
.float-chip .fc-ic { width: 26px; height: 26px; border-radius: 8px; display: inline-grid; place-items: center; color: #fff; }
.float-chip .fc-ic svg { width: 15px; height: 15px; }
.float-chip small { display: block; font-weight: 500; color: var(--muted); font-size: 0.72rem; margin-top: 1px; }
@keyframes floaty { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }

/* ===== Generic CSS dashboard panel ===== */
.dash {
    background: #fff; border: 1px solid var(--line);
    border-radius: 18px; box-shadow: var(--shadow); overflow: hidden;
}
.dash__top { display: flex; align-items: center; gap: 8px; padding: 13px 16px; border-bottom: 1px solid var(--line); background: var(--surface); }
.dash__top .d { width: 10px; height: 10px; border-radius: 50%; background: #dcdbe9; }
.dash__top .t { margin-left: 8px; font-size: 0.8rem; font-weight: 600; color: var(--muted); }
.dash__body { display: grid; grid-template-columns: 64px 1fr; min-height: 300px; }
.dash__rail { border-right: 1px solid var(--line); padding: 16px 0; display: flex; flex-direction: column; align-items: center; gap: 14px; background: #fcfcff; }
.dash__rail i { width: 30px; height: 30px; border-radius: 9px; background: var(--surface-2); display: block; }
.dash__rail i.on { background: var(--brand-grad); }
.dash__main { padding: 20px; }

/* Stat tiles */
.stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 16px; }
.stat-tile { border: 1px solid var(--line); border-radius: 12px; padding: 13px 14px; background: #fff; }
.stat-tile .k { font-size: 0.72rem; font-weight: 600; color: var(--muted); letter-spacing: 0.02em; }
.stat-tile .v { font-size: 1.5rem; font-weight: 800; color: var(--ink-strong); letter-spacing: -0.02em; line-height: 1.2; }
.stat-tile .delta { font-size: 0.72rem; font-weight: 700; color: var(--ok); }

/* CSS bar chart */
.chart { display: flex; align-items: flex-end; gap: 10px; height: 132px; padding: 14px 4px 0; border-top: 1px dashed var(--line-2); }
.chart .bar { flex: 1; border-radius: 7px 7px 0 0; background: var(--brand-grad); position: relative; transform-origin: bottom; animation: grow 0.9s cubic-bezier(.2,.8,.2,1) both; }
.chart .bar.alt { background: linear-gradient(180deg,#e7e3ff,#cfc8f7); }
.chart .bar::after { content: attr(data-l); position: absolute; bottom: -22px; left: 0; right: 0; text-align: center; font-size: 0.68rem; color: var(--muted); font-weight: 600; }
@keyframes grow { from { transform: scaleY(0); } }
.chart-wrap { padding-bottom: 22px; }

/* CSS donut (conic gradient) */
.donut-row { display: flex; align-items: center; gap: 20px; }
.donut {
    width: 116px; height: 116px; border-radius: 50%; flex: 0 0 auto;
    background: conic-gradient(var(--brand) 0 62%, #ff8db1 62% 82%, #ffd27a 82% 100%);
    display: grid; place-items: center; position: relative;
}
.donut::before { content: ""; position: absolute; inset: 16px; background: #fff; border-radius: 50%; }
.donut .donut-c { position: relative; text-align: center; }
.donut .donut-c b { font-size: 1.4rem; font-weight: 800; color: var(--ink-strong); }
.donut .donut-c span { display: block; font-size: 0.68rem; color: var(--muted); font-weight: 600; }
.legend { display: flex; flex-direction: column; gap: 9px; }
.legend .li { display: flex; align-items: center; gap: 9px; font-size: 0.85rem; font-weight: 600; color: var(--ink); }
.legend .sw { width: 11px; height: 11px; border-radius: 3px; }
.legend .sw.a { background: var(--brand); } .legend .sw.b { background: #ff8db1; } .legend .sw.c { background: #ffd27a; }
.legend .li small { color: var(--muted); font-weight: 500; margin-left: auto; }

/* Step connector line */
.steps { position: relative; }
@media (min-width: 921px) {
    .steps::before {
        content: ""; position: absolute; top: 50px; left: 16%; right: 16%; height: 2px;
        background-image: linear-gradient(90deg, var(--line-2) 60%, transparent 0);
        background-size: 14px 2px; z-index: 0;
    }
    .step { z-index: 1; }
}

/* Section flourish: thin gradient rule used under some headings */
.rule-grad { width: 64px; height: 4px; border-radius: 4px; background: var(--brand-grad); margin: 0 auto; }

/* Mock invite: add a subtle inner pattern instead of flat color */
.mock-invite { position: relative; overflow: hidden; }
.mock-invite::after {
    content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.5;
    background-image: radial-gradient(circle, rgba(255,255,255,0.16) 1px, transparent 1.4px);
    background-size: 18px 18px;
}
.mock-invite > * { position: relative; z-index: 1; }
/* @devani:endregion */
/* @devani:region overrides */
/* ===== Refinement pass: tight 4px radii + pastel accents ===== */

:root {
    /* pastel lavender primary */
    --brand: #b39ddb;
    --brand-ink: #8a6fc4;
    --brand-soft: #f1ecfa;
    --brand-grad: linear-gradient(135deg, #c5b4e6 0%, #b39ddb 55%, #bda8e0 100%);
    --accent: #f6a8c8;
    --ok: #4fb88a;
    /* unified tight radius */
    --radius: 4px;
    --radius-lg: 4px;
    --radius-sm: 4px;
}

/* Flatten every rounded component to a crisp 4px.
   Pills (eyebrow, plan flag) stay pill-shaped intentionally. */
.btn, .btn--lg,
.feature, .feature__icon,
.showcase__media, .pane, .pane-row, .pane-stat .s,
.step, .step__n,
.band, .cta-final,
.plan, .plan ul li .ck, .checklist li .ck,
.faq details, .faq summary .pm,
.mock-card, .mock-card__bar .url, .mock-choice, .mock-rsvp .btn,
.ai-demo, .ai-chip,
.dash, .dash__top, .dash__rail i, .stat-tile, .chart .bar,
.float-chip, .float-chip .fc-ic, .legend .sw,
.brand .brand__mark,
.footer-bottom .soc a {
    border-radius: 4px !important;
}

/* Bar chart: only round the top corners, keep it tight */
.chart .bar { border-radius: 4px 4px 0 0 !important; }

/* Pastel donut + chart + status tints */
.donut { background: conic-gradient(var(--brand) 0 62%, #f6a8c8 62% 82%, #f7d9a0 82% 100%) !important; }
.chart .bar.alt { background: linear-gradient(180deg,#f1ecfa,#ddd2f2) !important; }
.legend .sw.a { background: var(--brand); }
.legend .sw.b { background: #f6a8c8; }
.legend .sw.c { background: #f7d9a0; }

.tag--yes { background: #e3f6ee; color: #3f9d77; }
.tag--no  { background: #fde8ee; color: #c76a86; }
.tag--maybe { background: #fdf2dc; color: #b08a3e; }

/* Soften hero mesh blobs to match pastel direction */
.hero__blob.b1 { background: #d6c8f0; }
.hero__blob.b2 { background: #f8d3e2; }
.hero__rings span:nth-child(3) { border-color: rgba(246,168,200,0.30); }

/* The donut center punch-out should match the 50% (it's a real circle, keep round) */
.donut, .donut::before { border-radius: 50% !important; }
.dash__rail i, .float-chip .fc-ic { border-radius: 4px !important; }
/* @devani:endregion */
/* @devani:region imagery */
/* ===== Real imagery components (RSVPify-style) ===== */

/* Hero: photo paired with the invite card */
.hero__photo-wrap { position: relative; }
.hero__photo {
    position: relative; border-radius: 4px; overflow: hidden;
    border: 1px solid var(--line); box-shadow: var(--shadow-lg);
    aspect-ratio: 3 / 2;
}
.hero__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero__photo::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, transparent 55%, rgba(20,16,46,0.30));
}
.hero__invite-float {
    position: absolute; right: -20px; bottom: -24px; width: 244px; z-index: 8;
    background: #fff; border: 1px solid var(--line); border-radius: 4px;
    box-shadow: var(--shadow-lg); overflow: hidden;
}
.hero__invite-float .hi-top { background: #2a1f63; color: #fff; padding: 15px 16px 13px; }
.hero__invite-float .hi-eye { font-size: .6rem; letter-spacing: .18em; text-transform: uppercase; color: #c9beff; font-weight: 700; }
.hero__invite-float .hi-top h4 { color: #fff; font-size: 1.12rem; margin: 5px 0 0; font-weight: 800; letter-spacing: -.02em; }
.hero__invite-float .hi-body { padding: 12px 16px 15px; }
.hero__invite-float .hi-choice { display: flex; align-items: center; gap: 8px; border: 1.5px solid var(--brand); background: var(--brand-soft); color: var(--brand-ink); border-radius: 4px; padding: 8px 11px; font-size: .82rem; font-weight: 700; }
.hero__invite-float .hi-choice .rb { width: 13px; height: 13px; border-radius: 50%; border: 2px solid var(--brand); background: var(--brand); box-shadow: inset 0 0 0 2.5px #fff; flex:0 0 auto; }
.hero__invite-float .hi-meta { font-size: .73rem; color: var(--muted); margin-top: 9px; line-height: 1.5; }

/* Showcase photo treatment */
.showcase__media.is-photo { background: none; padding: 0; box-shadow: none; border-radius: 0; }
.showcase__photo { position: relative; border-radius: 4px; overflow: hidden; border: 1px solid var(--line); box-shadow: var(--shadow); aspect-ratio: 4 / 3; }
.showcase__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.photo-float {
    position: absolute; background: #fff; border: 1px solid var(--line);
    border-radius: 4px; box-shadow: var(--shadow-lg); padding: 12px 15px; z-index: 6;
}
.photo-float.br { right: -16px; bottom: -16px; }
.photo-float.tl { left: -16px; top: -16px; }
.photo-float .pf-k { font-size: .66rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.photo-float .pf-v { font-size: 1.4rem; font-weight: 800; color: var(--ink-strong); line-height: 1.15; }
.photo-float .pf-v small { font-size: .78rem; font-weight: 700; color: var(--ok); }
.photo-float .pf-avatars { display: flex; margin-top: 7px; }
.photo-float .pf-avatars img { width: 26px; height: 26px; border-radius: 50%; border: 2px solid #fff; object-fit: cover; margin-left: -7px; }
.photo-float .pf-avatars img:first-child { margin-left: 0; }

/* Real avatar images inside dashboard guest rows */
.av-img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.guest-row { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 4px; margin-bottom: 8px; }
.guest-row .gr-name { font-weight: 700; color: var(--ink-strong); font-size: .9rem; line-height: 1.2; }
.guest-row .gr-sub { font-size: .74rem; color: var(--muted); }
.guest-row .gr-meta { margin-left: auto; }
.av-initial { width: 34px; height: 34px; border-radius: 50%; flex: 0 0 auto; display: grid; place-items: center; font-weight: 700; font-size: .82rem; color: #fff; }

@media (max-width: 920px) {
    .hero__invite-float { right: 10px; bottom: -20px; width: 210px; }
    .photo-float.br { right: 8px; bottom: -12px; }
    .photo-float.tl { left: 8px; top: -12px; }
}
/* @devani:endregion */
/* @devani:region xshowcase */
/* ===== Animated tabbed feature showcase (fx-) ===== */
.fx{max-width:var(--container,1120px);margin:0 auto}
.fx-tabbar{display:flex;gap:34px;border-bottom:1px solid var(--line-2)}
.fx-tab{position:relative;background:none;border:none;font-family:inherit;font-size:1.15rem;font-weight:700;color:var(--muted);padding:0 2px 16px;cursor:pointer;letter-spacing:-.01em;transition:color .25s}
.fx-tab.active{color:var(--brand-ink)}
.fx-tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--brand);border-radius:3px 3px 0 0;transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}
.fx-tab.active::after{transform:scaleX(1)}
.fx-body{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center;padding:56px 0 0}
.fx-copy.swap{animation:fxCopySwap .5s cubic-bezier(.22,.61,.36,1)}
@keyframes fxCopySwap{0%{opacity:0;transform:translateY(12px)}100%{opacity:1;transform:none}}
.fx-copy h2{font-size:clamp(2rem,4vw,2.9rem);font-weight:800;line-height:1.04;letter-spacing:-.025em;color:var(--ink-strong);margin-bottom:20px}
.fx-copy p{font-size:1.08rem;color:var(--muted);line-height:1.6;margin-bottom:26px;max-width:440px}
.fx-pills{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}
.fx-pill{font-size:.92rem;font-weight:600;padding:9px 16px;border-radius:999px;background:var(--surface);color:var(--ink)}
.fx-pill.a{background:var(--brand-soft);color:var(--brand-ink)}
.fx-pill.b{background:#fdeede;color:#c08a4e}
.fx-stage{position:relative;aspect-ratio:1/.9;border-radius:8px;overflow:hidden;background:radial-gradient(120% 120% at 30% 10%,#f3f0fb,#e7e3f3);perspective:1200px}
.fx-stage::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(138,111,196,.07) 1px,transparent 1.5px);background-size:22px 22px;-webkit-mask-image:radial-gradient(70% 70% at 50% 40%,#000,transparent 75%);mask-image:radial-gradient(70% 70% at 50% 40%,#000,transparent 75%)}
.fx-scene{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:scale(.97);transition:opacity .55s cubic-bezier(.22,.61,.36,1),transform .55s cubic-bezier(.22,.61,.36,1),visibility .55s}
.fx-scene.show{opacity:1;visibility:visible;transform:none}
.fx-phone{width:228px;height:434px;background:linear-gradient(160deg,#241b3f,#15102b);border-radius:34px;padding:9px;box-shadow:var(--shadow-lg),inset 0 0 0 1px rgba(255,255,255,.06);position:relative;transform-style:preserve-3d}
.fx-scene.show .fx-phone{animation:fxPhoneIn .7s cubic-bezier(.34,1.56,.64,1) both}
@keyframes fxPhoneIn{0%{opacity:0;transform:translateY(26px) rotateX(8deg) scale(.94)}100%{opacity:1;transform:none}}
.fx-screen{width:100%;height:100%;background:#fff;border-radius:26px;overflow:hidden;position:relative;display:flex;flex-direction:column}
.fx-notch{position:absolute;top:10px;left:50%;transform:translateX(-50%);width:78px;height:17px;background:#15102b;border-radius:0 0 12px 12px;z-index:6}
.fx-invphoto{height:62%;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:16px;background-size:cover;background-position:center}
.fx-invphoto .fx-grad{position:absolute;inset:0;background:linear-gradient(165deg,rgba(90,74,138,.55),rgba(30,20,55,.78))}
.fx-logo,.fx-rsvplbl,.fx-title,.fx-line,.fx-rsvpbtn{position:relative;z-index:2}
.fx-logo{font-size:.7rem;font-weight:800;letter-spacing:.1em;color:rgba(255,255,255,.9)}
.fx-rsvplbl{position:absolute;top:16px;right:16px;font-size:.62rem;font-weight:700;letter-spacing:.12em;color:rgba(255,255,255,.9);z-index:3}
.fx-title{color:#fff}.fx-title .pre{font-size:.7rem;opacity:.85}
.fx-title h3{font-size:1.5rem;font-weight:800;line-height:1.05;margin-top:4px;letter-spacing:-.02em;color:#fff}
.fx-invbody{flex:1;padding:15px;display:flex;flex-direction:column;justify-content:center;gap:10px}
.fx-line{height:9px;border-radius:3px;background:var(--surface-2)}
.fx-rsvpbtn{margin-top:6px;background:var(--brand);color:#fff;text-align:center;padding:10px;border-radius:5px;font-size:.78rem;font-weight:700}
.fx-build.show .fx-invphoto{animation:fxPhotoReveal .9s cubic-bezier(.22,.61,.36,1) both}
@keyframes fxPhotoReveal{0%{filter:brightness(1.8) saturate(.2) blur(6px)}100%{filter:none}}
.fx-build.show .fx-logo,.fx-build.show .fx-rsvplbl,.fx-build.show .fx-title,.fx-build.show .fx-line,.fx-build.show .fx-rsvpbtn{opacity:0;animation:fxRise .6s cubic-bezier(.34,1.56,.64,1) both}
@keyframes fxRise{0%{opacity:0;transform:translateY(14px)}100%{opacity:1;transform:none}}
.fx-build.show .fx-logo{animation-delay:.45s}
.fx-build.show .fx-rsvplbl{animation-delay:.55s}
.fx-build.show .fx-title{animation-delay:.65s}
.fx-build.show .fx-line:nth-of-type(1){animation-delay:.85s}
.fx-build.show .fx-line:nth-of-type(2){animation-delay:.95s}
.fx-build.show .fx-rsvpbtn{animation-delay:1.15s}
.fx-themecard{position:absolute;right:20px;bottom:40px;width:188px;background:#fff;border-radius:6px;box-shadow:var(--shadow-lg);padding:16px;z-index:7}
.fx-scene.show .fx-themecard{animation:fxSpringIn .65s cubic-bezier(.34,1.56,.64,1) .35s both}
@keyframes fxSpringIn{0%{opacity:0;transform:translateY(24px) scale(.9)}100%{opacity:1;transform:none}}
.fx-themecard h4{font-size:.85rem;margin-bottom:12px;color:var(--ink-strong)}
.fx-themerow{display:flex;align-items:center;justify-content:space-between;font-size:.76rem;color:var(--muted);font-weight:600;padding:9px 0;border-top:1px solid var(--line)}
.fx-swatches{display:flex;gap:7px;margin:9px 0}
.fx-swatches span{width:25px;height:25px;border-radius:5px;cursor:pointer;opacity:0}
.fx-scene.show .fx-swatches span{animation:fxPop .5s cubic-bezier(.34,1.56,.64,1) both}
.fx-swatches span:nth-child(1){background:linear-gradient(135deg,#b39ddb,#8a6fc4);animation-delay:.6s}
.fx-swatches span:nth-child(2){background:linear-gradient(135deg,#f6a8c8,#e87fae);animation-delay:.7s}
.fx-swatches span:nth-child(3){background:linear-gradient(135deg,#7cc6ff,#4f9fe0);animation-delay:.8s}
.fx-swatches span:nth-child(4){background:linear-gradient(135deg,#7fd1ad,#4fb88a);animation-delay:.9s}
.fx-scene.show .fx-swatches span.sel{animation:fxPop .5s cubic-bezier(.34,1.56,.64,1) .7s both,fxRing 1s ease 1.5s both}
@keyframes fxRing{0%,100%{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--brand)}}
.fx-scene.show .fx-reskin{animation:fxReskin 1s ease 1.6s both}
@keyframes fxReskin{0%{background:var(--brand)}100%{background:#e87fae}}
.fx-scene.show .fx-reglow{animation:fxReglow 1s ease 1.6s both}
@keyframes fxReglow{0%{background:linear-gradient(165deg,rgba(90,74,138,.55),rgba(30,20,55,.78))}100%{background:linear-gradient(165deg,rgba(180,90,140,.5),rgba(60,20,55,.8))}}
@keyframes fxPop{0%{opacity:0;transform:scale(.5)}100%{opacity:1;transform:none}}
.fx-connect{position:relative;width:92%;height:84%}
.fx-avtop{position:absolute;top:2%;width:100%;display:flex;justify-content:space-around;z-index:3}
.fx-bub{width:66px;height:66px;border-radius:50%;overflow:hidden;border:3px solid #fff;box-shadow:var(--shadow);background:var(--surface-2);opacity:0}
.fx-bub img{width:100%;height:100%;object-fit:cover;display:block}
.fx-scene.show .fx-bub{animation:fxDrop .7s cubic-bezier(.34,1.56,.64,1) both}
.fx-scene.show .fx-bub:nth-child(1){animation-delay:.2s}
.fx-scene.show .fx-bub:nth-child(2){animation-delay:.35s}
.fx-scene.show .fx-bub:nth-child(3){animation-delay:.5s}
@keyframes fxDrop{0%{opacity:0;transform:translateY(-26px) scale(.7)}60%{opacity:1}100%{opacity:1;transform:none}}
.fx-connect svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.fx-connect svg path{stroke:var(--brand);stroke-width:2.5;fill:none;stroke-linecap:round;stroke-dasharray:160;stroke-dashoffset:160}
.fx-scene.show svg path{animation:fxDraw .8s cubic-bezier(.22,.61,.36,1) both}
.fx-scene.show svg path:nth-of-type(1){animation-delay:.7s}
.fx-scene.show svg path:nth-of-type(2){animation-delay:.95s}
@keyframes fxDraw{to{stroke-dashoffset:0}}
.fx-attrows{position:absolute;bottom:2%;width:100%;display:flex;flex-direction:column;gap:13px;z-index:2}
.fx-attrow{background:#fff;border-radius:6px;box-shadow:var(--shadow);padding:14px 18px;display:flex;align-items:center;gap:14px;opacity:0}
.fx-scene.show .fx-attrow{animation:fxSpringIn .6s cubic-bezier(.34,1.56,.64,1) both}
.fx-scene.show .fx-attrow:nth-child(1){animation-delay:1.0s}
.fx-scene.show .fx-attrow:nth-child(2){animation-delay:1.2s}
.fx-attrow .ar-av{width:36px;height:36px;border-radius:50%;overflow:hidden;background:var(--surface-2);flex:0 0 auto}
.fx-attrow .ar-av img{width:100%;height:100%;object-fit:cover}
.fx-attrow .ar-name{font-weight:700;color:var(--ink-strong);font-size:.95rem}
.fx-attrow .ar-status{margin-left:auto;display:flex;align-items:center;gap:8px;font-weight:600;font-size:.92rem}
.fx-attrow .ar-dot{width:9px;height:9px;border-radius:50%;background:var(--ok)}
.fx-scene.show .fx-attrow .ar-dot{animation:fxPulse 1.8s ease 1.4s infinite}
@keyframes fxPulse{0%{box-shadow:0 0 0 0 rgba(79,184,138,.5)}70%{box-shadow:0 0 0 8px rgba(79,184,138,0)}100%{box-shadow:0 0 0 0 rgba(79,184,138,0)}}
.fx-ticket{width:90%;background:linear-gradient(160deg,#f7d9a0,#f3c47e);border-radius:8px;padding:22px}
.fx-setpay{display:flex;align-items:center;gap:8px;margin:0 auto 16px;background:var(--brand);color:#fff;border:none;font-family:inherit;font-weight:700;font-size:.85rem;padding:12px 22px;border-radius:6px;box-shadow:var(--shadow);opacity:0}
.fx-scene.show .fx-setpay{animation:fxSpringIn .6s cubic-bezier(.34,1.56,.64,1) .15s both}
.fx-tkhead{background:#fff;border-radius:6px;padding:13px 16px;font-size:.82rem;font-weight:700;color:var(--ink);margin-bottom:10px;display:flex;justify-content:space-between;opacity:0}
.fx-scene.show .fx-tkhead{animation:fxSpringIn .6s cubic-bezier(.34,1.56,.64,1) .3s both}
.fx-tkitem{background:#fff;border-radius:6px;padding:15px 16px;margin-bottom:10px;opacity:0}
.fx-scene.show .fx-tkitem:nth-of-type(1){animation:fxSpringIn .6s cubic-bezier(.34,1.56,.64,1) .45s both}
.fx-scene.show .fx-tkitem:nth-of-type(2){animation:fxSpringIn .6s cubic-bezier(.34,1.56,.64,1) .6s both}
.fx-tktop{display:flex;justify-content:space-between;align-items:flex-start}
.fx-tkname{font-weight:700;font-size:.9rem;color:var(--ink-strong)}
.fx-tksub{font-size:.8rem;font-style:italic;color:var(--brand-ink)}
.fx-tkprice{font-weight:800;color:var(--ink-strong)}
.fx-step{display:flex;align-items:center;gap:8px;margin-top:12px}
.fx-step .s-btn{width:27px;height:27px;border-radius:5px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:800}
.fx-step .s-n{width:36px;height:27px;border-radius:5px;background:var(--surface);display:grid;place-items:center;font-weight:700;font-size:.85rem}
.fx-scene.show .fx-tkitem:nth-of-type(1) .s-n{animation:fxTick 2.4s ease 1.4s infinite}
@keyframes fxTick{0%,40%{transform:scale(1)}45%{transform:scale(1.18)}50%,100%{transform:scale(1)}}
.fx-step .s-avail{margin-left:auto;font-size:.72rem;color:var(--muted);font-weight:600}
.fx-auto{position:relative;width:88%;height:80%}
.fx-track{position:absolute;left:30px;top:6%;bottom:6%;width:2px;background:linear-gradient(var(--brand),var(--line-2))}
.fx-astep{position:relative;display:flex;align-items:center;gap:16px;margin-bottom:22px;opacity:0}
.fx-scene.show .fx-astep{animation:fxSlideR .6s cubic-bezier(.34,1.56,.64,1) both}
.fx-scene.show .fx-astep:nth-child(2){animation-delay:.3s}
.fx-scene.show .fx-astep:nth-child(3){animation-delay:.55s}
.fx-scene.show .fx-astep:nth-child(4){animation-delay:.8s}
@keyframes fxSlideR{0%{opacity:0;transform:translateX(-18px)}100%{opacity:1;transform:none}}
.fx-anode{position:relative;z-index:2;width:46px;height:46px;border-radius:50%;background:#fff;box-shadow:var(--shadow);display:grid;place-items:center;flex:0 0 auto;color:var(--brand-ink)}
.fx-anode svg{width:22px;height:22px}
.fx-acard{flex:1;background:#fff;border-radius:6px;box-shadow:var(--shadow);padding:13px 16px}
.fx-acard .ac-t{font-weight:700;font-size:.9rem;color:var(--ink-strong)}
.fx-acard .ac-s{font-size:.78rem;color:var(--muted);margin-top:2px}
.fx-acard .ac-badge{float:right;font-size:.66rem;font-weight:700;color:var(--ok);background:#e3f6ee;padding:3px 9px;border-radius:999px}
.fx-astep.fly .fx-acard{position:relative;overflow:visible}
.fx-astep.fly .fx-plane{position:absolute;right:14px;top:50%;width:20px;height:20px;color:var(--brand)}
.fx-scene.show .fx-astep.fly .fx-plane{animation:fxFly 2.6s cubic-bezier(.22,.61,.36,1) 1.3s infinite}
@keyframes fxFly{0%{transform:translate(0,-50%) rotate(0);opacity:1}60%{transform:translate(40px,-130%) rotate(18deg);opacity:0}61%{transform:translate(-10px,-50%);opacity:0}75%{opacity:1}100%{transform:translate(0,-50%);opacity:1}}
.fx-dots{display:flex;gap:7px;justify-content:center;margin-top:24px}
.fx-dots i{width:7px;height:7px;border-radius:50%;background:var(--line-2);cursor:pointer;transition:all .4s cubic-bezier(.34,1.56,.64,1)}
.fx-dots i.on{background:var(--brand);width:24px;border-radius:4px}
@media(max-width:880px){.fx-body{grid-template-columns:1fr;gap:32px}.fx-tabbar{gap:20px}.fx-tab{font-size:1rem}}
@media(prefers-reduced-motion:reduce){.fx-scene *,.fx-scene{animation-duration:.01ms!important;animation-iteration-count:1!important}}
/* @devani:endregion */
/* @devani:region fixpass */
/* ===== Fix pass: center desktop nav + un-float invite card on mobile ===== */

/* Desktop: true 3-zone header so the menu sits dead-center */
@media (min-width: 921px) {
    header nav {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        gap: 28px;
    }
    header nav .brand { justify-self: start; }
    header nav .nav-links { justify-self: center; margin-left: 0; }
    header nav .nav-cta { justify-self: end; margin-left: 0; }
}

/* Phones: drop the invite card below the photo instead of overlapping it */
@media (max-width: 600px) {
    .hero__invite-float {
        position: static;
        right: auto;
        bottom: auto;
        width: auto;
        margin: 14px 0 0;
        box-shadow: var(--shadow);
    }
}
/* @devani:endregion */
/* @devani:region mobile-nav */
/* ============================================================
   Mobile hamburger navigation
   ============================================================ */
.nav-burger { display: none; }

@media (max-width: 920px) {
    header nav { position: relative; flex-wrap: wrap; }

    .nav-burger {
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        gap: 5px;
        width: 44px; height: 44px;
        margin-left: auto;
        order: 3;
        padding: 11px;
        border-radius: var(--radius-sm);
        cursor: pointer;
    }
    .nav-burger span {
        display: block; width: 100%; height: 2px;
        background: var(--ink-strong); border-radius: 2px;
        transition: transform 0.25s ease, opacity 0.2s ease;
    }

    /* Keep the CTA visible, just left of the burger */
    header nav .nav-cta { order: 2; margin-left: auto; }
    .nav-burger { margin-left: 12px; }

    /* Dropdown panel — override base display:none on .nav-links */
    header nav .nav-links {
        display: flex !important;
        order: 4;
        flex-basis: 100%;
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        margin-left: 0;
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        pointer-events: none;
        transition: max-height 0.3s ease, opacity 0.25s ease, margin 0.3s ease;
    }
    .nav-toggle:checked ~ .nav-links {
        max-height: 70vh;
        opacity: 1;
        pointer-events: auto;
        margin-top: 12px;
    }
    .nav-toggle:checked ~ .nav-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .nav-toggle:checked ~ .nav-burger span:nth-child(2) { opacity: 0; }
    .nav-toggle:checked ~ .nav-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    header nav .nav-links a {
        display: block;
        width: 100%;
        padding: 14px 4px;
        border-bottom: 1px solid var(--line);
        font-size: 1rem;
    }
}
/* @devani:endregion */
