/* GENERATED by build.py from _src/theme.base.* + parts/*. Do not edit here. */
/* ============================================================
   ClipMe theme for the opus.pro mirror.
   TWO VERSIONS, mirroring clipme.com exactly:
     default        -> DARK  (clipme.com's :root / @theme block)
     html.light     -> LIGHT (clipme.com's html.light block)
   Switch with ?theme=light / ?theme=dark, the toggle, or whatever
   is remembered in localStorage under `clipme-theme`.
   ============================================================ */

/* ---------- DARK (default) ---------- */
/* ============================================================================
   ClipMe theme overlay for the (OpusClip) Webflow mirror.
   COLOR + TYPE ONLY. No layout, no geometry, no behavior — functionality is
   identical to the original mirror.

   Technique: Webflow re-declares its full token set on many component wrappers
   (.a_autopilot_wrapper etc), so :root alone gets shadowed by the closer
   definition. Overriding on * with !important is what actually wins everywhere.
   Loaded AFTER the Webflow CSS.
   ========================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Sora:wght@600;700;800&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

:root{
  --cm-bg:#08080a; --cm-elev:#131316; --cm-elev2:#1b1b1f; --cm-border:#262630;
  --cm-fg:#ffffff; --cm-muted:#9b9ba6; --cm-faint:#6b6b76;
  --cm-red:#e63a55; --cm-red-soft:#ff5a73; --cm-live:#45e06a; --cm-radius:16px;
}

/* ---- 1. Accent tokens: every green / lime / gold / purple accent -> ClipMe red ---- */
*{
  --new_green:#e63a55!important;
  --ao_accent:#e63a55!important;
  --accent--green-light:#ff5a73!important;
  --accent--green-light-2:#ff5a73!important;
  --lemon-green:#e63a55!important;
  --medium-spring-green:#e63a55!important;
  --yellow-green:#e63a55!important;
  --bad15c:#e63a55!important;
  --ao_orange:#e63a55!important;
  --gold:#e63a55!important;
  --yellow--400:#e63a55!important;
  --playful-yellow:#ff5a73!important;
  --opus-purple:#e63a55!important;
  --opus-lake-blue:#e63a55!important;
  --opus-light-blue:#ff5a73!important;
  --opus-candy-blue:#ff5a73!important;

  /* ---- 2. Surfaces: opus greys -> ClipMe blacks ---- */
  --background--bg-background:#08080a!important;
  --background--bg-popover:#131316!important;
  --background--bg-accent:#1b1b1f!important;
  --background--bg-input:#1b1b1f!important;
  --background--bg-muted:#1b1b1f!important;
  --background--bg-secondary:#1b1b1f!important;
  --background--bg-secondary-80:#1b1b1fcc!important;
  --bg--foreground:#131316!important;
  --new_gray:#131316!important;
  --opus-dark-bg:#08080a!important;
  --ui--dark-primary:#131316!important;
  --ui--border:#262630!important;
  --ui--menu-background-blur:#08080ae6!important;

  /* ---- 3. Text ---- */
  --text--text-foreground:#ffffff!important;
  --text--text-primary:#ffffff!important;
  --text--text-secondary-foreground:#ffffff!important;
  --text--text-muted-foreground:#9b9ba6!important;
  --text--light-secondary:#9b9ba6!important;
  --text--secondary:#9b9ba6!important;
  --text--text-transparent:#6b6b76!important;

  /* ---- 4. Status ---- */
  --background--bg-success:#e63a55!important;   /* CLIPME-FACTS: green reserved for the live-status dot only */
  --text--text-success:#e63a55!important;
  --background--bg-error:#e5484d!important;     /* true error red, kept distinct */
  --text--text-error:#e5484d!important;
}

/* ---- 5. Hardcoded lime/green hexes that bypass the token system ---- */
[style*="#d1ff53" i],[style*="#cce843" i],[style*="#c6fd7f" i],
[style*="#a6c03d" i],[style*="#bad15c" i]{ color:#e63a55!important; }

/* ---- 6. Type: Sora display, Inter body ----
   The mirror sets Geistvf via `[data-font="geist"] *` + !important (specificity
   0,1,0), which outranks a bare `h1`. We match that selector shape exactly so
   equal specificity + later cascade position wins, then raise headings above it. */
html body[data-font="geist"], html body.a-ca_body,
html body[data-font="geist"] *, html body.a-ca_body *{
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif!important;
}
[data-font="geist"] h1, [data-font="geist"] h2, [data-font="geist"] h3,
[data-font="geist"] h4, [data-font="geist"] h5,
.a-ca_body h1, .a-ca_body h2, .a-ca_body h3, .a-ca_body h4, .a-ca_body h5,
[data-font="geist"] [class*="_h1"], [data-font="geist"] [class*="_h2"],
[data-font="geist"] [class*="_h3"], [data-font="geist"] [class*="heading"],
[data-font="geist"] [class*="opus-font-h"], [data-font="geist"] [class*="opus-font-custom"],
html body[data-font="geist"] h1, html body[data-font="geist"] h2,
html body[data-font="geist"] h3, html body[data-font="geist"] h4,
html body[data-font="geist"] h5, html body.a-ca_body h1, html body.a-ca_body h2,
html body.a-ca_body h3, html body.a-ca_body h4, html body.a-ca_body h5,
html body [class*="opus-font-h"], html body [class*="opus-font-custom"]{
  font-family:"Sora","Inter",system-ui,-apple-system,sans-serif!important;
  letter-spacing:-.02em;
}
/* code / mono surfaces keep a mono face */
[data-font="geist"] code, [data-font="geist"] pre, .a-ca_body code, .a-ca_body pre{
  font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace!important;
}





/* ---- 7. Injected cl!pme wordmark. Specificity has to clear the
   `html body[data-font="geist"] *` font rule above (0,1,2), and the colour is
   pinned rather than currentColor -- inheriting from the nav rendered it white
   on the white light palette, i.e. invisible. ---- */
html body .clipme-logo{
  display:inline-flex; align-items:center; line-height:1; white-space:nowrap;
}
html body .clipme-logo .clipme-word{
  font-family:"Sora","Inter",system-ui,sans-serif!important;
  font-weight:800!important; font-size:1.55rem; letter-spacing:-.04em;
  color:#ffffff!important;
}
html body .clipme-logo .clipme-bang{ color:#e63a55!important; }


/* ---- 20. LIGHT text colour. 1,768 elements were rendering white on the white
   ground -- the palette flip changed backgrounds but text kept inheriting the
   mirror's white. clipme.com sets `body { color: var(--color-fg) }` and lets it
   inherit; same here. Colour only. ---- */
html body[data-font="geist"], html body.a-ca_body{ color:#ffffff!important; }
html body[data-font="geist"] *, html body.a-ca_body *{ color:inherit; }

/* explicit white utilities -> light foreground */
html body [class*="text-color-white"], html body .a_text-color-white,
html body .white-underline, html body .cta-text, html body .is-highlighted{
  color:#ffffff!important;
}
html body [class*="text-color-grey"], html body [class*="a_text-color-grey"]{
  color:#9b9ba6!important;
}

/* things that must stay their own colour */
html body .clipme-hl{ color:#e63a55!important; }
html body .clipme-logo .clipme-bang{ color:#e63a55!important; }
html body .clipme-logo .clipme-word{ color:#ffffff!important; }
html body .clipme-freecta-btn, html body .clipme-freecta-btn *{ color:#08080a!important; }
/* red buttons keep white labels */
html body .button.is-primary, html body .button.is-primary *,
html body [class*="btn_primary"], html body [class*="btn_primary"] *,
html body [class*="button_primary"], html body [class*="button_primary"] *{
  color:#08080a!important;
}


/* ---- 9. Inline free CTA + risk-reversal microcopy ---- */
.clipme-freecta{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:22px 0}
.clipme-freecta-btn{display:inline-flex;align-items:center;justify-content:center;
  padding:13px 30px;border-radius:999px;background:#e63a55;
  font-family:"Inter",system-ui,sans-serif;font-weight:700;font-size:15px;text-decoration:none}
.clipme-freecta-btn:hover{background:#ff5a73}
.clipme-freecta-note,.clipme-reassure{
  color:#9b9ba6;font-family:"Inter",system-ui,sans-serif;font-size:12.5px;letter-spacing:.01em}
.clipme-reassure{margin-top:10px}

/* ---- 10. Smartbanner: its sizing script was never captured, so the logo SVG
   rendered 1424px wide and shoved the hero ~2800px down. ClipMe has no app. ---- */
.smartbanner, .smartbanner_content, .smartbanner_logo { display:none!important; }

/* ---- 11/12. Nav + dropdowns. Webflow's nav JS was not captured, so the mobile
   panel stayed open (5712px) and every dropdown rendered expanded (one 14,709px).
   Collapsed, and driven from CSS :hover/:focus so the menus still WORK. ---- */
@media (min-width:992px){
  .a-ca_navbar_menu_mobile_top{ display:none!important; }
  .a-ca_navbar, .a-ca_navbar_fixed-wrapper, .a-ca_navbar_component,
  .a-ca_navbar_container, .a-ca_navbar_menu, .a-ca_navbar_menu-wrapper{
    height:auto!important; max-height:none!important;
  }
  .a-ca_navbar_dropdown{ position:relative!important; }
  .a-ca_navbar_dropdown_list{
    display:none!important; position:absolute!important; top:100%!important; left:0!important;
    min-width:240px; max-height:70vh; overflow-y:auto;
    background:#08080a!important; border:1px solid #262630!important;
    border-radius:16px!important; padding:10px!important; z-index:9999!important;
    box-shadow:0 18px 50px rgba(0,0,0,.10)!important;
  }
  .a-ca_navbar_dropdown:hover > .a-ca_navbar_dropdown_list,
  .a-ca_navbar_dropdown:focus-within > .a-ca_navbar_dropdown_list,
  .a-ca_navbar_dropdown_list.w--open{ display:block!important; }
  .a-ca_navbar_dropdown_toggle{ height:auto!important; }
  .a-ca_navbar_dropdown_toggle_arrow{
    height:auto!important; width:12px!important; max-width:12px!important; flex:0 0 12px!important;
  }
  .a-ca_navbar_dropdown_toggle_arrow svg{ width:12px!important; height:12px!important; }
}

/* ---- 13. Testimonial avatars (third-party photos were replaced by initials) ---- */
.clipme-avatar{
  width:56px;height:56px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;background:#e63a55;color:#fff!important;
  font-family:"Sora","Inter",system-ui,sans-serif;font-weight:700;font-size:18px;
  letter-spacing:-.01em;flex:0 0 56px;
}
.clipme-handle{color:#9b9ba6;font-size:13px;font-weight:400}

/* ---- 14. Body ground: clipme.com light #08080a ---- */
html body[data-font="geist"], html body.a-ca_body{ background-color:#08080a!important; }

/* ---- 15. clipme.com light backdrop, verbatim from globals.css html.light
   body::before. Fixed, pointer-events:none, z-index:-1 -- paints behind
   everything, intercepts nothing, touches no animation. ---- */
html body[data-font="geist"]::before, html body.a-ca_body::before{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background-image:
    radial-gradient(58% 44% at 50% 0%, rgba(230,58,85,.16) 0%, rgba(230,58,85,0) 70%),
    radial-gradient(42% 34% at 82% 5%, rgba(230,58,85,.09) 0%, rgba(230,58,85,0) 60%),
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:100% 100%, 100% 100%, 40px 40px, 40px 40px;
  background-position:center top, right top, center center, center center;
}

/* ---- 16. Surfaces + remaining off-palette Webflow tokens -> clipme.com light ---- */
*{
  --background--bg-background:#08080a!important;
  --background--bg-popover:#131316!important;
  --background--bg-accent:#1b1b1f!important;
  --background--bg-input:#1b1b1f!important;
  --background--bg-muted:#1b1b1f!important;
  --background--bg-secondary:#1b1b1f!important;
  --background--bg-secondary-80:#1b1b1fcc!important;
  --bg--foreground:#131316!important;
  --new_gray:#131316!important;
  --opus-dark-bg:#08080a!important;
  --ui--dark-primary:#131316!important;
  --ui--border:#262630!important;
  --ui--menu-background-blur:#08080ae6!important;
  --text--text-foreground:#ffffff!important;
  --text--text-primary:#ffffff!important;
  --text--text-secondary-foreground:#ffffff!important;
  --text--text-muted-foreground:#9b9ba6!important;
  --text--light-secondary:#9b9ba6!important;
  --text--secondary:#9b9ba6!important;
  --text--text-transparent:#6b6b76!important;
  --bluish-black:#ffffff!important;
  --web--web-panel:#131316!important;
  --border--border-border:#262630!important;
  --border--border-muted:#262630!important;
  --border--border-foreground:#262630!important;
  --border--border-primary:#262630!important;
  --text--text-muted:#9b9ba6!important;
  --gainsboro-2:#9b9ba6!important;
  --white-smoke:#9b9ba6!important;
  --white-smoke-2:#9b9ba6!important;
  --white-smoke-search:#131316!important;
  --white-smoke-quote:#131316!important;
  --white-smoke-f1f3f6:#131316!important;
  --light-greyish-black:#131316!important;
  --light-steel-blue:#9b9ba6!important;
  --text-light:#9b9ba6!important;
  --background--bg-success:#e63a55!important;
  --text--text-success:#e63a55!important;
}

/* ---- 17. Off-palette classes with no token behind them ---- */
html body .a-ca_navbar_link_tag{ color:#08080a!important; background-color:#e63a55!important; }

/* ---- 19. Clip cards carried white borders that vanish on white ---- */
html body [class*="clip"], html body [class*="_card"], html body [class*="video"]{
  border-color:#262630;
}
html body [style*="border-color: rgb(255, 255, 255)" i]{ border-color:#ffffff!important; }


/* ---- 21. Activity ticker pill. Matches clipme.com's ActivityTicker styling:
   rounded-full, border-border, bg-elev, text-xs text-muted, green dot, bold
   handle, faint timestamp. The fade is on the pill only -- it adds no scroll
   trigger and touches nothing else. ---- */
.clipme-ticker{
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid #262630; background:#131316;
  border-radius:999px; padding:6px 14px; margin-bottom:14px;
  font-family:"Inter",system-ui,sans-serif; font-size:12.5px; line-height:1.2;
  color:#9b9ba6!important; white-space:nowrap;
}
.clipme-ticker{ opacity:1; transform:none; }
/* The hero wrapper is a flex container and a Webflow rule forces display:flex
   on its children, so the pill was being shrunk to 30px while its own content
   measured ~112px. Pin it back to an auto-width inline-flex item. */
html body .clipme-ticker{
  display:inline-flex!important;
  flex:0 0 auto!important;
  width:auto!important; max-width:none!important; min-width:0;
  align-self:center;
}
html body .clipme-ticker > span{ display:inline!important; flex:0 0 auto; }
html body .clipme-ticker > .clipme-ticker-dot{ display:inline-block!important; }
.clipme-ticker.is-in{
  /* enhancement only -- fill-mode:none so a paused/throttled animation can
     never leave the pill stuck invisible at frame 0 */
  animation:clipme-tick-in .45s ease none;
}
@keyframes clipme-tick-in{
  /* transform only. Animating opacity meant a paused or throttled animation
     could hold the pill at frame 0 and hide it entirely -- which is exactly
     what happened in a backgrounded tab. Movement never gates visibility. */
  from{ transform:translateY(3px); }
  to  { transform:translateY(0); }
}
.clipme-ticker-dot{
  width:7px; height:7px; border-radius:50%; background:#45e06a;
  box-shadow:0 0 0 3px rgba(69,224,106,.18); flex:0 0 7px;
}
.clipme-ticker-handle{ color:#ffffff!important; font-weight:600; }
.clipme-ticker-ago{ color:#6b6b76!important; }
@media (prefers-reduced-motion:reduce){
  .clipme-ticker.is-in{ animation:none; }
}


/* ---------- LIGHT (html.light) ---------- */
html.light /* ============================================================================
   ClipMe theme overlay for the (OpusClip) Webflow mirror.
   COLOR + TYPE ONLY. No layout, html.light no geometry, html.light no behavior — functionality is
   identical to the original mirror.

   Technique: Webflow re-declares its full token set on many component wrappers
   (.a_autopilot_wrapper etc), html.light so :root alone gets shadowed by the closer
   definition. Overriding on * with !important is what actually wins everywhere.
   Loaded AFTER the Webflow CSS.
   ========================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Sora:wght@600;700;800&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

:root{
  --cm-bg:#ffffff; --cm-elev:#f6f6f8; --cm-elev2:#eeeef1; --cm-border:#e4e4e9;
  --cm-fg:#16161a; --cm-muted:#5f5f6a; --cm-faint:#9a9aa3;
  --cm-red:#e63a55; --cm-red-soft:#ff5a73; --cm-live:#45e06a; --cm-radius:16px;
}
html.light /* ---- 1. Accent tokens: every green / lime / gold / purple accent -> ClipMe red ---- */
*{
  --new_green:#e63a55!important;
  --ao_accent:#e63a55!important;
  --accent--green-light:#ff5a73!important;
  --accent--green-light-2:#ff5a73!important;
  --lemon-green:#e63a55!important;
  --medium-spring-green:#e63a55!important;
  --yellow-green:#e63a55!important;
  --bad15c:#e63a55!important;
  --ao_orange:#e63a55!important;
  --gold:#e63a55!important;
  --yellow--400:#e63a55!important;
  --playful-yellow:#ff5a73!important;
  --opus-purple:#e63a55!important;
  --opus-lake-blue:#e63a55!important;
  --opus-light-blue:#ff5a73!important;
  --opus-candy-blue:#ff5a73!important;

  /* ---- 2. Surfaces: opus greys -> ClipMe blacks ---- */
  --background--bg-background:#ffffff!important;
  --background--bg-popover:#f6f6f8!important;
  --background--bg-accent:#eeeef1!important;
  --background--bg-input:#eeeef1!important;
  --background--bg-muted:#eeeef1!important;
  --background--bg-secondary:#eeeef1!important;
  --background--bg-secondary-80:#eeeef1cc!important;
  --bg--foreground:#f6f6f8!important;
  --new_gray:#f6f6f8!important;
  --opus-dark-bg:#ffffff!important;
  --ui--dark-primary:#f6f6f8!important;
  --ui--border:#e4e4e9!important;
  --ui--menu-background-blur:#ffffffe6!important;

  /* ---- 3. Text ---- */
  --text--text-foreground:#16161a!important;
  --text--text-primary:#16161a!important;
  --text--text-secondary-foreground:#16161a!important;
  --text--text-muted-foreground:#5f5f6a!important;
  --text--light-secondary:#5f5f6a!important;
  --text--secondary:#5f5f6a!important;
  --text--text-transparent:#9a9aa3!important;

  /* ---- 4. Status ---- */
  --background--bg-success:#e63a55!important;   /* CLIPME-FACTS: green reserved for the live-status dot only */
  --text--text-success:#e63a55!important;
  --background--bg-error:#e5484d!important;     /* true error red, kept distinct */
  --text--text-error:#e5484d!important;
}
html.light /* ---- 5. Hardcoded lime/green hexes that bypass the token system ---- */
[style*="#d1ff53" i], html.light [style*="#cce843" i], html.light [style*="#c6fd7f" i], html.light [style*="#a6c03d" i], html.light [style*="#bad15c" i]{ color:#e63a55!important; }
html.light /* ---- 6. Type: Sora display, html.light Inter body ----
   The mirror sets Geistvf via `[data-font="geist"] *` + !important (specificity
   0, html.light 1, html.light 0), html.light which outranks a bare `h1`. We match that selector shape exactly so
   equal specificity + later cascade position wins, html.light then raise headings above it. */
html body[data-font="geist"], html.light body.a-ca_body, html.light body[data-font="geist"] *, html.light body.a-ca_body *{
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif!important;
}
html.light [data-font="geist"] h1, html.light [data-font="geist"] h2, html.light [data-font="geist"] h3, html.light [data-font="geist"] h4, html.light [data-font="geist"] h5, html.light .a-ca_body h1, html.light .a-ca_body h2, html.light .a-ca_body h3, html.light .a-ca_body h4, html.light .a-ca_body h5, html.light [data-font="geist"] [class*="_h1"], html.light [data-font="geist"] [class*="_h2"], html.light [data-font="geist"] [class*="_h3"], html.light [data-font="geist"] [class*="heading"], html.light [data-font="geist"] [class*="opus-font-h"], html.light [data-font="geist"] [class*="opus-font-custom"], html.light body[data-font="geist"] h1, html.light body[data-font="geist"] h2, html.light body[data-font="geist"] h3, html.light body[data-font="geist"] h4, html.light body[data-font="geist"] h5, html.light body.a-ca_body h1, html.light body.a-ca_body h2, html.light body.a-ca_body h3, html.light body.a-ca_body h4, html.light body.a-ca_body h5, html.light body [class*="opus-font-h"], html.light body [class*="opus-font-custom"]{
  font-family:"Sora","Inter",system-ui,-apple-system,sans-serif!important;
  letter-spacing:-.02em;
}
html.light /* code / mono surfaces keep a mono face */
[data-font="geist"] code, html.light [data-font="geist"] pre, html.light .a-ca_body code, html.light .a-ca_body pre{
  font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace!important;
}
html.light /* ---- 7. Injected cl!pme wordmark. Specificity has to clear the
   `html body[data-font="geist"] *` font rule above (0, html.light 1, html.light 2), html.light and the colour is
   pinned rather than currentColor -- inheriting from the nav rendered it white
   on the white light palette, html.light i.e. invisible. ---- */
html body .clipme-logo{
  display:inline-flex; align-items:center; line-height:1; white-space:nowrap;
}
html.light body .clipme-logo .clipme-word{
  font-family:"Sora","Inter",system-ui,sans-serif!important;
  font-weight:800!important; font-size:1.55rem; letter-spacing:-.04em;
  color:#16161a!important;
}
html.light body .clipme-logo .clipme-bang{ color:#e63a55!important; }
html.light /* ---- 20. LIGHT text colour. 1, html.light 768 elements were rendering white on the white
   ground -- the palette flip changed backgrounds but text kept inheriting the
   mirror's white. clipme.com sets `body{ color: var(--color-fg) }
html.light ` and lets it
   inherit; same here. Colour only. ---- */
html body[data-font="geist"], html.light body.a-ca_body{ color:#16161a!important; }
html.light body[data-font="geist"] *, html.light body.a-ca_body *{ color:inherit; }
html.light /* explicit white utilities -> light foreground */
html body [class*="text-color-white"], html.light body .a_text-color-white, html.light body .white-underline, html.light body .cta-text, html.light body .is-highlighted{
  color:#16161a!important;
}
html.light body [class*="text-color-grey"], html.light body [class*="a_text-color-grey"]{
  color:#5f5f6a!important;
}
html.light /* things that must stay their own colour */
html body .clipme-hl{ color:#e63a55!important; }
html.light body .clipme-logo .clipme-bang{ color:#e63a55!important; }
html.light body .clipme-logo .clipme-word{ color:#16161a!important; }
html.light body .clipme-freecta-btn, html.light body .clipme-freecta-btn *{ color:#ffffff!important; }
html.light /* red buttons keep white labels */
html body .button.is-primary, html.light body .button.is-primary *, html.light body [class*="btn_primary"], html.light body [class*="btn_primary"] *, html.light body [class*="button_primary"], html.light body [class*="button_primary"] *{
  color:#ffffff!important;
}
html.light /* ---- 9. Inline free CTA + risk-reversal microcopy ---- */
.clipme-freecta{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:22px 0}
html.light .clipme-freecta-btn{display:inline-flex;align-items:center;justify-content:center;
  padding:13px 30px;border-radius:999px;background:#e63a55;
  font-family:"Inter",system-ui,sans-serif;font-weight:700;font-size:15px;text-decoration:none}
html.light .clipme-freecta-btn:hover{background:#ff5a73}
html.light .clipme-freecta-note, html.light .clipme-reassure{
  color:#5f5f6a;font-family:"Inter",system-ui,sans-serif;font-size:12.5px;letter-spacing:.01em}
html.light .clipme-reassure{margin-top:10px}
html.light /* ---- 10. Smartbanner: its sizing script was never captured, html.light so the logo SVG
   rendered 1424px wide and shoved the hero ~2800px down. ClipMe has no app. ---- */
.smartbanner, html.light .smartbanner_content, html.light .smartbanner_logo{ display:none!important; }
html.light /* ---- 11/12. Nav + dropdowns. Webflow's nav JS was not captured, html.light so the mobile
   panel stayed open (5712px) and every dropdown rendered expanded (one 14, html.light 709px).
   Collapsed, html.light and driven from CSS :hover/:focus so the menus still WORK. ---- */
@media (min-width:992px){
  .a-ca_navbar_menu_mobile_top{ display:none!important; }
html.light .a-ca_navbar, html.light .a-ca_navbar_fixed-wrapper, html.light .a-ca_navbar_component, html.light .a-ca_navbar_container, html.light .a-ca_navbar_menu, html.light .a-ca_navbar_menu-wrapper{
    height:auto!important; max-height:none!important;
  }
html.light .a-ca_navbar_dropdown{ position:relative!important; }
html.light .a-ca_navbar_dropdown_list{
    display:none!important; position:absolute!important; top:100%!important; left:0!important;
    min-width:240px; max-height:70vh; overflow-y:auto;
    background:#ffffff!important; border:1px solid #e4e4e9!important;
    border-radius:16px!important; padding:10px!important; z-index:9999!important;
    box-shadow:0 18px 50px rgba(0,0,0,.10)!important;
  }
html.light .a-ca_navbar_dropdown:hover > .a-ca_navbar_dropdown_list, html.light .a-ca_navbar_dropdown:focus-within > .a-ca_navbar_dropdown_list, html.light .a-ca_navbar_dropdown_list.w--open{ display:block!important; }
html.light .a-ca_navbar_dropdown_toggle{ height:auto!important; }
html.light .a-ca_navbar_dropdown_toggle_arrow{
    height:auto!important; width:12px!important; max-width:12px!important; flex:0 0 12px!important;
  }
html.light .a-ca_navbar_dropdown_toggle_arrow svg{ width:12px!important; height:12px!important; }
}
html.light /* ---- 13. Testimonial avatars (third-party photos were replaced by initials) ---- */
.clipme-avatar{
  width:56px;height:56px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;background:#e63a55;color:#fff!important;
  font-family:"Sora","Inter",system-ui,sans-serif;font-weight:700;font-size:18px;
  letter-spacing:-.01em;flex:0 0 56px;
}
html.light .clipme-handle{color:#5f5f6a;font-size:13px;font-weight:400}
html.light /* ---- 14. Body ground: clipme.com light #ffffff ---- */
html body[data-font="geist"], html.light body.a-ca_body{ background-color:#ffffff!important; }
html.light /* ---- 15. clipme.com light backdrop, html.light verbatim from globals.css html.light
   body::before. Fixed, html.light pointer-events:none, html.light z-index:-1 -- paints behind
   everything, html.light intercepts nothing, html.light touches no animation. ---- */
html body[data-font="geist"]::before, html.light body.a-ca_body::before{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background-image:
    radial-gradient(58% 44% at 50% 0%, rgba(230,58,85,.07) 0%, rgba(230,58,85,0) 70%),
    linear-gradient(rgba(0,0,0,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,.045) 1px, transparent 1px);
  background-size:100% 100%, 40px 40px, 40px 40px;
  background-position:center top, center center, center center;
}
html.light /* ---- 16. Surfaces + remaining off-palette Webflow tokens -> clipme.com light ---- */
*{
  --background--bg-background:#ffffff!important;
  --background--bg-popover:#f6f6f8!important;
  --background--bg-accent:#eeeef1!important;
  --background--bg-input:#eeeef1!important;
  --background--bg-muted:#eeeef1!important;
  --background--bg-secondary:#eeeef1!important;
  --background--bg-secondary-80:#eeeef1cc!important;
  --bg--foreground:#f6f6f8!important;
  --new_gray:#f6f6f8!important;
  --opus-dark-bg:#ffffff!important;
  --ui--dark-primary:#f6f6f8!important;
  --ui--border:#e4e4e9!important;
  --ui--menu-background-blur:#ffffffe6!important;
  --text--text-foreground:#16161a!important;
  --text--text-primary:#16161a!important;
  --text--text-secondary-foreground:#16161a!important;
  --text--text-muted-foreground:#5f5f6a!important;
  --text--light-secondary:#5f5f6a!important;
  --text--secondary:#5f5f6a!important;
  --text--text-transparent:#9a9aa3!important;
  --bluish-black:#16161a!important;
  --web--web-panel:#f6f6f8!important;
  --border--border-border:#e4e4e9!important;
  --border--border-muted:#e4e4e9!important;
  --border--border-foreground:#e4e4e9!important;
  --border--border-primary:#e4e4e9!important;
  --text--text-muted:#5f5f6a!important;
  --gainsboro-2:#5f5f6a!important;
  --white-smoke:#5f5f6a!important;
  --white-smoke-2:#5f5f6a!important;
  --white-smoke-search:#f6f6f8!important;
  --white-smoke-quote:#f6f6f8!important;
  --white-smoke-f1f3f6:#f6f6f8!important;
  --light-greyish-black:#f6f6f8!important;
  --light-steel-blue:#5f5f6a!important;
  --text-light:#5f5f6a!important;
  --background--bg-success:#e63a55!important;
  --text--text-success:#e63a55!important;
}
html.light /* ---- 17. Off-palette classes with no token behind them ---- */
html body .a-ca_navbar_link_tag{ color:#ffffff!important; background-color:#e63a55!important; }
html.light /* ---- 19. Clip cards carried white borders that vanish on white ---- */
html body [class*="clip"], html.light body [class*="_card"], html.light body [class*="video"]{
  border-color:#e4e4e9;
}
html.light body [style*="border-color: rgb(255, html.light 255, html.light 255)" i]{ border-color:#16161a!important; }
html.light /* ---- 21. Activity ticker pill. Matches clipme.com's ActivityTicker styling:
   rounded-full, html.light border-border, html.light bg-elev, html.light text-xs text-muted, html.light green dot, html.light bold
   handle, html.light faint timestamp. The fade is on the pill only -- it adds no scroll
   trigger and touches nothing else. ---- */
.clipme-ticker{
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid #e4e4e9; background:#f6f6f8;
  border-radius:999px; padding:6px 14px; margin-bottom:14px;
  font-family:"Inter",system-ui,sans-serif; font-size:12.5px; line-height:1.2;
  color:#5f5f6a!important; white-space:nowrap;
}
html.light .clipme-ticker{ opacity:1; transform:none; }
html.light /* The hero wrapper is a flex container and a Webflow rule forces display:flex
   on its children, html.light so the pill was being shrunk to 30px while its own content
   measured ~112px. Pin it back to an auto-width inline-flex item. */
html body .clipme-ticker{
  display:inline-flex!important;
  flex:0 0 auto!important;
  width:auto!important; max-width:none!important; min-width:0;
  align-self:center;
}
html.light body .clipme-ticker > span{ display:inline!important; flex:0 0 auto; }
html.light body .clipme-ticker > .clipme-ticker-dot{ display:inline-block!important; }
html.light .clipme-ticker.is-in{
  /* enhancement only -- fill-mode:none so a paused/throttled animation can
     never leave the pill stuck invisible at frame 0 */
  animation:clipme-tick-in .45s ease none;
}
@keyframes clipme-tick-in{
  /* transform only. Animating opacity meant a paused or throttled animation
     could hold the pill at frame 0 and hide it entirely -- which is exactly
     what happened in a backgrounded tab. Movement never gates visibility. */
  from{ transform:translateY(3px); }
html.light to{ transform:translateY(0); }
}
html.light .clipme-ticker-dot{
  width:7px; height:7px; border-radius:50%; background:#45e06a;
  box-shadow:0 0 0 3px rgba(69,224,106,.18); flex:0 0 7px;
}
html.light .clipme-ticker-handle{ color:#16161a!important; font-weight:600; }
html.light .clipme-ticker-ago{ color:#9a9aa3!important; }
@media (prefers-reduced-motion:reduce){ html.light .clipme-ticker.is-in{ animation:none; }
}

/* ---- Theme toggle button. Fixed, bottom-left, out of the layout flow.
   Was bottom-right at z-index 99999 -- CTA rows and their risk-line
   disclaimers ("free during beta - no card - watermark-free") also cluster
   bottom-right throughout the page, so the always-on-top toggle regularly
   sat over that text mid-scroll. Bottom-left has no competing fixed/sticky
   element on any page in this mirror. ---- */
.clipme-theme-toggle{
  position:fixed; left:18px; bottom:18px; z-index:99999;
  padding:9px 18px; border-radius:999px; cursor:pointer;
  font-family:"Inter",system-ui,sans-serif; font-size:13px; font-weight:600;
  background:#e63a55; color:#fff!important; border:none;
  box-shadow:0 8px 24px rgba(0,0,0,.35);
}
.clipme-theme-toggle:hover{ background:#ff5a73; }


/* ---- BUTTONS -> clipme.com. The mirror's primary CTA (.a-ca_button) rendered
   white on white with white text -- invisible in the dark theme. clipme.com's
   primary is a red pill with white text; secondaries are outlined. ---- */
/* .a-ca_button.is-outline is the SECONDARY modifier -- it stays outlined, so
   every primary rule below excludes it. */
html body .a-ca_button:not(.is-outline),
html body .a-ca_button.is-navbar:not(.is-outline),
html body .a-ca_button.nav-utm:not(.is-outline),
html body a.a-ca_button:not(.is-outline), html body button.a-ca_button:not(.is-outline){
  background-color:#e63a55!important;
  border-color:#e63a55!important;
  border-radius:999px!important;
}
html body .a-ca_button:not(.is-outline), html body .a-ca_button:not(.is-outline) *{ color:#ffffff!important; }
html body .a-ca_button:not(.is-outline):hover{ background-color:#ff5a73!important; border-color:#ff5a73!important; }

/* secondary / outline */
html body .a-ca_button_outline, html body .a-ca_button.is-outline{
  background-color:transparent!important;
  border:1px solid #262630!important;
  border-radius:999px!important;
}
html body .a-ca_button_outline, html body .a-ca_button_outline *,
html body .a-ca_button.is-outline, html body .a-ca_button.is-outline *{ color:#ffffff!important; }
html body .a-ca_button_outline:hover, html body .a-ca_button.is-outline:hover{ border-color:#e63a55!important; }

html.light body .a-ca_button_outline, html.light body .a-ca_button.is-outline{ border:1px solid #e4e4e9!important; background-color:transparent!important; }
html.light body .a-ca_button_outline, html.light body .a-ca_button_outline *,
html.light body .a-ca_button.is-outline, html.light body .a-ca_button.is-outline *{ color:#16161a!important; }
html.light body .a-ca_button:not(.is-outline), html.light body .a-ca_button:not(.is-outline) *{ color:#ffffff!important; }

/* the smartbanner button is hidden with the banner, but keep it consistent */
html body .smartbanner_open-app{ background-color:#e63a55!important; border-color:#e63a55!important; }


/* ---- EYEBROW + TICKER SIZING ----
   Eyebrow up, ticker pill down, so the hero reads eyebrow-first. ---- */
html body #hero-heading-v1 .opus-font-section-lg,
html body .opus-font-section-lg{
  /* Continuous scale, not fixed steps. The previous 22 -> 16 -> 13px breakpoints fit at
     exactly three widths and overflowed everywhere between them — at ~800px the line
     was still nowrap at 16px and ran off the right edge mid-word. clamp() ties the size
     to the viewport so one line always fits, and the two vw terms let it shrink further
     on very narrow screens before wrapping is ever needed. */
  font-size:clamp(10.5px, 2.9vw, 22px)!important;
  font-weight:800!important;
  letter-spacing:normal!important;
  line-height:1.25!important;
  white-space:nowrap!important;
  max-width:100%!important;
  overflow-wrap:normal!important;
}
@media (max-width:420px){
  /* Below this a single line stops being legible at any size — let it wrap to two. */
  html body .opus-font-section-lg{
    font-size:12px!important; white-space:normal!important; text-wrap:balance;
  }
}

/* ticker pill: smaller than the eyebrow so it reads as a secondary note */
html body .clipme-ticker{
  font-size:11px!important;
  padding:4px 11px!important;
  gap:6px!important;
  margin-bottom:10px!important;
}
html body .clipme-ticker-dot{
  width:6px!important; height:6px!important; flex:0 0 6px!important;
  box-shadow:0 0 0 2.5px rgba(69,224,106,.18)!important;
}


/* ---- ScoreboardHero, ported from clipme.com. Replaces the opus carousel in
   .home0625_header_anim_swiper. Dark surface in both themes on purpose -- it is
   a device/stream frame, and clipme.com renders it dark in light mode too. ---- */
.clipme-sh{ width:100%; display:flex; justify-content:center; }
.clipme-sh-frame{
  width:100%; max-width:460px; position:relative; overflow:hidden;
  border-radius:2rem; padding:16px;
  font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  background:linear-gradient(160deg,#141416 0%,#0d0d0f 48%,#08080a 100%);
  box-shadow:0 40px 90px -34px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.05);
  outline:1px solid rgba(255,255,255,.10); outline-offset:-1px;
}
.clipme-sh-bar{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  border-radius:12px; padding:10px 14px;
  background:rgba(255,255,255,.04); outline:1px solid rgba(255,255,255,.06); outline-offset:-1px;
}
.clipme-sh-barleft{ display:flex; align-items:center; gap:10px; min-width:0; }
.clipme-sh-live{
  width:10px; height:10px; border-radius:50%; background:#45e06a; flex:0 0 10px;
  box-shadow:0 0 0 0 rgba(69,224,106,.7); animation:clipme-sh-ping 1.8s ease-out infinite;
}
.clipme-sh-handle{ color:rgba(255,255,255,.40)!important; font-size:12.5px; }
.clipme-sh-watching{ color:rgba(255,255,255,.65)!important; font-size:12.5px; }
.clipme-sh-brand{ color:rgba(255,255,255,.35)!important; font-size:11px; letter-spacing:.04em; flex:0 0 auto; }

.clipme-sh-main{ margin-top:12px; display:flex; align-items:stretch; gap:12px; }
.clipme-sh-clipcol{ width:46%; flex:0 0 46%; position:relative; }
.clipme-sh-clip{
  position:relative; border-radius:12px; overflow:hidden;
  outline:1px solid rgba(255,255,255,.10); outline-offset:-1px;
  transition:outline-color .3s ease, box-shadow .3s ease;
}
.clipme-sh-clip.is-spike{ outline-color:rgba(230,58,85,.70); box-shadow:0 0 0 3px rgba(230,58,85,.35); }
.clipme-sh-clip.is-clipped{ outline-color:rgba(69,224,106,.60); }
/* the portal's signature frame: white 9:16 shell, 1:1 crop centred inside */
.clipme-sh-shell{ position:relative; aspect-ratio:9/16; display:flex; align-items:center; justify-content:center; background:#fff; }
.clipme-sh-crop{ position:relative; width:100%; aspect-ratio:1/1; overflow:hidden; }
.clipme-sh-poster,.clipme-sh-vidwrap video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.clipme-sh-vidwrap video{ animation:clipme-sh-fade .55s ease; }
.clipme-sh-grad{ position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to bottom, rgba(0,0,0,.35), transparent 45%, rgba(0,0,0,.45)); }

.clipme-sh-chip{
  position:absolute; left:8px; top:8px; border-radius:999px; padding:2px 9px;
  font-size:10.5px; font-weight:700; line-height:1.5; opacity:0;
}
.clipme-sh-chip.is-clipping{ opacity:1; background:#e63a55; color:#fff!important; }
.clipme-sh-chip.is-clipped{ opacity:1; background:#45e06a; color:#0a1f0f!important; font-size:12px; animation:clipme-sh-pop .35s ease; }
.clipme-sh-posted{
  position:absolute; left:6px; right:6px; bottom:6px; border-radius:6px;
  background:rgba(0,0,0,.65); padding:4px 8px; text-align:center;
  font-size:9.5px; color:rgba(255,255,255,.80)!important; opacity:0;
  transition:opacity .3s ease; backdrop-filter:blur(4px);
}
.clipme-sh-scrub{ position:absolute; left:0; right:0; bottom:0; height:3px; background:rgba(255,255,255,.15); }
.clipme-sh-scrubfill{ height:100%; width:0; background:#45e06a; }

.clipme-sh-chatcol{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; }
.clipme-sh-chathead{
  display:flex; align-items:center; justify-content:space-between; margin-bottom:6px;
  font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:rgba(255,255,255,.30)!important;
}
.clipme-sh-chatstate.is-live{ color:#ff5a73!important; }
.clipme-sh-msgs{ flex:1 1 auto; min-height:0; display:flex; flex-direction:column; justify-content:flex-end; gap:3px; overflow:hidden; }
.clipme-sh-msg{ font-size:12px; line-height:1.25; animation:clipme-sh-msg .25s ease; color:rgba(255,255,255,.55)!important; }
.clipme-sh-msg.is-hype{ font-weight:600; color:rgba(255,255,255,.95)!important; }
.clipme-sh-colon{ color:rgba(255,255,255,.25)!important; }
.clipme-sh-velrow{
  display:flex; align-items:center; justify-content:space-between; margin-top:8px;
  font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:rgba(255,255,255,.30)!important;
}
.clipme-sh-vel{ height:5px; border-radius:3px; background:rgba(255,255,255,.10); overflow:hidden; margin-top:4px; }
.clipme-sh-velfill{ height:100%; width:20%; background:#45e06a; transition:width .5s ease; }

.clipme-sh-caption{ margin-top:14px; text-align:center; font-size:15px; color:rgba(255,255,255,.92)!important; }
.clipme-sh-sub{ margin-top:6px; text-align:center; font-size:11px; color:rgba(255,255,255,.40)!important; }
.clipme-sh-dots{ margin-top:12px; display:flex; align-items:center; justify-content:center; gap:6px; }
.clipme-sh-dot{ width:6px; height:6px; border-radius:999px; background:rgba(255,255,255,.20); transition:all .3s ease; }
.clipme-sh-dot.is-on{ width:22px; background:#45e06a; }

@keyframes clipme-sh-ping{ 0%{box-shadow:0 0 0 0 rgba(69,224,106,.7)} 70%{box-shadow:0 0 0 7px rgba(69,224,106,0)} 100%{box-shadow:0 0 0 0 rgba(69,224,106,0)} }
@keyframes clipme-sh-fade{ from{opacity:0} to{opacity:1} }
@keyframes clipme-sh-pop{ 0%{transform:scale(.8);opacity:0} 100%{transform:scale(1);opacity:1} }
@keyframes clipme-sh-msg{ from{opacity:0;transform:translateY(4px)} to{opacity:1;transform:none} }
@keyframes clipme-sh-scrub{ from{width:0} to{width:100%} }
@media (max-width:600px){ .clipme-sh-frame{ padding:12px; border-radius:1.5rem; } .clipme-sh-caption{ font-size:13px; } }
@media (prefers-reduced-motion:reduce){
  .clipme-sh-live,.clipme-sh-vidwrap video,.clipme-sh-msg,.clipme-sh-chip.is-clipped{ animation:none!important; }
  .clipme-sh-scrubfill{ animation:none!important; }
}


/* ---- The mirrored cookie/consent banner covers the hero and belongs to
   opus.pro's vendor stack, which was never captured -- it cannot be dismissed
   and has no working consent logic behind it. Hidden. ---- */
#onetrust-consent-sdk, .onetrust-pc-dark-filter, #onetrust-banner-sdk,
[id*="onetrust"], [class*="ot-sdk"], [id*="cookie-banner"], [class*="cookie-banner"],
[class*="consent-banner"]{ display:none!important; }
html body{ overflow:auto!important; }


/* ---- Wide live-clipping panel. Replaces opus's baked workflow.avif.
   Chat + velocity left · live stream centre · clips ejecting right.
   Dark in both themes -- it is a stream device, not a page surface. ---- */
.clipme-wp{ width:100%; display:flex; justify-content:center; }
.clipme-wp-frame{
  width:100%; max-width:1200px; border-radius:1.75rem; padding:18px;
  font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  background:linear-gradient(160deg,#141416 0%,#0d0d0f 48%,#08080a 100%);
  box-shadow:0 40px 90px -34px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.05);
  outline:1px solid rgba(255,255,255,.10); outline-offset:-1px;
}
.clipme-wp-bar{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  border-radius:12px; padding:10px 15px; background:rgba(255,255,255,.04);
  outline:1px solid rgba(255,255,255,.06); outline-offset:-1px;
}
.clipme-wp-barleft{ display:flex; align-items:center; gap:10px; min-width:0; }
.clipme-wp-live{
  width:10px; height:10px; border-radius:50%; background:#45e06a; flex:0 0 10px;
  animation:clipme-sh-ping 1.8s ease-out infinite;
}
.clipme-wp-handle{ color:rgba(255,255,255,.42)!important; font-size:12.5px; }
.clipme-wp-dim{ color:rgba(255,255,255,.65)!important; font-size:12.5px; }
.clipme-wp-brand{ color:rgba(255,255,255,.35)!important; font-size:11px; letter-spacing:.04em; }

.clipme-wp-body{
  margin-top:14px; display:grid;
  grid-template-columns:170px minmax(0,1fr) 240px;   /* clips · stage · chat */
  gap:18px; align-items:stretch;
}
.clipme-wp-col{ min-width:0; display:flex; flex-direction:column; }
.clipme-wp-railcol,.clipme-wp-chatcol{ justify-content:flex-start; }
.clipme-wp-label{
  display:flex; align-items:center; justify-content:space-between; margin-bottom:7px;
  font-size:10px; text-transform:uppercase; letter-spacing:.08em;
  color:rgba(255,255,255,.30)!important;
}
.clipme-wp-state.is-live{ color:#ff5a73!important; }

/* left: chat */
.clipme-wp-msgs{
  flex:1 1 auto; min-height:0; display:flex; flex-direction:column;
  justify-content:flex-end; gap:2px; overflow:hidden;
}
/* flex:0 0 auto is load-bearing. In a max-height flex column these lines shrink to fit
   instead of overflowing, and squashed lines render on top of one another — the chat read
   as a smear of overlapping text on mobile. */
.clipme-wp-msg{
  flex:0 0 auto; font-size:11.5px; line-height:1.35;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  animation:clipme-sh-msg .25s ease; color:rgba(255,255,255,.55)!important;
}
.clipme-wp-msg.is-hype{ font-weight:600; color:rgba(255,255,255,.95)!important; }
.clipme-wp-colon{ color:rgba(255,255,255,.25)!important; }
.clipme-wp-vellabel{ margin-top:10px; margin-bottom:4px; }
.clipme-wp-vel{ height:5px; border-radius:3px; background:rgba(255,255,255,.10); overflow:hidden; }
.clipme-wp-velfill{ height:100%; width:20%; background:#45e06a; transition:width .5s ease; }

/* centre: the stream */
.clipme-wp-stage{
  position:relative; border-radius:14px; overflow:hidden; aspect-ratio:16/9;
  outline:1px solid rgba(255,255,255,.10); outline-offset:-1px;
  transition:outline-color .3s ease, box-shadow .3s ease; background:#000;
}
.clipme-wp-stage.is-spike{ outline-color:rgba(230,58,85,.70); box-shadow:0 0 0 3px rgba(230,58,85,.35); }
.clipme-wp-stage.is-clipped{ outline-color:rgba(69,224,106,.60); }
.clipme-wp-poster,.clipme-wp-vid video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.clipme-wp-vid video{ animation:clipme-sh-fade .55s ease; }
.clipme-wp-stagegrad{ position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to bottom, rgba(0,0,0,.30), transparent 45%, rgba(0,0,0,.45)); }
.clipme-wp-chip{
  position:absolute; left:10px; top:10px; border-radius:999px; padding:3px 10px;
  font-size:11px; font-weight:700; opacity:0;
}
.clipme-wp-chip.is-clipping{ opacity:1; background:#e63a55; color:#fff!important; }
.clipme-wp-chip.is-clipped{ opacity:1; background:#45e06a; color:#0a1f0f!important; animation:clipme-sh-pop .35s ease; }
.clipme-wp-scrub{ position:absolute; left:0; right:0; bottom:0; height:3px; background:rgba(255,255,255,.15); }
.clipme-wp-scrubfill{ height:100%; width:0; background:#45e06a; }
.clipme-wp-caption{ margin-top:10px; text-align:center; font-size:13.5px; color:rgba(255,255,255,.90)!important; }

/* right: clips ejecting */
.clipme-wp-count{ color:#45e06a!important; font-weight:700; }
.clipme-wp-rail{ flex:1 1 auto; min-height:0; display:flex; flex-direction:column; gap:7px; overflow:hidden; }



.clipme-wp-dest{ margin-top:10px; text-align:center; font-size:10.5px; color:rgba(255,255,255,.45)!important; }

@keyframes clipme-wp-eject{ from{opacity:0; transform:translateX(14px) scale(.96)} to{opacity:1; transform:none} }

@media (max-width:1000px){
  .clipme-wp-body{ grid-template-columns:120px minmax(0,1fr) 190px; gap:12px; }
}
@media (max-width:760px){
  .clipme-wp-body{ grid-template-columns:1fr; }
  .clipme-wp-railcol{ display:none; }
  .clipme-wp-frame{ padding:14px; }
}
@media (prefers-reduced-motion:reduce){
  .clipme-wp-live,.clipme-wp-vid video,.clipme-wp-msg,.clipme-wp-clip,.clipme-wp-chip.is-clipped{ animation:none!important; }
  .clipme-wp-scrubfill{ animation:none!important; }
}


/* ---- wide-panel vertical balance. The side columns were as tall as
   stage + caption, so chat bunched at the bottom under a void and the
   velocity meter fell past the frame. Pin all three columns to the stage's
   height and let each distribute inside it. ---- */
html body .clipme-wp-body{ align-items:start; }
html body .clipme-wp-stagecol{ display:flex; flex-direction:column; }
html body .clipme-wp-railcol, html body .clipme-wp-chatcol{
  height:100%; display:flex; flex-direction:column;
}
/* the stage sets the height; side columns match it and stop before the caption */
html body .clipme-wp-body{ grid-template-rows:auto; }
html body .clipme-wp-chatcol .clipme-wp-msgs{
  flex:1 1 auto; justify-content:flex-end; padding-bottom:2px;
}
html body .clipme-wp-vellabel{ margin-top:8px; }
html body .clipme-wp-chatcol .clipme-wp-vel{ margin-bottom:2px; }
/* clips fill downward from the label, no trailing gap */
html body .clipme-wp-rail{ flex:0 1 auto; }
html body .clipme-wp-dest{ margin-top:auto; padding-top:10px; }
/* denser chat so the column reads full rather than half-empty */
html body .clipme-wp-msg{ font-size:11px; line-height:1.45; }


/* ---- Live-feed cards, matching clipme.com: white 9:16 shell with the 1:1 crop
   centred inside it, tap / look-ahead above, timecode / auto-cut below. ---- */
html body .clipme-wp-body{ grid-template-columns:118px minmax(0,1fr) 240px; }
html body .clipme-wp-rail{ gap:9px; }
.clipme-wp-clip{
  position:relative; flex:0 0 auto; border-radius:9px; overflow:hidden;
  animation:clipme-wp-eject .45s cubic-bezier(.2,.8,.2,1) both;
  outline:1px solid rgba(255,255,255,.12); outline-offset:-1px;
}
/* Release the Webflow banner shape so the panel is not clipped to 154px. */
html body .clipme-wp-host{
  aspect-ratio:auto!important; height:auto!important; max-height:none!important;
  overflow:visible!important;
}
/* The white pill: clipme.com's own clip shell — a white 9:16 card with the crop set into
   it, matching the "clipped ✓" card. This was tried once before as a flat white shell and
   reverted because the crop floated in the middle and read as two white bars; the fix is
   not to darken the shell but to give the crop more of the card and round the corners, so
   it reads as a clip in a white frame rather than a letterbox. */
.clipme-wp-shell{
  position:relative; aspect-ratio:9/16; background:#fff; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  border-radius:11px; padding:5px;
}
.clipme-wp-shell .clipme-wp-blur{ display:none; }
.clipme-wp-shell .clipme-wp-crop{ z-index:1; }
.clipme-wp-crop{
  position:relative; width:100%; aspect-ratio:4/5; overflow:hidden; border-radius:7px;
}
.clipme-wp-crop img{ width:100%; height:100%; object-fit:cover; display:block; }
/* Sized to the "clipped ✓" pill above rather than the 7px they were: a rounded pill,
   11px, real padding. At the old size the labels were legible only if you leaned in,
   which defeats the point of labelling the mechanism at all. */
.clipme-wp-b{
  position:absolute; font-family:"JetBrains Mono",ui-monospace,monospace;
  font-size:9.5px; font-weight:700; line-height:1; padding:3px 8px; border-radius:999px;
  background:#fff; color:#101014!important;
  box-shadow:0 2px 8px -3px rgba(0,0,0,.75); white-space:nowrap;
}
.clipme-wp-b.ok{ background:#45e06a; color:#0a1f0f!important; }
.clipme-wp-b.cut{ background:#101014; color:rgba(255,255,255,.92)!important; }
.clipme-wp-b.bl{ background:rgba(10,10,12,.82); color:rgba(255,255,255,.88)!important; }
.clipme-wp-b.tl{ left:4px; top:4px; }
.clipme-wp-b.tr{ right:4px; top:4px; }
.clipme-wp-b.bl{ left:4px; bottom:4px; }
.clipme-wp-b.br{ right:4px; bottom:4px; }
/* The translucent variants that used to live here were declared after the pill rules
   and quietly won, so the badges rendered in the old style on a white shell. */
@media (max-width:1000px){ html body .clipme-wp-body{ grid-template-columns:96px minmax(0,1fr) 190px; } }


/* ---- 23. MomentDetectionViz (clipme-theme.js momentViz). Replaces opus's Rive
   "AI editor" container — the Rive runtime was never captured in this mirror, so
   that slot rendered nothing. Canvas sizes to the box; colours are read from the
   theme tokens at paint time, so it follows the light/dark toggle. ---- */
html body .clipme-md{
  position:relative; width:100%; min-height:420px; aspect-ratio:3/4;
  border-radius:var(--cm-radius,16px); overflow:hidden;
  background:radial-gradient(120% 90% at 50% 0%, #17171d 0%, #08080a 70%);
  border:1px solid #262630;
}
html body .clipme-md canvas{ display:block; width:100%; height:100%; }
html.light body .clipme-md{
  background:radial-gradient(120% 90% at 50% 0%, #ffffff 0%, #f6f6f8 70%);
  border-color:#e4e4e9;
}
@media (max-width:700px){ html body .clipme-md{ min-height:360px; } }

/* ---- 24. Prompt panel (clipme-theme.js promptPanel). Replaces opus's baked
   ClipAnything.avif in the Prompt Mode slot. Populated on purpose: a real source,
   a typed request, detected chips, a filmstrip that scans and locks one frame, and
   a live clip count — the same density opus fills this slot with. ---- */
html body .clipme-pm{
  position:relative; display:flex; flex-direction:column; gap:12px;
  padding:22px; border-radius:var(--cm-radius,16px);
  background:linear-gradient(180deg,#15151b 0%,#0b0b0e 100%);
  border:1px solid #262630; min-height:420px;
  font-family:"Inter",system-ui,sans-serif;
}
html body .clipme-pm-head{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#9b9ba6}
html body .clipme-pm-live{
  width:7px;height:7px;border-radius:50%;background:#45e06a;flex:0 0 auto;
  box-shadow:0 0 0 0 rgba(69,224,106,.5); animation:clipmePmPulse 2.4s ease-out infinite;
}
@keyframes clipmePmPulse{0%{box-shadow:0 0 0 0 rgba(69,224,106,.45)}70%{box-shadow:0 0 0 7px rgba(69,224,106,0)}100%{box-shadow:0 0 0 0 rgba(69,224,106,0)}}
html body .clipme-pm-src{color:#fff!important;font-weight:600;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px}
html body .clipme-pm-dim{color:#6b6b76!important}
html body .clipme-pm-label{
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#6b6b76!important;
  font-family:"JetBrains Mono",ui-monospace,monospace; margin-top:4px;
}
html body .clipme-pm-field{
  display:flex;align-items:center;gap:2px;min-height:46px;padding:12px 14px;
  border:1px solid #2e2e3a;border-radius:11px;background:#101015;
  font-size:15px;color:#fff!important;line-height:1.35;
}
html body .clipme-pm-caret{
  display:inline-block;width:2px;height:17px;background:#e63a55;
  animation:clipmePmCaret 1.05s step-end infinite;
}
@keyframes clipmePmCaret{0%,100%{opacity:1}50%{opacity:0}}
html body .clipme-pm-tags{display:flex;flex-wrap:wrap;gap:7px}
html body .clipme-pm-tag{
  padding:5px 11px;border-radius:999px;border:1px solid #2e2e3a;background:#131319;
  font-size:12px;color:#9b9ba6!important;
  transition:background .28s cubic-bezier(.22,1,.36,1),border-color .28s,color .28s;
}
html body .clipme-pm-tag.on{
  background:rgba(230,58,85,.16);border-color:#e63a55;color:#ff8fa0!important;
}
html body .clipme-pm-strip{
  display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:2px;
}
html body .clipme-pm-cell{
  position:relative;aspect-ratio:9/16;border-radius:7px;overflow:hidden;
  background:#16161d;border:1px solid #24242e;
  transition:border-color .3s cubic-bezier(.22,1,.36,1),transform .3s cubic-bezier(.22,1,.36,1);
}
/* Source frames are 440x248 (16:9) sitting in a 9:16 cell. The <img> had no
   rules at all, so it rendered at natural size, top-aligned, leaving the bottom
   half empty. Blur-pad instead: a scaled, blurred copy fills the cell, the real
   frame sits full-width and centred on top. */
html body .clipme-pm-cell img,html body .clipme-pm-cell video{position:absolute;display:block}
/* Fill the whole 9:16 tile. The source is a 16:9 broadcast frame, so `cover` throws
   away most of its width — biasing the crop above centre keeps faces in the tile
   instead of chests, which is where the action sits in this footage. */
html body .clipme-pm-cell .fg{
  inset:0;width:100%;height:100%;
  object-fit:cover;object-position:50% 38%;
}
html body .clipme-pm-cell i{
  position:absolute;inset:0;opacity:0;
  background:linear-gradient(150deg,#2a2a36 0%,#3a2630 55%,#241d24 100%);
  transition:opacity .34s ease;
}
html body .clipme-pm-cell.lit i{opacity:1}
html body .clipme-pm-cell.on{
  border-color:#e63a55;transform:translateY(-3px);
  box-shadow:0 0 0 1px #e63a55,0 8px 20px -10px rgba(230,58,85,.75);
}
html body .clipme-pm-foot{
  margin-top:auto;padding-top:12px;border-top:1px solid #1e1e26;
  font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px;color:#9b9ba6!important;
}
html body .clipme-pm-count{color:#45e06a!important;font-weight:600;font-variant-numeric:tabular-nums}

html.light body .clipme-pm{background:linear-gradient(180deg,#ffffff 0%,#f6f6f8 100%);border-color:#e4e4e9}
html.light body .clipme-pm-field{background:#fff;border-color:#e4e4e9;color:#16161a!important}
html.light body .clipme-pm-src{color:#16161a!important}
html.light body .clipme-pm-tag{background:#f6f6f8;border-color:#e4e4e9;color:#5f5f6a!important}
html.light body .clipme-pm-tag.on{background:rgba(230,58,85,.1);border-color:#e63a55;color:#e63a55!important}
html.light body .clipme-pm-cell{background:#eeeef1;border-color:#e4e4e9}
html.light body .clipme-pm-cell i{background:linear-gradient(150deg,#dcdce4 0%,#f0dde2 55%,#e6e6ec 100%)}
html.light body .clipme-pm-foot{border-top-color:#e4e4e9}
@media (prefers-reduced-motion:reduce){
  html body .clipme-pm-live,html body .clipme-pm-caret{animation:none}
  html body .clipme-pm-cell,html body .clipme-pm-tag{transition:none}
}

/* ---- 25. Output fan (clipme-theme.js outputFan). The "Scale your creative output"
   section was 1315px of copy with no visual. This shows the core claim as a mechanism:
   one link in, the stream watched, 50-100 captioned vertical clips out. ---- */
html body .clipme-fan{
  display:flex; flex-direction:column; gap:14px; margin-top:28px; padding:24px;
  border:1px solid #262630; border-radius:var(--cm-radius,16px);
  background:linear-gradient(180deg,#141419 0%,#0a0a0d 100%);
  font-family:"Inter",system-ui,sans-serif;
}
html body .clipme-fan-in{
  display:flex; align-items:center; gap:9px; padding:11px 14px;
  border:1px solid #2e2e3a; border-radius:10px; background:#101015;
  font-family:"JetBrains Mono",ui-monospace,monospace; font-size:12.5px;
}
html body .clipme-fan-dot{
  width:7px;height:7px;border-radius:50%;background:#45e06a;flex:0 0 auto;
  animation:clipmePmPulse 2.4s ease-out infinite;
}
html body .clipme-fan-url{color:#fff!important;font-weight:500}
html body .clipme-fan-state{margin-left:auto;color:#6b6b76!important;font-size:11.5px}
html body .clipme-fan-beam{position:relative;height:3px;border-radius:2px;background:#1c1c24;overflow:hidden}
html body .clipme-fan-beam i{
  position:absolute;inset:0 100% 0 0;border-radius:2px;
  background:linear-gradient(90deg,#e63a55,#ff5a73);
  transition:inset 1s cubic-bezier(.4,0,.2,1);
}
html body .clipme-fan.scanning .clipme-fan-beam i{inset:0}
html body .clipme-fan-out{display:grid;grid-template-columns:repeat(12,1fr);gap:6px}
/* Resting state is VISIBLE, not opacity:0. Hiding the grid between cycles left a ~200px
   black void every loop — the first frame a thumbnail or a skimming reader gets. The
   slots now sit dim and empty (the shape is always there) and fill in as clips land. */
html body .clipme-fan-clip{
  position:relative; aspect-ratio:9/16; border-radius:5px; overflow:hidden;
  background:#131319; border:1px solid #1e1e26;
  opacity:.32; transform:translateY(6px) scale(.97);
  transition:opacity .42s cubic-bezier(.22,1,.36,1),transform .42s cubic-bezier(.22,1,.36,1),
             border-color .42s,background .42s;
}
html body .clipme-fan-clip.on{
  opacity:1; transform:none; border-color:#33333f; background:#15151c;
}
/* The frame fills the tile: posters are 1080x1920, the tile is 9:16, so cover
   crops nothing meaningful. Dim until the cell lights up, matching the existing
   reveal. */
html body .clipme-fan-clip .clipme-fan-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  opacity:0;transition:opacity .42s cubic-bezier(.22,1,.36,1);
}
html body .clipme-fan-clip.on .clipme-fan-img{opacity:1}
html body .clipme-fan-clip.on{background:#0d0d11}
/* Caption bar sits over the frame now, so it needs to read against video. */
html body .clipme-fan-clip .clipme-fan-cap{z-index:2;box-shadow:0 0 8px rgba(230,58,85,.55)}
html body .clipme-fan-clip .clipme-fan-cap{opacity:0;transition:opacity .3s ease .1s}
html body .clipme-fan-clip.on .clipme-fan-cap{opacity:.85}
html body .clipme-fan-clip .clipme-fan-cap{
  position:absolute;left:12%;right:12%;bottom:14%;height:2px;border-radius:1px;
  background:#e63a55;
}
html body .clipme-fan-foot{
  padding-top:12px;border-top:1px solid #1e1e26;
  font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px;color:#9b9ba6!important;
}
html body .clipme-fan-n{color:#45e06a!important;font-weight:700;font-variant-numeric:tabular-nums;font-size:15px}

html.light body .clipme-fan{background:linear-gradient(180deg,#fff 0%,#f6f6f8 100%);border-color:#e4e4e9}
html.light body .clipme-fan-in{background:#fff;border-color:#e4e4e9}
html.light body .clipme-fan-url{color:#16161a!important}
html.light body .clipme-fan-beam{background:#e9e9ee}
html.light body .clipme-fan-clip{background:#f0f0f4;border-color:#e8e8ee}
html.light body .clipme-fan-clip.on{border-color:#d5d5dd}
html.light body .clipme-fan-foot{border-top-color:#e4e4e9}
@media (max-width:760px){ html body .clipme-fan-out{grid-template-columns:repeat(6,1fr)} }
@media (prefers-reduced-motion:reduce){
  html body .clipme-fan-clip,html body .clipme-fan-beam i{transition:none}
  html body .clipme-fan-dot{animation:none}
}

/* ---- 26. MOBILE. Every injected component was composed at desktop width and only the
   wide panel had a single 1000px breakpoint — at 400px its fixed 96px + 190px rails ate
   a ~340px container, crushing the clip rail and clipping the chat text. These are the
   real breakpoints for all six components. ---- */
@media (max-width:760px){
  /* wide panel: drop to a single column, rails become horizontal strips */
  html body .clipme-wp-body{
    grid-template-columns:1fr!important; gap:12px;
  }
  /* The live bar wrapped onto three lines on a phone: handle, "— live · ClipMe is
     watching" and the wordmark all competing for 375px. Shrink it, keep it on one line,
     and let the handle take the slack rather than the label. */
  html body .clipme-wp-bar{padding:8px 11px; gap:6px}
  html body .clipme-wp-barleft{gap:7px; flex:1 1 auto; min-width:0}
  html body .clipme-wp-handle{
    font-size:11.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    min-width:0;
  }
  html body .clipme-wp-dim{font-size:10.5px; white-space:nowrap; flex:0 0 auto}
  html body .clipme-wp-brand{font-size:9.5px; flex:0 0 auto}
  html body .clipme-wp-live{width:8px; height:8px; flex:0 0 8px}

  html body .clipme-wp-railcol{order:2}
  html body .clipme-wp-stagecol{order:1}
  html body .clipme-wp-chatcol{order:3}
  /* Side by side and filling the row. A fixed-width flex rail left a gap to the right
     of two cards; a 4-up grid makes the cards share whatever width there is, so the row
     reads full at any phone size instead of trailing off into empty space. */
  html body .clipme-wp-rail{
    display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px;
    overflow:visible; padding-bottom:2px;
  }
  html body .clipme-wp-clip{flex:0 0 auto; width:100%}
  html body .clipme-wp-msgs{max-height:120px; gap:3px}
  /* nowrap, not normal: wrapping doubled each line's height inside a fixed-height
     column and the overflow collided with the line above it. */
  html body .clipme-wp-msg{font-size:11.5px; white-space:nowrap; flex:0 0 auto}

  /* Four corner badges cannot sit two-per-row on a 96px tile — "tap" and
     "look-ahead ✓" overlapped, as did the timecode and "auto-cut". Keep the two that
     carry the mechanism and give the tile enough width to hold them. */
  html body .clipme-wp-clip{width:100%}
  html body .clipme-wp-b{font-size:8.5px; padding:2.5px 6px}
  html body .clipme-wp-b.tl,
  html body .clipme-wp-b.bl{display:none}
  html body .clipme-wp-b.tr{left:4px; right:auto}
  html body .clipme-wp-b.br{left:4px; right:auto}

  /* prompt panel: fewer filmstrip cells so each stays legible */
  html body .clipme-pm{padding:16px; min-height:0; gap:10px}
  html body .clipme-pm-strip{grid-template-columns:repeat(5,1fr)}
  html body .clipme-pm-cell:nth-child(n+6){display:none}
  html body .clipme-pm-field{font-size:14px; min-height:42px}

  /* reframe: shorter box so the subject and captions both fit */
  html body .clipme-rf{aspect-ratio:4/5; min-height:340px}
  html body .clipme-rf-subject{height:40%}

  /* moment canvas */
  html body .clipme-md{min-height:320px; aspect-ratio:4/5}

  /* output fan: 6 across instead of 12 */
  html body .clipme-fan{padding:16px; gap:11px}
  html body .clipme-fan-out{grid-template-columns:repeat(6,1fr)}
  html body .clipme-fan-in{font-size:11.5px; flex-wrap:wrap}
  html body .clipme-fan-state{margin-left:0; width:100%}
  html body .clipme-fan-foot{font-size:11px; line-height:1.5}
}
@media (max-width:460px){
  html body .clipme-wp-rail{grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px}
  html body .clipme-wp-clip{width:100%}
  /* At 72px the "look-ahead ✓" pill measured 66px inside a 69px tile and hung 1px past
     the edge. Shrink the type and drop the tick rather than let it clip. */
  html body .clipme-wp-b{font-size:7.5px; padding:2px 5px}
  html body .clipme-wp-b.tl,
  html body .clipme-wp-b.bl{display:none}
  html body .clipme-wp-b.tr,
  html body .clipme-wp-b.br{left:3px; right:auto; max-width:calc(100% - 6px);
    overflow:hidden; text-overflow:ellipsis}
  html body .clipme-pm-strip{grid-template-columns:repeat(4,1fr)}
  html body .clipme-pm-cell:nth-child(n+5){display:none}
  html body .clipme-fan-out{grid-template-columns:repeat(4,1fr)}
  html body .clipme-fan-clip:nth-child(n+9){display:none}
  html body .clipme-ticker{font-size:11.5px}
}

/* ---- 27. Host slots must GROW around injected panels. .home0625_editing_item_visual
   was sized for a fixed-aspect .avif — a fixed height with overflow hidden. The prompt
   panel and reframe viz are taller, so the filmstrip was sliced mid-cell and the
   "N clips ready" footer was cut off the bottom entirely. That read as a half-finished
   animation; it was a clipped one. Let the slot size to its content. ---- */
/* The panels are position:absolute, so the HOST must keep an intrinsic height or it
   collapses to 0 and the whole slot vanishes. Webflow's own ratio here is 1.47475
   (measured 584x396 at 1280) — keep it rather than height:auto, which is what caused
   the collapse when the panels went absolute. */
html body .home0625_editing_item_visual:has(.clipme-pm),
html body .home0625_editing_item_visual:has(.clipme-rf){
  position:relative!important;
  aspect-ratio:1.47475!important;
  height:auto!important; min-height:0!important; max-height:none!important;
  overflow:hidden!important; display:block!important;
}
/* Panels size to their content rather than asserting a height the slot must match. */
html body .clipme-pm{min-height:0}
html body .clipme-rf{aspect-ratio:auto; min-height:0; height:auto; padding-bottom:76%}
/* The reframe viz positions its children absolutely, so it needs a height from
   somewhere — padding-bottom gives it an intrinsic ratio without a fixed pixel value. */
html body .clipme-fan{min-height:0}


/* ---- 29. The Prompt Mode / ReframeAnything slots are LANDSCAPE, measured 584x396 at
   1280 and 348x236 at 768 — never portrait. .clipme-rf was asserting a portrait ratio
   and rendering ~779px tall inside a 396px host with overflow:hidden, so roughly half
   of it — the entire caption and language block, its whole payoff — was invisible on
   the live page. Fill the host exactly instead of asserting a shape it does not have. */
html body .home0625_editing_item_visual{position:relative}
html body .clipme-rf,
html body .clipme-pm{
  position:absolute!important; inset:0!important;
  aspect-ratio:auto!important; padding-bottom:0!important;
  min-height:0!important; height:auto!important; border-radius:inherit;
}
html body .clipme-pm{overflow:hidden}
/* At the 236px worst case the panel must shed rows rather than clip them. */
@media (max-width:900px){
  html body .clipme-pm-label,
  html body .clipme-pm-foot{display:none}
  html body .clipme-pm{gap:8px;padding:14px}
}
html body .clipme-rf-caps{bottom:4%}
html body .clipme-rf-subject{top:5%;height:42%}

/* ---- 30. ReframeAnything: real landscape source + its real 9:16 crop, side by side,
   matching the reference. Both are the same broadcast frame; the vertical is an actual
   9:16 window centred on the subject, so the panel demonstrates the behaviour. ---- */
html body .clipme-rf{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  gap:clamp(8px,2.4%,22px); padding:clamp(12px,4%,28px);
  border-radius:inherit; overflow:hidden;
  background:radial-gradient(120% 100% at 30% 0%, #1a1a21 0%, #0a0a0d 72%);
}
html body .clipme-rf-src{position:relative; flex:0 1 46%; border-radius:9px; overflow:hidden; box-shadow:0 10px 30px -18px #000}
html body .clipme-rf-src img{display:block; width:100%; height:auto}
html body .clipme-rf-box{
  position:absolute; left:50%; top:6%; width:31.8%; height:88%;
  border:1.5px solid var(--cm-live,#45e06a); border-radius:4px;
  box-shadow:0 0 14px -2px rgba(69,224,106,.55);
  animation:clipmeRfTrack 5.2s cubic-bezier(.45,0,.25,1) infinite alternate;
}
@keyframes clipmeRfTrack{0%{left:42%}100%{left:56%}}
html body .clipme-rf-box .c{position:absolute;width:9px;height:9px;border:0 solid var(--cm-live,#45e06a)}
html body .clipme-rf-box .tl{left:-1px;top:-1px;border-left-width:2px;border-top-width:2px}
html body .clipme-rf-box .tr{right:-1px;top:-1px;border-right-width:2px;border-top-width:2px}
html body .clipme-rf-box .bl{left:-1px;bottom:-1px;border-left-width:2px;border-bottom-width:2px}
html body .clipme-rf-box .br{right:-1px;bottom:-1px;border-right-width:2px;border-bottom-width:2px}
html body .clipme-rf-tag{
  position:absolute;left:6px;top:6px;padding:2px 7px;border-radius:4px;
  background:rgba(0,0,0,.66);color:var(--cm-live,#45e06a)!important;
  font-family:"JetBrains Mono",ui-monospace,monospace;font-size:9.5px;font-weight:600;letter-spacing:.05em;
}
html body .clipme-rf-dots{display:flex;flex-direction:row;gap:5px;flex:0 0 auto}
html body .clipme-rf-dots i{width:4px;height:4px;border-radius:50%;background:#3a3a46;transition:background .3s,transform .3s}
html body .clipme-rf-dots i.on{background:#e63a55;transform:scale(1.5)}
html body .clipme-rf-outcol{display:flex;flex-direction:column;align-items:center;gap:6px;flex:0 1 28%}
html body .clipme-rf-out{position:relative;width:100%;border-radius:10px;overflow:hidden;box-shadow:0 14px 36px -18px #000}
html body .clipme-rf-out img{display:block;width:100%;height:auto}
html body .clipme-rf-cap{
  position:absolute;left:6%;right:6%;bottom:7%;text-align:center;
  font-family:"Inter",system-ui,sans-serif;font-weight:800;
  font-size:clamp(9px,1.5vw,13px);line-height:1.2;color:#fff!important;
  text-shadow:0 2px 6px rgba(0,0,0,.92);
}
html body .clipme-rf-ratio{
  font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px;color:#9b9ba6!important;
}
html.light body .clipme-rf{background:radial-gradient(120% 100% at 30% 0%, #fff 0%, #f2f2f5 72%)}
html.light body .clipme-rf-ratio{color:#5f5f6a!important}
@media (prefers-reduced-motion:reduce){ html body .clipme-rf-box{animation:none;left:50%} }

/* ---- 31. LIVE FEED band. clipme.com's real section, rebuilt: each card is one
   creator's own broadcast frame, full-bleed 9:16, carrying the badge vocabulary the
   wide panel uses (look-ahead / auto-cut) and that creator's real clip count, linked
   to their published wall. Marquee pauses on hover so a card can actually be clicked.
   Rebuilt 2026-09-18: the white shell and four 8.5px badges per card read as clutter
   at 108px, the synthetic t=NNNs stamp and the "tap" chip were dropped, and creators
   without a crisp frame of their own were removed rather than shown through an
   upscaled still. ---- */
html body .clipme-cw{margin-top:30px;display:flex;flex-direction:column;gap:12px}
html body .clipme-cw-head{display:flex;align-items:center;gap:10px}
html body .clipme-cw-mark{
  font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:700;font-size:19px;
  letter-spacing:-.02em;color:#fff!important;
}
html body .clipme-cw-mark i{color:#e63a55!important;font-style:normal}
html body .clipme-cw-livedot{width:7px;height:7px;border-radius:50%;background:#e63a55;animation:clipmePmPulse 2.4s ease-out infinite}
html body .clipme-cw-kicker{
  font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px;font-weight:600;
  letter-spacing:.22em;color:#9b9ba6!important;
}
html body .clipme-cw-sub{
  margin:0;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12.5px;
  line-height:1.6;color:#9b9ba6!important;max-width:62ch;
}
html body .clipme-cw-sub b{color:#e63a55!important;font-weight:600}
html body .clipme-cw-track{
  position:relative;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
}
html body .clipme-cw-row{display:flex;gap:14px;padding:8px 0 12px}
/* width:max-content belongs to the marquee track only. Unscoped it also hit the wall
   page CTA column, pushing it ~105px past a phone viewport and clipping the copy. */
html body .clipme-cw-track .clipme-cw-row{width:max-content}
html body .clipme-cw-track.rolling .clipme-cw-row{animation:clipmeCwRoll 64s linear infinite}
html body .clipme-cw-track.rolling:hover .clipme-cw-row{animation-play-state:paused}
@keyframes clipmeCwRoll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
html body .clipme-cw-card{
  flex:0 0 auto;width:152px;aspect-ratio:9/16;display:block;position:relative;
  text-decoration:none;border-radius:14px;overflow:hidden;background:#0c0d12;
  border:1px solid rgba(255,255,255,.09);transform:translateZ(0);
  transition:transform .38s cubic-bezier(.22,1,.36,1),box-shadow .38s,border-color .3s;
}
html body .clipme-cw-card:hover{
  transform:translateY(-6px);border-color:rgba(230,58,85,.55);
  box-shadow:0 22px 44px -20px rgba(230,58,85,.65),0 0 0 1px rgba(230,58,85,.25);
}
html body .clipme-cw-shell{position:absolute;inset:0;display:block}
html body .clipme-cw-shell img,html body .clipme-cw-shell video{
  width:100%;height:100%;object-fit:cover;display:block;background:#0c0d12;
  transition:transform .7s cubic-bezier(.22,1,.36,1);
}
html body .clipme-cw-card:hover .clipme-cw-shell img,html body .clipme-cw-card:hover .clipme-cw-shell video{transform:scale(1.06)}
html body .clipme-cw-shell::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,8,12,.3) 0%,rgba(8,8,12,0) 26%,rgba(8,8,12,0) 50%,rgba(8,8,12,.94) 100%);
}
html body .clipme-cw-top{
  position:absolute;top:8px;left:8px;right:8px;display:flex;justify-content:space-between;
  align-items:center;gap:4px;z-index:2;
}
html body .clipme-cw-b,html body .clipme-cw-plat{
  font-family:"JetBrains Mono",ui-monospace,monospace;font-size:8.5px;font-weight:600;
  letter-spacing:.06em;padding:4px 6px;border-radius:6px;white-space:nowrap;line-height:1;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
html body .clipme-cw-plat{
  display:inline-flex;align-items:center;gap:4px;background:rgba(10,10,14,.62);
  color:#fff!important;text-transform:uppercase;
}
html body .clipme-cw-plat i{width:5px;height:5px;border-radius:50%;background:#45e06a;display:block;box-shadow:0 0 6px #45e06a}
html body .clipme-cw-plat.twitch i{background:#a970ff;box-shadow:0 0 6px #a970ff}
html body .clipme-cw-plat.youtube i{background:#ff3d3d;box-shadow:0 0 6px #ff3d3d}
html body .clipme-cw-b.look{background:rgba(69,224,106,.18);color:#5df08a!important}
html body .clipme-cw-b.clips{background:rgba(230,58,85,.22);color:#ff8a9a!important}
html body .clipme-cw-meta em.look{color:#5df08a!important;font-style:normal}
html body .clipme-cw-who{
  position:absolute;left:10px;right:10px;bottom:10px;z-index:2;
  display:flex;flex-direction:column;gap:3px;
}
html body .clipme-cw-who b{
  font-family:"Inter",system-ui,sans-serif;font-size:12.5px;font-weight:700;color:#fff!important;
  letter-spacing:-.01em;line-height:1.15;text-shadow:0 1px 8px rgba(0,0,0,.6);
}
html body .clipme-cw-meta{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:9.5px;color:#b9b9c4!important;letter-spacing:.02em;display:flex;flex-direction:column;gap:1px;white-space:nowrap}
html body .clipme-cw-meta em{font-style:normal;color:#ff5c73!important;font-weight:600}
html body .clipme-cw-tail{
  margin:6px 0 0;font-family:"Inter",system-ui,sans-serif;font-weight:800;
  font-size:clamp(19px,3.4vw,30px);letter-spacing:-.02em;color:#fff!important;
}
html body .clipme-cw-tail span{
  display:block;font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:400;
  font-size:clamp(12px,1.8vw,15px);letter-spacing:0;color:#e63a55!important;margin-top:3px;
}
html.light body .clipme-cw-mark,html.light body .clipme-cw-tail{color:#16161a!important}
html.light body .clipme-cw-card{border-color:rgba(0,0,0,.12)}
@media (max-width:760px){
  html body .clipme-cw-card{width:122px}
  html body .clipme-cw-row{gap:10px}
  html body .clipme-cw-track.rolling .clipme-cw-row{animation-duration:46s}
  /* 122px minus 16px of inset leaves 106px for two chips: tighten both so the
     look-ahead badge is never cut mid-word, and let it wrap under the platform
     chip rather than overflow the card. */
  html body .clipme-cw-top{flex-wrap:wrap;gap:3px}
  html body .clipme-cw-b,html body .clipme-cw-plat{font-size:8px;letter-spacing:.02em;padding:3px 5px}
}
@media (prefers-reduced-motion:reduce){
  html body .clipme-cw-track.rolling .clipme-cw-row{animation:none}
  html body .clipme-cw-track{overflow-x:auto}
  html body .clipme-cw-livedot{animation:none}
  html body .clipme-cw-shell img,html body .clipme-cw-card{transition:none}
}

/* ---- 32. TYPE SCALE. Every heading on the mirror shipped at weight 600, and the
   creators section h2 rendered at 12px — body size for a section title. clipme.com's
   own headings are 800 weight, far larger, with tight tracking. This brings the whole
   page onto that scale. Sizes are clamped so one rule covers every viewport instead of
   the fixed step-breakpoints that overflowed between steps. ---- */

/* hero */
html body .home0625_header_text_h1{
  font-size:clamp(31px,6.2vw,62px)!important;
  font-weight:800!important;
  letter-spacing:-.035em!important;
  line-height:1.02!important;
  text-wrap:balance;
}
/* section headings */
html body .opus-font-h3,
html body .opus-font-h3-old,
html body .home0625_cta_h,
html body .a_home1n_creators_h2,
html body .home0625_teams_h,
html body .home0625_partner_h{
  font-size:clamp(27px,4.6vw,46px)!important;
  font-weight:800!important;
  letter-spacing:-.03em!important;
  line-height:1.06!important;
  text-wrap:balance;
}
/* feature-card headings */
html body .opus-font-h5,
html body .opus-font-h6{
  font-size:clamp(19px,2.5vw,27px)!important;
  font-weight:750!important;
  letter-spacing:-.022em!important;
  line-height:1.15!important;
}
/* eyebrows — red, spaced, small, the way clipme.com sets them */
html body .home0625_content_subtitle,
html body .opus-font-section-md{
  font-family:"JetBrains Mono",ui-monospace,monospace!important;
  font-size:clamp(10.5px,1.35vw,12.5px)!important;
  font-weight:600!important;
  letter-spacing:.19em!important;
  text-transform:uppercase!important;
  color:#e63a55!important;
}
/* body copy — bigger and calmer so the headings have something to sit against */
html body .opus-font-body-lg,
html body .opus-font-body,
html body .home0625_text p,
html body .home0625_editing_item_text p{
  font-size:clamp(14.5px,1.75vw,18px)!important;
  line-height:1.62!important;
}
/* footer headings stay small — they are labels, not section titles */
html body .a-ca_footer_h{
  font-size:13.5px!important; font-weight:650!important; letter-spacing:.02em!important;
}
@media (max-width:520px){
  html body .home0625_header_text_h1{letter-spacing:-.028em!important}
  html body .opus-font-h3,
  html body .a_home1n_creators_h2{letter-spacing:-.024em!important}
}

/* ---- 33. CTA. The button was absolutely positioned over the input, so at narrow
   widths it sat on top of "Drop a Kick, Twitch or YouTube link" and both were
   unreadable. Lay the row out with flex so the two elements can never collide, and
   let it stack when there genuinely is not room. ---- */
html body .home0625_cta_input_wrapper{
  display:flex!important; align-items:center; gap:8px; flex-wrap:wrap;
  position:relative!important;
}
html body .home0625_cta_input{
  flex:1 1 210px!important; min-width:0!important;
  position:static!important; width:auto!important;
}
html body .home0625_cta_input_wrapper > a,
html body .home0625_cta_input_wrapper > button,
html body .home0625_cta_input_wrapper [class*="btn"],
html body .home0625_cta_input_wrapper [class*="button"]{
  position:static!important; flex:0 0 auto!important;
  right:auto!important; top:auto!important; transform:none!important;
  white-space:nowrap;
}
@media (max-width:520px){
  html body .home0625_cta_input_wrapper{flex-direction:column; align-items:stretch}
  html body .home0625_cta_input_wrapper > a,
  html body .home0625_cta_input_wrapper [class*="btn"]{width:100%; text-align:center}
}

/* ---- 34. Business logos stay retired. Chili Piper, Memphis Grizzlies, ZoomInfo,
   Telefónica, NVIDIA, GitHub, iHeartMedia are opus's clients, not ours, and we have
   no real business logos to put there yet. Borrowed social proof is worse than none.

   2026-09-09: the CREATOR carousel is now un-hidden, because it is no longer
   borrowed. All 19 slides are real ClipMe creators with their real shipped clip
   counts read off public/clips (drewwwtv 197, soymausando 133, derinthehomeless 116,
   bigmeech4life 98 …) and avatars cropped from their own wall posters, served
   locally — not hotlinked from public.cdn.opus.pro like the originals were.
   Counts are clips we produced, NOT follower counts, which we do not have and
   must not invent. ---- */
/* 2026-09-09: BOTH rows are shown again. The creator row carries real ClipMe
   creators with their real clip counts. The company row no longer carries
   opus's clients (zoominfo, Memphis Grizzlies, Chili Piper, Univision, Audacy,
   Visa) — it now carries the platforms ClipMe genuinely clips from and posts
   to: Kick, Twitch, YouTube in; TikTok, Reels, Shorts out. That is a claim we
   can stand behind, unlike borrowed customer logos. */
html body .a_home1n_customers_logos .a_nb-customer-stories_companies-slide-wrapper img{
  height:26px; width:auto; opacity:.72; filter:none;
}

/* ---- 35. Merged output row. The fan now lives INSIDE the live panel's frame,
   below the stage/chat body, so one card carries the whole story: the stream is
   being watched, the moment locks, the clips come out. Its own channel row and
   beam are removed at build time — the live bar above already says both. ---- */
html body .clipme-fan.is-merged{
  margin:0; padding:14px 16px 16px; border:0; border-top:1px solid #1e1e26;
  border-radius:0; background:transparent; box-shadow:none;
}
html body .clipme-fan.is-merged .clipme-fan-out{
  grid-template-columns:repeat(8,1fr); gap:7px;
}
@media (max-width:900px){
  html body .clipme-fan.is-merged .clipme-fan-out{grid-template-columns:repeat(6,1fr)}
  html body .clipme-fan.is-merged .clipme-fan-clip:nth-child(n+7){display:none}
}
@media (max-width:600px){
  html body .clipme-fan.is-merged .clipme-fan-out{grid-template-columns:repeat(4,1fr)}
  html body .clipme-fan.is-merged .clipme-fan-clip:nth-child(n+5){display:none}
}
html body .clipme-fan.is-merged .clipme-fan-foot{
  margin-top:12px; padding-top:10px;
}

/* ---- 35. Platform pills ------------------------------------------------------
   Sized to clipme.com's trust strip, so the two sites state this the same way:
   px-4 py-2 pill, 20px brand mark, 16px bold name, 10px uppercase badge, gap 10px.
   Replaces the wordmark marquee that clipped its logos mid-letter. */
html body .clipme-plat{
  display:flex; flex-wrap:wrap; justify-content:center; align-items:center;
  gap:16px; padding:6px 0 2px;
}
html body .clipme-plat-pill{
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 16px; border-radius:999px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.10);
  transition:border-color .2s ease;
}
html body .clipme-plat-pill:hover{
  border-color:color-mix(in srgb, var(--brand) 50%, transparent);
}
html body .clipme-plat-logo{
  display:inline-flex; width:20px; height:20px; flex:0 0 20px;
}
html body .clipme-plat-logo svg{ width:100%; height:100%; display:block; }
html body .clipme-plat-name{
  font-family:"Sora",system-ui,sans-serif; font-weight:700; font-size:16px;
  color:#fff!important; letter-spacing:-.005em;
}
html body .clipme-plat-tag{
  display:inline-flex; align-items:center;
  font-family:"Sora",system-ui,sans-serif; font-size:10px; font-weight:700;
  text-transform:uppercase; letter-spacing:.04em;
  padding:2px 8px; border-radius:999px;
  background:rgba(255,255,255,.08); color:rgba(255,255,255,.55)!important;
  white-space:nowrap;
}
html body .clipme-plat-tag.is-live{
  background:rgba(83,252,24,.15); color:#53fc18!important;
}
/* Enter once, staggered — visible at rest so nothing waits on an observer to appear. */
html body .clipme-plat.anim .clipme-plat-pill{
  opacity:0; transform:translateY(10px);
}
html body .clipme-plat.anim.in .clipme-plat-pill{
  opacity:1; transform:none;
  transition:opacity .5s cubic-bezier(.22,1,.36,1) calc(var(--i) * .09s),
             transform .5s cubic-bezier(.22,1,.36,1) calc(var(--i) * .09s);
}
@media (max-width:760px){
  html body .clipme-plat{ gap:10px; }
  html body .clipme-plat-pill{ padding:7px 13px; gap:8px; }
  html body .clipme-plat-name{ font-size:14px; }
  html body .clipme-plat-logo{ width:18px; height:18px; flex:0 0 18px; }
}
@media (prefers-reduced-motion:reduce){
  html body .clipme-plat.anim .clipme-plat-pill{ opacity:1; transform:none }
}

/* ---- 36. Merged output strip -------------------------------------------------
   The clips-out rail used to be a third column beside the stage, and the "N clips from
   one stream" fan was a separate section further down — the page told the same story
   twice. The rail is gone; the panel now watches a stream above and hands the clips back
   underneath, in one object. */
html body .clipme-wp-body{ grid-template-columns:minmax(0,1fr) 260px; }
html body .clipme-wp-out{
  margin-top:16px; padding-top:15px;
  border-top:1px solid rgba(255,255,255,.08);
}
html body .clipme-wp-outrow{
  display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px;
}
html body .clipme-wp-outfoot{
  margin-top:13px; text-align:center;
  font-size:13.5px; color:rgba(255,255,255,.62)!important;
}
html body .clipme-wp-outn{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-size:19px; font-weight:800; color:#45e06a!important; margin-right:5px;
}
@media (max-width:1000px){
  html body .clipme-wp-body{ grid-template-columns:minmax(0,1fr) 200px; }
  html body .clipme-wp-outrow{ grid-template-columns:repeat(5,minmax(0,1fr)); }
}
@media (max-width:760px){
  html body .clipme-wp-body{ grid-template-columns:minmax(0,1fr); }
  html body .clipme-wp-outrow{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
  html body .clipme-wp-outfoot{ font-size:11.5px; }
  html body .clipme-wp-outn{ font-size:16px; }
}

/* ---- 37. Desktop: clips column on the left ----------------------------------
   Desktop only. Below 1001px the strip stays where it is, a horizontal row under the
   stage — a narrow left column would squeeze both it and the stage on a phone.
   Layout is areas rather than source order so nothing in the markup has to move. */
@media (min-width:1001px){
  html body .clipme-wp-frame{
    display:grid;
    grid-template-columns:168px minmax(0,1fr);
    grid-template-areas:"bar bar" "out body";
    column-gap:18px; align-items:start;
  }
  html body .clipme-wp-bar{ grid-area:bar; }
  html body .clipme-wp-body{ grid-area:body; margin-top:14px; }
  html body .clipme-wp-out{
    grid-area:out; margin-top:14px; padding-top:0;
    border-top:0;
    border-right:1px solid rgba(255,255,255,.08); padding-right:16px;
  }
  /* one clip per row, stacked down the column */
  html body .clipme-wp-outrow{ grid-template-columns:minmax(0,1fr); gap:9px; }
  html body .clipme-wp-outfoot{
    text-align:left; font-size:12px; margin-top:12px; line-height:1.45;
  }
  html body .clipme-wp-outn{ font-size:17px; }
}

/* ---- 38. Three steps ----------------------------------------------------------
   clipme.com's how-it-works section, matched: heading + sub, then three cards each led
   by a wordless visual. Text-only cards were not the same section — the visuals are what
   make it read as a process. Animations are ported from the live site's globals.css. */
html body .clipme-steps-sec{ padding:16px 0 8px; }
html body .clipme-steps-inner{ max-width:1180px; margin:0 auto; padding:0 24px; }
html body .clipme-steps-head{ max-width:640px; }
html body .clipme-steps-head h2{
  font-family:"Sora",system-ui,sans-serif; font-weight:800;
  font-size:40px; line-height:1.1; letter-spacing:-.02em;
  color:#fff!important; margin:0;
}
html body .clipme-steps-head p{
  margin:12px 0 0; font-size:18px; line-height:1.5;
  color:rgba(255,255,255,.60)!important;
}
html body .clipme-steps{
  margin-top:54px;
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px;
}
html body .clipme-step{
  background:rgba(255,255,255,.028);
  border:1px solid rgba(255,255,255,.07);
  border-radius:18px; padding:28px;
}
html body .clipme-step-n{
  display:block; font-family:"JetBrains Mono",ui-monospace,monospace;
  font-size:13px; font-weight:700; color:#e63a55!important;
}
html body .clipme-step-t{
  font-family:"Sora",system-ui,sans-serif; font-weight:700; font-size:21px;
  color:#fff!important; margin:12px 0 0; letter-spacing:-.01em;
}
html body .clipme-step-b{
  font-size:15.5px; line-height:1.55; color:rgba(255,255,255,.60)!important; margin:9px 0 0;
}

/* the visual panel at the top of each card */
html body .clipme-sv{
  position:relative; height:118px; margin-bottom:24px;
  border:1px solid rgba(255,255,255,.08); border-radius:13px; overflow:hidden;
  display:flex; align-items:center; justify-content:center; background:#0b0b0e;
}
html body .clipme-sv-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.25; }
html body .clipme-sv-fade{ position:absolute; inset:0;
  background:linear-gradient(90deg,#0b0b0e 0%, rgba(11,11,14,.7) 55%, transparent 100%); }
html body .clipme-sv-dots{ position:absolute; right:12px; top:12px; display:flex; gap:6px; z-index:3; }
html body .clipme-sv-dot{ width:8px; height:8px; border-radius:50%; display:block; }
html body .clipme-sv-bar{
  position:relative; z-index:2; display:flex; align-items:center; gap:8px; width:80%;
  padding:9px 12px; border-radius:999px;
  border:1px solid rgba(255,255,255,.10); background:rgba(20,20,26,.9);
}
html body .clipme-sv-track{ position:relative; flex:1; height:8px; border-radius:999px;
  background:rgba(255,255,255,.10); overflow:hidden; }
html body .clipme-sv-fill{ display:block; height:100%; border-radius:999px;
  background:rgba(230,58,85,.7); animation:clipme-step-fill 2.8s ease-in-out infinite; }
@keyframes clipme-step-fill{ 0%{width:0} 55%{width:100%} 82%{width:100%} 100%{width:0} }
html body .clipme-sv-caret{ width:2px; height:14px; background:#e63a55;
  animation:clipme-step-blink 1s steps(1) infinite; }
@keyframes clipme-step-blink{ 0%,50%{opacity:1} 51%,100%{opacity:0} }

html body .clipme-sv-strip{ position:absolute; inset:0; display:flex; opacity:.4; }
html body .clipme-sv-strip img{ height:100%; flex:1; object-fit:cover; }
html body .clipme-sv-veil{ position:absolute; inset:0; background:rgba(11,11,14,.55); }
html body .clipme-sv-bars{ position:relative; z-index:2; display:flex; align-items:flex-end;
  gap:3px; height:58px; }
html body .clipme-sv-b{ width:4px; border-radius:2px; background:#3a2c30; display:block; }
html body .clipme-sv-b.hot{ background:#e63a55; }
html body .clipme-sv-scan{ position:absolute; top:20px; bottom:20px; width:2px; z-index:3;
  background:#e63a55; box-shadow:0 0 8px #e63a55; animation:clipme-step-scan 2.6s ease-in-out infinite; }
@keyframes clipme-step-scan{ 0%{left:8%} 50%{left:90%} 100%{left:8%} }
html body .clipme-sv-lock{ position:absolute; right:24%; top:12px; z-index:3;
  border:1px solid #e63a55; background:rgba(230,58,85,.15); color:#fff!important;
  border-radius:4px; padding:2px 6px; font-family:"JetBrains Mono",ui-monospace,monospace;
  font-size:10px; font-weight:700; }

html body .clipme-sv-ship{ display:flex; align-items:center; gap:16px; }
html body .clipme-sv-phone{ position:relative; display:block; width:48px; height:80px;
  border:1px solid rgba(255,255,255,.10); border-radius:7px; overflow:hidden; background:#14141a; }
html body .clipme-sv-phone img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
html body .clipme-sv-shade{ position:absolute; left:0; right:0; bottom:0; height:50%;
  background:linear-gradient(to top, rgba(0,0,0,.85), transparent); }
html body .clipme-sv-caps{ position:absolute; left:4px; right:4px; bottom:6px;
  display:flex; flex-direction:column; gap:4px; }
html body .clipme-sv-cap{ display:block; height:6px; border-radius:999px; background:#e63a55;
  transform-origin:left; animation:clipme-step-cap 1.9s ease-in-out infinite; }
html body .clipme-sv-cap2{ display:block; height:6px; width:66%; border-radius:999px;
  background:rgba(255,255,255,.6); }
@keyframes clipme-step-cap{ 0%,100%{transform:scaleX(.2);opacity:.5} 50%{transform:scaleX(1);opacity:1} }
html body .clipme-sv-arrow{ color:rgba(255,255,255,.45)!important; font-size:13px; }
html body .clipme-sv-plats{ display:flex; flex-direction:column; gap:8px; }
html body .clipme-sv-plat{ display:flex; align-items:center; justify-content:center;
  width:24px; height:24px; border-radius:6px; border:1px solid rgba(255,255,255,.10); background:#0b0b0e; }
html body .clipme-sv-plat i{ display:block; width:10px; height:10px; border-radius:50%;
  animation:clipme-step-pulse 2s ease-in-out infinite; }
@keyframes clipme-step-pulse{ 0%,100%{opacity:1} 50%{opacity:.35} }

html body .clipme-steps.anim .clipme-step{ opacity:0; transform:translateY(12px); }
html body .clipme-steps.anim.in .clipme-step{
  opacity:1; transform:none;
  transition:opacity .55s cubic-bezier(.22,1,.36,1) calc(var(--i) * .1s),
             transform .55s cubic-bezier(.22,1,.36,1) calc(var(--i) * .1s);
}
@media (max-width:860px){
  html body .clipme-steps{ grid-template-columns:minmax(0,1fr); gap:14px; margin-top:34px; }
  html body .clipme-steps-inner{ padding:0 18px; }
  html body .clipme-steps-head h2{ font-size:28px; }
  html body .clipme-steps-head p{ font-size:15.5px; }
  html body .clipme-step{ padding:20px; border-radius:15px; }
  html body .clipme-step-t{ font-size:19px; }
  html body .clipme-step-b{ font-size:14.5px; }
}
@media (prefers-reduced-motion:reduce){
  html body .clipme-steps.anim .clipme-step{ opacity:1; transform:none }
  html body .clipme-sv-fill,html body .clipme-sv-caret,html body .clipme-sv-scan,
  html body .clipme-sv-cap,html body .clipme-sv-plat i{ animation:none }
  html body .clipme-sv-fill{ width:100% }
}

/* ---- 39. ClipMe-for-teams visuals ---------------------------------------------
   Replaces OpusClip's own product screenshots in the three "Scale your creative
   output" cards — their editor, their folders UI, their API diagram with their logo
   at the centre. Built in markup from our real output and the cl!pme mark. */
html body .clipme-tv{
  position:relative; height:168px; margin-bottom:18px; border-radius:13px;
  border:1px solid rgba(255,255,255,.08); background:#0b0b0e; overflow:hidden;
  display:flex; align-items:center; justify-content:center; gap:14px;
}
/* 01 brand templates — a real clip wearing the brand wrap, next to the controls */
html body .clipme-tv-clip{
  position:relative; width:76px; height:132px; border-radius:8px; overflow:hidden;
  border:1px solid rgba(255,255,255,.12); flex:0 0 76px; background:#000;
}
html body .clipme-tv-clip img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
html body .clipme-tv-strip{
  position:absolute; left:0; right:0; bottom:0; height:19px; background:#000;
  display:flex; align-items:center; justify-content:space-between; padding:0 5px;
}
html body .clipme-tv-strip b{ font-family:"Sora",system-ui,sans-serif; font-weight:800;
  font-size:8px; color:#fff!important; letter-spacing:-.02em; }
html body .clipme-tv-strip b i{ color:#e63a55!important; font-style:normal; }
html body .clipme-tv-strip em{ font-family:"JetBrains Mono",ui-monospace,monospace;
  font-style:normal; font-size:5px; color:rgba(255,255,255,.75)!important; }
html body .clipme-tv-panel{ display:flex; flex-direction:column; gap:7px; }
html body .clipme-tv-row{
  display:flex; align-items:center; gap:7px; font-size:10.5px;
  color:rgba(255,255,255,.72)!important;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08);
  border-radius:7px; padding:5px 9px; min-width:118px;
}
html body .clipme-tv-row .sw{ width:12px; height:12px; border-radius:3px; flex:0 0 12px; display:block; }
html body .clipme-tv-row .sw-font{ background:rgba(255,255,255,.12); font-size:7px; font-weight:800;
  display:flex; align-items:center; justify-content:center; color:#fff!important; }
html body .clipme-tv-row .sw-logo{ background:#000; font-size:7px; font-weight:800;
  display:flex; align-items:center; justify-content:center; color:#fff!important; }
html body .clipme-tv-row .sw-logo b{ color:#e63a55!important; }

/* 02 team workspace — our own wall queue, not their folders */
html body .clipme-tv-team{ flex-direction:column; align-items:stretch; padding:16px 18px; gap:7px; justify-content:center; }
html body .clipme-tv-head{ font-size:10.5px; color:rgba(255,255,255,.42)!important; margin-bottom:2px; }
html body .clipme-tv-folder{
  display:flex; align-items:center; gap:9px; font-size:12px;
  color:rgba(255,255,255,.80)!important;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.07);
  border-radius:9px; padding:8px 11px;
}
html body .clipme-tv-folder.on{ border-color:rgba(230,58,85,.45); background:rgba(230,58,85,.10); }
html body .clipme-tv-folder .fi{ width:11px; height:9px; border-radius:2px;
  background:rgba(255,255,255,.35); flex:0 0 11px; display:block; }
html body .clipme-tv-folder.on .fi{ background:#e63a55; }
html body .clipme-tv-folder em{ margin-left:auto; font-style:normal;
  font-family:"JetBrains Mono",ui-monospace,monospace; font-size:10.5px;
  color:rgba(255,255,255,.45)!important; }
html body .clipme-tv-who{
  position:absolute; font-size:9.5px; font-weight:700; border-radius:999px;
  padding:3px 9px; color:#fff!important;
}
html body .clipme-tv-who1{ right:16px; top:44px; background:#e63a55; }
html body .clipme-tv-who2{ right:38px; bottom:30px; background:#5a6cff; }

/* 03 workflow — the cl!pme mark at the centre, our platforms around it */
html body .clipme-tv-flow{ position:relative; }
html body .clipme-tv-core{
  position:relative; z-index:2; width:62px; height:62px; border-radius:50%;
  background:#000; border:1px solid rgba(255,255,255,.16);
  display:flex; align-items:center; justify-content:center;
  font-family:"Sora",system-ui,sans-serif; font-weight:800; font-size:13px;
  color:#fff!important; letter-spacing:-.03em;
}
html body .clipme-tv-core i{ color:#e63a55!important; font-style:normal; }
html body .clipme-tv-node{
  position:absolute; width:27px; height:27px; border-radius:8px;
  border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.04);
  display:flex; align-items:center; justify-content:center;
}
html body .clipme-tv-node i{ width:10px; height:10px; border-radius:50%; display:block; }
html body .clipme-tv-node.in0{ left:24%; top:18%; }
html body .clipme-tv-node.in1{ left:16%; top:48%; }
html body .clipme-tv-node.in2{ left:24%; bottom:18%; }
html body .clipme-tv-node.out0{ right:24%; top:18%; }
html body .clipme-tv-node.out1{ right:16%; top:48%; }
html body .clipme-tv-node.out2{ right:24%; bottom:18%; }
@media (max-width:860px){
  html body .clipme-tv{ height:150px; }
  html body .clipme-tv-row{ min-width:104px; font-size:10px; }
}

/* ---- 40. Nav dropdown repair --------------------------------------------------
   Three of the four nav dropdowns came out of the capture with collapsed grid tracks —
   "How it works" resolved to `0px 0px 0px`, so every link squeezed to 24px wide and the
   titles stacked on top of one another. Features survived at ~253px per column, which is
   what the others should have been. Widths restored to match it; nothing else about the
   nav is touched. */
html body ._0625_navbar_solutions-dropdown_content,
html body ._0625_navbar_resources-dropdown_content{
  grid-template-columns:minmax(0,1fr) 1px 240px!important;
  column-gap:26px; align-items:start;
}
html body ._0625_navbar_solutions-dropdown_links{
  grid-template-columns:repeat(3,minmax(158px,1fr))!important;
  column-gap:22px; row-gap:18px;
}
html body ._0625_navbar_resources-dropdown_links{
  grid-template-columns:repeat(2,minmax(158px,1fr))!important;
  column-gap:22px; row-gap:18px;
}
html body ._0625_navbar_solutions-dropdown_featured,
html body ._0625_navbar_resources-dropdown_featured{
  grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:12px;
}
html body ._0905_navbar_business-dropdown_content{
  grid-template-columns:repeat(2,minmax(210px,1fr))!important; gap:14px;
}
/* the links themselves had collapsed to a 24px column */
html body ._0625_navbar_solutions-dropdown_links > a,
html body ._0625_navbar_resources-dropdown_links > a{
  min-width:0; width:auto;
}
html body ._0625_navbar_solutions-dropdown_link_title,
html body ._0625_navbar_resources-dropdown_link_title{ white-space:nowrap; }
html body ._0625_navbar_solutions-dropdown_link_text,
html body ._0625_navbar_resources-dropdown_link_text{
  white-space:normal; line-height:1.4;
}
/* give the panels room to hold those columns */
/* The real constraint was the panel, not the grid: every dropdown list is
   .a-ca_navbar_dropdown_list with min-width:240px, so a 220px featured column left the
   links track resolving to 0px however wide its own columns were declared. Widened per
   menu via :has(), so the small menus (See demos, language) keep their narrow panel. */
html body .a-ca_navbar_dropdown_list:has(._0625_navbar_solutions-dropdown_content){
  min-width:860px!important;
}
html body .a-ca_navbar_dropdown_list:has(._0625_navbar_resources-dropdown_content){
  min-width:660px!important;
}
html body .a-ca_navbar_dropdown_list:has(._0905_navbar_business-dropdown_content){
  min-width:480px!important;
}
@media (max-width:991px){
  /* The three :has() width rules above carry !important and no media query, so they
     outranked the mobile reset - a 860px panel inside a 390px viewport. Same selectors,
     same !important, later in source: this wins. */
  html body .a-ca_navbar_dropdown_list:has(._0625_navbar_solutions-dropdown_content),
  html body .a-ca_navbar_dropdown_list:has(._0625_navbar_resources-dropdown_content),
  html body .a-ca_navbar_dropdown_list:has(._0905_navbar_business-dropdown_content){
    min-width:0!important; width:100%!important; max-width:100vw!important;
  }
  html body ._0625_navbar_solutions-dropdown_content,
  html body ._0625_navbar_resources-dropdown_content{
    grid-template-columns:minmax(0,1fr)!important;
  }
  html body ._0625_navbar_solutions-dropdown_links,
  html body ._0625_navbar_resources-dropdown_links{
    grid-template-columns:minmax(0,1fr)!important;
  }
  html body ._0905_navbar_business-dropdown_content{ grid-template-columns:minmax(0,1fr)!important; }
  html body .a-ca_navbar_dropdown_list{ min-width:0!important; }
}

/* ---- 41. "Built for <audience>." ------------------------------------------------
   The line shipped as "Built for IRL. Not podcasts." IRL is genuinely the hard case
   no other clipper handles, so the first half was true — but the second half disowned
   a market that has its own live page on clipme.com, and read as a boast rather than
   a claim. Cycling the noun makes the same point (purpose-built per audience, not a
   generic repurposer) across every audience we actually serve.

   The slot sizes itself off a hidden GHOST holding the longest word, rather than a
   pixel width JS measured once. A measured width is only correct at the width it was
   measured at: the first build locked 217px, and at 267px the heading wrapped around
   a slot wider than the line it sat on and dropped the word off the row entirely.
   A ghost in normal flow re-sizes with the font at every breakpoint for free.

   The slot then MORPHS to each word rather than standing at the width of the longest
   one: parked at "streamers" width, a three-letter word like IRL sat marooned in the
   middle with a full stop stranded an inch to its right. Width is written in px only
   for the length of one swap and handed straight back to the ghost, so a resize still
   self-corrects. ------------------------------------------------------------------ */
html body .clipme-bf{
  display:inline-block; position:relative; max-width:100%;
  vertical-align:baseline; text-align:center;
  transition:width .26s ease;
}
@media (prefers-reduced-motion:reduce){
  html body .clipme-bf{ transition:none; }
}
html body .clipme-bf-ghost{
  visibility:hidden; pointer-events:none; white-space:nowrap;
}
html body .clipme-bf-word{
  position:absolute; inset:0 0 auto 0; white-space:nowrap;
  transition:opacity .26s ease, transform .26s ease;
  will-change:opacity, transform;
}
html body .clipme-bf-word.is-out{ opacity:0; transform:translateY(-.24em); }
html body .clipme-bf-word.is-in { opacity:0; transform:translateY(.24em);  }
@media (prefers-reduced-motion:reduce){
  html body .clipme-bf-word{ transition:none; }
  html body .clipme-bf-word.is-out,
  html body .clipme-bf-word.is-in{ opacity:1; transform:none; }
}

/* ---- 42. Dropdown destination pages -------------------------------------------
   Every item in Features / How it works / Resources pointed at a URL that 404'd, or
   at opus.pro. These pages are the destinations, built from clipme.com's own live
   copy — the persona answer, intro and benefit list come straight out of seo-data.js
   rather than being re-written here, so the mirror cannot drift from the real site.
   The chrome (head, nav, footer) is lifted verbatim from an existing mirror page, so
   only this content column needs styling. ------------------------------------- */
html body .clipme-pg{ padding:96px 24px 120px; background:var(--cm-bg,#08080a); }
html body .clipme-pg-wrap{ max-width:760px; margin:0 auto; }
html body .clipme-pg-eyebrow{
  font-size:13px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--cm-red-soft,#ff5a73); margin:0 0 14px; font-weight:600;
}
html body .clipme-pg-h1{
  font-size:clamp(34px,5.4vw,58px); line-height:1.04; letter-spacing:-.02em;
  font-weight:800; color:var(--cm-fg,#fff); margin:0 0 26px; text-wrap:balance;
}
/* The answer block is the 40–60 word lead an answer engine lifts. It is visually
   the largest body text on the page for the same reason it is first. */
html body .clipme-pg-answer{
  font-size:clamp(17px,2.1vw,21px); line-height:1.55; color:var(--cm-fg,#fff);
  margin:0 0 30px; padding-left:18px; border-left:3px solid var(--cm-red,#e63a55);
}
html body .clipme-pg-intro{
  font-size:17px; line-height:1.68; color:var(--cm-muted,#9b9ba6); margin:0 0 34px;
}
html body .clipme-pg-cta{
  display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin:0 0 44px;
}
html body .clipme-pg-btn{
  display:inline-block; background:var(--cm-red,#e63a55); color:#fff!important;
  font-weight:700; font-size:16px; padding:14px 26px; border-radius:999px;
  text-decoration:none; min-height:48px; line-height:20px;
}
html body .clipme-pg-note{ font-size:14px; color:var(--cm-faint,#6b6b76); }
html body .clipme-pg-h2{
  font-size:15px; letter-spacing:.1em; text-transform:uppercase; font-weight:700;
  color:var(--cm-faint,#6b6b76); margin:0 0 16px;
}
html body .clipme-pg-benefits{ list-style:none; margin:0 0 48px; padding:0;
  display:grid; gap:12px; }
html body .clipme-pg-benefits li{
  position:relative; padding:16px 18px 16px 46px; border-radius:var(--cm-radius,16px);
  background:var(--cm-elev,#131316); border:1px solid var(--cm-border,#262630);
  color:var(--cm-fg,#fff); font-size:16px; line-height:1.5;
}
html body .clipme-pg-benefits li::before{
  content:""; position:absolute; left:18px; top:50%; width:10px; height:10px;
  margin-top:-5px; border-radius:50%; background:var(--cm-live,#45e06a);
}
html body .clipme-pg-related{ display:flex; flex-wrap:wrap; gap:10px; }
html body .clipme-pg-related a{
  display:inline-block; padding:10px 16px; border-radius:999px; font-size:14px;
  min-height:44px; line-height:24px;
  background:var(--cm-elev2,#1b1b1f); border:1px solid var(--cm-border,#262630);
  color:var(--cm-fg,#fff)!important; text-decoration:none;
}
html body .clipme-pg-related a:hover{ border-color:var(--cm-red,#e63a55); }
@media (max-width:640px){
  html body .clipme-pg{ padding:64px 18px 88px; }
}

/* ---- 36. Kick stream loadout. Kick's page is player-left / chat-right with a
   meta strip under the player. The panel was clips|stage|chat three-up, which
   read like a dashboard rather than a stream. Rail is retired here — the merged
   output row below already shows clips out, so keeping both said it twice. ---- */
html body .clipme-wp-body{
  grid-template-columns:minmax(0,1fr) 300px;   /* player · chat sidebar */
  gap:14px;
}
html body .clipme-wp-railcol{ display:none; }

/* meta strip: avatar, channel, category pills, LIVE */
html body .clipme-wp-meta{
  display:flex; align-items:center; gap:10px; margin-top:10px;
  padding-top:10px; border-top:1px solid #1b1b22;
}
html body .clipme-wp-avatar{
  width:34px; height:34px; border-radius:50%; object-fit:cover; flex:0 0 34px;
  border:2px solid #53fc18;            /* Kick green, as a platform mark only */
  background:#1b1b22;
}
html body .clipme-wp-metatext{ min-width:0; flex:1 1 auto; }
html body .clipme-wp-title{
  font-weight:700; font-size:13px; color:#f7f7f9!important;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
html body .clipme-wp-tags{ display:flex; gap:5px; margin-top:4px; }
html body .clipme-wp-pill{
  font-family:"JetBrains Mono",ui-monospace,monospace; font-size:9px;
  padding:2px 7px; border-radius:99px; letter-spacing:.06em;
  background:rgba(83,252,24,.12); color:#53fc18!important; border:1px solid rgba(83,252,24,.3);
}
html body .clipme-wp-pill.is-ghost{
  background:transparent; color:#9b9ba6!important; border-color:#2c2c36;
}
html body .clipme-wp-livebadge{
  font-family:"JetBrains Mono",ui-monospace,monospace; font-size:9px; font-weight:700;
  letter-spacing:.1em; padding:3px 8px; border-radius:4px;
  background:#e63a55; color:#fff!important; flex:0 0 auto;
}
/* chat reads like Kick's sidebar: dense, left-aligned, coloured handles */
html body .clipme-wp-chatcol{
  background:#0c0c10; border:1px solid #1b1b22; border-radius:10px; padding:10px;
}
html body .clipme-wp-msgs{ text-align:left; font-size:12px; line-height:1.5; }
@media (max-width:900px){
  html body .clipme-wp-body{ grid-template-columns:minmax(0,1fr); }
  html body .clipme-wp-chatcol{ display:none; }
}

/* ---- 43. Destination-page imagery + motion --------------------------------------
   The 14 dropdown pages shipped as text only. Everything below is real ClipMe media —
   published clips out of clips/feed and the creator avatars in assets/creators — never
   stock and never another company's clients.

   The fan is three 9:16 tiles: the middle one plays, the outer two are stills turned
   back, so the eye lands on the moving one. A scan line crosses the middle tile on a
   slow cycle — that is the product's own gesture, the cut being found, and it is the
   only motion allowed to be conspicuous.

   Reveals start VISIBLE and are only hidden once JS has claimed them, so a page with
   no JS still shows its whole body rather than a column of blanks. ---------------- */
html body .clipme-pg-wrap.has-visual{ max-width:1180px; }
@media (min-width:1000px){
  html body .clipme-pg-wrap.has-visual{
    display:grid; grid-template-columns:minmax(0,1fr) 396px; gap:64px; align-items:start;
  }
  html body .clipme-pg-wrap.has-visual > *{ grid-column:1; }
  html body .clipme-pg-wrap.has-visual > .clipme-pg-visual{
    grid-column:2; grid-row:1 / span 5; position:sticky; top:104px;
  }
}
html body .clipme-pg-visual{ margin:0 0 44px; }

/* --- the three-tile fan ---
   Sized in percentages of the column and overlapped with negative margins. Fixed
   pixel widths added up to 428px inside a 396px column, so the tiles collided and
   the outer two ended up behind the middle one instead of fanned around it. */
html body .clipme-fan{
  position:relative; display:flex; justify-content:center; align-items:center;
  padding:16px 10px 10px; min-height:300px; overflow:visible;
  /* the host stylesheet sets flex-direction:column on containers in this region, so
     the three tiles stacked down the column instead of fanning across it */
  flex-direction:row!important; flex-wrap:nowrap!important;
}
html body .clipme-fan-t{
  position:relative; aspect-ratio:9/16; border-radius:14px;
  overflow:hidden; background:var(--cm-elev,#131316);
  border:1px solid var(--cm-border,#262630);
  box-shadow:0 22px 44px rgba(0,0,0,.55);
  flex:0 0 auto;
}
html body .clipme-fan-t img,
html body .clipme-fan-t video{
  width:100%; height:100%; object-fit:cover; display:block;
}
html body .clipme-fan-t.side{ width:27%; opacity:.6; z-index:1; }
html body .clipme-fan-t.l{ transform:rotate(-8deg); margin-right:-5%; }
html body .clipme-fan-t.r{ transform:rotate(8deg);  margin-left:-5%; }
html body .clipme-fan-t.mid{
  width:40%; z-index:3; animation:clipme-float 6.5s ease-in-out infinite;
}
@keyframes clipme-float{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-9px) } }

/* the cut being found */
html body .clipme-fan-scan{
  position:absolute; left:0; right:0; height:2px; top:0; z-index:4;
  background:linear-gradient(90deg,transparent,var(--cm-live,#45e06a),transparent);
  box-shadow:0 0 14px 2px rgba(69,224,106,.55);
  animation:clipme-scan 5.2s cubic-bezier(.6,0,.35,1) infinite;
}
@keyframes clipme-scan{
  0%,12%   { top:0;    opacity:0 }
  18%      { opacity:1 }
  62%      { top:100%; opacity:1 }
  70%,100% { top:100%; opacity:0 }
}
html body .clipme-fan-badge{
  position:absolute; z-index:5; left:50%; bottom:-4px; transform:translateX(-50%);
  display:inline-flex; align-items:center; gap:7px; white-space:nowrap;
  background:rgba(8,8,10,.92); border:1px solid var(--cm-border,#262630);
  border-radius:999px; padding:7px 14px; font-size:12.5px; font-weight:600;
  color:var(--cm-fg,#fff); backdrop-filter:blur(6px); max-width:100%;
}
html body .clipme-fan-badge i{
  width:7px; height:7px; border-radius:50%; background:var(--cm-live,#45e06a);
  animation:clipme-pulse 1.7s ease-in-out infinite; flex:0 0 auto;
}
@keyframes clipme-pulse{ 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.35;transform:scale(.7)} }

/* --- who it already ran on --- */
html body .clipme-proof{ margin:26px 0 0; text-align:center; }
html body .clipme-proof-row{ display:flex; justify-content:center; padding-left:11px; }
html body .clipme-proof-row img{
  width:38px; height:38px; border-radius:50%; object-fit:cover; margin-left:-11px;
  border:2px solid var(--cm-bg,#08080a); background:var(--cm-elev,#131316);
}
html body .clipme-proof-cap{
  margin:12px 0 0; font-size:13px; color:var(--cm-faint,#6b6b76); line-height:1.5;
}
html body .clipme-proof-cap b{ color:var(--cm-muted,#9b9ba6); font-weight:600; }

/* --- platforms --- */
html body .clipme-pg-plats{
  display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin:22px 0 0;
}
html body .clipme-pg-plats span{
  display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600;
  color:var(--cm-muted,#9b9ba6); background:var(--cm-elev,#131316);
  border:1px solid var(--cm-border,#262630); border-radius:999px; padding:6px 12px;
}
html body .clipme-pg-plats img{ width:14px; height:14px; display:block; }

/* --- scroll reveals: only applied once JS is running --- */
html body .clipme-reveal{
  opacity:0; transform:translateY(16px);
  transition:opacity .6s cubic-bezier(.22,1,.36,1), transform .6s cubic-bezier(.22,1,.36,1);
}
html body .clipme-reveal.is-in{ opacity:1; transform:none; }

@media (prefers-reduced-motion:reduce){
  html body .clipme-fan-t.mid{ animation:none; }
  html body .clipme-fan-scan{ display:none; }
  html body .clipme-fan-badge i{ animation:none; }
  html body .clipme-reveal{ transition:none; opacity:1; transform:none; }
}
@media (max-width:999px){
  html body .clipme-pg-visual{ margin:8px 0 40px; }
  html body .clipme-fan{ min-height:300px; }
}

/* ---- 108. Long-form body: the unstyled half of every page -----------------------
   Census of one persona page: 6 bare <h2>, 21 bare <p>, 4 bare <ul>, 1 bare <table>
   inside .clipme-pg-wrap. None carry a class, so nothing in this stylesheet reached
   them and the browser default was the design. Two consequences were visible:

     * every bare h2 computed margin-bottom:0, so the paragraph welded itself to the
       heading - the headline and its first line were touching on every long page.
     * every text node computed max-width:none, so prose ran the full 1180px wrap.
       At 17px that is ~150 characters a line, roughly double a readable measure.

   Scoped with :not([class]) on purpose. The wrap mixes themed elements (.clipme-pg-h2,
   .clipme-pg-answer, .clipme-pg-intro) with these bare ones; matching bare elements
   only means the existing, deliberate treatments are left exactly as they are.

   Scoped to prose position as well (2026-09-18): bare elements are matched only as
   direct children of the wrap or inside a bare <section> under it. Unscoped, these
   rules reached every ported card grid (use-case cards, autopilot cards, wall steps,
   hub cards) and stacked 40px heading margins inside 18px-padded cards. */
html body .clipme-pg-wrap > h2:not([class]),
html body .clipme-pg-wrap > section:not([class]) h2:not([class]){
  font-size:clamp(26px,3.6vw,38px);
  line-height:1.1;
  letter-spacing:-.022em;
  margin:64px 0 18px;
  max-width:20ch;
  text-wrap:balance;
}
html body .clipme-pg-wrap > h3:not([class]),
html body .clipme-pg-wrap > section:not([class]) h3:not([class]){
  font-size:clamp(19px,2.2vw,23px);
  line-height:1.25;
  letter-spacing:-.012em;
  margin:40px 0 12px;
  text-wrap:balance;
}
/* Measure. 68ch keeps a 17px line near 65-75 characters, which is the band long-form
   actually reads at - the wrap stays 1180px for the tables and visuals that need it. */
html body .clipme-pg-wrap > p:not([class]),
html body .clipme-pg-wrap > section:not([class]) p:not([class]),
html body .clipme-pg-wrap > ul:not([class]),
html body .clipme-pg-wrap > section:not([class]) ul:not([class]),
html body .clipme-pg-wrap > ol:not([class]),
html body .clipme-pg-wrap > section:not([class]) ol:not([class]){
  max-width:68ch;
}
html body .clipme-pg-wrap > p:not([class]),
html body .clipme-pg-wrap > section:not([class]) p:not([class]){
  font-size:17px;
  line-height:1.68;
  margin:0 0 20px;
  opacity:.9;
}
html body .clipme-pg-wrap > ul:not([class]),
html body .clipme-pg-wrap > section:not([class]) ul:not([class]),
html body .clipme-pg-wrap > ol:not([class]),
html body .clipme-pg-wrap > section:not([class]) ol:not([class]){
  margin:0 0 26px;
  padding-left:22px;
}
html body .clipme-pg-wrap > ul:not([class]) li,
html body .clipme-pg-wrap > section:not([class]) ul:not([class]) li,
html body .clipme-pg-wrap > ol:not([class]) li,
html body .clipme-pg-wrap > section:not([class]) ol:not([class]) li{
  font-size:17px;
  line-height:1.62;
  margin-bottom:9px;
  opacity:.9;
}
html body .clipme-pg-wrap > ul:not([class]) li::marker,
html body .clipme-pg-wrap > section:not([class]) ul:not([class]) li::marker{ color:var(--color-red,#e63046); }
/* A heading that opens a block should not also inherit the 64px lead-in. */
html body .clipme-pg-wrap > section > div > h2:not([class]):first-child,
html body .clipme-pg-wrap > h2:not([class]):first-child,
html body .clipme-pg-wrap > section:not([class]) h2:not([class]):first-child{ margin-top:0; }
html body .clipme-pg-wrap > table:not([class]),
html body .clipme-pg-wrap > section:not([class]) table:not([class]){ margin:0 0 34px; }

@media (max-width:700px){
  html body .clipme-pg-wrap > h2:not([class]),
  html body .clipme-pg-wrap > section:not([class]) h2:not([class]){ margin:44px 0 14px; max-width:none; }
  html body .clipme-pg-wrap > h3:not([class]),
  html body .clipme-pg-wrap > section:not([class]) h3:not([class]){ margin:30px 0 10px; }
  html body .clipme-pg-wrap > p:not([class]),
  html body .clipme-pg-wrap > section:not([class]) p:not([class]),
  html body .clipme-pg-wrap > ul:not([class]) li,
  html body .clipme-pg-wrap > section:not([class]) ul:not([class]) li,
  html body .clipme-pg-wrap > ol:not([class]) li,
  html body .clipme-pg-wrap > section:not([class]) ol:not([class]) li{ font-size:16px; }
}

/* ---- 109. Interactive polish: motion where the page is actually touched ---------
   The theme already carries 33 keyframes and 71 animation rules, but they live in the
   built widgets. Everything the reader actually moves a cursor over - table rows, the
   step accordions, body links, list items - had no state at all, and the long-form
   column had no reveal (see the selector note in clipme-theme.js). Motion here is
   restricted to opacity, colour and small transforms so nothing reflows on hover.

   The floating theme toggle is also dealt with: fixed at z-index 99999 it sat directly
   on top of body copy - it was covering an <h2> mid-article and reading as clipped
   text. It now rests at low opacity and lifts to full on hover/focus, so it stops
   competing with the words underneath it. */
html body .clipme-theme-toggle{
  opacity:.42;
  transition:opacity .18s ease, transform .18s ease;
}
html body .clipme-theme-toggle:hover,
html body .clipme-theme-toggle:focus-within,
html body .clipme-theme-toggle:focus-visible{ opacity:1; transform:translateY(-1px); }

/* Table rows: the comparison table is the densest block on these pages. */
html body .clipme-pg-wrap > table:not([class]) tbody tr,
html body .clipme-pg-wrap > section:not([class]) table:not([class]) tbody tr{
  transition:background-color .16s ease;
}
html body .clipme-pg-wrap > table:not([class]) tbody tr:hover,
html body .clipme-pg-wrap > section:not([class]) table:not([class]) tbody tr:hover{
  background:rgba(230,48,70,.06);
}

/* Step accordions and FAQ summaries: give the open/close a real feel. */
html body details > summary{
  transition:color .16s ease, opacity .16s ease;
  cursor:pointer;
}
html body details > summary:hover{ color:var(--color-red,#e63046); }
html body details[open] > summary{ opacity:.96; }

/* Body links: underline grows from the left instead of snapping on. */
html body .clipme-pg-wrap > p:not([class]) a,
html body .clipme-pg-wrap > section:not([class]) p:not([class]) a,
html body .clipme-pg-wrap > li a,
html body .clipme-pg-wrap > section:not([class]) li a{
  text-decoration:none;
  background-image:linear-gradient(currentColor,currentColor);
  background-repeat:no-repeat;
  background-position:0 100%;
  background-size:0% 1px;
  transition:background-size .22s ease, color .16s ease;
}
html body .clipme-pg-wrap > p:not([class]) a:hover,
html body .clipme-pg-wrap > section:not([class]) p:not([class]) a:hover,
html body .clipme-pg-wrap > li a:hover,
html body .clipme-pg-wrap > section:not([class]) li a:hover{ background-size:100% 1px; }

/* List items lean in slightly - reads as a live list, not a static dump. */
html body .clipme-pg-wrap > ul:not([class]) li,
html body .clipme-pg-wrap > section:not([class]) ul:not([class]) li{
  transition:transform .16s ease, opacity .16s ease;
}
html body .clipme-pg-wrap > ul:not([class]) li:hover,
html body .clipme-pg-wrap > section:not([class]) ul:not([class]) li:hover{ transform:translateX(3px); opacity:1; }

@media (prefers-reduced-motion:reduce){
  html body .clipme-theme-toggle,
  html body .clipme-pg-wrap > table:not([class]) tbody tr,
  html body .clipme-pg-wrap > section:not([class]) table:not([class]) tbody tr,
  html body details > summary,
  html body .clipme-pg-wrap > p:not([class]) a,
  html body .clipme-pg-wrap > section:not([class]) p:not([class]) a,
  html body .clipme-pg-wrap > li a,
  html body .clipme-pg-wrap > section:not([class]) li a,
  html body .clipme-pg-wrap > ul:not([class]) li,
  html body .clipme-pg-wrap > section:not([class]) ul:not([class]) li{ transition:none; }
  html body .clipme-theme-toggle{ opacity:1; }
}

/* ---- 110. Tap targets the 900px passes never covered ------------------------------
   The comparison tables (.clipme-port) and the breadcrumb row (.clipme-crumbs) render
   links under 24px tall on phones; every other link on the site was lifted to a
   32px+ hit area by the earlier passes, these two selectors were simply missed. */
@media (max-width:900px){
  html body .clipme-port table a,
  html body .clipme-crumbs a{
    display:inline-block!important; min-height:32px!important; line-height:32px!important;
    padding:0 4px!important;
  }
}

/* ---- 107. Mobile: the proof visual rides above the CTA ---------------------------
   The visual is injected after .clipme-pg-cta because the desktop grid lifts it into
   the sticky second column, and DOM order is what the single-column fallback uses.
   That put it BELOW the buy button on every phone: the reader was asked to convert
   before seeing a single real clip or the creators whose walls back the claim.

   Reordering the DOM would break the desktop grid placement, so this is order-only
   and scoped to the one-column breakpoint. Header block first, visual second, and
   everything else keeps its source order behind them - flex preserves document order
   within an order group, so the CTA, intro and body stay in their existing sequence. */
@media (max-width:999px){
  html body .clipme-pg-wrap.has-visual{ display:flex; flex-direction:column; }
  html body .clipme-pg-wrap.has-visual > *{ order:3; }
  html body .clipme-pg-wrap.has-visual > nav.clipme-pg-note,
  html body .clipme-pg-wrap.has-visual > .clipme-pg-eyebrow,
  html body .clipme-pg-wrap.has-visual > .clipme-pg-h1,
  html body .clipme-pg-wrap.has-visual > .clipme-pg-answer{ order:1; }
  html body .clipme-pg-wrap.has-visual > .clipme-pg-visual{ order:2; margin:4px 0 32px; }
}

/* ---- 44. Prompt Mode: white fields, red bubbles ---------------------------------
   The prompt field and the mode pills were dark grey on a dark shell, so the two
   controls the panel is actually about read as background. They are white now: the
   field is the thing you type into and should look like it, and the pills sit on the
   same white so the row scans as one control strip rather than eight separate chips.

   The selected mode is a solid red bubble, not a red outline over a dark fill —
   an outline at 12px reads as a hairline at a glance, and the whole point of the row
   is which one is on. Outlines are a single crisp pixel at one radius throughout. */
html body .clipme-pm-field{
  background:#ffffff; border:1px solid #d9d9e2; border-radius:12px;
  color:#16161a!important;
  box-shadow:0 1px 0 rgba(0,0,0,.04) inset;
}
html body .clipme-pm-caret{ background:#e63a55; }

html body .clipme-pm-tag{
  background:#ffffff; border:1px solid #d9d9e2; border-radius:999px;
  color:#4a4a55!important; font-weight:600; padding:6px 13px;
  box-shadow:none;
}
html body .clipme-pm-tag.on{
  background:#e63a55; border-color:#e63a55; color:#ffffff!important;
  box-shadow:0 2px 10px rgba(230,58,85,.35);
}
/* Light theme resolves to the same controls — the panel is white-on-white there, so
   the pills keep their outline to stay separable from the shell. */
html.light body .clipme-pm-field{ background:#fff; border-color:#d9d9e2; color:#16161a!important; }
html.light body .clipme-pm-tag{ background:#fff; border-color:#d9d9e2; color:#4a4a55!important; }
html.light body .clipme-pm-tag.on{ background:#e63a55; border-color:#e63a55; color:#fff!important; }

/* ---- 45. ClipMe Studio ----------------------------------------------------------
   Stands in for opus's editor screenshot. Four columns in the order the work happens:
   the VOD bin you pick a clip out of, the transcript, the vertical, the tool rail.
   Every frame is real ClipMe output; the tool drawer cycles so the rail is shown doing
   something rather than sitting there as seven grey icons.

   It is a dark instrument on a dark page, so separation is one elevation step and a
   single hairline — never a drop shadow per element. ---------------------------- */
html body .clipme-st{
  position:relative; width:100%; border-radius:18px; overflow:hidden;
  background:linear-gradient(180deg,#141419 0%,#0a0a0d 100%);
  border:1px solid var(--cm-border,#262630);
  font-family:"Inter",system-ui,sans-serif; color:var(--cm-fg,#fff);
  box-shadow:0 30px 70px rgba(0,0,0,.5);
}
html body .clipme-st-top{
  display:grid; grid-template-columns:186px minmax(0,1fr) auto 88px;
  gap:16px; padding:18px 16px 14px; align-items:start;
}
html body .clipme-st-label{
  font-size:10px; letter-spacing:.11em; text-transform:uppercase;
  color:var(--cm-faint,#6b6b76); margin-bottom:9px;
  font-family:"JetBrains Mono",ui-monospace,monospace;
}

/* --- the VOD bin --- */
html body .clipme-st-bin{
  border-right:1px solid var(--cm-border,#262630); padding-right:14px;
  max-height:290px; overflow:hidden;
}
html body .clipme-st-vod{ margin-bottom:9px; }
html body .clipme-st-vodhead{
  display:flex; align-items:center; gap:7px; font-size:11.5px; color:#9b9ba6;
  padding:5px 7px; border-radius:7px; line-height:1.2;
}
html body .clipme-st-vodhead svg{ width:14px; height:14px; flex:0 0 auto; }
html body .clipme-st-vodhead span{ flex:1 1 auto; min-width:0; overflow:hidden;
  text-overflow:ellipsis; white-space:nowrap; }
html body .clipme-st-vodhead b{
  font-size:10px; font-weight:700; color:var(--cm-live,#45e06a);
  font-variant-numeric:tabular-nums;
}
html body .clipme-st-vod.open .clipme-st-vodhead{ background:rgba(255,255,255,.05); color:#fff; }
html body .clipme-st-vodgrid{ display:none; grid-template-columns:repeat(3,1fr); gap:4px; padding:7px 0 2px; }
html body .clipme-st-vod.open .clipme-st-vodgrid{ display:grid; }
html body .clipme-st-vodgrid i{
  display:block; aspect-ratio:9/16; border-radius:5px; background-size:cover;
  background-position:center; border:1px solid transparent;
}
html body .clipme-st-vodgrid i.on{
  border-color:var(--cm-red,#e63a55); box-shadow:0 0 0 2px rgba(230,58,85,.28);
}

/* --- transcript + tool drawer --- */
html body .clipme-st-mid{ display:flex; flex-direction:column; gap:12px; min-width:0; }
html body .clipme-st-script p{ margin:0; font-size:13.5px; line-height:1.7; color:#c9c9d3; }
html body .clipme-st-script em{
  font-style:normal; color:var(--cm-live,#45e06a);
  background:rgba(69,224,106,.09); border-radius:4px; padding:1px 3px;
}
html body .clipme-st-drawer{
  border-top:1px solid var(--cm-border,#262630); padding-top:11px; min-height:62px;
}
html body .clipme-st-drawer-row{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
html body .clipme-st-gif{
  display:block; width:40px; aspect-ratio:9/16; border-radius:5px;
  background-size:cover; background-position:center; border:1px solid #2a2a36;
}
html body .clipme-st-gif.on{ border-color:var(--cm-red,#e63a55); }
html body .clipme-st-chip{
  display:inline-block; padding:5px 11px; border-radius:999px; font-size:11.5px;
  font-weight:600; background:#ffffff; border:1px solid #d9d9e2; color:#4a4a55;
}
html body .clipme-st-chip.on{
  background:var(--cm-red,#e63a55); border-color:var(--cm-red,#e63a55); color:#fff;
}

/* --- preview --- */
html body .clipme-st-stage{ display:flex; flex-direction:column; align-items:center; gap:7px; }
html body .clipme-st-phone{
  position:relative; width:126px; aspect-ratio:9/16; border-radius:12px;
  overflow:hidden; background:#000; border:1px solid #2e2e3a;
}
html body .clipme-st-phone video{ width:100%; height:100%; object-fit:cover; display:block; }
html body .clipme-st-cap{
  position:absolute; left:7px; right:7px; bottom:11px; text-align:center;
  font-size:10px; font-weight:800; line-height:1.25; color:#fff;
  text-shadow:0 2px 5px rgba(0,0,0,.9);
}
/* the preview answers the tool you reached for */
html body .clipme-st-fx{ position:absolute; inset:0; pointer-events:none; }
html body .clipme-st-fx.is-flash{ animation:clipme-st-flash .5s ease-out; }
html body .clipme-st-fx.is-punch{ animation:clipme-st-punch .55s cubic-bezier(.3,1.4,.5,1); }
html body .clipme-st-fx.is-sound{
  animation:clipme-st-sound .6s ease-out;
  background:radial-gradient(circle at 50% 92%, rgba(230,58,85,.55), transparent 62%);
}
@keyframes clipme-st-flash{ 0%{background:rgba(255,255,255,.55)} 100%{background:transparent} }
@keyframes clipme-st-punch{
  0%{ box-shadow:inset 0 0 0 0 rgba(230,58,85,.9) } 45%{ box-shadow:inset 0 0 0 5px rgba(230,58,85,.9) }
  100%{ box-shadow:inset 0 0 0 0 rgba(230,58,85,0) }
}
@keyframes clipme-st-sound{ 0%{opacity:0} 30%{opacity:1} 100%{opacity:0} }
html body .clipme-st-ratio{
  font-size:11px; color:var(--cm-faint,#6b6b76);
  font-family:"JetBrains Mono",ui-monospace,monospace;
}

/* --- rail --- */
html body .clipme-st-rail{ display:flex; flex-direction:column; gap:4px; }
html body .clipme-st-tool{
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:7px 4px; border-radius:10px; border:1px solid transparent;
  background:transparent; color:#9b9ba6; cursor:pointer;
  font-size:9.5px; font-weight:600; line-height:1;
  transition:background .25s, border-color .25s, color .25s;
}
html body .clipme-st-tool svg{ width:16px; height:16px; display:block; }
html body .clipme-st-tool.on{
  background:rgba(230,58,85,.12); border-color:rgba(230,58,85,.55);
  color:var(--cm-red-soft,#ff5a73);
}

/* --- timeline --- */
html body .clipme-st-time{
  border-top:1px solid var(--cm-border,#262630);
  background:rgba(0,0,0,.35); padding:12px 16px 15px;
}
html body .clipme-st-bar{
  display:flex; align-items:center; gap:11px; margin-bottom:11px;
  font-size:11.5px; color:var(--cm-faint,#6b6b76);
}
html body .clipme-st-play{
  width:26px; height:26px; border-radius:50%; display:inline-flex;
  align-items:center; justify-content:center;
  background:var(--cm-red,#e63a55); color:#fff; flex:0 0 auto;
}
html body .clipme-st-play svg{ width:14px; height:14px; }
html body .clipme-st-tc{ font-family:"JetBrains Mono",ui-monospace,monospace; }
html body .clipme-st-tc b{ color:var(--cm-fg,#fff); font-weight:600; }
html body .clipme-st-live{
  margin-left:auto; display:inline-flex; align-items:center; gap:6px;
  color:var(--cm-live,#45e06a); font-weight:600;
}
html body .clipme-st-live i{ width:6px; height:6px; border-radius:50%; background:var(--cm-live,#45e06a); }
html body .clipme-st.is-live .clipme-st-live i{ animation:clipme-pulse 1.7s ease-in-out infinite; }
html body .clipme-st-tracks{
  position:relative; display:grid; grid-template-columns:52px minmax(0,1fr);
  gap:6px 10px; align-items:center;
}
html body .clipme-st-head{
  font-size:9.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--cm-faint,#6b6b76); font-family:"JetBrains Mono",ui-monospace,monospace;
}
html body .clipme-st-track{
  height:32px; border-radius:7px; overflow:hidden;
  background:#101015; border:1px solid #232330;
}
html body .clipme-st-frames{ display:flex; height:100%; }
html body .clipme-st-frames i{
  flex:1 1 0; min-width:0; background-size:cover; background-position:center 28%;
  border-right:1px solid rgba(0,0,0,.45);
}
html body .clipme-st-track.is-broll{ background:rgba(230,58,85,.07); border-color:rgba(230,58,85,.3); }
html body .clipme-st-clip{ display:flex; height:100%; width:34%; margin-left:14%; }
html body .clipme-st-clip i{
  flex:1 1 0; background-size:cover; background-position:center;
  border-right:1px solid rgba(0,0,0,.45);
}
html body .clipme-st-track.is-wave{ display:flex; align-items:center; gap:1px; padding:0 4px; }
html body .clipme-st-track.is-wave i{
  flex:1 1 0; min-width:0; border-radius:1px; opacity:.75;
  background:linear-gradient(180deg,#e63a55,#8d2334);
}
html body .clipme-st-playhead{
  position:absolute; top:-2px; bottom:-2px; left:calc(62px + 14%); width:2px;
  background:#fff; box-shadow:0 0 8px rgba(255,255,255,.6); border-radius:2px;
}
html body .clipme-st-playhead::before{
  content:""; position:absolute; top:-3px; left:-4px;
  width:10px; height:10px; border-radius:50%; background:#fff;
}
html body .clipme-st.is-live .clipme-st-playhead{ animation:clipme-st-run 11s linear infinite; }
@keyframes clipme-st-run{ 0%{ left:calc(62px + 2%) } 100%{ left:calc(62px + 92%) } }

@media (prefers-reduced-motion:reduce){
  html body .clipme-st.is-live .clipme-st-playhead,
  html body .clipme-st.is-live .clipme-st-live i,
  html body .clipme-st-fx{ animation:none!important; }
}
@media (max-width:1100px){
  html body .clipme-st-top{ grid-template-columns:160px minmax(0,1fr) auto; }
  html body .clipme-st-rail{
    grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; justify-content:center;
    border-top:1px solid var(--cm-border,#262630); padding-top:12px;
  }
  html body .clipme-st-tool{ flex-direction:row; gap:6px; padding:7px 11px; border-color:#232330; }
}
@media (max-width:760px){
  html body .clipme-st-top{ grid-template-columns:minmax(0,1fr); gap:14px; padding:14px 13px 12px; }
  html body .clipme-st-bin{
    border-right:0; border-bottom:1px solid var(--cm-border,#262630);
    padding:0 0 12px; max-height:none;
  }
  /* one folder open, its clips in a single scrolling row — a stacked bin would push
     the transcript and the preview off the first screen entirely */
  html body .clipme-st-vod:not(.open){ display:none; }
  html body .clipme-st-vod.open .clipme-st-vodgrid{
    display:flex; gap:6px; overflow-x:auto; padding-bottom:4px;
  }
  html body .clipme-st-vodgrid i{ flex:0 0 44px; }
  html body .clipme-st-stage{ order:-1; }
  html body .clipme-st-phone{ width:150px; }
  html body .clipme-st-tracks{ grid-template-columns:44px minmax(0,1fr); }
}

/* ---- 46. Closing CTA band ------------------------------------------------------
   The wall behind it is ClipMe's own clips, drifting in two opposite columns. Each
   column holds its tiles twice so the loop has no seam, and the whole thing sits
   under a heavy scrim: it is texture for the button, not something to watch. ---- */
html body .clipme-cta{
  position:relative; overflow:hidden; isolation:isolate;
  padding:96px 24px; background:var(--cm-bg,#08080a);
}
html body .clipme-cta-wall{
  position:absolute; inset:-8% -2%; z-index:0; display:flex; gap:10px;
  justify-content:center; opacity:.5; pointer-events:none;
}
html body .clipme-cta-wall::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse at center, rgba(8,8,10,.92) 0%, rgba(8,8,10,.7) 45%, rgba(8,8,10,.96) 100%);
}
html body .clipme-cta-col{
  display:flex; flex-direction:column; gap:10px; flex:1 1 0; min-width:0;
  animation:clipme-cta-up 44s linear infinite;
}
html body .clipme-cta-col:nth-child(2){ animation-name:clipme-cta-down; }
html body .clipme-cta-col i{
  display:block; width:100%; aspect-ratio:9/16; border-radius:10px;
  background-size:cover; background-position:center; flex:0 0 auto;
}
@keyframes clipme-cta-up  { from{ transform:translateY(0) }   to{ transform:translateY(-50%) } }
@keyframes clipme-cta-down{ from{ transform:translateY(-50%) } to{ transform:translateY(0) } }

html body .clipme-cta-in{ position:relative; z-index:2; text-align:center; max-width:680px; margin:0 auto; }
html body .clipme-cta-in h2{
  font-size:clamp(30px,4.6vw,50px); line-height:1.06; letter-spacing:-.02em;
  font-weight:800; color:var(--cm-fg,#fff); margin:0 0 26px; text-wrap:balance;
}
html body .clipme-cta-btn{
  display:inline-block; background:var(--cm-red,#e63a55); color:#fff!important;
  font-weight:700; font-size:17px; padding:16px 40px; border-radius:999px;
  text-decoration:none; min-height:52px; line-height:20px;
  box-shadow:0 10px 30px rgba(230,58,85,.32);
}
html body .clipme-cta-in p{ margin:16px 0 0; font-size:15px; color:var(--cm-muted,#9b9ba6); }

/* On the pages that already had the band, the wall replaces opus's reel in place. */
html body .clipme-cta-wall:not(.clipme-cta > *){ opacity:.45; }

@media (prefers-reduced-motion:reduce){
  html body .clipme-cta-col{ animation:none; }
}
@media (max-width:640px){
  html body .clipme-cta{ padding:66px 18px; }
  html body .clipme-cta-wall{ gap:7px; }
  html body .clipme-cta-col{ gap:7px; }
}

/* ---- 47. Prompt Mode frame -----------------------------------------------------
   A hairline white edge with a thinner red line set just inside it. Two rules, not
   two elements: the white is a real border so it takes the panel's radius, and the
   red is an inset ring, which sits inboard of the border by definition and can be
   held to a single pixel while the white stays 1.5. Same trick keeps both crisp on
   a 2x screen, where a nested div would land on a half pixel and blur. ---------- */
html body .clipme-pm{
  border:1.5px solid rgba(255,255,255,.94);
  box-shadow:
    inset 0 0 0 1px rgba(230,58,85,.9),
    0 24px 60px rgba(0,0,0,.55);
}
html.light body .clipme-pm{
  border-color:rgba(22,22,26,.14);
  box-shadow:
    inset 0 0 0 1px rgba(230,58,85,.9),
    0 18px 44px rgba(0,0,0,.14);
}

/* ---- 48. Feature shots ----------------------------------------------------------
   Replaces nine opus screenshots. One palette across all of them: a dark card, white
   surfaces for anything you would touch, and red used once per panel for the thing
   that is currently selected. Opus's blue chips and yellow stock badges are gone
   because they were never ours to show. ---------------------------------------- */
html body .clipme-fs{
  position:relative; width:100%; border-radius:14px; padding:14px;
  background:linear-gradient(180deg,#15151b 0%,#0b0b0e 100%);
  border:1.5px solid rgba(255,255,255,.9);
  box-shadow:inset 0 0 0 1px rgba(230,58,85,.85), 0 18px 40px rgba(0,0,0,.5);
  font-family:"Inter",system-ui,sans-serif; color:#fff; overflow:hidden;
}
html body .clipme-fs-row{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-bottom:10px; }
html body .clipme-fs-chip{
  display:inline-block; padding:5px 12px; border-radius:999px; font-size:11.5px;
  font-weight:600; background:#fff; border:1px solid #d9d9e2; color:#4a4a55;
}
html body .clipme-fs-chip.on{ background:#e63a55; border-color:#e63a55; color:#fff; }
html body .clipme-fs-tc{
  margin-left:auto; font-size:11px; color:#6b6b76;
  font-family:"JetBrains Mono",ui-monospace,monospace; font-variant-numeric:tabular-nums;
}
/* timeline */
html body .clipme-fs-strip{
  position:relative; display:flex; height:44px; border-radius:8px; overflow:hidden;
  border:1px solid #232330; background:#101015;
}
html body .clipme-fs-strip i{
  flex:1 1 0; min-width:0; background-size:cover; background-position:center 28%;
  border-right:1px solid rgba(0,0,0,.45);
}
html body .clipme-fs-ph{
  position:absolute; top:-3px; bottom:-3px; left:28%; width:2px; background:#e63a55;
  box-shadow:0 0 9px rgba(230,58,85,.9); border-radius:2px;
}
html body .clipme-fs-ph::before{
  content:""; position:absolute; top:-3px; left:-4px; width:10px; height:10px;
  border-radius:50%; background:#e63a55;
}
/* text editor */
html body .clipme-fs-doc{
  background:#fff; color:#16161a; border-radius:10px; padding:12px 13px;
  font-size:13px; line-height:1.62; margin-bottom:10px; border:1px solid #d9d9e2;
}
html body .clipme-fs-doc em{
  font-style:normal; background:rgba(69,224,106,.22); border-radius:3px; padding:0 3px;
}
html body .clipme-fs-doc s{ color:#b9b9c4; text-decoration-color:#e63a55; }
/* shortcuts */
html body .clipme-fs-keys{ display:flex; flex-wrap:wrap; gap:8px; }
html body .clipme-fs-key{
  display:flex; flex-direction:column; align-items:center; gap:3px;
  background:#fff; border:1px solid #d9d9e2; border-radius:9px;
  padding:8px 12px; min-width:52px;
}
html body .clipme-fs-key b{ font-size:14px; font-weight:800; color:#16161a; line-height:1; }
html body .clipme-fs-key i{ font-style:normal; font-size:10px; color:#6b6b76; }
html body .clipme-fs-key.on{ background:#e63a55; border-color:#e63a55; }
html body .clipme-fs-key.on b, html body .clipme-fs-key.on i{ color:#fff; }
/* framing + story */
html body .clipme-fs-frame{ position:relative; border-radius:10px; overflow:hidden; border:1px solid #232330; }
html body .clipme-fs-frame img{ width:100%; display:block; aspect-ratio:16/9; object-fit:cover; }
html body .clipme-fs-frame.is-wide img{ aspect-ratio:16/9; }
html body .clipme-fs-crop{
  position:absolute; top:6%; bottom:6%; left:50%; width:29%; transform:translateX(-50%);
  border:2px solid #e63a55; border-radius:6px;
  box-shadow:0 0 0 9999px rgba(8,8,10,.5);
  animation:clipme-fs-track 6s ease-in-out infinite;
}
@keyframes clipme-fs-track{ 0%,38%{ left:24% } 62%,100%{ left:84% } }
html body .clipme-fs-tag{
  position:absolute; left:8px; top:8px; background:#fff; color:#16161a;
  border-radius:999px; padding:4px 10px; font-size:10.5px; font-weight:700;
}
/* brand assets */
html body .clipme-fs-tiles{ display:flex; gap:8px; margin-bottom:10px; }
html body .clipme-fs-tile{
  flex:1 1 0; display:flex; flex-direction:column; align-items:center; gap:4px;
  background:#fff; border:1px solid #d9d9e2; border-radius:10px; padding:12px 6px;
}
html body .clipme-fs-tile b{ font-size:14px; font-weight:800; color:#16161a; }
html body .clipme-fs-tile i{ font-style:normal; font-size:10px; color:#6b6b76; }
html body .clipme-fs-tile.on{ border-color:#e63a55; box-shadow:0 0 0 2px rgba(230,58,85,.25); }
/* sections */
html body .clipme-fs-sections{ display:flex; gap:6px; align-items:stretch; margin-bottom:10px; }
html body .clipme-fs-sections i{
  flex:1 1 0; aspect-ratio:16/10; border-radius:8px; background-size:cover;
  background-position:center; border:1px solid #232330;
}
html body .clipme-fs-add{
  flex:0 0 40px; display:flex; align-items:center; justify-content:center;
  border-radius:8px; border:1.5px dashed #e63a55; color:#e63a55;
  font-size:20px; font-weight:700; line-height:1;
}
/* search */
html body .clipme-fs-search{
  display:flex; align-items:center; gap:9px; background:#fff; border:1px solid #d9d9e2;
  border-radius:10px; padding:11px 13px; margin-bottom:10px; color:#16161a; font-size:13px;
}
html body .clipme-fs-search b{ color:#e63a55; font-size:15px; }
html body .clipme-fs-hits{ display:flex; flex-direction:column; gap:6px; }
html body .clipme-fs-hits span{
  display:flex; align-items:center; gap:9px; font-size:11.5px; color:#9b9ba6;
  font-family:"JetBrains Mono",ui-monospace,monospace;
}
html body .clipme-fs-hits i{
  width:34px; height:22px; border-radius:4px; background-size:cover;
  background-position:center; flex:0 0 auto;
}
@media (prefers-reduced-motion:reduce){
  html body .clipme-fs-crop{ animation:none; }
}

/* ---- 49. The Studio template ---------------------------------------------------
   /agent ships on a different Webflow template from the rest of the mirror: its own
   body class paints a cream ground, its type is black Lora, and none of the palette
   the other 33 pages share reaches it. It read as a different company's page sitting
   inside our nav.

   Mapped onto the same tokens rather than restyled by hand — every surface here is a
   ClipMe token, so a palette change moves this page with the others. -------------- */
html body.agent_body{
  background:var(--cm-bg,#08080a)!important;
  color:var(--cm-fg,#ffffff)!important;
}
html body.agent_body .agent2_footer_bg,
html body.agent_body [class*="agent"][class*="footer"]{
  background:var(--cm-elev,#131316)!important;
}
html body.agent_body h1, html body.agent_body h2, html body.agent_body h3,
html body.agent_body h4, html body.agent_body h5,
html body.agent_body [class*="_h1"], html body.agent_body [class*="_h2"]{
  color:var(--cm-fg,#fff)!important;
}
html body.agent_body p, html body.agent_body li,
html body.agent_body [class*="body-lg"], html body.agent_body [class*="_text"]{
  color:var(--cm-muted,#9b9ba6)!important;
}
/* the template's cards and rails were white-on-cream; one elevation step keeps the
   same separation on a dark ground without inventing a second border colour */
html body.agent_body [class*="agent"][class*="card"],
html body.agent_body [class*="agent"][class*="panel"],
html body.agent_body [class*="agent"][class*="tile"]{
  background:var(--cm-elev,#131316)!important;
  border-color:var(--cm-border,#262630)!important;
}
/* opus's primary here is a black pill; ours is red everywhere else on the mirror */
html body.agent_body a[class*="button"]:not([class*="outline"]):not([class*="secondary"]),
html body.agent_body .w-button:not([class*="outline"]):not([class*="secondary"]){
  background:var(--cm-red,#e63a55)!important;
  color:#ffffff!important;
  border-color:var(--cm-red,#e63a55)!important;
}
html body.agent_body a[class*="button"][class*="outline"],
html body.agent_body a[class*="button"][class*="secondary"]{
  background:transparent!important;
  color:var(--cm-fg,#fff)!important;
  border:1px solid var(--cm-border,#262630)!important;
}

/* ---- 50. "Everything a clip needs, on autopilot." ------------------------------
   Four cards, each animating its own claim rather than illustrating it with an icon.
   Motion is scoped to .is-live, which the observer only sets while the section is on
   screen — four looping animations running behind the fold is battery spent on
   nothing. ---------------------------------------------------------------------- */
html body .clipme-ap{ padding:92px 24px; background:var(--cm-bg,#08080a); }
html body .clipme-ap-in{ max-width:1120px; margin:0 auto; }
html body .clipme-ap h2{
  font-size:clamp(30px,4.4vw,48px); line-height:1.06; letter-spacing:-.02em;
  font-weight:800; color:var(--cm-fg,#fff); margin:0 0 14px; text-wrap:balance;
}
html body .clipme-ap-sub{
  font-size:17px; line-height:1.6; color:var(--cm-muted,#9b9ba6);
  margin:0 0 44px; max-width:620px;
}
html body .clipme-ap-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(238px,1fr)); gap:16px;
}
html body .clipme-ap-card{
  background:var(--cm-elev,#131316); border:1px solid var(--cm-border,#262630);
  border-radius:var(--cm-radius,16px); padding:18px; min-width:0;
}
html body .clipme-ap-card h3{
  font-size:17px; font-weight:700; color:var(--cm-fg,#fff); margin:16px 0 7px;
}
html body .clipme-ap-card p{
  font-size:14px; line-height:1.58; color:var(--cm-muted,#9b9ba6); margin:0;
}
html body .clipme-ap-viz{
  height:96px; border-radius:11px; background:#0c0c10;
  border:1px solid #202029; overflow:hidden; position:relative;
  display:flex; align-items:center; justify-content:center; padding:12px;
}
/* 1 — the detector finds its peak */
html body .clipme-ap-trace{
  display:flex; align-items:flex-end; gap:2px; width:100%; height:100%; position:relative;
}
html body .clipme-ap-trace i{
  flex:1 1 0; background:#3a3a46; border-radius:1px; transform-origin:bottom;
}
html body .clipme-ap.is-live .clipme-ap-trace i{ animation:clipme-ap-bar 2.6s ease-in-out infinite; }
@keyframes clipme-ap-bar{ 0%,100%{ transform:scaleY(.55) } 50%{ transform:scaleY(1) } }
html body .clipme-ap-peak{
  position:absolute; left:65%; bottom:0; top:0; width:1px; background:rgba(230,58,85,.5);
}
html body .clipme-ap.is-live .clipme-ap-peak{ animation:clipme-ap-peak 2.6s ease-in-out infinite; }
@keyframes clipme-ap-peak{ 0%,35%{ opacity:0 } 55%,100%{ opacity:1 } }
/* 2 — captions type, then change language */
html body .clipme-ap-cap{ width:100%; text-align:center; }
html body .clipme-ap-capline{
  display:block; height:9px; border-radius:3px; margin:0 auto 12px;
  background:linear-gradient(90deg,#fff 0%,#fff 100%); width:24%;
}
html body .clipme-ap.is-live .clipme-ap-capline{ animation:clipme-ap-type 3.2s ease-in-out infinite; }
@keyframes clipme-ap-type{ 0%{width:12%} 45%{width:82%} 60%{width:82%} 100%{width:12%} }
html body .clipme-ap-lang{
  display:block; font-size:11px; letter-spacing:.14em; color:var(--cm-red-soft,#ff5a73);
  font-family:"JetBrains Mono",ui-monospace,monospace;
}
/* 3 — one source, every aspect */
html body .clipme-ap-fmt{ position:relative; width:100%; height:100%;
  display:flex; align-items:center; justify-content:center; }
html body .clipme-ap-box{
  display:block; border:2px solid var(--cm-red,#e63a55); border-radius:5px;
  width:64px; height:36px; background:rgba(230,58,85,.09);
}
html body .clipme-ap.is-live .clipme-ap-box{ animation:clipme-ap-fmt 5.4s ease-in-out infinite; }
@keyframes clipme-ap-fmt{
  0%,26%   { width:64px; height:36px }
  40%,60%  { width:36px; height:64px }
  74%,92%  { width:48px; height:48px }
  100%     { width:64px; height:36px }
}
html body .clipme-ap-fmtlabel{
  position:absolute; right:8px; bottom:6px; font-size:10.5px; color:var(--cm-faint,#6b6b76);
  font-family:"JetBrains Mono",ui-monospace,monospace;
}
/* 4 — the platforms accept, one after another */
html body .clipme-ap-post{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:11px;
}
html body .clipme-ap-post img{ width:22px; height:22px; display:block; opacity:.28; }
html body .clipme-ap.is-live .clipme-ap-post img{ animation:clipme-ap-post 2.9s ease-in-out infinite; }
@keyframes clipme-ap-post{ 0%,70%,100%{ opacity:.28; transform:none } 22%{ opacity:1; transform:translateY(-3px) } }
@media (prefers-reduced-motion:reduce){
  html body .clipme-ap *{ animation:none!important; }
  html body .clipme-ap-post img{ opacity:1; }
}
@media (max-width:640px){ html body .clipme-ap{ padding:64px 18px; } }

/* The Studio template's nav sat on its own cream band, so the header read as a
   different site from the page under it. */
html body.agent_body header,
html body.agent_body [class*="navbar"],
html body.agent_body [class*="nav_bar"]{
  background:var(--cm-bg,#08080a)!important;
  border-bottom:1px solid var(--cm-border,#262630);
}

/* ---- 51. Founding offer --------------------------------------------------------
   Scarcity, price and what the price buys, in one line. The old value ($1,188) is
   struck rather than deleted so the $297 has something to be cheap against, and the
   seat count is the only red thing in the pill — one urgent element, not three. -- */
html body .clipme-fo{
  display:inline-flex; align-items:center; gap:9px; flex-wrap:wrap;
  justify-content:center; line-height:1;
}
html body .clipme-fo-dot{
  width:7px; height:7px; border-radius:50%; background:var(--cm-red,#e63a55);
  flex:0 0 auto; box-shadow:0 0 0 0 rgba(230,58,85,.55);
  animation:clipme-fo-pulse 2.2s ease-out infinite;
}
@keyframes clipme-fo-pulse{
  0%{ box-shadow:0 0 0 0 rgba(230,58,85,.5) }
  70%{ box-shadow:0 0 0 8px rgba(230,58,85,0) }
  100%{ box-shadow:0 0 0 0 rgba(230,58,85,0) }
}
html body .clipme-fo-seats{
  color:var(--cm-red,#e63a55)!important; font-weight:800; letter-spacing:-.01em;
}
html body .clipme-fo-sep{
  width:1px; height:13px; background:currentColor; opacity:.22; flex:0 0 auto;
}
html body .clipme-fo-was{
  color:var(--cm-faint,#6b6b76)!important; text-decoration-thickness:1.5px;
  font-variant-numeric:tabular-nums;
}
html body .clipme-fo-now{
  font-weight:800; color:var(--cm-fg,#fff)!important; font-variant-numeric:tabular-nums;
}
html body .clipme-fo-what{ opacity:.75; }
html body .clipme-fo-navseats{
  color:var(--cm-red,#e63a55)!important; font-weight:700;
}
@media (prefers-reduced-motion:reduce){ html body .clipme-fo-dot{ animation:none; } }
@media (max-width:520px){
  html body .clipme-fo-what{ display:none; }   /* keep the pill on one line */
}

/* ---- 52. Story cards + offer pill fit ------------------------------------------
   The blog and story cards were cream with black type — the last light surfaces on
   the mirror. Same tokens as every other card here.

   The offer pill was also clipping: it is an inline-flex row inside a fixed-width
   Webflow pill, so at narrow widths the price fell off the end. It wraps now, and
   the pill grows to its content instead of cropping it. */
html body [class*="a_n-blog_card"],
html body [class*="a_n-blog"][class*="_item"],
html body [class*="blog_card"],
html body [class*="story_card"]{
  background:var(--cm-elev,#131316)!important;
  border:1px solid var(--cm-border,#262630)!important;
}
html body [class*="a_n-blog"] h2,
html body [class*="a_n-blog"] h3,
html body [class*="a_n-blog_author_name"]{ color:var(--cm-fg,#fff)!important; }
html body [class*="a_n-blog_author_position"]{ color:var(--cm-faint,#6b6b76)!important; }
html body [class*="a_n-blog_author"] img{
  background:var(--cm-elev2,#1b1b1f); border-radius:50%; object-fit:contain; padding:4px;
}

html body .agent3_hero_pill{
  width:auto!important; max-width:100%; height:auto!important;
  padding:10px 18px!important; white-space:normal!important; overflow:visible!important;
}
html body .clipme-fo{ row-gap:4px; }

/* ---- 53. Blog + story covers ---------------------------------------------------
   Opus's cards carried designed covers: a category label, a headline, artwork. A raw
   clip still dropped into that slot read as a broken image, so the cover is built —
   the card's own title on the left, a real clip tilted in on the right. Because the
   title is read from the card, the picture can never disagree with the post. ---- */
html body .clipme-cov{
  position:relative; display:flex; align-items:center; gap:14px; overflow:hidden;
  aspect-ratio:16/10; padding:18px 16px; border-radius:12px;
  background:
    radial-gradient(120% 140% at 0% 0%, rgba(230,58,85,.20) 0%, transparent 58%),
    linear-gradient(180deg,#16161c 0%,#0b0b0e 100%);
  border:1px solid var(--cm-border,#262630);
}
html body .clipme-cov-txt{ flex:1 1 auto; min-width:0; }
html body .clipme-cov-eyebrow{
  display:block; font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--cm-red-soft,#ff5a73); font-weight:700; margin-bottom:9px;
  font-family:"JetBrains Mono",ui-monospace,monospace;
}
html body .clipme-cov-txt b{
  display:block; font-size:clamp(15px,1.5vw,19px); line-height:1.22; font-weight:800;
  color:var(--cm-fg,#fff); letter-spacing:-.015em; text-wrap:balance;
}
html body .clipme-cov-still{
  flex:0 0 auto; width:31%; max-width:110px; aspect-ratio:9/16; border-radius:9px;
  background-size:cover; background-position:center;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 14px 30px rgba(0,0,0,.55);
  transform:rotate(5deg);
}
@media (max-width:520px){
  html body .clipme-cov{ padding:14px; gap:10px; }
  html body .clipme-cov-still{ width:34%; }
}

/* The Studio template's mobile menu is its own component, on a white sheet with black
   type — the last light surface on the mirror, and the one most likely to be seen,
   since it covers the screen. */
html body.agent_body [class*="nav_menu"],
html body.agent_body .w-nav-overlay,
html body.agent_body .w-nav-menu,
html body.agent_body [class*="agent"][class*="menu"]{
  background:var(--cm-bg,#08080a)!important;
}
html body.agent_body [class*="nav_menu"] a,
html body.agent_body .w-nav-menu a,
html body.agent_body [class*="agent"][class*="menu"] a{
  color:var(--cm-fg,#fff)!important;
  border-color:var(--cm-border,#262630)!important;
}
html body.agent_body [class*="nav_menu"] a:not([class*="button"]),
html body.agent_body .w-nav-menu a:not([class*="button"]){
  border-bottom:1px solid var(--cm-border,#262630);
}

/* The cover leads with the wordmark rather than the word "CLIPME" set in caps — the
   mark is the brand, the typed-out name is a label. White here, because the cover's
   one red accent is already spent on the category line under it. */
html body .clipme-cov-mark{ display:block; margin-bottom:10px; }
html body .clipme-cov-mark .clipme-logo{ font-size:19px; line-height:1; }
html body .clipme-cov-mark .clipme-word{ color:#ffffff!important; font-weight:800; letter-spacing:-.02em; }
html body .clipme-cov-mark .clipme-bang{ color:var(--cm-red,#e63a55)!important; }
html body .clipme-cov-eyebrow{ margin-bottom:8px; opacity:.85; }

/* A Rive host with its canvas removed still holds the space its animation had; give
   it our own ground rather than a hole in the layout. */
html body .clipme-cdn-cut{
  background:linear-gradient(180deg,#15151b 0%,#0b0b0e 100%);
  border:1px solid var(--cm-border,#262630); border-radius:14px; min-height:120px;
}

/* Waitlist button in place of the App Store badge on the coming-soon app page. */
html body .clipme-waitlist{
  display:inline-block; background:var(--cm-red,#e63a55); color:#fff!important;
  font-weight:700; font-size:16px; padding:14px 30px; border-radius:999px;
  min-height:48px; line-height:20px; cursor:pointer;
}

/* ---- 54. Feature-card graphics --------------------------------------------------
   Built art per card, chosen from the card's own label. Same palette as the feature
   shots — dark ground, white surfaces, one red accent — so a grid of them reads as
   one set rather than eleven unrelated pictures. ------------------------------- */
html body .clipme-cg{
  position:relative; width:100%; aspect-ratio:16/10; overflow:hidden;
  border-radius:12px; padding:14px;
  background:
    radial-gradient(120% 150% at 100% 0%, rgba(230,58,85,.16) 0%, transparent 60%),
    linear-gradient(180deg,#15151b 0%,#0b0b0e 100%);
  border:1px solid var(--cm-border,#262630);
  display:flex; align-items:center; justify-content:center;
}
html body .clipme-cg > *{ width:100%; }

/* phone: clips arriving one after another */
html body .clipme-cg-phone{
  position:relative; width:74px; height:88%; border-radius:12px;
  background:#000; border:1.5px solid rgba(255,255,255,.85);
  box-shadow:0 12px 28px rgba(0,0,0,.55); overflow:hidden; flex:0 0 auto;
}
html body .clipme-cg-notch{
  position:absolute; top:5px; left:50%; transform:translateX(-50%);
  width:22px; height:3px; border-radius:2px; background:rgba(255,255,255,.5); z-index:2;
}
html body .clipme-cg-stack{ position:absolute; inset:0; }
html body .clipme-cg-stack i{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; animation:clipme-cg-deal 4.2s ease-in-out infinite;
}
@keyframes clipme-cg-deal{
  0%,4%   { opacity:0; transform:translateY(14%) scale(.96) }
  12%,28% { opacity:1; transform:none }
  36%,100%{ opacity:0; transform:translateY(-10%) scale(.98) }
}
/* captions: a word lands on the frame */
html body .clipme-cg-cap{ position:relative; display:flex; justify-content:center; }
html body .clipme-cg-frame{
  display:block; width:78px; aspect-ratio:9/16; border-radius:10px;
  background-size:cover; background-position:center; border:1px solid #2e2e3a;
}
html body .clipme-cg-word{
  position:absolute; bottom:10%; left:50%; transform:translateX(-50%);
  background:#fff; color:#16161a; font-size:11px; font-weight:800;
  padding:5px 10px; border-radius:7px; white-space:nowrap;
  animation:clipme-cg-pop 3s ease-in-out infinite;
}
html body .clipme-cg-word em{ font-style:normal; color:var(--cm-red,#e63a55); }
@keyframes clipme-cg-pop{
  0%,10%  { opacity:0; transform:translateX(-50%) translateY(6px) scale(.92) }
  22%,72% { opacity:1; transform:translateX(-50%) none }
  86%,100%{ opacity:0; transform:translateX(-50%) translateY(-4px) }
}
/* posting: the platforms accept in turn */
html body .clipme-cg-post{ display:flex; justify-content:center; gap:16px; }
html body .clipme-cg-post img{
  width:30px; height:30px; opacity:.3; animation:clipme-ap-post 2.9s ease-in-out infinite;
}
/* the reused feature-shot panels sit flush inside the card */
html body .clipme-cg .clipme-fs-strip{ height:38px; }
html body .clipme-cg .clipme-fs-doc{ font-size:11.5px; padding:9px 10px; }
html body .clipme-cg .clipme-fs-key{ padding:6px 9px; min-width:42px; }
html body .clipme-cg .clipme-fs-frame img{ aspect-ratio:16/9; }
@media (prefers-reduced-motion:reduce){
  html body .clipme-cg *{ animation:none!important; }
  html body .clipme-cg-stack i:first-child{ opacity:1; }
  html body .clipme-cg-word{ opacity:1; }
  html body .clipme-cg-post img{ opacity:1; }
}

/* ---- 55. Prompt use-case cards -------------------------------------------------
   Six hues — blue, green, orange, pink, purple, red — from opus's palette, none of
   them ours. Kept as six steps so the grid still has rhythm, but the steps are now
   depth and red saturation rather than six unrelated colours. -------------------- */
html body .a-ca_what-for_card{
  background:linear-gradient(160deg,#17171d 0%,#0c0c10 100%)!important;
  border:1px solid var(--cm-border,#262630)!important;
  color:var(--cm-fg,#fff)!important;
}
html body .a-ca_what-for_card.is-red{
  background:linear-gradient(160deg,rgba(230,58,85,.92) 0%,rgba(168,36,58,.92) 100%)!important;
  border-color:rgba(230,58,85,.9)!important;
}
html body .a-ca_what-for_card.is-pink{
  background:linear-gradient(160deg,rgba(230,58,85,.55) 0%,rgba(120,26,42,.85) 100%)!important;
  border-color:rgba(230,58,85,.55)!important;
}
html body .a-ca_what-for_card.is-purple{
  background:linear-gradient(160deg,rgba(230,58,85,.28) 0%,rgba(20,20,26,.95) 100%)!important;
  border-color:rgba(230,58,85,.34)!important;
}
html body .a-ca_what-for_card.is-orange{
  background:linear-gradient(160deg,rgba(230,58,85,.16) 0%,rgba(16,16,21,.96) 100%)!important;
}
html body .a-ca_what-for_card.is-blue,
html body .a-ca_what-for_card.is-green{
  background:linear-gradient(160deg,#17171d 0%,#0b0b0e 100%)!important;
}
html body .a-ca_what-for_card_h3,
html body .a-ca_what-for_card_text,
html body .a-ca_what-for_card_arrow{ color:#fff!important; }
html body .a-ca_what-for_card_text{ opacity:.86; }

/* Custom Mode: the chips wrap instead of overflowing their card. */
html body .clipme-fs-row.is-wrap{ gap:6px; margin-bottom:12px; }
html body .clipme-fs.is-custom{ padding:16px; }

/* ---- 56. Live feed cards -------------------------------------------------------
   The shell is 9:16 and the crop inside it was 1:1, so every clip sat as a short band
   with white above and below it — on a card whose whole job is to look like a
   finished vertical clip. The crop now fills the shell; the ClipMe strip that is
   baked into the source keeps its place at the bottom because it is part of the
   picture, not part of this frame. ---------------------------------------------- */
html body .clipme-sh-crop{
  aspect-ratio:9/16; width:100%; height:100%;
}
html body .clipme-sh-shell{ overflow:hidden; }
html body .clipme-sh-poster,
html body .clipme-sh-vidwrap video{ object-fit:cover; object-position:center 42%; }
/* the auto-cut chip was landing on the creator's name */
html body .clipme-sh-chip{ z-index:3; }

/* ---- 57. One frame for every built panel ---------------------------------------
   Prompt Mode got the hairline white edge with the thinner red line inside it; the
   Reframe panel beside it had no frame at all, so two panels doing the same job in
   the same row read as two different components. Same treatment for every panel we
   build, defined once: white border takes the radius, red is an inset ring so it
   stays a single pixel inboard of it at any DPR. ------------------------------- */
html body .clipme-rf,
html body .clipme-sh-frame,
html body .clipme-wp{
  border:1.5px solid rgba(255,255,255,.94)!important;
  box-shadow:
    inset 0 0 0 1px rgba(230,58,85,.9),
    0 24px 60px rgba(0,0,0,.55)!important;
}
html.light body .clipme-rf,
html.light body .clipme-sh-frame,
html.light body .clipme-wp{
  border-color:rgba(22,22,26,.14)!important;
  box-shadow:
    inset 0 0 0 1px rgba(230,58,85,.9),
    0 18px 44px rgba(0,0,0,.14)!important;
}

/* ---- 58. Competitor brand graphics ---------------------------------------------
   Where opus put their own wordmark — the collage centre, the funding card — ClipMe's
   wordmark goes instead, on ClipMe's ground. A clip still would be the wrong answer
   here: the slot is a logo slot, and it should read as one. ------------------------ */
html body .clipme-brandtile{
  display:flex; align-items:center; justify-content:center;
  width:100%; aspect-ratio:16/10; border-radius:14px;
  background:
    radial-gradient(120% 140% at 50% 0%, rgba(230,58,85,.18) 0%, transparent 62%),
    linear-gradient(180deg,#16161c 0%,#0b0b0e 100%);
  border:1px solid var(--cm-border,#262630);
}
html body .clipme-brandtile .clipme-logo{ font-size:clamp(26px,4.4vw,44px); line-height:1; }
html body .clipme-brandtile .clipme-word{
  color:#fff!important; font-weight:800; letter-spacing:-.03em;
}
html body .clipme-brandtile .clipme-bang{ color:var(--cm-red,#e63a55)!important; }

/* ---- 59. Display headings must not break mid-word -------------------------------
   The h1s inherit overflow-wrap:break-word. At a phone width, with a display face at
   this size, that chops words in half rather than wrapping them — "no skills needed"
   rendered as "n o skills needed". Wrap between words, and let the type step down at
   narrow widths so a long word has room instead of being cut. ------------------- */
html body h1, html body h2,
html body [class*="_h1"], html body [class*="_h2"],
html body .opus-font-h1, html body .opus-font-h2{
  overflow-wrap:normal!important;
  word-break:normal!important;
  hyphens:none;
  text-wrap:balance;
}
@media (max-width:520px){
  html body h1, html body .opus-font-h1, html body [class*="_h1"]{
    font-size:clamp(28px,8.4vw,40px)!important;
    line-height:1.1!important;
  }
  html body h2, html body .opus-font-h2, html body [class*="_h2"]{
    font-size:clamp(24px,6.8vw,34px)!important;
    line-height:1.14!important;
  }
}

/* ---- 60. Creator row ------------------------------------------------------------
   Replaces opus's named-creator showcase in place, so the section keeps its shape
   instead of leaving a gap. Our six published walls, with real clip counts. ------ */
html body .clipme-crow{
  display:flex; flex-wrap:wrap; justify-content:center; gap:18px 26px; padding:8px 0;
}
html body .clipme-crow-card{
  display:flex; flex-direction:column; align-items:center; gap:6px;
  text-decoration:none; min-width:88px;
}
html body .clipme-crow-card img{
  width:56px; height:56px; border-radius:50%; object-fit:cover;
  border:2px solid var(--cm-border,#262630); background:var(--cm-elev,#131316);
}
html body .clipme-crow-card b{
  font-size:13px; font-weight:700; color:var(--cm-fg,#fff)!important; line-height:1.2;
}
html body .clipme-crow-card i{
  font-style:normal; font-size:12px; color:var(--cm-red-soft,#ff5a73)!important;
  font-variant-numeric:tabular-nums;
}

/* ---- 61. Live-feed media always covers its shell -------------------------------
   The shell paints white behind the clip (it is the phone bezel). Anything inside it
   that fits with `contain` leaves that white as bands above and below the video, so a
   16:9 source in the 9:16 card reads as a letterboxed screenshot rather than a clip.
   Cover every media element in the shell, not just the two classes I named first —
   the <video> swaps in at runtime and was not matching. -------------------------- */
html body .clipme-sh-shell img,
html body .clipme-sh-shell video,
html body .clipme-sh-crop img,
html body .clipme-sh-crop video{
  width:100%!important; height:100%!important;
  object-fit:cover!important; object-position:center 42%;
  display:block;
}
html body .clipme-sh-crop{ position:relative; overflow:hidden; }

/* ---- 62. Top-creators strip ----------------------------------------------------
   Replaces opus's roster. Each card is a real 9:16 clip that plays on view, with the
   creator's avatar, the platform it came off and the wall's real clip count — built
   to the same weight as the live-feed cards so the two read as one product. ------ */
html body .clipme-tc{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:16px; padding:14px 0 4px; max-width:1120px; margin:0 auto;
}
html body .clipme-tc-card{ display:block; text-decoration:none; min-width:0; }
html body .clipme-tc-media{
  position:relative; display:block; aspect-ratio:9/16; border-radius:14px;
  overflow:hidden; background:#000;
  border:1.5px solid rgba(255,255,255,.9);
  box-shadow:inset 0 0 0 1px rgba(230,58,85,.85), 0 18px 40px rgba(0,0,0,.5);
}
html body .clipme-tc-media video{
  width:100%; height:100%; object-fit:cover; display:block;
}
html body .clipme-tc-count{
  position:absolute; left:8px; bottom:8px; font-style:normal;
  background:rgba(8,8,10,.86); color:#fff; border-radius:999px;
  padding:4px 10px; font-size:11px; font-weight:700; backdrop-filter:blur(6px);
}
html body .clipme-tc-meta{
  display:flex; align-items:center; gap:8px; padding:10px 2px 0; min-width:0;
}
html body .clipme-tc-av{
  width:26px; height:26px; border-radius:50%; object-fit:cover; flex:0 0 auto;
  border:1px solid var(--cm-border,#262630);
}
html body .clipme-tc-meta b{
  font-size:13px; font-weight:700; color:var(--cm-fg,#fff)!important;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0;
}
html body .clipme-tc-plat{ width:16px; height:16px; margin-left:auto; flex:0 0 auto; opacity:.85; }
@media (prefers-reduced-motion:reduce){
  html body .clipme-tc-media video{ display:none; }
  html body .clipme-tc-media{ background:#131316; }
}

/* ---- 63. Testimonials on the homepage -------------------------------------------
   The five verbatim ClipMe quotes ran on wall-of-love, customer-stories and
   success-stories but not on index — the page with the most traffic had no social
   proof at all. Copied word for word; the quotes are never edited. ------------- */
html body .clipme-quotes{
  padding:92px 24px; background:#08080a;
  /* deliberately dark band: declare a COMPLETE local palette so it never
     inherits a half-light token set and renders black-on-black */
  --cm-bg:#08080a; --cm-fg:#ffffff; --cm-elev:#131316;
  --cm-border:#262630; --cm-faint:#8b8b98;
  /* the theme's global `* { color: inherit }` means the section ROOT owns
     the text colour; children inherit it. Without this the band renders
     the light theme's near-black text on its own dark ground. */
  color:var(--cm-fg)!important;
}
html body .clipme-quotes-in{ max-width:1120px; margin:0 auto; }
html body .clipme-quotes h2{
  font-size:clamp(28px,4.2vw,44px); line-height:1.08; font-weight:800;
  letter-spacing:-.02em; color:var(--cm-fg,#fff); margin:0 0 34px; text-wrap:balance;
}
html body .clipme-tq-grid{
  /* 5 testimonials: 200px min fits all five across at the 1120px cap, so the
     row fills instead of leaving a lone card stranded on a second row */
  display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px;
}
html body .clipme-tq{
  margin:0; padding:22px; border-radius:var(--cm-radius,16px);
  background:var(--cm-elev,#131316); border:1px solid var(--cm-border,#262630);
  display:flex; flex-direction:column; gap:16px;
}
html body .clipme-tq blockquote{
  margin:0; font-size:15.5px; line-height:1.6; color:var(--cm-fg,#fff);
  border-left:3px solid var(--cm-red,#e63a55); padding-left:14px;
}
html body .clipme-tq figcaption{ display:flex; flex-direction:column; gap:3px; align-items:flex-start; text-align:left; margin-top:auto; }
html body .clipme-tq figcaption b{ font-size:14px; font-weight:700; color:var(--cm-fg,#fff); }
html body .clipme-tq figcaption span{ font-size:12.5px; color:var(--cm-faint,#6b6b76)!important; }
html.light body .clipme-quotes, html.light body .clipme-quotes h2,
html.light body .clipme-tq blockquote, html.light body .clipme-tq figcaption b{ color:#fff!important; }
html.light body .clipme-tq figcaption span{ color:#8b8b98!important; }

/* ---- 64. Competitor price footnote --------------------------------------------- */
html body .clipme-pricenote{
  max-width:1120px; margin:0 auto; padding:0 24px 44px;
  font-size:12.5px; line-height:1.55; color:var(--cm-faint,#6b6b76);
}

/* ---- 65. Sitewide ribbon (HANDOFF §8) -------------------------------------------
   Red-to-coral gradient, green live dot, dark pill CTA. It sits above everything and
   pushes the fixed navbar down by its own measured height rather than covering it. */
html body .clipme-ribbon{
  position:relative; z-index:9999;
  display:flex; align-items:center; justify-content:center; gap:12px;
  padding:9px 18px; text-align:center; flex-wrap:wrap; white-space:normal;
  background:linear-gradient(90deg,#e63a55 0%,#ff5a73 55%,#ff7a63 100%);
  color:#fff; font-family:"Inter",system-ui,sans-serif;
  font-size:13.5px; font-weight:600; line-height:1.35;
}
html body .clipme-ribbon-dot{
  width:8px; height:8px; border-radius:50%; background:#45e06a; flex:0 0 auto;
  box-shadow:0 0 0 0 rgba(69,224,106,.6); animation:clipme-ribbon-ping 2.4s ease-out infinite;
}
@keyframes clipme-ribbon-ping{
  0%{box-shadow:0 0 0 0 rgba(69,224,106,.5)}
  70%{box-shadow:0 0 0 8px rgba(69,224,106,0)}
  100%{box-shadow:0 0 0 0 rgba(69,224,106,0)}
}
html body .clipme-ribbon-txt{ color:#fff!important; }
html body .clipme-ribbon-cta{
  background:#08080a; color:#fff!important; text-decoration:none;
  border-radius:999px; padding:7px 16px; font-weight:700; font-size:13px;
  min-height:34px; line-height:20px; flex:0 0 auto;
}
/* the Webflow navbar is fixed at top:0 — move it below the ribbon */
html body.has-clipme-ribbon [class*="navbar"][style*="fixed"],
html body.has-clipme-ribbon .w-nav[data-collapse],
html body.has-clipme-ribbon .agent_nav{
  top:var(--clipme-ribbon-h,44px);
}
/* 2026-09-13: the Webflow .w-nav (navbar_component) is NOT the fixed element — it sits
   inside .a-ca_navbar_fixed-wrapper, which the JS already seats under the ribbon. Giving the
   inner component the same top shifted the bar's contents 52px down inside the wrapper. */
html body.has-clipme-ribbon .a-ca_navbar_fixed-wrapper .w-nav[data-collapse]{ top:auto; }
@media (max-width:620px){
  html body .clipme-ribbon{ font-size:12px; gap:8px; padding:9px 14px; }
  html body .clipme-ribbon-cta{ padding:6px 13px; font-size:12px; }
}
@media (prefers-reduced-motion:reduce){ html body .clipme-ribbon-dot{ animation:none; } }

/* ---- 66. Real body copy on the generated pages ---------------------------------
   These shipped with only an H1, an answer block and a benefit list, because that is
   all the generator had. The prose below is clipme.com's own, pulled from the live
   page each one mirrors — so the mirror says what the real site says. ----------- */
html body .clipme-body{ margin:38px 0 8px; max-width:720px; }
html body .clipme-body-p{
  font-size:16px; line-height:1.68; color:var(--cm-muted,#9b9ba6); margin:0 0 16px;
}
html body .clipme-body-p:first-of-type{ color:var(--cm-fg,#fff); font-size:17px; }

/* ===========================================================================
   66. /about hero legibility
   The headline sits directly on the background video with no scrim, so the two
   <strong> runs rendered near-black on dark footage -- only the gradient
   "for everyone," fragment was readable. Lay a soft scrim behind the copy and
   force the runs white. `!important` is required here for the same reason the
   quotes band needs it: the theme sets color on <body> with !important and a
   global `* { color: inherit }` sits at (0,2,2), out-specifying element rules.
   =========================================================================== */
html body .a_about_header_h1_max-w{
  position:relative; z-index:2;
  padding:34px 40px; border-radius:20px;
  background:radial-gradient(120% 140% at 50% 50%,
    rgba(6,6,9,.82) 0%, rgba(6,6,9,.66) 55%, rgba(6,6,9,0) 100%);
}
html body .a_about_header_h1_max-w h1,
html body .a_about_header_h1_max-w h1 strong{
  color:#fff!important;
  text-shadow:0 2px 18px rgba(0,0,0,.55);
}
/* the gradient fragment keeps its fill -- it is clipped to the text, so the
   white rule above must not repaint it */
html body .a_about_header_h1_max-w h1 .a-ca_text-color-purple-tan-gradient{
  -webkit-text-fill-color:transparent; text-shadow:none;
}
@media (max-width:640px){
  html body .a_about_header_h1_max-w{ padding:22px 18px; }
}

/* ===========================================================================
   67. Navbar legibility + carousel edge fade
   (a) The fixed navbar is translucent and rides over full-bleed imagery (the
       creator wall, the /about hero video). Over bright frames its links went
       grey-on-bright. Thicken the backdrop and lift the link colour so the bar
       reads against any section it crosses.
   (b) The homepage quote carousel clips cards mid-word at both edges with a
       hard cut, which reads as broken layout. `.clipme-cw-track` already
       solves this with a mask; apply the same treatment here.
   =========================================================================== */
/* `.a-ca_navbar` is only a SPACER that reserves height; the visible bar is the
   position:fixed `.a-ca_navbar_fixed-wrapper` inside it. Painting the spacer
   drew a dead black band under the ribbon. Paint the real bar instead. */
html body .a-ca_navbar_fixed-wrapper{
  background-color:rgba(12,13,18,.92)!important;
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid rgba(255,255,255,.08);
  /* backdrop-filter creates a stacking context. The navbar ships as
     position:static/z-index:auto, so that context painted in document order and
     the dropdown's own z-index:9999 was trapped inside it -- page content drew
     straight over the open megamenu. Give the bar a context of its own that
     actually sits above the page. */
  /* 2026-09-13: was position:relative, which took the bar out of fixed mode and left the
     Webflow .a-ca_navbar_spacer double-reserving 72px — a black band under the ribbon on
     every page. fixed keeps the same stacking context for the dropdown. */
  position:fixed; inset:0 0 auto; z-index:1000;
}
html body .a-ca_navbar_dropdown_list{ z-index:1001; }
html body .a-ca_navbar a,
html body .a-ca_navbar .a-ca_navbar_link,
html body .a-ca_navbar_dropdown_toggle{ color:#f2f2f5!important; }
html body .a-ca_navbar a:hover,
html body .a-ca_navbar .a-ca_navbar_link:hover{ color:#fff!important; }

html body .home0625_creators_carousel_items{
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
}

/* ===========================================================================
   68. Sticky CTA bar collided with body copy
   `.home0625_cta_input_section` is position:sticky with background
   rgba(0,0,0,0) and no stacking context, so section headlines and subheads
   rendered straight through it -- the bar read as broken text, not as a
   control. Give it its own surface and lift it above the content it crosses.
   =========================================================================== */
html body .home0625_cta_input_section.is-visible{
  z-index:40;
  background:rgba(255,255,255,.92)!important;
  -webkit-backdrop-filter:saturate(150%) blur(16px);
  backdrop-filter:saturate(150%) blur(16px);
  border:1px solid rgba(12,13,18,.08);
  border-radius:999px;
  box-shadow:0 10px 34px rgba(12,13,18,.14);
  padding:8px 10px;
  width:max-content; max-width:min(92vw,680px);
  margin-inline:auto; left:0; right:0;
}
@media (prefers-color-scheme:dark){
  html:not([data-theme="light"]) body .home0625_cta_input_section.is-visible{
    background:rgba(16,17,22,.92)!important;
    border-color:rgba(255,255,255,.10);
  }
}

/* ===========================================================================
   69. Creator strip: white-on-white names
   `.clipme-crow-card b` takes color:var(--cm-fg,#fff). On pages that never
   declare --cm-fg the fallback wins, so the names rendered white on a white
   section and vanished. The strip is a dark-surface component by design (it
   reads that way on the homepage), so give it its own ground everywhere
   rather than leaving the text colour dependent on whatever page hosts it.
   =========================================================================== */
html body .clipme-crow{
  --cm-fg:#ffffff; --cm-border:#262630; --cm-elev:#131316; --cm-red-soft:#ff5a73;
  background:#0c0d12; border-radius:18px; padding:22px 18px;
}

/* ===========================================================================
   70. API endpoint cards — theme-aware surface
   These were authored with a hard-coded dark alpha border, which disappeared
   against the dark theme. Border and ground now come from tokens that are
   defined for both themes.
   =========================================================================== */
html body .clipme-ep{
  border:1px solid rgba(12,13,18,.14);
  background:rgba(12,13,18,.02);
}
@media (prefers-color-scheme:dark){
  html:not([data-theme="light"]) body .clipme-ep{
    border-color:rgba(255,255,255,.14); background:rgba(255,255,255,.03);
  }
}
html[data-theme="dark"] body .clipme-ep{
  border-color:rgba(255,255,255,.14); background:rgba(255,255,255,.03);
}

/* ===========================================================================
   71. API workflow flow
   Replaces the shipped Rive animation, whose artwork had the competitor's
   wordmark baked into the canvas (so no text or filename sweep could find it).
   Built from markup instead of an asset, so it stays true to the API surface
   and scales cleanly across desktop widths.
   =========================================================================== */
html body .clipme-flow{
  --cm-ink:#16161a; --cm-dim:#5b5b68; --cm-line:rgba(12,13,18,.12); --cm-card:rgba(12,13,18,.03);
  display:flex; align-items:stretch; justify-content:center; flex-wrap:wrap;
  gap:10px; padding:26px 18px; width:100%;
}
html body .clipme-flow-step{
  flex:1 1 180px; max-width:230px; min-width:160px;
  display:flex; flex-direction:column; gap:7px;
  padding:16px 16px; border-radius:14px;
  background:var(--cm-card); border:1px solid var(--cm-line);
}
html body .clipme-flow-step b{
  font-size:13.5px; font-weight:700; line-height:1.25; color:var(--cm-ink);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace; word-break:break-word;
}
html body .clipme-flow-step span{ font-size:12.5px; line-height:1.5; color:var(--cm-dim); }
html body .clipme-flow-step.is-out{ border-color:rgba(230,58,85,.42); background:rgba(230,58,85,.05); }
html body .clipme-flow-arrow{
  align-self:center; width:16px; height:1px; background:var(--cm-line); position:relative; flex:0 0 auto;
}
html body .clipme-flow-arrow::after{
  content:""; position:absolute; right:-1px; top:-3px;
  border-left:6px solid var(--cm-line); border-top:3.5px solid transparent;
  border-bottom:3.5px solid transparent;
}
@media (prefers-color-scheme:dark){
  html:not([data-theme="light"]) body .clipme-flow{
    --cm-ink:#f2f2f5; --cm-dim:#9a9aa8; --cm-line:rgba(255,255,255,.14); --cm-card:rgba(255,255,255,.03);
  }
}
html[data-theme="dark"] body .clipme-flow{
  --cm-ink:#f2f2f5; --cm-dim:#9a9aa8; --cm-line:rgba(255,255,255,.14); --cm-card:rgba(255,255,255,.03);
}
@media (max-width:900px){
  html body .clipme-flow-arrow{ transform:rotate(90deg); }
  html body .clipme-flow{ flex-direction:column; align-items:center; }
  html body .clipme-flow-step{ max-width:420px; width:100%; }
}

/* the eyebrow link above the API h1 shipped white-on-white and read as a blank pill */
html body .api_header_cs-link{
  display:inline-block; background:rgba(230,58,85,.10)!important; color:#e63a55!important;
  border:1px solid rgba(230,58,85,.30); border-radius:999px;
  padding:6px 14px; font-size:13px; font-weight:600; text-decoration:none;
}
html body .api_header_cs-link:hover{ background:rgba(230,58,85,.16)!important; }

/* the Rive container was locked to the animation's 2.395:1 frame, so replacing
   the canvas with markup left ~340px of dead space. Let the content set height. */
html body .feature0902_workflow_visual:has(.clipme-flow){ aspect-ratio:auto!important; height:auto!important; }

/* ===========================================================================
   72. Desktop hero — asymmetric split with real clip proof
   The shipped hero is a centred column of text on a flat ground: nothing to
   look at, and ~400px of dead air above the fold. On desktop it becomes a
   two-column grid — copy left, a fanned stack of real 9:16 output right — so
   the page shows the product instead of describing it. Below 1120px it falls
   back to the original single column.
   =========================================================================== */
html body .clipme-hero-rail{ display:none; }

@media (min-width:1120px){
  html body .a_home1n_header_layout.is-a-b{
    display:grid!important; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
    align-items:center; gap:56px; text-align:left;
  }
  html body .feature0902_header-main{ grid-column:1; }
  html body .clipme-hero-rail{ grid-column:2; grid-row:1; }
  html body .feature0902_hero-cta{ grid-column:1 / -1; }

  /* the copy column: left-aligned, tighter rhythm, no stranded centre axis */
  html body .feature0902_header_wrapper{ text-align:left; align-items:flex-start; }
  html body .feature0902_header_text_h1{ text-align:left; text-wrap:balance; margin:14px 0 0; }
  html body #a_home1n_header_text_p{ text-align:left; max-width:52ch; margin-top:14px; }
  html body .feature0902_cta{ justify-content:flex-start; }
  html body .opus-font-section-lg.api-mobile{ display:none; }

  html body .clipme-hero-rail{
    position:relative; display:block; height:clamp(380px,40vw,470px);
  }
  html body .clipme-hero-card{
    position:absolute; top:50%; margin:0; width:206px; aspect-ratio:9/16;
    border-radius:18px; overflow:hidden; background:#131316;
    border:1px solid rgba(255,255,255,.10);
    box-shadow:0 26px 60px rgba(0,0,0,.55);
    transition:transform .5s cubic-bezier(.2,.7,.3,1);
  }
  html body .clipme-hero-card img{ width:100%; height:100%; object-fit:cover; display:block; }
  html body .clipme-hero-card figcaption{
    position:absolute; left:9px; right:9px; bottom:9px;
    display:flex; align-items:center; gap:6px;
    font-size:10.5px; letter-spacing:.04em; text-transform:uppercase;
    background:rgba(8,8,10,.72); backdrop-filter:blur(6px);
    border-radius:8px; padding:5px 8px; color:#fff;
  }
  html body .clipme-hero-card figcaption b{ color:#ff5a73; font-weight:700; }
  html body .clipme-hero-card figcaption span{ opacity:.72 }

  /* fanned stack — the middle card leads */
  html body .clipme-hero-card.c1{ left:2%;  transform:translateY(-50%) rotate(-7deg) scale(.9);  z-index:1; }
  html body .clipme-hero-card.c2{ left:30%; transform:translateY(-52%) rotate(0deg)  scale(1.04); z-index:3; }
  html body .clipme-hero-card.c3{ left:58%; transform:translateY(-50%) rotate(7deg)  scale(.9);  z-index:2; }
  html body .clipme-hero-rail:hover .clipme-hero-card.c1{ transform:translateY(-50%) rotate(-11deg) scale(.92); }
  html body .clipme-hero-rail:hover .clipme-hero-card.c3{ transform:translateY(-50%) rotate(11deg)  scale(.92); }

  html body .clipme-hero-live{
    position:absolute; top:4%; left:30%; z-index:4;
    display:inline-flex; align-items:center; gap:7px;
    background:rgba(8,8,10,.82); border:1px solid rgba(69,224,106,.34);
    color:#d8ffe2; border-radius:999px; padding:6px 12px;
    font-size:11.5px; font-weight:600; letter-spacing:.02em; white-space:nowrap;
  }
  html body .clipme-hero-live i{
    width:7px; height:7px; border-radius:50%; background:#45e06a;
    box-shadow:0 0 0 0 rgba(69,224,106,.6); animation:clipmeHeroPulse 2s infinite;
  }
  html body .clipme-hero-count{
    position:absolute; right:0; bottom:2%; z-index:4;
    display:flex; flex-direction:column; gap:1px; text-align:right;
    font-size:12px; color:#9a9aa8; line-height:1.35;
  }
  html body .clipme-hero-count b{
    font-size:26px; font-weight:800; color:#fff; letter-spacing:-.02em;
    font-variant-numeric:tabular-nums;
  }
}
@keyframes clipmeHeroPulse{
  70%{ box-shadow:0 0 0 9px rgba(69,224,106,0) }
  100%{ box-shadow:0 0 0 0 rgba(69,224,106,0) }
}
@media (prefers-reduced-motion:reduce){
  html body .clipme-hero-card{ transition:none }
  html body .clipme-hero-live i{ animation:none }
}

/* the fixed bar sat 41px tall inside a 73px spacer, leaving a black strip under
   the ribbon. Match the bar to the height the spacer reserves. */
html body .a-ca_navbar_fixed-wrapper{ min-height:73px; display:flex; align-items:center; }

/* --- 72b. hero rhythm: kill the dead air, commit to the left axis --------- */
@media (min-width:1120px){
  html body .feature0902_header{ padding-top:34px!important; padding-bottom:18px!important; }
  html body .feature0902_header_wrapper{ gap:0; }
  /* the eyebrow chip and the activity ticker were centred inside a left column */
  html body .feature0902_header_wrapper .api_header_cs-link{ align-self:flex-start; margin:0 0 14px; }
  html body .feature0902_header_wrapper .clipme-ticker{
    margin:0 0 18px!important; align-self:flex-start!important; justify-content:flex-start!important;
  }
  html body .a_home1n_header_layout.is-a-b{ align-items:center; padding-block:8px; }
  html body .feature0902_header_text_h1{ font-size:clamp(44px,4.4vw,66px); line-height:1.02; }
  html body #a_home1n_header_text_p{ margin-top:16px; }
  html body .feature0902_hero-cta{ margin-top:26px; }
  html body .feature0902_cta{ margin-bottom:26px; }
}

/* --- 72c. hero: close the remaining dead air above the fold ---------------
   The shipped header reserves ~170px of padding for a full-bleed animation
   that is no longer there, which pushed the headline below the fold on a
   laptop. Pull the whole block up and let the two columns share one baseline. */
@media (min-width:1120px){
  html body .feature0902_header{ padding-top:10px!important; }
  html body .feature0902_header .a_padding-global{ padding-top:0!important; }
  html body .feature0902_header_wrapper{ padding-top:0!important; margin-top:0!important; }
  html body .feature0902_header_wrapper > *:first-child{ margin-top:0!important; }
  html body .a_home1n_header_layout.is-a-b{ min-height:min(76vh,660px); padding-block:0; }
  html body .clipme-hero-rail{ height:clamp(400px,38vw,520px); }
}

/* --- 72d. rail sits on the copy's optical centre, fully above the fold ---- */
@media (min-width:1120px){
  html body .clipme-hero-rail{
    align-self:center; height:clamp(330px,30vw,420px); margin-top:-8px;
  }
  html body .clipme-hero-card{ width:174px; }
  html body .clipme-hero-card.c1{ left:4%;  }
  html body .clipme-hero-card.c2{ left:32%; }
  html body .clipme-hero-card.c3{ left:60%; }
  html body .clipme-hero-live{ top:-2%; left:32%; }
  html body .clipme-hero-count{ bottom:-4%; right:2%; }
}

/* --- 72e. raise the clip stack to the copy's top axis --------------------- */
@media (min-width:1120px){
  html body .clipme-hero-rail{
    align-self:start; margin-top:6px; height:clamp(330px,30vw,420px);
  }
  html body .clipme-hero-card{ top:48%; }
  html body .clipme-hero-live{ top:-4%; }
}

/* ===========================================================================
   73. Desktop hero — extended to the Studio (/agent) and homepage layouts
   Same two-column treatment as section 72, wired to each page's own hero
   classes. Pricing keeps its single column: its hero IS the plan selector,
   and a clip stack beside it would compete with the thing being chosen.
   =========================================================================== */
@media (min-width:1120px){
  /* --- /agent (ClipMe Studio): had no hero visual at all ----------------- */
  html body .agent3_hero_layout{
    display:grid!important; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
    align-items:start; gap:52px; text-align:left;
  }
  html body .agent3_hero_layout > .clipme-hero-rail{ grid-column:2; grid-row:1; }
  html body .agent3_hero_text{ grid-column:1; grid-row:1; text-align:left; align-items:flex-start; }
  html body .agent3_hero_h1_wrap, html body .agent3_hero_layout h1{ text-align:left; }
  html body .a_container-1000:has(.agent3_hero_layout){ max-width:1200px; }

  /* --- homepage: the live phone mock (.home0625_header_anim_swiper, moved
         to a direct sibling of .a_home1n_header_main by heroSplit() in
         clipme-theme.js) now takes the grid's second column instead of
         stacking full-width under the form. -------------------------------*/
  html body .home0625_header{ padding-top:18px!important; }
  html body .home0625_header_text_wrapper{ padding-top:0!important; }
  html body .a_home1n_header_main{ grid-column:1; }
  html body .a_home1n_header_layout.is-a-b > .home0625_header_anim_swiper{
    grid-column:2; grid-row:1; width:100%; padding:0!important; align-self:center;
  }
}

/* ===========================================================================
   74. /agent navbar
   The Studio page ships its own nav (`.agent_nav`) rather than the site bar.
   Its background layer and its inner container were painting two different
   grounds, so the bar read as a grey band with a dark strip inset. Paint one
   surface, matching the bar used on every other page.
   =========================================================================== */
html body .agent_nav, html body .agent_nav_bg{
  background:rgba(12,13,18,.92)!important;
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
html body .agent_nav_menu, html body .agent_nav_links,
html body .agent2_nav_logo, html body .agent_nav_button-group{ background:transparent!important; }
html body .agent_nav a, html body .agent_nav_link{ color:#f2f2f5!important; }
html body .agent_nav a:hover, html body .agent_nav_link:hover{ color:#fff!important; }

/* ===========================================================================
   75. /agent Studio section — retheme off the competitor's green
   `.agent3_agent_bg` painted Agent Opus's brand green (#0b3f1d) behind the
   Studio section, and the oversized marquee ran under the panel above it.
   Move it onto ClipMe's ink + crimson and give the panel clearance.
   =========================================================================== */
html body .agent3_agent_bg{
  background:radial-gradient(120% 120% at 50% 0%, #17131a 0%, #0c0d12 58%, #08080a 100%)!important;
}
html body .agent3_agent_bg::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(60% 40% at 50% 0%, rgba(230,58,85,.12), transparent 70%);
}
/* the capability marquee: sit it behind the panel, not through the copy */
html body .agent3_agent_bg :is(h1,h2,h3,div,span)[class*="marquee"],
html body .agent3_agent_bg [class*="agent3_agent_list"]{
  opacity:.16!important; mix-blend-mode:normal;
}



/* --- 75b. Studio subhead was unreadable ---------------------------------
   `.agent2_text_p.is-opacity-50` sets opacity:.5 on #9b9ba6 over a near-black
   ground -- roughly 2:1 contrast, well under the 4.5:1 floor. Nothing covers
   it; it was simply too faint to read. Lift it to full opacity and real ink. */
html body .agent2_text_p.is-opacity-50,
html body .agent3_agent_section .agent2_text_p{
  opacity:1!important; color:#b9b9c6!important;
}
/* the Studio panel sits immediately under the subhead and clipped its second
   line; the copy was sized for the shorter competitor headline it replaced */
@media (min-width:1120px){
  html body .agent3_agent_section .agent2_text_p{ margin-bottom:56px!important; }
}

/* ===========================================================================
   76. Carried-over fact blocks
   Real ClipMe content ported into the mirror's thin pages from clipme.com
   (/research, /tools/clip-calculator, /clips, /crew). Neutral surface so it
   reads as part of whichever page hosts it, in either theme.
   =========================================================================== */
html body .clipme-facts{
  --f-ink:#16161a; --f-dim:#5b5b68; --f-line:rgba(12,13,18,.12); --f-card:rgba(12,13,18,.025);
  padding:84px 0;
}
html body .clipme-facts h2{
  font-size:clamp(28px,3.4vw,42px); font-weight:800; letter-spacing:-.02em;
  line-height:1.08; color:var(--f-ink); margin:0 0 14px; text-wrap:balance;
}
html body .clipme-facts-lead{
  font-size:18px; line-height:1.6; color:var(--f-dim); max-width:62ch; margin:0 0 36px;
}
html body .clipme-fact-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px;
}
html body .clipme-fact{
  display:flex; flex-direction:column; gap:9px; padding:22px 22px;
  border:1px solid var(--f-line); border-radius:16px; background:var(--f-card);
}
html body .clipme-fact b{
  font-size:17px; font-weight:700; color:var(--f-ink); letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;
}
html body .clipme-fact span{ font-size:15px; line-height:1.6; color:var(--f-dim); }
html body .clipme-fact-cta{ margin:28px 0 0; font-size:16px; }
html body .clipme-fact-cta a{ color:#e63a55!important; font-weight:600; text-decoration:none; }
html body .clipme-fact-cta a:hover{ text-decoration:underline; }
@media (prefers-color-scheme:dark){
  html:not([data-theme="light"]) body .clipme-facts{
    --f-ink:#f4f4f7; --f-dim:#9a9aa8; --f-line:rgba(255,255,255,.13); --f-card:rgba(255,255,255,.025);
  }
}
html[data-theme="dark"] body .clipme-facts{
  --f-ink:#f4f4f7; --f-dim:#9a9aa8; --f-line:rgba(255,255,255,.13); --f-card:rgba(255,255,255,.025);
}


/* the nav bar is fixed under the ribbon; on pages that ship a second banner
   spacer it was being pushed a full ribbon-height below, leaving a white strip */
/* nav link text lives in a child div, so colour it at both levels */
html body .a-ca_navbar_link, html body .a-ca_navbar_link *,
html body .a-ca_navbar_dropdown_toggle, html body .a-ca_navbar_dropdown_toggle > div{
  color:#f2f2f5!important;
}

/* the fixed bar sits inside `.a-ca_navbar`, a spacer that reserves the header
   height. The bar's vertical offset inside that spacer varies per page, so
   painting only the bar left a strip of page background showing through.
   Paint the whole reserved area in the same ink — no seam on any page. */
html body .a-ca_navbar{
  /* 2026-09-13: no backdrop-filter here — on the PARENT it becomes the containing block for
     the fixed bar inside, which then scrolls away and sits at 2x the ribbon offset. */
  background-color:rgba(12,13,18,.92)!important;
  border-bottom:1px solid rgba(255,255,255,.08);
  position:relative; z-index:1000;
}
html body .a-ca_navbar_fixed-wrapper{ border-bottom:0!important; }

/* ===========================================================================
   78. `a_body-bluish-black` had no implementation
   Four pages (business, capcut-alternative, descript-alternative,
   wall-of-love) carry `a_body-bluish-black a_text-color-white` — they declare
   a dark page with white type. The rule lived in the competitor's vendor
   stylesheet, which was never captured, so the body stayed white and the
   white type rendered on white. Implement it.
   =========================================================================== */
html body.a_body-bluish-black{
  background-color:#0c0d12!important;
  color:#f4f4f7;
}
html body.a_body-bluish-black .a_text-color-white,
html body.a_text-color-white{ color:#f4f4f7; }

/* ===========================================================================
   79. GOD MODE — the ClipMe visual layer
   One cohesive treatment applied to every ClipMe-built component: glass
   surfaces, layered depth, crimson/live-green neon, and motion that respects
   prefers-reduced-motion. Tokens first so every effect is tunable in one place.
   =========================================================================== */
:root{
  --gm-glass:rgba(255,255,255,.045);
  --gm-glass-hi:rgba(255,255,255,.14);
  --gm-edge:rgba(255,255,255,.10);
  --gm-red:#e63a55;  --gm-red-soft:#ff5a73;
  --gm-live:#45e06a;
  --gm-shadow-a:0 1px 2px rgba(0,0,0,.30);
  --gm-shadow-b:0 18px 44px -12px rgba(0,0,0,.62);
  --gm-shadow-c:0 44px 90px -30px rgba(230,58,85,.24);
  --gm-ease:cubic-bezier(.2,.7,.25,1);
}
@media (prefers-color-scheme:light){
  :root:not([data-theme="dark"]){
    --gm-glass:rgba(12,13,18,.035); --gm-glass-hi:rgba(12,13,18,.10);
    --gm-edge:rgba(12,13,18,.11);
    --gm-shadow-b:0 18px 44px -16px rgba(12,13,18,.22);
    --gm-shadow-c:0 44px 90px -34px rgba(230,58,85,.16);
  }
}

/* --- the glass surface, shared by every card-like ClipMe component -------- */
html body :is(.clipme-fact,.clipme-ep,.clipme-flow-step,.clipme-tq,.clipme-hero-card){
  position:relative;
  background:
    linear-gradient(180deg, var(--gm-glass-hi) 0%, transparent 42%) border-box,
    var(--gm-glass) padding-box;
  border:1px solid var(--gm-edge);
  -webkit-backdrop-filter:blur(18px) saturate(150%);
  backdrop-filter:blur(18px) saturate(150%);
  box-shadow:var(--gm-shadow-a), var(--gm-shadow-b);
  transition:transform .45s var(--gm-ease), box-shadow .45s var(--gm-ease),
             border-color .45s var(--gm-ease);
}
/* the inner top highlight that sells glass as glass */
html body :is(.clipme-fact,.clipme-ep,.clipme-flow-step,.clipme-tq)::before{
  content:""; position:absolute; inset:0 0 auto 0; height:1px; border-radius:inherit;
  background:linear-gradient(90deg,transparent,var(--gm-glass-hi) 24%,var(--gm-glass-hi) 76%,transparent);
  pointer-events:none;
}
html body :is(.clipme-fact,.clipme-ep,.clipme-flow-step,.clipme-tq):hover{
  transform:translateY(-3px);
  border-color:rgba(230,58,85,.34);
  box-shadow:var(--gm-shadow-a), var(--gm-shadow-b), var(--gm-shadow-c);
}

/* --- 3D depth on the card groups ---------------------------------------- */
html body :is(.clipme-fact-grid,.clipme-flow,.clipme-tq-grid){
  perspective:1400px; transform-style:preserve-3d;
}
html body .clipme-hero-rail{ perspective:1500px; transform-style:preserve-3d; }
html body .clipme-hero-card{
  box-shadow:var(--gm-shadow-a), 0 30px 70px -18px rgba(0,0,0,.72),
             0 0 0 1px var(--gm-edge) inset;
}

/* --- neon: crimson for output, green for live --------------------------- */
html body .clipme-flow-step.is-out{
  border-color:rgba(230,58,85,.42)!important;
  box-shadow:var(--gm-shadow-a), var(--gm-shadow-b),
             0 0 30px -6px rgba(230,58,85,.34),
             0 0 0 1px rgba(230,58,85,.16) inset;
}
html body .clipme-hero-live, html body .clipme-plat-tag{
  box-shadow:0 0 22px -4px rgba(69,224,106,.40), 0 0 0 1px rgba(69,224,106,.20) inset;
}
html body .clipme-fact-cta a{
  text-shadow:0 0 18px rgba(230,58,85,.44);
}

/* --- motion: one ambient float, one sheen. Nothing blinks. -------------- */
@keyframes gmFloat{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-5px)} }
@keyframes gmSheen{ 0%{background-position:-160% 0} 100%{background-position:260% 0} }
html body .clipme-hero-card.c2{ animation:gmFloat 7s var(--gm-ease) infinite; }
html body .clipme-hero-card.c1{ animation:gmFloat 8.5s var(--gm-ease) infinite .5s; }
html body .clipme-hero-card.c3{ animation:gmFloat 9.5s var(--gm-ease) infinite 1s; }
html body .clipme-flow-step.is-out::after{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.16) 50%,transparent 58%);
  background-size:260% 100%; animation:gmSheen 5.5s linear infinite;
}
@media (prefers-reduced-motion:reduce){
  html body .clipme-hero-card{ animation:none!important }
  html body .clipme-flow-step.is-out::after{ animation:none; opacity:0 }
  html body :is(.clipme-fact,.clipme-ep,.clipme-flow-step,.clipme-tq){ transition:none }
}

/* ===========================================================================
   80. Mobile ergonomics
   A real 390px sweep (emulation applied AFTER the tab exists — set before, it
   is silently ignored) found 237 tap targets under 28px and 92 text runs under
   11px. Footer/nav links were 24px tall; badge labels 8–10px. Enlarge the
   touch area without moving the layout, and floor the type size.
   =========================================================================== */
@media (max-width:900px){
  html body a.a-ca_footer_link,
  html body a.agent_nav_link,
  html body a.a-ca_navbar_link,
  html body a.a-ca_navbar_logo-link,
  html body .a_n-blog_post a,
  html body .clipme-fact-cta a,
  html body .al-card a{
    display:inline-block!important;
    min-height:32px!important;
    line-height:32px!important;
  }
  html body a.a-ca_footer_link{ padding-block:4px!important; min-height:34px!important; }

  /* labels below the legible floor on a phone */
  html body .clipme-cw-b,
  html body .clipme-cw-b.look,
  html body .clipme-cw-b.cut,
  html body .clipme-cw-b.tap{ font-size:11px!important; padding:4px 7px!important; }
  html body .clipme-plat-tag,
  html body .clipme-plat-tag.is-live{ font-size:11.5px!important; }
  html body .clipme-sh-posted,
  html body .clipme-sh-veldash,
  html body .a-ca_navbar_link_tag,
  html body .home0625_navbar_features-dropdown_link,
  html body .a_ss_showcase_video_label,
  html body .al-card__badge,
  html body .a_text-size-pico,
  html body .clipme-hero-card figcaption{ font-size:11px!important; }

  /* decorative header bleed overflowed the viewport on /about */
  html body .a_about_header_bg_top,
  html body .a_about_header_bg_bot-1,
  html body .a_about_header_bg_bot-2{ max-width:100%!important; overflow:hidden; }
  html body .agent3_hero_swiper,
  html body .agent3_hero_swiper-slide{ max-width:100vw; }


  /* remaining sub-11px runs: badge/tag/meta utilities and the nav dropdown tags */
  html body .home0625_navbar_features-dropdown_link_h_tag,
  html body [class*="_tag"],
  html body [class*="-tag"],
  html body [class*="pico"],
  html body [class*="badge"],
  html body [class*="_label"],
  html body [class*="_meta"],
  html body small{ font-size:11px!important; line-height:1.35!important; }

  /* named offenders from the 390px sweep, excluding the product mockups
     (`.clipme-st-*`, `.clipme-wp-*` etc. depict an app UI — small type there
     is the illustration, not body copy, so those are deliberately untouched) */
  html body .a_font-weight-medium,
  html body .opus-font-section-md,
  html body .a_2024_creators_video_channel_name,
  html body .a-ca_btn_secondary-text,
  html body .clipme-tv-who{ font-size:11.5px!important; }
  html body .clipme-ticker strong,
  html body .a_font-weight-medium strong{ font-size:inherit!important; }

  /* carousel channel chips and select arrows were 14–18px touch targets */
  html body a.a_2024_creators_video_channel{
    display:inline-flex!important; align-items:center; min-height:32px!important;
  }
  html body .a-ca_select-arrow,
  html body .a_nlp-input-arrow{ min-height:28px!important; }
  /* god-mode glass is expensive on a phone GPU — keep the look, drop the blur */
  html body .clipme-fact,
  html body .clipme-ep,
  html body .clipme-flow-step,
  html body .clipme-tq{ -webkit-backdrop-filter:none; backdrop-filter:none; }
}

/* ===========================================================================
   81. Content tables
   /blog-post ships three comparison tables inside Webflow embeds with no
   colour of their own. Do NOT assert an ink colour here — the same markup
   appears on light and dark pages, and hardcoding one turned 1 unreadable
   node into 50 on mobile. Inherit the page's ink and use alpha-only
   backgrounds, which are correct against either surface.
   =========================================================================== */
html body table{
  width:100%; border-collapse:collapse; color:inherit;
  font-variant-numeric:tabular-nums;
}
html body table :is(th,td){
  color:inherit;
  border-bottom:1px solid currentColor;
  border-bottom-color:color-mix(in srgb, currentColor 16%, transparent);
  padding:11px 14px; text-align:left; vertical-align:top;
  font-size:14.5px; line-height:1.5;
}
html body table th{
  background:color-mix(in srgb, currentColor 6%, transparent);
  font-weight:700;
}
html body table tbody tr:nth-child(even) td{
  background:color-mix(in srgb, currentColor 3%, transparent);
}
html body table :is(td,th) :is(strong,b,em,span,code){ color:inherit; }
html body table a{ color:#e63a55; }
/* wide tables scroll in their own container instead of pushing the page */
html body .w-embed:has(> table), html body .w-richtext:has(table){ overflow-x:auto; }
@media (max-width:900px){
  html body table :is(th,td){ font-size:13px; padding:9px 10px; }
}

/* ===========================================================================
   82. Mobile tap targets — located by a parallel diagnostic pass
   Six agents swept the site at a proven 390px viewport. These four selectors
   account for 89 of the 170 sub-28px tap targets. Each was chosen to grow the
   hit rect WITHOUT moving the layout: inline elements take vertical padding
   (which enlarges the hit rect but not the line box), and the footer column
   eats its added height back out of its own gap.
   =========================================================================== */
@media (max-width:900px){
  /* legal body copy + rich-text article links: must keep wrapping mid-sentence,
     so they stay display:inline and grow via padding only. 17px -> 33px. */
  html body .a_legal-content_block a,
  html body .a_clip-search-blog-p_rt a{
    display:inline!important;
    padding-block:8px!important;
  }
  /* footer column: flex items in a 4px-gap column — the negative margin eats
     the added height back out of the gap so the column height is unchanged. */
  html body a.agent2_footer_link{
    display:inline-flex!important; align-items:center!important;
    min-height:32px!important; margin-block:-4px!important;
  }
  /* nav wordmark sits in a 60px row, so the extra height is absorbed */
  html body a.agent2_nav_logo{ min-height:32px!important; align-items:center!important; }
}

/* ===========================================================================
   83. Mobile legibility — sub-11px real copy and remaining small tap targets
   Measured at a proven 390px viewport across the site. These classes account
   for ~142 runs of body text rendering between 5px and 10.5px, which is
   unreadable on a phone. Product-mockup components are deliberately excluded:
   small type inside them is the illustration, not copy.
   =========================================================================== */
@media (max-width:900px){
  /* comparison tables shrank to 5.4–7px */
  html body .a-ca_performance_table_cell{ font-size:12.5px!important; line-height:1.45!important; }
  html body .a-ca_performance_table_header{ font-size:12px!important; letter-spacing:.02em!important; }
  html body .a-ca_text-color-muted-foreground{ font-size:12px!important; }

  /* channel names and card meta under video tiles */
  html body .a_n-features_vids_item_visual_channel_name,
  html body .a_customer-stories_videos_channel_h3{ font-size:12px!important; line-height:1.3!important; }
  html body .al-card__video-pill, html body .al-card__runtime{ font-size:11.5px!important; }

  /* inline <strong>/<b>/<em> inheriting a shrunken parent size */
  html body p strong, html body p b, html body p em,
  html body li strong, html body li b, html body li em{ font-size:inherit!important; }
  html body :is(p,li,td,th,figcaption){ font-size:max(1em,12px); }

  /* remaining small tap targets: inline links grow their hit rect via padding
     (which does not disturb the line box), block links get a min height */
  html body a.a-ca_text-style-link{ display:inline!important; padding-block:8px!important; }
  html body .a-ca_footer a, html body .a_n-blog_post a{
    display:inline-block!important; min-height:32px!important; line-height:32px!important;
  }
}

/* --- 83b. the last of it -------------------------------------------------
   45 <strong> runs at 10px whose parent carries no class (so the earlier
   `p strong` rule never matched), and 11 classless <a> in the ads-library
   card grid at 17px tall. Scoped away from the product mockups, whose small
   type is deliberate. */
@media (max-width:900px){
  html body :not([class*="clipme-"]) > strong,
  html body :not([class*="clipme-"]) > b{ font-size:max(1em,12px)!important; }
  html body .al-card a, html body .al-directory a, html body .al-grid a{
    display:inline-block!important; min-height:32px!important;
    line-height:1.6!important; padding-block:6px!important;
  }
}

/* --- 83c. last tap targets -----------------------------------------------
   An earlier rule targeted `.a-ca_text-style-link`; the real class is
   `.a_text-style-link` (no -ca), so it never matched. Plus the remaining
   classless inline <a>. `.clipme-cap-tap` is excluded — it is a simulated
   tap indicator inside a product mockup, not a control. */
@media (max-width:900px){
  html body a.a_text-style-link,
  html body a.a_text-color-white,
  html body a.api_header_cs-link{
    display:inline-block!important; min-height:32px!important;
    line-height:1.7!important; padding-block:5px!important;
  }
  html body :is(p,li,td,figcaption,.w-richtext) > a:not([class]){
    display:inline!important; padding-block:8px!important;
  }
}

/* ===========================================================================
   84. Layout stability
   CLS measured 0.69–2.07 on several pages under Slow-4G: images and video
   frames had no reserved box, so every late-arriving asset shoved the page.
   Intrinsic width/height are now on the markup; this keeps them responsive
   without giving the reserved space back.
   =========================================================================== */
html body img[width][height]{ height:auto; }
html body img[width][height].a_visual{ height:auto; max-width:100%; }
/* videos: reserve the frame before the poster decodes */
html body video[poster]{ background:#131316; }
html body .a_visual video, html body video.a_visual{ aspect-ratio:attr(width) / attr(height); }

/* ===========================================================================
   85. Ribbon shipped in markup, not injected
   The beta ribbon was built by JS and prepended to <body> roughly 6s into a
   throttled load, shoving the whole page down: a single 0.387 layout shift,
   which was the entire CLS budget on /about and /pricing. It is now rendered
   server-side (ribbon() no-ops when one exists). Reserve its height up front
   so nothing moves even before the stylesheet's own rules resolve.
   =========================================================================== */
html body .clipme-ribbon{ min-height:44px; box-sizing:border-box; }
@media (max-width:640px){ html body .clipme-ribbon{ min-height:52px; } }

/* ===========================================================================
   86. Keyboard focus visibility
   The captured stylesheet carried only 4 focus rules across 80 pages, so
   tabbing through the site was largely invisible — a genuine accessibility
   failure, not a cosmetic one. `:focus-visible` shows the ring for keyboard
   users without putting it on every mouse click.
   =========================================================================== */
html body :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid #ff5a73!important;
  outline-offset:2px!important;
  border-radius:4px;
}
/* on the crimson CTAs the crimson ring would vanish — invert it there */
html body :is(.a-ca_button,.clipme-ribbon-cta,[class*="is-primary"]):focus-visible{
  outline-color:#ffffff!important; outline-offset:3px!important;
}
/* never remove the ring without replacing it */
html body *:focus-visible{ box-shadow:none; }
/* let keyboard users jump the nav */
html body .clipme-skip{
  position:absolute; left:-9999px; top:0; z-index:100000;
  background:#e63a55; color:#fff; padding:12px 18px; border-radius:0 0 10px 0;
  font-weight:700; text-decoration:none;
}
html body .clipme-skip:focus{ left:0; }

/* ===========================================================================
   87. Print
   No @media print existed at all: printing any page produced the full dark
   ground, every decorative video frame and the fixed navigation. Legal pages
   in particular are things people actually print.
   =========================================================================== */
@media print{
  html body{ background:#fff!important; color:#000!important; }
  html body *{ background-image:none!important; box-shadow:none!important;
               text-shadow:none!important; color:#000!important; }
  html body :is(.clipme-ribbon,.a-ca_navbar,.agent_nav,.clipme-theme-toggle,
    .home0625_cta_input_section,video,canvas,.clipme-hero-rail,footer nav){ display:none!important; }
  html body a[href^="http"]::after{ content:" (" attr(href) ")"; font-size:11px; word-break:break-all; }
  html body :is(h1,h2,h3){ page-break-after:avoid; }
  html body :is(img,figure,table,blockquote){ page-break-inside:avoid; max-width:100%!important; }
  html body .a_page-wrapper{ padding-top:0!important; }
}

/* The Studio page pins its own nav at top:0, which put it on top of the ribbon
   once the ribbon moved into normal flow. Set the resting offset WITHOUT
   !important: track() writes an inline `top` on scroll to slide the bar up as
   the ribbon leaves the viewport, and !important here froze it in place. */
html body.has-clipme-ribbon .agent_nav,
html body.has-clipme-ribbon .agent_nav_bg{ top:var(--clipme-ribbon-h,108px); }

/* ribbon() used to set --clipme-ribbon-h and the body class; now that the
   ribbon ships in markup the function returns early and does neither, so the
   variable needs a real value here or every fixed navbar sits on the ribbon. */
html body.has-clipme-ribbon{ --clipme-ribbon-h:108px; }
@media (min-width:641px){ html body.has-clipme-ribbon{ --clipme-ribbon-h:52px; } }

/* the decorative grid is painted with background-image on a pseudo-element, so
   the earlier `* { background-image:none }` print rule never reached it */
@media print{
  html body *::before, html body *::after{ background-image:none!important; content:none!important; }
  html body{ background-image:none!important; }
}

/* ===========================================================================
   88. Output-fan resting state on small screens
   The grid rests at opacity .32 on a near-black ground. On a 390px phone the
   tiles are ~55px wide, and at that size a third-opacity tile on #0d0d11 is
   indistinguishable from empty space — the section reads as a large black void
   with a stray "0 clips from one stream" under it, which is what it looked
   like on a real handset. Lift the resting state so the grid shape always
   reads, and never show a zero count.
   =========================================================================== */
@media (max-width:760px){
  html body .clipme-fan-clip{
    opacity:.62;
    background:#1b1b23;
    border-color:#2a2a34;
    transform:translateY(3px) scale(.985);
  }
  html body .clipme-fan-clip .clipme-fan-img{ opacity:.42; }
  html body .clipme-fan-clip.on .clipme-fan-img{ opacity:1; }
  /* the fan and wide panel both count up from zero each cycle; a bare "0"
     under a dim grid reads as a failure state */
  html body .clipme-fan-foot, html body .clipme-wp-foot{ min-height:1.4em; }
}

/* ===========================================================================
   89. Output-fan grid collapsed inside its flex parent
   `.clipme-fan` is display:flex and `.clipme-fan-out` is a grid child with no
   flex sizing, so it shrank to min-content — 29px inside a 328px container,
   producing 2px-wide tiles. On a phone that is the "empty black box" the grid
   appeared to be. A grid child of a flex parent needs an explicit basis and
   min-width:0, or its tracks collapse.
   =========================================================================== */
/* `.clipme-fan` serves two different components: a 3-tile hero fan that must lay
   out in a row (section 43 forces flex-direction:row!important for it) and this
   grid-plus-caption panel. Scope by what the element actually contains so the
   grid version stacks without disturbing the tile version. */
html body .clipme-fan:has(> .clipme-fan-out){
  flex-direction:column!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
}
html body .clipme-fan-out{
  flex:0 0 auto;
  width:100%;
  min-width:0;
}
html body .clipme-fan-foot{ width:100%; }

/* the desktop frame puts the fan in a deliberate 168px sidebar, but the grid
   kept its 12 tracks — 11px tiles. Match the column count to the space it has. */
/* At >=1001px the wide-panel frame puts the fan in a deliberate 168px sidebar.
   The fan carries `.is-merged` there, whose rule sets 8 tracks — 11px tiles in
   168px. Match that selector's specificity so the sidebar gets a track count
   the space can actually render. */
@media (min-width:1001px){
  html body .clipme-wp-frame .clipme-fan.is-merged .clipme-fan-out,
  html body .clipme-wp-frame .clipme-fan .clipme-fan-out{
    grid-template-columns:repeat(3,1fr); gap:5px;
  }
}

/* the merged fan's foot is styled to sit below its grid (margin-top/padding-top)
   but the container inherited row direction, so it rendered beside it in a
   squeezed column. Match the state class's specificity. */
html body .clipme-fan.is-merged{ flex-direction:column!important; align-items:stretch!important; }
html body .clipme-fan.is-merged .clipme-fan-out{ width:100%; min-width:0; }
html body .clipme-fan.is-merged .clipme-fan-foot{ width:100%; }

/* ===========================================================================
   90. Sticky CTA pill still carried its full-width hero layout
   Section 68 collapses `.home0625_cta_input_section` into a floating rounded
   pill. Two leftovers from the layout it used to be only show up below the
   desktop breakpoint: `.home0625_cta_bg` swaps to the tall mobile visual and
   renders a 384px vertical video hanging 191px above and 111px below a 62px
   control, and `.home0625_cta_input` carries `flex-basis:210px`, which in the
   column-direction wrapper inflates the pill to 228px of mostly empty space.
   Both are decoration for a section shape that no longer exists here.
   =========================================================================== */
@media (max-width:1023px){
  html body .home0625_cta_input_section.is-visible .home0625_cta_bg{
    display:none!important;
  }
  html body .home0625_cta_input_section.is-visible .home0625_cta_input{
    flex-basis:auto!important; height:auto!important; min-height:0!important;
  }
  html body .home0625_cta_input_section.is-visible .home0625_cta_input_wrapper{
    height:auto!important; min-height:0!important;
  }
  /* The submit button keeps the explicit 300px width it had when this row ran
     the full width of a hero. Inside a 305px pill that leaves 48px for the
     field, so "Drop a video link" rendered as a 16px sliver under the button.
     Size the button to its label and give the field what is left. */
  html body .home0625_cta_input_section.is-visible .a-ca_url-cta_input_btns,
  html body .home0625_cta_input_section.is-visible .a-ca_url-cta_input_btn_wrapper,
  html body .home0625_cta_input_section.is-visible .a-ca_url-cta_input_btns .a-ca_button{
    width:auto!important; flex:0 0 auto!important;
  }
  html body .home0625_cta_input_section.is-visible .a-ca_form_input_wrapper{
    flex:1 1 auto!important; min-width:0!important;
  }
  html body .home0625_cta_input_section.is-visible .a-ca_form_input_placeholder{
    min-width:0!important; overflow:hidden; text-overflow:ellipsis;
  }
}
/* Under ~480px the mobile placeholder copy ("Drop a Kick, Twitch or YouTube
   link", 238px at its set size) cannot share one row with the button inside a
   359px pill -- the tail clipped. Give the field the full width and drop the
   button onto its own row rather than shrinking type below the 11px floor. */
/* Between 481 and 1023 the row still fits on one line, but the same longer
   placeholder copy needs 271px and the field was sized for 203 -- the tail
   clipped. The pill has room to grow (max-width is 680px), so give the field
   the width the copy needs instead of cutting it. */
@media (min-width:481px) and (max-width:1023px){
  html body .home0625_cta_input_section.is-visible .a-ca_form_input_wrapper{
    min-width:325px!important;
  }
}
@media (max-width:480px){
  html body .home0625_cta_input_section.is-visible{
    border-radius:22px; max-width:calc(100vw - 32px);
  }
  html body .home0625_cta_input_section.is-visible .a-ca_url-cta_input-wrapper{
    flex-wrap:wrap!important; gap:8px;
  }
  html body .home0625_cta_input_section.is-visible .a-ca_form_input_wrapper{
    flex:1 1 100%!important;
  }
  html body .home0625_cta_input_section.is-visible .a-ca_url-cta_input_btns,
  html body .home0625_cta_input_section.is-visible .a-ca_url-cta_input_btn_wrapper,
  html body .home0625_cta_input_section.is-visible .a-ca_url-cta_input_btns .a-ca_button{
    flex:0 0 100%!important; width:100%!important;
  }
  /* Once the row wraps, the field's own capsule wraps the button too and its
     rounded ends show around it. Move the surface onto the field row. */
  html body .home0625_cta_input_section.is-visible .a-ca_url-cta_input-wrapper{
    background:transparent!important;
  }
  html body .home0625_cta_input_section.is-visible .a-ca_form_input_wrapper{
    background:rgba(128,130,145,.20); border-radius:999px;
  }
}
/* At 360px and under even a full-width field is 198px against 238px of copy.
   Step the label down one size rather than clip it; 13px stays above the
   11px floor the rest of the site holds to. */
@media (max-width:365px){
  html body .home0625_cta_input_section.is-visible .a-ca_form_input_placeholder{
    font-size:13px!important;
  }
}

/* ===========================================================================
   91. Navbar overflowed the viewport between 992px and ~1075px
   The desktop nav turns on at 992px, but its row needs 998px of content
   inside a container the 24px page gutters cut to 976px. Nothing shrinks
   (the menu is flex:1 1 0% with min-width:auto), so the "Start free" button
   sat 22-54px past the right edge and the whole document scrolled sideways.
   Tighten the gutters for that band only -- it buys back more than the row
   is short, and leaves link spacing alone.
   =========================================================================== */
@media (min-width:992px) and (max-width:1075px){
  html body .a-ca_navbar .a-ca_padding-global{ padding-left:10px; padding-right:10px; }
  html body .a-ca_navbar_menu{ min-width:0; }
}

/* ===========================================================================
   92. Third-party "trusted by" logo marquee — not ClipMe's customers
   `[data-element="ca-customers-swiper"]` ships OpusClip's real customer wall
   (Jubilee Media, Dhar Mann Studios, ZoomInfo, and several unlabelled
   headshots that are real third-party people, not ClipMe creators). No
   heading sits above it, so hiding it leaves no orphaned copy. Present on
   about, ai-b-roll, ai-reframe, ai-video-editor, brand-templates, calendar,
   captions, customer-stories, video-repurposing-ai.

   Hiding it with a stylesheet rule fires at first paint, before Swiper.js
   ever measures the element -- Swiper's constructor then runs against a
   zero-dimension container and throws deep inside swiper-bundle.min.js
   ("Cannot read properties of undefined (reading 'classList')") on every
   page that carries this rule. killCustomerLogos() in clipme-theme.js hides
   it with JS instead, after Swiper has already initialised against real
   dimensions -- the same order platformPills() uses for the companies
   swiper next to it, which never hit this crash.
   =========================================================================== */

/* ===========================================================================
   93. Wide panel on desktop: the frame was sized by its sidebars, not its stage
   Measured at 1440/1920/2000 (frame 1198 wide): the stage column is 467px
   (372 video + caption + creator row) but the frame ran 996-1424px. Two
   things stacked up in the 168px left column and both took part in row
   sizing. Section 37's `.clipme-wp-out` rail keeps up to three 152x270 cards
   one per row -- 895px once the animation has shipped three -- so the
   "out body" row grew to 909px and left 442px of black under the creator row
   and chat. Then the merged `.clipme-fan` (appended into the frame by
   outputFan, never given a grid-area) auto-placed into an implicit third
   row of column 1: another 440px row whose 976px right cell is empty. The
   chat column had the opposite problem -- `justify-content:flex-end` on
   fourteen 11px lines (252px) in a 389px box left the top 137-191px blank.
   None of this is viewport-bound; the frame is the same 1424px at 900 and
   1300 tall. The white/red frame border is section 57's shared panel
   treatment, not a debug remnant, and stays.

   Below 1001px nothing changes (owner signed off the phone layout). Above
   it the frame is bar over (fan | body) and only the body sizes the row:
   the fan is `contain:size` so it contributes nothing and simply stretches
   to the stage column, clipping what does not fit; the rail is hidden here
   because the fan already shows the clips coming out and its foot carries
   the same line ("N clips from one stream · captioned · 9:16 · no
   watermark") -- section 36 retired the old rail for exactly that reason.
   The chat column is `contain:size` too, so at narrower frames (1001-1235)
   its message stack cannot out-grow the stage; lines are sized so fourteen
   fill the box at the 1200 frame, and the oldest clip off the top under a
   fade rather than leaving the top empty.
   =========================================================================== */
@media (min-width:1001px){
  html body .clipme-wp-frame{
    grid-template-columns:168px minmax(0,1fr);
    grid-template-rows:auto auto;
    grid-template-areas:"bar bar" "fan body";
    align-items:start;
  }
  html body .clipme-wp-out{ display:none!important; }
  html body .clipme-wp-frame .clipme-fan.is-merged,
  html body .clipme-wp-frame .clipme-fan{
    grid-area:fan; align-self:stretch;
    /* a size container contributes nothing to the row (that is `contain:size`)
       and lets the tile count below answer to the column's real height */
    container-type:size; container-name:cm-wpfan;
    height:auto!important; min-height:0!important; max-height:none!important;
    overflow:hidden;
    margin:14px 0 0; padding:0 16px 0 0;
    border:0; border-right:1px solid rgba(255,255,255,.08); border-radius:0;
    background:transparent; box-shadow:none;
    display:flex!important; flex-direction:column!important;
  }
  /* the grid takes whatever is above the foot and shares it between its rows;
     tiles keep 9:16 and sit centred in their row, so spare height becomes even
     breathing room between rows instead of a hole under the last one */
  html body .clipme-wp-frame .clipme-fan .clipme-fan-out{
    flex:1 1 auto; min-height:0; width:100%; min-width:0; overflow:hidden;
    grid-auto-rows:minmax(0,1fr); align-items:center;
  }
  html body .clipme-wp-frame .clipme-fan .clipme-fan-clip{ align-self:center; }
  /* the count sits on the floor of the column */
  html body .clipme-wp-frame .clipme-fan .clipme-fan-foot{
    flex:0 0 auto; width:100%; margin-top:14px; padding-top:10px;
  }
  /* 168px holds three 47x84 tiles across. Four rows plus the foot need 443px,
     three need 355px -- what the stage column gives at a 1200 and a ~1080
     frame. Shed whole rows below those heights rather than clip one mid-tile. */
  @container cm-wpfan (max-height:442px){
    html body .clipme-wp-frame .clipme-fan .clipme-fan-clip:nth-child(n+10){ display:none; }
  }
  @container cm-wpfan (max-height:354px){
    html body .clipme-wp-frame .clipme-fan .clipme-fan-clip:nth-child(n+7){ display:none; }
  }

  /* chat: same height as the stage column, never taller */
  html body .clipme-wp-body{ align-items:start; }
  html body .clipme-wp-body .clipme-wp-chatcol{
    contain:size; height:100%; min-height:0; align-self:stretch;
    display:flex; flex-direction:column;
  }
  /* only the message list gives; labels and the meter were shrinking with it
     (the 5px bar measured 3px at 1001) */
  html body .clipme-wp-chatcol > *{ flex:0 0 auto; }
  html body .clipme-wp-chatcol .clipme-wp-msgs{
    flex:1 1 auto; min-height:0; overflow:hidden; justify-content:flex-end; gap:6px;
    -webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 28px);
            mask-image:linear-gradient(to bottom, transparent 0, #000 28px);
  }
  html body .clipme-wp-chatcol .clipme-wp-msg{ font-size:12.5px; line-height:1.65; }
  html body .clipme-wp-chatcol .clipme-wp-vellabel{ margin-top:auto; padding-top:8px; }
}

/* ===========================================================================
   94. Wide panel: ink pinned to its dark surface; fan tiles never rest blank
   The frame is a stream device, dark in every theme (its own rule above
   section 36 says so), but nothing pinned its ink: the leaves carry
   theme-neutral whites while the tokens and body colour around them flip
   with html.light / data-theme / prefers-color-scheme. Measured before this
   section at 1920x1080 and 1440x900 in all four states (prefers light,
   html.light, data-theme=light, prefers dark) the computed inks were the
   same white in every state, and three leaves failed the floor on the dark
   surface itself: the channel handle (.42 white on the bar, 4.02), the
   CHAT / CHAT VELOCITY labels (.30 white, 2.63) and the message colon
   (.25 white, 2.18). Pin the tokens on the frame, restate every leaf colour
   with !important at a specificity above the theme's `html.light body .x`
   rules, and lift those three alphas to clear 4.5 / 3.0 -- the only visible
   change on the dark scheme.

   Fan tiles: clipme-theme.js (outputFan -> fanRun) assigns every tile's
   poster src at the top of each cycle, for all twelve, BEFORE any tile gets
   `.on`, so the image is there while the tile rests. Section 25 hides it
   (img opacity 0) and sinks the tile to .32, which on this near-black
   ground is twelve empty grey rectangles for the first 1.1-2.3s of every
   5.6s cycle. Show the poster dimmed at rest and full on `.on`; under it a
   dark card with the ClipMe red ring at low alpha and a faint play glyph
   covers the window before the first cycle assigns a src (or a poster that
   fails), so an unfilled slot still reads as a slot. Below 761px section 88
   owns the resting state (owner signed off the phone layout); untouched.
   =========================================================================== */
html body .clipme-wp-frame,
html.light body .clipme-wp-frame,
html[data-theme="light"] body .clipme-wp-frame,
html[data-theme="dark"] body .clipme-wp-frame{
  --cm-fg:#ffffff; --cm-muted:#9b9ba6; --cm-faint:#6b6b76;
  --cm-bg:#0d0d0f; --cm-elev:#131316; --cm-elev2:#1b1b1f; --cm-border:#262630;
  color:#ffffff!important;
}
@media (prefers-color-scheme:light){
  :root:not([data-theme="dark"]) body .clipme-wp-frame{
    --cm-fg:#ffffff; --cm-muted:#9b9ba6; --cm-faint:#6b6b76;
    --cm-bg:#0d0d0f; --cm-elev:#131316; --cm-elev2:#1b1b1f; --cm-border:#262630;
    color:#ffffff!important;
  }
}
/* leaves: same values as their base rules unless marked "lifted" */
html body .clipme-wp-frame .clipme-wp-handle{ color:rgba(255,255,255,.50)!important; }  /* lifted from .42: 4.02 -> ~5.1 */
html body .clipme-wp-frame .clipme-wp-dim{ color:rgba(255,255,255,.65)!important; }
html body .clipme-wp-frame .clipme-wp-brand{ color:rgba(255,255,255,.35)!important; }
html body .clipme-wp-frame .clipme-wp-label{ color:rgba(255,255,255,.38)!important; }   /* lifted from .30: 2.63 -> ~3.5 */
html body .clipme-wp-frame .clipme-wp-state.is-live{ color:#ff5a73!important; }
html body .clipme-wp-frame .clipme-wp-msg{ color:rgba(255,255,255,.55)!important; }
html body .clipme-wp-frame .clipme-wp-msg.is-hype{ color:rgba(255,255,255,.95)!important; }
html body .clipme-wp-frame .clipme-wp-colon{ color:rgba(255,255,255,.50)!important; }   /* lifted from .25: 2.18 -> ~5.3 */
html body .clipme-wp-frame .clipme-wp-caption{ color:rgba(255,255,255,.90)!important; }
html body .clipme-wp-frame .clipme-wp-title{ color:#f7f7f9!important; }
html body .clipme-wp-frame .clipme-wp-pill{ color:#53fc18!important; }
html body .clipme-wp-frame .clipme-wp-pill.is-ghost{ color:#9b9ba6!important; }
html body .clipme-wp-frame .clipme-wp-livebadge{ color:#fff!important; }
html body .clipme-wp-frame .clipme-wp-chip.is-clipping{ color:#fff!important; }
html body .clipme-wp-frame .clipme-wp-chip.is-clipped{ color:#0a1f0f!important; }
html body .clipme-wp-frame .clipme-wp-count,
html body .clipme-wp-frame .clipme-wp-outn,
html body .clipme-wp-frame .clipme-fan-n{ color:#45e06a!important; }
html body .clipme-wp-frame .clipme-wp-outfoot{ color:rgba(255,255,255,.62)!important; }
html body .clipme-wp-frame .clipme-wp-dest{ color:rgba(255,255,255,.45)!important; }
html body .clipme-wp-frame .clipme-wp-b{ color:#101014!important; }
html body .clipme-wp-frame .clipme-wp-b.ok{ color:#0a1f0f!important; }
html body .clipme-wp-frame .clipme-wp-b.cut{ color:rgba(255,255,255,.92)!important; }
html body .clipme-wp-frame .clipme-wp-b.bl{ color:rgba(255,255,255,.88)!important; }
html body .clipme-wp-frame .clipme-fan-foot{ color:#9b9ba6!important; border-top-color:#1e1e26; }
html body .clipme-wp-frame .clipme-fan-url{ color:#fff!important; }
html body .clipme-wp-frame .clipme-fan-state{ color:#6b6b76!important; }
/* section 25's html.light block repaints the tiles as white cards; inside this
   frame they stay the dark card. Values are the dark base rules' own (and
   section 88's on the phone), so the dark scheme does not move. */
html.light body .clipme-wp-frame .clipme-fan-clip,
html[data-theme="light"] body .clipme-wp-frame .clipme-fan-clip{ background:#131319; border-color:#1e1e26; }
html.light body .clipme-wp-frame .clipme-fan-clip.on,
html[data-theme="light"] body .clipme-wp-frame .clipme-fan-clip.on{ background:#0d0d11; border-color:#33333f; }
@media (max-width:760px){
  html.light body .clipme-wp-frame .clipme-fan-clip,
  html[data-theme="light"] body .clipme-wp-frame .clipme-fan-clip{ background:#1b1b23; border-color:#2a2a34; }
}

/* fan tiles at rest, 761px and up (section 88 keeps the phone as signed off) */
@media (min-width:761px){
  html body .clipme-wp-frame .clipme-fan .clipme-fan-clip{
    opacity:.55;
    background:#131319; border-color:#1e1e26;
    /* placeholder under the poster: ClipMe red ring at low alpha; only visible
       while no poster is painted over it */
    box-shadow:inset 0 0 0 1px rgba(230,58,85,.30);
  }
  html body .clipme-wp-frame .clipme-fan .clipme-fan-clip::before{
    content:""; position:absolute; left:50%; top:50%; width:26%; aspect-ratio:1;
    transform:translate(-38%,-50%);
    background:rgba(255,255,255,.16);
    clip-path:polygon(0 0,100% 50%,0 100%);
    z-index:0; pointer-events:none;
  }
  html body .clipme-wp-frame .clipme-fan .clipme-fan-clip .clipme-fan-img{ opacity:1; z-index:1; }
  html body .clipme-wp-frame .clipme-fan .clipme-fan-clip.on{
    opacity:1; background:#0d0d11; border-color:#33333f;
  }
}

/* ===========================================================================
   95. Ported clipme.com sections (.clipme-port)
   Content lifted verbatim from clipme.com's prerendered pages with its Tailwind
   classes stripped, so images lost their sizing and rendered at natural size —
   a 9:16 clip still became a 760px-wide, 1,300px-tall blur. Give ported media
   thumbnail bounds and ported blocks sane rhythm.
   =========================================================================== */
html body .clipme-port img:not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *){ max-width:min(220px,100%); max-height:320px; width:auto; height:auto; object-fit:cover; border-radius:12px; display:inline-block; margin:6px 8px 6px 0; vertical-align:top; }
html body .clipme-port video:not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *){ max-width:min(320px,100%); height:auto; border-radius:12px; }
html body .clipme-port h2:not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *){ margin-top:48px; }
html body .clipme-port h3:not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *){ margin-top:22px; }
html body .clipme-port p:not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *), html body .clipme-port li:not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *){ max-width:68ch; }
html body .clipme-port details{ border-bottom:1px solid rgba(255,255,255,.1); padding:12px 0; }
html body .clipme-port details summary{ cursor:pointer; font-weight:600; }
html body .clipme-port table{ border-collapse:collapse; width:100%; margin:16px 0; }
html body .clipme-port td, html body .clipme-port th{ padding:8px 10px; border-bottom:1px solid rgba(255,255,255,.1); text-align:left; }
/* card grids: any block whose children are blocks that lead with an h3 was a Tailwind grid */
html body .clipme-port div:has(> div > h3):not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *){ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; margin:18px 0; }
html body .clipme-port div:has(> div > h3):not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *) > div{ border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.03); border-radius:14px; padding:18px 18px 16px; }
html body .clipme-port div:has(> div > h3):not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *) > div > p{ margin:0; font-size:15px; }
html body .clipme-port h3:not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *){ margin:0 0 8px; font-size:19px; line-height:1.3; }
html body .clipme-port div:has(> img):not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *){ display:flex; flex-wrap:wrap; gap:8px; }
html body .clipme-port div:has(> div > img):not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *){ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }

/* ===========================================================================
   96. /agent on the shared site nav
   The Studio page dropped its own `.agent_nav` for the `.a-ca_navbar` bar
   every other page carries. Section 74's `body.agent_body [class*="navbar"]`
   repaint was written for one element and now matches every descendant of
   the shared bar — each link, toggle and container drew its own 1px
   border-bottom (a hairline under every nav item at 1440). Keep the bar's own
   border, drop it on the descendants. The founding pill on this page is static
   markup (no seat count); on phones section 74 hides its text spans, which
   left its separator dangling at the left edge — hide that too.
   =========================================================================== */
html body.agent_body .a-ca_navbar [class*="navbar"]{ border-bottom:0!important; }
/* the same repaint hit the three hamburger lines (class carries "navbar"), painting
   them the bar colour — measured rgb(8,8,10) on a rgb(8,8,10) bar at 390. */
html body.agent_body .a-ca_navbar_menu-btn-line{ background:#f2f2f5!important; }
@media (max-width:640px){
  html body.agent_body .agent3_hero_pill_text .clipme-fo-sep{ display:none; }
}

/* ===========================================================================
   96. Orphaned marquee edge-gradients painted a black band above the creator strip
   `.a_home1n_customers_left-gradient` / `_right-gradient` faded the edges of the
   OpusClip logo marquee that used to sit in this section. The marquee is gone
   (creatorWall() renders the LIVE FEED strip instead), so the two absolutely
   positioned gradient overlays now draw a ~48px dark bar under the headline.
   =========================================================================== */
html body .a_home1n_customers_left-gradient,
html body .a_home1n_customers_right-gradient{ display:none!important; }

/* ---- 97. Restored feature pages ------------------------------------------------
   captions / ai-reframe / ai-b-roll / brand-templates came back from the pre-purge
   backup. Their product screenshots are now ClipMe mockups drawn by featureShots(),
   dropped into Webflow slots that were built as flex rows around a fixed-size image.
   A flex item with no basis collapses to its longest word, which turned the text
   mockup into a 30px column 2,400px tall. Give the injected panel a real basis, cap
   it to the slot, and stop the slot stretching to whatever the panel becomes. ---- */
html body.clipme-restored .clipme-fs{
  /* Taking the panel out of flow is the only reliable fix: these Webflow slots are
     flex rows whose other children still claim width, so a flex item here shrinks to
     its longest word no matter what basis it is given. Every slot is position:relative
     already, so absolute fill lands exactly on the image it replaces. */
  position:absolute; inset:0; width:auto; max-width:none;
  display:flex; flex-direction:column; justify-content:center; overflow:auto;
}
html body.clipme-restored .clipme-fs > *{ flex:0 0 auto; }
html body.clipme-restored .a_n-captions_block_visual-1,
html body.clipme-restored .a_n-captions_block_visual-2,
html body.clipme-restored .a_n-captions_block_visual-3,
html body.clipme-restored .a_n-captions_block_visual-4,
html body.clipme-restored .a_n-features_block_visual,
html body.clipme-restored .a_n-features_all_item_visual{ position:relative; }
html body.clipme-restored .a_n-captions_block_visual-1,
html body.clipme-restored .a_n-captions_block_visual-2,
html body.clipme-restored .a_n-captions_block_visual-3,
html body.clipme-restored .a_n-captions_block_visual-4,
html body.clipme-restored .a_n-features_block_visual,
html body.clipme-restored .a_n-features_all_item_visual{
  height:auto; min-height:0; align-items:center;
}
/* the still that sits under a mockup is only a fallback — never let it set the slot */
html body.clipme-restored img[data-clipme-shot]{
  width:100%; height:auto; max-height:360px; object-fit:cover; border-radius:12px;
}

/* ---- 98. Captions demo (captionsVisual) ----------------------------------------
   The component shipped in clipme-theme.js but its styles never did — on the
   restored /captions and /brand-templates the bare <video> rendered at its own
   1280px and ran straight over the heading beside it. It simulates one clip with
   the ClipMe strip baked in and the words arriving one at a time when you tap. -- */
html body .clipme-cap{ position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:12px; padding:12px; }
html body .clipme-cap-shell{
  position:relative; width:100%; max-width:340px; aspect-ratio:9/16; max-height:100%;
  border-radius:16px; overflow:hidden; background:#0b0b0e;
  border:1px solid #262630; box-shadow:0 18px 40px rgba(0,0,0,.55);
}
html body .clipme-cap-vid{ width:100%; height:100%; object-fit:cover; display:block; }
html body .clipme-cap-line{
  position:absolute; left:8%; right:8%; bottom:18%; display:flex; flex-wrap:wrap;
  justify-content:center; gap:5px; pointer-events:none;
}
html body .clipme-cap-line .w{
  font-family:"Sora",system-ui,sans-serif; font-weight:800; font-size:19px; line-height:1.15;
  letter-spacing:-.01em; color:#fff; opacity:0; transform:translateY(5px) scale(.94);
  padding:1px 6px; border-radius:6px; background:rgba(8,8,10,.55);
  text-shadow:0 2px 8px rgba(0,0,0,.65); transition:opacity .16s ease, transform .16s ease;
}
html body .clipme-cap-line .w.on{ opacity:1; transform:none; }
html body .clipme-cap-line .w.on:last-of-type{ background:#e63a55; }
html body .clipme-cap-strip{
  position:absolute; left:0; right:0; top:0; display:flex; align-items:center; gap:8px;
  padding:8px 10px; font-size:10px; letter-spacing:.06em;
  background:linear-gradient(180deg,rgba(8,8,10,.8),rgba(8,8,10,0));
}
html body .clipme-cap-strip b{ font-family:"Sora",system-ui,sans-serif; font-weight:800;
  font-size:13px; letter-spacing:-.02em; color:#fff; }
html body .clipme-cap-strip b i{ font-style:normal; color:#e63a55; }
html body .clipme-cap-strip em{ font-style:normal; color:#9b9ba6; font-size:9.5px; }
html body .clipme-cap-tap{
  display:inline-flex; align-items:center; gap:7px; cursor:pointer;
  padding:8px 14px; border-radius:999px; border:1px solid #2a2a35; background:#15151b;
  font-family:"Inter",system-ui,sans-serif; font-size:12.5px; font-weight:600; color:#e9e9f0;
  transition:border-color .15s ease, background .15s ease;
}
html body .clipme-cap-tap:hover{ border-color:#e63a55; background:#1b1b22; }
html body .clipme-cap.is-on .clipme-cap-tap{ border-color:#e63a55; color:#fff; }
html body .clipme-cap-plus{ font-style:normal; font-weight:800; color:#e63a55; }
@media (max-width:767px){
  html body .clipme-cap{ position:relative; inset:auto; padding:0; }
  html body .clipme-cap-shell{ max-width:260px; }
  html body .clipme-cap-line .w{ font-size:16px; }
}
@media (prefers-reduced-motion:reduce){
  html body .clipme-cap-line .w{ transition:none; }
}

/* ---- 99. Studio panel mount on the home page -----------------------------------
   studioEditor() used to hang the panel off the rive node, which lives in the hero
   swiper heroSplit() rebuilds first — so the section under "Your last stream is
   already the content" shipped as a heading over empty grid. It now appends its own
   slot to that section's layout; the slot is a mount point, never a visible box. -- */
html body .clipme-st-slot{ display:block; width:100%; margin-top:28px; }
html body .home0625_layout:has(> .clipme-st-slot){ display:block; }

/* ---- 100. Theme toggle: stop it sitting on the content --------------------------
   The pill is position:fixed at z-index 99999, so on a phone it parks itself on top
   of whatever scrolls under it — on /pricing that was the Starter card's own text.
   Below the tablet breakpoint it collapses to a 40px glyph and sits back at 62%
   until you touch it, so it occludes a tenth of what it used to. ---------------- */
@media (max-width:900px){
  html body .clipme-theme-toggle{
    width:40px; height:40px; padding:0; border-radius:50%;
    font-size:0; line-height:0; opacity:.62;
    display:flex; align-items:center; justify-content:center;
    transition:opacity .16s ease;
  }
  html body .clipme-theme-toggle::before{
    content:"\25D0"; font-size:17px; line-height:1; color:#fff;
  }
  html body .clipme-theme-toggle:hover,
  html body .clipme-theme-toggle:focus-visible{ opacity:1; }
}
html body .clipme-theme-toggle:focus-visible{ outline:2px solid #fff; outline-offset:3px; }

/* ---- 101. FAQ accordions: give the summary an affordance ------------------------
   433 bare <summary> elements across 168 pages rendered as plain bold text with no
   open/close indicator — nothing told you they were clickable, and nothing told you
   which one was open. /pricing got this treatment first (cm-faq); this is the same
   chevron generalised to every other page.

   .clipme-step-t is excluded: it is the numbered-step component, 290 of them, and it
   carries its own layout. --------------------------------------------------------- */
html body details > summary:not(.clipme-step-t){
  cursor:pointer; list-style:none; position:relative;
  padding-right:40px; padding-top:14px; padding-bottom:14px;
  line-height:1.4;
}
html body details > summary:not(.clipme-step-t)::-webkit-details-marker{ display:none; }
html body details > summary:not(.clipme-step-t)::after{
  content:""; position:absolute; right:6px; top:50%;
  width:10px; height:10px; margin-top:-7px;
  border-right:2px solid #9b9ba6; border-bottom:2px solid #9b9ba6;
  transform:rotate(45deg);
  transition:transform .18s ease, border-color .18s ease;
}
html body details[open] > summary:not(.clipme-step-t)::after{
  transform:rotate(-135deg); margin-top:-2px; border-color:#e63a55;
}
html body details > summary:not(.clipme-step-t):hover{ color:#ff5a73; }
@media (prefers-reduced-motion:reduce){
  html body details > summary:not(.clipme-step-t)::after{ transition:none; }
}

/* ---- 102. Mobile density on the ported sections --------------------------------
   The home page ran to 17,334px at 390 — the eight .clipme-port sections alone were
   ~11,400 of it, and 1,064px of that was nothing but section padding (64px top and
   88px bottom, eight times over). Nothing here removes content: it is padding,
   heading margins and grid gaps, mobile only. Desktop keeps the airier setting.

   The details padding is a correction to §101: .clipme-port already gave each row
   12px, so the 14px I added there was doubling it on 112 pages. ----------------- */
@media (max-width:640px){
  html body .clipme-pg{ padding:40px 16px 44px; }
  html body .clipme-port h2:not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *){ margin-top:26px; }
  html body .clipme-port h3:not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *){ margin-top:14px; }
  html body .clipme-port div:has(> div > h3):not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *){ gap:11px; margin:14px 0; }
  html body .clipme-port div:has(> div > h3):not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *) > div{ padding:14px 14px 13px; }
  html body .clipme-port div:has(> div > img):not(.clipme-pg-visual *):not(.clipme-wp *):not(.clipme-hls *):not(.clipme-lw *):not(.clipme-eng *):not(.clipme-fan *):not(.clipme-cw *):not(.clipme-pm *):not(.cm-dressed *){ gap:11px; }
  html body .clipme-pg-benefits{ margin-bottom:28px; gap:9px; }
  html body .clipme-pg-benefits li{ padding:13px 14px 13px 42px; }
  html body .clipme-port details{ padding:2px 0; }
  html body details > summary:not(.clipme-step-t){ padding-top:12px; padding-bottom:12px; }
  html body .clipme-pg-answer{ margin-bottom:20px; }
}

/* ---- 103. Comparison tables on ported pages ------------------------------------
   /showcase carries a five-column comparison — label plus four products — inside a
   plain div. At 390 it rendered 426px wide with overflow-x:visible, so the last two
   columns were simply unreachable. Same treatment /pricing got: the wrapper scrolls,
   the table keeps a width its columns can actually live in, and the row label stays
   pinned so the ticks still mean something once you scroll. -------------------- */
html body .clipme-port div:has(> table){
  overflow-x:auto; -webkit-overflow-scrolling:touch;
  border:1px solid rgba(255,255,255,.1); border-radius:14px;
}
html body .clipme-port div:has(> table) > table{ margin:0; }
@media (max-width:760px){
  html body .clipme-port div:has(> table) > table{ min-width:620px; }
  html body .clipme-port table td:first-child,
  html body .clipme-port table th:first-child{
    position:sticky; left:0; background:#0f0f13; z-index:1; min-width:168px;
  }
}

/* ---- 104. /showcase stat tiles --------------------------------------------------
   These shipped as bare <div><span><span>N</span></span><span>label</span></div>
   with no rule anywhere, so they rendered as running text — "0.0M+Clips generated"
   with the number welded to its label. Now they are tiles, and the figures in them
   come from CLIPME-FACTS rather than a counter that never populated. ------------ */
html body .cm-stats{
  /* 210px let four tiles break 3+1 in this ~720px column, stranding the last one.
     300px pairs them 2x2 here and still opens out on a wider container. The bottom
     margin is the next section's breathing room — these are bare <section>s with no
     padding of their own, so "Loved by creators" was landing on the tile edge. */
  display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:14px; margin:28px 0 58px;
}
html body .cm-stat{
  display:flex; flex-direction:column; gap:5px;
  border:1px solid var(--cm-border,#262630); background:var(--cm-elev,#131316);
  border-radius:16px; padding:20px 20px 18px;
}
html body .cm-stat-n{
  font-family:"Sora","Inter",system-ui,sans-serif; font-weight:800;
  font-size:clamp(28px,3.4vw,38px); line-height:1; letter-spacing:-.03em;
  color:var(--cm-fg,#fff); font-variant-numeric:tabular-nums;
}
html body .cm-stat-l{ font-weight:700; font-size:15px; color:var(--cm-fg,#fff); }
html body .cm-stat-s{ font-size:13px; line-height:1.45; color:var(--cm-muted,#9b9ba6); }

html body .cm-kpis{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px; margin:22px 0 26px;
}
html body .cm-kpi{
  border:1px solid var(--cm-border,#262630); background:var(--cm-elev,#131316);
  border-radius:14px; padding:16px 14px; text-align:center;
}
html body .cm-kpi-n{
  font-family:"Sora","Inter",system-ui,sans-serif; font-weight:800; font-size:26px;
  line-height:1.1; letter-spacing:-.02em; color:var(--cm-red,#e63a55);
  font-variant-numeric:tabular-nums;
}
html body .cm-kpi-l{ font-size:12.5px; color:var(--cm-muted,#9b9ba6); margin-top:5px; line-height:1.35; }
@media (max-width:520px){
  html body .cm-kpis{ grid-template-columns:1fr; }
  html body .cm-kpi{ display:flex; align-items:baseline; gap:10px; text-align:left; }
  html body .cm-kpi-l{ margin-top:0; }
}

/* ---- 105. Hub cards (/business, /for) ------------------------------------------
   .clipme-hub and .clipme-hub-card were written into the markup and never given a
   single rule, so each card rendered as a bare <a>: underlined heading, underlined
   body copy, underlined "Read more", no surface, no padding, no separation from the
   next one. Fifteen of them. This is the card they were always meant to be. ----- */
html body .clipme-hub{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:14px; margin:30px 0 8px;
}
html body a.clipme-hub-card{
  display:flex; flex-direction:column; gap:9px;
  text-decoration:none!important;
  padding:22px 22px 20px;
  border-radius:16px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.035) 0%, rgba(255,255,255,0) 42%),
    var(--cm-elev,#131316);
  border:1px solid var(--cm-border,#262630);
  /* depth: a hairline catch along the top edge, then the card sits on its own shadow */
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 1px 2px rgba(0,0,0,.4);
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
html body a.clipme-hub-card *{ text-decoration:none!important; }
html body a.clipme-hub-card .clipme-step-t{
  margin:0; font-size:19px; line-height:1.25; color:var(--cm-fg,#fff)!important;
}
html body a.clipme-hub-card .clipme-body-p{
  margin:0; font-size:14.5px; line-height:1.55;
  color:var(--cm-muted,#9b9ba6)!important;
}
html body a.clipme-hub-card .clipme-pg-note{
  margin-top:4px; font-size:13px; font-weight:600;
  color:var(--cm-red,#e63a55)!important;
  transition:letter-spacing .18s ease;
}
html body a.clipme-hub-card:hover{
  transform:translateY(-3px);
  border-color:rgba(230,58,85,.55);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07), 0 16px 34px rgba(0,0,0,.5);
}
html body a.clipme-hub-card:hover .clipme-pg-note{ letter-spacing:.04em; }
html body a.clipme-hub-card:focus-visible{
  outline:2px solid var(--cm-red,#e63a55); outline-offset:3px;
}
@media (prefers-reduced-motion:reduce){
  html body a.clipme-hub-card{ transition:none; }
  html body a.clipme-hub-card:hover{ transform:none; }
}

/* ================================================================================
   106. The classes that were written but never styled
   --------------------------------------------------------------------------------
   40 class names appear in the markup with no rule anywhere behind them, so the
   elements they name render as raw tags: ghost buttons as plain links, breadcrumbs
   as a run-on line, cards as loose paragraphs, pills as bare text. This is the
   flatness — not a missing design, a missing stylesheet.

   Three clusters: the persona/page set used across 18 pages, the /about and /press
   set, and /clip-anything, which alone accounts for 24 of them.

   /pricing carries its own inline cm-* rules; those sit later in the document than
   this file, so the page keeps its own treatment where the names overlap.
   ============================================================================== */

/* ---- ghost button — the secondary next to every primary CTA ---- */
html body a.clipme-pg-ghost,
html body a.cm-btn-ghost{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:46px; padding:12px 22px; border-radius:999px;
  font-weight:700; font-size:15px; text-decoration:none!important;
  color:var(--cm-fg,#fff)!important;
  background:var(--cm-elev2,#1b1b1f);
  border:1px solid var(--cm-border,#262630);
  transition:border-color .16s ease, background .16s ease, transform .16s ease;
}
html body a.clipme-pg-ghost:hover,
html body a.cm-btn-ghost:hover{
  border-color:rgba(230,58,85,.55); background:#202027; transform:translateY(-1px);
}
html body a.clipme-pg-ghost:focus-visible,
html body a.cm-btn-ghost:focus-visible{ outline:2px solid var(--cm-red,#e63a55); outline-offset:3px; }

/* ---- breadcrumbs ---- */
html body .clipme-crumbs,
html body .cm-crumbs{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  margin:0 0 18px; font-size:13px; color:var(--cm-faint,#6b6b76)!important;
}
html body .cm-crumbs ol{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; list-style:none; margin:0; padding:0; }
html body .clipme-crumbs a, html body .cm-crumbs a{
  color:var(--cm-muted,#9b9ba6)!important; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.18);
}
html body .clipme-crumbs a:hover, html body .cm-crumbs a:hover{ color:var(--cm-red,#e63a55)!important; border-color:currentColor; }
html body .clipme-crumbs span[aria-hidden], html body .cm-crumbs li[aria-hidden]{ color:var(--cm-faint,#6b6b76); }

/* ---- the signal line under a persona hero ---- */
html body p.clipme-signal{
  display:inline-block; margin:0 0 22px; padding:9px 15px;
  border-radius:999px; background:var(--cm-elev,#131316);
  border:1px solid var(--cm-border,#262630);
  font-size:12.5px; line-height:1.45; color:var(--cm-muted,#9b9ba6)!important;
}

/* ---- boxed callout section ---- */
html body section.clipme-pg-box,
html body .cm-callout{
  border:1px solid var(--cm-border,#262630); border-radius:18px;
  background:linear-gradient(180deg, rgba(255,255,255,.03) 0%, rgba(255,255,255,0) 40%), var(--cm-elev,#131316);
  padding:26px 24px; margin:26px 0;
}
html body .cm-center{ text-align:center; }
html body .cm-h1-sm{ font-size:clamp(23px,3.6vw,30px)!important; margin-top:0; }

/* ---- generic section rhythm (/about, /press) ---- */
html body section.cm-section{ margin:0 0 42px; }
html body section.cm-related, html body section.clipme-related-more{
  border-top:1px solid var(--cm-border,#262630); padding-top:26px; margin-top:38px;
}
html body .cm-related-title{ font-size:14px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--cm-faint,#6b6b76); margin:22px 0 10px; }
html body .cm-h3{ font-size:19px; line-height:1.3; margin:0 0 10px; }
html body ul.cm-list{ list-style:none; margin:16px 0; padding:0; display:grid; gap:10px; }
html body ul.cm-list li{
  padding:14px 16px; border-radius:12px;
  background:var(--cm-elev,#131316); border:1px solid var(--cm-border,#262630);
  font-size:14.5px; line-height:1.5;
}
html body .clipme-legal{ max-width:72ch; }
html body .clipme-legal h2{ margin-top:34px; }

/* ---- reviews (/about) ---- */
html body .cm-reviews{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px; margin:20px 0; }
html body figure.cm-review{
  margin:0; padding:20px; border-radius:16px;
  background:var(--cm-elev,#131316); border:1px solid var(--cm-border,#262630);
}
html body figure.cm-review blockquote{ margin:0; border:0; padding:0; font-size:15.5px; line-height:1.55; }
html body figure.cm-review blockquote p{ margin:0; }
html body figure.cm-review figcaption{ margin-top:12px; font-size:13px; color:var(--cm-muted,#9b9ba6); }
html body figure.cm-review figcaption strong{ color:var(--cm-fg,#fff); }

/* ---- /clip-anything: card system ---- */
html body .cm-cards{ display:grid; gap:14px; margin:22px 0; grid-template-columns:1fr; }
@media (min-width:760px){
  html body .cm-cards-2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  html body .cm-cards-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  html body .cm-cards-4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:1080px){ html body .cm-cards-4{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
html body article.cm-card{
  display:flex; flex-direction:column; gap:9px;
  padding:22px 20px; border-radius:16px;
  background:linear-gradient(180deg, rgba(255,255,255,.035) 0%, rgba(255,255,255,0) 42%), var(--cm-elev,#131316);
  border:1px solid var(--cm-border,#262630);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
html body article.cm-card.cm-card-accent{ border-color:rgba(230,58,85,.5); }
html body article.cm-card.cm-card-wide{ grid-column:1/-1; }
html body article.cm-card h3{ margin:0; font-size:18px; line-height:1.3; }
html body article.cm-card p{ margin:0; font-size:14.5px; line-height:1.55; color:var(--cm-muted,#9b9ba6); }
html body .cm-card-head{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
html body .cm-card-head h3{ flex:1 1 auto; }
html body p.cm-card-kicker{
  font-family:"JetBrains Mono",ui-monospace,monospace; font-size:10.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--cm-faint,#6b6b76)!important; margin:0!important;
}
html body p.cm-prompt{
  font-family:"Sora","Inter",system-ui,sans-serif; font-size:17px; font-weight:700;
  line-height:1.35; color:var(--cm-fg,#fff)!important; margin:0!important;
}
html body span.cm-step{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:10px;
  background:rgba(230,58,85,.12); border:1px solid rgba(230,58,85,.4);
  font-family:"Sora","Inter",system-ui,sans-serif; font-weight:800; font-size:13px;
  color:var(--cm-red,#e63a55); font-variant-numeric:tabular-nums;
}
html body span.cm-pill{
  display:inline-flex; align-items:center; gap:6px; flex:0 0 auto;
  padding:4px 11px; border-radius:999px;
  font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  background:var(--cm-elev2,#1b1b1f); border:1px solid var(--cm-border,#262630);
  color:var(--cm-muted,#9b9ba6);
}
html body span.cm-pill-live{ background:rgba(69,224,106,.12); border-color:rgba(69,224,106,.45); color:#45e06a; }
html body span.cm-pill-beta{ background:rgba(230,58,85,.12); border-color:rgba(230,58,85,.45); color:var(--cm-red,#e63a55); }
html body p.cm-badge{
  display:inline-flex; align-items:center; gap:9px; margin:0 0 16px;
  padding:7px 15px; border-radius:999px;
  background:var(--cm-elev,#131316); border:1px solid var(--cm-border,#262630);
  font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--cm-muted,#9b9ba6)!important;
}
html body span.cm-dot{ width:7px; height:7px; border-radius:50%; background:var(--cm-red,#e63a55); flex:none; }
html body a.cm-more{
  display:inline-block; margin-top:4px; font-weight:700; font-size:14px;
  color:var(--cm-red,#e63a55)!important; text-decoration:none;
  border-bottom:1px solid rgba(230,58,85,.4);
}
html body a.cm-more:hover{ border-color:var(--cm-red,#e63a55); }

/* ---- comparison table + FAQ outside /pricing ---- */
html body .cm-table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch;
  border:1px solid var(--cm-border,#262630); border-radius:14px; margin:18px 0; }
html body table.cm-table{ width:100%; border-collapse:collapse; margin:0; font-size:14.5px; }
html body table.cm-table th, html body table.cm-table td{
  padding:12px 14px; border-bottom:1px solid var(--cm-border,#262630); text-align:left; }
html body table.cm-table thead th{ background:var(--cm-elev2,#1b1b1f); font-size:12px;
  letter-spacing:.07em; text-transform:uppercase; color:var(--cm-muted,#9b9ba6); }
html body table.cm-table tbody tr:last-child td{ border-bottom:0; }
html body section.cm-faq-section{ margin-top:38px; }
html body details.cm-faq{ border-bottom:1px solid var(--cm-border,#262630); }
html body details.cm-faq p{ margin:0 0 16px; color:var(--cm-muted,#9b9ba6)!important;
  font-size:14.5px; line-height:1.6; max-width:68ch; }
/* cm-accent ships with an inline color, so it renders — but it should not depend on
   one. Same value, now in the stylesheet where it belongs. */
html body .cm-accent{ color:var(--cm-red,#e63a55); }

/* ---- 111. Ported sections, dressed (.clipme-port.cm-dressed) ---------------------
   clipme-theme.js portDress() identifies the seven home-page sections ported from
   clipme.com by heading text, confirms their structure, and classes their parts. §95
   still applies underneath as the fallback for every OTHER ported block, so every
   selector here is prefixed `html body .clipme-port.cm-dressed` (0,3,x) to outrank
   §95's `:has()` grids (0,1,6) and §101/§102 (0,2,3) without !important. The one
   exception is font-family: §6 pins the whole body to Inter with `[data-font] *` +
   !important, so mono labels and 800-weight display heads can only win with the same
   flag (the file already does exactly this for its own mono labels).

   Owner's brief: "this looks cheap", "the rest of the page lacks futuristic
   dominance". The system: dark glass frames (hairline + faint fill + deep shadow),
   one red accent, JetBrains Mono uppercase micro-labels, tight big Inter heads,
   restrained motion. Everything is tokenised on the section so the light theme is a
   token swap, and every animation dies under prefers-reduced-motion. ---------------- */
html body .clipme-port.cm-dressed{
  --cmd-ground:#07070a; --cmd-ground2:#0c0d12; --cmd-card-solid:#0f0f14;
  --cmd-fg:#ffffff; --cmd-soft:#b9b9c4; --cmd-muted:#9b9ba6; --cmd-dim:#6b6b76;
  --cmd-red:#e63a55; --cmd-live:#45e06a;
  --cmd-fill:rgba(255,255,255,.035); --cmd-fill-hi:rgba(255,255,255,.06);
  --cmd-line:rgba(255,255,255,.09); --cmd-line-soft:rgba(255,255,255,.06);
  --cmd-dot:rgba(255,255,255,.05); --cmd-glow:rgba(230,58,85,.10);
  --cmd-shadow:0 30px 80px -30px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.04);
  --cmd-node-bg:radial-gradient(circle at 50% 38%, rgba(230,58,85,.24), rgba(12,13,18,.94) 70%);
  --cmd-node-fg:#ffffff;
  --cmd-sans:"Inter",system-ui,sans-serif; --cmd-mono:"JetBrains Mono",ui-monospace,monospace;
  position:relative; isolation:isolate;
  padding:88px 24px 96px; background:var(--cmd-ground); color:var(--cmd-fg);
  box-shadow:inset 0 1px 0 var(--cmd-line-soft);
}
html.light body .clipme-port.cm-dressed{
  --cmd-ground:#f6f6f8; --cmd-ground2:#ffffff; --cmd-card-solid:#fbfbfc;
  --cmd-fg:#16161a; --cmd-soft:#4a4a55; --cmd-muted:#5f5f6a; --cmd-dim:#8a8a95;
  --cmd-fill:rgba(255,255,255,.72); --cmd-fill-hi:#ffffff;
  --cmd-line:rgba(0,0,0,.1); --cmd-line-soft:rgba(0,0,0,.06);
  --cmd-dot:rgba(0,0,0,.08); --cmd-glow:rgba(230,58,85,.08);
  --cmd-shadow:0 24px 60px -30px rgba(20,20,30,.25), inset 0 1px 0 rgba(255,255,255,.9);
  --cmd-node-bg:radial-gradient(circle at 50% 38%, rgba(230,58,85,.16), #ffffff 70%);
  --cmd-node-fg:#16161a;
}
/* section chrome: a dot grid that fades out toward the edges, and one soft red glow
   behind the head. Both are pseudo-elements at z-index:-1 inside the section's own
   stacking context, so nothing needs overflow:hidden (which would kill the FAQ's
   sticky head). */
html body .clipme-port.cm-dressed::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:radial-gradient(var(--cmd-dot) 1px, transparent 1.6px);
  background-size:28px 28px; background-position:center top;
  -webkit-mask-image:radial-gradient(ellipse 72% 62% at 50% 42%, #000 25%, transparent 100%);
          mask-image:radial-gradient(ellipse 72% 62% at 50% 42%, #000 25%, transparent 100%);
}
html body .clipme-port.cm-dressed::after{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(ellipse 60% 48% at 10% 0%, var(--cmd-glow), transparent 55%);
}
/* the home wrap is capped at 760px for article pages — the dressed grids need room */
html body .clipme-port.cm-dressed > .clipme-pg-wrap{ max-width:1180px; }
html body .clipme-port.cm-dressed .cm-s{ max-width:1180px; margin:0 auto; }

/* head: red mono eyebrow with a hairline, big tight Inter display, muted lead */
html body .clipme-port.cm-dressed .cm-head{ margin:0 0 40px; max-width:none; }
html body .clipme-port.cm-dressed .cm-eyebrow{
  display:inline-flex; align-items:center; gap:12px; margin:0 0 18px; max-width:none;
  font-family:var(--cmd-mono)!important; font-weight:500; font-size:11px; line-height:1;
  letter-spacing:.2em; text-transform:uppercase; color:var(--cmd-red);
}
html body .clipme-port.cm-dressed .cm-eyebrow::before{
  content:""; width:22px; height:1px; background:var(--cmd-red); box-shadow:0 0 8px rgba(230,58,85,.8);
}
html body .clipme-port.cm-dressed .cm-head h2{
  margin:0 0 16px; max-width:22ch;
  font-family:var(--cmd-sans)!important; font-weight:800; font-size:clamp(30px,4.4vw,52px);
  line-height:1.02; letter-spacing:-.03em; text-wrap:balance; color:var(--cmd-fg);
}
html body .clipme-port.cm-dressed .cm-lead{ margin:0; max-width:62ch; font-size:17.5px; line-height:1.6; color:var(--cmd-muted); }
html body .clipme-port.cm-dressed .cm-lead span{ color:var(--cmd-red); font-weight:700; }

/* buttons: 46px red pill that lifts and glows; .cm-ghost is the hairline twin */
html body .clipme-port.cm-dressed .cm-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:46px; padding:0 22px; border-radius:999px; box-sizing:border-box;
  font-family:var(--cmd-sans)!important; font-weight:700; font-size:15px; letter-spacing:-.01em; line-height:1.2;
  text-decoration:none; color:#fff; background:var(--cmd-red); border:1px solid rgba(255,255,255,.12);
  box-shadow:0 10px 30px -10px rgba(230,58,85,.65), inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
html body .clipme-port.cm-dressed .cm-btn:hover{
  transform:translateY(-2px); background:#ff4d68; color:#fff;
  box-shadow:0 16px 40px -10px rgba(230,58,85,.8), 0 0 0 1px rgba(230,58,85,.4);
}
html body .clipme-port.cm-dressed .cm-btn:focus-visible{ outline:2px solid var(--cmd-red); outline-offset:3px; }
html body .clipme-port.cm-dressed .cm-btn.cm-ghost{ background:transparent; color:var(--cmd-fg); border-color:var(--cmd-line); box-shadow:none; }
html body .clipme-port.cm-dressed .cm-btn.cm-ghost:hover{ background:var(--cmd-fill-hi); border-color:rgba(230,58,85,.6); box-shadow:0 0 0 1px rgba(230,58,85,.2); }

/* glass frame shared by cards and tiers. §95 paints these as its generic grid cards,
   so every property it sets (display, border, background, radius, padding, margin) is
   re-declared here. The transition list carries opacity + transform because these
   elements are also .clipme-reveal targets and this rule outranks the reveal's own. */
html body .clipme-port.cm-dressed .cm-card, html body .clipme-port.cm-dressed .cm-tier{
  position:relative; display:flex; flex-direction:column; gap:12px; margin:0;
  padding:22px 22px 20px; border-radius:18px;
  background:var(--cmd-fill); border:1px solid var(--cmd-line); box-shadow:var(--cmd-shadow);
}
html body .clipme-port.cm-dressed .cm-card, html body .clipme-port.cm-dressed .cm-tier,
html body .clipme-port.cm-dressed .cm-row, html body .clipme-port.cm-dressed .cm-tr,
html body .clipme-port.cm-dressed .cm-chip, html body .clipme-port.cm-dressed .cm-q{
  transition:opacity .6s cubic-bezier(.22,1,.36,1), transform .5s cubic-bezier(.22,1,.36,1),
             border-color .2s ease, background .2s ease, box-shadow .3s ease;
}
html body .clipme-port.cm-dressed .cm-card:hover{
  transform:translateY(-4px); border-color:rgba(230,58,85,.55); background:var(--cmd-fill-hi);
  box-shadow:var(--cmd-shadow), inset 0 0 0 1px rgba(230,58,85,.15), inset 0 -40px 60px -50px rgba(230,58,85,.35), 0 0 40px -10px rgba(230,58,85,.25);
}
/* small red glowing dot before a card title (autopilot h3, side-by-side trio title) */
html body .clipme-port.cm-dressed.cm-autopilot .cm-inner h3::before,
html body .clipme-port.cm-dressed .cm-title::before{
  content:""; position:absolute; left:0; top:.5em; width:7px; height:7px; border-radius:50%;
  background:var(--cmd-red); box-shadow:0 0 0 3px rgba(230,58,85,.18), 0 0 12px rgba(230,58,85,.9);
}
/* closing / note paragraphs under a block, and the teardown-link paragraph */
html body .clipme-port.cm-dressed .cm-note{ margin:26px 0 0; max-width:70ch; font-size:14px; line-height:1.6; color:var(--cmd-muted); }
html body .clipme-port.cm-dressed .cm-timeline > .cm-note{ margin:2px 0 0; }
html body .clipme-port.cm-dressed .cm-more{ margin:18px 0 0; max-width:70ch; font-size:14px; line-height:1.6; color:var(--cmd-muted); }
html body .clipme-port.cm-dressed .cm-more a{
  color:var(--cmd-fg); text-decoration:none; border-bottom:1px solid rgba(230,58,85,.5);
  transition:color .16s ease, border-color .16s ease;
}
html body .clipme-port.cm-dressed .cm-more a:hover{ color:var(--cmd-red); border-color:var(--cmd-red); }
/* foot bar: disclaimer / nudge on the left, the red button on the right */
html body .clipme-port.cm-dressed .cm-foot{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px 24px;
  margin:28px 0 0; padding:20px 22px; border-radius:18px;
  background:var(--cmd-fill); border:1px solid var(--cmd-line); box-shadow:var(--cmd-shadow);
}
html body .clipme-port.cm-dressed .cm-foot p{ flex:1 1 300px; margin:0; max-width:none; font-size:15px; line-height:1.5; color:var(--cmd-soft); }
html body .clipme-port.cm-dressed .cm-foot .cm-fine{ font-size:12.5px; line-height:1.55; color:var(--cmd-dim); }

/* ---- 1. use cases: media-topped cards, 4-up ---- */
html body .clipme-port.cm-dressed.cm-usecases .cm-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:0; }
html body .clipme-port.cm-dressed.cm-usecases .cm-card{ padding:0; gap:0; overflow:hidden; }
/* /showcase wraps each card's content in one inner div — keep it a flex column so the stat strip still pins to the foot */
html body .clipme-port.cm-dressed.cm-usecases .cm-inner{ display:flex; flex-direction:column; flex:1 1 auto; padding:0; }
html body .clipme-port.cm-dressed .cm-media{
  position:relative; display:block; margin:0; aspect-ratio:4/3; overflow:hidden; background:var(--cmd-ground2);
}
html body .clipme-port.cm-dressed .cm-media::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(7,7,10,0) 38%, rgba(7,7,10,.86) 100%);
}
html body .clipme-port.cm-dressed .cm-media img{
  position:absolute; inset:0; display:block; width:100%; height:100%; max-width:none; max-height:none;
  margin:0; border-radius:0; object-fit:cover; transform:scale(1.02); filter:saturate(1.05);
  transition:transform .8s cubic-bezier(.22,1,.36,1);
}
html body .clipme-port.cm-dressed .cm-card:hover .cm-media img{ transform:scale(1.08); }
html body .clipme-port.cm-dressed .cm-media span{
  position:absolute; left:12px; bottom:12px; z-index:1; display:inline-flex; align-items:center; gap:7px;
  padding:5px 9px 5px 8px; border-radius:999px;
  font-family:var(--cmd-mono)!important; font-size:10px; letter-spacing:.18em; text-transform:uppercase; line-height:1;
  color:#fff; background:rgba(7,7,10,.62); border:1px solid rgba(255,255,255,.14);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
}
html body .clipme-port.cm-dressed .cm-media span::before{
  content:""; width:6px; height:6px; border-radius:50%; background:var(--cmd-red); box-shadow:0 0 10px var(--cmd-red);
}
html body .clipme-port.cm-dressed.cm-usecases .cm-card h3{
  margin:18px 20px 8px; font-family:var(--cmd-sans)!important; font-weight:700; font-size:20px;
  line-height:1.2; letter-spacing:-.02em; color:var(--cmd-fg);
}
html body .clipme-port.cm-dressed .cm-plat{
  display:inline-flex; align-self:flex-start; margin:0 20px 12px; padding:5px 10px; border-radius:999px; max-width:none;
  font-family:var(--cmd-mono)!important; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; line-height:1;
  color:var(--cmd-red); background:rgba(230,58,85,.08); border:1px solid rgba(230,58,85,.35);
}
html body .clipme-port.cm-dressed .cm-body{ margin:0 20px 18px; max-width:none; font-size:14.5px; line-height:1.6; color:var(--cmd-muted); }
/* the stat strip pins to the card's foot; §104's generic .cm-stat tile is undone here */
html body .clipme-port.cm-dressed .cm-stat{
  display:block; gap:0; margin:auto 0 0; padding:14px 20px 16px; border:0; border-top:1px solid var(--cmd-line); border-radius:0;
  background:linear-gradient(180deg, rgba(230,58,85,.07), rgba(230,58,85,0));
}
html body .clipme-port.cm-dressed .cm-stat p{
  display:flex; align-items:center; gap:10px; margin:0; max-width:none;
  font-family:var(--cmd-mono)!important; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; line-height:1.45; color:var(--cmd-red);
}
html body .clipme-port.cm-dressed .cm-stat p::before{ content:""; flex:none; width:3px; height:12px; border-radius:2px; background:var(--cmd-red); box-shadow:0 0 8px var(--cmd-red); }
html body .clipme-port.cm-dressed .cm-cta{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 14px; margin:36px 0 0; }
html body .clipme-port.cm-dressed .cm-cta p{ flex:1 1 240px; margin:0 0 0 6px; max-width:none; font-size:13.5px; line-height:1.5; color:var(--cmd-dim); }

/* ---- 2. autopilot: six glass cards, dot-led titles, no numbering ---- */
html body .clipme-port.cm-dressed.cm-autopilot .cm-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0; }
html body .clipme-port.cm-dressed.cm-autopilot .cm-card{ padding:0; gap:0; }
html body .clipme-port.cm-dressed .cm-inner{ padding:24px 22px 22px; border:0; background:none; border-radius:0; }
html body .clipme-port.cm-dressed.cm-autopilot .cm-inner h3{
  position:relative; margin:0 0 8px; padding-left:20px;
  font-family:var(--cmd-sans)!important; font-weight:700; font-size:18.5px; line-height:1.25; letter-spacing:-.02em; color:var(--cmd-fg);
}
html body .clipme-port.cm-dressed.cm-autopilot .cm-inner p{ margin:0; padding-left:20px; max-width:none; font-size:15px; line-height:1.6; color:var(--cmd-muted); }

/* ---- 3. side by side: a race track. Name column + three time columns (Live /
   Stream ends / Later) drawn as vertical hairlines on every cell; the ClipMe row is a
   red glass bar with its green pill in the Live column and a red streak sweeping its
   base; competitors sit dim with their pill in the Later column. ---- */
html body .clipme-port.cm-dressed .cm-timeline{ margin:0 0 28px; }
html body .clipme-port.cm-dressed .cm-rail{
  padding:16px 18px 0; border:1px solid var(--cmd-line); border-bottom:0; border-radius:18px 18px 0 0; background:var(--cmd-fill);
}
html body .clipme-port.cm-dressed .cm-rail-cols{ display:grid; grid-template-columns:150px repeat(3,minmax(0,1fr)); }
html body .clipme-port.cm-dressed .cm-rail-cols span{
  padding:0 12px 12px; font-family:var(--cmd-mono)!important; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; line-height:1; color:var(--cmd-dim);
}
html body .clipme-port.cm-dressed .cm-rail-cols span:first-child{ grid-column:2; color:var(--cmd-live); }
html body .clipme-port.cm-dressed .cm-rows{
  position:relative; margin:0 0 22px; padding:6px 18px 14px; border:1px solid var(--cmd-line); border-top:0;
  border-radius:0 0 18px 18px; background:var(--cmd-fill); box-shadow:var(--cmd-shadow);
}
html body .clipme-port.cm-dressed .cm-row{
  position:relative; display:grid; grid-template-columns:150px minmax(0,1fr); align-items:stretch;
  min-height:64px; border-top:1px solid var(--cmd-line-soft);
}
html body .clipme-port.cm-dressed .cm-rows > .cm-row:first-child{ border-top:0; }
html body .clipme-port.cm-dressed .cm-name{
  display:flex; align-items:center; padding:14px 14px 14px 0;
  font-family:var(--cmd-sans)!important; font-weight:700; font-size:15px; letter-spacing:-.01em; color:var(--cmd-muted);
}
html body .clipme-port.cm-dressed .cm-cell{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:center;
  background:linear-gradient(90deg, var(--cmd-line-soft) 1px, transparent 1px) 0 0/33.3334% 100% repeat-x;
}
html body .clipme-port.cm-dressed .cm-pill{ display:flex; align-items:center; padding:10px 12px; }
html body .clipme-port.cm-dressed .cm-pill span{
  display:inline-flex; align-items:center; gap:8px; padding:7px 12px; border-radius:999px;
  font-family:var(--cmd-mono)!important; font-size:11px; letter-spacing:.12em; text-transform:uppercase; line-height:1.35; text-align:center;
  color:var(--cmd-muted); background:var(--cmd-fill-hi); border:1px solid var(--cmd-line);
}
html body .clipme-port.cm-dressed .cm-row:not(.cm-row-us) .cm-pill{ grid-column:3; }
html body .clipme-port.cm-dressed .cm-row-us .cm-pill{ grid-column:1; }
html body .clipme-port.cm-dressed .cm-cap{ grid-column:2 / span 2; padding:0 14px; font-size:13px; line-height:1.45; color:var(--cmd-muted); }
html body .clipme-port.cm-dressed .cm-row-us{
  margin:6px 0; border-top:0; border-radius:12px; overflow:hidden;
  background:linear-gradient(90deg, rgba(230,58,85,.18), rgba(230,58,85,.05) 55%, rgba(230,58,85,0));
  box-shadow:inset 0 0 0 1px rgba(230,58,85,.38), 0 10px 40px -20px rgba(230,58,85,.6);
}
html body .clipme-port.cm-dressed .cm-row-us .cm-name{ padding-left:14px; color:var(--cmd-fg); }
html body .clipme-port.cm-dressed .cm-row-us .cm-name::before{
  content:""; flex:none; width:8px; height:8px; margin-right:10px; border-radius:50%;
  background:var(--cmd-live); box-shadow:0 0 10px var(--cmd-live); animation:clipmePmPulse 2.4s ease-out infinite;
}
html body .clipme-port.cm-dressed .cm-row-us .cm-name span{ font-weight:800; }
html body .clipme-port.cm-dressed .cm-row-us .cm-pill span{
  color:var(--cmd-live); border-color:rgba(69,224,106,.45); background:rgba(69,224,106,.1); box-shadow:0 0 24px -6px rgba(69,224,106,.6);
}
html body .clipme-port.cm-dressed .cm-row-us .cm-pill span::before{
  content:""; width:6px; height:6px; border-radius:50%; background:var(--cmd-live); animation:clipmePmPulse 2.4s ease-out infinite;
}
html body .clipme-port.cm-dressed .cm-row-us .cm-cap{ color:var(--cmd-soft); }
/* the sweep: a 38%-wide red streak on the row's base, left to right on a 3s loop */
html body .clipme-port.cm-dressed .cm-row-us::after{
  content:""; position:absolute; left:0; bottom:0; width:38%; height:1px; pointer-events:none;
  background:linear-gradient(90deg, transparent, var(--cmd-red) 50%, transparent); box-shadow:0 0 12px 1px rgba(230,58,85,.55);
  transform:translateX(-110%); animation:cmSweep 3s cubic-bezier(.4,0,.2,1) infinite;
}
@keyframes cmSweep{ 0%{transform:translateX(-110%)} 100%{transform:translateX(290%)} }
html body .clipme-port.cm-dressed .cm-trio{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0 0 18px; }
html body .clipme-port.cm-dressed .cm-title{
  position:relative; margin:0 0 6px; padding-left:18px;
  font-family:var(--cmd-sans)!important; font-weight:700; font-size:16.5px; letter-spacing:-.02em; line-height:1.3; color:var(--cmd-fg);
}
html body .clipme-port.cm-dressed .cm-trio .cm-card p{ margin:0; padding-left:18px; max-width:none; font-size:14.5px; line-height:1.55; color:var(--cmd-muted); }

/* ---- 4. ledger: mono terminal table on the left, changelog timeline on the right ---- */
html body .clipme-port.cm-dressed .cm-two{ display:grid; grid-template-columns:7fr 5fr; gap:18px; align-items:start; margin:0; }
html body .clipme-port.cm-dressed .cm-table{
  padding:0; overflow:hidden; border-radius:18px; border:1px solid var(--cmd-line); background:var(--cmd-fill); box-shadow:var(--cmd-shadow);
}
html body .clipme-port.cm-dressed .cm-thead, html body .clipme-port.cm-dressed .cm-tr{
  display:grid; grid-template-columns:110px minmax(0,1.4fr) 90px 92px; gap:10px; align-items:center;
}
html body .clipme-port.cm-dressed .cm-thead{ padding:14px 18px; border-bottom:1px solid var(--cmd-line); background:var(--cmd-ground2); }
html body .clipme-port.cm-dressed .cm-thead span{
  font-family:var(--cmd-mono)!important; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; line-height:1; color:var(--cmd-dim);
}
html body .clipme-port.cm-dressed .cm-thead span:nth-child(3), html body .clipme-port.cm-dressed .cm-count{ text-align:right; }
html body .clipme-port.cm-dressed .cm-thead span:nth-child(4){ text-align:right; }
html body .clipme-port.cm-dressed .cm-tbody{ list-style:none; margin:0; padding:0; }
html body .clipme-port.cm-dressed .cm-tr{
  padding:13px 18px; max-width:none; border-top:1px solid var(--cmd-line-soft);
  font-family:var(--cmd-mono)!important; font-size:13px; line-height:1.3; color:var(--cmd-soft);
}
html body .clipme-port.cm-dressed .cm-tr:first-child{ border-top:0; }
html body .clipme-port.cm-dressed .cm-tr:hover{ background:rgba(230,58,85,.06); }
html body .clipme-port.cm-dressed .cm-tr > span{ font-family:var(--cmd-mono)!important; min-width:0; }
html body .clipme-port.cm-dressed .cm-tr > span:first-child{ font-size:12px; letter-spacing:.02em; color:var(--cmd-dim); }
html body .clipme-port.cm-dressed .cm-tr > span:nth-child(2){ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--cmd-fg); }
html body .clipme-port.cm-dressed .cm-count{ font-weight:600; font-size:15px; color:var(--cmd-red); font-variant-numeric:tabular-nums; }
html body .clipme-port.cm-dressed .cm-tr > span:nth-child(4){ text-align:right; }
html body .clipme-port.cm-dressed .cm-mode{
  display:inline-flex; align-items:center; gap:6px; padding:4px 9px; border-radius:999px;
  font-size:10px; letter-spacing:.16em; text-transform:uppercase; line-height:1;
  color:var(--cmd-muted); background:var(--cmd-fill-hi); border:1px solid var(--cmd-line);
}
html body .clipme-port.cm-dressed .cm-mode::before{ content:""; width:5px; height:5px; border-radius:50%; background:currentColor; }
html body .clipme-port.cm-dressed .cm-mode-live{ color:var(--cmd-live); border-color:rgba(69,224,106,.45); background:rgba(69,224,106,.1); }
html body .clipme-port.cm-dressed .cm-mode-live::before{ box-shadow:0 0 8px var(--cmd-live); animation:clipmePmPulse 2.4s ease-out infinite; }
html body .clipme-port.cm-dressed .cm-log{
  padding:22px 22px 20px; border-radius:18px; border:1px solid var(--cmd-line); background:var(--cmd-fill); box-shadow:var(--cmd-shadow);
}
html body .clipme-port.cm-dressed .cm-log h3{
  margin:0 0 18px; font-family:var(--cmd-mono)!important; font-weight:500; font-size:11px; letter-spacing:.2em; text-transform:uppercase; line-height:1; color:var(--cmd-dim);
}
html body .clipme-port.cm-dressed .cm-log ul{ list-style:none; margin:0; padding:0 0 0 18px; display:grid; gap:16px; border-left:1px solid var(--cmd-line); }
html body .clipme-port.cm-dressed .cm-log li{ position:relative; max-width:none; }
html body .clipme-port.cm-dressed .cm-log li::before{
  content:""; position:absolute; left:-22px; top:6px; width:7px; height:7px; border-radius:50%;
  background:var(--cmd-red); box-shadow:0 0 0 3px var(--cmd-card-solid), 0 0 10px rgba(230,58,85,.8);
}
html body .clipme-port.cm-dressed .cm-log li p{ margin:0; max-width:none; font-size:14px; line-height:1.55; color:var(--cmd-soft); }
html body .clipme-port.cm-dressed .cm-date{ font-family:var(--cmd-mono)!important; font-size:11.5px; letter-spacing:.06em; color:var(--cmd-red); }
html body .clipme-port.cm-dressed .cm-log li p > span:nth-child(2){ margin:0 4px; color:var(--cmd-dim); }

/* ---- 5. integrations: sources → animated wires → glowing node → wires → destinations ---- */
html body .clipme-port.cm-dressed .cm-flow{ display:grid; grid-template-columns:minmax(0,1fr) minmax(230px,.9fr) minmax(0,1fr); gap:0; align-items:stretch; margin:0; }
html body .clipme-port.cm-dressed .cm-col{
  display:flex; flex-direction:column; gap:14px; padding:22px; border-radius:18px;
  border:1px solid var(--cmd-line); background:var(--cmd-fill); box-shadow:var(--cmd-shadow);
}
html body .clipme-port.cm-dressed .cm-label{ display:flex; flex-direction:column; gap:5px; }
html body .clipme-port.cm-dressed .cm-label span:first-child{
  font-family:var(--cmd-mono)!important; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; line-height:1; color:var(--cmd-red);
}
html body .clipme-port.cm-dressed .cm-label span:last-child{
  font-family:var(--cmd-sans)!important; font-weight:700; font-size:18px; letter-spacing:-.02em; line-height:1.2; color:var(--cmd-fg);
}
html body .clipme-port.cm-dressed .cm-chips{ display:flex; flex-direction:column; gap:8px; }
html body .clipme-port.cm-dressed .cm-chip{
  display:flex; align-items:center; gap:10px; padding:11px 14px; border-radius:12px;
  border:1px solid var(--cmd-line); background:var(--cmd-fill-hi);
  font-family:var(--cmd-sans)!important; font-weight:600; font-size:14.5px; color:var(--cmd-fg);
}
html body .clipme-port.cm-dressed .cm-chip:hover{ transform:translateX(3px); border-color:rgba(230,58,85,.5); }
/* brand dots: each platform's own colour, glowing */
html body .clipme-port.cm-dressed .cm-chip::before{ content:""; flex:none; width:8px; height:8px; border-radius:50%; background:var(--cmd-muted); box-shadow:0 0 10px rgba(155,155,166,.6); }
html body .clipme-port.cm-dressed .cm-chip.cm-kick::before{ background:#53fc18; box-shadow:0 0 10px rgba(83,252,24,.8); }
html body .clipme-port.cm-dressed .cm-chip.cm-twitch::before{ background:#a970ff; box-shadow:0 0 10px rgba(169,112,255,.8); }
html body .clipme-port.cm-dressed .cm-chip.cm-youtube::before, html body .clipme-port.cm-dressed .cm-chip.cm-shorts::before{ background:#ff3d3d; box-shadow:0 0 10px rgba(255,61,61,.8); }
html body .clipme-port.cm-dressed .cm-chip.cm-tiktok::before{ background:linear-gradient(135deg,#25f4ee,#ffffff 50%,#fe2c55); box-shadow:0 0 10px rgba(37,244,238,.7); }
html body .clipme-port.cm-dressed .cm-chip.cm-instagram::before{ background:linear-gradient(45deg,#f9ce34,#ee2a7b,#6228d7); box-shadow:0 0 10px rgba(238,42,123,.7); }
html body .clipme-port.cm-dressed .cm-col p{ margin:auto 0 0; max-width:none; font-size:13.5px; line-height:1.55; color:var(--cmd-muted); }
html body .clipme-port.cm-dressed .cm-core{ display:flex; align-items:center; justify-content:center; padding:0 4px; }
html body .clipme-port.cm-dressed .cm-core-in{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; width:100%; }
/* wires: dashed red, the dash pattern flowing toward the node on the left and away from it on the right */
html body .clipme-port.cm-dressed .cm-wire{
  height:2px; opacity:.6;
  background:repeating-linear-gradient(90deg, var(--cmd-red) 0 8px, transparent 8px 16px); background-size:16px 2px;
  animation:cmWire 1.1s linear infinite;
}
@keyframes cmWire{ to{ background-position:16px 0 } }
html body .clipme-port.cm-dressed .cm-node{
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:150px; height:150px; margin:0 8px; border-radius:50%;
  background:var(--cmd-node-bg); border:1px solid rgba(230,58,85,.55);
  box-shadow:0 0 0 8px rgba(230,58,85,.06), 0 0 60px -10px rgba(230,58,85,.7), inset 0 0 30px rgba(230,58,85,.15);
}
html body .clipme-port.cm-dressed .cm-node::before{
  content:""; position:absolute; inset:-14px; border-radius:50%; border:1px dashed rgba(230,58,85,.35); animation:cmSpin 24s linear infinite;
}
html body .clipme-port.cm-dressed .cm-node::after{
  content:""; position:absolute; inset:-1px; border-radius:50%; border:1px solid rgba(230,58,85,.7); animation:cmRing 2.6s ease-out infinite;
}
@keyframes cmSpin{ to{ transform:rotate(360deg) } }
@keyframes cmRing{ 0%{transform:scale(1); opacity:.8} 100%{transform:scale(1.35); opacity:0} }
html body .clipme-port.cm-dressed .cm-node span{ font-family:var(--cmd-sans)!important; font-weight:800; font-size:21px; letter-spacing:-.03em; line-height:1; color:var(--cmd-node-fg); }
html body .clipme-port.cm-dressed .cm-node p{
  margin:6px 0 0; max-width:none; text-align:center;
  font-family:var(--cmd-mono)!important; font-size:9.5px; letter-spacing:.18em; text-transform:uppercase; line-height:1.3; color:var(--cmd-red);
}

/* ---- 6. founding tiers: deadline box, three glass tiers, the hot one lifted and glowing ---- */
html body .clipme-port.cm-dressed .cm-deadline{
  display:grid; grid-template-columns:auto minmax(0,1fr); gap:8px 26px; align-items:center;
  margin:26px 0 0; padding:18px 22px; max-width:760px; border-radius:18px;
  border:1px solid rgba(230,58,85,.35); box-shadow:0 20px 60px -30px rgba(230,58,85,.5);
  background:linear-gradient(90deg, rgba(230,58,85,.14), rgba(230,58,85,.03) 55%, transparent);
}
html body .clipme-port.cm-dressed .cm-deadline > div{ display:flex; align-items:center; gap:10px; grid-column:1; }
html body .clipme-port.cm-dressed .cm-dot{
  display:inline-block; flex:none; width:8px; height:8px; border-radius:50%; background:var(--cmd-red);
  box-shadow:0 0 12px var(--cmd-red); animation:cmPulseRed 2s ease-out infinite;
}
@keyframes cmPulseRed{ 0%{box-shadow:0 0 0 0 rgba(230,58,85,.55)} 70%{box-shadow:0 0 0 8px rgba(230,58,85,0)} 100%{box-shadow:0 0 0 0 rgba(230,58,85,0)} }
html body .clipme-port.cm-dressed .cm-deadline > div span:last-child{
  font-family:var(--cmd-mono)!important; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; line-height:1; color:var(--cmd-red);
}
html body .clipme-port.cm-dressed .cm-deadline-date{
  grid-column:1; margin:0; max-width:none;
  font-family:var(--cmd-sans)!important; font-weight:800; font-size:clamp(24px,3vw,34px); letter-spacing:-.03em; line-height:1; color:var(--cmd-fg);
}
html body .clipme-port.cm-dressed .cm-deadline-body{ grid-column:2; grid-row:1 / span 2; margin:0; max-width:none; font-size:14px; line-height:1.55; color:var(--cmd-muted); }
html body .clipme-port.cm-dressed .cm-deadline-body span{ color:var(--cmd-fg); font-weight:600; }
html body .clipme-port.cm-dressed .cm-tiers{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:stretch; margin:0; padding-top:14px; }
html body .clipme-port.cm-dressed .cm-tier{ gap:10px; padding:26px 24px 24px; }
html body .clipme-port.cm-dressed .cm-tier:hover{ transform:translateY(-4px); border-color:rgba(230,58,85,.45); }
html body .clipme-port.cm-dressed .cm-tier-hot{
  transform:translateY(-8px); border-color:rgba(230,58,85,.7);
  background:linear-gradient(180deg, rgba(230,58,85,.12), var(--cmd-fill) 45%);
  box-shadow:var(--cmd-shadow), 0 0 0 1px rgba(230,58,85,.35), 0 0 70px -20px rgba(230,58,85,.75);
}
html body .clipme-port.cm-dressed .cm-tier-hot:hover{ transform:translateY(-12px); border-color:rgba(230,58,85,.9); }
html body .clipme-port.cm-dressed .cm-badge{
  position:absolute; top:-13px; left:24px; display:inline-flex; align-items:center; gap:7px; margin:0;
  padding:6px 12px; border-radius:999px; background:var(--cmd-red); color:#fff;
  font-family:var(--cmd-mono)!important; font-size:10px; letter-spacing:.18em; text-transform:uppercase; line-height:1;
  box-shadow:0 8px 24px -6px rgba(230,58,85,.85);
}
html body .clipme-port.cm-dressed .cm-badge::before{ content:""; width:5px; height:5px; border-radius:50%; background:#fff; box-shadow:0 0 8px #fff; }
html body .clipme-port.cm-dressed .cm-tier h3{ margin:0; font-family:var(--cmd-sans)!important; font-weight:700; font-size:20px; letter-spacing:-.02em; line-height:1.2; color:var(--cmd-fg); }
html body .clipme-port.cm-dressed .cm-tier > p{ margin:0; max-width:none; font-size:14px; line-height:1.5; color:var(--cmd-muted); }
html body .clipme-port.cm-dressed .cm-price{ display:flex; align-items:baseline; gap:8px; margin:12px 0 6px; }
html body .clipme-port.cm-dressed .cm-price span:first-child{
  font-family:var(--cmd-sans)!important; font-weight:800; font-size:44px; letter-spacing:-.04em; line-height:1; color:var(--cmd-fg);
}
html body .clipme-port.cm-dressed .cm-price span:last-child{
  font-family:var(--cmd-mono)!important; font-size:11px; letter-spacing:.14em; text-transform:uppercase; line-height:1; color:var(--cmd-dim);
}
html body .clipme-port.cm-dressed .cm-tier .cm-btn{ width:100%; margin:6px 0 10px; }
html body .clipme-port.cm-dressed .cm-feats{ list-style:none; margin:0; padding:0; display:grid; gap:9px; }
html body .clipme-port.cm-dressed .cm-feats li{ position:relative; padding-left:24px; max-width:none; font-size:14px; line-height:1.5; color:var(--cmd-soft); }
html body .clipme-port.cm-dressed .cm-feats li::before{
  content:"\2713"; position:absolute; left:0; top:0; font-family:var(--cmd-mono)!important; font-size:13px; line-height:1.5; color:var(--cmd-red);
}

/* ---- 7. FAQ: sticky head on the left, hairline rows on the right, a mono "+" that
   turns into "×" when open. §101's chevron ::after is fully re-declared. ---- */
html body .clipme-port.cm-dressed.cm-faq .cm-s{ display:grid; grid-template-columns:5fr 7fr; gap:32px 56px; align-items:start; }
html body .clipme-port.cm-dressed.cm-faq .cm-head{ position:sticky; top:96px; margin:0; }
html body .clipme-port.cm-dressed .cm-faq-list{ grid-column:2; border-top:1px solid var(--cmd-line); }
html body .clipme-port.cm-dressed.cm-faq .cm-foot{ grid-column:2; }
html body .clipme-port.cm-dressed .cm-q{ padding:0; max-width:none; border-bottom:1px solid var(--cmd-line); }
html body .clipme-port.cm-dressed .cm-q:hover{ background:linear-gradient(90deg, rgba(230,58,85,.05), transparent 60%); }
html body .clipme-port.cm-dressed .cm-q > summary{
  position:relative; cursor:pointer; list-style:none; padding:20px 48px 20px 0;
  font-family:var(--cmd-sans)!important; font-weight:600; font-size:17px; letter-spacing:-.015em; line-height:1.35; color:var(--cmd-fg);
}
html body .clipme-port.cm-dressed .cm-q > summary::-webkit-details-marker{ display:none; }
html body .clipme-port.cm-dressed .cm-q > summary:hover{ color:var(--cmd-red); }
html body .clipme-port.cm-dressed .cm-q > summary::after{
  content:"+"; position:absolute; right:2px; top:50%; width:28px; height:28px; margin-top:-14px;
  display:flex; align-items:center; justify-content:center; border-radius:50%;
  border:1px solid var(--cmd-line); background:var(--cmd-fill); color:var(--cmd-muted);
  font-family:var(--cmd-mono)!important; font-size:16px; line-height:1; transform:rotate(0);
  transition:transform .28s cubic-bezier(.22,1,.36,1), background .2s ease, border-color .2s ease, color .2s ease;
}
html body .clipme-port.cm-dressed .cm-q[open] > summary::after{
  transform:rotate(45deg); margin-top:-14px; background:var(--cmd-red); border-color:var(--cmd-red); color:#fff;
}
html body .clipme-port.cm-dressed .cm-q > p{
  margin:0; padding:0 48px 22px 0; max-width:66ch; font-size:15px; line-height:1.65; color:var(--cmd-muted);
  animation:cmAnswer .35s cubic-bezier(.22,1,.36,1) both;
}
@keyframes cmAnswer{ from{opacity:0; transform:translateY(-6px)} to{opacity:1; transform:none} }

/* ---- responsive: 1280 is the design width; everything folds to one column by 375
   with no horizontal scroll ---- */
@media (max-width:1100px){
  html body .clipme-port.cm-dressed.cm-usecases .cm-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:980px){
  html body .clipme-port.cm-dressed.cm-autopilot .cm-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  html body .clipme-port.cm-dressed .cm-trio{ grid-template-columns:1fr; }
  html body .clipme-port.cm-dressed .cm-two{ grid-template-columns:1fr; }
  html body .clipme-port.cm-dressed .cm-tiers{ grid-template-columns:1fr; max-width:560px; margin:0 auto; padding-top:16px; }
  html body .clipme-port.cm-dressed .cm-tier-hot, html body .clipme-port.cm-dressed .cm-tier-hot:hover{ transform:none; }
  html body .clipme-port.cm-dressed.cm-faq .cm-s{ grid-template-columns:1fr; gap:0; }
  html body .clipme-port.cm-dressed.cm-faq .cm-head{ position:static; margin:0 0 28px; }
  html body .clipme-port.cm-dressed .cm-faq-list, html body .clipme-port.cm-dressed.cm-faq .cm-foot{ grid-column:1; }
}
@media (max-width:900px){
  /* the flow goes vertical: column, wire down, node, wire down, column */
  html body .clipme-port.cm-dressed .cm-flow{ grid-template-columns:1fr; }
  html body .clipme-port.cm-dressed .cm-core{ padding:6px 0; }
  html body .clipme-port.cm-dressed .cm-core-in{ grid-template-columns:1fr; justify-items:center; }
  html body .clipme-port.cm-dressed .cm-wire{
    width:2px; height:36px; background:repeating-linear-gradient(180deg, var(--cmd-red) 0 8px, transparent 8px 16px); background-size:2px 16px;
    animation:cmWireV 1.1s linear infinite;
  }
  html body .clipme-port.cm-dressed .cm-node{ margin:10px 0; }
}
@keyframes cmWireV{ to{ background-position:0 16px } }
@media (max-width:700px){
  /* the race track collapses: labels become a legend, each row is name on top, pill + caption below */
  html body .clipme-port.cm-dressed .cm-rail-cols{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  html body .clipme-port.cm-dressed .cm-rail-cols span{ padding:0 0 12px; }
  html body .clipme-port.cm-dressed .cm-rail-cols span:first-child{ grid-column:auto; }
  html body .clipme-port.cm-dressed .cm-row{ grid-template-columns:1fr; min-height:0; }
  html body .clipme-port.cm-dressed .cm-name{ padding:12px 0 4px; }
  html body .clipme-port.cm-dressed .cm-row-us .cm-name{ padding-left:12px; }
  html body .clipme-port.cm-dressed .cm-cell{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; padding:0 0 12px; background:none; }
  html body .clipme-port.cm-dressed .cm-pill{ padding:2px 0 2px 12px; }
  html body .clipme-port.cm-dressed .cm-cap{ flex-basis:100%; padding:0 12px; }
}
@media (max-width:640px){
  html body .clipme-port.cm-dressed{ padding:52px 16px 56px; }
  html body .clipme-port.cm-dressed .cm-head{ margin-bottom:28px; }
  html body .clipme-port.cm-dressed.cm-usecases .cm-grid, html body .clipme-port.cm-dressed.cm-autopilot .cm-grid{ grid-template-columns:1fr; }
  html body .clipme-port.cm-dressed .cm-thead, html body .clipme-port.cm-dressed .cm-tr{ grid-template-columns:84px minmax(0,1fr) 44px 66px; gap:8px; padding-left:12px; padding-right:12px; }
  html body .clipme-port.cm-dressed .cm-thead span{ letter-spacing:.1em; font-size:9.5px; }
  html body .clipme-port.cm-dressed .cm-tr{ font-size:12.5px; }
  html body .clipme-port.cm-dressed .cm-mode{ letter-spacing:.1em; padding:4px 7px; }
  html body .clipme-port.cm-dressed .cm-deadline{ grid-template-columns:1fr; gap:10px; padding:16px 18px; }
  html body .clipme-port.cm-dressed .cm-deadline-body{ grid-column:1; grid-row:auto; }
  html body .clipme-port.cm-dressed .cm-foot{ padding:18px; }
  html body .clipme-port.cm-dressed .cm-foot .cm-btn{ width:100%; }
  html body .clipme-port.cm-dressed .cm-cta .cm-btn{ flex:1 1 auto; }
  html body .clipme-port.cm-dressed .cm-q > summary{ padding:16px 44px 16px 0; font-size:16px; }
  html body .clipme-port.cm-dressed .cm-q > p{ padding-right:24px; }
}
/* motion off: kills every animation and transition declared above, the sweep, the
   wires, the ring, the reveal (the JS also skips the reveal pass entirely) */
@media (prefers-reduced-motion:reduce){
  html body .clipme-port.cm-dressed *, html body .clipme-port.cm-dressed *::before, html body .clipme-port.cm-dressed *::after{
    animation:none!important; transition:none!important;
  }
  html body .clipme-port.cm-dressed .cm-tier-hot{ transform:none; }
}

/* ---- 112. Wide live panel: desktop and tablet only -------------------------------
   Owner call 2026-09-18: on phones the panel stacked a stage, a chat column and two
   output strips under each other and told the same story the phone mock in the next
   section already tells. Removed below 761px; the section's copy stays. ---- */
@media (max-width:760px){
  html body .clipme-wp-host{ display:none!important; }
}

/* ==== part: 10-paste-link.css ==== */
/* ---- Paste-your-link routing (parts/10-paste-link.js) ------------------------------ */
html body .clipme-hp{ position:absolute; left:-9999px; width:0; height:0; opacity:0; }
html body .clipme-pg-wrap form input.is-prefilled{ border-color:#e63a55!important; box-shadow:0 0 0 3px rgba(230,58,85,.18); }
html body .clipme-pl-status{
  margin:10px 0 0; min-height:1.2em; font-family:"JetBrains Mono",ui-monospace,monospace;
  font-size:12.5px; line-height:1.5; color:#9b9ba6;
}
html body .clipme-pl-status.is-err{ color:#ff5c73; }
html body .clipme-pl-status.is-busy{ color:#9b9ba6; }
html body .clipme-pl-status:empty{ display:none; }
html body .clipme-pg-wrap form button.is-busy{ opacity:.6; cursor:progress; }
html body .clipme-pl-done{
  padding:22px 24px; border-radius:18px; background:rgba(255,255,255,.035);
  border:1px solid rgba(69,224,106,.35); box-shadow:0 30px 60px -40px rgba(0,0,0,.8);
}
html body .clipme-pl-done-h{ margin:0 0 8px; font-family:"Inter",system-ui,sans-serif; font-weight:800; font-size:22px; letter-spacing:-.02em; color:#fff; display:flex; align-items:center; gap:10px; }
html body .clipme-pl-done-h i{ width:9px; height:9px; border-radius:50%; background:#45e06a; box-shadow:0 0 12px #45e06a; display:inline-block; }
html body .clipme-pl-done-p{ margin:0; font-size:16px; color:#b9b9c4; }
html body .clipme-pl-done-p b{ color:#fff; }
html body .clipme-pl-ref{ margin:12px 0 0; font-size:14px; color:#9b9ba6; }
html body .clipme-pl-ref code{ font-family:"JetBrains Mono",ui-monospace,monospace; color:#ff5c73; word-break:break-all; }
html.light body .clipme-pl-done{ background:#fff; border-color:rgba(47,158,88,.4); }
html.light body .clipme-pl-done-h{ color:#16161a; }
html.light body .clipme-pl-done-p{ color:#4b4b55; }
html.light body .clipme-pl-done-p b{ color:#16161a; }

/* launch page form */
html body .clipme-req{ display:flex; flex-direction:column; gap:8px; max-width:560px; margin:22px 0 26px; }
html body .clipme-req-label{ font-family:"JetBrains Mono",ui-monospace,monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#9b9ba6; margin-top:6px; }
html body .clipme-req input{ width:100%; box-sizing:border-box; border-radius:14px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.04); color:#fff; padding:15px 16px; font-size:16px; outline:none; transition:border-color .16s, box-shadow .16s; }
html body .clipme-req input:focus{ border-color:#e63a55; box-shadow:0 0 0 3px rgba(230,58,85,.2); }
html body .clipme-req input::placeholder{ color:#6b6b76; }
html body .clipme-req button[type="submit"]{ margin-top:10px; height:52px; border:0; border-radius:999px; background:#e63a55; color:#fff; font-family:"Inter",system-ui,sans-serif; font-weight:700; font-size:16px; cursor:pointer; box-shadow:0 14px 34px -14px rgba(230,58,85,.8); transition:transform .18s, box-shadow .18s; }
html body .clipme-req button[type="submit"]:hover{ transform:translateY(-2px); box-shadow:0 20px 40px -14px rgba(230,58,85,.9); }
html body .clipme-req .clipme-pg-note{ margin:8px 0 0; }
html.light body .clipme-req input{ background:#fff; border-color:rgba(0,0,0,.14); color:#16161a; }
html.light body .clipme-req-label{ color:#5f5f6a; }

/* ==== part: 40-money-polish.css ==== */
/* ---- Money-page polish (2026-09-18) --------------------------------------------------
   1. FAQ accordions on the money pages reuse summary.clipme-step-t, which the global
      accordion rule excludes (it is also the numbered-step title). Inside <details> it
      is a question, so it gets the same chevron, hairline and hover as every other FAQ.
   2. h3.clipme-pg-h2 (the "Compare / Guides" sub-labels) inherited a 40px bottom pad
      meant for section headings, which floated the pill rows away from their labels. */
html body details > summary.clipme-step-t{
  cursor:pointer; list-style:none; position:relative; margin:0;
  padding:16px 44px 16px 0; line-height:1.35; font-size:18px;
  border-top:1px solid rgba(255,255,255,.09);
  transition:color .16s ease;
}
html body details > summary.clipme-step-t::-webkit-details-marker{ display:none; }
html body details > summary.clipme-step-t::after{
  content:""; position:absolute; right:8px; top:50%; width:10px; height:10px; margin-top:-7px;
  border-right:2px solid #9b9ba6; border-bottom:2px solid #9b9ba6; transform:rotate(45deg);
  transition:transform .18s ease, border-color .18s ease;
}
html body details[open] > summary.clipme-step-t::after{ transform:rotate(-135deg); margin-top:-2px; border-color:#e63a55; }
html body details > summary.clipme-step-t:hover{ color:#ff5a73; }
html body details > summary.clipme-step-t + p.clipme-body-p{ margin:2px 0 18px; padding-right:44px; }
html body .clipme-pg-wrap details:last-of-type{ border-bottom:1px solid rgba(255,255,255,.09); }
html.light body details > summary.clipme-step-t,
html.light body .clipme-pg-wrap details:last-of-type{ border-color:rgba(0,0,0,.1); }
html body h3.clipme-pg-h2{ padding:0!important; margin:26px 0 10px!important; font-size:12px; letter-spacing:.14em; }
html body .clipme-pg-wrap > section > h2.clipme-pg-h2:first-child{ margin-top:44px; }
@media (prefers-reduced-motion:reduce){ html body details > summary.clipme-step-t, html body details > summary.clipme-step-t::after{ transition:none; } }

/* ledger on phones: channel + mode on line one, date + count on line two */
@media (max-width:700px){
  html body .cm-dressed .cm-thead{ display:none!important; }
  html body .cm-dressed .cm-tr{ display:grid!important; grid-template-columns:minmax(0,1fr) auto!important; grid-template-areas:"chan mode" "date count"!important; row-gap:4px; column-gap:12px; padding:12px 4px; align-items:center; }
  html body .cm-dressed .cm-tr > span:nth-child(1){ grid-area:date; font-family:"JetBrains Mono",ui-monospace,monospace; font-size:12px; color:#9b9ba6; }
  html body .cm-dressed .cm-tr > span:nth-child(2){ grid-area:chan; font-weight:700; font-size:16px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  html body .cm-dressed .cm-tr > span:nth-child(3){ grid-area:count; justify-self:end; }
  html body .cm-dressed .cm-tr > span:nth-child(3)::after{ content:" clips"; font-family:"JetBrains Mono",ui-monospace,monospace; font-size:11px; color:#9b9ba6; }
  html body .cm-dressed .cm-tr > span:nth-child(4){ grid-area:mode; justify-self:end; }
}
/* platform pills under the hero visual: the 14px brand marks are dark artwork on a dark
   pill and read as a dash; render them as light marks (their own colours in light mode) */
html body .clipme-pg-plats img{ filter:brightness(0) invert(1); opacity:.82; }
html.light body .clipme-pg-plats img{ filter:none; opacity:1; }
/* integrations core on phones: a pill, not a 300px ring */
@media (max-width:900px){
  html body .cm-dressed .cm-core-in{ display:flex; flex-direction:column; align-items:center; gap:8px; padding:6px 0; }
  html body .cm-dressed .cm-core-in .cm-wire{ width:2px!important; height:22px!important; min-height:0!important; margin:0!important; }
  html body .cm-dressed .cm-node{ width:auto!important; height:auto!important; min-width:0!important; min-height:0!important; aspect-ratio:auto!important; border-radius:999px!important; padding:12px 22px!important; display:inline-flex!important; flex-direction:row!important; align-items:center; gap:12px; box-shadow:0 0 0 1px rgba(230,58,85,.35), 0 0 30px rgba(230,58,85,.25)!important; }
  html body .cm-dressed .cm-node::before, html body .cm-dressed .cm-node::after{ display:none!important; }
  html body .cm-dressed .cm-node span{ font-size:17px!important; }
  html body .cm-dressed .cm-node p{ margin:0!important; font-size:10px!important; letter-spacing:.14em!important; white-space:nowrap; }
}
/* ---- Founding block, styled like the waitlist email card (src/lib/emails.js) ------ */
html body .cm-dressed .cm-deadline{ background:#14141b!important; border:1px solid #2a2a35!important; border-radius:14px!important; padding:20px 22px!important; box-shadow:none!important; }
html body .cm-dressed .cm-deadline > div{ display:inline-flex; align-items:center; gap:8px; background:rgba(230,58,85,.12); border:1px solid rgba(230,58,85,.4); color:#ff5a73!important; font-family:"Inter",system-ui,sans-serif; font-weight:700; font-size:13px; letter-spacing:0; text-transform:none; border-radius:20px; padding:5px 12px; margin:0 0 14px; }
html body .cm-dressed .cm-deadline > div .cm-dot{ width:8px; height:8px; border-radius:50%; background:#e63a55; box-shadow:0 0 10px #e63a55; }
html body .cm-dressed .cm-deadline > div span:not(.cm-dot){ font-family:"Inter",system-ui,sans-serif!important; font-size:13px!important; letter-spacing:0!important; text-transform:none!important; color:#ff5a73!important; }
html body .cm-dressed .cm-deadline-date{ font-family:"Inter",system-ui,sans-serif; font-weight:800; font-size:clamp(26px,4vw,34px); letter-spacing:-.03em; color:#fff!important; margin:0 0 8px!important; }
html body .cm-dressed .cm-deadline-body{ color:#9b9ba6!important; line-height:1.6; margin:0!important; font-size:15px; }
html body .cm-dressed .cm-deadline-body b, html body .cm-dressed .cm-deadline-body span{ color:#fff!important; font-weight:600; }
html body .cm-dressed .cm-tier{ background:#0e0e12!important; border:1px solid #262630!important; border-radius:16px!important; padding:24px!important; box-shadow:none!important; display:flex; flex-direction:column; gap:10px; }
html body .cm-dressed .cm-tier.cm-tier-hot{ border-color:rgba(230,58,85,.55)!important; box-shadow:0 0 0 1px rgba(230,58,85,.25), 0 30px 60px -40px rgba(230,58,85,.6)!important; }
html body .cm-dressed .cm-tier .cm-badge{ align-self:flex-start; background:rgba(230,58,85,.12); border:1px solid rgba(230,58,85,.4); color:#ff5a73!important; font-weight:700; font-size:12px; border-radius:20px; padding:4px 11px; letter-spacing:0; text-transform:none; margin:0 0 2px; }
html body .cm-dressed .cm-tier h3{ padding:0!important; margin:0!important; font-family:"Inter",system-ui,sans-serif; font-weight:800; font-size:22px; letter-spacing:-.03em; color:#fff!important; }
html body .cm-dressed .cm-tier > p{ color:#9b9ba6!important; margin:0!important; font-size:15px; line-height:1.55; }
html body .cm-dressed .cm-price{ display:flex; align-items:baseline; gap:8px; margin:6px 0 4px!important; }
html body .cm-dressed .cm-price span:first-child{ font-family:"Inter",system-ui,sans-serif; font-weight:800; font-size:44px; letter-spacing:-.04em; color:#fff!important; line-height:1; }
html body .cm-dressed .cm-price span:last-child{ font-family:"JetBrains Mono",ui-monospace,monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#6b6b76!important; }
html body .cm-dressed .cm-tier .cm-btn{ display:inline-flex; align-items:center; justify-content:center; height:46px; padding:0 20px; border-radius:12px; font-weight:700; font-size:15px; text-decoration:none; color:#fff!important; background:transparent; border:1px solid #3a3a45; margin:4px 0 8px; transition:transform .16s, box-shadow .16s, border-color .16s; }
html body .cm-dressed .cm-tier.cm-tier-hot .cm-btn{ background:#e63a55; border-color:#e63a55; box-shadow:0 14px 30px -14px rgba(230,58,85,.8); }
html body .cm-dressed .cm-tier .cm-btn:hover{ transform:translateY(-1px); border-color:#ff5a73; }
html body .cm-dressed .cm-feats{ list-style:none; margin:0!important; padding:0!important; display:flex; flex-direction:column; gap:8px; }
html body .cm-dressed .cm-feats li{ margin:0!important; padding:10px 12px!important; border-radius:10px; background:#131316; border:1px solid #262630; font-size:14px; color:#e5e5ea!important; opacity:1!important; display:flex; align-items:center; gap:10px; }
html body .cm-dressed .cm-feats li::before{ content:"\2713"; color:#ff5a73; font-family:"JetBrains Mono",ui-monospace,monospace; font-weight:700; position:static; }
html.light body .cm-dressed .cm-deadline{ background:#fff!important; border-color:rgba(0,0,0,.1)!important; }
html.light body .cm-dressed .cm-deadline-date, html.light body .cm-dressed .cm-tier h3, html.light body .cm-dressed .cm-price span:first-child{ color:#16161a!important; }
html.light body .cm-dressed .cm-tier{ background:#fff!important; border-color:rgba(0,0,0,.1)!important; }
html.light body .cm-dressed .cm-feats li{ background:#f6f6f8; border-color:rgba(0,0,0,.08); color:#16161a!important; }
html.light body .cm-dressed .cm-tier .cm-btn{ color:#16161a!important; border-color:rgba(0,0,0,.2); }
html.light body .cm-dressed .cm-tier.cm-tier-hot .cm-btn{ color:#fff!important; }

/* ==== part: 50-light-nav.css ==== */
/* ---- Light theme: the navbar stays a light surface too ------------------------------
   The wordmark flips to near-black under html.light, but the Webflow navbar kept its
   dark ground, so the logo vanished into the bar on every page in light mode. */
html.light body .a-ca_navbar,
html.light body .a-ca_navbar_component,
html.light body .a-ca_navbar_container{ background:rgba(255,255,255,.92)!important; }
html.light body .a-ca_navbar{ border-bottom:1px solid rgba(0,0,0,.08); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
html.light body .a-ca_navbar_link,
html.light body .a-ca_navbar_dropdown_toggle,
html.light body .a-ca_navbar_dropdown_toggle *,
html.light body .a-ca_navbar_menu_button,
html.light body .a-ca_navbar_menu_button *{ color:#16161a!important; }
html.light body .a-ca_navbar_dropdown_toggle_arrow{ color:#16161a!important; }
html.light body .a-ca_navbar_dropdown_list,
html.light body .a-ca_navbar_menu{ background:#fff!important; color:#16161a!important; }
html.light body .a-ca_navbar_dropdown_list *:not(a):not(button){ color:#16161a; }
html.light body .a-ca_navbar_dropdown_link{ color:#16161a!important; }
html.light body .a-ca_navbar .a-ca_button.is-outline{ color:#16161a!important; border-color:rgba(0,0,0,.2)!important; }

/* ==== part: 60-section-life.css ==== */
/* ---- Section life (parts/60-section-life.js) ---------------------------------------- */
/* use-case cards: the fan replaces the still; the card stacks cleanly on every width */
html body .clipme-port.cm-dressed .cm-usecases .cm-card,
html body .clipme-port.cm-dressed.cm-usecases .cm-card{ display:flex!important; flex-direction:column; gap:10px; grid-template-columns:none!important; }
html body .cm-dressed .cm-media{ aspect-ratio:16/10; overflow:hidden; border-radius:14px; background:#0c0d12; position:relative; display:block; }
html body .cm-dressed .cm-media img{ max-width:none!important; width:100%!important; height:100%!important; object-fit:cover; margin:0!important; border-radius:0; display:block; }
html body .cm-dressed .cm-media .clipme-fan.is-card{
  margin:0; padding:8% 6% 6%; min-height:0; height:100%; border:0; border-radius:0;
  background:radial-gradient(120% 90% at 50% 0%, #17171d 0%, #0a0a0d 70%);
}
html body .cm-dressed .cm-media .clipme-fan.is-card .clipme-fan-t{ box-shadow:0 14px 28px rgba(0,0,0,.55); border-radius:10px; }
html body .cm-dressed .cm-media .clipme-fan.is-card .clipme-fan-badge{ font-size:11px; padding:5px 10px; bottom:6px; }
html body .cm-dressed .cm-card h3{ padding:0!important; margin:6px 0 0!important; }
html body .cm-dressed .cm-usecases .cm-plat, html body .cm-dressed.cm-usecases .cm-plat{ margin:0; }
/* autopilot cards: the claim draws itself above the title */
html body .cm-dressed .clipme-ap-viz.is-inline{ height:74px; margin:0 0 14px; border-radius:10px; overflow:hidden; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.07); display:flex; align-items:center; justify-content:center; padding:10px 12px; }
html body .clipme-ap-reel{ display:flex; align-items:flex-end; gap:5px; height:100%; width:100%; }
html body .clipme-ap-reel i{ flex:1; height:38%; border-radius:3px; background:rgba(255,255,255,.14); animation:clipmeReel 3.6s ease-in-out infinite; }
html body .clipme-ap-reel i:nth-child(2){ animation-delay:.25s } html body .clipme-ap-reel i:nth-child(3){ animation-delay:.5s }
html body .clipme-ap-reel i:nth-child(4){ animation-delay:.75s } html body .clipme-ap-reel i:nth-child(5){ animation-delay:1s }
html body .clipme-ap-reel b{ font-family:"JetBrains Mono",ui-monospace,monospace; font-size:11px; color:#ff5c73; margin-left:6px; }
@keyframes clipmeReel{ 0%,20%{ height:38%; background:rgba(255,255,255,.14) } 45%,70%{ height:92%; background:#e63a55 } 100%{ height:38%; background:rgba(255,255,255,.14) } }
html body .clipme-ap-spon{ display:flex; flex-direction:column; gap:6px; width:100%; }
html body .clipme-ap-spon .w{ font-size:12px; color:#9b9ba6; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
html body .clipme-ap-spon .tag{ align-self:flex-start; font-family:"JetBrains Mono",ui-monospace,monospace; font-size:10px; letter-spacing:.06em; padding:4px 8px; border-radius:6px; background:rgba(230,58,85,.16); color:#ff5c73; animation:clipmePmPulse 2.4s ease-out infinite; }
html.light body .cm-dressed .clipme-ap-viz.is-inline{ background:rgba(0,0,0,.03); border-color:rgba(0,0,0,.08); }
@media (prefers-reduced-motion:reduce){ html body .clipme-ap-reel i, html body .clipme-ap-spon .tag{ animation:none } }
/* autopilot cards: visual box at left, claim at right (the clipme.com layout), compact */
html body .cm-dressed .cm-autopilot .cm-card > .cm-inner, html body .cm-dressed.cm-autopilot .cm-card > .cm-inner{
  display:grid!important; grid-template-columns:96px minmax(0,1fr); grid-template-rows:auto auto; column-gap:16px; row-gap:4px; align-items:start;
}
html body .cm-dressed .cm-autopilot .cm-card .clipme-ap-viz.is-inline, html body .cm-dressed.cm-autopilot .cm-card .clipme-ap-viz.is-inline{
  grid-row:1 / 3; grid-column:1; width:96px; height:68px; margin:0; padding:8px; border-radius:10px;
}
html body .cm-dressed .cm-autopilot .cm-card[data-life] h3, html body .cm-dressed.cm-autopilot .cm-card[data-life] h3{ grid-column:2; margin:0!important; padding:0!important; font-size:18px; }
html body .cm-dressed .cm-autopilot .cm-card[data-life] h3::before, html body .cm-dressed.cm-autopilot .cm-card[data-life] h3::before{ display:none; }
html body .cm-dressed .cm-autopilot .cm-card[data-life] p, html body .cm-dressed.cm-autopilot .cm-card[data-life] p{ grid-column:2; margin:0; }
html body .cm-dressed .clipme-ap-viz.is-inline .clipme-ap-trace{ height:100%; }
@media (max-width:700px){
  html body .cm-dressed .cm-autopilot .cm-card > .cm-inner, html body .cm-dressed.cm-autopilot .cm-card > .cm-inner{ grid-template-columns:84px minmax(0,1fr); column-gap:14px; }
  html body .cm-dressed .cm-autopilot .cm-card .clipme-ap-viz.is-inline, html body .cm-dressed.cm-autopilot .cm-card .clipme-ap-viz.is-inline{ width:84px; height:60px; }
}
/* card fan: badge centred, media edge-to-edge, text inset */
html body .cm-dressed .cm-media .clipme-fan.is-card .clipme-fan-badge{ left:50%!important; right:auto!important; transform:translateX(-50%)!important; white-space:nowrap; max-width:92%; overflow:hidden; text-overflow:ellipsis; }
html body .clipme-port.cm-dressed .cm-usecases .cm-card, html body .clipme-port.cm-dressed.cm-usecases .cm-card{ padding:0 0 16px!important; overflow:hidden; }
html body .clipme-port.cm-dressed.cm-usecases .cm-card > h3, html body .clipme-port.cm-dressed.cm-usecases .cm-card > .cm-plat,
html body .clipme-port.cm-dressed.cm-usecases .cm-card > .cm-body, html body .clipme-port.cm-dressed.cm-usecases .cm-card > .cm-stat{ margin-left:16px!important; margin-right:16px!important; }
html body .clipme-port.cm-dressed.cm-usecases .cm-card > .cm-media{ border-radius:0; }
html body .clipme-port.cm-dressed.cm-usecases .cm-card > .cm-plat{ align-self:flex-start; }
/* autopilot mini visuals inside the small box */
html body .cm-dressed .clipme-ap-viz.is-inline .clipme-ap-lang{ font-size:9px; letter-spacing:.02em; white-space:nowrap; }
html body .cm-dressed .clipme-ap-viz.is-inline .clipme-ap-post{ gap:6px; }
html body .cm-dressed .clipme-ap-viz.is-inline .clipme-ap-post img{ width:16px; height:16px; opacity:.9; animation:clipme-ap-post 2.9s ease-in-out infinite; }

/* sparkline icons (clipme.com's icon set, drawn + animated) */
html body .cm-dressed .clipme-ap-viz.is-spark{ padding:6px 8px; background:#0f0f13; border-color:rgba(255,255,255,.08); }
html body .clipme-ap-viz.is-spark svg{ width:100%; height:100%; display:block; overflow:visible; }
html body .clipme-ap-viz.is-spark .ln{ fill:none; stroke:rgba(230,58,85,.72); stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:320; stroke-dashoffset:320; }
html body .clipme-ap-viz.is-spark.is-in .ln{ animation:clipmeSpark 1.5s cubic-bezier(.22,1,.36,1) forwards; }
html body .clipme-ap-viz.is-spark .dot{ fill:#ff5c73; opacity:0; filter:drop-shadow(0 0 5px rgba(255,92,115,.9)); }
html body .clipme-ap-viz.is-spark.is-in .dot{ animation:clipmeSparkDot 2.6s ease-in-out 1.2s infinite; }
@keyframes clipmeSpark{ to{ stroke-dashoffset:0 } }
@keyframes clipmeSparkDot{ 0%{ opacity:0; transform:scale(.6) } 25%,75%{ opacity:1; transform:scale(1) } 100%{ opacity:.7; transform:scale(.85) } }
html body .clipme-ap-viz.is-spark .dot{ transform-box:fill-box; transform-origin:center; }
html.light body .cm-dressed .clipme-ap-viz.is-spark{ background:#fff; }
/* sparkline icons (clipme.com's icon set, drawn + animated) */
html body .cm-dressed .clipme-ap-viz.is-spark{ padding:6px 8px; background:#0f0f13; border-color:rgba(255,255,255,.08); }
html body .clipme-ap-viz.is-spark svg{ width:100%; height:100%; display:block; overflow:visible; }
html body .clipme-ap-viz.is-spark .ln{ fill:none; stroke:rgba(230,58,85,.72); stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:320; stroke-dashoffset:320; }
html body .clipme-ap-viz.is-spark.is-in .ln{ animation:clipmeSpark 1.5s cubic-bezier(.22,1,.36,1) forwards; }
html body .clipme-ap-viz.is-spark .dot{ fill:#ff5c73; opacity:0; filter:drop-shadow(0 0 5px rgba(255,92,115,.9)); }
html body .clipme-ap-viz.is-spark.is-in .dot{ animation:clipmeSparkDot 2.6s ease-in-out 1.2s infinite; }
@keyframes clipmeSpark{ to{ stroke-dashoffset:0 } }
@keyframes clipmeSparkDot{ 0%{ opacity:0; transform:scale(.6) } 25%,75%{ opacity:1; transform:scale(1) } 100%{ opacity:.7; transform:scale(.85) } }
html body .clipme-ap-viz.is-spark .dot{ transform-box:fill-box; transform-origin:center; }
html.light body .cm-dressed .clipme-ap-viz.is-spark{ background:#fff; }
/* year-of-the-horse runner on the live lane */
html body .cm-sidebyside .cm-row-us{ position:relative; overflow:visible; }
html body .cm-horse{ position:absolute; left:0; top:-22px; width:40px; height:26px; color:#ff5c73; pointer-events:none; z-index:3; animation:cmHorseRun 7s linear infinite, cmHorseBob .42s ease-in-out infinite alternate; filter:drop-shadow(0 0 6px rgba(230,58,85,.5)); }
html body .cm-horse svg{ width:40px; height:26px; display:block; }
html body .cm-horse .lg.a{ animation:cmLegA .42s ease-in-out infinite alternate; transform-origin:24px 17px; }
html body .cm-horse .lg.b{ animation:cmLegA .42s ease-in-out infinite alternate-reverse; transform-origin:40px 17px; }
html body .cm-horse i{ position:absolute; top:12px; left:-14px; width:10px; height:2px; border-radius:2px; background:rgba(255,92,115,.5); animation:cmDust .42s linear infinite; }
html body .cm-horse i:nth-child(3){ top:17px; left:-18px; animation-delay:.14s } html body .cm-horse i:nth-child(4){ top:8px; left:-10px; animation-delay:.28s }
@keyframes cmHorseRun{ 0%{ left:0 } 100%{ left:calc(100% - 40px) } }
@keyframes cmHorseBob{ from{ transform:translateY(0) } to{ transform:translateY(-3px) } }
@keyframes cmLegA{ from{ transform:rotate(-14deg) } to{ transform:rotate(14deg) } }
@keyframes cmDust{ from{ opacity:.7; transform:translateX(0) } to{ opacity:0; transform:translateX(-10px) } }
@media (max-width:700px){ html body .cm-horse{ top:-18px; } }
@media (prefers-reduced-motion:reduce){ html body .cm-horse, html body .cm-horse *, html body .clipme-ap-viz.is-spark .ln, html body .clipme-ap-viz.is-spark .dot{ animation:none!important; opacity:1; stroke-dashoffset:0 } }
/* card fan: size tiles by height so nothing runs into the badge */
html body .cm-dressed .cm-media .clipme-fan.is-card{ align-items:flex-start; padding:6% 6% 0; }
html body .cm-dressed .cm-media .clipme-fan.is-card .clipme-fan-t{ width:auto!important; aspect-ratio:9/16; }
html body .cm-dressed .cm-media .clipme-fan.is-card .clipme-fan-t.mid{ height:72%; }
html body .cm-dressed .cm-media .clipme-fan.is-card .clipme-fan-t.side{ height:58%; margin-top:7%; }
html body .cm-dressed .cm-media .clipme-fan.is-card .clipme-fan-badge{ bottom:5%; }

/* ==== part: 70-live-wedge.css ==== */
/* ==== LIVE WEDGE (god mode) ======================================================= */
html body .clipme-lw{ --lwr:#e63a55; --lwg:#53fc18; position:relative; background:#050507; color:#fff; padding:72px 0; overflow:hidden; font-family:"Inter",system-ui,sans-serif; }
html body .clipme-lw::before{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px) 0 0/100% 64px, linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0/64px 100%; -webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 80%); mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 80%); }
html body .clipme-lw::after{ content:""; position:absolute; left:50%; top:-160px; width:900px; height:520px; transform:translateX(-50%); pointer-events:none; background:radial-gradient(closest-side,rgba(230,58,85,.20),rgba(230,58,85,.06) 55%,transparent 75%); }
html body .clipme-lw-wrap{ position:relative; z-index:1; max-width:880px; margin:0 auto; padding:0 20px; }
html body .clipme-pg-wrap > .clipme-lw{ margin:32px -16px; padding:56px 0; border-radius:20px; }
html body .clipme-lw-head{ text-align:center; max-width:620px; margin:0 auto 34px; }
html body .clipme-lw-eyebrow{ display:inline-flex; align-items:center; gap:8px; font-family:"JetBrains Mono",ui-monospace,monospace; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:#ff8a9a; }
html body .clipme-lw-eyebrow i{ width:7px; height:7px; border-radius:50%; background:var(--lwr); box-shadow:0 0 0 0 rgba(230,58,85,.7); animation:clipmeLwPing 1.6s ease-out infinite; }
html body .clipme-lw h2{ font-family:"Sora","Inter",system-ui,sans-serif; font-weight:700; font-size:44px; line-height:1.05; letter-spacing:-.03em; margin:14px 0 14px; color:#fff; }
html body .clipme-lw-head p{ font-size:17px; line-height:1.55; color:rgba(255,255,255,.66); margin:0; }
html body .clipme-lw-stage{ position:relative; }
/* HLS tape */
html body .clipme-lw-hls{ background:#0b0c11; border:1px solid rgba(255,255,255,.09); border-radius:16px; padding:14px 16px 12px; box-shadow:0 24px 50px -30px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.04); }
html body .clipme-lw-hlshead{ display:flex; align-items:center; justify-content:space-between; gap:12px; font-family:"JetBrains Mono",ui-monospace,monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.5); }
html body .clipme-lw-live{ display:inline-flex; align-items:center; gap:7px; color:#fff; font-weight:700; }
html body .clipme-lw-live i{ width:8px; height:8px; border-radius:50%; background:var(--lwr); animation:clipmeLwPing 1.2s ease-out infinite; }
html body .clipme-lw[data-state="ended"] .clipme-lw-live i{ background:rgba(255,255,255,.35); animation:none; }
html body .clipme-lw-seg b, html body .clipme-lw-la b{ color:#fff; font-weight:700; }
html body .clipme-lw-la{ color:rgba(83,252,24,.85); }
html body .clipme-lw-tape{ position:relative; display:flex; gap:3px; margin:12px 0 10px; height:26px; }
html body .clipme-lw-cell{ flex:1; border-radius:3px; background:rgba(255,255,255,.07); transition:background .25s, box-shadow .25s, transform .25s; }
html body .clipme-lw-cell[data-s="on"]{ background:linear-gradient(180deg,#ff6b80,var(--lwr)); box-shadow:0 0 10px rgba(230,58,85,.35); }
html body .clipme-lw-cell[data-s="la"]{ background:rgba(83,252,24,.16); box-shadow:inset 0 0 0 1px rgba(83,252,24,.55); animation:clipmeLwLa .9s ease-in-out infinite; }
html body .clipme-lw-cell.pop{ animation:none; }
html body .clipme-lw-mark{ position:absolute; top:-6px; bottom:-6px; width:2px; margin-left:-1px; background:#fff; box-shadow:0 0 14px 2px rgba(255,255,255,.7); border-radius:2px; transition:left .08s linear; }
html body .clipme-lw-mark::after{ content:""; position:absolute; left:-4px; top:-5px; width:10px; height:10px; border-radius:50%; background:#fff; box-shadow:0 0 12px rgba(255,255,255,.9); }
html body .clipme-lw-sigrow{ display:flex; align-items:center; justify-content:space-between; gap:14px; }
html body .clipme-lw-sigs{ display:flex; align-items:flex-end; gap:3px; height:22px; flex:1; max-width:260px; }
html body .clipme-lw-sig{ --v:.2; flex:1; height:100%; border-radius:2px 2px 0 0; background:linear-gradient(180deg,#ff8a9a,var(--lwr)); transform:scaleY(var(--v)); transform-origin:bottom; opacity:calc(.35 + .65*var(--v)); transition:transform .18s ease-out, opacity .18s; }
html body .clipme-lw.spike .clipme-lw-sig{ background:linear-gradient(180deg,#b6ff8f,var(--lwg)); }
html body .clipme-lw-siglabel{ font-family:"JetBrains Mono",ui-monospace,monospace; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.5); white-space:nowrap; }
html body .clipme-lw-siglabel b{ color:#fff; font-weight:700; }
html body .clipme-lw-siglabel i{ display:inline-block; font-style:normal; color:var(--lwg); transition:transform .2s, opacity .2s; }
/* clock + range */
html body .clipme-lw-clockrow{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin:26px 0 0; font-family:"JetBrains Mono",ui-monospace,monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.45); }
html body .clipme-lw-status{ color:#fff; font-size:13px; font-weight:700; letter-spacing:.06em; }
html body .clipme-lw[data-state="ended"] .clipme-lw-status{ color:#ff8a9a; }
html body .clipme-lw-replay{ display:none; margin-left:auto; margin-right:12px; background:none; border:1px solid rgba(255,255,255,.18); color:#fff; font:inherit; letter-spacing:.06em; padding:3px 9px; border-radius:999px; cursor:pointer; }
html body .clipme-lw.held .clipme-lw-replay{ display:inline-block; }
html body .clipme-lw-range{ -webkit-appearance:none; appearance:none; width:100%; height:8px; margin:12px 0 0; border-radius:999px; background:linear-gradient(90deg,var(--lwr) var(--pct,0%),rgba(255,255,255,.12) 0); outline:none; cursor:grab; box-shadow:0 0 22px -6px rgba(230,58,85,.9); }
html body .clipme-lw-range:active{ cursor:grabbing; }
html body .clipme-lw-range::-webkit-slider-thumb{ -webkit-appearance:none; width:26px; height:26px; border-radius:50%; background:var(--lwr); border:4px solid #fff; box-shadow:0 0 0 6px rgba(230,58,85,.22), 0 6px 18px rgba(0,0,0,.5); }
html body .clipme-lw-range::-moz-range-thumb{ width:18px; height:18px; border-radius:50%; background:var(--lwr); border:4px solid #fff; }
/* lanes */
html body .clipme-lw-lanes{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:26px; }
html body .clipme-lw-lane{ border-radius:18px; padding:18px; border:1px solid rgba(255,255,255,.1); background:#0b0c11; transition:border-color .4s, box-shadow .4s; }
html body .clipme-lw-lane.us{ border-color:rgba(230,58,85,.55); background:linear-gradient(180deg,rgba(230,58,85,.08),rgba(230,58,85,.02)) #0b0c11; box-shadow:0 30px 60px -40px rgba(230,58,85,.8); }
html body .clipme-lw[data-state="ended"] .clipme-lw-lane.us{ border-color:rgba(83,252,24,.55); box-shadow:0 30px 60px -40px rgba(83,252,24,.7); }
html body .clipme-lw-lanehead{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
html body .clipme-lw-lanehead b{ font-size:17px; font-weight:700; color:#fff; }
html body .clipme-lw-lane.them .clipme-lw-lanehead b{ color:rgba(255,255,255,.6); }
html body .clipme-lw-chip{ display:inline-flex; align-items:center; gap:6px; border:1px solid rgba(255,255,255,.16); border-radius:999px; padding:3px 9px; font-family:"JetBrains Mono",ui-monospace,monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.5); white-space:nowrap; }
html body .clipme-lw-lane.us .clipme-lw-chip{ border-color:rgba(230,58,85,.5); color:#ff8a9a; }
html body .clipme-lw-lane.us .clipme-lw-chip i{ width:6px; height:6px; border-radius:50%; background:var(--lwr); animation:clipmeLwPing 1.2s ease-out infinite; }
html body .clipme-lw[data-state="ended"] .clipme-lw-lane.us .clipme-lw-chip{ border-color:rgba(83,252,24,.5); color:var(--lwg); }
html body .clipme-lw[data-state="ended"] .clipme-lw-lane.us .clipme-lw-chip i{ background:var(--lwg); animation:none; }
html body .clipme-lw-num{ display:flex; align-items:baseline; gap:12px; margin-top:14px; }
html body .clipme-lw-num b{ font-family:"Sora","Inter",system-ui,sans-serif; font-size:58px; line-height:1; font-weight:800; letter-spacing:-.04em; color:var(--lwr); font-variant-numeric:tabular-nums; display:inline-block; }
html body .clipme-lw-lane.them .clipme-lw-num b{ color:rgba(255,255,255,.28); }
html body .clipme-lw-count.pop{ animation:clipmeLwPop .5s cubic-bezier(.2,.9,.3,1.4); }
html body .clipme-lw-fmt{ font-family:"JetBrains Mono",ui-monospace,monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.45); }
html body .clipme-lw-sub{ margin:6px 0 0!important; font-size:14px; line-height:1.45; color:rgba(255,255,255,.62); max-width:none!important; }
html body .clipme-lw-viral{ margin-top:14px; border:1px solid rgba(83,252,24,.28); border-radius:12px; background:rgba(0,0,0,.45); padding:10px 11px; opacity:0; transform:translateY(6px); transition:opacity .4s, transform .4s; }
html body .clipme-lw-viral.on{ opacity:1; transform:none; }
html body .clipme-lw-viral.pop{ animation:clipmeLwFlash .5s ease-out; }
html body .clipme-lw-viralhead{ display:flex; align-items:center; justify-content:space-between; gap:8px; font-family:"JetBrains Mono",ui-monospace,monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--lwg); }
html body .clipme-lw-viralhead b{ font-size:12px; font-weight:700; text-transform:none; letter-spacing:0; }
html body .clipme-lw-viralhead i{ font-style:normal; font-variant-numeric:tabular-nums; }
html body .clipme-lw-spark{ display:block; width:100%; height:44px; margin:8px 0 6px; overflow:visible; }
html body .clipme-lw-line{ fill:none; stroke:var(--lwg); stroke-width:1.6; stroke-linejoin:round; }
html body .clipme-lw-dot{ fill:#fff; stroke:var(--lwg); stroke-width:2; filter:drop-shadow(0 0 6px rgba(83,252,24,.9)); }
html body .clipme-lw-toasts{ display:flex; flex-direction:column; gap:4px; }
html body .clipme-lw-toast{ display:flex; align-items:center; gap:8px; border-radius:8px; background:rgba(255,255,255,.05); padding:6px 9px; font-family:"JetBrains Mono",ui-monospace,monospace; font-size:11px; color:rgba(255,255,255,.88); animation:clipmeLwToast .35s ease; }
html body .clipme-lw-toast.gift{ background:rgba(230,58,85,.12); }
html body .clipme-lw-upload, html body .clipme-lw-dead{ display:none; margin-top:14px; font-family:"JetBrains Mono",ui-monospace,monospace; font-size:11px; color:rgba(255,255,255,.5); }
html body .clipme-lw-upload{ align-items:center; gap:8px; flex-wrap:wrap; }
html body .clipme-lw-upload i{ flex:1 1 90px; height:6px; border-radius:999px; background:rgba(255,255,255,.1); overflow:hidden; display:block; }
html body .clipme-lw-upload b{ display:block; height:100%; width:0; background:rgba(255,255,255,.35); transition:width .3s linear; }
html body .clipme-lw-upload em{ font-style:normal; color:rgba(255,255,255,.35); }
html body .clipme-lw-dead{ border:1px solid rgba(255,255,255,.1); border-radius:10px; padding:8px 10px; background:rgba(0,0,0,.4); animation:clipmeLwToast .35s ease; }
html body .clipme-lw[data-state="ended"] .clipme-lw-upload{ display:flex; }
html body .clipme-lw[data-state="ended"] .clipme-lw-dead{ display:block; }
html body .clipme-lw-packet{ position:absolute; left:0; top:0; z-index:5; width:30px; height:17px; border-radius:5px; background:var(--lwr); color:#fff; font:700 9px/17px "JetBrains Mono",ui-monospace,monospace; text-align:center; letter-spacing:.04em; box-shadow:0 0 18px rgba(230,58,85,.85); pointer-events:none; }
html body .clipme-lw.rewind .clipme-lw-stage{ animation:clipmeLwRewind .42s ease; }
/* foot */
html body .clipme-lw-foot{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-top:26px; }
html body .clipme-lw-foot p{ margin:0!important; font-size:13px; line-height:1.5; color:rgba(255,255,255,.5); max-width:520px!important; }
html body .clipme-lw-foot p b{ color:rgba(255,255,255,.8); }
html body .clipme-lw-foot a{ display:inline-flex; align-items:center; height:48px; padding:0 24px; border-radius:999px; background:var(--lwr); color:#fff!important; font-weight:700; text-decoration:none!important; box-shadow:0 14px 30px -12px rgba(230,58,85,.9); white-space:nowrap; transition:transform .16s; }
html body .clipme-lw-foot a:hover{ transform:translateY(-2px); }
@keyframes clipmeLwPing{ 0%{ box-shadow:0 0 0 0 rgba(230,58,85,.7); } 100%{ box-shadow:0 0 0 9px rgba(230,58,85,0); } }
@keyframes clipmeLwLa{ 0%,100%{ opacity:.55; } 50%{ opacity:1; } }
@keyframes clipmeLwCellPop{ 0%{ transform:scaleY(1); background:#fff; } 100%{ transform:scaleY(1); } }
@keyframes clipmeLwPop{ 0%{ transform:scale(1); } 40%{ transform:scale(1.08); } 100%{ transform:scale(1); } }
@keyframes clipmeLwFlash{ 0%{ box-shadow:0 0 0 0 rgba(83,252,24,.6); } 100%{ box-shadow:0 0 0 12px rgba(83,252,24,0); } }
@keyframes clipmeLwToast{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
@keyframes clipmeLwRewind{ 0%{ opacity:1; } 30%{ opacity:.35; filter:blur(2px); } 100%{ opacity:1; } }
@media (max-width:700px){
  html body .clipme-lw{ padding:56px 0; }
  html body .clipme-lw h2{ font-size:36px; }
  html body .clipme-lw-head p{ font-size:16px; }
  html body .clipme-lw-lanes{ grid-template-columns:1fr; }
  html body .clipme-lw-num b{ font-size:52px; }
  html body .clipme-lw-sigrow{ flex-direction:column; align-items:stretch; gap:8px; }
  html body .clipme-lw-sigs{ max-width:none; }
  html body .clipme-lw-siglabel{ white-space:normal; }
  html body .clipme-lw-hlshead{ font-size:10px; }
  html body .clipme-lw-foot{ flex-direction:column; align-items:stretch; text-align:center; }
  html body .clipme-lw-foot a{ justify-content:center; }
  html body .clipme-lw-replay{ margin-right:8px; }
}
@media (prefers-reduced-motion:reduce){ html body .clipme-lw *{ animation:none!important; transition:none!important; } }

/* ==== CLIPME — ENGINE outro ======================================================= */
html body .clipme-eng{ position:relative; background:#050507; color:#fff; padding:72px 0 80px; overflow:hidden; font-family:"Inter",system-ui,sans-serif; }
html body .clipme-eng::before{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px) 0 0/100% 64px, linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px) 0 0/64px 100%; }
html body .clipme-eng-wrap{ position:relative; z-index:1; max-width:880px; margin:0 auto; padding:0 20px; }
html body .clipme-eng-term{ max-width:720px; margin:0 auto; border-radius:18px; border:1px solid rgba(255,255,255,.12); background:#08090d; box-shadow:0 40px 80px -40px rgba(0,0,0,.9), 0 0 0 1px rgba(255,255,255,.03); overflow:hidden; transition:box-shadow .6s; }
html body .clipme-eng-term[data-state="scoring"]{ box-shadow:0 40px 80px -40px rgba(230,58,85,.7), 0 0 0 1px rgba(230,58,85,.25); }
html body .clipme-eng-term[data-state="posted"]{ box-shadow:0 40px 80px -40px rgba(83,252,24,.55), 0 0 0 1px rgba(83,252,24,.25); }
html body .clipme-eng-bar{ display:flex; align-items:center; gap:12px; padding:13px 16px; border-bottom:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.02); }
html body .clipme-eng-bar span{ display:flex; gap:6px; }
html body .clipme-eng-bar span i{ width:12px; height:12px; border-radius:50%; background:rgba(255,255,255,.15); }
html body .clipme-eng-bar span i:first-child{ background:#e63a55; }
html body .clipme-eng-bar b{ font-family:"JetBrains Mono",ui-monospace,monospace; font-size:11px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.5); }
html body .clipme-eng-state{ margin-left:auto; font-family:"JetBrains Mono",ui-monospace,monospace; font-style:normal; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.35); border:1px solid rgba(255,255,255,.12); border-radius:999px; padding:2px 8px; }
html body .clipme-eng-term[data-state="scoring"] .clipme-eng-state{ color:#ff8a9a; border-color:rgba(230,58,85,.5); }
html body .clipme-eng-term[data-state="posted"] .clipme-eng-state{ color:#53fc18; border-color:rgba(83,252,24,.5); }
html body .clipme-eng-body{ padding:22px 18px 20px; font-family:"JetBrains Mono",ui-monospace,monospace; font-size:15px; line-height:1.55; }
html body .clipme-eng-cmd{ color:#fff; word-break:break-word; }
html body .clipme-eng-cmd > span{ color:#e63a55; }
html body .clipme-eng-cmd code{ font:inherit; color:#fff; background:none; padding:0; }
html body .clipme-eng-cursor{ display:inline-block; width:9px; height:1.05em; vertical-align:-3px; margin-left:2px; background:#fff; animation:clipmeEngBlink 1s steps(1) infinite; }
html body .clipme-eng-line{ margin-top:8px; font-size:13.5px; color:rgba(255,255,255,.55); opacity:0; transform:translateY(4px); transition:opacity .35s, transform .35s; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
html body .clipme-eng-line > span{ color:rgba(255,255,255,.3); }
html body .clipme-eng.l1 .l1, html body .clipme-eng.l2 .l2, html body .clipme-eng.l3 .l3{ opacity:1; transform:none; }
html body .clipme-eng-prog{ display:inline-block; width:150px; max-width:40vw; height:8px; border-radius:999px; background:rgba(255,255,255,.1); overflow:hidden; vertical-align:middle; }
html body .clipme-eng-prog b{ display:block; height:100%; width:0; background:linear-gradient(90deg,#ff8a9a,#e63a55); box-shadow:0 0 12px rgba(230,58,85,.8); }
html body .clipme-eng-pct{ font-style:normal; color:#fff; font-variant-numeric:tabular-nums; min-width:3.2ch; }
html body .clipme-eng-cut{ color:#fff; font-variant-numeric:tabular-nums; }
html body .clipme-eng-ok{ font-style:normal; color:#53fc18; opacity:.25; transition:opacity .3s, text-shadow .3s; }
html body .clipme-eng.posted .clipme-eng-ok{ opacity:1; text-shadow:0 0 12px rgba(83,252,24,.9); }
html body .clipme-eng-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; margin-top:56px; }
html body .clipme-eng-stats{ display:flex; gap:28px; }
html body .clipme-eng-stat b{ display:block; font-family:"Sora","Inter",system-ui,sans-serif; font-size:60px; line-height:1; font-weight:800; letter-spacing:-.04em; color:#e63a55; font-variant-numeric:tabular-nums; }
html body .clipme-eng-stat span{ display:block; margin-top:10px; font-size:14px; line-height:1.35; color:rgba(255,255,255,.5); }
html body .clipme-eng-quote p{ margin:0!important; font-family:"Sora","Inter",system-ui,sans-serif; font-size:26px; line-height:1.28; font-weight:700; letter-spacing:-.02em; color:#fff; max-width:none!important; }
html body .clipme-eng-quote p span{ display:inline-block; opacity:.12; transform:translateY(6px); transition:opacity .45s, transform .45s; transition-delay:calc(var(--w) * 42ms); }
html body .clipme-eng.q .clipme-eng-quote p span{ opacity:1; transform:none; }
html body .clipme-eng-by{ display:block; margin-top:14px; font-size:14px; color:rgba(255,255,255,.5); }
html body .clipme-eng-quote a{ display:inline-flex; align-items:center; height:46px; margin-top:18px; padding:0 22px; border-radius:999px; background:#e63a55; color:#fff!important; font-weight:700; text-decoration:none!important; box-shadow:0 14px 30px -12px rgba(230,58,85,.9); transition:transform .16s; }
html body .clipme-eng-quote a:hover{ transform:translateY(-2px); }
@keyframes clipmeEngBlink{ 0%,49%{ opacity:1; } 50%,100%{ opacity:0; } }
@media (max-width:760px){
  html body .clipme-eng{ padding:56px 0 64px; }
  html body .clipme-eng-grid{ grid-template-columns:1fr; gap:36px; margin-top:44px; }
  html body .clipme-eng-stats{ gap:18px; justify-content:space-between; }
  html body .clipme-eng-stat b{ font-size:52px; }
  html body .clipme-eng-quote p{ font-size:24px; }
  html body .clipme-eng-body{ font-size:14px; }
}

/* ==== god-mode layers ============================================================== */

html body .clipme-lw-horse{ position:absolute; top:-22px; left:6%; font-size:20px; line-height:1; transform:translate(-50%,0); opacity:.9; transition:left .08s linear; z-index:3; pointer-events:none; }

html body .clipme-lw-velo{ display:inline-block; vertical-align:middle; margin-left:8px; width:56px; height:5px; border-radius:999px; background:rgba(255,255,255,.1); overflow:hidden; }
html body .clipme-lw-velo b{ display:block; height:100%; width:18%; background:linear-gradient(90deg,#e63a55,#53fc18); transition:width .12s linear; }
html body .clipme-lw-ticks{ display:flex; justify-content:space-between; margin-top:6px; padding:0 2px; }
html body .clipme-lw-ticks i{ position:relative; width:1px; height:6px; background:rgba(255,255,255,.18); transition:background .2s; }
html body .clipme-lw-ticks i.on{ background:#ff8a9a; box-shadow:0 0 6px rgba(230,58,85,.8); }
html body .clipme-lw-ticks i b{ position:absolute; top:9px; left:50%; transform:translateX(-50%); font-family:"JetBrains Mono",ui-monospace,monospace; font-size:9.5px; letter-spacing:.08em; color:rgba(255,255,255,.35); font-weight:400; }
html body .clipme-lw-ticks i:first-child b{ transform:none; left:0; }
html body .clipme-lw-ticks i:last-child b{ transform:none; left:auto; right:0; }
html body .clipme-lw-lanes{ margin-top:34px; }
html body .clipme-lw-posts{ display:flex; align-items:center; gap:6px; margin-top:10px; font-family:"JetBrains Mono",ui-monospace,monospace; font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.4); flex-wrap:wrap; }
html body .clipme-lw-posts i{ font-style:normal; border:1px solid rgba(255,255,255,.14); border-radius:999px; padding:3px 8px; color:rgba(255,255,255,.55); position:relative; transition:color .3s, border-color .3s; }
html body .clipme-lw-posts i.pop{ animation:clipmeLwPost .9s ease-out; }
html body .clipme-lw-posts i.pop::after{ content:none; display:none; position:absolute; left:50%; top:-16px; transform:translateX(-50%); color:#53fc18; font-size:9px; white-space:nowrap; animation:clipmeLwPostTag .9s ease-out; }
html body .clipme-lw[data-state="ended"] .clipme-lw-posts i{ border-color:rgba(83,252,24,.45); color:#53fc18; }
html body .clipme-lw-count{ position:relative; }
html body .clipme-lw-count.pop::after{ content:none; display:none; position:absolute; inset:-8px -14px; border-radius:18px; border:2px solid rgba(230,58,85,.9); animation:clipmeLwRing .6s ease-out forwards; pointer-events:none; }
html body .clipme-lw-inflow.pop{ animation:clipmeLwPop .5s cubic-bezier(.2,.9,.3,1.4); display:inline-block; }
html body .clipme-lw-plus{ position:absolute; left:0; top:0; z-index:6; font:700 12px/1 "JetBrains Mono",ui-monospace,monospace; color:#53fc18; text-shadow:0 0 10px rgba(83,252,24,.9); pointer-events:none; }
html body .clipme-lw.endflash .clipme-lw-tape{ animation:clipmeLwEndFlash .8s ease-out; }
html body .clipme-lw.endflash .clipme-lw-hls{ animation:clipmeLwEndGlow .8s ease-out; }
html body .clipme-lw[data-state="ended"] .clipme-lw-lane.them .clipme-lw-chip::before{ content:""; width:8px; height:8px; border:1.5px solid rgba(255,255,255,.35); border-top-color:transparent; border-radius:50%; animation:clipmeLwSpin 1s linear infinite; }
@keyframes clipmeLwPost{ 0%{ background:rgba(83,252,24,.35); color:#fff; border-color:#53fc18; } 100%{ background:transparent; } }
@keyframes clipmeLwPostTag{ 0%{ opacity:0; transform:translate(-50%,4px); } 25%{ opacity:1; transform:translate(-50%,0); } 80%{ opacity:1; } 100%{ opacity:0; transform:translate(-50%,-6px); } }
@keyframes clipmeLwRing{ 0%{ opacity:1; transform:scale(.85); } 100%{ opacity:0; transform:scale(1.35); } }
@keyframes clipmeLwEndFlash{ 0%{ filter:brightness(1); } 20%{ filter:brightness(2.2); } 100%{ filter:brightness(1); } }
@keyframes clipmeLwEndGlow{ 0%{ box-shadow:0 0 0 0 rgba(230,58,85,.0); } 30%{ box-shadow:0 0 60px 6px rgba(230,58,85,.45); } 100%{ box-shadow:0 24px 50px -30px rgba(0,0,0,.9); } }
@keyframes clipmeLwSpin{ to{ transform:rotate(360deg); } }
@media (max-width:700px){
  html body .clipme-lw-horse{ font-size:17px; top:-19px; }
  html body .clipme-lw-velo{ width:44px; }
  html body .clipme-lw-posts{ gap:5px; }
  html body .clipme-lw-posts i{ padding:3px 7px; }
}
/* engine god-mode */
html body .clipme-eng-fmts{ display:flex; gap:10px; align-items:flex-end; margin:12px 0 2px; height:34px; }
html body .clipme-eng-fmts i{ position:relative; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.14); border-radius:4px; background:rgba(255,255,255,.03); opacity:.18; transform:translateY(4px) scale(.9); transition:opacity .35s, transform .35s, border-color .35s, box-shadow .35s; }
html body .clipme-eng-fmts i.on{ opacity:1; transform:none; border-color:rgba(230,58,85,.7); box-shadow:0 0 14px -2px rgba(230,58,85,.6); }
html body .clipme-eng-fmts i b{ font-family:"JetBrains Mono",ui-monospace,monospace; font-size:9px; letter-spacing:.06em; color:#fff; font-weight:700; }
html body .clipme-eng-fmts .f916{ width:20px; height:34px; }
html body .clipme-eng-fmts .f11{ width:30px; height:30px; }
html body .clipme-eng-fmts .f169{ width:52px; height:30px; }
html body .clipme-eng-cells{ display:inline-flex; gap:3px; vertical-align:middle; }
html body .clipme-eng-cells b{ width:9px; height:9px; border-radius:2px; background:rgba(255,255,255,.1); transition:background .15s, box-shadow .15s; }
html body .clipme-eng-cells b.on{ background:#e63a55; box-shadow:0 0 8px rgba(230,58,85,.8); }
html body .clipme-eng.posted .clipme-eng-cells b.on{ background:#53fc18; box-shadow:0 0 8px rgba(83,252,24,.7); }
html body .clipme-eng-celln{ font-style:normal; color:#fff; font-variant-numeric:tabular-nums; }
html body .clipme-eng-next{ display:none; margin-top:10px; color:#fff; }
html body .clipme-eng-next > span{ color:#e63a55; }
html body .clipme-eng.posted .clipme-eng-next{ display:block; }
html body .clipme-eng.posted .clipme-eng-cmd .clipme-eng-cursor{ display:none; }
html body .clipme-eng-stat > b{ text-shadow:0 0 calc(var(--k,0) * 28px) rgba(230,58,85,.75); }
html body .clipme-eng-pips{ display:flex; gap:4px; margin-top:8px; }
html body .clipme-eng-pips b{ width:14px; height:4px; border-radius:999px; background:rgba(255,255,255,.12); transition:background .2s, box-shadow .2s; }
html body .clipme-eng-pips b.on{ background:#e63a55; box-shadow:0 0 8px rgba(230,58,85,.7); }
html body .clipme-eng-strike{ display:block; position:relative; width:74px; height:4px; margin-top:8px; border-radius:999px; background:rgba(255,255,255,.12); overflow:hidden; }
html body .clipme-eng-strike::before{ content:""; position:absolute; inset:0; background:repeating-linear-gradient(90deg,rgba(255,255,255,.25) 0 6px,transparent 6px 12px); }
html body .clipme-eng-strike b{ position:absolute; left:0; top:0; bottom:0; width:0; background:#e63a55; box-shadow:0 0 8px rgba(230,58,85,.8); transition:width .7s cubic-bezier(.2,.8,.2,1); }
html body .clipme-eng.posted .clipme-eng-strike b{ width:100%; }
@media (max-width:760px){
  html body .clipme-eng-fmts{ height:30px; }
  html body .clipme-eng-fmts .f916{ width:18px; height:30px; }
  html body .clipme-eng-fmts .f11{ width:26px; height:26px; }
  html body .clipme-eng-fmts .f169{ width:46px; height:26px; }
  html body .clipme-eng-cells b{ width:8px; height:8px; }
}
html body .clipme-lw-ticks i, html body .clipme-lw-ticks i b{ font-style:normal; }
html body .clipme-cw-top{ display:flex!important; justify-content:space-between; align-items:center; gap:4px; flex-wrap:nowrap!important; }
html body .clipme-cw-b.clips{ flex:none; padding:4px 5px; font-size:8px; }
html body .clipme-cw-plat{ flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }
/* phone fixes (owner: "this is broken"): bars must keep their height in the column layout,
   the horse needs headroom above the tape, the header stays on one line */
@media (max-width:700px){
  html body .clipme-lw-sigs{ flex:none!important; height:20px; width:100%; max-width:none; }
  html body .clipme-lw-sigrow{ gap:10px; margin-top:2px; }
  html body .clipme-lw-hlshead{ font-size:9.5px; white-space:nowrap; gap:8px; }
  html body .clipme-lw-hlshead > *{ white-space:nowrap; }
  html body .clipme-lw-tape{ margin-top:30px; }
  html body .clipme-lw-horse{ top:-21px; font-size:16px; }
  html body .clipme-lw-packet{ opacity:.85; }
}
/* owner: no signal-bar animation under the tape */
html body .clipme-lw-sigs, html body .clipme-lw-velo{ display:none!important; }
html body .clipme-lw-siglabel i{ animation:none!important; transform:none!important; opacity:1!important; }
html body .clipme-lw-sigrow{ margin-top:6px; }
/* owner: use the clipme.com race — slider + two lanes + toasts only */
html body .clipme-lw-hls, html body .clipme-lw-ticks, html body .clipme-lw-posts, html body .clipme-lw-spark, html body .clipme-lw-packet, html body .clipme-lw-plus, html body .clipme-lw-fmt, html body .clipme-lw-horse{ display:none!important; }
html body .clipme-lw-count.pop, html body .clipme-lw-inflow.pop, html body .clipme-lw-viral.pop{ animation:none!important; }
html body .clipme-lw-count.pop::after{ display:none!important; }
html body .clipme-lw.endflash .clipme-lw-hls{ animation:none!important; }
html body .clipme-lw-clockrow{ margin-top:8px; }
html body .clipme-lw-lanes{ margin-top:30px; }
html body .clipme-lw-head p b{ color:#fff; font-weight:600; }
html body .clipme-lw-toasts{ margin-top:8px; }
html body .clipme-lw-viralhead{ font-size:10.5px; }

/* ==== part: 72-kinds.css ==== */
/* ==== per-category hero visuals ====================================================== */
html body .cm-kind{ margin:30px 0 8px; font-family:"JetBrains Mono",ui-monospace,monospace; }
html body .cm-statpill{ margin-bottom:26px!important; }
/* terminal (comparison pages) */
html body .cm-kt{ border-radius:18px; border:1px solid rgba(255,255,255,.12); background:#08090d; box-shadow:0 40px 80px -40px rgba(0,0,0,.9), 0 0 0 1px rgba(230,58,85,.15); overflow:hidden; }
html body .cm-kt-bar{ display:flex; align-items:center; gap:12px; padding:12px 16px; border-bottom:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.02); }
html body .cm-kt-bar span{ display:flex; gap:6px; } html body .cm-kt-bar span i{ width:11px; height:11px; border-radius:50%; background:rgba(255,255,255,.15); } html body .cm-kt-bar span i:first-child{ background:#e63a55; }
html body .cm-kt-bar b{ font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.5); font-weight:700; }
html body .cm-kt-bar em{ margin-left:auto; font-style:normal; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#ff8a9a; border:1px solid rgba(230,58,85,.5); border-radius:999px; padding:2px 8px; }
html body .cm-kt-body{ padding:18px 16px 16px; font-size:13.5px; line-height:1.6; color:rgba(255,255,255,.6); }
html body .cm-kt-line{ display:flex; align-items:center; gap:8px; white-space:nowrap; overflow:hidden; }
html body .cm-kt-line > span{ color:#e63a55; flex:none; } html body .cm-kt-line.l2 > span, html body .cm-kt-line.l3 > span{ color:rgba(255,255,255,.3); }
html body .cm-kt-line code{ font:inherit; color:#fff; background:none; padding:0; display:inline-block; overflow:hidden; white-space:nowrap; width:0; animation:cmKtType 1.5s steps(42) .3s forwards; border-right:8px solid #fff; }
html body .cm-kt-line.l2, html body .cm-kt-line.l3, html body .cm-kt-fmts{ opacity:0; animation:cmKtIn .4s ease forwards; }
html body .cm-kt-line.l2{ animation-delay:2s; } html body .cm-kt-fmts{ animation-delay:2.3s; } html body .cm-kt-line.l3{ animation-delay:3.6s; }
html body .cm-kt-prog{ display:inline-block; width:120px; max-width:34vw; height:8px; border-radius:999px; background:rgba(255,255,255,.1); overflow:hidden; }
html body .cm-kt-prog b{ display:block; height:100%; width:0; background:linear-gradient(90deg,#ff8a9a,#e63a55); box-shadow:0 0 12px rgba(230,58,85,.8); animation:cmKtFill 1.4s cubic-bezier(.2,.8,.2,1) 2.1s forwards; }
html body .cm-kt-line.l2 em{ font-style:normal; color:#fff; }
html body .cm-kt-line.l3 b{ color:#fff; } html body .cm-kt-line.l3 .ok{ font-style:normal; color:#ff8a9a; }
html body .cm-kt-fmts{ display:flex; gap:10px; align-items:flex-end; margin:10px 0 8px; height:32px; }
html body .cm-kt-fmts i{ display:flex; align-items:center; justify-content:center; border:1px solid rgba(230,58,85,.7); border-radius:4px; background:rgba(255,255,255,.03); box-shadow:0 0 14px -2px rgba(230,58,85,.6); font-style:normal; }
html body .cm-kt-fmts i b{ font-size:8.5px; color:#fff; font-weight:700; }
html body .cm-kt-fmts .f916{ width:28px; height:32px; } html body .cm-kt-fmts .f11{ width:30px; height:30px; } html body .cm-kt-fmts .f169{ width:52px; height:30px; }
@keyframes cmKtType{ from{ width:0; } to{ width:100%; } }
@keyframes cmKtIn{ from{ opacity:0; transform:translateY(4px); } to{ opacity:1; transform:none; } }
@keyframes cmKtFill{ to{ width:100%; } }
/* receipt (pricing pages) */
html body .cm-kr{ position:relative; max-width:420px; margin:0 auto; padding:18px 20px 22px; border-radius:6px; background:#f6f3ec; color:#16161a; box-shadow:0 30px 60px -30px rgba(0,0,0,.9); -webkit-mask-image:linear-gradient(#000 0 0), radial-gradient(circle at 8px 100%, transparent 6px, #000 7px); mask-image:linear-gradient(#000 0 0); }
html body .cm-kr::before{ content:""; position:absolute; left:0; right:0; top:-6px; height:6px; background:radial-gradient(circle at 8px 6px, transparent 5px, #f6f3ec 6px) 0 0/16px 6px repeat-x; }
html body .cm-kr-head{ display:flex; justify-content:space-between; align-items:baseline; border-bottom:1px dashed rgba(0,0,0,.25); padding-bottom:10px; margin-bottom:8px; }
html body .cm-kr-head b{ font-weight:800; letter-spacing:.18em; } html body .cm-kr-head span{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(0,0,0,.5); }
html body .cm-kr-line{ display:flex; align-items:baseline; gap:8px; font-size:13px; padding:6px 0; opacity:0; animation:cmKrIn .35s ease forwards; animation-delay:calc(.25s + var(--i) * .28s); }
html body .cm-kr-line i{ flex:1; border-bottom:1px dotted rgba(0,0,0,.35); transform:translateY(-4px); } html body .cm-kr-line b{ font-weight:700; }
html body .cm-kr-total{ display:flex; justify-content:space-between; align-items:baseline; border-top:1px dashed rgba(0,0,0,.25); margin-top:8px; padding-top:12px; font-size:14px; opacity:0; animation:cmKrIn .35s ease forwards; animation-delay:calc(.25s + var(--i) * .28s); }
html body .cm-kr-total b{ font-family:"Sora","Inter",system-ui,sans-serif; font-size:30px; font-weight:800; color:#e63a55; letter-spacing:-.03em; }
html body .cm-kr-stamp{ position:absolute; right:18px; bottom:22px; padding:6px 12px; border:3px solid #e63a55; border-radius:8px; color:#e63a55; font-weight:800; font-size:14px; letter-spacing:.2em; text-transform:uppercase; transform:rotate(-12deg) scale(1.6); opacity:0; animation:cmKrStamp .35s cubic-bezier(.2,.9,.3,1.4) 2.4s forwards; }
html.light body .cm-kr{ box-shadow:0 30px 60px -40px rgba(0,0,0,.4); border:1px solid rgba(0,0,0,.08); }
@keyframes cmKrIn{ to{ opacity:1; } }
@keyframes cmKrStamp{ to{ opacity:.92; transform:rotate(-12deg) scale(1); } }
/* ledger bars (data pages) */
html body .cm-kb{ border-radius:18px; border:1px solid rgba(255,255,255,.1); background:#0b0c11; padding:16px 18px 14px; box-shadow:0 30px 60px -40px rgba(0,0,0,.9); }
html body .cm-kb-head{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.5); }
html body .cm-kb-head b{ color:#fff; font-weight:700; }
html body .cm-kb-bars{ display:flex; align-items:flex-end; gap:8px; height:120px; margin:18px 0 10px; }
html body .cm-kb-bars i{ position:relative; flex:1; height:var(--h); border-radius:6px 6px 2px 2px; background:linear-gradient(180deg,#ff6b80,#e63a55); box-shadow:0 0 16px -4px rgba(230,58,85,.8); transform-origin:bottom; transform:scaleY(0); animation:cmKbGrow .7s cubic-bezier(.2,.8,.2,1) forwards; animation-delay:calc(.2s + var(--i) * .12s); }
html body .cm-kb-bars i b{ position:absolute; left:50%; top:-20px; transform:translateX(-50%); font-size:11px; color:#fff; font-weight:700; }
html body .cm-kb-foot{ display:flex; justify-content:space-between; gap:10px; font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.45); flex-wrap:wrap; }
html body .cm-kb-foot span:last-child{ color:#ff8a9a; }
@keyframes cmKbGrow{ to{ transform:scaleY(1); } }
/* compare-plans table on phones (owner: broken) */
@media (max-width:760px){
  html body .cm-table-wrap{ overflow-x:auto!important; -webkit-overflow-scrolling:touch; max-width:100%!important; width:100%!important; margin:0!important; transform:none!important; border-radius:14px; }
  html body .cm-table-wrap table{ min-width:640px!important; }
  html body .cm-table-wrap th:first-child, html body .cm-table-wrap td:first-child{ position:sticky; left:0; z-index:2; background:#0e0e13; box-shadow:6px 0 12px -8px rgba(0,0,0,.9); }
  html body .cm-table-wrap th[colspan], html body .cm-table-wrap td[colspan]{ position:sticky; left:0; background:#0e0e13; }
  html.light body .cm-table-wrap th:first-child, html.light body .cm-table-wrap td:first-child, html.light body .cm-table-wrap th[colspan], html.light body .cm-table-wrap td[colspan]{ background:#fff; }
  /* workflow section header → studio card breathing room */
  html body .clipme-st{ margin-top:28px!important; }
  html body .cm-kind{ margin:24px 0 6px; }
  html body .cm-kb-bars{ height:96px; gap:6px; }
}
@media (prefers-reduced-motion:reduce){ html body .cm-kind *{ animation:none!important; opacity:1!important; transform:none!important; width:auto!important; } }
html body .cm-kr-stamp{ right:16px; bottom:auto; top:44px; }
html body .cm-kb-bars i, html body .cm-kb-bars i b{ font-style:normal; }

/* ==== part: 80-signal-duel.css ==== */
/* ---- Signal duel ------------------------------------------------------------------ */
html body .cm-duel{ margin:18px 0 22px; padding:16px 18px 14px; border-radius:14px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); display:flex; flex-direction:column; gap:10px; }
html body .cm-duel-head{ display:flex; justify-content:space-between; gap:12px; font-family:"JetBrains Mono",ui-monospace,monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:#9b9ba6; }
html body .cm-duel-hint{ color:#ff5c73; letter-spacing:.04em; text-transform:none; }
html body .cm-duel-row{ display:grid; grid-template-columns:110px minmax(0,1fr) 44px; align-items:center; gap:14px; }
html body .cm-duel-name{ font-family:"Inter",system-ui,sans-serif; font-weight:700; font-size:14px; color:#b9b9c4; display:flex; align-items:center; gap:8px; }
html body .cm-duel-row.us .cm-duel-name{ color:#fff; }
html body .cm-duel-name i{ width:8px; height:8px; border-radius:50%; background:#45e06a; box-shadow:0 0 10px #45e06a; }
html body .cm-duel-cells{ display:grid; grid-template-columns:repeat(18,minmax(0,1fr)); gap:4px; }
html body .cm-duel-cells i{ height:22px; border-radius:4px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.06); display:block; }
html body .cm-duel-cells i.on{ background:rgba(230,58,85,.22); border-color:rgba(230,58,85,.35); opacity:0; transform:scaleY(.4); }
html body .cm-duel.is-in .cm-duel-cells i.on{ animation:clipmeDuelOn .5s cubic-bezier(.22,1,.36,1) forwards; }
html body .cm-duel-row.us .cm-duel-cells i.on{ background:#e63a55; border-color:#ff5c73; box-shadow:0 0 12px rgba(230,58,85,.45); }
html body .cm-duel-row:not(.us) .cm-duel-cells i.on{ background:rgba(255,255,255,.22); border-color:rgba(255,255,255,.25); box-shadow:none; }
@keyframes clipmeDuelOn{ to{ opacity:1; transform:none } }
html body .cm-duel-n{ font-family:"JetBrains Mono",ui-monospace,monospace; font-size:22px; font-weight:800; color:#fff; text-align:right; }
html body .cm-duel-row:not(.us) .cm-duel-n{ color:#6b6b76; font-size:18px; }
html.light body .cm-duel{ background:rgba(0,0,0,.03); border-color:rgba(0,0,0,.08); }
html.light body .cm-duel-name, html.light body .cm-duel-row.us .cm-duel-name, html.light body .cm-duel-n{ color:#16161a; }
@media (max-width:700px){ html body .cm-duel-row{ grid-template-columns:82px minmax(0,1fr) 34px; gap:10px; } html body .cm-duel-cells i{ height:16px; } html body .cm-duel-head{ flex-direction:column; gap:4px; } }
@media (prefers-reduced-motion:reduce){ html body .cm-duel-cells i.on{ opacity:1; transform:none; animation:none } }

/* the runner: leads the 18 cells as they light, then idles at the front */
html body .cm-duel-row.us .cm-duel-cells{ position:relative; overflow:visible; }
html body .cm-horse{ position:absolute; left:0; top:-36px; width:46px; height:32px; font-size:26px; line-height:32px; text-align:center; opacity:0; pointer-events:none; filter:drop-shadow(0 0 8px rgba(230,58,85,.6)); transform:scaleX(-1); }
html body .cm-duel.is-in .cm-horse{ opacity:1; animation:cmHorseLead 2s cubic-bezier(.25,.6,.3,1) forwards, cmHorseBob .38s ease-in-out infinite alternate; }
html body .cm-duel.is-in .cm-horse .lg.a{ animation:cmLegA .4s ease-in-out infinite alternate; transform-origin:24px 17px; }
html body .cm-duel.is-in .cm-horse .lg.b{ animation:cmLegA .4s ease-in-out infinite alternate-reverse; transform-origin:40px 17px; }
@keyframes cmHorseLead{ from{ left:0 } to{ left:calc(100% - 46px) } }
@keyframes cmHorseBob{ from{ transform:scaleX(-1) translateY(0) } to{ transform:scaleX(-1) translateY(-4px) } }
@keyframes cmLegA{ from{ transform:rotate(-14deg) } to{ transform:rotate(14deg) } }
html body .cm-duel-row.us{ margin-top:26px; }
@media (max-width:700px){ html body .cm-horse{ width:36px; height:26px; font-size:21px; line-height:26px; top:-30px; } @keyframes cmHorseLead{ from{ left:0 } to{ left:calc(100% - 36px) } } }
@media (prefers-reduced-motion:reduce){ html body .cm-duel.is-in .cm-horse, html body .cm-horse *{ animation:none!important; left:calc(100% - 46px); opacity:1 } }

/* ==== part: 85-livefeed-alive.css ==== */
/* ---- LIVE FEED, alive (parts/85-livefeed-alive.js) -------------------------------- */
html body .clipme-cw .clipme-cw-card{ opacity:0; transform:translateY(14px) scale(.98); }
html body .clipme-cw.is-alive .clipme-cw-card{ opacity:1; transform:none; transition:opacity .55s cubic-bezier(.22,1,.36,1) calc(var(--i,0) * 70ms), transform .55s cubic-bezier(.22,1,.36,1) calc(var(--i,0) * 70ms), box-shadow .38s, border-color .3s; }
html body .clipme-cw.is-alive .clipme-cw-card:hover{ transform:translateY(-6px); }
html body .clipme-cw-scrub{ position:absolute; left:0; right:0; bottom:0; height:3px; background:rgba(255,255,255,.12); z-index:3; overflow:hidden; }
html body .clipme-cw-scrub i{ display:block; height:100%; width:100%; background:linear-gradient(90deg,#e63a55,#ff5c73); transform-origin:left; transform:scaleX(0); }
html body .clipme-cw.is-alive .clipme-cw-scrub i{ animation:clipmeCwScrub 5s linear infinite; }
@keyframes clipmeCwScrub{ from{ transform:scaleX(0) } to{ transform:scaleX(1) } }
html body .clipme-cw.is-alive .clipme-cw-b.look{ animation:clipmeCwLook 2.4s ease-in-out infinite; }
@keyframes clipmeCwLook{ 0%,100%{ box-shadow:0 0 0 0 rgba(69,224,106,0) } 50%{ box-shadow:0 0 0 4px rgba(69,224,106,.18), 0 0 14px rgba(69,224,106,.35) } }
html body .clipme-cw-plat i{ animation:clipmePmPulse 2.4s ease-out infinite; }
html body .clipme-cw-sub b{ font-variant-numeric:tabular-nums; }
@media (prefers-reduced-motion:reduce){
  html body .clipme-cw .clipme-cw-card{ opacity:1; transform:none; }
  html body .clipme-cw.is-alive .clipme-cw-scrub i, html body .clipme-cw.is-alive .clipme-cw-b.look, html body .clipme-cw-plat i{ animation:none; transform:scaleX(.6); }
}

/* ==== part: 90-readmore.css ==== */
/* ---- Read-more clamp (phones only, see parts/90-readmore.js) --------------------- */
@media (max-width:700px){
  html body .clipme-pg-wrap p.cm-clamp{ display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:5; overflow:hidden; margin-bottom:6px!important; }
  html body .clipme-pg-wrap p.cm-clamp.is-open{ display:block; -webkit-line-clamp:unset; overflow:visible; }
  html body .cm-clamp-btn{ display:inline-block; margin:0 0 18px; padding:0; border:0; background:none; font-family:"JetBrains Mono",ui-monospace,monospace; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:#ff5c73; cursor:pointer; }
  html body .cm-clamp-btn::after{ content:" \2193"; }
  html body p.cm-clamp.is-open + .cm-clamp-btn::after{ content:" \2191"; }
}

/* ==== part: 95-ledger-alive.css ==== */
/* ---- Ledger, alive ------------------------------------------------------------------ */
html body .cm-dressed .cm-tr{ position:relative; }
html body .cm-dressed .cm-mark{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; margin-right:9px; vertical-align:middle; background:#1b1b22; border:1px solid rgba(255,255,255,.12); overflow:hidden; font-family:"Inter",system-ui,sans-serif; font-weight:800; font-size:12px; color:#ff5c73; flex:0 0 26px; }
html body .cm-dressed .cm-mark img{ width:100%; height:100%; object-fit:cover; display:block; }
html body .cm-dressed .cm-tr > span:nth-child(2){ display:inline-flex; align-items:center; }
html body .cm-dressed .cm-bar{ position:absolute; left:0; right:0; bottom:0; height:2px; background:rgba(255,255,255,.05); overflow:hidden; }
html body .cm-dressed .cm-bar i{ display:block; height:100%; width:var(--w,50%); background:linear-gradient(90deg,#e63a55,#ff5c73); transform:scaleX(0); transform-origin:left; }
html body .cm-dressed .cm-table.is-alive .cm-bar i{ animation:cmBarFill 1.1s cubic-bezier(.22,1,.36,1) forwards; }
@keyframes cmBarFill{ to{ transform:scaleX(1) } }
html body .cm-dressed .cm-mode-live{ position:relative; }
html body .cm-dressed .cm-mode-live::before{ box-shadow:0 0 0 0 rgba(69,224,106,.45); animation:clipmePmPulse 2.4s ease-out infinite; }
html body .cm-dressed .cm-ledger-total{ display:flex; justify-content:space-between; gap:12px; margin-top:12px; padding:12px 14px; border-radius:10px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); font-family:"JetBrains Mono",ui-monospace,monospace; font-size:12px; letter-spacing:.04em; color:#9b9ba6; }
html body .cm-dressed .cm-ledger-total b{ color:#fff; font-weight:700; }
html body .cm-dressed .cm-ledger-total i{ display:inline-block; width:7px; height:7px; border-radius:50%; background:#45e06a; box-shadow:0 0 8px #45e06a; margin-right:7px; vertical-align:middle; animation:clipmePmPulse 2.4s ease-out infinite; }
html.light body .cm-dressed .cm-mark{ background:#f0f0f4; border-color:rgba(0,0,0,.1); }
html.light body .cm-dressed .cm-ledger-total{ background:rgba(0,0,0,.03); border-color:rgba(0,0,0,.08); }
html.light body .cm-dressed .cm-ledger-total b{ color:#16161a; }
/* ---- Integration wires with flowing packets ---------------------------------------- */
html body .cm-integrations .cm-wire{ position:relative; overflow:visible; background:linear-gradient(90deg,rgba(230,58,85,.05),rgba(230,58,85,.45),rgba(230,58,85,.05))!important; border:0!important; }
html body .cm-integrations .cm-packet{ position:absolute; width:8px; height:8px; border-radius:50%; background:#ff5c73; box-shadow:0 0 12px 2px rgba(230,58,85,.75); opacity:0; }
@media (min-width:901px){
  html body .cm-integrations .cm-wire{ height:2px!important; }
  html body .cm-integrations .cm-packet{ top:-3px; left:0; animation:cmPacketX 2.7s linear infinite; }
  @keyframes cmPacketX{ 0%{ left:0; opacity:0 } 8%{ opacity:1 } 92%{ opacity:1 } 100%{ left:calc(100% - 8px); opacity:0 } }
}
@media (max-width:900px){
  html body .cm-integrations .cm-wire{ width:2px!important; height:34px!important; background:linear-gradient(180deg,rgba(230,58,85,.05),rgba(230,58,85,.45),rgba(230,58,85,.05))!important; }
  html body .cm-integrations .cm-packet{ left:-3px; top:0; animation:cmPacketY 2.2s linear infinite; }
  @keyframes cmPacketY{ 0%{ top:0; opacity:0 } 10%{ opacity:1 } 90%{ opacity:1 } 100%{ top:calc(100% - 8px); opacity:0 } }
}
@media (prefers-reduced-motion:reduce){ html body .cm-integrations .cm-packet, html body .cm-dressed .cm-ledger-total i, html body .cm-dressed .cm-mode-live::before{ animation:none } html body .cm-dressed .cm-bar i{ transform:none } }

/* ==== part: 97-polish-round.css ==== */
/* ---- card fan: the scan is a green beam, never the media chip -------------------- */
html body .cm-dressed .cm-media .clipme-fan .clipme-fan-scan{ all:unset; position:absolute; left:0; right:0; top:0; height:2px; z-index:4; background:linear-gradient(90deg,transparent,#45e06a,transparent); box-shadow:0 0 14px 2px rgba(69,224,106,.55); animation:clipme-scan 5.2s cubic-bezier(.6,0,.35,1) infinite; }
html body .cm-dressed .cm-media .clipme-fan .clipme-fan-scan::before{ display:none!important; content:none!important; }
/* ---- platform pills → heading spacing ----------------------------------------------- */
html body .clipme-plat{ margin-bottom:30px!important; }
/* ---- launch page on phones: form before the visual ----------------------------------- */
@media (max-width:999px){
  html body [data-clipme-request] .clipme-pg-wrap{ display:flex!important; flex-direction:column; }
  html body [data-clipme-request] .clipme-pg-wrap > *{ order:5; }
  html body [data-clipme-request] .clipme-pg-wrap > .cm-crumbs{ order:0; }
  html body [data-clipme-request] .clipme-pg-wrap > .clipme-pg-eyebrow{ order:1; }
  html body [data-clipme-request] .clipme-pg-wrap > .clipme-pg-h1{ order:2; }
  html body [data-clipme-request] .clipme-pg-wrap > .clipme-pg-answer{ order:3; }
  html body [data-clipme-request] .clipme-pg-wrap > .clipme-req{ order:4; margin-top:8px; }
  html body [data-clipme-request] .clipme-pg-wrap > .clipme-pg-benefits{ order:6; }
  html body [data-clipme-request] .clipme-pg-wrap > .clipme-pg-visual{ order:7; }
  html body [data-clipme-request] .clipme-pg-answer{ font-size:17px; }
}
/* ---- data tables on phones: scroll inside their box, never past the screen ---------- */
@media (max-width:700px){
  html body .clipme-pg-wrap .cm-table-wrap, html body .clipme-pg-wrap div:has(> table){ overflow-x:auto!important; -webkit-overflow-scrolling:touch; max-width:100%!important; width:100%!important; margin-left:0!important; margin-right:0!important; transform:none!important; border-radius:12px; -webkit-mask-image:linear-gradient(90deg,#000 92%,transparent); mask-image:linear-gradient(90deg,#000 92%,transparent); }
  html body .clipme-pg-wrap table{ min-width:560px!important; }
}
/* ---- inline CTA bands on long pages ------------------------------------------------- */
html body .cm-inline-cta{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin:34px 0; padding:18px 20px; border-radius:16px; background:linear-gradient(120deg,rgba(230,58,85,.14),rgba(255,255,255,.03)); border:1px solid rgba(230,58,85,.35); }
html body .cm-inline-cta p{ margin:0!important; font-family:"Inter",system-ui,sans-serif; font-weight:700; font-size:17px; letter-spacing:-.01em; color:#fff; max-width:none!important; }
html body .cm-inline-cta p span{ display:block; font-family:"JetBrains Mono",ui-monospace,monospace; font-weight:400; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#ff8a9a; margin-top:4px; }
html body .cm-inline-cta a{ display:inline-flex; align-items:center; height:46px; padding:0 22px; border-radius:999px; background:#e63a55; color:#fff!important; font-weight:700; text-decoration:none!important; box-shadow:0 14px 30px -14px rgba(230,58,85,.9); white-space:nowrap; transition:transform .16s; }
html body .cm-inline-cta a:hover{ transform:translateY(-2px); }
html.light body .cm-inline-cta p{ color:#16161a; }
@media (max-width:700px){ html body .cm-inline-cta{ margin:24px 0; padding:16px; } html body .cm-inline-cta a{ width:100%; justify-content:center; } }

/* ==== part: 98-ledger-mobile.css ==== */
/* ---- Ledger on phones (owner: "looks ugly"): receipt rows — avatar, handle in Inter,
   date as a small uppercase stamp, the count as a Sora numeral, mode chip beside it.
   The proportional bars stay desktop-only. ---- */
@media (max-width:700px){
  html body .clipme-port.cm-dressed .cm-thead{ display:none!important; }
  html body .clipme-port.cm-dressed .cm-tr{ display:grid!important; grid-template-columns:40px auto minmax(0,1fr) auto!important; grid-template-areas:"mark chan chan count" "mark meta mode count"!important; column-gap:12px; row-gap:3px; align-items:center; padding:14px 6px!important; border-top:1px solid rgba(255,255,255,.07)!important; font-size:13px; }
  html body .clipme-port.cm-dressed .cm-tr:first-child{ border-top:0!important; }
  html body .clipme-port.cm-dressed .cm-tr > span:nth-child(2){ grid-area:chan; display:block!important; font-family:"Inter",system-ui,sans-serif!important; font-weight:700; font-size:16px; letter-spacing:-.01em; color:#fff; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:1.2; }
  html body .clipme-port.cm-dressed .cm-tr > span:nth-child(2) .cm-mark{ position:absolute; left:6px; top:50%; transform:translateY(-50%); width:40px; height:40px; margin:0; flex:none; font-family:"Sora","Inter",system-ui,sans-serif; font-size:15px; font-weight:800; color:#ff5c73; background:linear-gradient(160deg,#23232b,#121218); border:1px solid rgba(255,255,255,.14); box-shadow:0 0 0 3px rgba(230,58,85,.10); }
  html body .clipme-port.cm-dressed .cm-tr > span:nth-child(1){ grid-area:meta; font-family:"JetBrains Mono",ui-monospace,monospace!important; font-size:10.5px!important; letter-spacing:.12em; text-transform:uppercase; color:#8a8a96!important; white-space:nowrap; }
  html body .clipme-port.cm-dressed .cm-tr > span:nth-child(4){ grid-area:mode; justify-self:start; text-align:left!important; }
  html body .clipme-port.cm-dressed .cm-tr > span:nth-child(4) .cm-mode{ font-size:9px; padding:2px 7px 2px 6px; }
  html body .clipme-port.cm-dressed .cm-tr > span:nth-child(3){ grid-area:count; justify-self:end; align-self:center; text-align:right; font-family:"Sora","Inter",system-ui,sans-serif!important; font-size:26px!important; font-weight:800; letter-spacing:-.03em; line-height:1; color:#ff5c73; }
  html body .clipme-port.cm-dressed .cm-tr > span:nth-child(3)::after{ content:"clips"; display:block; margin-top:4px; font-family:"JetBrains Mono",ui-monospace,monospace; font-size:9px; font-weight:400; letter-spacing:.16em; text-transform:uppercase; color:#8a8a96; }
  html body .clipme-port.cm-dressed .cm-tr .cm-bar{ display:none!important; }
  html body .clipme-port.cm-dressed .cm-tr:hover{ background:transparent; }
  html.light body .clipme-port.cm-dressed .cm-tr > span:nth-child(2){ color:#16161a; }
  html.light body .clipme-port.cm-dressed .cm-tr{ border-top-color:rgba(0,0,0,.08)!important; }
  html.light body .clipme-port.cm-dressed .cm-tr > span:nth-child(2) .cm-mark{ background:#f3f3f6; border-color:rgba(0,0,0,.1); }
}

/* ==== part: 98-sweep.css ==== */
/* use-case card CTA */
html body .cm-usecases .cm-card-cta{ display:inline-flex; align-items:center; gap:6px; margin:16px 0 0; font-family:"Inter",system-ui,sans-serif; font-weight:700; font-size:14px; color:#ff8a9a!important; text-decoration:none!important; }
html body .cm-usecases .cm-card-cta i{ font-style:normal; transition:transform .16s; }
html body .cm-usecases .cm-card-cta:hover i{ transform:translateX(4px); }
/* comparison: the ClipMe row breathes, the rest wait (owner: "looks like a pitch deck") */
html body .cm-sidebyside .cm-row-us{ position:relative; overflow:hidden; }
html body .cm-sidebyside .cm-row-us::after{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,transparent 0,rgba(230,58,85,.16) 45%,rgba(83,252,24,.10) 55%,transparent 100%); transform:translateX(-100%); animation:cmRowSweep 3.6s cubic-bezier(.4,0,.2,1) infinite; }
html body .cm-sidebyside .cm-row:not(.cm-row-us) .cm-chip, html body .cm-sidebyside .cm-row:not(.cm-row-us) span:last-child > span{ animation:cmWaitBlink 2.8s ease-in-out infinite; }
@keyframes cmRowSweep{ 0%{ transform:translateX(-100%); } 60%,100%{ transform:translateX(100%); } }
@keyframes cmWaitBlink{ 0%,100%{ opacity:.55; } 50%{ opacity:1; } }
html body .cm-sidebyside .cm-inline-cta, html body .cm-ledger .cm-inline-cta{ margin:22px 0 0; }
/* Resources menu card: image on top, title under it, no text over the picture */
@media (min-width:992px){
  html body .a-ca_navbar_dropdown_list [class*="resources-dropdown_content"] > *:not([class*="-dropdown_links"]) > *{ display:flex!important; flex-direction:column!important; background:#111116; border:1px solid rgba(255,255,255,.08); }
  html body .a-ca_navbar_dropdown_list [class*="resources-dropdown_content"] > *:not([class*="-dropdown_links"]) > * *{ position:static!important; }
  html body .a-ca_navbar_dropdown_list [class*="resources-dropdown_content"] > *:not([class*="-dropdown_links"]) img{ width:100%!important; height:120px!important; object-fit:cover; display:block; border-radius:0!important; }
  html body .a-ca_navbar_dropdown_list [class*="resources-dropdown_content"] > *:not([class*="-dropdown_links"]) > * > *:not(:has(img)){ padding:10px 12px 12px!important; font-family:"Inter",system-ui,sans-serif!important; font-size:13.5px!important; font-weight:700!important; line-height:1.3!important; color:#fff!important; background:transparent!important; text-shadow:none!important; }
}
/* ENGINE: no green (owner) */
html body .clipme-eng-term[data-state="posted"]{ box-shadow:0 40px 80px -40px rgba(230,58,85,.7), 0 0 0 1px rgba(230,58,85,.3)!important; }
html body .clipme-eng-term[data-state="posted"] .clipme-eng-state{ color:#ff8a9a!important; border-color:rgba(230,58,85,.5)!important; }
html body .clipme-eng-ok{ color:#ff8a9a!important; }
html body .clipme-eng.posted .clipme-eng-ok{ text-shadow:0 0 12px rgba(230,58,85,.9)!important; }
html body .clipme-eng.posted .clipme-eng-cells b.on{ background:#e63a55!important; box-shadow:0 0 8px rgba(230,58,85,.8)!important; }
html body .clipme-eng-next{ display:none!important; }
html body .clipme-eng-fmts i, html body .clipme-eng-fmts i b{ font-style:normal!important; }
/* wide panel output rail: one card (owner: "only show 1 clip here") */
html body .clipme-wp-outrow > .clipme-wp-clip:nth-child(n+2){ display:none!important; }
/* studio editor mock: room to breathe (owner: "space this out") */
html body .clipme-st-top{ gap:32px!important; padding:26px 28px!important; }
html body .clipme-st-script{ line-height:1.95!important; font-size:15px!important; margin:0 0 22px!important; }
html body .clipme-st-rail{ gap:12px!important; margin:8px 0 18px!important; }
html body .clipme-st-vodgrid{ gap:8px!important; margin:10px 0 14px!important; }
html body .clipme-st-vod, html body .clipme-st-vodhead{ margin:8px 0!important; }
html body .clipme-st-tool{ margin:0 3px!important; }
html body .clipme-st-tracks{ padding:22px 28px 26px!important; gap:16px!important; }
html body .clipme-st-track{ margin:8px 0!important; }
html body .clipme-st-tc{ margin-bottom:14px!important; }
@media (max-width:760px){ html body .clipme-st-top{ gap:18px!important; padding:16px!important; } html body .clipme-st-tracks{ padding:14px 16px 18px!important; } }

html body .clipme-eng-fmts .f916{ width:28px!important; }
html body .clipme-eng-fmts i b{ font-size:8.5px!important; letter-spacing:0!important; }
html body .cm-usecases .cm-card-cta{ margin-bottom:4px; }
/* tiers: feature rows, not pills (owner: "ugly") */
html body .cm-tiers .cm-card li, html body .cm-tiers .cm-card ul > *{ position:relative; display:flex!important; align-items:flex-start; gap:10px; padding:10px 0 10px 28px!important; margin:0!important; border:0!important; border-top:1px solid rgba(255,255,255,.07)!important; border-radius:0!important; background:transparent!important; font-size:15px; line-height:1.45; }
html body .cm-tiers .cm-card li::before, html body .cm-tiers .cm-card ul > *::before{ content:"\2713"; position:absolute; left:2px; top:11px; width:16px; height:16px; border-radius:50%; background:rgba(230,58,85,.18); color:#ff8a9a; font-size:10px; line-height:16px; text-align:center; font-weight:700; }
html body .cm-tiers .cm-card ul{ margin:16px 0 0!important; padding:0!important; list-style:none!important; }
html body .cm-tiers .cm-card ul > *:first-child{ border-top:0!important; }
html.light body .cm-tiers .cm-card li, html.light body .cm-tiers .cm-card ul > *{ border-top-color:rgba(0,0,0,.08)!important; }
/* creators heading sits right on top of the live feed, no dead band (owner: "put this in a better place") */
html body .a_home1n_creators_h2{ margin:0 0 18px!important; padding:0!important; }
html body .a_home1n_customers_logos{ display:none!important; height:0!important; margin:0!important; }
html body .a_home1n_creators_layout{ padding-bottom:0!important; }
html body .clipme-cw{ margin-top:0!important; }
/* section headers → their visual (owner: "space this better") */
html body .home0625_layout > .home0625_text{ margin-bottom:34px!important; }
html body .home0625_section{ padding-top:72px!important; }
@media (max-width:760px){ html body .home0625_layout > .home0625_text{ margin-bottom:26px!important; } html body .home0625_section{ padding-top:56px!important; } }
/* hero headline: balanced lines (owner: "format text perfectly") */
html body .home0625_header h1, html body .clipme-hero h1{ text-wrap:balance; }

html body .cm-tiers .cm-deadline{ display:none!important; }
html body .cm-steps-host{ display:none!important; }
html body .cm-usecases .cm-card > .cm-card-cta{ margin:14px 16px 18px!important; }
/* tier feature list: rows with a check, not corner-ticked pills */
html body .cm-tiers .cm-feats{ display:block!important; gap:0!important; margin:16px 0 0!important; padding:0!important; list-style:none!important; }
html body .cm-tiers .cm-feats > li{ position:relative; display:flex!important; align-items:flex-start; gap:8px; padding:10px 0 10px 28px!important; margin:0!important; border:0!important; border-top:1px solid rgba(255,255,255,.08)!important; border-radius:0!important; background:transparent!important; font-size:15px; line-height:1.45; }
html body .cm-tiers .cm-feats > li:first-child{ border-top:0!important; }
html body .cm-tiers .cm-feats > li::before{ content:"\2713"!important; position:absolute!important; left:2px!important; top:11px!important; width:16px; height:16px; border-radius:50%; background:rgba(230,58,85,.18); color:#ff8a9a!important; font-size:10px!important; line-height:16px!important; text-align:center; font-weight:700; margin:0!important; }
html.light body .cm-tiers .cm-feats > li{ border-top-color:rgba(0,0,0,.08)!important; }
/* use-case card foot line + CTA (owner: "fix") */
html body .cm-usecases .cm-card .cm-stat{ display:flex!important; align-items:flex-start!important; gap:10px; font-size:10.5px!important; letter-spacing:.1em!important; line-height:1.45!important; padding:12px 16px!important; }
html body .cm-usecases .cm-card .cm-stat::before, html body .cm-usecases .cm-card .cm-stat > i:first-child{ align-self:flex-start!important; margin-top:2px!important; flex:none; }
html body .cm-usecases .cm-card > .cm-card-cta{ margin:8px 16px 16px!important; }
html body .home0625_header_text_h1{ text-wrap:balance; }
html body .home0625_header_text_h1 br{ display:inline; }
/* ENGINE outro: uniform stat columns; on phones quote → stats → CTA (owner: "put in better place") */
html body .clipme-eng-stat{ display:flex; flex-direction:column; align-items:flex-start; }
html body .clipme-eng-stat.s0 > b::after{ content:""; display:block; width:74px; height:4px; margin-top:8px; border-radius:999px; background:linear-gradient(90deg,#e63a55,#ff8a9a); box-shadow:0 0 8px rgba(230,58,85,.7); }
html body .clipme-eng-stat > span{ margin-top:10px!important; min-height:2.8em; }
@media (max-width:760px){
  html body .clipme-eng-grid{ display:grid!important; grid-template-columns:1fr!important; gap:0!important; }
  html body .clipme-eng-quote{ display:contents; }
  html body .clipme-eng-quote > p{ order:1; margin-bottom:0!important; }
  html body .clipme-eng-by{ order:2; margin:14px 0 30px!important; }
  html body .clipme-eng-stats{ order:3; gap:14px; justify-content:space-between; padding:24px 0; border-top:1px solid rgba(255,255,255,.08); border-bottom:1px solid rgba(255,255,255,.08); }
  html body .clipme-eng-quote > a{ order:4; margin-top:26px!important; width:100%; justify-content:center; }
  html body .clipme-eng-stat b{ font-size:44px!important; }
  html body .clipme-eng-stat > span{ font-size:12.5px; }
}
/* ENGINE outro: no red glow (owner) + the 18-cell line must actually show */
html body .clipme-eng.l2b .l2b{ opacity:1!important; transform:none!important; }
html body .clipme-eng-term, html body .clipme-eng-term[data-state="scoring"], html body .clipme-eng-term[data-state="posted"]{ box-shadow:0 30px 60px -40px rgba(0,0,0,.9)!important; border-color:rgba(255,255,255,.12)!important; }
html body .clipme-eng-stat > b{ text-shadow:none!important; }
html body .clipme-eng-stat.s0 > b::after, html body .clipme-eng-pips b.on, html body .clipme-eng-strike b, html body .clipme-eng-prog b, html body .clipme-eng-cells b.on, html body .clipme-eng-fmts i, html body .clipme-eng-fmts i.on{ box-shadow:none!important; }
html body .clipme-eng.posted .clipme-eng-ok{ text-shadow:none!important; }
html body .clipme-eng::before{ opacity:.6; }
html body .clipme-eng-line.l2b{ flex-wrap:nowrap!important; white-space:nowrap; }
/* hero headline: no hard breaks; balanced wrap and a size that fits the column at every width */
html body .home0625_header_text_h1{ text-wrap:balance; max-width:none!important; }
@media (min-width:700px) and (max-width:1100px){ html body .home0625_header_text_h1{ font-size:50px!important; line-height:1.06!important; max-width:640px!important; margin-left:auto; margin-right:auto; } }
@media (max-width:699px){ html body .home0625_header_text_h1{ font-size:38px!important; line-height:1.08!important; } }
@media (max-width:699px){ html body .home0625_header_text_h1 .clipme-hl{ display:block; } }
@media (max-width:699px){ html body .home0625_header_text_h1{ font-size:34px!important; letter-spacing:-.03em; } html body .home0625_header_text_h1 > span:not(.clipme-hl), html body .home0625_header_text_h1{ text-wrap:balance; } }
@media (max-width:360px){ html body .home0625_header_text_h1{ font-size:31px!important; } }
/* hero third line: the rotating "Built for …" heading, styled as the headline's red line */
html body .clipme-hero-bf{ margin:0!important; padding:0!important; color:#e63a55!important; text-wrap:balance; }
html body .clipme-hero-bf .clipme-bf-word, html body .clipme-hero-bf .clipme-bf{ color:inherit; }
html body .home0625_header_text_h1{ margin-bottom:0!important; }
/* hero line three: white, sized exactly like the headline at every breakpoint */
html body .clipme-hero-bf{ color:#fff!important; }
@media (max-width:699px){ html body .clipme-hero-bf{ font-size:34px!important; line-height:1.08!important; letter-spacing:-.03em!important; } }
@media (max-width:360px){ html body .clipme-hero-bf{ font-size:31px!important; } }
@media (min-width:700px) and (max-width:1100px){ html body .clipme-hero-bf{ font-size:50px!important; line-height:1.06!important; } }
/* pricing receipt: badge in the header instead of a floating stamp; lighter quote block */
html body .cm-kr-badge{ display:inline-block; padding:3px 9px; border:2px solid #e63a55; border-radius:6px; color:#e63a55; font-weight:800; font-size:11px; letter-spacing:.18em; text-transform:uppercase; transform:rotate(-4deg); }
html body .cm-kr-stamp{ display:none!important; }
html body .clipme-pg-wrap[data-kind="pricing"] blockquote, html body .clipme-pg-wrap[data-kind="pricing"] .clipme-pg-answer{ font-size:17px!important; line-height:1.55!important; color:rgba(255,255,255,.72)!important; }
/* no ribbon (owner) */
html body .clipme-ribbon{ display:none!important; }
/* hero panel on phones: nothing reflows between beats */
@media (max-width:760px){
  html body .clipme-sh-watching{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  html body .clipme-sh-msg{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  html body .clipme-sh-caption{ min-height:2.6em; }
  html body .clipme-sh-msgs{ overflow:hidden; }
}
/* compare table: Safari needs separate borders for sticky cells */
@media (max-width:760px){
  html body .cm-table-wrap table{ border-collapse:separate!important; border-spacing:0!important; }
  html body .cm-table-wrap th:first-child, html body .cm-table-wrap td:first-child{ position:sticky!important; left:0; z-index:3!important; background:#101016!important; min-width:132px; max-width:150px; border-right:1px solid rgba(255,255,255,.1); }
  html body .cm-table-wrap th[colspan], html body .cm-table-wrap td[colspan]{ position:sticky!important; left:0; z-index:3!important; background:#101016!important; }
  html body .cm-table-wrap thead th{ background:#101016!important; }
  html body .cm-table-wrap td, html body .cm-table-wrap th{ white-space:nowrap; }
}
@media (max-width:760px){
  html body .cm-table-wrap th[colspan], html body .cm-table-wrap td[colspan]{ position:static!important; }
  html body .cm-sticklabel{ position:sticky; left:14px; display:inline-block; }
}
/* hero eyebrow: small again (owner) */
html body .home0625_header .opus-font-section-lg, html body #hero-heading-v1 > .opus-font-section-lg{ font-size:12px!important; line-height:1.3!important; letter-spacing:.12em!important; text-transform:uppercase; font-weight:700; margin-bottom:10px!important; }
@media (min-width:700px){ html body .home0625_header .opus-font-section-lg, html body #hero-heading-v1 > .opus-font-section-lg{ font-size:13px!important; } }
/* closing CTA: everything centered (owner: "not formatted right") */
html body .home0625_cta_layout, html body .home0625_cta_content, html body .home0625_cta_anim-trigger{ display:flex!important; flex-direction:column!important; align-items:center!important; text-align:center!important; }
html body .home0625_cta_anim-trigger > *{ margin-left:auto!important; margin-right:auto!important; }
html body .home0625_cta_section{ padding-bottom:56px!important; }
/* signal duel as ingest tape: ClipMe's 18 light in sequence under a sweeping playhead with the horse ahead; OpusClip's 8 follow, dimmer */
html body .cm-duel-cells{ position:relative; gap:3px!important; align-items:flex-end; }
html body .cm-duel .cm-duel-cells i, html body .cm-duel.is-in .cm-duel-cells i.on{ height:26px!important; border-radius:3px!important; border:0!important; background:rgba(255,255,255,.07); box-shadow:none; opacity:1; transform:none; }
html body .cm-duel.is-in .cm-duel-cells i.on{ animation:cmDepthCell 7s linear infinite!important; animation-delay:calc(var(--i,0) * .358s)!important; }
html body .cm-duel-row:not(.us) .cm-duel-cells i.on{ filter:saturate(.35) brightness(.75); }
html body .cm-duel.is-in .cm-duel-row.us .cm-duel-cells::after{ content:""; position:absolute; top:-6px; bottom:-6px; left:0; width:2px; margin-left:-1px; border-radius:2px; background:#fff; box-shadow:0 0 14px 2px rgba(255,255,255,.7); animation:cmDepthHead 7s linear infinite; }
html body .cm-duel.is-in .cm-horse{ animation:cmDepthHorse 7s linear infinite!important; top:-30px!important; opacity:.95!important; transform:translateX(-50%); }
html body .cm-duel.is-in .cm-horse .lg{ animation:none!important; }
@media (max-width:700px){ html body .cm-duel-cells i{ height:20px!important; } html body .cm-duel.is-in .cm-horse{ top:-26px!important; font-size:18px!important; } }
/* eyebrow fits 375px; red headline line a touch bigger (owner) */
html body .home0625_header .opus-font-section-lg, html body #hero-heading-v1 > .opus-font-section-lg{ letter-spacing:.06em!important; white-space:normal!important; }
@media (max-width:699px){ html body .home0625_header .opus-font-section-lg, html body #hero-heading-v1 > .opus-font-section-lg{ font-size:11px!important; letter-spacing:.05em!important; padding:0 8px; } }
html body .home0625_header_text_h1 .clipme-hl{ font-size:1.14em; line-height:1.05; }
html body .clipme-hero-bf .clipme-bf-word, html body .clipme-hero-bf .clipme-bf, html body .clipme-hero-bf .clipme-bf-ghost{ color:#fff!important; opacity:1; }
/* hero line three: its own line, never wrapping into the two above (owner) */
html body .clipme-hero-bf{ display:block; white-space:nowrap!important; margin-top:6px!important; line-height:1.15!important; }
html body .home0625_header_text_h1 .clipme-hl{ display:block; line-height:1.1; margin-bottom:2px; }
@media (max-width:699px){ html body .clipme-hero-bf{ font-size:clamp(24px, 8.2vw, 34px)!important; margin-top:8px!important; } }
@media (min-width:700px){ html body .home0625_header_text_h1 .clipme-hl{ display:inline; } }
/* feature-page numbers grid: stack on phones (sweep finding) */
@media (max-width:700px){ html body .a_n-features_numbers_layout{ display:grid!important; grid-template-columns:1fr!important; gap:18px!important; } html body .a_n-features_numbers_layout > *{ width:100%!important; max-width:none!important; text-align:left; } }
/* owner: keep this sizing — line three same size as line one */
@media (max-width:699px){ html body .clipme-hero-bf{ font-size:34px!important; letter-spacing:-.035em!important; } }
@media (max-width:360px){ html body .clipme-hero-bf{ font-size:31px!important; } }
/* eyebrow: one line again (owner) */
html body .home0625_header .opus-font-section-lg, html body #hero-heading-v1 > .opus-font-section-lg{ white-space:nowrap!important; }
@media (max-width:699px){ html body .home0625_header .opus-font-section-lg, html body #hero-heading-v1 > .opus-font-section-lg{ font-size:clamp(9px, 2.85vw, 11px)!important; letter-spacing:.04em!important; padding:0!important; } }
/* duel sweep (replaces the CSS-timed cells) */
html body .cm-duel .cm-duel-cells i, html body .cm-duel.is-in .cm-duel-cells i.on{ animation:none!important; transition:background .12s, box-shadow .12s; background:rgba(255,255,255,.07); }
html body .cm-duel .cm-duel-cells i.lit{ background:linear-gradient(180deg,#ff6b80,#e63a55)!important; box-shadow:0 0 10px rgba(230,58,85,.35)!important; }
html body .cm-duel .cm-duel-row:not(.us) .cm-duel-cells i.lit{ filter:saturate(.35) brightness(.75); }
html body .cm-duel.is-in .cm-duel-row.us .cm-duel-cells::after{ content:none!important; }
html body .cm-duel-ph{ position:absolute; top:-6px; bottom:-6px; left:0; width:2px; margin-left:-1px; border-radius:2px; background:#fff; box-shadow:0 0 14px 2px rgba(255,255,255,.7); pointer-events:none; }
html body .cm-duel.is-done .cm-duel-ph{ opacity:.35; }
html body .cm-duel.is-in .cm-horse, html body .cm-duel .cm-horse{ animation:none!important; opacity:.95!important; transform:translateX(-50%)!important; left:7%; transition:none; }
/* three-steps: clean bars panel, no stills behind (owner) */
html body .clipme-sv-strip{ display:none!important; }
html body .clipme-step .clipme-sv{ background:#0b0b10!important; }
/* Prompt Mode: neon (owner) */
html body .clipme-pm{ box-shadow:0 0 0 1px rgba(230,58,85,.45), 0 0 34px -6px rgba(230,58,85,.55), inset 0 0 40px -30px rgba(230,58,85,.6)!important; }
html body .clipme-pm-live{ color:#5df08a!important; text-shadow:0 0 10px rgba(83,252,24,.9); }
html body .clipme-pm-live::before, html body .clipme-pm-head i{ box-shadow:0 0 0 3px rgba(83,252,24,.18), 0 0 12px rgba(83,252,24,.9)!important; }
html body .clipme-pm-field{ box-shadow:0 0 0 1px rgba(255,255,255,.12), 0 0 18px -4px rgba(83,252,24,.55)!important; }
html body .clipme-pm-caret{ background:#53fc18!important; box-shadow:0 0 10px rgba(83,252,24,.95); }
html body .clipme-pm-tag.is-on, html body .clipme-pm-tag[aria-pressed="true"], html body .clipme-pm-tag.on{ box-shadow:0 0 0 2px rgba(230,58,85,.45), 0 0 18px rgba(230,58,85,.85)!important; text-shadow:0 0 8px rgba(255,255,255,.5); }
html body .clipme-pm-cell.is-on, html body .clipme-pm-cell.on, html body .clipme-pm-cell.is-hit{ box-shadow:0 0 0 2px #53fc18, 0 0 16px rgba(83,252,24,.85)!important; }
html body .clipme-pm-cell{ transition:box-shadow .25s; }
/* hero input: never clip the placeholder (owner: overflow) */
html body .home0625_header input[type="text"], html body .home0625_header input[type="url"], html body .home0625_header input{ text-overflow:ellipsis; overflow:hidden; white-space:nowrap; min-width:0; }
@media (max-width:420px){ html body .home0625_header input{ font-size:15px!important; padding-right:12px!important; } }
/* wedge: nothing changes height while it runs (owner: no page movement) */
html body .clipme-lw-viralhead{ flex-wrap:nowrap!important; white-space:nowrap; gap:8px; }
html body .clipme-lw-viralhead span{ overflow:hidden; text-overflow:ellipsis; }
html body .clipme-lw-toasts{ min-height:112px; }
html body .clipme-lw-sub{ min-height:2.9em; }
html body .clipme-lw-lanehead b{ white-space:nowrap; }
html body .clipme-lw-lanehead .clipme-lw-chip{ flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }
html body .clipme-lw-lane.them{ min-height:200px; }
html body .clipme-lw-num b{ min-width:2ch; display:inline-block; }
@media (max-width:700px){ html body .clipme-lw-viralhead{ font-size:9.5px; } html body .clipme-lw-viralhead b{ font-size:11px; } html body .clipme-lw-chip{ font-size:9px; padding:3px 7px; } }
/* ticker pill lives in the hero on every width */
html body .clipme-ticker{ display:inline-flex!important; margin:0 auto 12px!important; }
html body a[data-clipme-fo] .clipme-fo-was{ opacity:.55; text-decoration:line-through; margin-right:.15em; font-weight:500; }
/* owner: no horse in the duel */
html body .cm-duel .cm-horse{ display:none!important; }
html body h2, html body h1, html body h3{ text-wrap:balance; }
/* studio mock: fixed geometry while it cycles (owner) */
html body .clipme-st-tool{ transform:none!important; transition:box-shadow .2s, color .2s, background .2s!important; flex:none; }
html body .clipme-st-tool[class*="is-"], html body .clipme-st-tool.on, html body .clipme-st-tool[aria-pressed="true"]{ transform:none!important; outline:0; }
@media (max-width:760px){
  html body *:has(> .clipme-st-tool){ display:flex!important; flex-wrap:nowrap!important; overflow-x:auto; gap:8px!important; padding:6px 2px!important; justify-content:flex-start!important; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  html body *:has(> .clipme-st-tool)::-webkit-scrollbar{ display:none; }
  html body .clipme-st-rail{ display:flex!important; flex-wrap:nowrap!important; overflow-x:auto; gap:8px!important; scrollbar-width:none; }
  html body .clipme-st-rail::-webkit-scrollbar{ display:none; }
  html body .clipme-st-rail > *{ flex:none; }
  html body .clipme-st-vodgrid{ grid-template-columns:repeat(3,1fr)!important; }
}
/* desktop: live panel and studio mock are two sections, not one blob (owner) */
@media (min-width:761px){
  html body .clipme-st{ margin-top:88px!important; position:relative; }
  html body .clipme-st::before{ content:""; position:absolute; left:10%; right:10%; top:-44px; height:1px; background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent); }
}
/* duel on desktop: compact tape, not stretched blocks */
@media (min-width:701px){
  html body .cm-duel-row{ grid-template-columns:110px minmax(0,520px) 44px!important; }
  html body .cm-duel .cm-duel-cells i{ height:30px!important; border-radius:4px!important; }
}
/* no ribbon ⇒ no reserved band above the nav (owner: dead space) */
html body, html body.has-clipme-ribbon{ --clipme-ribbon-h:0px!important; padding-top:0!important; }
html body .a-ca_navbar{ top:0!important; margin-top:0!important; }

/* owner 09-18 'dead space': the visible bar is the fixed wrapper, not .a-ca_navbar. Pin it to 0. */
html body .a-ca_navbar_fixed-wrapper{ top:0!important; }
/* the fixed bar is 73px tall but the Webflow spacer only reserves 61px, so pages whose content starts
   at the top (pricing) lost 12px under the bar once the ribbon seat was removed. Match the spacer. */
html body .a-ca_navbar{ min-height:73px; }
html body .a-ca_navbar_spacer{ min-height:73px; }
/* the original hero carousel is replaced by the live panel in JS; never paint it before that */
html body .home0625_anim_swiper{ display:none!important; }

/* ==== part: 99-depth.css ==== */
/* ---- depth on every ported page (owner: "all pages need depth") ---- */
html body .clipme-pg{ position:relative; isolation:isolate; }
html body .clipme-pg::before{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:
  radial-gradient(ellipse 60% 38% at 50% 0%, rgba(230,58,85,.20), transparent 70%),
  linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px) 0 0/100% 72px,
  linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px) 0 0/72px 100%;
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 60%,transparent); mask-image:linear-gradient(180deg,#000 0,#000 60%,transparent); }
html.light body .clipme-pg::before{ background:radial-gradient(ellipse 60% 38% at 50% 0%, rgba(230,58,85,.10), transparent 70%), linear-gradient(rgba(0,0,0,.035) 1px,transparent 1px) 0 0/100% 72px, linear-gradient(90deg,rgba(0,0,0,.035) 1px,transparent 1px) 0 0/72px 100%; }
html body .clipme-pg-h1{ position:relative; }
html body .clipme-pg-h1::before{ content:""; position:absolute; left:-40px; top:-60px; width:360px; height:220px; z-index:-1; pointer-events:none; background:radial-gradient(closest-side, rgba(230,58,85,.22), rgba(230,58,85,.06) 55%, transparent 75%); }
/* every other prose section sits on a soft panel */
html body .clipme-pg-wrap > section:not([class]):nth-of-type(even){ position:relative; padding:28px 28px 24px; margin:40px -28px; border-radius:22px; background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.012)); border:1px solid rgba(255,255,255,.07); box-shadow:0 40px 80px -60px rgba(0,0,0,.9); }
html body .clipme-pg-wrap > section:not([class]):nth-of-type(even)::before{ content:""; position:absolute; left:28px; right:28px; top:-1px; height:1px; background:linear-gradient(90deg,transparent,rgba(230,58,85,.7),transparent); }
html.light body .clipme-pg-wrap > section:not([class]):nth-of-type(even){ background:linear-gradient(180deg,rgba(0,0,0,.03),rgba(0,0,0,.01)); border-color:rgba(0,0,0,.07); box-shadow:none; }
/* generic card grids inside prose sections: gradient edge, lift on hover, accent tick */
html body .clipme-pg-wrap > section:not([class]) > div > div:has(> h3), html body .clipme-pg-wrap > section:not([class]) > ul > li:has(> h3), html body .clipme-pg-wrap > section:not([class]) > div > a:has(> h3){ position:relative; border-radius:18px!important; border:1px solid rgba(255,255,255,.09)!important; background:linear-gradient(160deg,rgba(255,255,255,.045),rgba(255,255,255,.015))!important; box-shadow:0 30px 60px -50px rgba(0,0,0,.9); transition:transform .22s, border-color .22s, box-shadow .22s; overflow:hidden; }
html body .clipme-pg-wrap > section:not([class]) > div > div:has(> h3)::before, html body .clipme-pg-wrap > section:not([class]) > ul > li:has(> h3)::before, html body .clipme-pg-wrap > section:not([class]) > div > a:has(> h3)::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:linear-gradient(180deg,#ff6b80,#e63a55 60%,transparent); opacity:.85; }
html body .clipme-pg-wrap > section:not([class]) > div > div:has(> h3)::after, html body .clipme-pg-wrap > section:not([class]) > ul > li:has(> h3)::after{ content:""; position:absolute; right:-40px; top:-40px; width:140px; height:140px; border-radius:50%; background:radial-gradient(closest-side, rgba(230,58,85,.22), transparent); pointer-events:none; }
html body .clipme-pg-wrap > section:not([class]) > div > div:has(> h3):hover, html body .clipme-pg-wrap > section:not([class]) > ul > li:has(> h3):hover, html body .clipme-pg-wrap > section:not([class]) > div > a:has(> h3):hover{ transform:translateY(-3px); border-color:rgba(230,58,85,.45)!important; box-shadow:0 30px 60px -40px rgba(230,58,85,.7); }
html.light body .clipme-pg-wrap > section:not([class]) > div > div:has(> h3), html.light body .clipme-pg-wrap > section:not([class]) > ul > li:has(> h3){ background:#fff!important; border-color:rgba(0,0,0,.08)!important; }
/* hero tape: the default moving element for pages that have no bespoke visual */
html body .cm-depth{ position:relative; margin:30px 0 8px; padding:16px 16px 14px; border-radius:18px; background:#0b0c11; border:1px solid rgba(255,255,255,.09); box-shadow:0 30px 60px -40px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.04); overflow:hidden; font-family:"JetBrains Mono",ui-monospace,monospace; }
html body .cm-depth-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.5); }
html body .cm-depth-head b{ display:inline-flex; align-items:center; gap:7px; color:#fff; font-weight:700; }
html body .cm-depth-head b i{ width:7px; height:7px; border-radius:50%; background:#e63a55; animation:cmDepthPing 1.4s ease-out infinite; }
html body .cm-depth-tape{ position:relative; display:flex; gap:3px; height:24px; margin:12px 0 10px; }
html body .cm-depth-tape i{ flex:1; border-radius:3px; background:rgba(255,255,255,.07); animation:cmDepthCell 7s linear infinite; animation-delay:calc(var(--i) * 0.16s); }
html body .cm-depth-tape em{ position:absolute; top:-5px; bottom:-5px; width:2px; margin-left:-1px; border-radius:2px; background:#fff; box-shadow:0 0 14px 2px rgba(255,255,255,.7); animation:cmDepthHead 7s linear infinite; }
html body .cm-depth-tape em::after{ content:""; position:absolute; left:-4px; top:-5px; width:10px; height:10px; border-radius:50%; background:#fff; box-shadow:0 0 12px rgba(255,255,255,.9); }
html body .cm-depth-tape span{ position:absolute; top:-24px; font-size:18px; line-height:1; transform:translateX(-50%); filter:drop-shadow(0 0 8px rgba(83,252,24,.8)); animation:cmDepthHorse 7s linear infinite; }
html body .cm-depth-sigs{ display:flex; align-items:flex-end; gap:3px; height:18px; width:180px; }
html body .cm-depth-sigs i{ flex:1; height:100%; border-radius:2px 2px 0 0; background:linear-gradient(180deg,#ff8a9a,#e63a55); transform-origin:bottom; animation:cmDepthSig 1.6s ease-in-out infinite alternate; animation-delay:calc(var(--i) * -0.13s); }
html body .cm-depth-foot{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
html body .cm-depth-chips{ display:flex; gap:6px; flex-wrap:wrap; }
html body .cm-depth-chips span{ font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.7); border:1px solid rgba(255,255,255,.14); border-radius:999px; padding:4px 9px; background:rgba(255,255,255,.03); }
html body .cm-depth-chips span.hot{ color:#5df08a; border-color:rgba(69,224,106,.45); }
@keyframes cmDepthPing{ 0%{ box-shadow:0 0 0 0 rgba(230,58,85,.7); } 100%{ box-shadow:0 0 0 9px rgba(230,58,85,0); } }
@keyframes cmDepthCell{ 0%,6%{ background:rgba(255,255,255,.07); } 8%,88%{ background:linear-gradient(180deg,#ff6b80,#e63a55); box-shadow:0 0 10px rgba(230,58,85,.35); } 92%,100%{ background:rgba(255,255,255,.07); box-shadow:none; } }
@keyframes cmDepthHead{ 0%{ left:0%; } 92%{ left:100%; } 100%{ left:100%; } }
@keyframes cmDepthHorse{ 0%{ left:6%; } 92%{ left:100%; } 100%{ left:100%; } }
@keyframes cmDepthSig{ from{ transform:scaleY(.18); opacity:.4; } to{ transform:scaleY(1); opacity:1; } }
@media (max-width:700px){
  html body .clipme-pg-wrap > section:not([class]):nth-of-type(even){ padding:20px 16px 16px; margin:32px -16px; border-radius:18px; }
  html body .clipme-pg-wrap > section:not([class]):nth-of-type(even)::before{ left:16px; right:16px; }
  html body .cm-depth{ padding:14px 12px 12px; }
  html body .cm-depth-sigs{ width:100%; }
  html body .cm-depth-head{ font-size:9.5px; }
}
@media (prefers-reduced-motion:reduce){ html body .cm-depth *{ animation:none!important; } html body .cm-depth-tape i{ background:linear-gradient(180deg,#ff6b80,#e63a55); } }

/* hub pages (business/, for/): persona cards */
html body .clipme-pg-wrap .clipme-hub > a, html body .clipme-pg-wrap .clipme-hub > div, html body .clipme-pg-wrap .clipme-hub > li{ position:relative; overflow:hidden; border-radius:18px!important; border:1px solid rgba(255,255,255,.09)!important; background:linear-gradient(160deg,rgba(255,255,255,.045),rgba(255,255,255,.015))!important; box-shadow:0 30px 60px -50px rgba(0,0,0,.9); transition:transform .22s, border-color .22s, box-shadow .22s; }
html body .clipme-pg-wrap .clipme-hub > a::before, html body .clipme-pg-wrap .clipme-hub > div::before, html body .clipme-pg-wrap .clipme-hub > li::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:linear-gradient(180deg,#ff6b80,#e63a55 60%,transparent); opacity:.85; }
html body .clipme-pg-wrap .clipme-hub > a::after, html body .clipme-pg-wrap .clipme-hub > div::after, html body .clipme-pg-wrap .clipme-hub > li::after{ content:""; position:absolute; right:-40px; top:-40px; width:150px; height:150px; border-radius:50%; background:radial-gradient(closest-side, rgba(230,58,85,.22), transparent); pointer-events:none; }
html body .clipme-pg-wrap .clipme-hub > a:hover, html body .clipme-pg-wrap .clipme-hub > div:hover, html body .clipme-pg-wrap .clipme-hub > li:hover{ transform:translateY(-3px); border-color:rgba(230,58,85,.45)!important; box-shadow:0 30px 60px -40px rgba(230,58,85,.7); }
html.light body .clipme-pg-wrap .clipme-hub > a, html.light body .clipme-pg-wrap .clipme-hub > div, html.light body .clipme-pg-wrap .clipme-hub > li{ background:#fff!important; border-color:rgba(0,0,0,.08)!important; box-shadow:none; }
/* captions "Speed" section: light behind the phone, grid behind the section */
html body .a_n-captions_block_visual-1, html body .a_n-captions_block_visual-2{ position:relative; }
html body .a_n-captions_block_visual-1::before, html body .a_n-captions_block_visual-2::before{ content:""; position:absolute; left:50%; top:50%; width:120%; height:120%; transform:translate(-50%,-50%); z-index:0; pointer-events:none; background:radial-gradient(closest-side, rgba(230,58,85,.22), rgba(230,58,85,.05) 55%, transparent 75%); }
html body .a_n-captions_block_visual-1 > *, html body .a_n-captions_block_visual-2 > *{ position:relative; z-index:1; }
html body [class*="a_n-captions_block"]:not([class*="_visual"]):not([class*="_text"]){ position:relative; }
/* editing row (Prompt Mode + reframe): both frames the same size (owner: "make frames same size") */
@media (min-width:992px){
  html body .home0625_editing_items{ align-items:stretch!important; }
  html body .home0625_editing_item{ display:flex!important; flex-direction:column!important; }
  html body .home0625_editing_item_visual{ flex:1 1 auto!important; display:flex!important; flex-direction:column!important; min-height:0; }
  html body .home0625_editing_item_visual > .clipme-pm, html body .home0625_editing_item_visual > .clipme-fs{ flex:1 1 auto!important; min-height:100%; box-sizing:border-box; }
  html body .home0625_editing_item_visual > .clipme-fs{ display:flex!important; flex-direction:column!important; justify-content:center!important; }
}

/* wide panel: no merged 12-tile output wall under the stage (owner: "get rid of") */
html body .clipme-fan.is-merged{ display:none!important; }

/* ==== part: 99-nav-mega.css ==== */
/* ---- nav dropdowns as proper mega menus (owner: "fix categories", "better layout on desktop") ---- */
@media (min-width:992px){
  html body .a-ca_navbar_dropdown_list{ min-width:0!important; max-width:none!important; overflow:visible!important; padding:0!important; background:transparent!important; }
  html body .a-ca_navbar_dropdown_list [class*="features-dropdown_content"]{ display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr))!important; gap:2px 6px!important; width:min(880px,calc(100vw - 40px))!important; max-width:none!important; box-sizing:border-box; padding:12px!important; margin:8px 0 0!important; background:#0b0b0f!important; border:1px solid rgba(255,255,255,.1); border-radius:18px; box-shadow:0 40px 80px -30px rgba(0,0,0,.9), 0 0 0 1px rgba(255,255,255,.03) inset; }
  html body .a-ca_navbar_dropdown_list [class*="features-dropdown_content"] > .a_custom-styles{ display:none!important; }
  html body .a-ca_navbar_dropdown_list a[class*="features-dropdown_link"]{ display:grid!important; grid-template-columns:42px minmax(0,1fr)!important; gap:12px!important; align-items:center!important; padding:10px 12px!important; margin:0!important; min-height:0!important; height:auto!important; border-radius:12px!important; width:auto!important; max-width:none!important; transition:background .15s, transform .15s; }
  html body .a-ca_navbar_dropdown_list a[class*="features-dropdown_link"]:hover{ background:rgba(255,255,255,.06)!important; transform:translateX(2px); }
  html body .a-ca_navbar_dropdown_list div[class*="_link_icon_wrapper"]{ width:42px!important; height:42px!important; min-width:0!important; border-radius:11px!important; padding:9px!important; margin:0!important; background:linear-gradient(160deg,#1c1c23,#111116)!important; border:1px solid rgba(255,255,255,.1); display:flex!important; align-items:center; justify-content:center; box-sizing:border-box; }
  html body .a-ca_navbar_dropdown_list div[class*="_link_icon_wrapper"] svg{ width:100%!important; height:100%!important; }
  html body .a-ca_navbar_dropdown_list div[class*="_link_text"]{ min-width:0!important; width:auto!important; max-width:none!important; }
  html body .a-ca_navbar_dropdown_list [class*="_link_h"]{ font-family:"Inter",system-ui,sans-serif!important; font-size:14.5px!important; font-weight:700!important; line-height:1.25!important; letter-spacing:-.01em; margin:0 0 2px!important; white-space:normal!important; color:#fff!important; }
  html body .a-ca_navbar_dropdown_list [class*="_link_p"]{ font-family:"Inter",system-ui,sans-serif!important; font-size:12.5px!important; line-height:1.35!important; color:rgba(255,255,255,.55)!important; margin:0!important; white-space:normal!important; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  html.light body .a-ca_navbar_dropdown_list [class*="-dropdown_content"]{ background:#fff!important; border-color:rgba(0,0,0,.08); }
  html.light body .a-ca_navbar_dropdown_list [class*="_link_h"]{ color:#16161a!important; }
  html.light body .a-ca_navbar_dropdown_list [class*="_link_p"]{ color:rgba(0,0,0,.55)!important; }
  html.light body .a-ca_navbar_dropdown_list div[class*="_link_icon_wrapper"]{ background:#f3f3f6!important; border-color:rgba(0,0,0,.08); }
}
@media (min-width:992px) and (max-width:1199px){
  html body .a-ca_navbar_dropdown_list [class*="features-dropdown_content"]{ grid-template-columns:repeat(2,minmax(0,1fr))!important; width:min(640px,calc(100vw - 40px))!important; }
}
@media (max-width:991px){
  html body .a-ca_navbar_dropdown_list [class*="features-dropdown_content"]{ display:flex!important; flex-direction:column!important; gap:0!important; width:100%!important; padding:4px 0 10px!important; }
  html body .a-ca_navbar_dropdown_list a[class*="features-dropdown_link"]{ display:grid!important; grid-template-columns:36px minmax(0,1fr)!important; gap:12px!important; align-items:center!important; padding:9px 12px!important; min-height:0!important; height:auto!important; }
  html body .a-ca_navbar_dropdown_list div[class*="_link_icon_wrapper"]{ width:36px!important; height:36px!important; padding:8px!important; border-radius:9px!important; }
  html body .a-ca_navbar_dropdown_list [class*="_link_h"]{ font-size:14px!important; margin:0!important; white-space:normal!important; }
  html body .a-ca_navbar_dropdown_list [class*="_link_p"]{ display:none!important; }
}

/* nav founding pill: flex trims the whitespace text nodes, so space the pieces with gap */
html body a[data-clipme-fo]{ display:inline-flex!important; align-items:center; gap:.32em; white-space:nowrap; }

/* ---- Solutions: title+text cards in a 3-col grid, side cards to the right ---- */
@media (min-width:992px){
  html body .a-ca_navbar_dropdown_list [class*="solutions-dropdown_content"], html body .a-ca_navbar_dropdown_list [class*="resources-dropdown_content"]{ display:flex!important; align-items:stretch; gap:12px!important; width:auto!important; max-width:calc(100vw - 40px)!important; box-sizing:border-box; padding:12px!important; margin:8px 0 0!important; background:#0b0b0f!important; border:1px solid rgba(255,255,255,.1); border-radius:18px; box-shadow:0 40px 80px -30px rgba(0,0,0,.9); }
  html body .a-ca_navbar_dropdown_list [class*="solutions-dropdown_links"]{ display:grid!important; grid-template-columns:repeat(3,220px)!important; gap:2px 6px!important; align-content:start; }
  html body .a-ca_navbar_dropdown_list a[class*="solutions-dropdown_link"]{ display:flex!important; flex-direction:column!important; gap:3px!important; padding:10px 12px!important; margin:0!important; min-height:0!important; height:auto!important; width:auto!important; border-radius:12px!important; transition:background .15s, transform .15s; }
  html body .a-ca_navbar_dropdown_list a[class*="solutions-dropdown_link"]:hover{ background:rgba(255,255,255,.06)!important; transform:translateX(2px); }
  html body .a-ca_navbar_dropdown_list [class*="solutions-dropdown_link_title"]{ font-family:"Inter",system-ui,sans-serif!important; font-size:14.5px!important; font-weight:700!important; line-height:1.25!important; color:#fff!important; margin:0!important; white-space:normal!important; }
  html body .a-ca_navbar_dropdown_list [class*="solutions-dropdown_link_text"]{ font-family:"Inter",system-ui,sans-serif!important; font-size:12.5px!important; line-height:1.35!important; color:rgba(255,255,255,.55)!important; margin:0!important; white-space:normal!important; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  /* Resources: plain links in two columns */
  html body .a-ca_navbar_dropdown_list [class*="resources-dropdown_links"]{ display:grid!important; grid-template-columns:repeat(2,190px)!important; gap:2px 6px!important; align-content:start; }
  html body .a-ca_navbar_dropdown_list a[class*="resources-dropdown_link"]{ display:block!important; padding:9px 12px!important; margin:0!important; min-height:0!important; height:auto!important; width:auto!important; border-radius:10px!important; font-family:"Inter",system-ui,sans-serif!important; font-size:14px!important; font-weight:600!important; color:#fff!important; white-space:nowrap!important; transition:background .15s; }
  html body .a-ca_navbar_dropdown_list a[class*="resources-dropdown_link"] div{ white-space:nowrap!important; font-size:14px!important; }
  html body .a-ca_navbar_dropdown_list a[class*="resources-dropdown_link"]:hover{ background:rgba(255,255,255,.06)!important; }
  /* side cards (anything in the content that is not the links block) */
  html body .a-ca_navbar_dropdown_list [class*="solutions-dropdown_content"] > *:not([class*="-dropdown_links"]), html body .a-ca_navbar_dropdown_list [class*="resources-dropdown_content"] > *:not([class*="-dropdown_links"]){ display:flex!important; gap:10px!important; align-items:stretch; width:auto!important; max-width:none!important; margin:0!important; padding:0 0 0 12px!important; border-left:1px solid rgba(255,255,255,.08); }
  html body .a-ca_navbar_dropdown_list [class*="solutions-dropdown_content"] > *:not([class*="-dropdown_links"]) > *, html body .a-ca_navbar_dropdown_list [class*="resources-dropdown_content"] > *:not([class*="-dropdown_links"]) > *{ width:200px!important; max-width:200px!important; min-height:0!important; height:auto!important; border-radius:14px!important; overflow:hidden; }
  html body .a-ca_navbar_dropdown_list [class*="solutions-dropdown_content"] img, html body .a-ca_navbar_dropdown_list [class*="resources-dropdown_content"] img{ width:100%!important; height:auto!important; max-height:180px!important; object-fit:cover; display:block; }
  html.light body .a-ca_navbar_dropdown_list [class*="solutions-dropdown_content"], html.light body .a-ca_navbar_dropdown_list [class*="resources-dropdown_content"]{ background:#fff!important; border-color:rgba(0,0,0,.08); }
  html.light body .a-ca_navbar_dropdown_list [class*="solutions-dropdown_link_title"], html.light body .a-ca_navbar_dropdown_list a[class*="resources-dropdown_link"]{ color:#16161a!important; }
}
@media (max-width:991px){
  html body .a-ca_navbar_dropdown_list [class*="solutions-dropdown_links"], html body .a-ca_navbar_dropdown_list [class*="resources-dropdown_links"]{ display:flex!important; flex-direction:column!important; }
  html body .a-ca_navbar_dropdown_list a[class*="solutions-dropdown_link"], html body .a-ca_navbar_dropdown_list a[class*="resources-dropdown_link"]{ display:block!important; padding:10px 12px!important; min-height:0!important; height:auto!important; }
  html body .a-ca_navbar_dropdown_list [class*="solutions-dropdown_link_text"]{ display:none!important; }
  html body .a-ca_navbar_dropdown_list [class*="solutions-dropdown_content"] > *:not([class*="-dropdown_links"]), html body .a-ca_navbar_dropdown_list [class*="resources-dropdown_content"] > *:not([class*="-dropdown_links"]){ display:none!important; }
}
