/* Visual design of everything drawn over the video (shared by the editor preview and the export). */
.ov{position:absolute;inset:0;pointer-events:none;overflow:hidden;direction:ltr;
  --glass:rgba(16,16,24,.62);--glass-line:rgba(255,255,255,.16)}

/* ---------- headlines ---------- */
.ov-h{position:absolute;width:0;height:0}
/* order phone (CTA) */
.ov .ov-order .phone{position:absolute;left:0;top:0;translate:-50% -50%;width:9.5em;padding:1.1em .8em .9em;border-radius:1.6em;background:#fff;
  border:.42em solid #111;box-shadow:0 1em 2.4em rgba(0,0,0,.5);direction:rtl;color:#111;pointer-events:auto;cursor:move}
.ov .ov-order .ph-notch{position:absolute;top:.25em;left:50%;translate:-50% 0;width:3em;height:.45em;border-radius:1em;background:#111}
.ov .ov-order .ph-head{display:flex;align-items:center;gap:.4em;margin-bottom:.6em;font-size:.95em}
.ov .ov-order .ph-head img{width:2em;height:2em;border-radius:.4em;object-fit:cover;background:#eee}
.ov .ov-order .ph-f{margin-bottom:.45em}
.ov .ov-order .ph-f small{display:block;font-size:.62em;color:#888;margin-bottom:.15em}
.ov .ov-order .ph-f i{display:block;height:1.35em;border:1px solid #ddd;border-radius:.35em;background:#fafafa;overflow:hidden;position:relative}
.ov .ov-order .ph-f u{position:absolute;top:.42em;bottom:.42em;right:.45em;width:60%;border-radius:.2em;background:#bbb;transform-origin:right center;transform:scaleX(0)}
.ov .ov-order .ph-btn{margin-top:.7em;padding:.45em;border-radius:.5em;background:#16a34a;color:#fff;text-align:center;font-size:1em;box-shadow:0 .25em .6em rgba(22,163,74,.45)}
.ov .ov-order .ph-ok{position:absolute;right:-.6em;bottom:-.6em;width:1.9em;height:1.9em;border-radius:50%;background:#16a34a;color:#fff;display:grid;place-items:center;
  font-size:1.2em;box-shadow:0 .2em .6em rgba(0,0,0,.35);opacity:0}
.ov .ov-order .ph-tap{position:absolute;left:50%;bottom:1.4em;width:1.6em;height:1.6em;margin-left:-.8em;border-radius:50%;background:rgba(0,0,0,.35);opacity:0}
/* price card */
.ov .ov-pricecard .pc{position:absolute;left:0;top:0;translate:none;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;
  gap:.12em;padding:.55em 1.1em .6em;border-radius:.9em;background:linear-gradient(160deg,rgba(30,30,36,.95),rgba(8,8,12,.97));
  border:1.5px solid rgba(255,255,255,.16);box-shadow:0 .5em 1.6em rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.12);
  overflow:visible;white-space:nowrap;pointer-events:auto;cursor:move;isolation:isolate}
.ov .ov-pricecard .pc-glow{position:absolute;inset:-.35em;border-radius:1.1em;z-index:-1;background:radial-gradient(closest-side,var(--g1),transparent);filter:blur(.6em);opacity:.45}
.ov .ov-pricecard .pc-label{font-size:.78em;color:#fff;background:var(--accent);padding:.05em .7em .12em;border-radius:99px;line-height:1.35;margin-bottom:.05em}
.ov .ov-pricecard .pc-old{position:relative;font-size:.95em;color:rgba(255,255,255,.75);line-height:1.1}
.ov .ov-pricecard .pc-old small{font-size:.6em;margin-left:.2em}
.ov .ov-pricecard .pc-strike{position:absolute;left:-8%;right:-8%;top:52%;height:.12em;border-radius:.1em;background:#FF3B30;transform-origin:left center;
  box-shadow:0 0 .3em rgba(255,59,48,.7);rotate:-8deg}
.ov .ov-pricecard .pc-now{display:flex;align-items:baseline;gap:.15em;line-height:1;margin-top:-.05em}
.ov .ov-pricecard .pc-num{background:linear-gradient(180deg,#FFFFFF 0%,#FFE680 45%,#FFC21A 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 .06em .12em rgba(0,0,0,.5));font-variant-numeric:tabular-nums}
.ov .ov-pricecard .pc-now small{font-size:1em;color:#FFD84D}
.ov .ov-pricecard .pc-rest{font-size:.7em;color:#fff;background:rgba(52,199,89,.9);padding:.08em .7em .14em;border-radius:99px;margin-top:.15em;line-height:1.35}
.ov .ov-pricecard .pc-off{position:absolute;top:-.55em;right:-.75em;font-size:.82em;font-weight:700;color:#fff;background:#FF3B30;padding:.18em .5em;border-radius:.5em;
  box-shadow:0 .2em .6em rgba(255,59,48,.55);rotate:-12deg;line-height:1.2}
.ov .ov-pricecard .pc-shine{position:absolute;top:0;bottom:0;left:0;width:35%;border-radius:inherit;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transform:translateX(-180%) skewX(-20deg)}
.ov-h>*{position:absolute;left:0;top:0;pointer-events:auto;cursor:move}
.ov-txt{translate:-50% -50%;white-space:nowrap;line-height:1.25;padding:0 .05em;user-select:none}
.ov-txt.editing{cursor:text;user-select:text;outline:2px solid #ef6a40;background:rgba(0,0,0,.25);border-radius:3px}
.ov-pulse{width:0;height:0}
.ov-pulse .ov-shape{position:absolute;left:0;top:0}
.ov-ring,.ov-line{pointer-events:none!important}

/* emphasised words: *word* -> gradient + glow */
.ov .em{background:linear-gradient(100deg,var(--g1),var(--g2));-webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-text-stroke:0!important;
  /* dark halo first so the gradient stays readable on bright photos, then the coloured glow */
  filter:drop-shadow(0 .04em .02em rgba(0,0,0,.85)) drop-shadow(0 0 .12em rgba(0,0,0,.55)) drop-shadow(0 0 .2em color-mix(in srgb,var(--g2) 55%,transparent))}
.ov-title .em,.ov-txt .em{padding:0 .04em}
.ov-hero .ov-txt{font-weight:400}

/* ---------- design elements ---------- */
.ov-el{position:absolute;width:0;height:0}
.ov-el>*{position:absolute;left:0;top:0;pointer-events:auto;cursor:move}
.ov-float{translate:-50% -50%}
.ov .card{position:relative;aspect-ratio:4/5;background:var(--glass);border:1.5px solid var(--glass-line);overflow:hidden;
  box-shadow:0 0 0 1px rgba(0,0,0,.25),0 .6em 2.2em -.4em rgba(0,0,0,.6),0 0 1.6em -.1em color-mix(in srgb,var(--ac) 70%,transparent);
  backdrop-filter:blur(10px);display:flex;flex-direction:column}
.ov .card img{width:100%;flex:1;min-height:0;object-fit:cover;display:block}
.ov .card .ph{flex:1;display:grid;place-items:center;color:#fff;font-size:1.1em;padding:.4em;text-align:center}
.ov .card .ctitle{color:#fff;text-align:center;padding:.35em .4em .6em;font-size:.95em;line-height:1.2;background:linear-gradient(transparent,rgba(0,0,0,.35))}
.ov .card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(140deg,rgba(255,255,255,.22),transparent 38%,transparent 70%,rgba(255,255,255,.06))}
.ov .pill{position:absolute;left:50%;bottom:0;transform:translate(-50%,40%);display:inline-flex;align-items:center;gap:.35em;white-space:nowrap;
  padding:.28em .85em .3em;border-radius:99px;color:#fff;line-height:1.2;
  background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 88%,#fff),var(--ac) 60%,color-mix(in srgb,var(--ac) 75%,#000));
  box-shadow:0 0 0 1.5px rgba(255,255,255,.35) inset,0 .35em 1.2em -.2em color-mix(in srgb,var(--ac) 80%,transparent)}
.ov .pill .ico{width:1.05em;height:1.05em;background:rgba(255,255,255,.25);border-radius:50%;padding:.12em;box-sizing:border-box}

.ov .tabs{translate:-50% -50%;display:flex;gap:.3em;padding:.3em;border-radius:99px;white-space:nowrap;direction:rtl;
  background:var(--glass);border:1.5px solid var(--glass-line);backdrop-filter:blur(10px);
  box-shadow:0 .5em 1.8em -.5em rgba(0,0,0,.6)}
.ov .tab{position:relative;padding:.32em .9em;border-radius:99px;color:rgba(255,255,255,.72);line-height:1.2;
  background:linear-gradient(135deg,var(--g1),var(--g2)) center/0% 100% no-repeat}
.ov .tab.on{color:#fff;background-size:100% 100%;box-shadow:0 0 1.1em -.1em color-mix(in srgb,var(--g2) 70%,transparent)}
.ov .tab .tick{position:absolute;top:-.42em;left:-.3em;width:1.05em;height:1.05em;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--g1),var(--g2));border:2px solid rgba(255,255,255,.9);color:#fff}
.ov .ico{display:inline-block;flex:none}
.ov .ico.s{width:.68em;height:.68em}
.ov .emo{translate:-50% -50%;line-height:1;font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif;
  filter:drop-shadow(0 .08em .18em rgba(0,0,0,.45))}

/* ---------- captions ---------- */
.ov-cap{position:absolute;left:50%;translate:-50% -50%;max-width:90%;text-align:center;line-height:1.3;pointer-events:auto;cursor:ns-resize;
  user-select:none;-webkit-text-stroke:var(--stroke) #000;paint-order:stroke fill}
.ov-cap .hot{color:var(--hi)}
.ov-cap.cap-pop_word .hot{font-size:1.18em}
.ov-cap .big{font-size:1.5em}
.ov-cap.cap-box_word{-webkit-text-stroke:0;text-shadow:0 .06em .25em rgba(0,0,0,.8)}
.ov-cap.cap-box_word .hot{color:#fff;padding:0 .22em;border-radius:.22em;-webkit-box-decoration-break:clone;
  background:linear-gradient(135deg,var(--g1),var(--g2));box-shadow:0 0 .8em -.1em color-mix(in srgb,var(--g2) 70%,transparent)}
.ov-cap.box{-webkit-text-stroke:0;background:rgba(0,0,0,.75);padding:.1em .45em;border-radius:.2em}

/* ---------- editor-only chrome (handles, selection, guides) ---------- */
.ov-handle{display:none;width:14px;height:14px;margin:-7px 0 0 -7px;background:#fff;border:2px solid #ef6a40;border-radius:50%;cursor:nwse-resize!important;z-index:2}
.ov-h.sel .ov-txt,.ov-el.sel>:first-child{outline:1.5px dashed #fff;outline-offset:5px}
.ov-h.sel .ov-handle,.ov-el.sel .ov-handle{display:block}
.ov-cap.sel{outline:1.5px dashed #fff;outline-offset:4px}
.ov-guide{position:absolute;background:#ef6a40;opacity:0;transition:opacity .1s}
.ov-guide.v{left:50%;top:0;bottom:0;width:1px}
.ov-guide.h{top:50%;left:0;right:0;height:1px}
.ov-guide.on{opacity:.9}
.render .ov-handle,.render .ov-guide{display:none!important}
/* CTA: cascading arrows pointing at the platform's button under the video */
.ov .ov-arrows{position:absolute;left:0;translate:-50% 0;display:flex;flex-direction:column;align-items:center;gap:.05em;pointer-events:none}
.ov .ov-arrows i{display:block;width:.55em;height:.55em;border-right:.16em solid #fff;border-bottom:.16em solid #fff;transform:rotate(45deg);
  filter:drop-shadow(0 .05em .1em rgba(0,0,0,.6));opacity:0}

/* ---- v2 graphics: review card, sticker, cut accents, progress (shared by the editors and the export) ---- */
.ov .ov-review .rv{position:absolute;left:0;top:0;translate:-50% -50%;padding:.9em 1.1em 1em;border-radius:1.1em;background:rgba(255,255,255,.96);color:#111;
  box-shadow:0 .6em 1.8em rgba(0,0,0,.35);box-sizing:border-box}
.ov .ov-review .rv-head{display:flex;align-items:center;gap:.5em;font-size:1em}
.ov .ov-review .rv-av{width:2em;height:2em;border-radius:50%;display:grid;place-items:center;font-style:normal;color:#fff;
  background:linear-gradient(135deg,var(--g1),var(--g2));font-weight:700}
.ov .ov-review .rv-head b{font-weight:700}
.ov .ov-review .rv-ok{display:inline-grid;place-items:center;width:1.15em;height:1.15em;border-radius:50%;background:#1d9bf0;color:#fff}
.ov .ov-review .rv-ok .ico{width:.8em;height:.8em}
.ov .ov-review .rv-stars{margin:.35em 0 .3em;font-size:1.35em;letter-spacing:.06em;color:#FFB400;text-align:start}
.ov .ov-review .rv-stars i{display:inline-block;font-style:normal;text-shadow:0 0 .3em rgba(255,180,0,.5)}
.ov .ov-review .rv-txt{font-size:1.12em;line-height:1.35}
.ov .ov-sticker .stk{position:absolute;left:0;top:0;translate:-50% -50%;display:grid;place-items:center}
.ov .ov-sticker .stk-burst{position:absolute;inset:0;background:var(--ac,var(--accent));clip-path:polygon(50% 0%,61% 11%,75% 6%,79% 21%,94% 25%,89% 39%,100% 50%,89% 61%,94% 75%,79% 79%,75% 94%,61% 89%,50% 100%,39% 89%,25% 94%,21% 79%,6% 75%,11% 61%,0% 50%,11% 39%,6% 25%,21% 21%,25% 6%,39% 11%);
  filter:drop-shadow(0 .3em .6em rgba(0,0,0,.35))}
.ov .ov-sticker .stk-in{position:relative;color:#fff;font-weight:800;text-align:center;line-height:1.05;padding:0 .4em;display:flex;flex-direction:column;align-items:center;gap:.1em;
  text-shadow:0 .06em .12em rgba(0,0,0,.35)}
.ov .ov-sticker .stk-in .ico{width:1.1em;height:1.1em}
.ov .ov-flash{position:absolute;inset:0;background:#fff;pointer-events:none;mix-blend-mode:screen}
.ov .ov-leak{position:absolute;inset:-10%;pointer-events:none;mix-blend-mode:screen;
  background:radial-gradient(60% 45% at 0% 30%,rgba(255,170,60,.9),rgba(255,90,60,.35) 45%,transparent 70%),
             radial-gradient(40% 35% at 10% 80%,rgba(255,220,150,.6),transparent 70%)}
.ov .ov-leak.r{transform:scaleX(-1)}
.ov .ov-progress{position:absolute;left:0;top:0;height:.55%;min-height:3px;background:var(--accent);box-shadow:0 0 8px var(--accent);pointer-events:none}

/* ---- style variants picked by the video's seed (render-core vpick) ---- */
.ov .ov-review.dark .rv{background:rgba(16,16,24,.82);color:#fff;border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(8px)}
.ov .ov-sticker.shape-circle .stk-burst{clip-path:circle(50%);box-shadow:inset 0 0 0 .35em rgba(255,255,255,.35)}
.ov .ov-sticker.shape-circle .stk-burst::after{content:"";position:absolute;inset:9%;border-radius:50%;border:.12em dashed rgba(255,255,255,.7)}
.ov .ov-sticker.shape-tag .stk{height:auto!important;aspect-ratio:2.1/1}
.ov .ov-sticker.shape-tag .stk-burst{clip-path:none;border-radius:.5em;transform:rotate(-4deg)}
.ov .ov-sticker.shape-tag .stk-in{flex-direction:row;gap:.3em}
.ov .ov-leak[data-tint="1"]{background:radial-gradient(60% 45% at 0% 30%,rgba(255,80,170,.85),rgba(160,60,255,.3) 45%,transparent 70%),
  radial-gradient(40% 35% at 10% 80%,rgba(255,170,220,.55),transparent 70%)}
.ov .ov-leak[data-tint="2"]{background:radial-gradient(60% 45% at 0% 30%,rgba(255,215,120,.85),rgba(90,200,255,.3) 45%,transparent 70%),
  radial-gradient(40% 35% at 10% 80%,rgba(180,240,255,.5),transparent 70%)}
.ov .ov-flash.tint{background:radial-gradient(circle at 50% 45%,#fff,var(--accent,#fff) 140%)}

/* ---------- inspired by an agency ad (Oct 29): ribbon / gold captions, chips, title card, particles ---------- */
.ov-cap.cap-ribbon{-webkit-text-stroke:0;line-height:1.75}
.ov-cap.cap-ribbon .rb{padding:.1em .45em;color:#fff;border-radius:.14em;-webkit-box-decoration-break:clone;box-decoration-break:clone;
  background:color-mix(in srgb,var(--accent) 62%,#2a0606);box-shadow:0 .12em .45em rgba(0,0,0,.35);font-size:.86em}
.ov-cap.cap-gold{-webkit-text-stroke:0}
.ov-cap.cap-gold span{background:linear-gradient(180deg,#FFF7DA 0%,#F6C453 55%,#C98A1B 100%);-webkit-background-clip:text;background-clip:text;
  color:transparent;filter:drop-shadow(0 0 .22em rgba(255,186,60,.5)) drop-shadow(0 .05em .08em rgba(0,0,0,.75))}
.ov-cap.cap-gold .now{filter:drop-shadow(0 0 .45em rgba(255,205,90,.95)) drop-shadow(0 .05em .08em rgba(0,0,0,.75))}
.ov-cap.cap-gold .next{opacity:0}
.ov .ov-chips .chips{position:absolute;left:0;top:0;translate:-50% -50%;display:flex;flex-wrap:wrap;justify-content:center;gap:.4em;width:max-content}
.ov .ov-chips .chip{display:grid;place-items:center;border-radius:50%;font-style:normal;color:#fff;font-weight:800;position:relative;
  background:radial-gradient(circle at 32% 26%,#fff 0 7%,color-mix(in srgb,var(--c) 45%,#fff) 16%,var(--c) 52%,color-mix(in srgb,var(--c) 55%,#000) 100%);
  box-shadow:0 0 .9em -.1em color-mix(in srgb,var(--c) 80%,transparent),inset 0 -.35em .6em rgba(0,0,0,.25)}
.ov .ov-chips .chip b{text-shadow:0 .06em .12em rgba(0,0,0,.45);line-height:1;text-align:center;padding:0 .1em}
.ov .ov-title_card .tcard{position:absolute;left:0;top:0;transform:translate(-50%,-50%);overflow:hidden;
  background:radial-gradient(ellipse at 50% 35%,color-mix(in srgb,var(--bg) 70%,#fff),var(--bg) 70%)}
.ov .ov-title_card .tc-shade{position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 22px,rgba(255,255,255,.06) 22px 26px);
  mask:linear-gradient(200deg,#000 0%,transparent 45%,transparent 70%,#000 100%)}
.ov .ov-title_card .tc-lv{position:absolute;width:38%;height:22%}
.ov .ov-title_card .tc-lv.tl{left:-4%;top:-3%;transform-origin:0 0}.ov .ov-title_card .tc-lv.tr{right:-4%;top:-3%;transform-origin:100% 0}
.ov .ov-title_card .tc-lv.br{right:-6%;bottom:-2%;transform-origin:100% 100%;--lf:#5E9B62}
.ov .ov-title_card .tc-lv i{position:absolute;left:30%;top:30%;width:70%;rotate:var(--r);scale:var(--s);transform-origin:0 50%;
  filter:drop-shadow(0 .3em .4em rgba(0,0,0,.18))}
.ov .ov-title_card .tc-lv.tr i{left:auto;right:30%;transform-origin:100% 50%;rotate:calc(180deg - var(--r))}
.ov .ov-title_card .tc-lv.br i{left:auto;right:25%;top:auto;bottom:25%;transform-origin:100% 50%;rotate:calc(180deg + var(--r))}
.ov .ov-title_card .tc-lv svg{width:100%;display:block}
.ov .ov-title_card .tc-in{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6em}
.ov .ov-title_card .tc-img{aspect-ratio:4/3;border-radius:6%;overflow:hidden;box-shadow:0 1em 2em -1em rgba(0,0,0,.45)}
.ov .ov-title_card .tc-img img{width:100%;height:100%;object-fit:cover;display:block}
.ov .ov-title_card .tc-t{color:#fff;text-align:center;line-height:1.2;padding:0 .4em;max-width:92%;
  text-shadow:0 0 .35em rgba(255,255,255,.55),0 .06em .18em rgba(0,0,0,.25)}
.ov .ov-title_card .tc-t .em{color:#FFF3C4}
.ov .ov-title_card .tc-s{color:rgba(255,255,255,.92);text-align:center;font-weight:700}
.ov .ov-particles{pointer-events:none}
.ov .ov-particles .ptc{position:absolute;left:0;top:0;transform:translate(-50%,-50%);pointer-events:none!important;overflow:hidden}
.ov .ov-particles .ptc i{position:absolute;left:0;top:0;width:var(--p);margin:calc(var(--p) * -.5) 0 0 calc(var(--p) * -.5);will-change:transform}
.ov .ov-particles .ptc svg{width:100%;display:block;filter:drop-shadow(0 .2em .3em rgba(0,0,0,.25))}
.ov .ov-particles .petal{display:block;width:70%;aspect-ratio:1/1.3;border-radius:60% 0 60% 0;background:linear-gradient(135deg,#FFD1DC,#F48FB1);
  box-shadow:0 .15em .3em rgba(0,0,0,.15)}
.ov .ov-particles .spark{display:block;width:45%;aspect-ratio:1;background:#fff;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);
  filter:drop-shadow(0 0 .25em #fff) drop-shadow(0 0 .5em #FFE7A3)}
.ov .ov-particles .bub{display:block;width:60%;aspect-ratio:1;border-radius:50%;border:2px solid rgba(255,255,255,.8);
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.9) 0 10%,rgba(255,255,255,.15) 25%,rgba(255,255,255,.05) 70%)}
/* the chapter slide covers the headlines under it; subtitles and cut accents stay on top */
.ov .ov-title_card{z-index:3}.ov-cap{z-index:4}.ov-flash,.ov-leak{z-index:5}
