:root{
    --ink:#162033;--muted:#7e8799;--surface:#fff;--soft:#fff0f4;--brand:#ef3f79;--brand-dark:#d92e66;
    --line:#f4cbd8;--shadow:0 16px 45px rgba(73,31,48,.10);--radius:26px;
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff8fa;color:var(--ink)}a{color:inherit}.site-header{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));background:rgba(255,255,255,.94);border-bottom:1px solid #f5dde5;position:sticky;top:0;z-index:30;backdrop-filter:blur(14px)}.brand{text-decoration:none;font-weight:950;font-size:1.35rem}.site-header nav a{text-decoration:none;font-weight:800}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;font-weight:950;color:var(--brand)}
.primary-button,.secondary-button,.presentation-button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:15px 24px;font-weight:900;font-size:1rem;text-decoration:none;cursor:pointer;transition:.2s ease}.primary-button,.presentation-button{background:linear-gradient(135deg,var(--brand),#ff648f);color:#fff;box-shadow:0 10px 22px rgba(239,63,121,.25)}.primary-button:hover,.presentation-button:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(239,63,121,.32)}.secondary-button{background:#fff;border:1px solid #efcfda;color:var(--ink)}button[hidden]{display:none!important}
.language-rail{position:fixed;left:max(12px,calc((100vw - 1280px)/2));top:110px;display:grid;gap:8px;z-index:20}.language-pill{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#fff;border:1px solid #f1dbe2;text-decoration:none;font-weight:900;font-size:.8rem;color:#9199a8;box-shadow:0 8px 25px rgba(66,31,43,.06)}.language-pill.is-active{background:var(--brand);color:#fff;border-color:var(--brand)}
.hero{max-width:1180px;margin:auto;padding:72px 24px;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:64px}.hero h1{font-size:clamp(2.9rem,6vw,5.7rem);line-height:.98;margin:18px 0 22px;letter-spacing:-.055em}.hero p{font-size:1.2rem;line-height:1.6;color:var(--muted);max-width:650px}.phone-demo{justify-self:center;width:min(340px,90vw);padding:13px;border-radius:46px;background:#231c1f;box-shadow:0 32px 90px rgba(70,20,35,.22);transform:rotate(3deg)}.phone-screen{min-height:610px;border-radius:35px;background:linear-gradient(145deg,#fff2f5,#f5b8c8);padding:45px 26px;display:flex;flex-direction:column;justify-content:center;text-align:center}.phone-screen h2{font-size:2rem}.phone-screen button{align-self:center;border:0;border-radius:99px;background:#ef3f79;color:#fff;padding:13px 28px;font-weight:850}.tiny-heart{font-size:4rem}.product-grid{max-width:1180px;margin:0 auto 90px;padding:0 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.product-card{background:#fff;border:1px solid #f3d9e1;border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}.product-card strong{font-size:2rem}.product-card.disabled{opacity:.5}
.editor-shell{max-width:1040px;margin:0 auto;padding:44px 24px 120px}.editor-topline{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:28px}.editor-topline h1{font-size:clamp(2.4rem,5vw,4.2rem);letter-spacing:-.05em;line-height:1;margin:10px 0 12px}.editor-topline p{color:var(--muted);font-size:1.05rem;margin:0}.current-language-badge{background:#fff;border:1px solid #f1dce3;border-radius:999px;padding:10px 16px;font-weight:850;color:var(--brand)}.editor-form{display:grid;gap:24px}
.wizard-progress{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr auto;align-items:start;padding:18px 8px 28px;max-width:780px;margin:0 auto}.wizard-step{border:0;background:transparent;display:grid;justify-items:center;gap:9px;min-width:110px;color:#a3aaba;font-weight:750;cursor:pointer}.wizard-step-circle{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#fdeaf1;color:#f3a0bd;font-size:1.25rem;font-weight:950;border:5px solid transparent;transition:.25s}.wizard-step.is-active{color:var(--brand)}.wizard-step.is-active .wizard-step-circle{background:var(--brand);color:#fff;border-color:#ffc8db;box-shadow:0 7px 20px rgba(239,63,121,.24)}.wizard-step.is-complete .wizard-step-circle{background:var(--brand);color:#fff}.wizard-line{height:2px;background:#f4b5ca;margin-top:27px;min-width:22px}
.wizard-panel{display:none}.wizard-panel.is-active{display:grid;gap:24px;animation:panel-in .3s ease}@keyframes panel-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.panel-heading{padding:16px 2px 2px}.panel-heading.centered{text-align:center}.panel-heading h2{font-size:clamp(1.7rem,4vw,2.5rem);letter-spacing:-.035em;margin:0 0 8px}.panel-heading p,.section-note{color:var(--muted);font-size:1.05rem;margin:0;line-height:1.5}
.recipient-gender-switch{display:grid;grid-template-columns:1fr 1fr;background:#fdebf2;border-radius:24px;padding:6px;gap:6px;max-width:620px;margin:0 auto 8px}.gender-card{position:relative}.gender-card input{position:absolute;opacity:0;pointer-events:none}.gender-card span{height:58px;border-radius:19px;display:flex;align-items:center;justify-content:center;gap:8px;color:#687184;font-size:1.15rem;font-weight:900;cursor:pointer}.gender-card.is-selected span{background:#fff;color:var(--brand);box-shadow:0 5px 14px rgba(76,34,50,.15)}
.editor-card{background:#fff;border:1px solid #f2dbe3;border-radius:30px;padding:24px;box-shadow:var(--shadow);overflow:hidden}.editor-card h3{font-size:1.15rem;margin:0 0 18px}.field-grid{display:grid;gap:16px}.field-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.field-stack{display:grid;gap:16px;margin-top:16px}.field-stack.compact{margin:0 0 20px;max-width:430px}.form-field{display:grid;gap:7px;min-width:0}.form-field label{font-weight:850;color:#364052}.form-field input,.form-field textarea,.form-field select{width:100%;border:1px solid #e8c9d4;border-radius:17px;padding:13px 15px;font:inherit;background:#fffafd;color:var(--ink);outline:none;transition:.18s}.form-field textarea{resize:vertical;min-height:92px}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(239,63,121,.10);background:#fff}.form-field.has-error input,.form-field.has-error textarea,.form-field.has-error select{border-color:#d93352}.field-error,.form-errors{color:#b4233d;font-weight:750;font-size:.88rem}.form-errors{background:#fff0f3;border:1px solid #f4bdca;border-radius:14px;padding:12px 14px}.form-errors ul,.field-error ul{margin:0;padding-left:18px}
.palette-picker-field{display:grid;gap:9px;margin-top:18px}.palette-picker-label{font-weight:850;color:#364052}.palette-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.palette-option{position:relative;display:grid;gap:10px;min-height:104px;padding:13px;border:1.5px solid #ead2dc;border-radius:18px;background:#fffafd;cursor:pointer;transition:.18s}.palette-option:hover{transform:translateY(-2px);border-color:#e9a9be}.palette-option input{position:absolute;opacity:0;pointer-events:none}.palette-option.is-selected{border-color:var(--brand);box-shadow:0 9px 22px rgba(239,63,121,.15);background:#fff}.palette-option-colors{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.palette-option-colors i{display:block;height:36px;border-radius:9px;background:var(--swatch);border:1px solid rgba(54,35,47,.10);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}.palette-option strong{font-size:.9rem;line-height:1.25}.palette-option-check{position:absolute;right:9px;top:9px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:#fff;font-size:.78rem;font-weight:900;opacity:0;transform:scale(.7);transition:.18s}.palette-option.is-selected .palette-option-check{opacity:1;transform:scale(1)}.ticket-place-comment{display:block;color:var(--muted);font-size:.88rem;line-height:1.4}@media(max-width:760px){.palette-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:420px){.palette-picker{grid-template-columns:1fr}}
.date-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.date-card{border:1px solid #f2d2dc;background:#fff9fb;border-radius:22px;padding:16px;display:grid;gap:12px}.date-card-number{font-weight:900;color:var(--brand);font-size:.88rem}.delete-check{display:flex;gap:8px;align-items:center;font-size:.86rem;color:var(--muted)}.map-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:24px;align-items:start}.map-fields{display:grid;gap:15px}.google-map,.map-placeholder{width:100%;height:370px;border-radius:22px;overflow:hidden;border:1px solid #f0cbd7;margin-top:14px}.map-placeholder{position:relative;background:linear-gradient(35deg,#fde6ee 25%,transparent 25%) 0 0/36px 36px,linear-gradient(35deg,transparent 75%,#fde6ee 75%) 0 0/36px 36px,#fff8fa;display:grid;place-items:center;text-align:center;padding:30px}.map-placeholder:after{content:"♥";font-size:2.2rem;color:var(--brand);position:absolute;top:45%;left:52%}.map-placeholder span{font-size:2rem;font-weight:950}.map-placeholder small{max-width:280px;color:var(--muted);font-weight:700}
.activity-builder{position:relative}.activity-filters{display:flex;gap:8px;overflow-x:auto;padding-bottom:10px}.filter-chip{border:1px solid #f5bfd1;background:#fff6f9;color:var(--brand);border-radius:999px;padding:9px 15px;font-weight:850;white-space:nowrap;cursor:pointer}.filter-chip.is-active{background:var(--brand);color:#fff}.activity-count{position:absolute;right:24px;top:28px;font-weight:900;color:var(--brand)}.activity-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-top:10px}.activity-card{position:relative;border:1.5px solid #f1d8e0;border-radius:19px;padding:10px;text-align:center;display:grid;gap:8px;cursor:pointer;background:#fff;min-height:126px;align-content:center;transition:.18s}.activity-card[hidden]{display:none}.activity-card input{position:absolute;opacity:0}.activity-card:hover{transform:translateY(-2px);border-color:#f58aad}.activity-card.is-selected{border-color:var(--brand);box-shadow:0 8px 20px rgba(239,63,121,.14)}.activity-placeholder{height:54px;border-radius:14px;background:linear-gradient(145deg,#fff0f5,#f7dce5);display:grid;place-items:center}.activity-placeholder.custom{font-size:1.55rem;color:#e79ab4}.activity-card strong{font-size:.9rem}.activity-check{position:absolute;right:7px;top:7px;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:#fff;font-size:.78rem;opacity:0;transform:scale(.7);transition:.18s}.activity-card.is-selected .activity-check{opacity:1;transform:scale(1)}.custom-activity-input{margin-top:18px;max-width:460px}
.final-preview-card{max-width:650px;margin:0 auto;background:#fff;border:1px solid #f1d8e0;border-radius:30px;padding:24px;box-shadow:var(--shadow)}.final-ticket-stub{border:2px solid var(--brand);border-radius:22px;overflow:hidden;display:grid;text-align:center}.final-ticket-stub>span,.final-ticket-stub>strong{background:var(--brand);color:#fff;padding:9px}.final-ticket-stub>strong{font-size:1.2rem}.final-ticket-stub>div{font-size:1.65rem;font-weight:950;padding:34px 18px}.summary-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 0}.summary-list div{background:#fff4f7;border-radius:15px;padding:12px}.summary-list dt{font-size:.76rem;color:var(--muted)}.summary-list dd{margin:4px 0 0;font-weight:900}.wizard-actions{position:sticky;bottom:14px;background:rgba(255,255,255,.94);border:1px solid #f0d6df;border-radius:999px;padding:9px;display:flex;gap:9px;justify-content:flex-end;box-shadow:0 15px 40px rgba(60,26,39,.15);backdrop-filter:blur(14px);z-index:25}
.messages{position:fixed;right:20px;bottom:20px;z-index:60}.message{background:#202a22;color:#fff;padding:14px 18px;border-radius:12px}
.presentation-body{margin:0;overflow:hidden;background:#21191c}.presentation{height:100dvh;max-width:520px;margin:auto;position:relative;background:var(--background);color:var(--text);box-shadow:0 0 80px rgba(0,0,0,.35)}.slide{position:absolute;inset:0;display:grid;place-items:center;padding:max(28px,env(safe-area-inset-top)) 24px max(28px,env(safe-area-inset-bottom));opacity:0;pointer-events:none;transform:translateY(22px) scale(.99);transition:.45s ease}.slide.is-active{opacity:1;pointer-events:auto;transform:none}.slide-inner{text-align:center;width:100%;max-width:420px}.slide h1{font-size:clamp(2rem,9vw,3.5rem);line-height:1.02;letter-spacing:-.04em}.slide h2{font-size:1.65rem}.salutation,.signature{font-family:Georgia,serif;font-style:italic;font-size:1.4rem}.heart-mark{font-size:4rem;color:var(--primary)}.large-copy{font-size:1.35rem;line-height:1.55}.presentation-button{background:var(--button);color:var(--accent);margin-top:20px}.answer-area{height:190px;position:relative;display:grid;place-items:center}.yes-button{z-index:2}.no-button{position:absolute;left:20px;top:120px;border:1px solid color-mix(in srgb,var(--text) 20%,transparent);background:transparent;color:var(--text);border-radius:999px;padding:11px 18px;font-weight:800;transition:left .16s,top .16s}.choice-form{overflow-y:auto;max-height:90dvh;padding:10px}.choice-list{display:grid;gap:10px;text-align:left}.choice-card{display:flex;gap:12px;align-items:flex-start;padding:15px;border:1px solid color-mix(in srgb,var(--text) 18%,transparent);border-radius:16px;background:color-mix(in srgb,var(--background) 84%,white)}.choice-card input{margin-top:5px}.choice-card span{display:grid}.choice-card small{opacity:.65;margin-top:4px}.meeting-summary{display:grid;gap:5px;margin:18px 0;padding:16px;border-radius:16px;background:color-mix(in srgb,var(--primary) 10%,var(--background))}.preview-ribbon{position:fixed;z-index:50;left:50%;top:12px;transform:translateX(-50%);background:#1f1b1d;color:#fff;text-decoration:none;padding:9px 16px;border-radius:999px;font-weight:800;font-size:.82rem}.ticket-page{min-height:100vh;display:grid;place-items:center;background:var(--background);color:var(--text);padding:24px}.ticket-wrap{width:min(650px,100%);display:grid;gap:20px}.date-ticket{background:#fff;border-radius:26px;overflow:hidden;box-shadow:0 25px 90px rgba(60,20,30,.18);border:2px solid var(--primary)}.date-ticket header,.date-ticket footer{display:flex;justify-content:space-between;gap:20px;padding:18px 22px;background:var(--primary);color:#fff}.ticket-main{padding:32px}.ticket-names{font-size:clamp(1.8rem,6vw,3rem);font-weight:900;text-align:center}.ticket-names span{color:var(--primary)}.ticket-row{display:grid;gap:4px;border-top:1px dashed #d9cdd1;padding:16px 0}.ticket-row small{font-weight:900;letter-spacing:.12em;color:#8b777f}.ticket-note{text-align:center;color:#786970}.empty-state{max-width:650px;margin:15vh auto;padding:32px;text-align:center}.dashboard-shell{max-width:1050px;margin:0 auto;padding:56px 24px 120px}.dashboard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.dashboard-card{background:#fff;border:1px solid #f0d9e1;border-radius:20px;padding:22px}.dashboard-card dl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.dashboard-card dl div{background:#fff1f5;border-radius:12px;padding:10px}.dashboard-card dt{font-size:.75rem;color:var(--muted)}.dashboard-card dd{margin:4px 0 0;font-weight:850}.card-actions{display:flex;gap:12px}.status{font-size:.78rem;font-weight:850;color:var(--brand)}
@media(max-width:900px){.language-rail{position:absolute;top:82px;left:18px;display:flex}.hero{grid-template-columns:1fr;padding-top:100px}.phone-demo{order:-1;width:270px}.phone-screen{min-height:470px}.product-grid,.dashboard-grid{grid-template-columns:1fr}.hero h1{font-size:3.2rem}.map-layout{grid-template-columns:1fr}.activity-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.editor-shell{padding:28px 12px 100px}.editor-topline{display:block}.current-language-badge{display:inline-flex;margin-top:16px}.wizard-progress{grid-template-columns:repeat(4,1fr);gap:4px;padding-inline:0}.wizard-line{display:none}.wizard-step{min-width:0;font-size:.72rem}.wizard-step-circle{width:46px;height:46px}.field-grid.two-columns,.date-card-grid{grid-template-columns:1fr}.editor-card{padding:18px;border-radius:24px}.activity-grid{grid-template-columns:repeat(3,1fr);gap:9px}.activity-card{min-height:112px;padding:7px}.activity-placeholder{height:45px}.activity-count{position:static;text-align:right;margin-top:7px}.summary-list{grid-template-columns:1fr}.wizard-actions{border-radius:22px;display:grid;grid-template-columns:1fr 1fr}.date-ticket header,.date-ticket footer{font-size:.72rem}.gender-card span{height:52px}}
@media(max-width:390px){.activity-grid{grid-template-columns:repeat(2,1fr)}.wizard-step span:last-child{font-size:.65rem}.hero h1{font-size:2.65rem}}

/* v2.2 — date period, voice recorder, larger recipient switch */
body.lang-cs .hero h1{font-size:clamp(2.55rem,5.25vw,5.05rem);text-wrap:balance}
.language-rail{left:auto;right:max(16px,calc((100vw - 1280px)/2));top:90px;display:flex;gap:7px}
.language-pill{width:42px;height:42px;border-radius:999px}
.recipient-gender-switch{max-width:820px;width:100%;padding:7px;border-radius:28px;gap:7px;margin-bottom:14px}
.gender-card-content{height:74px!important;border-radius:22px!important;font-size:1.32rem!important;gap:11px!important}
.gender-heart{font-size:1.45rem;line-height:1}
.date-period-card h3{font-size:1.35rem;margin-bottom:20px}
.date-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.date-mode-option{position:relative}
.date-mode-option input{position:absolute;opacity:0;pointer-events:none}
.date-mode-option span{min-height:58px;border:2px solid #f6c6d8;border-radius:20px;display:flex;align-items:center;justify-content:center;padding:12px 18px;text-align:center;font-size:1.05rem;font-weight:900;color:#667084;cursor:pointer;transition:.18s;background:#fff}
.date-mode-option.is-selected span{border-color:var(--brand);color:var(--brand);background:#fff8fb;box-shadow:0 8px 22px rgba(239,63,121,.10)}
.any-date-note{display:flex;align-items:flex-start;gap:10px;margin-top:18px;padding:14px 16px;border-radius:17px;background:#fff6f9;color:var(--muted)}
.any-date-note p{margin:0;line-height:1.45}
.period-controls{margin-top:20px}
.period-controls[hidden],.any-date-note[hidden]{display:none!important}
.quick-period-label{font-weight:950;font-size:.78rem;color:#f08bb0;letter-spacing:.03em;margin-bottom:10px}
.quick-period-buttons{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:22px}
.quick-period-chip{border:1.5px solid #f4bed2;background:#fff;color:var(--brand);border-radius:999px;padding:10px 16px;font-weight:850;cursor:pointer;transition:.18s}
.quick-period-chip:hover,.quick-period-chip.is-active{background:var(--brand);border-color:var(--brand);color:#fff;transform:translateY(-1px)}
.period-date-fields{margin-top:4px}
.voice-recorder-card{display:grid;gap:17px}
.voice-card-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.voice-card-heading h3{font-size:1.3rem;margin:0 0 6px}
.voice-card-heading p{margin:0;color:var(--muted);line-height:1.5}
.voice-limit{background:#f2bf48;color:#604807;border-radius:999px;padding:5px 12px;font-size:.78rem;font-weight:950;white-space:nowrap}
.voice-controls{display:flex;flex-wrap:wrap;gap:10px}
.voice-button{border:1px solid #f0cad7;background:#fff;color:#596174;border-radius:999px;padding:12px 17px;font-weight:850;cursor:pointer;transition:.18s}
.voice-button.primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 8px 19px rgba(239,63,121,.2)}
.voice-button.danger{color:#b52d4d}
.voice-button:disabled{opacity:.42;cursor:not-allowed;box-shadow:none}
.voice-status{min-height:21px;color:var(--brand);font-weight:850}
.voice-status.is-error{color:#b4233d}
.voice-recorder-card audio{width:100%;max-width:520px}
.voice-recorder-card audio[hidden]{display:none}
.map-runtime-error{margin-top:10px;padding:12px 14px;border-radius:14px;background:#fff0f3;border:1px solid #f4bdca;color:#a72945;font-weight:750}
.public-voice-message{margin:18px auto;display:flex;align-items:center;gap:10px;background:color-mix(in srgb,var(--primary) 10%,var(--background));border-radius:18px;padding:12px 14px;max-width:390px}
.public-voice-message audio{width:100%;min-width:0}
.recipient-date-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left}
.recipient-date-fields label{display:grid;gap:6px;font-weight:850}
.recipient-date-fields input{width:100%;border:1px solid color-mix(in srgb,var(--text) 18%,transparent);border-radius:15px;padding:13px;font:inherit;background:color-mix(in srgb,var(--background) 84%,white);color:var(--text)}
.public-form-error{margin-top:8px;color:#b4233d;font-weight:850}
@media(max-width:900px){.language-rail{left:auto;right:18px;top:82px}.hero{padding-top:105px}}
@media(max-width:700px){.gender-card-content{height:66px!important;font-size:1.16rem!important}.date-mode-switch,.recipient-date-fields{grid-template-columns:1fr}.voice-card-heading{display:block}.voice-limit{display:inline-flex;margin-top:10px}.voice-controls{display:grid;grid-template-columns:1fr 1fr}.quick-period-buttons{gap:7px}.quick-period-chip{padding:9px 12px;font-size:.88rem}}

/* Ode mne v2.3 — финальный декор и кино-билет */
.final-effect-card{max-width:760px;margin-inline:auto}
.final-effect-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}
.final-effect-option{position:relative;min-height:118px;border:2px solid #f0dbe3;border-radius:22px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;cursor:pointer;transition:.2s ease}
.final-effect-option:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 45%,#f0dbe3)}
.final-effect-option input{position:absolute;opacity:0;pointer-events:none}
.final-effect-option.is-selected{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 7%,white);box-shadow:0 10px 28px rgba(91,42,64,.12)}
.final-effect-icon{font-size:2rem;line-height:1}
.final-effect-option strong{font-size:.94rem}
.cinema-stub-preview{border:0!important;background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 8%,white),#fff);box-shadow:inset 0 0 0 2px var(--brand);padding:18px!important;position:relative}
.cinema-stub-preview:before,.cinema-stub-preview:after{content:"";position:absolute;top:50%;width:22px;height:22px;border-radius:50%;background:#fff;transform:translateY(-50%)}
.cinema-stub-preview:before{left:-11px}.cinema-stub-preview:after{right:-11px}
.preview-ticket-topline{display:flex!important;justify-content:space-between;padding:0 0 12px!important;background:transparent!important;color:var(--brand)!important;font-size:.74rem;letter-spacing:.12em}
.cinema-stub-preview>strong{background:transparent!important;color:var(--text)!important;font-family:Georgia,"Times New Roman",serif;font-size:1.35rem!important;padding:12px 0!important}
.preview-ticket-names{padding:20px 8px!important;font-size:1.55rem!important}.preview-ticket-names span{color:var(--brand)}
.preview-ticket-code{display:grid!important;grid-template-columns:1fr 48px;gap:14px;align-items:center;padding:12px 0 0!important;border-top:1px dashed color-mix(in srgb,var(--brand) 35%,transparent)}
.preview-ticket-code>span:first-child{height:38px;background:repeating-linear-gradient(90deg,#1d1720 0 3px,transparent 3px 6px,#1d1720 6px 8px,transparent 8px 11px)}
.preview-qr{height:48px!important;background:repeating-conic-gradient(#1d1720 0 25%,#fff 0 50%) 0/9px 9px!important;border:4px solid #fff;box-shadow:0 0 0 1px #d9cbd1}

.ticket-page{position:relative;overflow-x:hidden;background:radial-gradient(circle at 20% 0%,color-mix(in srgb,var(--primary) 15%,transparent),transparent 36%),var(--background)}
.cinema-ticket-wrap{width:min(980px,100%);position:relative;z-index:2}
.cinema-ticket{--stub-width:180px;width:100%;display:grid;grid-template-columns:minmax(0,1fr) var(--stub-width);position:relative;background:#fff;border-radius:28px;box-shadow:0 28px 95px rgba(51,24,68,.22);overflow:hidden;border:1px solid color-mix(in srgb,var(--primary) 32%,#ded6e2)}
.cinema-ticket:before,.cinema-ticket:after{content:"";position:absolute;z-index:3;left:calc(100% - var(--stub-width));width:34px;height:34px;border-radius:50%;background:var(--background);transform:translateX(-50%)}
.cinema-ticket:before{top:-17px}.cinema-ticket:after{bottom:-17px}
.cinema-ticket-main{padding:30px 36px 24px;background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 5%,white),#fff 48%,color-mix(in srgb,var(--secondary) 12%,white));min-width:0}
.cinema-ticket-brand{display:flex;justify-content:space-between;gap:20px;color:var(--primary);font:800 .72rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.13em;text-transform:uppercase}
.cinema-ticket-heading{text-align:center;padding:28px 12px 26px;border-bottom:1px dashed color-mix(in srgb,var(--primary) 38%,transparent)}
.cinema-ticket-kicker{display:inline-block;color:var(--primary);font:900 .72rem/1.2 system-ui,sans-serif;letter-spacing:.18em;margin-bottom:10px}
.cinema-ticket-heading h1{margin:0;font-family:"Bodoni 72",Didot,"Times New Roman",serif;font-size:clamp(2.2rem,6vw,4.2rem);line-height:.95;font-weight:700;letter-spacing:-.045em;color:var(--text)}
.cinema-ticket-heading p{margin:18px 0 0;font:700 1.18rem/1.2 system-ui,sans-serif}.cinema-ticket-heading p span{color:var(--primary)}

.ticket-approval-status{
  width:fit-content;max-width:100%;margin:18px auto 0;padding:9px 14px 9px 10px;
  display:flex;align-items:center;justify-content:center;gap:9px;text-align:left;
  border:1px solid color-mix(in srgb,#24a56a 38%,transparent);border-radius:999px;
  background:color-mix(in srgb,#24a56a 9%,white);color:#176b49;
  box-shadow:0 8px 24px rgba(22,107,73,.08);
}
.ticket-approval-icon{
  width:25px;height:25px;flex:0 0 25px;display:grid;place-items:center;border-radius:50%;
  background:#24a56a;color:#fff;font:900 .82rem/1 system-ui,sans-serif;
}
.ticket-approval-copy{display:grid;gap:2px;min-width:0}
.ticket-approval-copy strong{font:800 .76rem/1.2 system-ui,sans-serif;letter-spacing:.01em}
.ticket-approval-copy small{font:650 .62rem/1.2 system-ui,sans-serif;opacity:.72}
.cinema-ticket-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 26px;padding-top:12px}
.cinema-ticket-field{display:grid;align-content:start;gap:6px;padding:18px 0;border-bottom:1px dashed #d9cedd;min-width:0}
.cinema-ticket-field:nth-last-child(-n+2){border-bottom:0}
.cinema-ticket-field-wide{grid-column:1/-1}
.cinema-ticket-field small{color:color-mix(in srgb,var(--text) 54%,transparent);font:900 .68rem/1 system-ui,sans-serif;letter-spacing:.17em}
.cinema-ticket-field strong{font-size:1.17rem;overflow-wrap:anywhere}.cinema-ticket-field span{font-size:.88rem;opacity:.68}
.ticket-machine-font{font-family:"Roboto Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace!important;font-weight:800!important;letter-spacing:.025em}
.cinema-ticket-barcode{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px;padding-top:18px;border-top:1px dashed color-mix(in srgb,var(--primary) 38%,transparent)}
.cinema-ticket-barcode img{display:block;width:100%;height:58px;object-fit:fill}.cinema-ticket-barcode span{font:700 .62rem/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;max-width:120px;overflow-wrap:anywhere;text-align:right;color:#766a79}
.cinema-ticket-stub{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:25px 20px;background:var(--primary);color:var(--accent);border-left:2px dashed color-mix(in srgb,var(--accent) 50%,transparent)}
.stub-label{font:900 .7rem/1 system-ui,sans-serif;letter-spacing:.2em}.cinema-ticket-stub>strong{font-family:"Bodoni 72",Didot,Georgia,serif;font-size:1.35rem;line-height:1.05}
.ticket-qr-link{width:108px;height:108px;background:#fff;padding:8px;border-radius:10px;box-shadow:0 8px 24px rgba(29,13,39,.22)}.ticket-qr-link img{width:100%;height:100%;display:block}
.cinema-ticket-stub small{font-size:.64rem;font-weight:900;letter-spacing:.12em;line-height:1.35}.stub-serial{font:700 .58rem/1.25 ui-monospace,SFMono-Regular,Consolas,monospace;opacity:.78;overflow-wrap:anywhere}
.ticket-route-button{justify-self:center;min-width:220px;text-align:center}
.final-effect-layer{position:fixed;inset:0;z-index:10;pointer-events:none;overflow:hidden}
.falling-decoration{position:absolute;top:-12vh;font-size:var(--fall-size);animation:odemne-fall var(--fall-duration) cubic-bezier(.2,.55,.35,1) var(--fall-delay) forwards;filter:drop-shadow(0 5px 5px rgba(52,21,61,.14));will-change:transform,opacity}
@keyframes odemne-fall{0%{transform:translate3d(0,-10vh,0) rotate(0);opacity:0}8%{opacity:1}100%{transform:translate3d(var(--fall-drift),115vh,0) rotate(var(--fall-rotate));opacity:.78}}
@media(max-width:760px){
  .final-effect-grid{grid-template-columns:1fr 1fr}
  .cinema-ticket{--stub-width:auto;grid-template-columns:1fr;overflow:visible;border-radius:24px}
  .cinema-ticket:before,.cinema-ticket:after{left:auto;top:auto;bottom:160px;transform:none;width:30px;height:30px}
  .cinema-ticket:before{left:-15px}.cinema-ticket:after{right:-15px}
  .cinema-ticket-main{padding:24px 20px 18px;border-radius:24px 24px 0 0}
  .cinema-ticket-stub{min-height:160px;border-left:0;border-top:2px dashed color-mix(in srgb,var(--accent) 50%,transparent);border-radius:0 0 24px 24px;display:grid;grid-template-columns:1fr 104px;grid-template-rows:auto auto auto;gap:7px 16px;text-align:left;justify-items:start}
  .ticket-qr-link{grid-column:2;grid-row:1/4;width:96px;height:96px;align-self:center}
  .cinema-ticket-stub small,.stub-serial{grid-column:1}
  .cinema-ticket-heading{padding-inline:0}.cinema-ticket-heading h1{font-size:2.5rem}
  .cinema-ticket-grid{gap:0 14px}.cinema-ticket-field strong{font-size:1rem}
  .cinema-ticket-barcode{grid-template-columns:1fr}.cinema-ticket-barcode span{text-align:left;max-width:none}
}
@media(prefers-reduced-motion:reduce){.falling-decoration{display:none}.final-effect-option{transition:none}}

/* Ode mne v2.4 — checkout, Stripe and account */
.site-header nav{display:flex;align-items:center;gap:16px}.header-logout{display:inline}.header-logout button{border:0;background:none;color:inherit;font:inherit;font-weight:750;cursor:pointer;padding:0}
.preview-checkout-button{position:fixed;right:18px;top:18px;z-index:50;background:#2f9f70;color:#fff;text-decoration:none;padding:12px 18px;border-radius:999px;font-weight:900;box-shadow:0 12px 30px rgba(28,95,68,.25)}
.preview-final-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.presentation-button.secondary{background:transparent!important;color:var(--button)!important;border:2px solid var(--button)}
.checkout-shell{width:min(1120px,calc(100% - 32px));margin:42px auto 80px;display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:30px;align-items:start}.checkout-main,.checkout-summary{background:#fff;border:1px solid #eadde5;border-radius:28px;box-shadow:0 22px 70px rgba(68,31,53,.09)}.checkout-main{padding:36px}.checkout-summary{padding:24px;position:sticky;top:90px}.checkout-back{display:inline-block;margin-bottom:24px;color:#716372;text-decoration:none;font-weight:800}.checkout-main h1{font-size:clamp(2rem,5vw,3.3rem);margin:.25em 0}.checkout-lead{max-width:660px;color:#716978;font-size:1.05rem;line-height:1.55}.checkout-form{margin-top:28px}.checkout-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.checkout-field{display:grid;gap:8px;font-weight:800}.checkout-field input{width:100%;border:1px solid #d9cdd6;border-radius:14px;padding:14px 15px;font:inherit;background:#fff}.checkout-field input:focus{outline:3px solid rgba(142,92,247,.16);border-color:#8e5cf7}.checkout-consents{display:grid;gap:14px;margin:26px 0}.checkout-consents label{display:flex;gap:11px;align-items:flex-start;line-height:1.4;font-size:.93rem}.checkout-consents input{margin-top:3px;width:18px;height:18px;flex:0 0 auto}.checkout-consents a{color:#8e5cf7}.optional-consent{opacity:.82}.checkout-pay-button{width:100%;border:0;border-radius:16px;padding:17px 20px;background:#8e5cf7;color:#fff;font:900 1.02rem/1 system-ui;cursor:pointer;box-shadow:0 14px 30px rgba(142,92,247,.24)}.checkout-pay-button:hover{transform:translateY(-1px)}.checkout-secure{text-align:center;color:#756b79;font-size:.88rem}.checkout-error,.field-error{color:#b52d4d}.checkout-error{background:#fff0f3;border:1px solid #efbdc9;padding:13px 15px;border-radius:14px;margin-bottom:16px}.field-error{font-size:.82rem;font-weight:750}.checkout-preview-ticket{background:linear-gradient(135deg,color-mix(in srgb,var(--checkout-primary) 12%,white),#fff);border:2px solid var(--checkout-primary);border-radius:20px;padding:22px;position:relative;overflow:hidden}.checkout-preview-ticket:before,.checkout-preview-ticket:after{content:"";position:absolute;top:50%;width:20px;height:20px;background:#fff;border-radius:50%;transform:translateY(-50%)}.checkout-preview-ticket:before{left:-11px}.checkout-preview-ticket:after{right:-11px}.checkout-preview-ticket small{color:var(--checkout-primary);font-weight:900;letter-spacing:.12em}.checkout-preview-ticket h2{font-family:Didot,Georgia,serif;font-size:2rem;margin:20px 0 8px}.checkout-preview-ticket p{margin:0;color:#635966}.checkout-summary dl{margin:20px 0}.checkout-summary dl div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #eee5eb}.checkout-summary dt{color:#776c78}.checkout-summary dd{margin:0;font-weight:900}.payment-method-note{background:#f7f3fb;padding:16px;border-radius:16px}.payment-method-note p{font-size:.88rem;line-height:1.45;margin:10px 0 0}.payment-icons{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.payment-icons img{display:block;width:auto;height:40px;max-width:calc(50% - 5px);border-radius:10px;box-shadow:0 5px 16px rgba(47,36,53,.09)}.mock-warning{margin-top:13px;background:#fff3bf;color:#6c5511;border-radius:10px;padding:10px;font-weight:800;font-size:.82rem}
.payment-result-shell{width:min(660px,calc(100% - 32px));margin:80px auto;text-align:center;background:#fff;border:1px solid #eadde5;border-radius:30px;padding:48px 32px;box-shadow:0 25px 80px rgba(67,30,53,.1)}.payment-result-shell h1{font-size:clamp(2rem,6vw,3.3rem);margin:18px 0 10px}.payment-result-shell p{color:#706675;font-size:1.05rem}.result-icon{width:74px;height:74px;margin:auto;border-radius:50%;display:grid;place-items:center;font-size:2.5rem;font-weight:900}.result-icon.success{background:#e8f8ef;color:#27855c}.result-icon.cancelled{background:#fff0f3;color:#bd3657}.result-loader{width:64px;height:64px;margin:auto;border-radius:50%;border:6px solid #eee5f7;border-top-color:#8e5cf7;animation:result-spin .9s linear infinite}.result-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:26px}.secondary-button{display:inline-block;border:2px solid #8e5cf7;color:#8e5cf7;text-decoration:none;padding:13px 20px;border-radius:14px;font-weight:900}@keyframes result-spin{to{transform:rotate(360deg)}}
.account-form-shell{width:min(520px,calc(100% - 32px));margin:70px auto;background:#fff;border:1px solid #eadde5;border-radius:28px;padding:34px;box-shadow:0 20px 70px rgba(65,31,51,.09)}.account-form-shell h1{font-size:2.2rem}.account-form{display:grid;gap:18px;margin:24px 0}.account-form label,.account-form p{display:grid;gap:8px;font-weight:800}.account-form input[type=email],.account-form input[type=password],.account-form input[type=text]{border:1px solid #d9cdd6;border-radius:14px;padding:14px;font:inherit}.account-check{grid-template-columns:auto 1fr!important;align-items:center}.account-check span{grid-column:2}.legal-shell{width:min(820px,calc(100% - 32px));margin:60px auto;background:#fff;padding:36px;border-radius:26px;border:1px solid #eadde5;line-height:1.7}.legal-warning{background:#fff4c7;padding:14px;border-radius:12px;font-weight:800}
@media(max-width:820px){.checkout-shell{grid-template-columns:1fr}.checkout-summary{position:static;order:-1}.checkout-fields{grid-template-columns:1fr}.preview-checkout-button{top:auto;bottom:18px;left:18px;right:18px;text-align:center}.presentation-body.preview-mode{padding-bottom:82px}}

/* v2.4.2 — activity response settings and dashboard deletion */
.activity-response-settings{margin-top:22px;padding:18px;border:1px solid #f0d9e1;border-radius:18px;background:#fff8fb;display:grid;gap:14px}.activity-multiple-toggle{display:flex;align-items:flex-start;gap:12px;cursor:pointer}.activity-multiple-toggle input{width:21px;height:21px;margin-top:2px;accent-color:var(--brand)}.activity-multiple-toggle span{display:grid;gap:4px}.activity-multiple-toggle small{color:var(--muted);line-height:1.4}.activity-max-field{display:flex;align-items:center;justify-content:space-between;gap:16px}.activity-max-field select{width:92px;padding:10px 12px;border:1px solid #efcfda;border-radius:12px;background:#fff}.activity-max-field[hidden]{display:none}.choice-help{margin:-4px 0 12px;opacity:.72}.choice-card{cursor:pointer;transition:border-color .15s ease,transform .15s ease,opacity .15s ease}.choice-card:has(input:checked),.choice-card.is-selected{border-color:var(--button);box-shadow:0 5px 16px color-mix(in srgb,var(--button) 16%,transparent)}.choice-card:has(input:disabled){opacity:.55;cursor:not-allowed}.confirm-date-button{background:var(--button)!important;color:var(--accent)!important;box-shadow:0 9px 22px rgba(20,20,20,.14)!important}.confirm-date-button:hover{box-shadow:0 12px 26px rgba(20,20,20,.18)!important}.delete-creation-form{margin:0}.delete-creation-button{border:0;background:transparent;color:#b3274b;text-decoration:underline;text-underline-offset:3px;padding:0;font:inherit;font-weight:800;cursor:pointer}.delete-creation-button:hover{color:#7f1733}.card-actions{align-items:center;flex-wrap:wrap}.ticket-activity-list{line-height:1.45}


/* v2.4.3: public answer controls, clean confirmation action and ticket stub */
.answer-area{
    width:min(420px,100%);
    height:180px;
    margin:0 auto;
    position:relative;
    display:block;
}
.answer-area .yes-button{
    position:absolute;
    left:30%;
    top:50%;
    transform:translate(-50%,-50%);
    margin:0;
    z-index:3;
    min-width:128px;
}
.answer-area .no-button{
    position:absolute;
    left:70%;
    top:50%;
    transform:translate(-50%,-50%);
    margin:0;
    z-index:2;
    min-width:104px;
    pointer-events:none;
    user-select:none;
    touch-action:none;
    transition:left .09s linear,top .09s linear;
    background:color-mix(in srgb,var(--background) 92%,white);
}
.confirm-date-action{
    display:flex;
    justify-content:center;
    align-items:center;
    margin-top:20px;
    padding:0;
    background:transparent!important;
    box-shadow:none!important;
    filter:none!important;
}
.confirm-date-button,
.confirm-date-button:hover,
.confirm-date-button:focus,
.confirm-date-button:active{
    margin:0!important;
    background:var(--button)!important;
    color:var(--accent)!important;
    box-shadow:none!important;
    filter:none!important;
}
.cinema-ticket-stub>.stub-validity{
    font-size:1.04rem;
    line-height:1.12;
    max-width:100%;
    padding-inline:8px;
    overflow-wrap:normal;
}
@media(max-width:520px){
    .answer-area{height:170px}
    .answer-area .yes-button{left:29%;min-width:116px;padding-inline:18px}
    .answer-area .no-button{left:72%;min-width:92px;padding-inline:15px}
}

/* v2.4.4 — acceptance recovery */
.confirmation-error{max-width:680px;margin:14px auto 0;background:color-mix(in srgb,#c83255 9%,white);border:1px solid color-mix(in srgb,#c83255 32%,white);color:#8f1f3c;border-radius:14px;padding:12px 14px;font-weight:750;line-height:1.4}

/* v2.4.5: infinitely evasive No button */
.answer-area .no-button{
    width:108px;
    min-width:108px;
    max-width:108px;
    height:48px;
    padding:0 12px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    transition:none !important;
    user-select:none;
    -webkit-user-select:none;
    touch-action:none;
    cursor:default;
}

/* v2.4.7: smooth, directional escape without jitter */
.answer-area{
    width:min(520px,calc(100vw - 28px));
    height:clamp(220px,32vh,300px);
}
.answer-area .no-button{
    transition:left .32s cubic-bezier(.2,.8,.25,1),top .32s cubic-bezier(.2,.8,.25,1);
    will-change:left,top;
}
@media(max-width:520px){
    .answer-area{height:240px}
}


/* v2.4.8: proximity-triggered random escape with fast start and soft stop */
.answer-area .no-button{
    transform:none !important;
    transition:left .52s cubic-bezier(.12,.82,.18,1),top .52s cubic-bezier(.12,.82,.18,1);
}


/* v2.4.9: keep the evasive button inside the invitation and show reactions below the question */
.answer-slide .slide-inner{
    max-width:420px;
    overflow:visible;
}
.no-reaction-message{
    min-height:1.55em;
    margin:10px auto 2px;
    max-width:390px;
    color:var(--primary);
    font-weight:800;
    line-height:1.35;
    opacity:0;
    transform:translateY(5px);
    transition:opacity .18s ease,transform .24s ease;
}
.no-reaction-message.is-visible{
    opacity:1;
    transform:translateY(0);
}
.answer-area{
    width:100%;
    max-width:420px;
    height:clamp(220px,31vh,280px);
    margin-inline:auto;
    overflow:hidden;
    box-sizing:border-box;
}
@media(max-width:520px){
    .answer-slide{padding-inline:16px}
    .answer-area{width:100%;max-width:100%;height:230px}
    .no-reaction-message{font-size:.95rem;padding-inline:8px}
}

/* v2.4.11 — owner return from preview */
.dashboard-return-button{border-color:color-mix(in srgb,var(--button) 55%,transparent)!important;background:color-mix(in srgb,var(--button) 8%,transparent)!important}
@media(max-width:620px){.preview-final-actions{display:grid!important;width:100%}.preview-final-actions .presentation-button{width:100%;text-align:center}}

@media (max-width:560px){.ticket-approval-status{border-radius:18px;padding:9px 12px 9px 9px}.ticket-approval-copy strong{font-size:.7rem}.ticket-approval-copy small{font-size:.58rem}}


/* v2.4.13 — ticket approval stamp */
.cinema-ticket-main{position:relative;}
.ticket-approval-status{display:none!important;}
.ticket-approval-stamp{
    position:absolute;
    left:62%;
    bottom:24px;
    width:148px;
    height:148px;
    border-radius:50%;
    border:3px solid rgba(197,152,45,.78);
    box-shadow:inset 0 0 0 8px rgba(248,221,120,.18), inset 0 0 0 16px rgba(197,152,45,.12);
    background:radial-gradient(circle at center, rgba(255,245,196,.18) 0%, rgba(255,245,196,.08) 54%, rgba(255,245,196,0) 55%);
    color:rgba(151,112,24,.95);
    transform:rotate(-14deg);
    display:grid;
    place-items:center;
    pointer-events:none;
    z-index:2;
}
.ticket-approval-stamp::before,.ticket-approval-stamp::after{
    content:"";
    position:absolute;
    inset:10px;
    border-radius:50%;
    border:1.5px dashed rgba(197,152,45,.55);
}
.ticket-approval-stamp::after{inset:22px;border-style:solid;opacity:.42;}
.ticket-approval-stamp-inner{
    width:100px;
    display:grid;
    gap:4px;
    text-align:center;
    line-height:1.08;
}
.ticket-approval-stamp-kicker{
    font:800 .52rem/1.1 Inter,system-ui,sans-serif;
    letter-spacing:.22em;
    text-transform:uppercase;
    opacity:.75;
}
.ticket-approval-stamp strong{
    font:900 .9rem/1.02 Inter,system-ui,sans-serif;
    text-transform:uppercase;
    letter-spacing:.03em;
}
.ticket-approval-stamp small{
    font:700 .54rem/1.18 Inter,system-ui,sans-serif;
    opacity:.82;
}
@media (max-width:980px){
  .ticket-approval-stamp{left:auto;right:28px;bottom:26px;width:132px;height:132px;}
  .ticket-approval-stamp-inner{width:92px;}
  .ticket-approval-stamp strong{font-size:.82rem;}
}
@media (max-width:700px){
  .ticket-approval-stamp{position:relative;left:auto;right:auto;bottom:auto;margin:18px auto 0;width:126px;height:126px;transform:rotate(-10deg);}
}


/* v2.5.0 — optional continuation step and recipient probability slider */
.wizard-progress{grid-template-columns:auto 1fr auto 1fr auto 1fr auto 1fr auto;max-width:920px;}
.continuation-editor-card{display:grid;gap:24px;background:linear-gradient(145deg,#fff,#fbf7ff);}
.continuation-toggle-card{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:16px;padding:20px;border:1px solid #eadcf1;border-radius:22px;background:#fff;cursor:pointer;transition:.22s ease;}
.continuation-toggle-card>input{position:absolute;opacity:0;pointer-events:none;}
.continuation-toggle-visual{width:60px;height:34px;border-radius:999px;background:#ded6e7;padding:4px;display:flex;align-items:center;transition:.22s ease;}
.continuation-toggle-visual i{display:block;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 3px 10px rgba(40,25,60,.18);transition:.22s ease;}
.continuation-toggle-copy{display:grid;gap:4px;text-align:left;}
.continuation-toggle-copy strong{font-size:1.08rem;}
.continuation-toggle-copy small{color:var(--muted);line-height:1.45;}
.continuation-editor-card.is-enabled .continuation-toggle-card{border-color:var(--brand);box-shadow:0 12px 30px color-mix(in srgb,var(--brand) 13%,transparent);}
.continuation-editor-card.is-enabled .continuation-toggle-visual{background:var(--brand);}
.continuation-editor-card.is-enabled .continuation-toggle-visual i{transform:translateX(26px);}
.continuation-editor-preview{position:relative;overflow:hidden;padding:30px 26px;border-radius:26px;text-align:center;background:radial-gradient(circle at 80% 10%,rgba(255,255,255,.7),transparent 30%),linear-gradient(145deg,#26173f,#7044b5 55%,#bb79da);color:#fff;box-shadow:0 24px 55px rgba(68,35,105,.22);transition:.28s ease;}
.continuation-editor-card:not(.is-enabled) .continuation-editor-preview{opacity:.36;filter:grayscale(.65);transform:scale(.985);}
.continuation-editor-preview::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.5px);background-size:38px 38px;opacity:.22;}
.continuation-editor-preview>*{position:relative;z-index:1;}
.continuation-moon{font-size:2.3rem;}
.continuation-editor-preview h3{font-family:Georgia,serif;font-size:clamp(1.35rem,3vw,2rem);max-width:650px;margin:12px auto 8px;}
.continuation-editor-preview p{max-width:560px;margin:0 auto 18px;opacity:.82;}
.continuation-demo-value{font:900 2.4rem/1 system-ui;margin-bottom:12px;}
.continuation-demo-track{width:min(520px,90%);height:12px;margin:auto;border-radius:999px;background:rgba(255,255,255,.25);overflow:hidden;}
.continuation-demo-track span{display:block;width:65%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ffd8ef,#fff3a8);}
.continuation-scale-labels{display:flex;justify-content:space-between;gap:20px;margin:10px auto 0;width:min(520px,90%);font-size:.72rem;font-weight:800;opacity:.78;}
.continuation-editor-preview>small{display:block;margin-top:18px;opacity:.72;}
.continuation-response-card{position:relative;overflow:hidden;margin:22px 0;padding:24px 20px;border-radius:24px;background:radial-gradient(circle at 85% 12%,color-mix(in srgb,var(--accent) 65%,transparent),transparent 27%),linear-gradient(145deg,color-mix(in srgb,var(--primary) 82%,#21152f),color-mix(in srgb,var(--secondary) 70%,#5d3486));color:var(--accent);box-shadow:0 18px 44px color-mix(in srgb,var(--primary) 25%,transparent);}
.continuation-response-card::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.6) 0 1px,transparent 1.5px);background-size:34px 34px;opacity:.2;pointer-events:none;}
.continuation-response-card>*{position:relative;z-index:1;}
.continuation-response-icon{font-size:2rem;}
.continuation-response-card h2{font-family:Georgia,serif;font-size:1.45rem;line-height:1.18;margin:8px 0;}
.continuation-response-card p{margin:0 auto 16px;max-width:360px;opacity:.84;}
.continuation-response-value{display:flex;align-items:baseline;justify-content:center;gap:3px;margin:10px 0 14px;font-weight:950;}
.continuation-response-value output{font-size:3rem;line-height:1;}
.continuation-response-value span{font-size:1.2rem;}
.continuation-range{--continuation-progress:50%;appearance:none;width:100%;height:12px;border-radius:999px;outline:0;background:linear-gradient(90deg,#fff0a4 0 var(--continuation-progress),rgba(255,255,255,.28) var(--continuation-progress) 100%);cursor:pointer;}
.continuation-range::-webkit-slider-thumb{appearance:none;width:30px;height:30px;border-radius:50%;background:#fff;border:4px solid color-mix(in srgb,var(--primary) 75%,#6e3fa2);box-shadow:0 5px 18px rgba(30,15,55,.3);}
.continuation-range::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;border:4px solid color-mix(in srgb,var(--primary) 75%,#6e3fa2);box-shadow:0 5px 18px rgba(30,15,55,.3);}
.continuation-response-card .continuation-scale-labels{width:100%;font-size:.68rem;text-align:left;}
.continuation-response-card .continuation-scale-labels span:last-child{text-align:right;}
.continuation-response-card>small{display:block;margin-top:16px;opacity:.72;line-height:1.35;}
.dashboard-card dl{grid-template-columns:repeat(auto-fit,minmax(105px,1fr));}
.dashboard-continuation{background:linear-gradient(145deg,#f3eaff,#fff0fa)!important;border:1px solid #dfc6f5;}
.dashboard-continuation dd{color:#7446b8;font-size:1.15rem;}
@media(max-width:700px){.wizard-progress{grid-template-columns:repeat(5,1fr);}.continuation-toggle-card{grid-template-columns:auto 1fr;}.continuation-toggle-card>input{display:none}.continuation-toggle-copy{grid-column:1/-1}.continuation-response-card{padding:22px 16px}.continuation-response-card h2{font-size:1.28rem}.continuation-scale-labels{font-size:.62rem}}


/* v2.5.1 — continuation is a separate presentation slide */
.accept-presentation-form{display:contents;}
.choice-slide .choice-form{
    overflow:visible;
    max-height:none;
    padding:0;
}
.choice-slide .choice-date-title{margin:20px 0 12px;}
.choice-slide .choice-list{gap:8px;}
.choice-slide .choice-card{padding:11px 14px;min-height:48px;align-items:center;}
.choice-slide .choice-card input{margin-top:0;flex:0 0 auto;}
.choice-slide .choice-help{margin:-4px 0 10px;}
.choice-slide .recipient-date-fields{margin-top:0;}
.choice-slide .meeting-summary{margin:12px 0;padding:12px 14px;}
.choice-next-button{margin-top:12px;}
.continuation-slide{overflow:hidden;}
.continuation-slide-inner{max-width:430px;display:grid;gap:18px;align-content:center;}
.continuation-slide .continuation-response-card{
    margin:0;
    padding:clamp(24px,5vh,40px) clamp(20px,5vw,34px);
    max-height:none;
}
.continuation-slide .continuation-response-card h2{
    font-size:clamp(1.45rem,5.6vw,2rem);
    margin:10px 0;
}
.continuation-slide .continuation-response-card p{margin-bottom:18px;}
.continuation-slide .continuation-response-value output{font-size:clamp(3.1rem,13vw,4.7rem);}
.continuation-slide-actions{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;}
.continuation-slide-actions .presentation-button{margin-top:0;}
@media(max-width:560px){
    .choice-slide{padding-inline:18px;}
    .choice-slide .slide-inner{max-width:390px;}
    .choice-slide h2{font-size:1.38rem;margin:0 0 8px;}
    .choice-slide .choice-date-title{margin:16px 0 9px;}
    .activity-choice-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;}
    .activity-choice-list .choice-card{padding:10px 11px;min-height:45px;border-radius:14px;}
    .activity-choice-list .choice-card span{min-width:0;}
    .activity-choice-list .choice-card strong{font-size:.91rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .activity-choice-list .choice-card small{display:none;}
    .choice-slide .recipient-date-fields{gap:8px;}
    .choice-slide .recipient-date-fields label{gap:5px;}
    .choice-slide .recipient-date-fields input{padding:10px 11px;min-height:46px;}
    .choice-slide .meeting-summary:empty{display:none;}
    .choice-next-button{margin-top:10px;padding:13px 22px;}
    .continuation-slide{padding:22px 18px;}
    .continuation-slide-inner{gap:14px;}
    .continuation-slide .continuation-response-card{padding:28px 18px;border-radius:26px;}
    .continuation-slide .continuation-response-icon{font-size:2.15rem;}
    .continuation-slide .continuation-response-card h2{font-size:1.55rem;line-height:1.13;}
    .continuation-slide .continuation-response-card p{font-size:.92rem;margin-bottom:15px;}
    .continuation-slide .continuation-response-value{margin:8px 0 15px;}
    .continuation-slide .continuation-response-value output{font-size:3.7rem;}
    .continuation-slide .continuation-response-card>small{margin-top:14px;font-size:.75rem;}
    .continuation-slide-actions{gap:8px;}
    .continuation-slide-actions .presentation-button{padding:12px 18px;font-size:.9rem;}
}
@media(max-height:720px) and (max-width:560px){
    .choice-slide{padding-top:22px;padding-bottom:18px;}
    .choice-slide h2{font-size:1.2rem;}
    .choice-slide .choice-card{min-height:40px;padding-block:8px;}
    .choice-slide .choice-date-title{margin-top:11px;}
    .choice-slide .meeting-summary{margin:8px 0;padding:9px 12px;}
    .continuation-slide .continuation-response-card{padding:20px 17px;}
    .continuation-slide .continuation-response-card h2{font-size:1.34rem;}
    .continuation-slide .continuation-response-value output{font-size:3rem;}
}


/* v2.5.2 logo integration */
.site-header{height:auto;min-height:82px;padding-top:10px;padding-bottom:10px;}
.brand-with-logo{display:inline-flex;align-items:center;text-decoration:none;}
.brand-logo{display:block;height:58px;width:auto;object-fit:contain;filter:drop-shadow(0 6px 16px rgba(127,79,57,.08));}
@media(max-width:700px){.site-header{min-height:72px;padding-top:8px;padding-bottom:8px;}.brand-logo{height:48px;max-width:clamp(150px,42vw,220px);}}


/* v2.5.3 — readable header logo */
.site-header{min-height:94px;padding-top:8px;padding-bottom:8px;}
.brand-with-logo{display:inline-flex;align-items:center;gap:12px;min-width:0;text-decoration:none;}
.brand-logo{display:none!important;}
.brand-logo-symbol{display:block;width:76px;height:76px;object-fit:contain;flex:0 0 auto;}
.brand-wordmark{font-family:Didot,"Bodoni MT",Georgia,serif;font-size:2rem;line-height:1;color:#b96f4e;font-weight:500;letter-spacing:.005em;white-space:nowrap;}
@media(max-width:700px){
  .site-header{min-height:78px;padding-top:6px;padding-bottom:6px;}
  .brand-with-logo{gap:8px;}
  .brand-logo-symbol{width:58px;height:58px;}
  .brand-wordmark{font-size:1.45rem;}
  .site-header nav{gap:10px;}
}
@media(max-width:430px){
  .brand-logo-symbol{width:50px;height:50px;}
  .brand-wordmark{font-size:1.25rem;}
}


/* v2.5.4 — large floating logo placement */
.site-header{
    height:58px!important;
    min-height:58px!important;
    padding-top:0!important;
    padding-bottom:0!important;
    overflow:visible;
}
.site-header nav{
    margin-left:auto;
    min-height:58px;
    display:flex;
    align-items:center;
}
.brand-with-logo{
    position:absolute;
    left:max(76px,calc((100vw - 1180px)/2));
    top:3px;
    z-index:40;
    display:block;
    width:126px;
    height:auto;
    text-decoration:none;
}
.brand-logo-full{
    display:block;
    width:126px;
    height:auto;
    object-fit:contain;
}
.brand-logo-symbol,.brand-wordmark{display:none!important;}
@media(max-width:900px){
    .brand-with-logo{left:18px;width:108px;}
    .brand-logo-full{width:108px;}
    .hero{padding-top:104px;}
}
@media(max-width:560px){
    .brand-with-logo{left:12px;top:4px;width:88px;}
    .brand-logo-full{width:88px;}
    .site-header nav{gap:9px;font-size:.88rem;}
    .hero{padding-top:96px;}
    .editor-shell,.dashboard-shell{padding-top:92px;}
}


/* v2.5.5 — larger overlapping logo, layout only (source image unchanged) */
.brand-with-logo{
    overflow:hidden!important;
    aspect-ratio:809 / 918;
    background:transparent!important;
    box-shadow:none!important;
}
.brand-logo-full{
    position:absolute!important;
    display:block!important;
    width:126.6%!important;
    max-width:none!important;
    height:auto!important;
    left:-14%!important;
    top:-35.2%!important;
    object-fit:initial!important;
    mix-blend-mode:multiply;
    filter:saturate(1.04) contrast(1.025);
    background:transparent!important;
}

/* Large logo on the landing page: it deliberately overlaps the eyebrow. */
.landing-page .site-header{
    position:relative;
    z-index:45;
}
.landing-page .brand-with-logo{
    left:max(18px,calc((100vw - 1180px)/2 - 18px))!important;
    top:-10px!important;
    width:clamp(158px,15vw,184px)!important;
    height:auto!important;
    z-index:48!important;
}
.landing-page .site-header nav{
    position:relative;
    z-index:52;
}
.landing-page .hero{
    position:relative;
}
.landing-page .hero-copy .eyebrow{
    position:relative;
    z-index:1;
}

/* Other pages keep the same logo but in a more compact cropped presentation. */
body:not(.landing-page) .brand-with-logo{
    width:118px!important;
    height:auto!important;
    top:-5px!important;
}

@media(max-width:900px){
    .landing-page .brand-with-logo{
        left:12px!important;
        top:-7px!important;
        width:154px!important;
    }
    .landing-page .hero{
        padding-top:112px!important;
    }
}
@media(max-width:560px){
    .landing-page .brand-with-logo{
        left:6px!important;
        top:-3px!important;
        width:126px!important;
    }
    .landing-page .hero{
        padding-top:104px!important;
    }
    body:not(.landing-page) .brand-with-logo{
        width:92px!important;
    }
}

/* v2.5.6 — use the supplied transparent PNG and show it completely */
.brand-with-logo,
.landing-page .brand-with-logo,
body:not(.landing-page) .brand-with-logo{
    overflow:visible!important;
    aspect-ratio:auto!important;
    height:auto!important;
    background:transparent!important;
    box-shadow:none!important;
}
.brand-logo-full,
.landing-page .brand-logo-full,
body:not(.landing-page) .brand-logo-full{
    position:static!important;
    inset:auto!important;
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    object-fit:contain!important;
    object-position:center!important;
    mix-blend-mode:normal!important;
    filter:none!important;
    background:transparent!important;
}
.landing-page .brand-with-logo{
    left:max(18px,calc((100vw - 1180px)/2 - 20px))!important;
    top:0!important;
    width:clamp(170px,17vw,205px)!important;
    z-index:48!important;
}
.landing-page .hero-copy{
    padding-top:82px;
}
body:not(.landing-page) .brand-with-logo{
    top:2px!important;
    width:128px!important;
}
@media(max-width:900px){
    .landing-page .brand-with-logo{
        left:12px!important;
        top:2px!important;
        width:156px!important;
    }
    .landing-page .hero-copy{
        padding-top:34px;
    }
}
@media(max-width:560px){
    .landing-page .brand-with-logo{
        left:8px!important;
        top:3px!important;
        width:128px!important;
    }
    .landing-page .hero-copy{
        padding-top:12px;
    }
    body:not(.landing-page) .brand-with-logo{
        width:96px!important;
    }
}

/* v2.5.8 — centered, 30% smaller pink logo */
.site-header{
    position:relative;
    overflow:visible;
}
.brand-with-logo,
.landing-page .brand-with-logo,
body:not(.landing-page) .brand-with-logo{
    position:absolute!important;
    left:50%!important;
    right:auto!important;
    transform:translateX(-50%)!important;
    margin:0!important;
    overflow:visible!important;
    background:transparent!important;
    box-shadow:none!important;
    z-index:48!important;
}
.landing-page .brand-with-logo{
    top:0!important;
    width:clamp(119px,12vw,144px)!important;
}
body:not(.landing-page) .brand-with-logo{
    top:2px!important;
    width:90px!important;
}
.brand-logo-full,
.landing-page .brand-logo-full,
body:not(.landing-page) .brand-logo-full{
    display:block!important;
    position:static!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    object-fit:contain!important;
    object-position:center!important;
    filter:none!important;
    mix-blend-mode:normal!important;
    background:transparent!important;
}
@media(max-width:900px){
    .landing-page .brand-with-logo{
        top:2px!important;
        width:110px!important;
    }
    body:not(.landing-page) .brand-with-logo{
        width:82px!important;
    }
}
@media(max-width:560px){
    .landing-page .brand-with-logo{
        top:3px!important;
        width:90px!important;
    }
    body:not(.landing-page) .brand-with-logo{
        width:72px!important;
    }
}

/* v2.5.9 — interactive landing showcase */
.landing-showcase{
    width:min(620px,calc(100% - 32px));
    margin:18px auto 110px;
    text-align:center;
}
.landing-showcase-heading{margin-bottom:22px;}
.landing-showcase-heading h2{
    margin:0;
    font-size:clamp(1.8rem,4vw,2.65rem);
    line-height:1.12;
    letter-spacing:-.035em;
}
.landing-showcase-heading h2 strong{color:var(--brand);white-space:nowrap;}
.landing-showcase-heading p{
    margin:18px 0 0;
    font-size:1.05rem;
    font-weight:850;
    color:var(--ink);
}
.showcase-invitation-card{
    width:min(460px,100%);
    margin:0 auto;
    overflow:hidden;
    border:1px solid #f1ceda;
    border-radius:32px;
    background:#fff;
    box-shadow:0 25px 70px rgba(103,43,66,.13);
}
.showcase-media{
    aspect-ratio:1 / .92;
    overflow:hidden;
    background:#f6c4cd;
}
.showcase-media video{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
.showcase-question-area{
    position:relative;
    min-height:190px;
    padding:20px 18px 18px;
    background:#fff;
    overflow:hidden;
}
.showcase-question{
    margin:0;
    font-size:1.02rem;
    font-weight:900;
}
.showcase-answer-zone{
    position:relative;
    height:112px;
    margin-top:14px;
}
.showcase-yes-button,
.showcase-no-button{
    min-width:142px;
    height:58px;
    border-radius:20px;
    font:900 1.02rem/1 inherit;
}
.showcase-yes-button{
    position:absolute;
    left:18px;
    top:18px;
    border:0;
    color:#fff;
    background:linear-gradient(135deg,var(--brand),#ff6b9d);
    box-shadow:0 12px 25px rgba(239,63,121,.24);
}
.showcase-no-button{
    position:absolute;
    left:calc(100% - 160px);
    top:18px;
    border:2px solid #ff80ad;
    color:var(--brand-dark);
    background:#fff;
    transition:left .46s cubic-bezier(.16,.82,.25,1),top .46s cubic-bezier(.16,.82,.25,1);
    will-change:left,top;
    user-select:none;
}
.showcase-ready{
    margin:30px 0 16px;
    color:var(--muted);
}
.showcase-start-actions{
    display:grid;
    gap:12px;
    width:min(460px,100%);
    margin:0 auto;
}
.showcase-start-actions form{margin:0;}
.showcase-start-button{
    width:100%;
    border:0;
    border-radius:24px;
    padding:17px 22px;
    background:linear-gradient(135deg,var(--brand),#ff6699);
    color:#fff;
    font:900 1.08rem/1.2 inherit;
    cursor:pointer;
    box-shadow:0 13px 28px rgba(239,63,121,.23);
    transition:transform .18s ease,box-shadow .18s ease;
}
.showcase-start-button:hover{
    transform:translateY(-2px);
    box-shadow:0 17px 34px rgba(239,63,121,.29);
}
@media(max-width:560px){
    .landing-showcase{margin-top:4px;margin-bottom:78px;}
    .landing-showcase-heading h2{font-size:1.75rem;}
    .showcase-invitation-card{border-radius:26px;}
    .showcase-question-area{min-height:178px;padding-inline:14px;}
    .showcase-answer-zone{height:105px;}
    .showcase-yes-button,.showcase-no-button{min-width:124px;height:54px;font-size:.96rem;}
    .showcase-yes-button{left:10px;}
}


/* v2.6.0 — continuation skip, secure sharing and narrower ticket */
.continuation-skip-option{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:fit-content;
    max-width:100%;
    margin:18px auto 0;
    padding:10px 14px;
    border:1px solid rgba(255,255,255,.42);
    border-radius:999px;
    background:rgba(255,255,255,.12);
    color:inherit;
    font-size:.82rem;
    font-weight:850;
    cursor:pointer;
}
.continuation-skip-option input{width:18px;height:18px;accent-color:var(--accent);}
.continuation-response-card.is-skipped .continuation-range,
.continuation-response-card.is-skipped .continuation-scale-labels{opacity:.3;}
.continuation-response-card.is-skipped .continuation-response-value{opacity:.72;}
.copy-invitation-link{
    border:0;
    background:transparent;
    color:var(--brand-dark);
    padding:0;
    font:inherit;
    font-weight:800;
    text-decoration:underline;
    text-underline-offset:3px;
    cursor:pointer;
}
.copy-invitation-link.is-copied{color:#1f815a;}
.copy-link-status{font-size:.78rem;font-weight:750;color:#1f815a;}
.cinema-ticket-wrap{width:min(720px,100%);}
.cinema-ticket{--stub-width:150px;}
.cinema-ticket-main{padding:25px 28px 20px;}
.cinema-ticket-heading{padding:22px 8px 21px;}
.cinema-ticket-heading h1{font-size:clamp(2rem,5vw,3.35rem);}
.cinema-ticket-grid{gap:0 20px;}
.cinema-ticket-field{padding:14px 0;}
.cinema-ticket-stub{padding:22px 14px;gap:13px;}
.ticket-qr-link{width:94px;height:94px;}
.ticket-approval-stamp{right:18px!important;left:auto!important;width:120px;height:120px;bottom:20px;}
.ticket-approval-stamp-inner{width:84px;}
.ticket-approval-stamp strong{font-size:.73rem;}
.ticket-approval-stamp small{font-size:.48rem;}
@media(max-width:760px){
    .cinema-ticket-wrap{width:min(620px,100%);}
    .cinema-ticket-main{padding:22px 18px 17px;}
    .ticket-approval-stamp{position:relative!important;right:auto!important;bottom:auto!important;width:118px;height:118px;}
}


/* v2.6.1 — large activity illustrations */
.activity-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:18px!important;
}
.activity-card{
    min-height:0!important;
    padding:10px!important;
    gap:10px!important;
    align-content:start!important;
    border-radius:22px!important;
}
.activity-card-image{
    display:block;
    width:100%;
    aspect-ratio:1 / 1;
    object-fit:cover;
    border-radius:16px;
    background:#fde7ef;
}
.activity-card strong{
    min-height:2.3em;
    display:grid;
    place-items:center;
    font-size:1rem!important;
    line-height:1.15;
}
.custom-activity-card .activity-placeholder{
    width:100%;
    height:auto!important;
    aspect-ratio:1 / 1;
    border-radius:16px;
}
.activity-choice-list{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px!important;
}
.activity-choice-list .activity-choice-card{
    position:relative;
    display:grid!important;
    grid-template-columns:1fr!important;
    align-content:start!important;
    gap:7px!important;
    min-width:0;
    min-height:0!important;
    padding:7px!important;
    border-radius:15px!important;
    text-align:center;
}
.activity-choice-card input{
    position:absolute;
    z-index:3;
    top:10px;
    right:10px;
    width:18px;
    height:18px;
    margin:0!important;
    accent-color:var(--button);
    filter:drop-shadow(0 1px 2px rgba(0,0,0,.15));
}
.activity-choice-image,
.activity-choice-placeholder{
    display:grid;
    width:100%;
    aspect-ratio:1 / 1;
    object-fit:cover;
    place-items:center;
    border-radius:11px;
    background:color-mix(in srgb,var(--primary) 12%,white);
}
.activity-choice-placeholder{
    font-size:2rem;
    color:var(--primary);
}
.activity-choice-copy{
    min-width:0;
    display:grid!important;
    place-items:center;
    padding:0 2px 3px;
}
.activity-choice-copy strong{
    display:block;
    max-width:100%;
    font-size:.78rem!important;
    line-height:1.15;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
}
.activity-choice-copy small{display:none!important;}
@media(max-width:700px){
    .activity-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:12px!important;
    }
    .activity-card{padding:8px!important;}
    .activity-card strong{font-size:.92rem!important;}
}
@media(max-width:390px){
    .activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
    .activity-choice-list{gap:7px!important;}
    .activity-choice-list .activity-choice-card{padding:5px!important;}
    .activity-choice-copy strong{font-size:.7rem!important;}
}

/* Ode mne v2.6.2 — mobile editor and preview action fixes */
.wizard-actions [data-preview-button]{white-space:nowrap}
@media(max-width:700px){
  .wizard-actions{justify-content:center;flex-wrap:nowrap;border-radius:24px;padding:8px;gap:7px}
  .wizard-actions .primary-button,.wizard-actions .secondary-button{min-width:0;padding:12px 11px;font-size:.85rem;white-space:nowrap}
  .wizard-actions [data-preview-button]{flex:0 1 auto}
}
@media(max-width:820px){
  .preview-checkout-button{bottom:calc(18px + env(safe-area-inset-bottom))}
  .presentation-body.preview-mode .slide{padding-bottom:calc(105px + env(safe-area-inset-bottom))}
}


/* Ode mne v2.6.3 — final preview actions, paid-link copy and ticket map */
.preview-checkout-button{display:none!important}
.preview-final-actions{
    width:min(620px,100%);
    margin:24px auto 0;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    align-items:stretch;
}
.preview-final-actions .presentation-button{
    width:100%;
    min-width:0;
    min-height:52px;
    margin:0;
    padding:13px 16px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    white-space:normal;
    line-height:1.15;
}
.continuation-slide-actions.preview-final-actions{display:grid!important}
.copy-payment-link-button{
    appearance:none;
    background:#fff;
    font:inherit;
    cursor:pointer;
}
.copy-payment-link-button.is-copied{border-color:#27855c;color:#27855c;background:#eefaf3}
.copy-payment-status{display:block;min-height:1.2em;margin-top:14px;color:#27855c;font-size:.86rem;font-weight:800}

.cinema-ticket{--stub-width:166px}
.cinema-ticket-stub{padding-inline:15px;overflow:hidden}
.stub-validity{
    display:block;
    width:100%;
    max-width:100%;
    padding:0 2px;
    box-sizing:border-box;
    font-size:1.05rem!important;
    line-height:1.12!important;
    overflow-wrap:anywhere;
    word-break:normal;
    hyphens:auto;
}
.ticket-place-field{gap:9px}
.ticket-place-map{
    width:100%;
    height:145px;
    margin:2px 0 4px;
    overflow:hidden;
    border:1px solid color-mix(in srgb,var(--primary) 28%,#d9cedd);
    border-radius:16px;
    background:linear-gradient(135deg,#eee9ef,#f8f6f8);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.65);
}
.ticket-place-map.is-error::after{
    content:"Map";
    height:100%;
    display:grid;
    place-items:center;
    color:#766a79;
    font-weight:850;
}
.ticket-place-title{font-size:1rem!important}
.cinema-ticket-barcode{padding-right:132px}

@media(max-width:760px){
    .preview-final-actions{grid-template-columns:1fr;width:100%;gap:10px}
    .cinema-ticket{--stub-width:auto}
    .stub-validity{font-size:1rem!important;text-align:left}
    .ticket-place-map{height:135px}
    .cinema-ticket-barcode{padding-right:0}
}


/* v2.6.6 — stable ticket layout and vertical landing timeline */
.ticket-place-map-link{display:block;text-decoration:none}
.ticket-place-open-link{display:inline-flex;align-items:center;gap:6px;margin-top:10px;color:var(--button);font-size:.88rem;font-weight:800;text-decoration:none}
.ticket-page-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.ticket-action-button{min-width:220px;text-align:center}
.cinema-ticket-wrap{width:min(1040px,100%)}
.cinema-ticket{--stub-width:190px;align-items:stretch}
.cinema-ticket-main{padding:32px 38px 26px}
.cinema-ticket-stub{padding:24px 16px;gap:14px}
.stub-validity{font-size:.98rem!important;line-height:1.1!important;text-align:center}
.ticket-qr-link{width:100px;height:100px}
.cinema-ticket-barcode{padding-right:138px}
.ticket-place-map{height:160px;border-radius:18px}
.ticket-place-title{font-size:1.02rem!important;line-height:1.35}
.ticket-place-coordinates{display:block;color:var(--muted);font-size:.84rem;line-height:1.35}
.ticket-approval-stamp{left:auto;right:26px;bottom:22px}

.landing-steps-section{max-width:1240px;margin:0 auto 112px;padding:0 28px}
.landing-steps-heading{text-align:center;max-width:820px;margin:0 auto 46px}
.landing-steps-kicker{display:inline-block;margin-bottom:10px;color:var(--brand);font-size:.76rem;font-weight:950;letter-spacing:.24em}
.landing-steps-heading h2{font-size:clamp(2.35rem,4.8vw,3.65rem);margin:0 0 .28em;letter-spacing:-.04em}
.landing-steps-heading p{margin:0;color:var(--muted);font-size:1.08rem;line-height:1.65}
.landing-timeline{position:relative;max-width:1160px;margin:0 auto;padding:18px 0 0}
.landing-timeline-spine{position:absolute;z-index:0;left:50%;top:0;bottom:0;width:12px;transform:translateX(-50%);border-radius:999px;background:linear-gradient(180deg,#fff 0%,#f7dce6 18%,#e9dffb 48%,#d9f4ea 75%,#fff0cc 100%);box-shadow:inset 0 0 0 1px rgba(80,44,67,.08),0 12px 32px rgba(101,59,84,.12)}
.landing-timeline-story{position:relative;z-index:1;max-width:480px;margin:0 auto 34px;padding:18px;border-radius:34px;background:#fff;border:1px solid rgba(219,185,200,.65);box-shadow:0 22px 48px rgba(86,53,70,.12);text-align:center}
.landing-timeline-story::before{content:"";position:absolute;left:50%;top:-22px;transform:translateX(-50%);width:18px;height:18px;border-radius:50%;background:#ff7ba5;box-shadow:0 0 0 8px rgba(255,255,255,.92),0 10px 22px rgba(143,73,103,.24)}
.landing-timeline-story-badge{display:inline-flex;align-items:center;justify-content:center;margin-bottom:14px;padding:8px 16px;border-radius:999px;background:linear-gradient(135deg,#fff3f7 0%,#fbeaf8 100%);color:#d54888;font-size:.76rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.landing-timeline-story-media{max-width:390px;margin:0 auto;border-radius:26px;overflow:hidden;background:linear-gradient(180deg,#fff7fb 0%,#fff 100%);box-shadow:inset 0 0 0 1px rgba(224,183,198,.45)}
.landing-timeline-story-media img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}
.landing-timeline-story p{margin:16px 8px 0;font-size:1.03rem;line-height:1.55;color:#604d5a;font-weight:700}
.landing-timeline-story-alt{max-width:220px;margin-top:4px;margin-bottom:24px;padding:12px 18px}
.landing-timeline-story-alt::before{display:none}
.landing-timeline-story-alt .landing-timeline-story-badge{margin-bottom:0}
.landing-timeline-card p{margin:12px auto 0;max-width:30ch;color:rgba(255,255,255,.96);font-size:1rem;line-height:1.55;font-weight:600;text-wrap:balance}
.landing-timeline-item-alt{min-height:360px}
.landing-timeline-card-alt{min-height:340px}
.landing-timeline-node-alt span{font-size:1rem;letter-spacing:.08em}
.landing-timeline-item{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 116px minmax(0,1fr);align-items:center;min-height:320px;margin-bottom:30px}
.landing-timeline-node{grid-column:2;display:grid;place-items:center;position:relative;z-index:3}
.landing-timeline-node span{position:relative;z-index:2;display:grid;place-items:center;width:74px;height:74px;border-radius:50%;background:#fff;border:5px solid #fff;box-shadow:0 0 0 2px rgba(81,56,73,.2),0 14px 32px rgba(60,34,51,.16);font-size:1.16rem;font-weight:950;color:#5d4b59;letter-spacing:.03em}
.landing-timeline-card{position:relative;display:grid;grid-template-columns:1fr;align-content:start;justify-items:center;gap:18px;min-height:300px;padding:20px 22px 24px;border-radius:32px;color:#fff;border:1px solid rgba(255,255,255,.48);box-shadow:0 26px 56px rgba(67,34,54,.17);overflow:hidden;text-align:center}
.landing-timeline-card::before{content:"";position:absolute;inset:11px;border-radius:24px;border:1px solid rgba(255,255,255,.24);pointer-events:none}
.landing-timeline-card::after{content:"";position:absolute;width:128px;height:128px;border-radius:50%;right:-38px;top:-44px;background:rgba(255,255,255,.11);box-shadow:-32px 66px 0 rgba(255,255,255,.055)}
.landing-timeline-visual{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;width:min(100%,260px);padding:10px;border-radius:26px;background:rgba(255,255,255,.18);box-shadow:inset 0 1px 1px rgba(255,255,255,.28),0 12px 24px rgba(33,17,29,.12)}
.landing-timeline-visual img{display:block;width:100%;max-width:240px;aspect-ratio:1/1;height:auto;object-fit:cover;border-radius:20px;background:#fff}
.landing-timeline-body{position:relative;z-index:2;width:100%}
.landing-timeline-card strong{display:block;font-size:clamp(1.08rem,1.85vw,1.3rem);line-height:1.4;letter-spacing:-.015em;text-wrap:balance;max-width:22ch;margin:0 auto}
.landing-timeline-item.is-right .landing-timeline-card{grid-column:3}
.landing-timeline-item.is-left .landing-timeline-card{grid-column:1}
.landing-timeline-item.is-right .landing-timeline-card{margin-left:28px}
.landing-timeline-item.is-left .landing-timeline-card{margin-right:28px}
.landing-timeline-node::before,.landing-timeline-node::after{content:"";position:absolute;top:50%;width:46px;border-top:5px dashed rgba(230,137,166,.82);transform:translateY(-50%);z-index:0}
.landing-timeline-item.is-right .landing-timeline-node::after{left:82px}
.landing-timeline-item.is-left .landing-timeline-node::before{right:82px}
.card-coral{background:linear-gradient(135deg,#ff5f86 0%,#ff8d61 100%)}
.card-sky{background:linear-gradient(135deg,#526cff 0%,#4bc9f2 100%)}
.card-violet{background:linear-gradient(135deg,#7c58f5 0%,#cd5de7 100%)}
.card-green{background:linear-gradient(135deg,#15bd88 0%,#70d96f 100%)}
.card-amber{background:linear-gradient(135deg,#ff8d55 0%,#f3bf45 100%)}
.card-rose{background:linear-gradient(135deg,#ff6f9b 0%,#ff9db9 100%)}
.card-peach{background:linear-gradient(135deg,#ff9a73 0%,#f7b1a2 100%)}

.landing-telegram-section{max-width:1280px;margin:0 auto 72px;padding:0 24px}
.landing-telegram-intro{text-align:center;max-width:900px;margin:0 auto 30px}
.landing-telegram-or{display:inline-flex;align-items:center;justify-content:center;padding:12px 28px;border-radius:999px;background:linear-gradient(135deg,#fff5f8,#ffffff);border:2px solid rgba(239,63,121,.18);box-shadow:0 14px 32px rgba(187,112,145,.16);font-size:1.25rem;font-weight:900;letter-spacing:.16em;color:#ef3f79;margin-bottom:18px}
.landing-telegram-intro h2{margin:0 0 14px;font-size:2.4rem;line-height:1.1;color:#2d2230}
.landing-telegram-intro p{margin:0 auto;font-size:1.18rem;line-height:1.7;color:#6e5d67;max-width:760px;font-weight:600}
.landing-telegram-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:stretch}
.landing-telegram-card{background:linear-gradient(180deg,#fff8fb 0%,#ffffff 100%);border:1px solid rgba(236,201,216,.95);border-radius:34px;padding:22px;box-shadow:0 16px 38px rgba(171,118,145,.12);display:flex;flex-direction:column;gap:18px;height:100%;box-sizing:border-box}
.landing-telegram-card-visual{background:rgba(255,255,255,.8);border-radius:26px;padding:12px;box-shadow:inset 0 0 0 1px rgba(240,211,223,.8)}
.landing-telegram-card-visual img{display:block;width:100%;border-radius:20px;aspect-ratio:1/1;object-fit:cover}
.landing-telegram-card-body strong{display:block;margin:0 0 12px;font-size:1.45rem;line-height:1.25;color:#2f2330}
.landing-telegram-card-body p{margin:0;font-size:1.08rem;line-height:1.72;color:#695863;font-weight:600}

@media(max-width:980px){
  .cinema-ticket-wrap{width:min(760px,100%)}
  .cinema-ticket{--stub-width:170px}
  .cinema-ticket-main{padding:28px 28px 22px}
  .cinema-ticket-barcode{padding-right:120px}
  .ticket-approval-stamp{right:18px;bottom:18px;width:126px;height:126px}
  .landing-timeline-item{grid-template-columns:minmax(0,1fr) 96px minmax(0,1fr);min-height:296px}
  .landing-timeline-card{grid-template-columns:1fr;padding:20px 18px 22px;gap:16px;min-height:276px}
  .landing-timeline-visual img{max-width:200px}
  .landing-timeline-node span{width:68px;height:68px;font-size:1.06rem}
}
@media(max-width:760px){
  .ticket-page-actions{display:grid;grid-template-columns:1fr;width:100%}
  .ticket-action-button{min-width:0;width:100%}
  .cinema-ticket{--stub-width:auto}
  .cinema-ticket-main{padding:24px 20px 18px}
  .cinema-ticket-stub{padding:20px 18px}
  .stub-validity{font-size:1rem!important;text-align:left}
  .ticket-place-map{height:135px}
  .cinema-ticket-barcode{padding-right:0}
  .landing-steps-section{padding:0 16px;margin-bottom:78px}
  .landing-steps-heading{margin-bottom:32px}
  .landing-timeline{padding:12px 0 0 52px;max-width:100%;overflow:hidden}
  .landing-timeline-spine{left:18px;transform:none;width:8px;top:0;bottom:120px}
  .landing-timeline-story{max-width:none;margin:0 0 24px;padding:14px;text-align:center}
  .landing-timeline-story::before{left:-34px;transform:none;top:22px;width:16px;height:16px;box-shadow:0 0 0 6px rgba(255,255,255,.92),0 8px 18px rgba(143,73,103,.22)}
  .landing-timeline-story-media{max-width:100%;margin:0 auto}
  .landing-timeline-item{display:block;position:relative;min-height:0;margin:0 0 22px;padding:0}
  .landing-timeline-node{position:absolute;left:-52px;top:50%;transform:translateY(-50%)}
  .landing-timeline-node span{width:52px;height:52px;border-width:4px;font-size:.92rem}
  .landing-timeline-empty{display:none}
  .landing-timeline-item.is-right .landing-timeline-card,.landing-timeline-item.is-left .landing-timeline-card{margin:0;min-height:0}
  .landing-timeline-node::before,.landing-timeline-node::after{width:18px;border-top-width:4px}
  .landing-timeline-item.is-right .landing-timeline-node::after,.landing-timeline-item.is-left .landing-timeline-node::before{left:42px;right:auto}
  .landing-timeline-card{width:100%;box-sizing:border-box;padding:16px;border-radius:24px;min-height:0;gap:14px}
  .landing-timeline-visual{min-height:0;width:min(100%,280px);margin:0 auto;padding:8px}
  .landing-timeline-visual img{max-width:none;width:100%;aspect-ratio:1/1}
  .landing-timeline-card strong{font-size:1rem;max-width:100%}
  .landing-timeline-card p{font-size:.95rem;max-width:100%}
  .landing-telegram-section{padding:0 16px;margin-bottom:62px}
  .landing-telegram-intro{margin-bottom:22px}
  .landing-telegram-or{font-size:1.02rem;padding:10px 22px;letter-spacing:.12em;margin-bottom:14px}
  .landing-telegram-intro h2{font-size:1.75rem;margin-bottom:10px}
  .landing-telegram-intro p{font-size:1rem;line-height:1.6}
  .landing-telegram-grid{grid-template-columns:1fr;gap:18px}
  .landing-telegram-card{padding:16px;border-radius:24px;gap:14px}
  .landing-telegram-card-visual{padding:10px;border-radius:20px}
  .landing-telegram-card-body strong{font-size:1.2rem;margin-bottom:8px}
  .landing-telegram-card-body p{font-size:1rem;line-height:1.62}
}

/* Ode mne v2.7.4 — favicon release, balanced map editor and centered wizard actions */
.meeting-mode-field{max-width:520px;margin:0 0 24px}
.meeting-map-layout{grid-template-columns:minmax(300px,.88fr) minmax(430px,1.12fr);gap:32px;align-items:start}
.meeting-place-fields{align-content:start;padding-top:2px}
.meeting-map-column{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);align-content:start}
.meeting-map-heading{display:grid;gap:6px;min-height:67px;margin-bottom:12px}
.meeting-map-heading h3{margin:0;font-size:1.23rem;line-height:1.25}
.meeting-map-heading .section-note{font-size:.98rem;line-height:1.45}
.meeting-map-column .google-map,.meeting-map-column .map-placeholder{height:310px;margin-top:0;border-radius:22px}
.meeting-map-column .external-content-notice{min-height:310px;margin:0}
.meeting-map-column .map-runtime-error{margin-top:10px}
.wizard-actions{justify-content:center;width:fit-content;min-width:430px;max-width:100%;margin-inline:auto;padding:9px 12px}
.wizard-actions .primary-button,.wizard-actions .secondary-button{min-width:140px}

@media(max-width:900px){
  .meeting-map-layout{grid-template-columns:1fr;gap:24px}
  .meeting-mode-field{max-width:none}
  .meeting-map-heading{min-height:0;margin-bottom:10px}
  .meeting-map-column .google-map,.meeting-map-column .map-placeholder,.meeting-map-column .external-content-notice{height:350px;min-height:350px}
}
@media(max-width:700px){
  .wizard-actions{width:100%;min-width:0;margin-inline:0}
  .wizard-actions .primary-button,.wizard-actions .secondary-button{min-width:0}
  .meeting-map-column .google-map,.meeting-map-column .map-placeholder,.meeting-map-column .external-content-notice{height:300px;min-height:300px}
}


/* Ode mne v2.7.5 — compact desktop map block and full-width wizard bar */
@media (min-width: 901px) {
    .meeting-mode-row {
        display: grid;
        grid-template-columns: minmax(300px, .88fr) minmax(430px, 1.12fr);
        gap: 32px;
    }

    .meeting-mode-field {
        grid-column: 1;
        width: 100%;
        max-width: none;
        margin: 0 0 20px;
    }

    .meeting-map-layout {
        align-items: start;
    }

    .meeting-map-heading {
        min-height: 67px;
        margin-bottom: 10px;
    }

    .meeting-map-column .google-map,
    .meeting-map-column .map-placeholder,
    .meeting-map-column .external-content-notice {
        height: 180px;
        min-height: 180px;
    }

    .wizard-actions {
        width: 100%;
        min-width: 0;
        max-width: none;
        margin-inline: 0;
        justify-content: center;
        border-radius: 999px;
        padding: 9px 14px;
    }
}

@media (max-width: 900px) {
    .meeting-mode-row {
        display: block;
    }
}


/* Ode mne v2.7.6 — aligned meeting-place columns and taller map */
.meeting-editor-card{padding-top:22px}
.meeting-map-layout{align-items:start}
.meeting-place-fields{gap:14px}
.meeting-mode-field{width:100%;max-width:none;margin:0}
.meeting-map-column{padding-top:0}
.meeting-map-heading{min-height:0;margin:0 0 14px;align-content:start}
.meeting-map-heading h3{margin:0;line-height:1.2}
.meeting-map-heading .section-note{margin:0}

@media (min-width:901px){
  .meeting-map-layout{grid-template-columns:minmax(300px,.88fr) minmax(430px,1.12fr);gap:28px}
  .meeting-place-fields{align-content:start}
  .meeting-map-column .google-map,
  .meeting-map-column .map-placeholder,
  .meeting-map-column .external-content-notice{height:265px;min-height:265px}
}

@media (max-width:900px){
  .meeting-map-column .google-map,
  .meeting-map-column .map-placeholder,
  .meeting-map-column .external-content-notice{height:350px;min-height:350px}
}

@media (max-width:700px){
  .meeting-editor-card{padding-top:18px}
  .meeting-map-column .google-map,
  .meeting-map-column .map-placeholder,
  .meeting-map-column .external-content-notice{height:300px;min-height:300px}
}

/* v2.7.7 — animated character picker, live preview and dashboard polish */
.showcase-start-button{
    min-height:68px;
    padding:20px 26px;
    font-size:1.34rem;
    line-height:1.18;
}

body:not(.presentation-body){
    min-height:100vh;
    display:flex;
    flex-direction:column;
}
body:not(.presentation-body)>main{flex:1 0 auto}
body:not(.presentation-body)>.site-footer{flex:0 0 auto}
body.dashboard-page .site-footer{margin-top:0}
body.dashboard-page .dashboard-shell{padding-bottom:72px}
.dashboard-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}
.dashboard-heading h1{margin:0}
.dashboard-create-form{margin:0}
.dashboard-create-button{white-space:nowrap;min-height:52px}

.character-picker-card{overflow:visible}
.character-picker-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}
.character-picker-heading h3{margin-bottom:6px}
.character-picker-heading p{margin:0;color:var(--muted);line-height:1.5}
.character-picker-badge{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:34px;padding:0 12px;border-radius:999px;background:#ffe5ef;color:var(--brand);font-size:.75rem;font-weight:950;letter-spacing:.08em}
.character-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.character-option{position:relative;display:grid;gap:8px;padding:9px;border:2px solid transparent;border-radius:22px;background:#fff7fa;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.character-option:hover{transform:translateY(-2px);box-shadow:0 12px 25px rgba(87,39,61,.10)}
.character-option.is-selected{border-color:var(--brand);box-shadow:0 12px 28px rgba(239,63,121,.18)}
.character-option input{position:absolute;opacity:0;pointer-events:none}
.character-video-frame{position:relative;display:block;aspect-ratio:1;border-radius:17px;overflow:hidden;background:linear-gradient(145deg,#ffdce7,#f6cbd8)}
.character-video-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .18s ease}
.character-option.is-video-ready .character-video-frame video{opacity:1}
.character-fallback{position:absolute;inset:0;display:grid;place-items:center;color:#ef7aa1;font-size:2.1rem;font-weight:900}
.character-option strong{font-size:.9rem;line-height:1.2;text-align:center}
.character-option small{display:none;color:var(--muted);font-size:.67rem;line-height:1.2;text-align:center}
.character-option:not(.is-video-ready) small{display:block}
.character-option-check{position:absolute;right:7px;top:7px;z-index:3;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:#fff;font-size:.78rem;font-weight:950;opacity:0;transform:scale(.75);transition:.18s}
.character-option.is-selected .character-option-check{opacity:1;transform:scale(1)}

.pre-answer-preset-title{color:var(--muted);font-size:.84rem;line-height:1.4}
.pre-answer-presets{display:flex;flex-wrap:wrap;gap:8px;margin:1px 0 3px}
.pre-answer-preset{appearance:none;border:1px solid #edcbd8;border-radius:999px;padding:8px 12px;background:#fff7fa;color:#6d5260;font:700 .82rem/1.3 inherit;cursor:pointer;transition:.16s}
.pre-answer-preset:hover,.pre-answer-preset.is-selected{border-color:var(--brand);background:#ffe8f0;color:var(--brand-dark);transform:translateY(-1px)}

.invitation-live-preview{--preview-primary:#ef3f79;--preview-secondary:#f3b6c5;--preview-background:#fff8fa;--preview-text:#302028;--preview-button:#ef3f79;--preview-accent:#fff;display:grid;gap:20px}
.live-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}
.live-preview-heading h3{margin:0}
.live-preview-tabs{display:flex;gap:4px;padding:4px;border-radius:999px;background:#fdebf2}
.live-preview-tabs button{border:0;border-radius:999px;padding:9px 16px;background:transparent;color:#8790a1;font:850 .86rem/1 inherit;cursor:pointer}
.live-preview-tabs button.is-active{background:#fff;color:var(--brand);box-shadow:0 5px 15px rgba(68,31,49,.12)}
.live-preview-phone{position:relative;width:min(365px,100%);height:690px;margin:0 auto;padding:24px 8px 22px;border:8px solid #1f293a;border-radius:48px;background:#1f293a;box-shadow:0 24px 55px rgba(43,32,49,.18);overflow:hidden}
.live-preview-notch{position:absolute;z-index:5;left:50%;top:-1px;width:138px;height:30px;transform:translateX(-50%);border-radius:0 0 24px 24px;background:#1f293a}
.live-preview-home{position:absolute;z-index:5;left:50%;bottom:9px;width:78px;height:5px;transform:translateX(-50%);border-radius:999px;background:#b9c0c9}
.live-preview-screen{position:absolute;inset:24px 8px 22px;display:none;overflow:hidden;border-radius:34px;background:#fff;color:#28232b}
.live-preview-screen.is-active{display:flex}
.live-preview-screen.first-screen{flex-direction:column;background:linear-gradient(180deg,#f7ccd7 0%,#fff 64%)}
.live-preview-character{position:relative;flex:0 0 58%;overflow:hidden;background:#f7ccd7}
.live-preview-character video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.invitation-live-preview.is-preview-video-ready .live-preview-character video{opacity:1}
.live-preview-character>span{position:absolute;inset:0;display:grid;place-items:center;color:#ef799e;font-size:4rem;font-weight:900}
.live-preview-copy{display:grid;align-content:center;justify-items:center;gap:8px;flex:1;padding:18px 20px;text-align:center}
.live-preview-copy small{font-family:Georgia,serif;font-style:italic;font-size:1rem;color:#735865}
.live-preview-copy strong{font-size:1.13rem;line-height:1.28}
.live-preview-copy button,.live-preview-second-copy button{border:0;border-radius:999px;padding:10px 24px;background:#ef4c83;color:#fff;font:850 .85rem/1.2 inherit}
.live-preview-screen.second-screen{align-items:center;justify-content:center;padding:26px;background:var(--preview-background);color:var(--preview-text)}
.live-preview-second-copy{display:grid;gap:16px;text-align:center;justify-items:center}
.live-preview-second-copy p{margin:0;font-size:1.12rem;line-height:1.5}
.live-preview-second-copy strong{font-size:1.35rem;line-height:1.25}
.live-preview-second-copy small{font-size:.9rem;line-height:1.45;opacity:.72}
.live-preview-second-copy button{background:var(--preview-button);color:var(--preview-accent)}

.intro-character-slide{background:linear-gradient(180deg,#f5c5d3 0%,#ffeef3 56%,#ffffff 100%)!important;color:#342732!important;padding-inline:12px!important}
.intro-character-inner{height:100%;max-width:520px;display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}
.invitation-character-stage{position:relative;flex:1 1 58%;min-height:0;margin:-8px -12px 0;border-radius:0 0 30px 30px;overflow:hidden;background:linear-gradient(145deg,#f8cdd8,#f2baca)}
.invitation-character-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}
.invitation-character-fallback{position:absolute;inset:0;display:grid;place-items:center;color:#ef779c;font-size:4rem;font-weight:900}
.intro-character-copy{flex:0 0 auto;display:grid;justify-items:center;gap:4px;padding:18px 18px 10px;text-align:center}
.intro-character-copy .salutation{margin:0;font-size:1.15rem;color:#785b69}
.intro-character-copy h1{margin:5px 0 4px;font-size:clamp(1.7rem,7vw,2.65rem);line-height:1.04}
.intro-character-copy .presentation-button{margin-top:10px;background:#ef4c83!important;color:#fff!important}

@media(max-width:900px){
    .character-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
    .dashboard-heading{align-items:flex-start;flex-direction:column}
}
@media(max-width:640px){
    .showcase-start-button{min-height:60px;padding:17px 20px;font-size:1.14rem}
    .character-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
    .character-picker-heading{display:grid;gap:10px}
    .character-picker-badge{justify-self:start}
    .live-preview-heading{display:grid}
    .live-preview-tabs{width:100%}
    .live-preview-tabs button{flex:1}
    .live-preview-phone{height:620px;border-radius:42px}
    .dashboard-create-button{width:100%}
    .dashboard-create-form{width:100%}
}

/* v2.7.8 — two screen characters and simplified first-step text flow */
.character-screen-label{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    margin-bottom:7px;
    padding:0 11px;
    border-radius:999px;
    background:#ffe8f1;
    color:var(--brand-dark);
    font-size:.72rem;
    font-weight:950;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.live-preview-heading{
    display:grid;
    justify-items:center;
    gap:14px;
    text-align:center;
}
.live-preview-heading h3{
    margin:0;
    font-size:1.35rem;
}
.live-preview-tabs{
    justify-self:center;
}
.live-preview-character video{
    opacity:0;
    transition:opacity .18s ease;
}
.invitation-live-preview.is-preview-video-ready-1 [data-preview-character-video="1"],
.invitation-live-preview.is-preview-video-ready-2 [data-preview-character-video="2"]{
    opacity:1;
}
.live-preview-screen.second-screen{
    flex-direction:column;
    align-items:stretch;
    justify-content:stretch;
    padding:0;
    background:var(--preview-background);
    color:var(--preview-text);
}
.live-preview-screen.second-screen .live-preview-character{
    flex:0 0 52%;
    background:var(--preview-secondary);
}
.live-preview-second-copy{
    flex:1 1 auto;
    align-content:center;
    justify-items:center;
    gap:10px;
    padding:16px 20px 18px;
    overflow:auto;
}
.live-preview-second-copy p{
    font-size:1rem;
    line-height:1.4;
}
.live-preview-second-copy strong{
    font-size:1.16rem;
    line-height:1.25;
}

.second-character-slide{
    padding-inline:12px!important;
    background:var(--background)!important;
    color:var(--text)!important;
}
.second-character-inner{
    height:100%;
    max-width:520px;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:stretch;
}
.second-invitation-character-stage{
    flex:1 1 48%;
    min-height:0;
    margin:-8px -12px 0;
    border-radius:0 0 28px 28px;
    background:var(--secondary);
}
.second-character-copy{
    flex:0 1 auto;
    display:grid;
    justify-items:center;
    align-content:center;
    gap:7px;
    padding:12px 16px 6px;
    text-align:center;
    overflow:auto;
}
.second-character-copy .large-copy{
    margin:0;
    font-size:clamp(.98rem,3.8vw,1.18rem);
    line-height:1.4;
}
.second-character-copy .signature{
    margin:0;
    font-size:1rem;
}
.second-character-copy h1{
    margin:4px 0 0;
    font-size:clamp(1.35rem,6vw,2rem);
    line-height:1.08;
}
.second-character-copy .public-voice-message{
    margin:2px 0;
}
.second-character-copy .answer-area{
    width:100%;
    height:116px;
    margin-top:2px;
}
.second-character-copy .yes-button{
    margin-top:10px;
}

@media(max-width:640px){
    .live-preview-heading{display:grid;justify-items:center}
    .character-screen-label{font-size:.68rem}
    .second-invitation-character-stage{flex-basis:45%}
    .second-character-copy{padding:10px 12px 4px}
    .second-character-copy .answer-area{height:105px}
}

/* v2.7.9 — checkout promo code */
.checkout-promo{margin:22px 0 4px;padding:18px;border:1px solid #eadde5;border-radius:18px;background:linear-gradient(135deg,#fff8fb,#faf7ff)}
.checkout-promo>label{display:block;margin-bottom:9px;font-weight:900;color:var(--ink)}
.checkout-promo-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.checkout-promo-controls input{width:100%;min-width:0;border:1px solid #d9cdd6;border-radius:14px;padding:13px 15px;font:850 1rem/1.2 inherit;text-transform:uppercase;letter-spacing:.05em;background:#fff}
.checkout-promo-controls input:focus{outline:3px solid rgba(142,92,247,.16);border-color:#8e5cf7}
.checkout-promo-controls button{border:0;border-radius:14px;padding:12px 18px;background:#2f9f70;color:#fff;font:900 .94rem/1 inherit;cursor:pointer;box-shadow:0 8px 20px rgba(47,159,112,.2)}
.checkout-promo-controls button:disabled{opacity:.58;cursor:wait}
.checkout-promo-message{display:block;margin-top:9px;color:#7a6f7d;font-size:.84rem;line-height:1.4}
.checkout-promo-message.is-success{color:#237c58;font-weight:800}
.checkout-promo-message.is-error{color:#b52d4d;font-weight:800}
.checkout-price-row dd{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.checkout-original-price{text-decoration:line-through;color:#918793;font-size:.88rem;font-weight:700}
.checkout-discount{display:inline-flex;padding:3px 7px;border-radius:999px;background:#e5f7ed;color:#237c58;font-size:.72rem;font-weight:950}
.is-hidden{display:none!important}
.checkout-pay-button strong{font-weight:950}
@media(max-width:560px){.checkout-promo-controls{grid-template-columns:1fr}.checkout-promo-controls button{width:100%}}


/* v2.8.0 — evasive answer and joyful acceptance screen */
.second-character-copy h1{
    order:3;
}
.second-character-copy .question-signature{
    order:4;
    margin:0 0 2px;
    font-size:1.04rem;
    color:color-mix(in srgb,var(--text) 78%,transparent);
}
.second-character-copy .no-reaction-message{
    order:5;
}
.second-character-copy .answer-area{
    order:6;
    width:min(470px,100%);
    height:clamp(175px,24vh,225px);
    margin:0 auto;
    overflow:hidden;
    border-radius:24px;
}
.second-character-copy .yes-button{
    top:50%;
    left:29%;
}
.second-character-copy .no-button{
    z-index:4;
    min-width:106px;
    height:48px;
    background:color-mix(in srgb,var(--background) 92%,white);
    box-shadow:0 8px 20px rgba(54,32,45,.08);
}

.joy-slide{
    overflow:hidden;
    isolation:isolate;
    background:
        radial-gradient(circle at 50% 43%,rgba(255,255,255,.98) 0 18%,rgba(255,236,244,.92) 42%,transparent 70%),
        linear-gradient(165deg,#ffc9dc 0%,#fff0f6 48%,#f8dff8 100%)!important;
    color:#422635!important;
}
.joy-slide-inner{
    position:relative;
    z-index:3;
    display:grid;
    justify-items:center;
    gap:14px;
    padding:34px 22px;
}
.joy-slide h1{
    margin:0;
    color:#e93472;
    font-size:clamp(4rem,19vw,7.4rem);
    line-height:.9;
    text-shadow:0 8px 24px rgba(232,52,114,.16);
    animation:joy-title-pop .65s cubic-bezier(.15,.9,.25,1.25) both;
}
.joy-slide p{
    max-width:360px;
    margin:0;
    color:#765165;
    font-size:clamp(1.15rem,4.7vw,1.5rem);
    font-weight:800;
    line-height:1.4;
}
.joy-burst{
    display:grid;
    place-items:center;
    width:112px;
    height:112px;
    border-radius:50%;
    color:#fff;
    background:linear-gradient(145deg,#ff699b,#ed3775);
    box-shadow:0 20px 55px rgba(236,55,116,.28),inset 0 0 0 9px rgba(255,255,255,.18);
    font-size:4.2rem;
    animation:joy-heart-beat 1.15s ease-in-out infinite;
}
.joy-next-button{
    min-width:190px;
    margin-top:16px!important;
    background:#ed3e78!important;
    color:#fff!important;
    box-shadow:0 16px 34px rgba(237,62,120,.28)!important;
}
.joy-heart-rain{
    position:absolute;
    z-index:1;
    inset:-20% 0 0;
    overflow:hidden;
    pointer-events:none;
}
.joy-falling-heart{
    position:absolute;
    top:-14vh;
    left:var(--heart-left);
    color:var(--heart-color);
    font-size:var(--heart-size);
    line-height:1;
    opacity:0;
    filter:drop-shadow(0 5px 5px rgba(100,38,67,.12));
    animation:joy-heart-fall var(--heart-duration) linear var(--heart-delay) infinite;
}
@keyframes joy-title-pop{
    0%{opacity:0;transform:scale(.45) rotate(-7deg)}
    70%{opacity:1;transform:scale(1.08) rotate(2deg)}
    100%{opacity:1;transform:scale(1) rotate(0)}
}
@keyframes joy-heart-beat{
    0%,100%{transform:scale(1)}
    40%{transform:scale(1.09)}
    55%{transform:scale(.98)}
}
@keyframes joy-heart-fall{
    0%{opacity:0;transform:translate3d(0,-10vh,0) rotate(0deg) scale(.7)}
    8%{opacity:.96}
    82%{opacity:.92}
    100%{opacity:0;transform:translate3d(var(--heart-drift),125vh,0) rotate(var(--heart-rotate)) scale(1.12)}
}
@media(max-width:640px){
    .second-invitation-character-stage{flex-basis:39%}
    .second-character-copy{gap:5px;padding:8px 10px 2px}
    .second-character-copy .large-copy{font-size:.94rem;line-height:1.34}
    .second-character-copy h1{font-size:clamp(1.28rem,5.7vw,1.85rem)}
    .second-character-copy .question-signature{font-size:.94rem}
    .second-character-copy .answer-area{height:180px}
    .no-reaction-message{margin:5px auto 0;min-height:1.3em}
    .joy-slide-inner{padding-inline:16px}
}
@media(prefers-reduced-motion:reduce){
    .joy-falling-heart{animation-duration:10s}
    .joy-burst,.joy-slide h1{animation:none}
}


/* v2.8.1 — accepted dashboard cards */
.dashboard-card.is-accepted{
    background:linear-gradient(145deg,#fff1f6 0%,#ffe1ec 100%);
    border:2px solid #ef7fa5;
    box-shadow:0 20px 48px rgba(213,71,120,.16);
}
.dashboard-card.is-accepted .status{
    display:inline-flex;
    padding:6px 10px;
    border-radius:999px;
    color:#a52654;
    background:#ffd2e2;
}
.dashboard-ticket-download{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:9px 13px;
    border-radius:11px;
    background:#e9437c;
    color:#fff!important;
    font-weight:850;
    text-decoration:none;
}

.card-actions{flex-wrap:wrap;align-items:center}

/* v2.8.2 — landing articles and multilingual article pages */
.landing-articles-section{max-width:1180px;margin:0 auto 110px;padding:0 24px;scroll-margin-top:92px}
.landing-articles-heading{text-align:center;max-width:800px;margin:0 auto 36px}
.landing-articles-kicker,.article-kicker{display:inline-block;color:var(--brand);font-size:.76rem;font-weight:950;letter-spacing:.18em;text-transform:uppercase}
.landing-articles-heading h2{margin:9px 0 12px;font-size:clamp(2.3rem,5vw,3.8rem);line-height:1;letter-spacing:-.045em}
.landing-articles-heading p{margin:0;color:var(--muted);font-size:1.08rem;line-height:1.6}
.landing-articles-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.landing-article-card{display:grid;grid-template-rows:230px 1fr;overflow:hidden;background:#fff;border:1px solid #efdbe3;border-radius:30px;box-shadow:0 22px 60px rgba(70,31,52,.1);transition:transform .22s ease,box-shadow .22s ease}
.landing-article-card:hover{transform:translateY(-5px);box-shadow:0 30px 74px rgba(70,31,52,.15)}
.landing-article-visual{position:relative;display:grid;place-items:center;overflow:hidden;isolation:isolate}
.article-card-rose .landing-article-visual{background:linear-gradient(135deg,#ff7aa5,#ffb08c)}
.article-card-violet .landing-article-visual{background:linear-gradient(135deg,#8668ff,#d26adf)}
.landing-article-symbol{position:relative;z-index:4;display:grid;place-items:center;width:112px;height:112px;border-radius:34px;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.38);color:#fff;font-size:4rem;font-weight:900;box-shadow:0 18px 40px rgba(63,28,55,.14),inset 0 0 0 10px rgba(255,255,255,.08)}
.landing-article-orbit{position:absolute;border:2px solid rgba(255,255,255,.3);border-radius:50%;transform:rotate(-16deg)}
.orbit-one{width:330px;height:150px}.orbit-two{width:410px;height:210px;transform:rotate(22deg)}
.landing-article-heart{position:absolute;right:8%;top:12%;color:rgba(255,255,255,.62);font-size:3.8rem;transform:rotate(13deg)}
.landing-article-body{display:grid;align-content:start;gap:12px;padding:28px 30px 30px}
.landing-article-time{color:var(--brand);font-size:.78rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.landing-article-body h3{margin:0;font-size:clamp(1.55rem,2.8vw,2.1rem);line-height:1.12;letter-spacing:-.035em}
.landing-article-body p{margin:0;color:#6f7584;line-height:1.62}
.landing-article-link{display:inline-flex;align-items:center;gap:8px;margin-top:8px;color:var(--brand);font-weight:950;text-decoration:none}
.landing-article-link span{font-size:1.25rem;transition:transform .18s ease}.landing-article-link:hover span{transform:translateX(5px)}

.article-page{background:linear-gradient(180deg,#fff8fa 0%,#fff 45%,#fff8fa 100%)}
.article-shell{width:min(1120px,calc(100% - 32px));margin:42px auto 96px}
.article-hero{overflow:hidden;border:1px solid #efdbe3;border-radius:36px;background:#fff;box-shadow:0 26px 80px rgba(67,30,53,.1)}
.article-back-link{display:inline-flex;margin:24px 30px 0;color:#766a75;font-weight:850;text-decoration:none}
.article-hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:32px;align-items:center;padding:34px 44px 46px}
.article-hero-copy h1{margin:12px 0 20px;font-size:clamp(2.4rem,5.4vw,4.7rem);line-height:1.02;letter-spacing:-.055em}
.article-lead{max-width:760px;margin:0;color:#666e7d;font-size:1.12rem;line-height:1.7}
.article-reading-time{display:inline-flex;margin-top:20px;padding:8px 12px;border-radius:999px;color:#8c3d60;background:#fff0f5;font-size:.82rem;font-weight:900}
.article-hero-art{position:relative;display:grid;place-items:center;min-height:300px;border-radius:30px;overflow:hidden;isolation:isolate}
.article-accent-rose .article-hero-art{background:linear-gradient(145deg,#ff7aa5,#ffb08c)}
.article-accent-violet .article-hero-art{background:linear-gradient(145deg,#7c69ff,#d569dc)}
.article-hero-art:before,.article-hero-art:after{content:"";position:absolute;border:2px solid rgba(255,255,255,.3);border-radius:50%}
.article-hero-art:before{width:360px;height:150px;transform:rotate(-22deg)}.article-hero-art:after{width:300px;height:260px;transform:rotate(28deg)}
.article-hero-symbol{position:relative;z-index:3;display:grid;place-items:center;width:130px;height:130px;border-radius:38px;color:#fff;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.4);font-size:4.5rem;font-weight:950;box-shadow:0 20px 50px rgba(50,20,45,.16)}
.article-art-heart{position:absolute;z-index:2;color:rgba(255,255,255,.66)}.heart-one{left:10%;top:17%;font-size:2.2rem}.heart-two{right:9%;top:12%;font-size:4rem}.heart-three{right:18%;bottom:10%;font-size:2.7rem}
.article-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:32px;margin-top:34px;align-items:start}
.article-toc{position:sticky;top:92px;display:grid;gap:9px;padding:22px;border:1px solid #efdbe3;border-radius:24px;background:#fff;box-shadow:0 16px 45px rgba(70,31,52,.07)}
.article-toc strong{margin-bottom:5px;font-size:1.04rem}.article-toc a{color:#737987;font-size:.88rem;line-height:1.35;text-decoration:none}.article-toc a:hover{color:var(--brand)}
.article-content{display:grid;gap:22px}
.article-section{scroll-margin-top:100px;padding:30px 34px;border:1px solid #efdbe3;border-radius:28px;background:#fff;box-shadow:0 17px 52px rgba(70,31,52,.065)}
.article-section h2{margin:0 0 16px;font-size:clamp(1.45rem,3vw,2rem);line-height:1.2;letter-spacing:-.025em}
.article-section p{margin:0 0 13px;color:#555e6e;font-size:1.02rem;line-height:1.78}.article-section p:last-child{margin-bottom:0}
.article-section ul{display:grid;gap:10px;margin:17px 0 0;padding:0;list-style:none}
.article-section li{position:relative;padding-left:28px;color:#555e6e;line-height:1.62}.article-section li:before{content:"♥";position:absolute;left:0;top:1px;color:var(--brand);font-size:.88rem}
.article-tip{display:flex;gap:18px;padding:28px 30px;border-radius:28px;color:#533049;background:linear-gradient(135deg,#ffe7f0,#f4e9ff);border:1px solid #eccddd}
.article-tip>span{font-size:2.4rem}.article-tip h2{margin:0 0 8px;font-size:1.45rem}.article-tip p{margin:0;line-height:1.65}
.article-cta{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-top:34px;padding:32px 38px;border-radius:30px;color:#fff;background:linear-gradient(135deg,#e93d76,#8d5cf6);box-shadow:0 24px 65px rgba(114,45,106,.22)}
.article-cta h2{margin:0 0 8px;font-size:clamp(1.65rem,3.4vw,2.45rem);letter-spacing:-.03em}.article-cta p{max-width:680px;margin:0;color:rgba(255,255,255,.84);line-height:1.55}.article-cta .primary-button{background:#fff;color:#c53871;box-shadow:none;white-space:nowrap}
@media(max-width:900px){.landing-articles-grid{grid-template-columns:1fr}.article-hero-grid{grid-template-columns:1fr}.article-hero-art{min-height:240px}.article-layout{grid-template-columns:1fr}.article-toc{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.article-toc strong{grid-column:1/-1}.article-cta{align-items:flex-start;flex-direction:column}}
@media(max-width:640px){.landing-articles-section{padding:0 16px;margin-bottom:78px}.landing-article-card{grid-template-rows:190px 1fr}.landing-article-body{padding:24px 22px 26px}.article-shell{width:min(100% - 20px,1120px);margin-top:20px}.article-back-link{margin:20px 20px 0}.article-hero-grid{padding:28px 20px 24px}.article-hero-art{min-height:200px}.article-hero-symbol{width:104px;height:104px;border-radius:30px;font-size:3.8rem}.article-layout{gap:18px;margin-top:18px}.article-toc{grid-template-columns:1fr;padding:19px}.article-section{padding:24px 20px;border-radius:24px}.article-section p{font-size:.98rem}.article-tip{padding:24px 20px}.article-cta{padding:28px 22px}.article-cta .primary-button{width:100%}}

/* v2.8.3 — hide preview fallback heart after character video is ready */
.live-preview-character > [data-preview-character-fallback]{
    z-index:1;
    pointer-events:none;
    transition:opacity .18s ease, visibility .18s ease;
}

.live-preview-character > video{
    z-index:2;
}

.invitation-live-preview.is-preview-video-ready-1 [data-preview-character-fallback="1"],
.invitation-live-preview.is-preview-video-ready-2 [data-preview-character-fallback="2"]{
    opacity:0;
    visibility:hidden;
}

/* v2.8.4 — administrator workspace */
.admin-workspace-page main{min-height:70vh;background:linear-gradient(180deg,#fff8fa 0%,#f8f4ff 55%,#fff 100%)}
.admin-workspace{width:min(1440px,calc(100% - 40px));margin:0 auto;padding:48px 0 70px;color:#231827}
.admin-workspace-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:34px 38px;border:1px solid rgba(201,50,94,.16);border-radius:34px;background:radial-gradient(circle at 90% 10%,rgba(255,153,182,.22),transparent 34%),linear-gradient(135deg,#fff 0%,#fff5f8 100%);box-shadow:0 24px 70px rgba(92,51,72,.10)}
.admin-eyebrow{display:block;margin-bottom:10px;color:#d13667;font-size:.78rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.admin-workspace-hero h1{margin:0;font-size:clamp(2rem,4vw,3.5rem);line-height:1.05;color:#1f2637}
.admin-workspace-hero p{max-width:720px;margin:14px 0 0;color:#786b77;font-size:1.04rem}
.admin-workspace-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px}
.admin-workspace-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:16px;font-weight:850;text-decoration:none;white-space:nowrap}
.admin-action-primary{color:#fff;background:linear-gradient(135deg,#f13d78,#ff6b96);box-shadow:0 14px 30px rgba(241,61,120,.23)}
.admin-action-secondary{color:#754bb4;border:2px solid #9465db;background:#fff}
.admin-period-tabs{display:flex;gap:10px;margin:28px 0 18px;padding:8px;border:1px solid #eadde4;border-radius:22px;background:rgba(255,255,255,.9);overflow-x:auto;box-shadow:0 12px 34px rgba(73,49,61,.07)}
.admin-period-tab{flex:1;min-width:160px;border:0;border-radius:15px;padding:14px 18px;color:#756b75;background:transparent;font:inherit;font-weight:850;cursor:pointer;transition:.2s ease}
.admin-period-tab:hover{background:#fff2f6;color:#c9325e}
.admin-period-tab.is-active{color:#fff;background:linear-gradient(135deg,#c9325e,#f45485);box-shadow:0 9px 24px rgba(201,50,94,.22)}
.admin-period-panel{display:none}
.admin-period-panel.is-active{display:block;animation:adminPanelIn .25s ease}
@keyframes adminPanelIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.admin-period-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 4px 14px}
.admin-period-heading h2{margin:0;color:#272032;font-size:1.65rem}
.admin-period-heading span{color:#918590;font-size:.9rem}
.admin-test-badge{padding:7px 12px;border-radius:999px;background:#fff1cc;color:#8a6111!important;font-size:.78rem!important;font-weight:800}
.admin-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.admin-metric-card{position:relative;min-height:170px;padding:24px;border:1px solid rgba(63,36,53,.08);border-radius:26px;overflow:hidden;box-shadow:0 16px 42px rgba(76,45,62,.08)}
.admin-metric-card::after{content:"";position:absolute;right:-32px;bottom:-48px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.27)}
.admin-metric-card.metric-visits{background:linear-gradient(145deg,#e9f7ff,#c9e9ff)}
.admin-metric-card.metric-orders{background:linear-gradient(145deg,#fff0f5,#ffd2e1)}
.admin-metric-card.metric-revenue{background:linear-gradient(145deg,#e8fff6,#c9f3df)}
.admin-metric-card.metric-acceptance{background:linear-gradient(145deg,#f3edff,#ddccff)}
.admin-metric-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:20px;border-radius:14px;background:rgba(255,255,255,.7);font-weight:950;color:#503b50}
.admin-metric-label{display:block;color:#6f6170;font-size:.9rem;font-weight:800}
.admin-metric-card strong{position:relative;z-index:1;display:block;margin-top:5px;color:#251d2a;font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.05}
.admin-metric-card small{display:block;margin-top:10px;color:#776a75;font-weight:750}
.admin-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:16px;margin-top:16px}
.admin-data-card,.admin-recent-card,.admin-quick-card{border:1px solid #eadde4;border-radius:28px;background:rgba(255,255,255,.95);box-shadow:0 18px 48px rgba(75,46,62,.07)}
.admin-data-card{padding:25px}
.admin-data-card-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.admin-data-card-title h2,.admin-data-card-title h3{margin:0;color:#302535}
.admin-data-card-title>span{display:grid;place-items:center;min-width:38px;height:38px;padding:0 10px;border-radius:12px;background:#fff0f5;color:#cb3563;font-weight:900}
.admin-promo-list{display:grid;gap:14px}
.admin-promo-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px;color:#5b4e58;font-size:.91rem}
.admin-promo-line strong{color:#28202a}
.admin-promo-track{height:10px;border-radius:999px;background:#f4edf1;overflow:hidden}
.admin-promo-track span{display:block;min-width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ee4e7e,#9b69df)}
.admin-acceptance-card{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:22px}
.admin-acceptance-ring{display:grid;place-items:center;width:142px;height:142px;border-radius:50%;background:conic-gradient(#e94275 var(--acceptance-rate),#f1e8ed 0);box-shadow:inset 0 0 0 1px rgba(201,50,94,.06)}
.admin-acceptance-ring::before{content:"";grid-area:1/1;width:108px;height:108px;border-radius:50%;background:#fff}
.admin-acceptance-ring>div{grid-area:1/1;position:relative;z-index:1;text-align:center}
.admin-acceptance-ring strong{display:block;font-size:1.7rem;color:#d13667}
.admin-acceptance-ring span{font-size:.72rem;color:#8b7d87;font-weight:800}
.admin-acceptance-card dl{margin:0}
.admin-acceptance-card dl div{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px dashed #eadde4}
.admin-acceptance-card dt{color:#817580}
.admin-acceptance-card dd{margin:0;font-weight:900}
.admin-acceptance-card p{grid-column:1/-1;margin:0;color:#918590;font-size:.82rem;line-height:1.45}
.admin-period-note{margin:14px 8px 0;color:#9a8e98;font-size:.79rem;line-height:1.45}
.admin-month-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.admin-month-card{padding:24px;border:1px solid #eadde4;border-radius:26px;background:linear-gradient(160deg,#fff,#fff7fa);box-shadow:0 16px 40px rgba(78,46,64,.07)}
.admin-month-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:1px solid #f0e4ea}
.admin-month-card h3{margin:0;color:#2f2532;font-size:1.25rem}
.admin-month-card header span{color:#9b8d97;font-size:.75rem}
.admin-month-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.admin-month-metrics div{padding:13px;border-radius:16px;background:#faf5f8}
.admin-month-metrics span{display:block;color:#8a7c87;font-size:.76rem}
.admin-month-metrics strong{display:block;margin-top:4px;color:#302431;font-size:1.08rem}
.admin-month-promos{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}
.admin-month-promos span{padding:7px 9px;border-radius:10px;background:#f1eaff;color:#6e528b;font-size:.72rem}
.admin-month-card>small{display:block;margin-top:12px;color:#947118}
.admin-lower-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,.45fr);gap:16px;margin-top:22px}
.admin-recent-card{padding:25px;min-width:0}
.admin-table-wrap{overflow:auto;border:1px solid #eee4e9;border-radius:18px}
.admin-orders-table{width:100%;border-collapse:collapse;min-width:900px;font-size:.84rem}
.admin-orders-table th{padding:13px 14px;text-align:left;color:#8e808a;background:#faf6f8;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.admin-orders-table td{padding:14px;border-top:1px solid #f0e7eb;color:#514650;vertical-align:middle}
.admin-orders-table td:first-child strong{display:block;color:#2e2530;font-size:.8rem}
.admin-orders-table td:first-child small{display:inline-block;margin-top:4px;padding:2px 5px;border-radius:5px;background:#fff1c6;color:#8b650d;font-size:.58rem;font-weight:900}
.admin-orders-table tr.is-test-order{background:#fffcf1}
.admin-orders-table a{color:#985dd6;font-weight:850;text-decoration:none}
.admin-promo-pill{padding:5px 8px;border-radius:8px;background:#f2ebff;color:#704da0;font-size:.69rem;font-weight:850}
.admin-order-status{display:inline-flex;padding:5px 8px;border-radius:8px;background:#f1edf0;font-size:.7rem;font-weight:850}
.admin-order-status.status-paid{background:#def8ea;color:#177a4b}
.admin-order-status.status-pending,.admin-order-status.status-created{background:#fff2cf;color:#8b650d}
.admin-order-status.status-cancelled,.admin-order-status.status-error{background:#ffe3e7;color:#a92c43}
.admin-quick-card{padding:25px}
.admin-quick-card h2{margin:0 0 18px;color:#302535}
.admin-quick-links{display:grid;gap:10px}
.admin-quick-links a{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:12px;border:1px solid #efe4e9;border-radius:16px;color:#403541;text-decoration:none;transition:.18s ease}
.admin-quick-links a:hover{transform:translateX(3px);border-color:#e3a8bb;background:#fff7fa}
.admin-quick-links a>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#ffe2eb,#eadcff);color:#c63362;font-size:1.15rem}
.admin-quick-links a>b:last-child{color:#c9325e}
@media(max-width:1050px){.admin-metric-grid{grid-template-columns:1fr 1fr}.admin-detail-grid,.admin-lower-grid{grid-template-columns:1fr}.admin-month-grid{grid-template-columns:1fr}.admin-workspace-hero{align-items:flex-start;flex-direction:column}.admin-workspace-actions{justify-content:flex-start}}
@media(max-width:650px){.admin-workspace{width:min(100% - 20px,1440px);padding:24px 0 48px}.admin-workspace-hero{padding:25px 21px;border-radius:25px}.admin-workspace-actions{width:100%}.admin-workspace-actions a{width:100%}.admin-period-tabs{border-radius:18px}.admin-period-tab{min-width:145px;padding:12px}.admin-metric-grid{grid-template-columns:1fr}.admin-metric-card{min-height:145px}.admin-detail-grid{grid-template-columns:1fr}.admin-acceptance-card{grid-template-columns:1fr;justify-items:center}.admin-acceptance-card dl{width:100%}.admin-period-heading{align-items:flex-start}.admin-data-card,.admin-recent-card,.admin-quick-card{padding:20px;border-radius:22px}}

/* v2.8.5 — optional flower question, bouquet picker and ticket result */
.flower-editor-card{
    display:grid;
    gap:20px;
    padding:clamp(22px,4vw,34px);
    background:
        radial-gradient(circle at 92% 5%,rgba(255,159,190,.23),transparent 30%),
        linear-gradient(145deg,#fff,#fff4f8);
}
.flower-editor-heading{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(260px,.82fr);
    align-items:start;
    gap:24px;
}
.flower-editor-heading>div{display:flex;align-items:center;gap:12px}
.flower-editor-heading h3{margin:0;font-size:1.45rem}
.flower-editor-heading p{margin:0;color:var(--muted);line-height:1.55}
.flower-editor-kicker{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:#ffe4ee;font-size:1.55rem}
.flower-toggle-card{
    position:relative;
    display:grid;
    grid-template-columns:58px 1fr;
    align-items:center;
    gap:16px;
    padding:18px;
    border:1px solid #efd4df;
    border-radius:22px;
    background:rgba(255,255,255,.9);
    cursor:pointer;
    transition:.2s ease;
}
.flower-toggle-card:hover{border-color:#e99ab5;box-shadow:0 12px 30px rgba(114,55,79,.08)}
.flower-toggle-card>input{position:absolute;opacity:0;pointer-events:none}
.flower-toggle-visual{
    position:relative;
    width:58px;
    height:32px;
    border-radius:999px;
    background:#ddd6db;
    box-shadow:inset 0 2px 5px rgba(44,24,34,.12);
    transition:.2s ease;
}
.flower-toggle-visual i{
    position:absolute;
    left:4px;
    top:4px;
    width:24px;
    height:24px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 3px 9px rgba(49,26,37,.2);
    transition:.22s cubic-bezier(.2,.8,.2,1);
}
.flower-toggle-card>input:checked + .flower-toggle-visual{background:linear-gradient(135deg,#f13d78,#ff7ba3)}
.flower-toggle-card>input:checked + .flower-toggle-visual i{transform:translateX(26px)}
.flower-toggle-copy{display:grid;gap:5px}
.flower-toggle-copy strong{font-size:1.02rem}
.flower-toggle-copy small{color:var(--muted);line-height:1.45}
.flower-editor-body{display:grid;gap:18px}
.flower-fixed-toggle{background:#fffafb}
.flower-recipient-mode{
    display:grid;
    grid-template-columns:52px 1fr;
    gap:15px;
    align-items:center;
    padding:18px;
    border:1px dashed #dca8bd;
    border-radius:20px;
    background:linear-gradient(135deg,#fff8fb,#f6efff);
}
.flower-recipient-mode-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#fff;font-size:1.55rem;box-shadow:0 8px 20px rgba(76,45,63,.08)}
.flower-recipient-mode strong{font-size:1.03rem}
.flower-recipient-mode p{margin:5px 0 0;color:var(--muted);line-height:1.5}
.flower-fixed-picker{display:grid;gap:16px;padding:20px;border:1px solid #ecd8e1;border-radius:24px;background:#fff}
.flower-picker-title-row{display:flex;align-items:center;justify-content:space-between;gap:15px}
.flower-picker-title-row>strong{font-size:1.08rem}
.flower-picker-title-row>span{color:var(--brand);font-size:.88rem;font-weight:900;text-align:right}
.flower-type-tabs{
    display:flex;
    gap:8px;
    padding:4px 0 8px;
    overflow-x:auto;
    scrollbar-width:thin;
}
.flower-type-tab{
    flex:0 0 auto;
    border:1px solid #ebd3dd;
    border-radius:999px;
    padding:9px 14px;
    color:#6e6070;
    background:#fff9fb;
    font:inherit;
    font-size:.86rem;
    font-weight:850;
    cursor:pointer;
}
.flower-type-tab.is-active{border-color:var(--brand);color:#fff;background:linear-gradient(135deg,var(--brand),#ff6d96)}
.flower-bouquet-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.flower-bouquet-card{
    position:relative;
    display:grid;
    align-content:start;
    gap:9px;
    min-width:0;
    padding:9px;
    border:2px solid #f0dbe3;
    border-radius:20px;
    background:#fffafd;
    cursor:pointer;
    overflow:hidden;
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,opacity .18s ease;
}
.flower-bouquet-card:hover{transform:translateY(-2px);border-color:#e8a2b8;box-shadow:0 12px 26px rgba(107,53,75,.1)}
.flower-bouquet-card>input{position:absolute;opacity:0;pointer-events:none}
.flower-bouquet-card img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:14px;background:#ffeaf1}
.flower-bouquet-card-copy{display:grid;gap:2px;padding:0 4px 4px;min-width:0}
.flower-bouquet-card-copy strong{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.flower-bouquet-card-copy small{color:var(--muted);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.flower-card-check{
    position:absolute;
    top:15px;
    right:15px;
    display:grid;
    place-items:center;
    width:27px;
    height:27px;
    border-radius:50%;
    color:#fff;
    background:var(--brand);
    box-shadow:0 5px 13px rgba(141,37,77,.28);
    opacity:0;
    transform:scale(.65);
    transition:.18s ease;
}
.flower-bouquet-card.is-selected{border-color:var(--brand);background:#fff;box-shadow:0 13px 30px rgba(239,63,121,.16)}
.flower-bouquet-card.is-selected .flower-card-check{opacity:1;transform:scale(1)}
.flower-bouquet-card.is-disabled{opacity:.46;cursor:not-allowed;transform:none;box-shadow:none}
.flower-field-error{margin-top:3px}

/* Public flower screens */
.presentation-body.presentation-has-flowers .presentation{max-width:980px}
.flower-type-slide,.flower-bouquet-slide,.flower-surprise-slide{overflow:hidden}
.flower-public-inner{
    width:min(900px,100%);
    max-width:900px;
    max-height:calc(100dvh - 48px);
    padding:24px clamp(16px,4vw,34px);
    border:1px solid color-mix(in srgb,var(--primary) 16%,transparent);
    border-radius:32px;
    background:
        radial-gradient(circle at 92% 3%,color-mix(in srgb,var(--secondary) 30%,transparent),transparent 27%),
        color-mix(in srgb,var(--background) 91%,white);
    box-shadow:0 22px 70px rgba(44,25,37,.12);
    overflow:auto;
    scrollbar-width:thin;
}
.flower-public-kicker{display:block;font-size:2.2rem;line-height:1;margin-bottom:6px}
.flower-public-inner h2{margin:5px 0 8px;font-size:clamp(1.65rem,4vw,2.35rem);line-height:1.08}
.flower-public-inner>p{max-width:690px;margin:0 auto 19px;color:color-mix(in srgb,var(--text) 66%,transparent);line-height:1.48}
.flower-public-type-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;text-align:left}
.flower-public-type-card{
    position:relative;
    display:grid;
    grid-template-columns:42px 1fr;
    align-items:center;
    gap:10px;
    min-height:75px;
    padding:12px;
    border:2px solid color-mix(in srgb,var(--text) 12%,transparent);
    border-radius:19px;
    background:color-mix(in srgb,var(--background) 76%,white);
    cursor:pointer;
    transition:.18s ease;
}
.flower-public-type-card:hover{transform:translateY(-2px);border-color:var(--primary)}
.flower-public-type-card>input{position:absolute;opacity:0;pointer-events:none}
.flower-type-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;color:var(--accent);background:linear-gradient(135deg,var(--primary),var(--secondary));font-size:1.4rem}
.flower-public-type-card strong{font-size:.92rem;line-height:1.2}
.flower-public-type-card .flower-card-check{top:7px;right:7px;width:22px;height:22px;font-size:.72rem;background:var(--primary)}
.flower-public-type-card.is-selected{border-color:var(--primary);box-shadow:0 10px 24px color-mix(in srgb,var(--primary) 17%,transparent)}
.flower-public-type-card.is-selected .flower-card-check{opacity:1;transform:scale(1)}
.public-flower-grid{grid-template-columns:repeat(4,minmax(0,1fr));text-align:left}
.public-flower-card{background:color-mix(in srgb,var(--background) 77%,white);border-color:color-mix(in srgb,var(--text) 12%,transparent)}
.public-flower-card.is-selected{border-color:var(--primary);box-shadow:0 12px 28px color-mix(in srgb,var(--primary) 18%,transparent)}
.public-flower-card .flower-card-check{background:var(--primary)}
.flower-public-counter{display:flex;align-items:center;justify-content:center;gap:7px;margin:0 0 13px;color:color-mix(in srgb,var(--text) 67%,transparent);font-weight:800}
.flower-public-counter strong{display:grid;place-items:center;min-width:32px;height:32px;padding:0 8px;border-radius:10px;color:var(--accent);background:var(--primary);font-size:1rem}
.flower-public-actions{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;margin-top:19px}
.flower-public-actions .presentation-button{margin-top:0}
.flower-surprise-inner{max-width:620px}
.flower-surprise-card{
    width:min(390px,100%);
    margin:15px auto 0;
    padding:12px;
    border:2px solid color-mix(in srgb,var(--primary) 38%,transparent);
    border-radius:28px;
    background:#fff;
    box-shadow:0 18px 42px color-mix(in srgb,var(--primary) 14%,transparent);
}
.flower-surprise-card img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:20px}
.flower-surprise-card strong{display:block;padding:12px 5px 5px;font-size:1.08rem}
.flower-public-error{margin:13px auto 0;max-width:620px}
.flower-public-error[hidden]{display:none!important}

/* Flower choice on HTML ticket */
.ticket-flower-field{
    padding:15px 16px!important;
    margin:8px 0 4px;
    border:1px solid color-mix(in srgb,var(--primary) 24%,transparent)!important;
    border-radius:17px;
    background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 8%,white),color-mix(in srgb,var(--secondary) 10%,white));
}
.ticket-flower-list{color:var(--primary);font-size:1rem!important;line-height:1.4}

@media(max-width:900px){
    .flower-editor-heading{grid-template-columns:1fr}
    .flower-bouquet-grid,.public-flower-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
    .flower-public-type-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:650px){
    .flower-editor-card{padding:19px;border-radius:24px}
    .flower-toggle-card{grid-template-columns:52px 1fr;padding:15px}
    .flower-toggle-visual{width:52px;height:30px}
    .flower-toggle-visual i{width:22px;height:22px}
    .flower-toggle-card>input:checked + .flower-toggle-visual i{transform:translateX(22px)}
    .flower-fixed-picker{padding:14px;border-radius:20px}
    .flower-bouquet-grid,.public-flower-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
    .flower-public-type-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .flower-type-slide,.flower-bouquet-slide,.flower-surprise-slide{padding:18px 12px}
    .flower-public-inner{max-height:calc(100dvh - 28px);padding:20px 12px;border-radius:25px}
    .flower-public-type-card{grid-template-columns:36px 1fr;min-height:64px;padding:9px;border-radius:16px}
    .flower-type-icon{width:36px;height:36px;border-radius:11px;font-size:1.18rem}
    .flower-public-type-card strong{font-size:.79rem}
    .flower-bouquet-card{padding:7px;border-radius:16px}
    .flower-bouquet-card img{border-radius:11px}
    .flower-bouquet-card-copy strong{font-size:.8rem}
    .flower-public-actions{position:sticky;bottom:-20px;margin:16px -12px -20px;padding:12px;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--background) 96%,white) 28%)}
    .flower-public-actions .presentation-button{padding:12px 16px;font-size:.86rem}
    .flower-surprise-card{width:min(330px,100%)}
}
@media(max-width:390px){
    .flower-public-type-grid{grid-template-columns:1fr 1fr}
    .flower-public-type-card{grid-template-columns:32px 1fr}
    .flower-type-icon{width:32px;height:32px}
    .flower-bouquet-card-copy small{font-size:.66rem}
}

.landing-timeline-story-end{margin-bottom:0}

/* ============================================================
   v3.1.25 — RESTORED CONSTRUCTOR PREVIEWS
   Based on the last working exact-preview implementation.
   ============================================================ */

[data-theme-preview]{
    --brand:var(--preview-primary);
    --brand-dark:color-mix(in srgb,var(--preview-primary) 82%,black);
}

.exact-public-preview{
    --preview-primary:#ef3f79;
    --preview-secondary:#f3b6c5;
    --preview-background:#fff8fa;
    --preview-text:#302028;
    --preview-button:#ef3f79;
    --preview-accent:#fff;
}

.exact-preview-heading{
    width:100%;
    display:grid;
    justify-items:center;
    gap:14px;
    text-align:center;
}
.exact-preview-heading .tab-preview-title{margin-bottom:0!important}
.exact-preview-tabs{justify-self:center}

.exact-preview-phone{
    --primary:var(--preview-primary);
    --secondary:var(--preview-secondary);
    --background:var(--preview-background);
    --text:var(--preview-text);
    --button:var(--preview-button);
    --accent:var(--preview-accent);
    isolation:isolate;
}

/* Keep the phone shell dark, but the invitation itself uses its real palette. */
.exact-preview-phone.presentation-body{background:#1f293a!important}

.exact-preview-phone .exact-preview-presentation{
    position:absolute;
    inset:24px 8px 22px;
    width:auto;
    height:auto;
    max-width:none;
    margin:0;
    overflow:hidden;
    border-radius:34px;
    background:var(--background);
    color:var(--text);
    box-shadow:none;
}
.exact-preview-phone .exact-preview-slide{
    padding:30px 20px 28px;
    overflow:hidden;
    background:var(--background);
    color:var(--text);
}
.exact-preview-phone .exact-preview-choice-form{
    width:100%;
    max-width:100%;
    max-height:100%;
    padding:8px 4px;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
}
.exact-preview-phone .choice-date-title{margin-top:0}
.exact-preview-phone .recipient-date-fields{margin-top:0}
.exact-preview-phone .meeting-summary[hidden]{display:none!important}
.exact-preview-phone .meeting-summary:empty{display:none!important}
.exact-preview-phone button,
.exact-preview-phone input,
.exact-preview-phone label{pointer-events:none}
.exact-preview-phone input[aria-disabled="true"]{opacity:1}
.exact-preview-phone .choice-next-button,
.exact-preview-phone .confirm-date-action .presentation-button{margin-top:16px}
.exact-preview-phone .activity-choice-list{width:100%}
.exact-preview-phone .activity-preview-empty{
    display:grid;
    place-items:center;
    min-height:92px;
    color:color-mix(in srgb,var(--text) 48%,transparent);
    text-align:center;
}

/* ---------- Date/place preview: real-looking recipient screen ---------- */

.recipient-meeting-inner{
    width:100%;
    max-width:500px;
    display:grid;
    gap:13px;
    align-content:center;
}
.meeting-public-kicker{
    display:block;
    font-size:2rem;
    line-height:1;
}
.recipient-meeting-inner h2{
    margin:0;
    font-size:clamp(1.55rem,5vw,2.2rem);
    line-height:1.08;
}
.meeting-public-help{
    max-width:520px;
    margin:0 auto;
    color:color-mix(in srgb,var(--text) 65%,transparent);
    line-height:1.45;
}
.meeting-public-fields{
    display:grid;
    gap:10px;
    text-align:left;
}
.meeting-public-fields label{
    display:grid;
    gap:5px;
}
.meeting-public-fields label>span{
    color:color-mix(in srgb,var(--text) 66%,transparent);
    font-size:.76rem;
    font-weight:850;
}
.meeting-public-fields input{
    width:100%;
    min-height:44px;
    border:1px solid color-mix(in srgb,var(--text) 16%,transparent);
    border-radius:13px;
    padding:10px 12px;
    background:color-mix(in srgb,var(--background) 78%,white);
    color:var(--text);
    font:750 .92rem/1.25 inherit;
    outline:0;
}
.meeting-public-status-card{
    padding:16px;
    border:1px solid color-mix(in srgb,var(--primary) 20%,transparent);
    border-radius:18px;
    background:color-mix(in srgb,var(--primary) 9%,var(--background));
    text-align:center;
}
.recipient-meeting-map-card{
    overflow:hidden;
    border:1px solid color-mix(in srgb,var(--text) 13%,transparent);
    border-radius:20px;
    background:color-mix(in srgb,var(--background) 82%,white);
    box-shadow:0 10px 28px rgba(46,27,37,.08);
}
.recipient-meeting-map{
    display:block;
    width:100%;
    height:240px;
    min-height:180px;
    background:
        linear-gradient(35deg,color-mix(in srgb,var(--secondary) 26%,transparent) 25%,transparent 25%) 0 0/34px 34px,
        linear-gradient(35deg,transparent 75%,color-mix(in srgb,var(--secondary) 22%,transparent) 75%) 0 0/34px 34px,
        color-mix(in srgb,var(--background) 90%,white);
}
.recipient-map-fallback{
    min-height:180px;
    display:grid;
    place-items:center;
    padding:24px;
    color:color-mix(in srgb,var(--text) 58%,transparent);
    text-align:center;
}
.recipient-map-controls{
    display:grid;
    gap:5px;
    padding:10px 12px 12px;
}
.recipient-map-geocode-button{
    justify-self:center;
    border:1px solid color-mix(in srgb,var(--primary) 34%,transparent);
    border-radius:999px;
    padding:8px 13px;
    background:color-mix(in srgb,var(--primary) 8%,white);
    color:var(--primary);
    font-weight:850;
}
.recipient-map-controls small{
    color:color-mix(in srgb,var(--text) 55%,transparent);
    font-size:.72rem;
    line-height:1.35;
}
.recipient-meeting-actions{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:9px;
    flex-wrap:wrap;
}
.recipient-meeting-actions .presentation-button{margin-top:0}

/* Compact version inside the constructor phone. */
.exact-preview-phone .recipient-meeting-slide{padding:18px 14px}
.exact-preview-phone .exact-preview-meeting-inner{
    max-width:100%;
    height:100%;
    align-content:center;
    gap:7px;
}
.exact-preview-phone .meeting-public-kicker{font-size:1.45rem}
.exact-preview-phone .recipient-meeting-inner h2{
    font-size:1.3rem;
    line-height:1.08;
}
.exact-preview-phone .meeting-public-help{
    font-size:.7rem;
    line-height:1.35;
}
.exact-preview-phone .meeting-public-fields{gap:6px}
.exact-preview-phone .meeting-public-fields label{gap:3px}
.exact-preview-phone .meeting-public-fields label>span{font-size:.63rem}
.exact-preview-phone .meeting-public-fields input{
    min-height:34px;
    border-radius:10px;
    padding:7px 9px;
    font-size:.72rem;
}
.exact-preview-phone .recipient-meeting-map-card{
    border-radius:15px;
}
.exact-preview-phone .editor-recipient-preview-map{
    width:100%;
    height:150px;
    min-height:150px;
}
.exact-preview-phone .recipient-map-fallback{
    min-height:150px;
    padding:14px;
    font-size:.72rem;
}
.exact-preview-phone .recipient-meeting-actions{gap:7px}
.exact-preview-phone .recipient-meeting-actions .presentation-button{
    padding:9px 13px;
    font-size:.72rem;
}

/* ---------- Continuation preview: compact like the real screen ---------- */

.exact-preview-phone .continuation-slide-inner{
    width:100%;
    max-width:430px;
}
.exact-preview-phone .continuation-range{pointer-events:none}
.exact-preview-phone[data-continuation-preview][aria-hidden="true"] .exact-preview-presentation{
    opacity:.38;
    filter:grayscale(.7);
}
.exact-preview-phone .continuation-slide{padding:20px 15px}
.exact-preview-phone .continuation-slide-inner{gap:10px}
.exact-preview-phone .continuation-slide .continuation-response-card{
    padding:18px 15px;
    border-radius:24px;
}
.exact-preview-phone .continuation-slide .continuation-response-icon{font-size:1.85rem}
.exact-preview-phone .continuation-slide .continuation-response-card h2{
    font-size:1.28rem;
    line-height:1.12;
    margin:6px 0;
}
.exact-preview-phone .continuation-slide .continuation-response-card p{
    font-size:.82rem;
    margin:0 0 10px;
}
.exact-preview-phone .continuation-slide .continuation-response-value{margin:4px 0 10px}
.exact-preview-phone .continuation-slide .continuation-response-value output{font-size:2.8rem}
.exact-preview-phone .continuation-slide .continuation-range{height:9px}
.exact-preview-phone .continuation-slide .continuation-range::-webkit-slider-thumb{
    width:24px;
    height:24px;
    border-width:3px;
}
.exact-preview-phone .continuation-slide .continuation-skip-option{
    margin-top:10px;
    padding:8px 11px;
    font-size:.76rem;
}
.exact-preview-phone .continuation-slide .continuation-response-card>small{
    margin-top:9px;
    font-size:.68rem;
}
.exact-preview-phone .continuation-slide-actions{gap:7px}
.exact-preview-phone .continuation-slide-actions .presentation-button{
    padding:10px 14px;
    font-size:.75rem;
}

/* ---------- Final preview: restore the compact ticket ---------- */

.exact-final-preview-screen{
    position:absolute;
    inset:24px 8px 22px;
    display:none;
    overflow:hidden;
    border-radius:34px;
    background:var(--background);
    color:var(--text);
}
.exact-final-preview-screen.is-active{display:block}
.exact-final-preview-screen[hidden]{display:none!important}
.exact-final-preview-screen .exact-preview-presentation{inset:0}
.exact-final-preview-phone .live-preview-home{z-index:30}

.editor-final-effect-layer{
    position:absolute;
    inset:0;
    z-index:15;
    overflow:hidden;
    pointer-events:none;
}
.editor-preview-decoration{position:absolute}

.editor-effect-ticket-page{
    min-height:100%;
    height:100%;
    display:grid;
    place-items:center;
    padding:18px 12px;
    overflow:hidden;
    background:var(--background);
    color:var(--text);
}
.editor-effect-ticket-wrap{
    width:100%;
    gap:0;
}
.editor-effect-ticket{
    --stub-width:auto;
    width:100%;
    display:grid;
    grid-template-columns:1fr;
    border-radius:22px;
    overflow:hidden;
}
.editor-effect-ticket .cinema-ticket-main{padding:22px 18px 18px}
.editor-effect-ticket .cinema-ticket-brand{font-size:.62rem}
.editor-effect-ticket .cinema-ticket-heading{padding:18px 0}
.editor-effect-ticket .cinema-ticket-heading h1{
    font-size:1.45rem;
    margin:.18em 0;
}
.editor-effect-ticket .cinema-ticket-heading p{
    font-size:.9rem;
    margin:0;
}
.editor-effect-ticket .cinema-ticket-barcode{
    min-height:56px;
    padding:10px 0 0;
    display:grid;
    place-items:center;
}
.editor-effect-ticket .cinema-ticket-stub{
    min-height:112px;
    padding:14px 18px;
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:12px;
    border-left:0;
    border-top:2px dashed color-mix(in srgb,var(--accent) 58%,transparent);
}
.editor-effect-ticket .stub-validity{
    font-size:.78rem!important;
    line-height:1.1!important;
    text-align:center!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
}
.editor-effect-ticket .stub-serial{font-size:.6rem}

.exact-preview-phone.theme-romantic .editor-effect-ticket{
    border-radius:26px;
    box-shadow:0 26px 70px color-mix(in srgb,var(--primary) 20%,rgba(35,18,30,.18));
}
.exact-preview-phone.theme-elegant .editor-effect-ticket{
    border-radius:5px;
    border:1px solid color-mix(in srgb,var(--text) 42%,transparent);
    box-shadow:0 22px 58px rgba(28,25,28,.18);
}
.exact-preview-phone.theme-elegant .editor-effect-ticket .cinema-ticket-heading h1{
    font-family:Didot,"Bodoni 72",Georgia,serif;
    text-transform:uppercase;
    letter-spacing:.02em;
}
.exact-preview-phone.theme-elegant .editor-effect-ticket .cinema-ticket-stub{
    background:color-mix(in srgb,var(--primary) 76%,#17181c);
}
.exact-preview-phone.theme-playful .editor-effect-ticket{
    border-radius:30px 18px 34px 20px;
    transform:rotate(-.65deg);
    box-shadow:7px 8px 0 color-mix(in srgb,var(--primary) 22%,transparent);
}

/* ---------- Flower preview: fill the phone height and never break words ---------- */

.exact-preview-phone .flower-type-slide,
.exact-preview-phone .flower-surprise-slide{
    padding:12px 10px;
}
.exact-preview-phone .flower-public-inner{
    box-sizing:border-box;
    width:100%;
    max-width:100%;
    height:100%;
    max-height:100%;
    min-height:0;
    padding:18px 11px 14px;
    overflow-y:auto;
    overflow-x:hidden;
    border-radius:0;
    box-shadow:none;
    display:flex;
    flex-direction:column;
}
.exact-preview-phone .flower-public-kicker{
    flex:0 0 auto;
    font-size:1.65rem;
    margin-bottom:3px;
}
.exact-preview-phone .flower-public-inner h2{
    flex:0 0 auto;
    margin:3px 0 5px;
    font-size:1.35rem;
    line-height:1.08;
}
.exact-preview-phone .flower-public-inner>p{
    flex:0 0 auto;
    margin:0 auto 10px;
    font-size:.74rem;
    line-height:1.35;
}
.exact-preview-phone .flower-public-type-grid{
    flex:1 1 auto;
    min-height:0;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:minmax(58px,1fr);
    gap:7px;
    align-content:stretch;
}
.exact-preview-phone .flower-public-type-card{
    box-sizing:border-box;
    grid-template-columns:32px minmax(0,1fr);
    gap:7px;
    min-width:0;
    min-height:58px;
    padding:8px 24px 8px 8px;
    border-radius:14px;
    overflow:hidden;
}
.exact-preview-phone .flower-type-icon{
    width:32px;
    height:32px;
    min-width:32px;
    border-radius:10px;
    font-size:1.05rem;
}
.exact-preview-phone .flower-public-type-card strong{
    min-width:0;
    max-width:100%;
    font-size:.72rem;
    line-height:1.12;
    white-space:normal;
    word-break:normal;
    overflow-wrap:normal;
    hyphens:none;
}
.exact-preview-phone .flower-public-type-card .flower-card-check{
    top:5px;
    right:5px;
    width:19px;
    height:19px;
    font-size:.62rem;
}
.exact-preview-phone .flower-public-counter{
    flex:0 0 auto;
    margin:9px 0 0;
    font-size:.72rem;
}
.exact-preview-phone .flower-public-counter strong{
    min-width:26px;
    height:26px;
    border-radius:9px;
    font-size:.82rem;
}
.exact-preview-phone .flower-public-actions{
    flex:0 0 auto;
    position:static;
    margin-top:auto;
    padding-top:9px;
    gap:7px;
    background:none;
}
.exact-preview-phone .flower-public-actions .presentation-button{
    margin-top:0;
    padding:9px 11px;
    font-size:.7rem;
}
.exact-preview-phone .flower-surprise-card{
    width:min(250px,88%);
    margin-inline:auto;
}
.exact-preview-phone .flower-surprise-card img{
    max-height:210px;
    object-fit:contain;
}

.exact-preview-phone [data-final-fixed-flower-screen][hidden],
.exact-preview-phone [data-final-recipient-flower-screen][hidden]{
    display:none!important;
}

@media(max-width:640px){
    .exact-preview-phone .exact-preview-slide{padding-inline:16px}
    .exact-preview-phone .choice-form{padding-inline:2px}
    .editor-effect-ticket .cinema-ticket-main{padding-inline:15px}
}

/* ============================================================
   v3.1.27 — launch discount display
   ============================================================ */
.landing-price-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
}
.launch-price,
.showcase-launch-price{
    display:inline-flex;
    align-items:center;
    gap:8px;
}
.launch-price del,
.showcase-launch-price del{
    opacity:.62;
    font-size:.86em;
}
.launch-price strong,
.showcase-launch-price strong{
    font-size:1.08em;
}
.launch-price em,
.showcase-launch-price em{
    font-style:normal;
    font-size:.72rem;
    font-weight:900;
    padding:3px 8px;
    border-radius:999px;
}
.launch-price em{
    background:#fff;
    color:var(--brand);
}
.showcase-launch-price em{
    background:var(--brand);
    color:#fff;
}
.showcase-ready{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    flex-wrap:wrap;
}

/* ============================================================
   v3.1.28 — mobile header logo placement
   Keep desktop exactly as before. On mobile move the logo left
   so it never overlaps "Můj účet / Odhlásit se".
   ============================================================ */
@media(max-width:700px){
    .brand-with-logo,
    .landing-page .brand-with-logo,
    body:not(.landing-page) .brand-with-logo{
        left:10px!important;
        right:auto!important;
        transform:none!important;
        margin:0!important;
        z-index:48!important;
    }

    .landing-page .brand-with-logo{
        top:3px!important;
        width:86px!important;
    }

    body:not(.landing-page) .brand-with-logo{
        top:2px!important;
        width:70px!important;
    }

    .site-header nav{
        position:relative;
        z-index:52;
        margin-left:auto;
        max-width:calc(100% - 92px);
        justify-content:flex-end;
        gap:10px;
    }
}

@media(max-width:390px){
    .landing-page .brand-with-logo{width:80px!important}
    body:not(.landing-page) .brand-with-logo{width:64px!important}

    .site-header nav{
        max-width:calc(100% - 78px);
        gap:8px;
        font-size:.82rem;
    }
}

/* ============================================================
   v3.1.46 — preserve working constructor previews; layer current landing only
   ============================================================ */
/* v3.1.41 — hero button stack / centered counter / restored TikTok block */
.landing-page .site-header > .brand-with-logo{
    display:none!important;
}
.landing-page .site-header nav{
    margin-left:auto;
}
.landing-page .hero.hero--landing-boosted{
    padding-top:36px!important;
    padding-bottom:24px!important;
    align-items:start;
}
.landing-page .hero-copy.hero-copy--landing-boosted{
    padding-top:0!important;
}
.landing-page .landing-hero-logo{
    display:flex;
    justify-content:center;
    align-items:center;
    width:100%;
    text-decoration:none;
    margin:0 0 18px;
}
.landing-page .landing-hero-logo__image{
    display:block;
    width:clamp(180px,18vw,240px);
    height:auto;
}
.landing-page .hero-copy--landing-boosted h1{
    margin-top:0;
}
.landing-page .landing-hero-form--boosted{
    width:100%;
    max-width:840px;
    margin-top:24px;
}
.landing-page .landing-price-button--boosted{
    width:min(100%,840px);
    min-height:148px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:18px;
    padding:22px 24px;
    border:0;
    border-radius:34px;
    background:linear-gradient(135deg,#ef3f79 0%,#ff5a8a 100%);
    box-shadow:0 24px 44px rgba(239,63,121,.28);
}
.landing-page .landing-price-button--boosted .landing-price-button__copy{
    display:block;
    font-size:clamp(1.55rem,2.35vw,2.3rem);
    font-weight:950;
    line-height:1.02;
    text-align:left;
    white-space:nowrap;
}
.landing-page .landing-price-pill--boosted{
    display:flex;
    align-items:center;
    gap:18px;
    padding:14px 18px;
    border-radius:28px;
    background:rgba(255,255,255,.18);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
    flex-wrap:nowrap;
}
.landing-page .landing-price-pill--boosted del,
.landing-page .landing-price-pill--boosted strong,
.landing-page .landing-price-pill--boosted em{
    white-space:nowrap;
}
.landing-page .landing-price-pill--boosted del{
    font-size:1.35rem;
    font-weight:800;
    opacity:.78;
}
.landing-page .landing-price-pill--boosted strong{
    font-size:clamp(2.25rem,3.8vw,3.2rem);
    line-height:1;
    font-weight:1000;
    color:#fff;
}
.landing-page .landing-price-pill--boosted em{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:128px;
    padding:14px 18px;
    border-radius:999px;
    background:#fff;
    color:#ef3f79;
    font-size:clamp(1.35rem,2.4vw,1.9rem);
    font-style:normal;
    font-weight:1000;
    letter-spacing:-.02em;
    text-transform:uppercase;
    box-shadow:0 10px 22px rgba(255,255,255,.24);
}
.landing-page .landing-social-proof-band{
    width:min(1180px,calc(100% - 48px));
    margin:0 auto 26px;
}
.landing-page .landing-social-proof--band{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:20px;
    padding:24px 28px;
    border:1px solid #f0d8e0;
    border-radius:30px;
    background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(255,243,247,.98));
    box-shadow:0 14px 34px rgba(95,40,61,.08);
    text-align:center;
}
.landing-page .landing-social-proof__icon{
    width:66px;
    height:66px;
    flex:0 0 66px;
    display:grid;
    place-items:center;
    border-radius:20px;
    background:linear-gradient(135deg,#f56a96,#ef3f79);
    color:#fff;
    font-size:2rem;
    box-shadow:0 14px 28px rgba(239,63,121,.24);
}
.landing-page .landing-social-proof__content{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:4px;
}
.landing-page .landing-social-proof__kicker{
    font-size:.95rem;
    line-height:1;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-weight:900;
    color:#9e6a7b;
}
.landing-page .landing-social-proof__count{
    font-size:clamp(2.4rem,5.4vw,4rem);
    line-height:.95;
    font-weight:1000;
    color:#16203d;
}
.landing-page .landing-social-proof__content p{
    margin:0;
    max-width:none;
    font-size:1.1rem;
    color:#73809a;
}
.landing-page .landing-tiktok-center{
    width:min(1180px,calc(100% - 48px));
    margin:0 auto 46px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:16px;
    text-align:center;
    text-decoration:none;
    color:#16203d;
}
.landing-page .landing-tiktok-big-icon{
    width:94px;
    height:94px;
    border-radius:28px;
    display:grid;
    place-items:center;
    background:#0f0f14;
    color:#fff;
    box-shadow:0 16px 34px rgba(13,14,23,.18);
    position:relative;
}
.landing-page .landing-tiktok-big-icon span{
    display:block;
    font-size:3rem;
    font-weight:1000;
    line-height:1;
    transform:translateY(-2px);
    text-shadow:3px 0 0 #00f2ea,-3px 0 0 #ff0050;
}
.landing-page .landing-tiktok-center strong{
    display:block;
    font-size:clamp(1.2rem,2vw,1.7rem);
    line-height:1.25;
    font-weight:900;
    max-width:900px;
}

@media (max-width:1100px){
    .landing-page .landing-price-button--boosted .landing-price-button__copy{
        white-space:normal;
    }
}

@media (max-width:900px){
    .landing-page .hero.hero--landing-boosted{
        padding-top:22px!important;
    }
    .landing-page .landing-hero-logo{
        margin-bottom:16px;
    }
    .landing-page .landing-hero-logo__image{
        width:160px;
    }
    .landing-page .landing-price-button--boosted{
        min-height:136px;
        padding:18px;
        border-radius:28px;
    }
    .landing-page .landing-price-pill--boosted strong{
        font-size:2.55rem;
    }
    .landing-page .landing-price-pill--boosted em{
        min-width:108px;
        padding:11px 14px;
        font-size:1.35rem;
    }
    .landing-page .landing-social-proof-band,
    .landing-page .landing-tiktok-center{
        width:min(100%,calc(100% - 28px));
    }
}

@media (max-width:640px){
    .landing-page .hero.hero--landing-boosted{
        padding-top:16px!important;
        padding-bottom:20px!important;
    }
    .landing-page .landing-hero-logo__image{
        width:146px;
    }
    .landing-page .landing-hero-form--boosted{
        margin-top:18px;
    }
    .landing-page .landing-price-button--boosted{
        gap:14px;
        padding:16px 14px;
        border-radius:24px;
        min-height:128px;
    }
    .landing-page .landing-price-button--boosted .landing-price-button__copy{
        font-size:1.3rem;
    }
    .landing-page .landing-price-pill--boosted{
        gap:10px;
        padding:10px 12px;
        width:auto;
        max-width:100%;
    }
    .landing-page .landing-price-pill--boosted del{
        font-size:1rem;
    }
    .landing-page .landing-price-pill--boosted strong{
        font-size:2rem;
    }
    .landing-page .landing-price-pill--boosted em{
        min-width:88px;
        font-size:1.15rem;
        padding:9px 11px;
    }
    .landing-page .landing-social-proof--band{
        flex-direction:column;
        gap:14px;
        padding:20px 18px;
    }
    .landing-page .landing-social-proof__content{
        align-items:center;
    }
    .landing-page .landing-social-proof__content p{
        font-size:.98rem;
    }
    .landing-page .landing-tiktok-big-icon{
        width:84px;
        height:84px;
        border-radius:24px;
    }
    .landing-page .landing-tiktok-big-icon span{
        font-size:2.55rem;
    }
    .landing-page .landing-tiktok-center strong{
        font-size:1.02rem;
    }
}


/* v3.1.42 — final CTA alignment polish */
.landing-page .landing-price-button--boosted{
    align-items:center!important;
}
.landing-page .landing-price-button--boosted .landing-price-button__copy{
    width:100%;
    text-align:center!important;
}
.landing-page .landing-price-pill--boosted{
    margin-left:auto;
    margin-right:auto;
    justify-content:center;
}
@media (max-width:640px){
    .landing-page .landing-price-button--boosted .landing-price-button__copy{
        text-align:center!important;
    }
    .landing-page .landing-price-pill--boosted{
        margin-left:auto;
        margin-right:auto;
        justify-content:center;
    }
}


/* v3.1.43 — mobile hero logo above phone */
.landing-page .landing-mobile-hero-logo{
    display:none;
}
@media (max-width:900px){
    .landing-page .hero.hero--landing-boosted{
        display:grid;
        grid-template-columns:1fr;
    }
    .landing-page .landing-mobile-hero-logo{
        order:-2;
        display:flex;
        justify-content:center;
        align-items:center;
        width:100%;
        margin:0 auto 10px;
        text-decoration:none;
    }
    .landing-page .landing-mobile-hero-logo__image{
        display:block;
        width:160px;
        height:auto;
    }
    .landing-page .hero-copy--landing-boosted .landing-hero-logo{
        display:none!important;
    }
    .landing-page .phone-demo{
        order:-1;
    }
    .landing-page .hero-copy.hero-copy--landing-boosted{
        order:0;
    }
}
@media (max-width:640px){
    .landing-page .landing-mobile-hero-logo{
        margin-bottom:8px;
    }
    .landing-page .landing-mobile-hero-logo__image{
        width:146px;
    }
}


/* v3.1.45 — mobile: move the hero content below the language pills; desktop untouched */
@media (max-width:900px){
    .landing-page .hero.hero--landing-boosted{
        padding-top:78px!important;
    }
}
@media (max-width:640px){
    .landing-page .hero.hero--landing-boosted{
        padding-top:82px!important;
    }
}


/* ============================================================
   v3.1.49 — readable final ticket for dark/night palettes
   The invitation itself may use light text on a dark background,
   but the physical ticket "paper" is always light. Therefore the
   ticket gets its own dark ink instead of inheriting --text.
   ============================================================ */
.cinema-ticket{
    --ticket-ink:#2f242a;
    --ticket-muted:#746771;
}
.cinema-ticket-main{
    color:var(--ticket-ink)!important;
}
.cinema-ticket-heading h1,
.cinema-ticket-heading p,
.cinema-ticket-field strong:not(.ticket-flower-list),
.ticket-place-title{
    color:var(--ticket-ink)!important;
}
.cinema-ticket-field small{
    color:var(--ticket-muted)!important;
}
.cinema-ticket-field span:not(.ticket-flower-list),
.ticket-place-comment,
.ticket-place-coordinates{
    color:var(--ticket-muted)!important;
    opacity:1!important;
}
.cinema-ticket-barcode span{
    color:var(--ticket-muted)!important;
}

/* Keep palette accents where they are intentional. */
.cinema-ticket-brand,
.cinema-ticket-kicker,
.cinema-ticket-heading p span,
.ticket-flower-list{
    color:var(--primary)!important;
}
.ticket-place-open-link{
    color:var(--button)!important;
}


/* ============================================================
   v3.1.50 — mobile flash message / wizard action collision
   Success toasts must never cover or intercept the wizard buttons.
   ============================================================ */
.messages{
    pointer-events:none;
    max-width:min(420px,calc(100vw - 24px));
}
.message{
    pointer-events:none;
    max-width:100%;
    box-shadow:0 14px 34px rgba(20,28,23,.18);
}
.message.success{
    animation:odemne-success-toast-out 4s ease forwards;
}
@keyframes odemne-success-toast-out{
    0%,72%{
        opacity:1;
        transform:translateY(0);
        visibility:visible;
    }
    100%{
        opacity:0;
        transform:translateY(8px);
        visibility:hidden;
    }
}

@media(max-width:700px){
    .messages{
        left:12px;
        right:12px;
        bottom:calc(112px + env(safe-area-inset-bottom));
        display:grid;
        justify-items:end;
        width:auto;
        max-width:none;
        z-index:70;
    }
    .message{
        width:auto;
        max-width:min(340px,100%);
        padding:12px 15px;
        border-radius:14px;
        font-size:.92rem;
        line-height:1.3;
    }
}


/* ============================================================
   v3.1.53 — activity recipient limit: 1–5 button selector
   ============================================================ */
.activity-response-settings.activity-limit-settings{
    margin-top:22px;
    padding:20px;
    border:1px solid #f0d9e1;
    border-radius:20px;
    background:linear-gradient(135deg,#fff8fb 0%,#fff3f7 100%);
    display:grid;
    gap:16px;
}
.activity-limit-copy{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.activity-limit-copy strong{
    font-size:1rem;
    line-height:1.35;
    color:var(--ink);
}
.activity-limit-buttons{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
}
.activity-limit-button{
    appearance:none;
    min-height:52px;
    border:1px solid #f0bfd0;
    border-radius:16px;
    background:#fff;
    color:#a24d6a;
    font:950 1.15rem/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    cursor:pointer;
    box-shadow:0 7px 18px rgba(155,68,100,.06);
    transition:transform .15s ease,box-shadow .15s ease,background .15s ease,color .15s ease,border-color .15s ease;
}
.activity-limit-button:hover{
    transform:translateY(-1px);
    border-color:#ef7da4;
    box-shadow:0 10px 22px rgba(239,63,121,.12);
}
.activity-limit-button.is-active,
.activity-limit-button[aria-pressed="true"]{
    border-color:var(--brand);
    background:linear-gradient(135deg,#ef3f79,#f65c8e);
    color:#fff;
    box-shadow:0 12px 26px rgba(239,63,121,.25);
}
.activity-limit-native-fields{
    display:none!important;
}
@media(max-width:640px){
    .activity-response-settings.activity-limit-settings{
        padding:17px 15px;
        gap:14px;
    }
    .activity-limit-buttons{
        gap:7px;
    }
    .activity-limit-button{
        min-height:48px;
        border-radius:14px;
        font-size:1.08rem;
    }
}


/* ============================================================
   v3.1.56 — final preview activation price + mobile safe spacing
   ============================================================ */
.preview-activation-button{
    display:flex!important;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-height:76px!important;
    padding:12px 16px!important;
}
.preview-activation-button__label{
    display:block;
    font-weight:950;
    line-height:1.05;
}
.preview-activation-button__price{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    white-space:nowrap;
    line-height:1;
}
.preview-activation-button__price del{
    font-size:.82rem;
    font-weight:800;
    opacity:.72;
}
.preview-activation-button__price strong{
    font-size:1.28rem;
    font-weight:1000;
}
.preview-activation-button__price em{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 9px;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    color:var(--button);
    font-style:normal;
    font-size:.78rem;
    font-weight:1000;
    letter-spacing:-.01em;
}

@media(max-width:760px){
    .presentation-body.preview-mode .preview-final-actions{
        margin-bottom:calc(34px + env(safe-area-inset-bottom))!important;
    }
    .preview-activation-button{
        min-height:82px!important;
    }
}


/* ============================================================
   v3.1.57 — polished final preview activation button
   ============================================================ */

/* The final action area must use the full available card width. */
.preview-final-actions{
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box;
}
.preview-final-actions .presentation-button{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box;
}

/* Flower screen has its own sticky/mobile rules; disable them in preview
   so both final buttons are perfectly symmetric. */
.flower-public-actions.preview-final-actions{
    position:static!important;
    bottom:auto!important;
    margin:24px 0 0!important;
    padding:0!important;
    background:none!important;
}

/* Activation button: title on its own line, price block below. */
.preview-activation-button{
    width:100%!important;
    align-self:stretch;
    min-height:94px!important;
    padding:14px 18px!important;
    gap:10px!important;
    text-align:center;
}
.preview-activation-button__label{
    width:100%;
    text-align:center;
    font-size:1.05rem;
    line-height:1.1;
    white-space:normal;
}
.preview-activation-button__price{
    width:min(100%,390px);
    min-height:42px;
    display:grid!important;
    grid-template-columns:auto auto auto;
    align-items:center;
    justify-content:center;
    column-gap:14px!important;
    padding:7px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.13);
    box-sizing:border-box;
}
.preview-activation-button__price del,
.preview-activation-button__price strong,
.preview-activation-button__price em{
    white-space:nowrap;
}
.preview-activation-button__price del{
    font-size:.88rem;
    opacity:.68;
}
.preview-activation-button__price strong{
    font-size:1.42rem;
    letter-spacing:-.02em;
}
.preview-activation-button__price em{
    min-width:72px;
    padding:7px 11px;
    font-size:.82rem;
}

/* Keep the whole action block safely above the mobile browser chrome. */
@media(max-width:760px){
    .presentation-body.preview-mode .preview-final-actions{
        margin-bottom:calc(46px + env(safe-area-inset-bottom))!important;
    }
    .preview-activation-button{
        min-height:98px!important;
        padding:14px 16px!important;
    }
    .preview-activation-button__price{
        width:100%;
        max-width:360px;
        column-gap:11px!important;
        padding:7px 10px;
    }
}

@media(max-width:390px){
    .preview-activation-button__price{
        column-gap:8px!important;
    }
    .preview-activation-button__price del{
        font-size:.8rem;
    }
    .preview-activation-button__price strong{
        font-size:1.28rem;
    }
    .preview-activation-button__price em{
        min-width:66px;
        padding:7px 9px;
        font-size:.76rem;
    }
}


/* ============================================================
   v3.1.58 — map-final preview scrolling + safe final actions
   ============================================================ */
@media(max-width:760px){
    .presentation-body.preview-mode .recipient-meeting-slide.is-active{
        overflow-x:hidden;
        overflow-y:auto;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior-y:contain;
        place-items:start center;
        padding-top:72px!important;
        padding-bottom:calc(42px + env(safe-area-inset-bottom))!important;
    }

    .presentation-body.preview-mode .recipient-meeting-slide.is-active .recipient-meeting-inner{
        width:100%;
        min-height:auto;
        margin:0 auto;
        align-content:start;
    }

    .presentation-body.preview-mode .recipient-meeting-actions.preview-final-actions{
        margin:22px 0 0!important;
        padding:0!important;
    }

    /* Do not add the old huge bottom margin inside this scrollable slide.
       The slide itself owns the safe-area padding now. */
    .presentation-body.preview-mode .recipient-meeting-slide.is-active .preview-final-actions{
        margin-bottom:0!important;
    }
}


/* ============================================================
   v3.1.59 — robust final meeting preview + visible voice player
   ============================================================ */

.public-voice-message--featured{
    width:min(100%,410px);
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:12px!important;
    padding:13px 15px!important;
    border:1px solid color-mix(in srgb,var(--primary) 28%,transparent);
    background:color-mix(in srgb,var(--primary) 10%,var(--background))!important;
    box-shadow:0 10px 24px color-mix(in srgb,var(--primary) 12%,transparent);
}
.public-voice-message__icon{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--primary);
    color:#fff;
    font-size:1.25rem;
}
.public-voice-message__body{
    min-width:0;
    display:grid;
    gap:7px;
    text-align:left;
}
.public-voice-message__body strong{
    color:var(--text);
    font-size:.88rem;
    line-height:1.2;
}
.public-voice-message__body audio{
    width:100%;
    min-width:0;
    height:36px;
}

/*
 public_invitation.html is a standalone page and used to keep requesting
 odemne.css?v=3.1.9. Therefore previous new CSS could remain cached on phones.
 v3.1.59 bumps that URL and also makes the meeting-final slide participate in
 normal page flow, so its buttons cannot be cut off by the bottom browser bar.
*/
@media(max-width:760px){
    .presentation-body.preview-mode{
        overflow-x:hidden!important;
        overflow-y:auto!important;
        min-height:100dvh;
        background:var(--background)!important;
    }

    .presentation-body.preview-mode .presentation{
        height:auto!important;
        min-height:100dvh!important;
        overflow:visible!important;
    }

    .presentation-body.preview-mode .recipient-meeting-slide.is-active{
        position:relative!important;
        inset:auto!important;
        min-height:100dvh!important;
        height:auto!important;
        overflow:visible!important;
        opacity:1!important;
        pointer-events:auto!important;
        transform:none!important;
        display:grid!important;
        place-items:start center!important;
        padding:
            72px
            20px
            calc(128px + env(safe-area-inset-bottom))
            20px!important;
    }

    .presentation-body.preview-mode .recipient-meeting-slide.is-active .recipient-meeting-inner{
        width:100%;
        max-width:520px;
        min-height:auto!important;
        align-content:start!important;
        margin:0 auto!important;
    }

    .presentation-body.preview-mode .recipient-meeting-slide.is-active .recipient-meeting-actions.preview-final-actions{
        position:relative!important;
        bottom:auto!important;
        width:100%!important;
        margin:24px 0 0!important;
        padding:0 0 14px!important;
    }

    .presentation-body.preview-mode .recipient-meeting-slide.is-active .preview-activation-button{
        margin-bottom:0!important;
    }
}


/* ============================================================
   v3.1.60 — compact custom voice button on invitation answer
   ============================================================ */

/* Keep the first text line below the character card instead of centering
   an overflowing grid and letting its top row slide under the image. */
.second-character-copy{
    align-content:start;
}
.second-character-copy .large-copy{
    margin-top:10px;
}

/* Replace the browser audio controls with one compact custom play/pause button. */
.public-voice-message--featured{
    width:min(100%,330px);
    min-height:64px;
    display:flex!important;
    align-items:center;
    justify-content:flex-start;
    gap:13px!important;
    margin:5px auto 3px!important;
    padding:8px 12px!important;
    border:1px solid color-mix(in srgb,var(--primary) 24%,transparent);
    border-radius:22px;
    background:color-mix(in srgb,var(--primary) 9%,var(--background))!important;
    box-shadow:0 8px 20px color-mix(in srgb,var(--primary) 10%,transparent);
}
.public-voice-message--featured audio{
    display:none!important;
}
.public-voice-message__label{
    min-width:0;
    color:var(--text);
    font-size:.93rem;
    font-weight:900;
    line-height:1.2;
    text-align:left;
}
.public-voice-play-button{
    position:relative;
    flex:0 0 48px;
    width:48px;
    height:48px;
    margin:0;
    padding:0;
    border:0;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--primary);
    color:#fff;
    box-shadow:0 7px 18px color-mix(in srgb,var(--primary) 34%,transparent);
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
    transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
}
.public-voice-play-button:hover{
    transform:translateY(-1px) scale(1.03);
    box-shadow:0 9px 22px color-mix(in srgb,var(--primary) 40%,transparent);
}
.public-voice-play-button:active{
    transform:scale(.96);
}
.public-voice-play-button:focus-visible{
    outline:3px solid color-mix(in srgb,var(--primary) 32%,transparent);
    outline-offset:3px;
}
.public-voice-play-button__icon{
    position:relative;
    width:18px;
    height:20px;
    display:block;
}
.public-voice-play-button__icon::before{
    content:"";
    position:absolute;
    left:5px;
    top:3px;
    width:0;
    height:0;
    border-top:7px solid transparent;
    border-bottom:7px solid transparent;
    border-left:11px solid #fff;
    transition:.14s ease;
}
.public-voice-play-button.is-playing .public-voice-play-button__icon::before{
    left:3px;
    top:3px;
    width:4px;
    height:14px;
    border:0;
    border-radius:2px;
    background:#fff;
    box-shadow:8px 0 0 #fff;
}

@media(max-width:640px){
    .second-character-copy{
        gap:6px;
        padding:12px 10px 4px;
        overflow-y:auto;
    }
    .second-character-copy .large-copy{
        margin-top:8px;
    }
    .public-voice-message--featured{
        width:min(100%,310px);
        min-height:58px;
        padding:6px 10px!important;
        margin:4px auto 2px!important;
        border-radius:20px;
    }
    .public-voice-play-button{
        flex-basis:44px;
        width:44px;
        height:44px;
    }
    .public-voice-message__label{
        font-size:.88rem;
    }
}


/* ============================================================
   v3.1.61 — hardened custom voice button
   ============================================================ */
.public-voice-message--featured .public-voice-play-button{
    -webkit-appearance:none!important;appearance:none!important;
    flex:0 0 48px!important;width:48px!important;min-width:48px!important;max-width:48px!important;
    height:48px!important;min-height:48px!important;max-height:48px!important;
    margin:0!important;padding:0!important;border:0!important;border-radius:999px!important;
    display:grid!important;place-items:center!important;background:var(--primary)!important;color:#fff!important;
    box-shadow:0 7px 18px color-mix(in srgb,var(--primary) 34%,transparent)!important;
    font:900 21px/1 system-ui,sans-serif!important;line-height:1!important;text-indent:0!important;overflow:visible!important;
}
.public-voice-message--featured .public-voice-play-button__icon{
    position:static!important;width:auto!important;height:auto!important;display:block!important;
    color:#fff!important;font:900 21px/1 system-ui,sans-serif!important;line-height:1!important;transform:translateX(1px);
}
.public-voice-message--featured .public-voice-play-button__icon::before{content:none!important}
.public-voice-message--featured .public-voice-play-button.is-playing .public-voice-play-button__icon{transform:none;font-size:19px!important;letter-spacing:-2px}
@media(max-width:640px){
    .public-voice-message--featured .public-voice-play-button{
        flex-basis:46px!important;width:46px!important;min-width:46px!important;max-width:46px!important;
        height:46px!important;min-height:46px!important;max-height:46px!important;
    }
}


/* ============================================================
   v3.1.62 — iPhone-only Safari fixes
   Android and desktop are intentionally untouched.
   ============================================================ */

/* iOS Safari can paint native date/time controls from a fading sibling slide
   above the active slide. On iPhone we make inactive presentation slides truly
   non-visible and give the active slide its own compositing layer. */
html.odemne-iphone .presentation .slide:not(.is-active){
    visibility:hidden!important;
    pointer-events:none!important;
    z-index:0!important;
}
html.odemne-iphone .presentation .slide.is-active{
    visibility:visible!important;
    z-index:2!important;
    -webkit-transform:translateZ(0);
    transform:translateZ(0);
}

/* Safari occasionally lays out a posterless video at its intrinsic geometry
   inside the constructor phone. Re-anchor only that iPhone preview video to the
   exact centre of its frame. */
html.odemne-iphone .invitation-live-preview .live-preview-character video{
    display:block!important;
    position:absolute!important;
    inset:auto!important;
    left:50%!important;
    top:50%!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:cover!important;
    object-position:50% 50%!important;
    -webkit-transform:translate3d(-50%,-50%,0)!important;
    transform:translate3d(-50%,-50%,0)!important;
}

/* Use the full visible Safari viewport on flower screens. The slide itself owns
   the safe-area padding; the inner card fills the remaining height and scrolls
   internally, so the last row/buttons cannot be clipped by the bottom toolbar. */
html.odemne-iphone body.presentation-body .flower-type-slide,
html.odemne-iphone body.presentation-body .flower-bouquet-slide,
html.odemne-iphone body.presentation-body .flower-surprise-slide{
    padding:max(6px,env(safe-area-inset-top)) 6px max(4px,env(safe-area-inset-bottom))!important;
}
html.odemne-iphone body.presentation-body.preview-mode .flower-type-slide,
html.odemne-iphone body.presentation-body.preview-mode .flower-bouquet-slide,
html.odemne-iphone body.presentation-body.preview-mode .flower-surprise-slide{
    padding-top:max(52px,env(safe-area-inset-top))!important;
}
html.odemne-iphone body.presentation-body .flower-public-inner{
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:12px 9px max(8px,env(safe-area-inset-bottom))!important;
    border-radius:20px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
}
html.odemne-iphone body.presentation-body .flower-public-actions{
    bottom:0!important;
    margin-bottom:0!important;
    padding-bottom:max(8px,env(safe-area-inset-bottom))!important;
}
