/* Ode mne v3.1.20 — restored full-screen landing invitation demo only. */
body.landing-demo-open{overflow:hidden!important}
.landing-demo-overlay[hidden]{display:none!important}
.landing-demo-overlay{
    position:fixed;
    inset:0;
    z-index:10000;
    background:#21191c;
    overflow:hidden;
}
.landing-demo-close{
    position:fixed;
    z-index:10020;
    top:max(14px,env(safe-area-inset-top));
    right:max(14px,env(safe-area-inset-right));
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid rgba(255,255,255,.35);
    border-radius:50%;
    background:rgba(31,24,28,.78);
    color:#fff;
    font:400 2rem/1 sans-serif;
    cursor:pointer;
    backdrop-filter:blur(12px);
    box-shadow:0 9px 30px rgba(0,0,0,.22);
}
.landing-demo-presentation{
    --primary:#ef3f79;
    --secondary:#f3b6c5;
    --background:#fff8fa;
    --text:#302028;
    --button:#ef3f79;
    --accent:#fff;
    transition:max-width .25s ease;
}
.landing-demo-presentation.is-ticket-step{max-width:1180px}
.landing-demo-presentation .slide{overflow:hidden}
.landing-demo-presentation .choice-form,
.landing-demo-presentation .flower-public-inner{scrollbar-width:thin}
.landing-demo-actions{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}
.landing-demo-actions .presentation-button{margin-top:4px}
.landing-demo-activity-list{
    grid-template-columns:1fr;
}
.landing-demo-presentation .activity-choice-card{cursor:pointer}
.landing-demo-presentation .activity-choice-card.is-selected{
    border-color:var(--primary);
    box-shadow:0 9px 22px color-mix(in srgb,var(--primary) 15%,transparent);
}
.landing-demo-presentation .activity-choice-image{
    width:74px;
    height:58px;
    border-radius:12px;
    object-fit:cover;
}
.landing-demo-flower-types .flower-public-type-card{
    appearance:none;
    width:100%;
    color:var(--text);
    font:inherit;
    text-align:left;
}
.landing-demo-bouquets .public-flower-card[hidden]{display:none!important}
.landing-demo-bouquets .public-flower-card input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.landing-demo-ticket-slide{
    overflow:auto!important;
    padding:0!important;
    align-items:start!important;
    background:var(--background);
}
.landing-demo-ticket-page{
    width:100%;
    min-height:100dvh;
    padding:76px 24px 38px;
}
.landing-demo-ticket-page .cinema-ticket-wrap{width:min(1040px,100%)}
.landing-demo-ticket-page .stub-validity{
    display:block;
    width:100%;
    max-width:100%;
    text-align:center;
    overflow-wrap:normal;
    word-break:normal;
}
.landing-demo-qr{
    display:block;
    width:108px;
    height:108px;
    padding:7px;
    border-radius:14px;
    background:#fff;
}
.landing-demo-barcode{grid-template-columns:minmax(0,1fr) auto!important;padding-right:0!important}
.landing-demo-bars{
    display:block;
    height:58px;
    background:repeating-linear-gradient(90deg,#211a22 0 4px,transparent 4px 8px,#211a22 8px 10px,transparent 10px 14px);
}
.landing-demo-final-copy{
    text-align:center;
    color:color-mix(in srgb,var(--text) 76%,transparent);
    line-height:1.45;
}
.landing-demo-create-form{text-align:center;margin:0}
.landing-demo-create-button{
    min-width:min(360px,100%);
    margin:0!important;
    font-size:1.05rem;
}

@media(max-width:640px){
    .landing-tiktok-center{margin-bottom:46px;padding-top:4px}
    .landing-tiktok-big-icon{width:96px;height:96px;border-radius:29px}
    .landing-tiktok-big-icon>span{font-size:3.65rem}
    .landing-demo-close{width:42px;height:42px;font-size:1.8rem}
    .landing-demo-presentation .choice-slide{padding-top:58px}
    .landing-demo-presentation .choice-form{max-height:calc(100dvh - 72px)}
    .landing-demo-presentation .flower-type-slide,
    .landing-demo-presentation .flower-bouquet-slide{padding-top:58px}
    .landing-demo-presentation .flower-public-inner{max-height:calc(100dvh - 72px)}
    .landing-demo-ticket-page{padding:70px 12px 28px}
    .landing-demo-activity-list .choice-card{padding:9px 10px}
    .landing-demo-presentation .activity-choice-image{width:60px;height:48px}
}


/* v3.1.20 — flower demo parity with the real invitation. */
.landing-demo-presentation .flower-type-slide,
.landing-demo-presentation .flower-bouquet-slide{
    padding:64px 18px 20px!important;
    overflow:hidden!important;
    place-items:center!important;
}
.landing-demo-presentation .landing-demo-flower-inner{
    box-sizing:border-box;
    width:min(900px,100%)!important;
    max-width:900px!important;
    height:min(760px,calc(100dvh - 88px));
    max-height:calc(100dvh - 88px)!important;
    margin:0 auto!important;
    padding:22px clamp(14px,3.5vw,30px) 18px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain;
}
.landing-demo-flower-types{
    width:100%!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:10px!important;
}
.landing-demo-flower-types .flower-public-type-card{
    box-sizing:border-box;
    min-width:0!important;
    width:100%!important;
    grid-template-columns:40px minmax(0,1fr)!important;
    gap:8px!important;
    padding:10px!important;
    overflow:hidden;
}
.landing-demo-flower-types .flower-public-type-card strong{
    min-width:0;
    white-space:normal!important;
    overflow-wrap:anywhere;
    word-break:normal;
    line-height:1.15!important;
}
.landing-demo-type-counter{margin:12px 0 0!important}
.landing-demo-flower-groups{display:grid;gap:16px;width:100%}
.landing-demo-flower-groups [hidden]{display:none!important}
.landing-demo-flower-groups .flower-bouquet-group{min-width:0}
.landing-demo-flower-groups .flower-bouquet-group-title{
    margin:4px 0 8px;
    text-align:left;
    color:var(--text);
    font-size:1rem;
}
.landing-demo-flower-groups .landing-demo-bouquets{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
}
.landing-demo-flower-groups .public-flower-card{
    min-width:0;
}
.landing-demo-flower-actions{margin-top:16px!important}

@media(max-width:650px){
    .landing-demo-presentation .flower-type-slide,
    .landing-demo-presentation .flower-bouquet-slide{
        padding:56px 10px 10px!important;
    }
    .landing-demo-presentation .landing-demo-flower-inner{
        width:100%!important;
        height:calc(100dvh - 66px)!important;
        max-height:calc(100dvh - 66px)!important;
        padding:18px 10px 12px!important;
        border-radius:24px!important;
    }
    .landing-demo-presentation .flower-public-kicker{font-size:1.75rem!important}
    .landing-demo-presentation .landing-demo-flower-inner h2{
        margin:3px 0 6px!important;
        font-size:clamp(1.45rem,7vw,2rem)!important;
    }
    .landing-demo-presentation .landing-demo-flower-inner>p{
        margin-bottom:12px!important;
        font-size:.82rem!important;
    }
    .landing-demo-flower-types{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:8px!important;
    }
    .landing-demo-flower-types .flower-public-type-card{
        min-height:64px!important;
        grid-template-columns:34px minmax(0,1fr)!important;
        padding:8px!important;
        border-radius:16px!important;
    }
    .landing-demo-flower-types .flower-type-icon{
        width:34px!important;height:34px!important;border-radius:10px!important;font-size:1.05rem!important;
    }
    .landing-demo-flower-types .flower-public-type-card strong{font-size:.76rem!important}
    .landing-demo-flower-groups .landing-demo-bouquets{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:8px!important;
    }
    .landing-demo-flower-groups .flower-bouquet-card{padding:7px!important;border-radius:15px!important}
    .landing-demo-flower-groups .flower-bouquet-card-copy strong{font-size:.76rem!important}
    .landing-demo-flower-groups .flower-bouquet-card-copy small{font-size:.64rem!important}
    .landing-demo-flower-actions{
        position:sticky!important;
        z-index:8;
        bottom:-12px!important;
        margin:14px -10px -12px!important;
        padding:12px 8px!important;
        background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--background) 97%,white) 24%)!important;
    }
    .landing-demo-flower-actions .presentation-button{padding:11px 13px!important;font-size:.78rem!important}
}

/* ============================================================
   v3.1.25 — LANDING FULL DEMO FLOWERS
   ============================================================ */

.landing-demo-presentation .flower-type-slide,
.landing-demo-presentation .flower-bouquet-slide{
    padding:58px 10px 10px!important;
    overflow:hidden!important;
    place-items:center!important;
}

.landing-demo-presentation .landing-demo-flower-inner{
    box-sizing:border-box!important;
    width:min(520px,calc(100vw - 20px))!important;
    max-width:520px!important;
    height:calc(100dvh - 68px)!important;
    max-height:calc(100dvh - 68px)!important;
    min-height:0!important;
    margin:0 auto!important;
    padding:18px 12px 14px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    border-radius:24px!important;
    display:flex!important;
    flex-direction:column!important;
    overscroll-behavior:contain;
}

.landing-demo-presentation .landing-demo-flower-inner .flower-public-kicker{
    flex:0 0 auto!important;
    margin-bottom:4px!important;
    font-size:1.75rem!important;
}

.landing-demo-presentation .landing-demo-flower-inner h2{
    flex:0 0 auto!important;
    width:100%!important;
    max-width:100%!important;
    margin:3px auto 6px!important;
    padding:0 4px!important;
    font-size:clamp(1.42rem,6vw,1.9rem)!important;
    line-height:1.08!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
}

.landing-demo-presentation .landing-demo-flower-inner>p{
    flex:0 0 auto!important;
    margin:0 auto 12px!important;
    font-size:.82rem!important;
    line-height:1.35!important;
}

/* Four flower types are always shown as a clean 2 x 2 grid. */
.landing-demo-presentation .landing-demo-flower-types{
    display:grid!important;
    flex:0 0 auto!important;
    width:100%!important;
    max-width:470px!important;
    margin:0 auto!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:9px!important;
}

.landing-demo-presentation .landing-demo-flower-types .flower-public-type-card{
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr)!important;
    align-items:center!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
    min-height:68px!important;
    padding:8px 26px 8px 8px!important;
    overflow:hidden!important;
    border-radius:16px!important;
}

.landing-demo-presentation .landing-demo-flower-types .flower-type-icon{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    border-radius:11px!important;
    font-size:1.08rem!important;
}

.landing-demo-presentation .landing-demo-flower-types .flower-public-type-card strong{
    display:block!important;
    min-width:0!important;
    max-width:100%!important;
    font-size:.82rem!important;
    line-height:1.15!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
}

.landing-demo-presentation .landing-demo-type-counter{
    flex:0 0 auto!important;
    margin:11px 0 0!important;
}

.landing-demo-presentation .landing-demo-flower-actions{
    flex:0 0 auto!important;
    position:static!important;
    margin-top:auto!important;
    padding-top:12px!important;
    padding-bottom:0!important;
    background:none!important;
}

.landing-demo-presentation .landing-demo-flower-actions .presentation-button{
    margin-top:0!important;
    padding:10px 13px!important;
    font-size:.78rem!important;
}

/* Bouquet groups also stay inside the viewport. */
.landing-demo-presentation .landing-demo-flower-groups{
    display:grid!important;
    gap:14px!important;
    width:100%!important;
    min-width:0!important;
}
.landing-demo-presentation .landing-demo-flower-groups [hidden]{display:none!important}
.landing-demo-presentation .landing-demo-flower-groups .landing-demo-bouquets{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    min-width:0!important;
}
.landing-demo-presentation .landing-demo-bouquets .public-flower-card{
    min-width:0!important;
}
.landing-demo-presentation .landing-demo-bouquets .public-flower-card[hidden]{
    display:none!important;
}

@media(max-width:390px){
    .landing-demo-presentation .landing-demo-flower-inner{
        width:calc(100vw - 12px)!important;
        height:calc(100dvh - 62px)!important;
        max-height:calc(100dvh - 62px)!important;
        padding:14px 8px 10px!important;
    }
    .landing-demo-presentation .landing-demo-flower-types{
        gap:7px!important;
    }
    .landing-demo-presentation .landing-demo-flower-types .flower-public-type-card{
        grid-template-columns:34px minmax(0,1fr)!important;
        gap:6px!important;
        min-height:62px!important;
        padding:7px 22px 7px 7px!important;
    }
    .landing-demo-presentation .landing-demo-flower-types .flower-type-icon{
        width:34px!important;
        height:34px!important;
        min-width:34px!important;
    }
    .landing-demo-presentation .landing-demo-flower-types .flower-public-type-card strong{
        font-size:.74rem!important;
    }
}

/* ============================================================
   v3.1.27 — centered TikTok promo
   ============================================================ */
.landing-tiktok-center{
    width:min(720px,calc(100% - 32px));
    margin:0 auto 64px;
    padding:12px 20px 22px;
    display:grid;
    justify-items:center;
    gap:16px;
    color:var(--ink);
    text-align:center;
    text-decoration:none;
}
.landing-tiktok-big-icon{
    display:grid;
    place-items:center;
    width:112px;
    height:112px;
    border-radius:34px;
    background:#08090d;
    box-shadow:0 22px 55px rgba(37,20,31,.18);
    transition:transform .2s ease,box-shadow .2s ease;
}
.landing-tiktok-big-icon>span{
    color:#fff;
    font:950 4.2rem/1 system-ui,sans-serif;
    transform:translateY(-2px);
    text-shadow:-5px 1px 0 #25f4ee,5px -1px 0 #fe2c55;
}
.landing-tiktok-center strong{
    max-width:690px;
    font-size:clamp(1.05rem,2.4vw,1.4rem);
    line-height:1.35;
}
.landing-tiktok-center:hover .landing-tiktok-big-icon{
    transform:translateY(-4px) scale(1.025);
    box-shadow:0 28px 65px rgba(37,20,31,.25);
}
@media(max-width:640px){
    .landing-tiktok-center{
        margin-bottom:46px;
        padding-top:4px;
    }
    .landing-tiktok-big-icon{
        width:96px;
        height:96px;
        border-radius:29px;
    }
    .landing-tiktok-big-icon>span{
        font-size:3.65rem;
    }
}
