/* The homepage's own sections (hero to pricing), from landing v3. */
/* 31 Oct 2026 (Fernando: keep the homepage light): the writers, inspiration and extension sections hold their
   sample fonts back (about 700 KB) until they come near the screen; home.js removes .fonts-far 1200px ahead */
.fonts-far :is(.gw-sample, .gw-line-q, .gw-probe *, .ly-sw, .ext-grot) { font-family: Inter, sans-serif !important; }
/* ==== 01-hero ==== */
/* Hero: the drafts' headline and fanned slides, with the app's Home composer as the free try */
.hero { padding: clamp(36px, 5.5vw, 80px) 0 0; }
.hero-top { display: grid; gap: 28px 64px; align-items: end; }
@media (min-width: 960px) { .hero-top { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.hero-title { display: grid; gap: 0; justify-items: start; }
.hero-h1 { margin-bottom: 18px; text-wrap: balance; }
.hero-head { max-width: 12.5em; }
.hero-title .press { margin-top: 28px; }
.press { display: inline-flex; align-items: center; gap: 12px; height: 28px; font-size: .8125rem; color: var(--muted); transition: color var(--d-fast) var(--ease); }
.press .forbes { width: 58px; height: auto; color: var(--ink); }
.press-sep { width: 1px; height: 14px; background: var(--line-3); }
.press .ic { width: 13px; height: 13px; transition: transform var(--d-menu) var(--ease-out); }
.press:hover { color: var(--ink); }
.press:hover .ic { transform: translate(1px, -1px); }
.swoosh { position: relative; white-space: nowrap; }
.swoosh::after { content: ""; position: absolute; left: .02em; right: .12em; bottom: -.04em; height: .085em; border-radius: 99px; background: linear-gradient(90deg, rgb(234 165 133 / 0), rgb(234 165 133 / .85) 22%, rgb(178 150 236 / .85) 78%, rgb(178 150 236 / 0)); transform: rotate(-.6deg); transform-origin: left; z-index: -1; }
.js .swoosh::after { transform: rotate(-.6deg) scaleX(0); transition: transform 1.1s var(--ease-out) .35s; }
.js .hero.is-ready .swoosh::after { transform: rotate(-.6deg) scaleX(1); }
.hero-copy { display: grid; gap: 14px; justify-items: start; padding-bottom: 6px; }
.hero-lead { font-size: clamp(1.1875rem, 1.08rem + .42vw, 1.375rem); line-height: 1.42; letter-spacing: -.014em; color: var(--ink); max-width: 36ch; text-wrap: pretty; }
.hero-copy .btn-row { margin-top: 10px; }

/* the stage */
.hero-stage { margin-top: clamp(36px, 4.6vw, 60px); padding: 18px 20px 20px; background: #f1edf9; border-radius: var(--r-stage); box-shadow: inset 0 0 0 1px rgb(127 86 217 / .07); }

.fan { --cw: clamp(150px, 17vw, 246px); --spread: calc(var(--cw) * .9); position: relative; height: calc(var(--cw) * 1.14); margin-top: 22px; }   /* no top bar above it since 30 Oct 2026 */
.fan-card { position: absolute; left: 50%; top: 20px; width: var(--cw); z-index: var(--z, 1); transform: translateX(calc(-50% + var(--x) * var(--spread))) translateY(var(--y)) rotate(var(--r)); transition: transform .9s var(--ease-out), opacity .5s var(--ease); }
.fan-card:nth-child(1) { --x: -2; --y: 46px; --r: -8deg; --z: 1; }
.fan-card:nth-child(2) { --x: -1; --y: 14px; --r: -4deg; --z: 2; }
.fan-card:nth-child(3) { --x: 0; --y: 0px; --r: 0deg; --z: 3; }
.fan-card:nth-child(4) { --x: 1; --y: 16px; --r: 4.5deg; --z: 2; }
.fan-card:nth-child(5) { --x: 2; --y: 50px; --r: 8.5deg; --z: 1; }
/* the cards are carousels the app made (partials/hero-stage.php, _inc/showcase.php) */
.fan-card > .sc-pic { display: block; width: 100%; height: auto; border-radius: 7px; box-shadow: 0 0 0 1px rgb(24 21 31 / .05), 0 2px 4px rgb(24 21 31 / .05), 0 24px 44px -18px rgb(40 24 70 / .34); animation: fan-float 7s ease-in-out infinite alternate; animation-delay: calc(var(--i) * -1.4s); }
@keyframes fan-float { from { transform: translateY(0); } to { transform: translateY(-10px); } }
.hero-stage.is-paused .fan-card > .sc-pic { animation-play-state: paused; }
.js .hero:not(.is-ready) .fan-card { transform: translateX(-50%) translateY(40px) rotate(0); opacity: 0; }
.js .hero.is-ready .fan-card { transition-delay: calc(var(--i) * 60ms); }
@media (hover: hover) { .fan:hover { --spread: calc(var(--cw) * .97); } }
.fan-note { position: absolute; z-index: 4; left: calc(50% + var(--spread) * 1.18); top: calc(var(--cw) * .62); display: grid; grid-template-columns: auto auto auto auto auto; align-items: center; gap: 0 10px; padding: 10px 14px 10px 10px; border-radius: 14px; background: rgb(255 255 255 / .94); box-shadow: var(--shadow-popover); font-size: .75rem; line-height: 1.3; color: var(--ink); transform: rotate(-3deg); }
.fan-note .ic { width: 26px; height: 26px; padding: 6px; border-radius: 50%; background: var(--violet-soft); color: var(--violet-ink); }
.fan-note i { width: 14px; height: 14px; border-radius: 50%; margin-inline-start: -14px; box-shadow: 0 0 0 2px #fff; }
.fan-note i:first-of-type { margin-inline-start: 4px; }

/* the idea box (partials/composer.php, its look in composer.css): over the fan's foot */
.hero-stage .cc-box { width: min(820px, 100%); margin: calc(clamp(150px, 17vw, 246px) * -.04) auto 0; }

/* the feeds strip */
.feeds { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 36px; padding: 26px 0; margin-top: 8px; border-bottom: 1px solid var(--line); }
.feeds-list { display: flex; flex-wrap: wrap; gap: 10px 28px; }
.feeds-list li { display: inline-flex; align-items: center; gap: 8px; font-size: 1.0625rem; font-weight: 500; letter-spacing: -.01em; color: var(--text-soft); }
.feeds-list .ic { width: 19px; height: 19px; }
.feeds-end { margin-inline-start: auto; }

@media (max-width: 1079px) { .feeds-end { display: none; } }
@media (max-width: 1199px) { .fan-note { display: none; } }
@media (max-width: 719px) {
  .hero-copy .btn-row { width: 100%; }
  .hero-copy .btn-row .btn { flex: 1 1 100%; }
  .hero-stage { padding: 12px 10px 10px; margin-inline: calc(var(--gutter) * -1 + 8px); border-radius: 20px; }
  .fan { --cw: 46vw; --spread: 30vw; height: calc(var(--cw) * 1.08); }
  .fan-card:nth-child(1), .fan-card:nth-child(5) { opacity: .0; }
  .hero-stage .cc-box { margin-top: -24px; }
  .fan-note { left: auto; right: 6px; top: calc(var(--cw) * .98); transform: rotate(-2deg); }
  .feeds { gap: 12px; }
  .feeds-list { gap: 10px 18px; }
  .feeds-list li { font-size: .9375rem; }
}

/* ==== 02-editor ==== */
/* Editor: three steps over a window that looks like the real editor (final/ui/css/editor.css,
   panels.css). Prefixes: .eds-* the step tabs, .edw-* the editor window. */

/* ---- the step tabs (progress line on top, fills while the step plays) ----------------- */
.eds { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-bottom: 28px; }
.eds-tab { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-content: start; gap: 5px 14px; padding: 22px 8px 6px 0;padding-inline: 0 8px; text-align: start; border-radius: 0; -webkit-tap-highlight-color: transparent; }
.eds-tab:focus-visible { outline-offset: 6px; }
.eds-bar { position: absolute; inset-inline-start: 0; inset-inline-end: 0; top: 0; height: 2px; border-radius: 2px; background: var(--line-2); overflow: hidden; }
.eds-bar i { position: absolute; inset: 0; border-radius: inherit; background: var(--ink); transform: scaleX(0); transform-origin: left center; }
.eds-tab.is-run .eds-bar i { animation: eds-fill var(--dur, 7s) linear forwards; }
.eds.is-paused .eds-tab.is-run .eds-bar i { animation-play-state: paused; }
@keyframes eds-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.eds-n { grid-row: span 2; padding-top: 3px; font-size: .8125rem; line-height: 1.4; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--subtle); transition: color var(--d-menu) var(--ease); }
.eds-t { font-size: 1.0625rem; line-height: 1.4; font-weight: 500; letter-spacing: -.012em; color: var(--muted); transition: color var(--d-menu) var(--ease); }
.eds-d { font-size: .9375rem; line-height: 1.45; color: var(--subtle); transition: color var(--d-menu) var(--ease); }
.eds-tab:hover .eds-t { color: var(--ink); }
.eds-tab[aria-selected="true"] .eds-n { color: var(--ink); }
.eds-tab[aria-selected="true"] .eds-t { color: var(--ink); }
.eds-tab[aria-selected="true"] .eds-d { color: var(--muted); }

/* ---- the window --------------------------------------------------------------------- */
@property --edw-sw { syntax: '<length>'; inherits: true; initial-value: 0px; }
@property --edw-ch { syntax: '<length>'; inherits: true; initial-value: 0px; }
.edw-stage { position: relative; isolation: isolate; }
.edw-stage::before { content: ""; position: absolute; z-index: -1; inset: 8% -3% -6%; border-radius: 48px; background: radial-gradient(50% 60% at 30% 40%, rgb(214 196 250 / .5), transparent 70%), radial-gradient(45% 55% at 75% 70%, rgb(250 214 196 / .38), transparent 70%); filter: blur(30px); pointer-events: none; }
.edw { container: edw / inline-size; position: relative; border-radius: var(--r-panel); box-shadow: var(--shadow-float), 0 50px 100px -40px rgb(60 36 110 / .28); user-select: none; -webkit-user-select: none; cursor: default; }
.edw .ic { width: 16px; height: 16px; }

/* top bar (editor.css .ed-top) */
.edw-top { position: relative; z-index: 12; height: 52px; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 8px; padding: 0 12px 0 10px;padding-inline: 10px 12px; border-bottom: 1px solid var(--app-line); background: var(--card); }
.edw-l, .edw-r { display: flex; align-items: center; gap: 4px; min-width: 0; }
.edw-r { justify-content: flex-end; gap: 6px; }
.edw-logo { display: grid; width: 28px; height: 28px; margin-inline-end: 8px; flex: none; }
.edw-logo svg { width: 28px; height: 28px; }
.edw-ib { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: var(--r-ctl); color: var(--ink); flex: none; transition: background-color var(--d-fast) var(--ease), opacity var(--d-fast) var(--ease); }
.edw-ib .ic { width: 17px; height: 17px; }
.edw-back { color: var(--text-soft); margin-inline-start: 6px; box-shadow: -10px 0 0 -9px var(--app-line); }
.edw-redo .ic { transform: scaleX(-1); }
.edw-undo, .edw-redo { color: var(--muted); opacity: .45; }
.edw.has-undo .edw-undo { opacity: 1; color: var(--ink); }
.edw-crumb { font-size: 14px; color: var(--muted); padding: 0 4px; white-space: nowrap; }
.edw-slash { font-size: 14px; color: var(--subtle); }
.edw-title { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 6px 0 6px; border-radius: 8px; font-size: 14px; font-weight: 500; white-space: nowrap; }
.edw-title .ic { width: 12px; height: 12px; color: var(--muted); }
.edw-save { position: relative; display: inline-flex; align-items: center; gap: 5px; margin-inline-start: 4px; font-size: 12px; color: var(--subtle); white-space: nowrap; }
.edw-save .ic { width: 13px; height: 13px; }
.edw-save .edw-spin { display: none; }
.edw-save.is-saving .ic { display: none; }
.edw-save.is-saving .edw-spin { display: block; }
.edw-spin { width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid currentColor; border-inline-end-color: transparent; animation: edw-rot .7s linear infinite; flex: none; }
@keyframes edw-rot { to { transform: rotate(360deg); } }
.edw-seg { display: inline-flex; gap: 0; padding: 3px; border-radius: var(--r-ctl); background: #eeedf2; }
.edw-seg > span { display: inline-flex; align-items: center; justify-content: center; min-width: 72px; height: 28px; padding: 0 12px; border-radius: 7px; font-size: 13.5px; font-weight: 500; color: var(--muted); white-space: nowrap; }
.edw-seg > .on { background: var(--card); color: var(--ink); box-shadow: 0 0 0 1px var(--app-line), 0 1px 1px rgb(24 21 31 / .05); }
.edw-vr { width: 1px; height: 20px; margin: 0 2px; background: var(--app-line); flex: none; }
.edw-btn { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 11px; border-radius: var(--r-ctl); box-shadow: inset 0 0 0 1px var(--line-2); background: var(--card); font-size: 13px; font-weight: 500; white-space: nowrap; color: var(--ink); flex: none; }
.edw-btn .ic { width: 16px; height: 16px; }
.edw-plat-r { color: var(--muted); font-weight: 400; margin-inline-start: -3px; }
.edw .edw-c { width: 11px; height: 11px; color: var(--muted); }
.edw-split { display: inline-flex; height: 34px; border-radius: var(--r-ctl); background: var(--ink); color: #fff; flex: none; transition: background-color var(--d-fast) var(--ease), transform var(--d-fast) var(--ease); }
.edw-dl { display: inline-flex; align-items: center; gap: 7px; padding: 0 12px; font-size: 13px; font-weight: 500; white-space: nowrap; }
.edw-dl-c { display: grid; place-items: center; width: 30px; box-shadow: inset 1px 0 0 rgb(255 255 255 / .16); }
.edw-dl-c .ic { width: 12px; height: 12px; transition: transform var(--d-menu) var(--ease); }
.edw-split.is-open { background: var(--ink-2); }
.edw-split.is-open .edw-dl-c .ic { transform: rotate(180deg); }

/* the Download menu */
.edw-menu { position: absolute; z-index: 20; inset-inline-end: 12px; top: 48px; width: 272px; padding: 6px; border-radius: 14px; background: var(--card); box-shadow: var(--shadow-popover), 0 24px 48px -16px rgb(40 24 70 / .22); opacity: 0; visibility: hidden; transform: translateY(-4px) scale(.98); transform-origin: top right; transition: opacity .16s var(--ease), transform .22s var(--ease-out), visibility 0s linear .22s; }
.edw-menu.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity .16s var(--ease), transform .22s var(--ease-out), visibility 0s; }
.edw-menu-l { padding: 8px 10px 6px; font-size: 12px; font-weight: 500; color: var(--muted); }
.edw-mi { display: flex; align-items: center; gap: 11px; min-height: 48px; padding: 6px 8px; border-radius: 10px; transition: background-color var(--d-fast) var(--ease); }
.edw-mi.is-hover { background: var(--hover); }
.edw-mi.is-press { background: var(--press); }
.edw-mi-ic { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; background: var(--page-2); color: var(--ink); flex: none; }
.edw-mi-li { background: var(--violet-soft); color: var(--violet-ink); }
.edw-mi-t { flex: 1; min-width: 0; }
.edw-mi-t b { display: block; font-size: 13px; line-height: 1.3; font-weight: 500; }
.edw-mi-t small { display: block; font-size: 12px; line-height: 1.3; color: var(--muted); }
.edw .edw-tick { width: 15px; height: 15px; color: var(--ink); }
.edw-menu-sep { display: block; height: 1px; margin: 4px 6px; background: var(--app-line); }

/* sizes: everything follows the window's width, the height never jumps */
.edw-main {
  --side: 300px;
  --edw-sw: calc((100cqw - var(--side) - 40px) / 2.7);
  --edw-ch: calc(var(--edw-sw) * 1.25 + 154px);
  display: flex; height: calc(var(--edw-ch) + 84px);
}
.edw-work { position: relative; flex: 1; min-width: 0; display: flex; flex-direction: column; }
.edw-canvas { position: relative; flex: none; height: var(--edw-ch); overflow: hidden; background: #f4f3f7; }

/* hint over the canvas */
.edw-cvbar { position: absolute; z-index: 3; inset-inline-start: 0; inset-inline-end: 0; top: 0; height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 14px 0 18px;padding-inline: 18px 14px; pointer-events: none; }
.edw-hint { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 10px 0 8px;padding-inline: 8px 10px; border-radius: 8px; background: var(--violet-soft); color: var(--violet-ink); font-size: 12px; white-space: nowrap; }
.edw-hint .ic { width: 14px; height: 14px; }
.edw-note { display: none; }

/* the strip of slides */
.edw-scroll { position: absolute; inset: 0; overflow: hidden; }
.edw-track { display: flex; width: max-content; padding: 48px 36px 0; }
.edw-item { flex: none; width: var(--edw-sw); }
.edw-num { display: flex; align-items: center; gap: 6px; height: 28px; padding: 0 2px 2px; font-size: 12px; font-weight: 500; color: var(--subtle); white-space: nowrap; }
.edw-num b { font-weight: 500; color: var(--muted); min-width: 10px; }
.edw-num span { font-weight: 400; }
.edw-num.on b { color: var(--ink); }
.edw-acts { margin-inline-start: auto; display: inline-flex; gap: 10px; margin-inline-end: 6px; color: var(--muted); }
.edw .edw-acts .ic { width: 15px; height: 15px; }
/* the slides: pictures of a real carousel made by the app's engine (_inc/partials/editor-demo.php). A new look sweeps
   in over the old picture from the left, and the old one goes once it is covered */
.edw-frame { position: relative; isolation: isolate; container-type: inline-size; background: #fff; box-shadow: 0 0 0 1px rgb(24 21 31 / .06), 0 2px 4px rgb(24 21 31 / .04), 0 18px 40px -18px rgb(40 24 70 / .3); }
/* the seam between two slides; the frame is its own layer, so the seam never draws over Ask AI's reply or a window */
.edw-item + .edw-item .edw-frame::before { content: ""; position: absolute; z-index: 6; inset-inline-start: -.5px; top: 0; bottom: 0; width: 1px; background: rgb(128 120 140 / .3); }
.edw-pic { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; background: #efe9e1; transition: opacity .45s var(--ease), transform .55s var(--ease-out); }
.edw-pic img { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; clip-path: inset(0 100% 0 0); transition: opacity 0s linear .65s, clip-path 0s linear .65s; }
.edw-pic img.on { z-index: 1; opacity: 1; clip-path: inset(0); transition: clip-path .65s cubic-bezier(.6, 0, .25, 1); }
.edw.is-still .edw-pic img { transition: none; }

/* the cover's headline, selected (step 1 ends with a click on it): the headline's box on the Cream & Blue Minimal
   cover, measured in the app's engine (30 Oct 2026: it has to fit the words) */
.edw-tbox { position: absolute; z-index: 2; inset-inline-start: 9.6%; top: 28.6%; width: 80.8%; height: 31.4%; border: 1.5px solid var(--violet); border-radius: 2px; opacity: 0; transition: opacity .2s var(--ease); pointer-events: none; }
.edw-tbox.is-sel { opacity: 1; }
.edw-hd { position: absolute; width: 7px; height: 7px; margin: -4.25px 0 0 -4.25px;margin-inline: -4.25px 0; background: #fff; border: 1.5px solid var(--violet); border-radius: 2px; }
.edw-hd:nth-of-type(2), .edw-hd:nth-of-type(4) { inset-inline-start: 100%; }
.edw-hd:nth-of-type(3), .edw-hd:nth-of-type(4) { top: 100%; }

/* slide 2's definition while Ask AI shortens it, then the shorter one (where each sits on the Gradient Corporate
   slide, measured in the app's engine) */
.edw-dbox { position: absolute; z-index: 2; inset-inline-start: 7.3%; top: 46.8%; width: 78.6%; height: 9.9%; border-radius: 1.2cqw; pointer-events: none; }
.edw-dbox.is-short { top: 48.9%; width: 45.8%; height: 5.7%; }
.edw-dbox.is-busy { background: linear-gradient(100deg, transparent 25%, rgb(155 120 235 / .45) 50%, transparent 75%); background-size: 260% 100%; animation: edw-shimmer 1.1s linear infinite; }
@keyframes edw-shimmer { from { background-position: 130% 0; } to { background-position: -130% 0; } }
.edw-dbox.is-hl { animation: edw-hl 1.8s var(--ease) forwards; }
@keyframes edw-hl { 0%, 35% { background: rgb(155 120 235 / .34); box-shadow: 0 0 0 1.4cqw rgb(155 120 235 / .34); } 100% { background: rgb(155 120 235 / 0); box-shadow: 0 0 0 1.4cqw rgb(155 120 235 / 0); } }

/* empty, then built one by one (step 1) */
.edw-ghost { position: absolute; inset: 0; z-index: 3; display: flex; flex-direction: column; gap: 3.4cqw; padding: 9cqw 8cqw; background: #fff; opacity: 0; pointer-events: none; transition: opacity .4s var(--ease); }
.edw-ghost i { display: block; height: 3cqw; width: 34%; border-radius: 2cqw; background: #edeaf3; }
.edw-ghost i:nth-child(2) { margin-top: 10cqw; height: 9cqw; width: 82%; }
.edw-ghost i:nth-child(3) { height: 9cqw; width: 64%; }
.edw-ghost i:nth-child(4) { margin-top: 3cqw; width: 70%; }
.edw-ghost i:nth-child(5) { margin-top: auto; width: 26%; }
.edw.is-writing .edw-ghost i { background: linear-gradient(100deg, #efedf4 30%, #e4dcf8 50%, #efedf4 70%); background-size: 300% 100%; animation: edw-shimmer 1.4s linear infinite; }
.edw.is-empty .edw-ghost { opacity: 1; }
.edw.is-empty .edw-item.is-in .edw-ghost { opacity: 0; }
.edw.is-empty .edw-frame .edw-pic { opacity: 0; transform: translateY(10px); }
.edw.is-empty .edw-item.is-in .edw-pic { opacity: 1; transform: none; }

/* bottom: zoom · Ask AI · slides */
.edw-ctl { position: absolute; z-index: 4; inset-inline-start: 16px; inset-inline-end: 16px; bottom: 14px; height: 48px; display: flex; align-items: center; justify-content: space-between; }
.edw-zoom, .edw-count { display: inline-flex; align-items: center; gap: 2px; height: 36px; padding: 0 4px; border-radius: 10px; background: var(--card); box-shadow: 0 0 0 1px var(--app-line), 0 6px 18px -10px rgb(24 21 31 / .25); font-size: 12.5px; font-weight: 500; }
.edw-zoom .ic { width: 28px; height: 28px; padding: 6px; }
.edw-zoom b { min-width: 44px; text-align: center; font-weight: 500; }
.edw-count { gap: 7px; padding: 0 12px; font-size: 13px; }
.edw-count b { font-weight: 500; }
.edw-ask { position: absolute; left: 50%; top: 0; transform: translateX(-50%); width: min(560px, calc(100% - 300px)); height: 48px; padding: 0 7px; gap: 6px; border-radius: 16px; box-shadow: 0 0 0 1px var(--app-line), 0 10px 30px -12px rgb(24 21 31 / .25); transition: box-shadow var(--d-menu) var(--ease); }
.edw-ask .scope { height: 34px; padding: 0 9px 0 10px;padding-inline: 10px 9px; border-radius: 10px; background: #f0eff4; font-size: 13px; }
.edw-ask .q { display: flex; align-items: center; min-width: 0; padding: 0 4px; font-size: 14px; color: var(--ink); }
.edw-qph { color: var(--subtle); }
.edw-ask.has-q .edw-qph { display: none; }
.edw-ask.is-focus { box-shadow: 0 0 0 1.5px var(--violet-line), 0 0 0 4px rgb(127 86 217 / .1), 0 10px 30px -12px rgb(24 21 31 / .25); }
.edw-ask .send .ic { transform: rotate(180deg); }
.edw-ask .send { width: 34px; height: 34px; transition: transform var(--d-fast) var(--ease), background-color var(--d-fast) var(--ease); }
.edw-kbd { display: inline-grid; place-items: center; height: 22px; padding: 0 6px; border-radius: 6px; box-shadow: inset 0 0 0 1px var(--line-2); font-size: 11px; font-weight: 500; color: var(--muted); flex: none; }
.edw-caret { display: none; width: 1.5px; height: 1.15em; margin-inline-start: 1px; background: var(--violet); animation: edw-blink 1s steps(1) infinite; flex: none; }
.edw-new.is-typing .edw-caret, .edw-ask.is-typing .edw-caret { display: inline-block; }
@keyframes edw-blink { 50% { opacity: 0; } }

.edw-reply { position: absolute; z-index: 4; left: 50%; bottom: 74px; display: flex; align-items: center; gap: 10px; max-width: calc(100% - 32px); padding: 8px 14px 8px 8px;padding-inline: 8px 14px; border-radius: 14px; background: var(--card); box-shadow: var(--shadow-popover); font-size: 13px; white-space: nowrap; opacity: 0; transform: translate(-50%, 6px); transition: opacity .25s var(--ease), transform .35s var(--ease-out); }
.edw-reply.is-on { opacity: 1; transform: translate(-50%, 0); }
.edw-reply-m { display: inline-flex; }
.edw-reply > span:last-child { display: inline-flex; align-items: center; gap: 8px; }
.edw-reply-m .byl { --bs: 22px; }
.edw .edw-reply .ic { width: 15px; height: 15px; color: var(--success); margin-inline-end: -4px; }

/* the tray (editor.css .ed-tray) */
.edw-tray { position: relative; z-index: 8; flex: 1; display: flex; align-items: center; justify-content: center; padding: 0 14px; border-top: 1px solid var(--app-line); background: #f8f7fa; overflow: hidden; }
.edw-thumbs { display: flex; align-items: center; gap: 10px; }
.edw-thumb { position: relative; flex: none; width: 50px; border-radius: 6px; overflow: hidden; background: #fff; box-shadow: 0 0 0 1px var(--app-line); }
.edw-thumb.on { box-shadow: 0 0 0 2px var(--ink); }
.edw-thumb > b { position: absolute; z-index: 4; inset-inline-start: 3px; top: 3px; min-width: 13px; height: 13px; padding: 0 3px; border-radius: 4px; background: rgb(31 26 46 / .55); color: #fff; font-size: 9px; font-weight: 600; line-height: 13px; text-align: center; }
.edw-thumb.on > b { background: var(--ink); }
.edw.is-empty .edw-thumb .edw-pic { opacity: 0; }
.edw.is-empty .edw-thumb.is-in .edw-pic { opacity: 1; }
.edw-add { flex: none; display: grid; place-items: center; width: 46px; height: 62px; border-radius: 6px; border: 1.5px dashed rgb(31 26 46 / .18); color: var(--muted); }

/* the panel (panels.css) */
.edw-side { width: var(--side); flex: none; display: flex; flex-direction: column; border-inline-start: 1px solid var(--app-line); background: var(--card); overflow: hidden; }
.edw-pn-top { flex: none; display: flex; align-items: center; height: 48px; padding: 0 18px; border-bottom: 1px solid var(--app-line); font-size: 14px; font-weight: 500; }
.edw-pn { display: grid; gap: 6px; padding: 12px 14px 14px; border-bottom: 1px solid var(--app-line); }
.edw-pn:last-child { border-bottom: 0; }
.edw-pn-h { margin: 2px 2px 4px; font-size: 12px; font-weight: 600; color: var(--muted); letter-spacing: .02em; }
.edw .app-row { min-height: 38px; gap: 8px; padding: 0 10px 0 12px;padding-inline: 12px 10px; box-shadow: inset 0 0 0 1px var(--line-2); transition: background-color var(--d-fast) var(--ease), box-shadow var(--d-fast) var(--ease); white-space: nowrap; }
.edw .app-row .k { display: inline-flex; align-items: center; gap: 7px; font-weight: 500; }
.edw .app-row .k.edw-ink { color: var(--ink); }
.edw .app-row .v { min-width: 0; gap: 7px; }
.edw .app-row .v > svg.ic { width: 13px; height: 13px; color: var(--subtle); }
.edw .app-row .edw-ai { width: 15px; height: 15px; color: var(--violet); }
.edw .app-row.is-press { background: var(--hover); box-shadow: inset 0 0 0 1px var(--line-3); }
.edw-sw { width: 14px; height: 14px; border-radius: 50%; flex: none; background: linear-gradient(135deg, var(--a) 50%, var(--b) 50%); box-shadow: inset 0 0 0 1px rgb(31 26 46 / .12); transition: background .4s var(--ease); }
.edw-wm { display: inline-flex; }
.edw-wm .byl { --bs: 17px; }
.edw-sig { width: 18px; height: 18px; border-radius: 50%; object-fit: cover; flex: none; }
.edw [data-edw-theme], .edw [data-edw-wname] { transition: opacity .2s var(--ease); }

/* step 1: New carousel */
.edw-veil { position: absolute; z-index: 5; inset: 0; background: rgb(244 243 247 / .38); opacity: 0; transition: opacity .35s var(--ease); pointer-events: none; }
.edw-veil.is-on { opacity: 1; }
.edw-veil.is-blur { background: rgb(244 243 247 / .62); backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); }
.edw-new { position: absolute; z-index: 6; left: 50%; top: 46%; width: min(460px, calc(100% - 32px)); padding: 14px 14px 12px; border-radius: 18px; background: var(--card); box-shadow: var(--shadow-popover), 0 30px 60px -24px rgb(40 24 70 / .3); transform: translate(-50%, -50%) translateY(10px) scale(.98); opacity: 0; visibility: hidden; transition: opacity .3s var(--ease), transform .45s var(--ease-out), visibility 0s linear .45s; }
.edw-new.is-on { opacity: 1; visibility: visible; transform: translate(-50%, -50%); transition: opacity .3s var(--ease), transform .45s var(--ease-out), visibility 0s; }
.edw-new-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 0 4px 4px;padding-inline: 4px 0; }
.edw-new-h b { font-size: 14px; font-weight: 500; }
.edw-seg-sm { padding: 2px; border-radius: 9px; }
.edw-seg-sm > span { min-width: 0; height: 24px; padding: 0 9px; border-radius: 7px; font-size: 12px; }
.edw-new-in { position: relative; display: flex; align-items: center; min-height: 58px; padding: 10px 4px 8px; font-size: 17px; line-height: 1.35; letter-spacing: -.012em; color: var(--ink); }
.edw-new-in .edw-ph { color: var(--subtle); }
.edw-new.has-q .edw-ph { display: none; }
.edw-new-f, .edw-new-w { display: flex; align-items: center; gap: 4px; min-height: 40px; padding-top: 8px; border-top: 1px solid var(--app-line); }
.edw-chip { display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 9px; border-radius: 9px; font-size: 12.5px; font-weight: 500; color: var(--text-soft); white-space: nowrap; }
.edw-chip .byl { --bs: 16px; }
.edw-chip-r { margin-inline-start: auto; box-shadow: inset 0 0 0 1px var(--line-2); }
.edw-gen { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 14px; margin-inline-start: 4px; border-radius: 10px; background: var(--ink); color: #fff; font-size: 13px; font-weight: 500; white-space: nowrap; transition: transform var(--d-fast) var(--ease), background-color var(--d-fast) var(--ease); }
.edw-gen .ic { width: 14px; height: 14px; color: #c9b5f6; }
.edw-new-w { display: none; gap: 11px; padding: 10px 2px 2px; }
.edw-new.is-writing .edw-new-f { display: none; }
.edw-new.is-writing .edw-new-w { display: flex; }
.edw-new-w .byl { --bs: 30px; }
.edw-new-wt { flex: 1; min-width: 0; }
.edw-new-wt b { display: block; font-size: 13px; font-weight: 500; }
.edw-new-wt small { display: block; font-size: 12px; color: var(--muted); }
.edw-meter { position: relative; width: 84px; height: 4px; border-radius: 4px; background: #eeebf6; overflow: hidden; flex: none; }
.edw-meter b { position: absolute; inset: 0; border-radius: inherit; background: var(--violet); transform: scaleX(0); transform-origin: left; }
.edw-new.is-writing .edw-meter b { transform: scaleX(1); transition: transform 1.2s cubic-bezier(.3, .1, .3, 1); }

/* step 3: the Post to LinkedIn window (app features/publishing, + scheduling's Now | Later): the document beside the
   form; phones show a small picture in the "what" line instead */
.edw-post {
  --edw-doc: clamp(150px, calc((var(--edw-ch) - 170px) / 1.25), 236px);
  position: absolute; z-index: 6; left: 50%; top: 50%; width: calc(var(--edw-doc) + 344px); max-height: calc(100% - 20px);
  display: grid; grid-template-columns: var(--edw-doc) minmax(0, 1fr); grid-template-rows: auto 1fr; grid-template-areas: "top top" "doc form"; column-gap: 20px;
  padding: 0 18px 16px; border-radius: 18px; background: var(--card); box-shadow: var(--shadow-popover), 0 30px 60px -24px rgb(40 24 70 / .3);
  transform: translate(-50%, -50%) translateY(16px) scale(.98); opacity: 0; visibility: hidden; transition: opacity .3s var(--ease), transform .5s var(--ease-out), visibility 0s linear .5s;
}
.edw-post.is-on { opacity: 1; visibility: visible; transform: translate(-50%, -50%); transition: opacity .3s var(--ease), transform .5s var(--ease-out), visibility 0s; }
/* done: up a little, so the toast under it never touches it */
.edw-post.is-on.is-up { transform: translate(-50%, calc(-50% - 24px)); }
.edw-post-top { grid-area: top; display: flex; align-items: center; justify-content: space-between; height: 50px; margin: 0 -18px 16px; padding: 0 16px 0 18px;padding-inline: 18px 16px; border-bottom: 1px solid var(--app-line); font-size: 14px; }
.edw-post-top b { font-weight: 600; }
.edw .edw-post-top .ic { width: 16px; height: 16px; color: var(--muted); }
.edw-post-doc { grid-area: doc; position: relative; width: var(--edw-doc); align-self: start; border-radius: 6px; overflow: hidden; box-shadow: 0 0 0 1px var(--app-line); }
.edw-post-tag { position: absolute; z-index: 5; inset-inline-start: 8px; top: 8px; height: 20px; padding: 0 8px; border-radius: 4px; background: rgb(31 26 46 / .78); color: #fff; font-size: 10.5px; font-weight: 500; line-height: 20px; white-space: nowrap; }
.edw-post-form { grid-area: form; display: flex; flex-direction: column; min-width: 0; }
.edw-who { display: flex; align-items: center; gap: 10px; }
.edw-who img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; flex: none; }
.edw-who b { display: block; font-size: 13px; font-weight: 600; line-height: 1.3; }
.edw-who small { display: flex; align-items: center; gap: 5px; font-size: 11.5px; color: var(--muted); }
.edw-who small::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--success); }
.edw-what { display: none; align-items: center; gap: 10px; margin-top: 12px; padding: 6px; border-radius: 10px; background: var(--page-2); font-size: 12px; line-height: 1.35; color: var(--text-soft); }
.edw-what-pic { width: 32px; flex: none; border-radius: 3px; overflow: hidden; }
.edw-lbl { margin-top: 14px; font-size: 12px; font-weight: 500; color: var(--muted); }
.edw-cap { margin-top: 6px; padding: 9px 11px; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--line-2); font-size: 12.5px; line-height: 1.5; color: var(--text-soft); }
.edw-when { display: grid; grid-template-columns: 1fr 1fr; margin-top: 14px; padding: 3px; border-radius: var(--r-ctl); background: #eeedf2; }
.edw-when > span { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 30px; border-radius: 7px; font-size: 13px; font-weight: 500; color: var(--muted); transition: background-color .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease), transform var(--d-fast) var(--ease); }
.edw .edw-when .ic { width: 15px; height: 15px; }
.edw-when > .on { background: var(--card); color: var(--ink); box-shadow: 0 0 0 1px var(--app-line), 0 1px 1px rgb(24 21 31 / .05); }
.edw-later { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .4s var(--ease-out), opacity .25s var(--ease); }
.edw-later.is-on { grid-template-rows: 1fr; opacity: 1; }
.edw-later-in { min-height: 0; overflow: hidden; }
.edw-chips { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 10px; }
.edw-chips > span { display: inline-flex; align-items: center; height: 28px; padding: 0 10px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--line-2); font-size: 12px; font-weight: 500; color: var(--text-soft); white-space: nowrap; transition: background-color .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease), transform var(--d-fast) var(--ease); }
.edw-chips > .on { background: var(--violet-soft); color: var(--violet-ink); box-shadow: inset 0 0 0 1.5px var(--violet-line); }
.edw-later-n { margin-top: 8px; font-size: 11.5px; line-height: 1.4; color: var(--muted); }
.edw-post-f { display: flex; justify-content: flex-end; margin-top: auto; padding-top: 14px; }
.edw-now { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border-radius: 9px; font-size: 12.5px; font-weight: 500; white-space: nowrap; }
.edw-now { min-width: 92px; justify-content: center; background: var(--ink); color: #fff; transition: transform var(--d-fast) var(--ease), background-color .3s var(--ease); }
.edw-now .edw-spin, .edw-now .ic { display: none; }
.edw .edw-now .ic { width: 14px; height: 14px; }
.edw-now.is-busy .edw-spin { display: block; }
.edw-now.is-done { background: var(--success); }
.edw-now.is-done .ic { display: block; }

.edw-toast { position: absolute; z-index: 7; left: 50%; bottom: 18px; display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 16px 0 12px;padding-inline: 12px 16px; border-radius: 14px; background: rgb(33 29 43 / .92); color: #fff; font-size: 13px; white-space: nowrap; box-shadow: 0 18px 40px -12px rgb(31 26 46 / .45); backdrop-filter: blur(8px); transform: translate(-50%, 14px); opacity: 0; transition: opacity .25s var(--ease), transform .4s var(--ease-out); }
.edw-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.edw .edw-toast .ic { width: 18px; height: 18px; color: #93c9a1; }
.edw-toast b { margin-inline-start: 6px; padding-inline-start: 12px; box-shadow: inset 1px 0 0 rgb(255 255 255 / .18); font-weight: 500; color: #d8cbf7; }

/* the pointer that shows what is being clicked */
.edw-cur { position: absolute; z-index: 30; inset-inline-start: 0; top: 0; width: 22px; height: 22px; margin: -3px 0 0 -4px;margin-inline: -4px 0; pointer-events: none; opacity: 0; transform: translate(70cqw, 420px); transition: transform .62s cubic-bezier(.45, 0, .2, 1), opacity .25s var(--ease); }
.edw-cur.is-on { opacity: 1; }
.edw-cur svg { position: relative; z-index: 1; width: 22px; height: 22px; fill: var(--ink); stroke: #fff; stroke-width: 1.4px; stroke-linejoin: round; filter: drop-shadow(0 2px 3px rgb(31 26 46 / .3)); }
.edw-cur::after { content: ""; position: absolute; inset-inline-start: 4px; top: 3px; width: 30px; height: 30px; margin: -15px 0 0 -15px;margin-inline: -15px 0; border-radius: 50%; background: rgb(127 86 217 / .35); opacity: 0; transform: scale(.3); }
.edw-cur.is-click::after { animation: edw-click .5s var(--ease-out); }
@keyframes edw-click { 0% { opacity: 1; transform: scale(.3); } 100% { opacity: 0; transform: scale(1.3); } }
.edw .is-press { transform: scale(.97); }

/* ---- under the window ----------------------------------------------------------------- */
.edw-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-top: 22px; padding: 0 4px; }
.edw-foot p { display: inline-flex; align-items: center; gap: 8px; font-size: .9375rem; color: var(--muted); }
.edw-foot p .ic { width: 16px; height: 16px; color: var(--violet); }

/* ---- narrower windows: the right group gets shorter ----------------------------------- */
@container edw (max-width: 1220px) {
  .edw-crumb, .edw-slash, .edw-save span { display: none; }
  .edw-plat-n { display: none; }
  .edw-plat-r { margin-inline-start: -4px; }
}
@container edw (max-width: 1100px) {
  .edw-play, .edw-vr, .edw-postbtn { display: none; }
}
@container edw (max-width: 1000px) {
  .edw-main { --side: 272px; }
  .edw-dl-l { display: none; }
  .edw-ask { width: min(520px, calc(100% - 210px)); }
  .edw-zoom b, .edw-kbd { display: none; }
}
@container edw (max-width: 760px) {
  .edw-plat, .edw-redo { display: none; }
}
@container edw (max-width: 860px) {
  .edw-main { --side: 0px; --edw-sw: calc((100cqw - 40px) / 2.45); }
  .edw-side { display: none; }
  .edw-note { display: inline-flex; }
}

/* ---- phones: canvas (one slide, swipe for more), Ask AI and the tray ------------------- */
@container edw (max-width: 560px) {
  .edw-top { grid-template-columns: minmax(0, 1fr) auto; height: 50px; padding: 0 8px 0 4px;padding-inline: 4px 8px; }
  .edw-logo, .edw-seg:not(.edw-seg-sm), .edw-save, .edw-plat, .edw-postbtn, .edw-redo { display: none; }
  .edw-back { margin-inline-start: 0; box-shadow: none; }
  .edw-title { padding: 0 4px; font-size: 15px; }
  .edw-r { gap: 4px; }
  .edw-split { height: 36px; }
  .edw-dl { padding: 0 11px; }
  .edw-dl-c { display: none; }
  .edw-menu { inset-inline-end: 8px; top: 46px; width: min(272px, calc(100% - 16px)); }
  .edw-main { --edw-sw: calc(100cqw - 72px); --edw-ch: calc(var(--edw-sw) * 1.25 + 148px); height: calc(var(--edw-ch) + 76px); }
  .edw-cvbar { height: 44px; padding: 0 10px 0 12px;padding-inline: 12px 10px; }
  .edw-hint { font-size: 11.5px; }
  .edw-note { position: absolute; z-index: 4; inset-inline-end: 10px; top: 7px; }
  .edw-hint { transition: opacity .2s var(--ease); }
  .edw-cvbar:has(.edw-note.is-on) .edw-hint { opacity: 0; }
  .edw-scroll { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-padding-inline: 20px; overscroll-behavior-x: contain; scrollbar-width: none; bottom: 70px; }
  .edw-scroll::-webkit-scrollbar { display: none; }
  .edw-track { padding: 44px 20px 0; }
  .edw-item { scroll-snap-align: start; }
  .edw-acts { display: none; }
  .edw-ctl { inset-inline-start: 10px; inset-inline-end: 10px; bottom: 12px; height: 46px; }
  .edw-zoom, .edw-count, .edw-kbd { display: none; }
  .edw-ask { inset-inline-start: 0; transform: none; width: 100%; height: 46px; }
  .edw-ask .scope { padding: 0 8px; }
  .edw-ask .q { font-size: 13.5px; }
  .edw-tray { justify-content: flex-start; overflow-x: auto; scrollbar-width: none; padding: 0 12px; }
  .edw-tray::-webkit-scrollbar { display: none; }
  .edw-thumb { width: 44px; }
  .edw-add { width: 40px; height: 55px; }
  .edw-new { top: 44%; padding: 12px 12px 10px; }
  .edw-new-h .edw-seg-sm > span:last-child { display: none; }
  .edw-new-in { font-size: 16px; min-height: 52px; }
  .edw-new-f .edw-chip:nth-child(2) { display: none; }
  .edw-cur svg { display: none; }
  .edw-cur::before { content: ""; position: absolute; inset-inline-start: -7px; top: -8px; width: 26px; height: 26px; border-radius: 50%; background: rgb(31 26 46 / .18); box-shadow: 0 0 0 1.5px rgb(255 255 255 / .8); }
  .edw-toast { bottom: 14px; }
  .edw-reply { bottom: 70px; }
  .edw-post { width: calc(100% - 24px); grid-template-columns: minmax(0, 1fr); grid-template-areas: "top" "form"; padding: 0 14px 14px; border-radius: 16px; }
  .edw-post-top { height: 46px; margin: 0 -14px 12px; padding: 0 14px; }
  .edw-post-doc, .edw-lbl, .edw-cap { display: none; }
  .edw-what { display: flex; }
  .edw-now { flex: 1; min-width: 0; height: 36px; }
  .edw-toast b { display: none; }
}

/* phone note: what changed, since the panel is hidden */
.edw-note { align-items: center; gap: 7px; height: 30px; padding: 0 11px 0 8px;padding-inline: 8px 11px; border-radius: 9px; background: var(--card); box-shadow: var(--shadow-chip); font-size: 12px; font-weight: 500; white-space: nowrap; opacity: 0; transform: translateY(-4px); transition: opacity .25s var(--ease), transform .35s var(--ease-out); }
.edw-note.is-on { opacity: 1; transform: none; }
.edw-note .byl { --bs: 15px; }

/* ---- page breakpoints ------------------------------------------------------------------ */
@media (max-width: 719px) {
  .eds { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); margin: 0 calc(var(--gutter) * -1) 22px; padding: 0 var(--gutter) 2px; scrollbar-width: none; }
  .eds::-webkit-scrollbar { display: none; }
  .eds-tab { flex: 0 0 74%; scroll-snap-align: start; padding: 18px 4px 6px 0;padding-inline: 0 4px; min-height: 44px; }
  .eds-t { font-size: 1rem; }
  .eds-d { font-size: .875rem; }
  .edw-stage { margin-inline: calc(var(--gutter) * -1 + 8px); }
  .edw-stage::before { inset: 10% 0 -4%; }
  .edw { border-radius: 18px; }
  .edw-foot { flex-direction: column; align-items: flex-start; gap: 6px; margin-top: 18px; }
  .edw-foot .link { min-height: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .edw-cur { display: none; }
}

/* ==== 03-writers ==== */
/* Ghostwriters: the app's Ghostwriters page (final/ui/css/library.css .gwh, .gwc, .gw-cmp),
   polished for the landing. The print is the app's Byline engine; the text sits on its quiet side. */

/* ---- the hero box: the chosen writer's print, their voice typed out ---------- */
.gw-hero { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: stretch; min-height: 440px; border-radius: var(--r-stage); background: var(--page-3); box-shadow: 0 0 0 1px var(--line), 0 1px 2px rgb(24 21 31 / .04), 0 40px 80px -48px rgb(60 36 110 / .28); touch-action: pan-y; }
/* the column is as tall as the tallest writer's (set by script), so switching never moves the page */
.gw-in { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: center; width: min(54%, 620px); min-height: var(--gw-in-h, 0px); padding: 52px 56px 56px; color: var(--ink); }
.gw-text { align-self: flex-start; max-width: 100%; display: flex; flex-direction: column; align-items: flex-start; animation: gw-text .55s var(--ease-out); }
/* a hairline down the column's left edge: with the text it makes the quiet zone full height */
.gw-quiet { position: absolute; inset-inline-start: 0; top: 0; bottom: 0; width: 1px; pointer-events: none; }
.gw-probe { position: absolute; inset-inline-start: 0; top: 0; z-index: -1; visibility: hidden; pointer-events: none; min-height: 0; }
.gw-probe .gw-text { animation: none; }
@keyframes gw-text { from { opacity: 0; transform: translateY(6px); } }
.gw-name { display: flex; align-items: center; gap: 12px; font-size: 44px; line-height: 1.05; font-weight: 400; letter-spacing: -.03em; color: var(--ink); }
.gw-name .badge { letter-spacing: .02em; transform: translateY(2px); }
.gw-name .badge-violet { background: rgb(255 255 255 / .7); box-shadow: inset 0 0 0 1px var(--violet-line); }
.gw-role { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; margin-top: 8px; font-size: .9375rem; line-height: 1.4; color: var(--text-soft); }
.gw-best { display: inline-flex; align-items: center; gap: 6px; font-size: .8125rem; color: var(--muted); }
.gw-best .ic { width: 15px; height: 15px; }
.gw-best > span { margin-inline-end: 1px; }
.gw-desc { margin-top: 14px; max-width: 42ch; font-size: .9375rem; line-height: 1.55; color: var(--text-soft); text-wrap: pretty; }
.gw-sample { position: relative; display: grid; margin-top: 18px; max-width: 470px; font-size: 23px; line-height: 1.4; letter-spacing: -.01em; color: var(--ink); text-wrap: pretty; }
.gw-sample > * { grid-area: 1 / 1; }
.gw-ghost { visibility: hidden; }
.gw-caret { display: inline-block; width: 2px; height: 1.05em; margin-inline-start: 2px; vertical-align: -.16em; border-radius: 1px; background: var(--violet); animation: gw-blink 1s steps(1) infinite; }
@keyframes gw-blink { 50% { opacity: 0; } }
.gw-btns { padding-top: 28px; }
.gw-btns .btn-secondary { background: rgb(255 255 255 / .82); }
.gw-btns .btn-secondary:hover { background: #fff; }

/* prev / next, bottom right; the ring round "next" is the autoplay timer */
.gw-nav { position: absolute; z-index: 2; inset-inline-end: 20px; bottom: 20px; display: flex; gap: 8px; }
.gw-next { position: relative; }
.gw-ring { position: absolute; left: -4px; top: -4px; width: 48px; height: 48px; max-width: none; transform: rotate(-90deg); pointer-events: none; opacity: 0; transition: opacity .3s var(--ease); }
.gw-ring circle { fill: none; stroke: var(--violet); stroke-width: 1.75; stroke-linecap: round; stroke-dasharray: 138.3; stroke-dashoffset: 138.3; }
.gw-hero.is-auto .gw-ring { opacity: 1; }
.gw-hero.is-auto .gw-ring circle { animation: gw-ring 8s linear forwards; }
.gw-hero.is-held .gw-ring circle { animation-play-state: paused; }
@keyframes gw-ring { to { stroke-dashoffset: 0; } }

/* ---- the cast: every writer as a printed card ---------------------------------- */
.gw-cast {
  --pad: max(var(--gutter), calc((100% - var(--wrap)) / 2));
  --fade: min(64px, var(--pad));
  display: grid; grid-auto-flow: column; grid-auto-columns: 104px; gap: 10px;
  margin-top: 12px; padding: 8px var(--pad) 14px; scroll-padding-inline: var(--pad);
  overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scrollbar-width: none; user-select: none; -webkit-user-select: none;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--fade), #000 calc(100% - var(--fade)), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 var(--fade), #000 calc(100% - var(--fade)), transparent);
}
.gw-cast::-webkit-scrollbar { display: none; }
.gw-cast.is-drag { scroll-snap-type: none; cursor: grabbing; }
.gw-cast.is-drag .gw-card { pointer-events: none; }
.gw-card { position: relative; display: block; padding: 0; border-radius: 14px; overflow: hidden; text-align: start; background: var(--card); scroll-snap-align: center; box-shadow: 0 1px 2px rgb(24 21 31 / .05); transition: transform .25s var(--ease-out), box-shadow .15s var(--ease); -webkit-tap-highlight-color: transparent; }
.gw-card:hover { transform: translateY(-2px); box-shadow: 0 1px 2px rgb(24 21 31 / .05), 0 10px 20px -12px rgb(40 24 70 / .3); }
.gw-card.on { box-shadow: 0 0 0 2px var(--ink); }
.gw-card:focus-visible { outline: 2px solid var(--violet); outline-offset: 3px; border-radius: 14px; }
.gw-card .byl-card { border-radius: 14px; }
.gw-card-l { position: absolute; inset: auto 0 0 0; z-index: 3; display: flex; flex-direction: column; gap: 1px; padding: 22px 9px 8px; background: linear-gradient(to top, rgb(255 255 255 / .94), rgb(255 255 255 / .62) 62%, transparent); }
.gw-card-l b { display: inline-flex; align-items: center; gap: 3px; font-size: 13px; font-weight: 600; line-height: 16px; color: var(--ink); }
.gw-card-l b .ic { width: 12px; height: 12px; }
.gw-card-l small { font-size: 11px; line-height: 14px; color: var(--text-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* "+ Your own writer": the last tile, two cards wide */
.gw-own { grid-column: span 2; display: flex; flex-direction: column; justify-content: space-between; padding: 12px 14px 12px; background: rgb(255 255 255 / .55); border: 1.5px dashed rgb(127 86 217 / .38); box-shadow: none; color: var(--ink); }
.gw-own:hover { background: #fff; border-color: rgb(127 86 217 / .6); box-shadow: none; }
.gw-own-plus { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--card); color: var(--violet-ink); box-shadow: var(--shadow-chip); }
.gw-own-plus .ic { width: 18px; height: 18px; }
.gw-own .badge { position: absolute; top: 12px; inset-inline-end: 12px; }
.gw-own-l { display: flex; flex-direction: column; gap: 2px; }
.gw-own-l b { font-size: 13px; font-weight: 600; line-height: 16px; }
.gw-own-l small { font-size: 11.5px; line-height: 15px; color: var(--muted); }

/* see all: the strip opens into a grid of the whole cast */
.gw-cast.is-all { grid-auto-flow: row; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); grid-auto-columns: auto; overflow: visible; -webkit-mask-image: none; mask-image: none; }
.gw-cast.is-all .gw-card { animation: gw-pop .5s var(--ease-out) both; animation-delay: calc(var(--i) * 14ms); }
@keyframes gw-pop { from { opacity: 0; transform: translateY(8px) scale(.97); } }

/* ---- one line from six of them (the app's compare grid) ------------------------ */
.gw-more { margin-top: clamp(56px, 6vw, 88px); }
.gw-more-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 24px; margin-bottom: 20px; }
.gw-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.gw-line { display: flex; flex-direction: column; gap: 14px; padding: 18px 20px 22px; border-radius: var(--r-card); background: var(--card); text-align: start; box-shadow: 0 0 0 1px var(--line), 0 1px 2px rgb(24 21 31 / .04); transition: box-shadow var(--d-fast) var(--ease), transform .25s var(--ease-out); }
.gw-line:hover { box-shadow: 0 0 0 1px var(--line-2), 0 12px 24px -16px rgb(40 24 70 / .28); transform: translateY(-1px); }
.gw-line[aria-pressed="true"] { box-shadow: 0 0 0 1.5px var(--ink), 0 12px 24px -16px rgb(40 24 70 / .28); }
.gw-line-who { display: flex; align-items: center; gap: 7px; min-width: 0; font-size: 13px; line-height: 1.3; color: var(--muted); }
.gw-line-who b { font-weight: 500; color: var(--ink); }
.gw-line-who .byl { --bs: 22px; margin-inline-end: 2px; }
.gw-line-who .gw-lock { width: 13px; height: 13px; color: var(--subtle); }
.gw-line-who .gw-best { margin-inline-start: auto; gap: 5px; color: var(--subtle); }
.gw-line-who .gw-best > span { display: none; }
.gw-line-who .gw-best .ic { width: 14px; height: 14px; }
.gw-line-q { font-size: 18px; line-height: 1.42; letter-spacing: -.005em; color: var(--ink); text-wrap: pretty; }

/* ---- the closing line ------------------------------------------------------------ */
.gw-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; margin-top: 32px; padding-top: 22px; border-top: 1px solid var(--line); }
.gw-foot p { display: flex; align-items: center; gap: 12px; font-size: .9375rem; line-height: 1.45; color: var(--muted); }
.gw-marks { display: inline-flex; flex: none; }
.gw-marks .byl { --bs: 24px; box-shadow: 0 0 0 2px var(--page-2); }
.gw-marks .byl + .byl { margin-inline-start: -7px; }

/* ---- smaller screens -------------------------------------------------------------- */
@media (max-width: 1079px) {
  .gw-in { width: min(60%, 560px); padding: 44px 40px 48px; }
  .gw-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 899px) {
  /* stacked, as the app's phone rule: the words on top, the print in the room below */
  .gw-hero { flex-direction: column; align-items: stretch; min-height: 0; }
  .gw-in { width: 100%; padding: 32px 32px 300px; }
  .gw-in { justify-content: flex-start; }
  .gw-quiet { display: none; }
}
@media (max-width: 719px) {
  .gw-hero { margin-inline: calc(var(--gutter) * -1 + 8px); border-radius: var(--r-panel); }
  .gw-in { padding: 26px 20px 268px; }
  .gw-name { font-size: 34px; gap: 10px; }
  .gw-desc { margin-top: 10px; }
  .gw-sample { margin-top: 14px; font-size: 19px; line-height: 1.42; }
  .gw-btns { padding-top: 22px; width: 100%; }
  .gw-btns .btn { flex: 1 1 100%; }
  .gw-nav { inset-inline-end: 12px; bottom: 12px; }
  .gw-cast { grid-auto-columns: 92px; gap: 8px; margin-top: 8px; --fade: 14px; }
  .gw-card:hover { transform: none; box-shadow: 0 1px 2px rgb(24 21 31 / .05); }
  .gw-card.on, .gw-card.on:hover { box-shadow: 0 0 0 2px var(--ink); }
  .gw-cast.is-all { grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); }
  .gw-cast.is-all .gw-own { grid-column: span 1; padding: 10px; }
  .gw-cast.is-all .gw-own .badge { top: 10px; inset-inline-end: 10px; }
  /* the six lines scroll sideways on a phone */
  .gw-grid { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 80%; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); margin-inline: calc(var(--gutter) * -1); padding: 2px var(--gutter) 6px; scrollbar-width: none; }
  .gw-grid::-webkit-scrollbar { display: none; }
  .gw-line { scroll-snap-align: start; }
  .gw-line:hover { transform: none; }
  .gw-foot { flex-direction: column; align-items: flex-start; }
  .gw-foot p { align-items: flex-start; }
}

/* ==== 04-story ==== */
/* Why carousels: the page's one dark section (deep plum).
   Intro + four reasons, then the reference's stop-scroll: on desktop the story pins and the
   scroll swipes each platform's carousel slide by slide inside the app's own phone preview
   (final/ui/css/mockup.css, ported to .sty-*). Below 1024px the platforms stack. Prefix: .sty-* */
.sty { overflow-x: clip; --sty-gap: clamp(40px, 5vw, 88px); }
.sty :focus-visible { outline-color: #c3a6f3; }
.sty .t-h2 { color: var(--night-text); }
.sty-head { margin-bottom: clamp(36px, 4.4vw, 56px); }

/* ---- the four reasons ---------------------------------------------------------------- */
.sty-why { display: grid; border-radius: var(--r-panel); background: rgb(255 255 255 / .035); box-shadow: inset 0 0 0 1px var(--night-line); }
.sty-why li { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-content: start; gap: 3px 14px; padding: 22px 24px; }
.sty-why li + li { border-top: 1px solid var(--night-line); }
.sty-why .ic { grid-row: span 2; width: 34px; height: 34px; padding: 8px; border-radius: 10px; background: rgb(185 162 240 / .12); color: #d9cbf7; }
.sty-why b { font-size: .9375rem; line-height: 1.4; font-weight: 500; color: var(--night-text); }
.sty-why span { font-size: .875rem; line-height: 1.5; color: var(--night-muted); text-wrap: pretty; }
@media (min-width: 640px) {
  .sty-why { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sty-why li + li { border-top: 0; }
  .sty-why li:nth-child(n + 3) { border-top: 1px solid var(--night-line); }
  .sty-why li:nth-child(2n) { border-inline-start: 1px solid var(--night-line); }
}
@media (min-width: 1080px) {
  .sty-why { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .sty-why li:nth-child(n + 3) { border-top: 0; }
  .sty-why li + li { border-inline-start: 1px solid var(--night-line); }
  .sty-why li { padding: 24px 26px 26px; }
}

/* ---- platform pills (desktop) and the platform tag (stacked) ---------------------------- */
.sty-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.sty-pill, .sty-tag { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 16px 0 13px;padding-inline: 13px 16px; border-radius: 10px; font-size: .875rem; font-weight: 500; color: var(--night-muted); white-space: nowrap; transition: background-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease), box-shadow var(--d-fast) var(--ease); -webkit-tap-highlight-color: transparent; }
.sty-pill .ic, .sty-tag .ic { width: 16px; height: 16px; }
.sty-pill:hover { color: var(--night-text); background: rgb(255 255 255 / .06); }
.sty-pill[aria-current="true"], .sty-tag { background: var(--night-text); color: var(--ink); box-shadow: 0 6px 18px -8px rgb(12 6 28 / .6); }

/* ---- the copy: label, factual heading, the stat, the reasons ----------------------------- */
.sty-copy { display: grid; justify-items: start; }
.sty-kick { display: flex; align-items: center; gap: 12px; font-size: .875rem; line-height: 1.4; font-weight: 500; color: var(--night-muted); }
.sty-h { margin-top: 14px; max-width: 13em; font-size: clamp(1.875rem, 1.3rem + 1.15vw, 2.5rem); line-height: 1.1; font-weight: 300; letter-spacing: -.032em; color: var(--night-text); text-wrap: balance; }
.sty-stat { display: flex; align-items: center; gap: 8px 20px; margin-top: 26px; }
.sty-big { font-size: clamp(3.25rem, 2.6rem + 1.5vw, 4.25rem); line-height: .9; font-weight: 300; letter-spacing: -.055em; color: #fff; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sty-big small { margin-inline-start: .05em; font-size: .5em; font-weight: 300; letter-spacing: 0; color: var(--night-muted); }
.sty-note { max-width: 17ch; font-size: .875rem; line-height: 1.45; color: var(--night-muted); }
.sty-stat-words { display: grid; gap: 12px; }
.sty-stat-words .sty-big { font-size: clamp(2.25rem, 1.8rem + 1vw, 2.875rem); line-height: 1; letter-spacing: -.04em; white-space: normal; }
.sty-stat-words .sty-note { max-width: 36ch; font-size: .9375rem; }
.sty-bars { width: 100%; max-width: 400px; display: grid; gap: 12px; margin-top: 22px; }
.sty-bar p { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 7px; font-size: .8125rem; line-height: 1.3; color: var(--night-muted); }
.sty-bar b { font-weight: 500; color: var(--night-text); font-variant-numeric: tabular-nums; }
.sty-line { display: block; height: 4px; border-radius: 4px; background: rgb(255 255 255 / .08); overflow: hidden; }
.sty-line i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #eaa585, #c3a6f3); transition: width 1.1s var(--ease-out) .15s; }
.sty-bar.is-b .sty-line i { background: rgb(255 255 255 / .3); transition-delay: .3s; }
.sty.is-live .sty-step.is-on .sty-line i { width: var(--w); }
.sty-src { max-width: 400px; margin-top: 14px; font-size: .75rem; line-height: 1.55; color: rgb(244 241 250 / .48); text-wrap: pretty; }
.sty-src a { padding: 13px 0; color: var(--night-muted); text-decoration: underline; text-decoration-color: rgb(255 255 255 / .22); text-underline-offset: 2px; transition: color var(--d-fast) var(--ease); }
.sty-src a:hover { color: var(--night-text); }
.sty-src a .ic { display: inline-block; width: 11px; height: 11px; margin-inline-start: 1px; vertical-align: -1px; }
.sty-list { width: 100%; max-width: 440px; display: grid; gap: 14px; margin-top: 30px; }
.sty-list li { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 14px; align-items: start; }
.sty-list .ic { width: 30px; height: 30px; padding: 7px; border-radius: 9px; background: rgb(255 255 255 / .06); box-shadow: inset 0 0 0 1px var(--night-line); color: #d9cbf7; }
.sty-list p { font-size: .875rem; line-height: 1.45; color: var(--night-muted); text-wrap: pretty; }
.sty-list b { display: block; margin-bottom: 1px; font-size: .9375rem; font-weight: 500; color: var(--night-text); }
.sty-cta { margin-top: 26px; }

/* ---- the media column: glow, the phone, the pager ------------------------------------------ */
.sty-media { position: relative; isolation: isolate; display: flex; flex-direction: column; align-items: center; min-width: 0; }
.sty-glow { position: absolute; z-index: -1; left: 50%; top: calc(50% - 26px); width: min(640px, 150%); aspect-ratio: 1; translate: -50% -50%; border-radius: 50%; pointer-events: none; background: radial-gradient(closest-side, var(--tone), transparent 72%); }
.sty-glow::before, .sty-glow::after { content: ""; position: absolute; inset: 12%; border-radius: 50%; box-shadow: inset 0 0 0 1px rgb(255 255 255 / .05); }
.sty-glow::after { inset: 2%; box-shadow: inset 0 0 0 1px rgb(255 255 255 / .035); }
.sty-media[data-tone="ember"] { --tone: rgb(234 165 133 / .24); }
.sty-media[data-tone="iris"] { --tone: rgb(178 150 236 / .32); }
.sty-media[data-tone="forest"] { --tone: rgb(160 200 168 / .2); }
.sty-stage { width: 100%; display: grid; place-items: center; }
.sty-fit { --s: .7; position: relative; flex: none; width: calc(390px * var(--s)); height: calc(844px * var(--s)); }

/* the pager under each phone: prev, dots, count, next */
.sty-pager { display: flex; align-items: center; gap: 14px; height: 56px; padding-top: 14px; }
.sty-pager .round { width: 40px; height: 40px; }
.sty-pager .round[disabled] { opacity: .3; }
.sty-n { min-width: 42px; text-align: center; font-size: .8125rem; color: var(--night-muted); font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.sty-dots { display: inline-flex; align-items: center; gap: 5px; }
.sty-dots i { width: 6px; height: 6px; border-radius: 99px; background: rgb(255 255 255 / .22); transition: width .35s var(--ease-out), background-color .35s var(--ease); }
.sty-dots i.on { width: 18px; background: var(--night-text); }

/* ---- the app's phone preview (390 × 844, scaled to fit by script.js like the app's fit()) -- */
.sty-ph { position: absolute; left: 0; top: 0; width: 390px; height: 844px; transform: scale(var(--s)); transform-origin: 0 0;
  font: 400 14px/1.35 var(--font); letter-spacing: 0; color: rgb(31 26 46 / .92); -webkit-user-select: none; user-select: none; touch-action: pan-y; cursor: grab; }
.sty-ph:active { cursor: grabbing; }
/* the body (aubergine, never black) and the side buttons; the slides' strip runs behind it */
.sty-ph::before { content: ""; position: absolute; inset: 0; border-radius: 58px; background: #2a2238;
  box-shadow: inset 0 0 0 2px #4a3e60, 0 0 0 1px rgb(14 8 30 / .55), 0 60px 110px -40px rgb(10 5 24 / .9), 0 24px 48px -24px rgb(10 5 24 / .55); }
.sty-ph::after { content: ""; position: absolute; inset-inline-start: -3px; top: 150px; width: 3px; height: 60px; border-radius: 2px; background: #3b3150; box-shadow: 0 90px 0 #3b3150, 393px 50px 0 #3b3150, 393px 80px 0 #3b3150; }
/* the reference's strip: the same slides continue outside the phone, faded at the edges */
.sty-ghost { position: absolute; z-index: -1; top: 0; bottom: 0; inset-inline-start: calc(var(--gx, 0px) * -1); inset-inline-end: calc(var(--gx, 0px) * -1); pointer-events: none; opacity: .8; filter: brightness(.66) saturate(.92);
  -webkit-mask-image: linear-gradient(90deg, transparent, #fff 24%, #fff 76%, transparent); mask-image: linear-gradient(90deg, transparent, #fff 24%, #fff 76%, transparent); }
.sty-ghost .sty-rail { position: absolute; inset-inline-start: var(--vx, 0px); top: var(--vy, 0px); }
.sty-ph .ic { width: 24px; height: 24px; }
.sty-scr { position: absolute; inset: 12px; display: flex; flex-direction: column; padding-top: 54px; border-radius: 46px; overflow: hidden; background: #fff; }
.sty-scr > * { flex-shrink: 0; }
.sty-sb { position: absolute; z-index: 5; inset-inline-start: 12px; inset-inline-end: 12px; top: 12px; height: 54px; display: flex; align-items: center; justify-content: space-between; padding: 4px 34px 0 44px;padding-inline: 44px 34px; font-size: 16px; font-weight: 600; color: var(--ink); pointer-events: none; }
.sty-sb.is-light { color: #fff; }
.sty-island { position: absolute; left: 50%; top: 11px; width: 124px; height: 36px; margin-left: -62px; border-radius: 20px; background: #1a1427; }
.sty-sys { display: inline-flex; align-items: center; gap: 5px; }
.sty-sys svg { width: 18px; height: 13px; fill: currentColor; }
.sty-sys svg:last-child { width: 26px; }
.sty-home { position: absolute; z-index: 5; left: 50%; bottom: 20px; width: 134px; height: 5px; margin-left: -67px; border-radius: 3px; background: rgb(31 26 46 / .85); }
.sty-ph-tt .sty-home { background: rgb(255 255 255 / .85); }
.sty-ab { display: grid; grid-template-columns: 40px 1fr 40px; align-items: center; height: 48px; padding: 0 8px; background: #fff; border-bottom: 1px solid rgb(140 140 140 / .25); font-size: 16px; }
.sty-ab b { font-weight: 600; }
.sty-av { position: relative; flex: none; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(135deg, #d9c9ff, #a58bff); color: #fff; font-size: 14px; font-weight: 600; }
.sty-av.lg { width: 48px; height: 48px; font-size: 17px; }
.sty-av.xs { width: 26px; height: 26px; font-size: 10px; }
.sty-av.ring { width: 32px; height: 32px; margin: 4px; font-size: 12px; box-shadow: 0 0 0 2px #fff, 0 0 0 4px #e1306c; }
.sty-dim { color: rgb(31 26 46 / .58); }
.sty-kebab { width: 20px !important; height: 20px !important; margin-inline-start: auto; color: rgb(31 26 46 / .6); }
.sty-vp { overflow: hidden; }
.sty-rail { display: flex; will-change: transform; }
.sty-cell { flex: none; position: relative; overflow: hidden; }
.sty-cell .sl { --sl-r: 0px; }
/* the slides: pictures of a carousel the app made (home-main.php $styCells) */
.sty-cell > .sc-pic { display: block; width: 100%; height: auto; pointer-events: none; user-select: none; -webkit-user-drag: none; }
/* the author's photo (Mara Lind, who signs the slides) */
.sty-av > img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; }
.sty .sl > .sl-orb { position: absolute; }

/* LinkedIn: the feed, the post, the document pages side by side, then the next post loading */
.sty-ph-li .sty-scr { background: #f4f2ee; }
.sty-li { background: #fff; border-bottom: 8px solid #f4f2ee; }
.sty-li-head { display: flex; align-items: flex-start; gap: 8px; padding: 12px 16px 0; }
.sty-li-who { flex: 1; min-width: 0; display: flex; flex-direction: column; font-size: 12px; line-height: 16px; }
.sty-li-name { font-size: 14px; line-height: 20px; }
.sty-li-name b { font-weight: 600; }
.sty-li-time { display: inline-flex; align-items: center; gap: 3px; }
.sty-li-time .ic { width: 13px; height: 13px; }
.sty-li .sty-kebab { margin-top: 2px; }
.sty-cap { padding: 8px 16px; font-size: 14px; line-height: 20px; }
.sty-cap .sty-dim { margin-inline-start: 2px; }
.sty-li-doc { position: relative; padding: 0 12px 4px; }
.sty-li-doc .sty-vp { border-radius: 4px; }
.sty-ph-li .sty-rail { gap: 4px; }
.sty-ph-li .sty-cell { width: 226px; border-radius: 4px; }
.sty-ph-li .sty-cell::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgb(140 140 140 / .25); pointer-events: none; }
.sty-li-badge { position: absolute; inset-inline-start: 20px; top: 8px; z-index: 2; display: flex; max-width: 70%; padding: 2px 8px; border-radius: 4px; background: rgb(31 26 46 / .76); color: #fff; font-size: 13px; line-height: 20px; white-space: nowrap; }
.sty-li-badge b { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.sty-li-badge span { flex: none; white-space: pre; }
.sty-li-arrow, .sty-li-full { position: absolute; z-index: 2; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: rgb(255 255 255 / .95); color: rgb(31 26 46 / .78); box-shadow: 0 0 0 1px rgb(31 26 46 / .08), 0 2px 6px rgb(31 26 46 / .15); }
.sty-li-arrow { inset-inline-end: 20px; top: 50%; translate: 0 -50%; transition: opacity .25s var(--ease); }
.sty-li-full { inset-inline-end: 20px; bottom: 14px; }
.sty-li-arrow svg, .sty-li-full svg { width: 16px; height: 16px; fill: currentColor; }
.sty-li-doc.is-end .sty-li-arrow { opacity: 0; }
.sty-li-social { display: flex; align-items: center; gap: 4px; padding: 8px 16px; font-size: 12px; line-height: 16px; }
.sty-li-reacts { display: inline-flex; margin-inline-end: 2px; }
.sty-li-reacts i { display: grid; width: 16px; height: 16px; margin-inline-start: -3px; border-radius: 50%; box-shadow: 0 0 0 1px #fff; }
.sty-li-reacts i:first-child { margin-inline-start: 0; }
.sty-li-reacts svg { width: 16px; height: 16px; }
.sty-li-acts { display: flex; justify-content: space-around; margin: 0 16px; padding: 4px 0; border-top: 1px solid rgb(140 140 140 / .25); }
.sty-li-acts span { display: inline-flex; align-items: center; gap: 4px; padding: 8px 4px; font-size: 12px; font-weight: 600; color: rgb(31 26 46 / .6); }
.sty-li-acts svg { width: 18px; height: 18px; fill: currentColor; }
.sty-skel { display: grid; grid-template-columns: 48px 1fr; gap: 10px; padding: 16px; background: #fff; }
.sty-skel i { width: 48px; height: 48px; border-radius: 50%; background: rgb(31 26 46 / .06); }
.sty-skel span { display: flex; flex-direction: column; justify-content: center; gap: 8px; }
.sty-skel b { width: 60%; height: 10px; border-radius: 5px; background: rgb(31 26 46 / .06); }
.sty-skel b + b { width: 40%; }
.sty-skel em { grid-column: 1 / -1; height: 10px; border-radius: 5px; background: rgb(31 26 46 / .06); }
.sty-skel em + em { width: 70%; }

/* Instagram: header, the full-width 3:4 carousel, actions with the dots, likes, caption, tab bar */
.sty-ig-head { display: flex; align-items: center; gap: 8px; padding: 6px 12px; font-size: 14px; }
.sty-ig-head b { font-weight: 600; }
.sty-ig-media { position: relative; width: 366px; }
.sty-ph-ig .sty-cell { width: 366px; }
.sty-ph-ig .sl { aspect-ratio: 3 / 4; }
.sty-count { position: absolute; z-index: 2; top: 12px; inset-inline-end: 12px; padding: 3px 8px; border-radius: 99px; background: rgb(31 26 46 / .7); color: #fff; font-size: 12px; font-weight: 500; font-variant-numeric: tabular-nums; }
.sty-ig-acts { display: flex; align-items: center; gap: 14px; padding: 10px 14px 6px; color: var(--ink); }
.sty-ig-dots { flex: 1; justify-content: center; margin-inline-end: 38px; gap: 4px; }
.sty-ig-dots i, .sty-ig-dots i.on { width: 6px; background: rgb(140 140 140 / .35); }
.sty-ig-dots i.on { background: #0095f6; }
.sty-ig-likes { padding: 0 14px 4px; font-size: 14px; }
.sty-ig-likes b { font-weight: 600; }
.sty-ig-cap { padding: 0 14px; font-size: 14px; line-height: 20px; }
.sty-ig-cap > b { font-weight: 600; margin-inline-end: 2px; }
.sty-tabbar { position: absolute; z-index: 4; inset-inline-start: 0; inset-inline-end: 0; bottom: 0; height: 82px; display: flex; align-items: center; justify-content: space-between; padding: 8px 20px 30px; background: #fff; border-top: 1px solid rgb(140 140 140 / .25); color: var(--ink); }
.sty-tabbar svg { width: 24px; height: 24px; }
.sty-tabbar.is-dark { background: #1a1427; border-color: rgb(255 255 255 / .1); color: #fff; }

/* TikTok: photo mode, full screen, the right rail, caption with the dots, the tab bar */
.sty-ph-tt .sty-scr { padding-top: 0; background: #1a1427; }
.sty-tt { position: relative; flex: 1; display: flex; align-items: center; color: #fff; }
.sty-tt .sty-vp { width: 366px; }
.sty-ph-tt .sty-cell { width: 366px; }
.sty-ph-tt .sl { padding-top: 16%; padding-bottom: 42%; }
.sty-ph-tt .sl-h, .sty-ph-tt .sl-p, .sty-ph-tt .sl-list { max-width: 80%; }
.sty-ph-tt .sl-bot { display: none; }
.sty-tt::after { content: ""; position: absolute; inset-inline-start: 0; inset-inline-end: 0; bottom: 0; height: 46%; background: linear-gradient(transparent, rgb(26 20 39 / .66)); pointer-events: none; }
.sty-tt-top, .sty-tt-rail, .sty-tt-copy { z-index: 2; }
.sty-tt-top { position: absolute; top: 58px; inset-inline-start: 0; inset-inline-end: 0; display: flex; align-items: center; justify-content: center; gap: 18px; font-size: 16px; color: rgb(255 255 255 / .72); text-shadow: 0 1px 2px rgb(26 20 39 / .5); }
.sty-tt-top::before { content: ""; position: absolute; z-index: -1; inset-inline-start: 0; inset-inline-end: 0; top: -60px; height: 120px; background: linear-gradient(rgb(26 20 39 / .5), transparent); }
.sty-tt-top b { padding-bottom: 4px; border-bottom: 2px solid #fff; color: #fff; font-weight: 600; }
.sty-tt-top .ic { position: absolute; inset-inline-end: 16px; }
.sty-tt-rail { position: absolute; inset-inline-end: 10px; bottom: 150px; display: flex; flex-direction: column; align-items: center; gap: 22px; }
.sty-tt-rail .ic { width: 32px; height: 32px; filter: drop-shadow(0 1px 2px rgb(26 20 39 / .5)); }
.sty-tt-me { position: relative; margin-bottom: 4px; }
.sty-tt-me .sty-av { box-shadow: 0 0 0 1.5px #fff; }
.sty-tt-me i { position: absolute; left: 50%; bottom: -8px; width: 20px; height: 20px; margin-left: -10px; display: grid; place-items: center; border-radius: 50%; background: #fe2c55; }
.sty-tt-me i .ic { width: 12px; height: 12px; filter: none; }
.sty-tt-copy { position: absolute; inset-inline-start: 12px; inset-inline-end: 72px; bottom: 96px; display: grid; justify-items: start; font-size: 14px; line-height: 19px; text-shadow: 0 1px 2px rgb(26 20 39 / .5); }
.sty-tt-copy b { font-size: 15px; font-weight: 600; }
.sty-tt-copy p { margin: 4px 0 8px; }
.sty-tt-copy p span { color: rgb(255 255 255 / .8); }
.sty-tt-copy .sty-dots { gap: 4px; }
.sty-tt-copy .sty-dots i, .sty-tt-copy .sty-dots i.on { width: 6px; background: rgb(255 255 255 / .4); }
.sty-tt-copy .sty-dots i.on { background: #fff; }
.sty-tt-sound { display: flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 13px; white-space: nowrap; }
.sty-tt-sound .ic { width: 16px; height: 16px; }
.sty-tt-plus { width: 44px; height: 30px; display: grid; place-items: center; border-radius: 8px; background: #fff; color: var(--ink); box-shadow: -3px 0 0 #25f4ee, 3px 0 0 #fe2c55; }
.sty-tt-plus .ic { width: 18px; height: 18px; }

/* ---- the bottom bar (desktop) -------------------------------------------------------------- */
.sty-foot { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 64px; }
.sty-hint { display: flex; align-items: center; gap: 10px; font-size: .8125rem; color: var(--night-muted); }
.sty-hint .ic { width: 14px; height: 14px; animation: sty-bob 1.8s ease-in-out infinite; }
@keyframes sty-bob { 50% { transform: translateY(3px); } }
.sty:not(.is-vis) .sty-hint .ic { animation-play-state: paused; }
.sty-prog { display: flex; align-items: center; gap: 18px; }
.sty-progress { width: clamp(160px, 18vw, 260px); height: 2px; border-radius: 2px; background: rgb(255 255 255 / .12); overflow: hidden; }
.sty-progress i { display: block; height: 100%; background: var(--night-text); transform: scaleX(0); transform-origin: left center; }
.sty-index { font-size: .8125rem; color: var(--night-muted); font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.sty-index b { font-weight: 500; color: var(--night-text); }

/* ---- desktop: the pinned story ---------------------------------------------------------------- */
@media (min-width: 1024px) and (min-height: 600px) {
  .sty { --sty-top: var(--header-h); --sty-h: min(calc(100vh - var(--sty-top)), 960px); --sty-run: clamp(520px, 72vh, 700px); --sty-pad: clamp(32px, 5.5vh, 64px); --sty-foot: 64px; }
  .sty-scroll { margin-top: clamp(40px, 4vw, 64px); height: calc(var(--sty-h) + 3 * var(--sty-run)); }
  .sty-sticky { position: sticky; top: max(var(--sty-top), calc((100vh - var(--sty-h)) / 2 + var(--sty-top) / 2)); height: var(--sty-h); }
  .sty-grid { height: 100%; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-rows: minmax(0, 1fr) auto auto minmax(0, 1fr) auto; column-gap: var(--sty-gap); }
  .sty-pills { grid-area: 2 / 1; margin-bottom: 36px; }
  .sty-step { display: contents; }
  .sty-copy { grid-area: 3 / 1; align-self: start; }
  /* the phone: as much room above it as between it and the progress line below it (30 Oct 2026, late, Fernando) */
  .sty-media { grid-area: 1 / 2 / 5 / 3; padding-top: var(--sty-pad); padding-bottom: max(0px, calc(var(--sty-pad) - var(--sty-foot) / 2)); }
  .sty-stage { flex: 1 1 0; min-height: 0; }
  /* the bottom bar keeps the two columns: the hint under the copy, the progress line centred under the phone */
  .sty-foot { grid-area: 5 / 1 / 6 / 3; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: var(--sty-gap); height: var(--sty-foot); }
  .sty-prog { position: relative; justify-self: center; }
  .sty-prog .sty-index { position: absolute; inset-inline-start: 100%; margin-inline-start: 18px; white-space: nowrap; }   /* the line itself sits under the phone's middle */
  /* the copy breathes: title, numbers, the three points and the link as four groups */
  .sty-stat { margin-top: 36px; }
  .sty-bars { margin-top: 24px; }
  /* 30 Oct 2026, 23:41 (Fernando: too much at once): no rule between the numbers and the three points, and more air
     before the link, so the four groups read apart */
  .sty-list { margin-top: 44px; gap: 18px; }
  .sty-cta { margin-top: 52px; }
  .sty .sty-more { margin-top: clamp(28px, 3vw, 48px); }
  .sty-tag { display: none; }
  .sty-kick { display: none; }   /* pinned: the pills name the platform; the format eyebrow went on 30 Oct 2026 (Fernando) */
  /* one platform at a time: the copy crossfades; the incoming phone fades in over the outgoing one */
  .sty-copy, .sty-media { transition: opacity .45s var(--ease), transform .7s var(--ease-out), visibility 0s linear 0s; }
  .sty-step:not(.is-on) .sty-copy, .sty-step:not(.is-on) .sty-media { opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .3s var(--ease), transform .5s var(--ease), visibility 0s linear .3s; }
  .sty-step:not(.is-on) .sty-copy { transform: translateY(10px); }
  .sty-step.is-on .sty-copy { transition-delay: .1s, .1s, 0s; }
  .sty-step.is-on .sty-media { z-index: 2; }
  .sty-step.is-prev .sty-media { z-index: 1; opacity: 1; visibility: visible; transition: none; }
  .sty-pager, .sty-glow, .sty-ghost { transition: opacity .45s var(--ease); }
  .sty-step:not(.is-on) .sty-pager, .sty-step:not(.is-on) .sty-glow, .sty-step:not(.is-on) .sty-ghost { opacity: 0; transition: opacity .18s var(--ease); }
  /* a resize jumps straight to the right platform */
  .sty.is-instant .sty-copy, .sty.is-instant .sty-media, .sty.is-instant .sty-line i, .sty.is-instant .sty-pager, .sty.is-instant .sty-glow, .sty.is-instant .sty-ghost { transition: none !important; }
}

/* shorter laptop screens: the same story, a little tighter. 31 Oct 2026 (Fernando: "too cramped" on his laptop): the
   points keep their title on its own line (no run-in text that wraps), and the four groups (title, numbers, points,
   link) keep clear gaps; the pinned panel has the room, so only the type gets smaller */
@media (min-width: 1024px) and (min-height: 600px) and (max-height: 860px) {
  .sty { --sty-foot: 52px; }
  .sty-pills { margin-bottom: 28px; }
  .sty-h { margin-top: 10px; font-size: clamp(1.75rem, 1.2rem + 1vw, 2.125rem); }
  .sty-stat { margin-top: 28px; }
  .sty-big { font-size: 3.25rem; }
  .sty-stat-words .sty-big { font-size: 2.25rem; }
  .sty-bars { margin-top: 20px; gap: 10px; }
  .sty-src { margin-top: 10px; }
  .sty-list { margin-top: 36px; gap: 16px; }
  .sty-cta { margin-top: 38px; }
  .sty-pager { height: 50px; padding-top: 10px; }
}
@media (min-width: 1024px) and (min-height: 600px) and (max-height: 760px) {
  .sty-pills { margin-bottom: 22px; }
  .sty-h { font-size: 1.75rem; }
  .sty-big { font-size: 2.75rem; }
  .sty-stat { margin-top: 26px; }
  .sty-bars { margin-top: 20px; gap: 8px; }
  .sty-bar p { margin-bottom: 6px; }
  .sty-list { margin-top: 34px; gap: 14px; }
  .sty-list .ic { width: 26px; height: 26px; padding: 5px; }
  .sty-list li { grid-template-columns: 26px minmax(0, 1fr); gap: 12px; }
  .sty-list p { font-size: .8125rem; line-height: 1.4; }
  .sty-list b { font-size: .875rem; }
  .sty-cta { margin-top: 32px; }
}
@media (min-width: 1024px) and (min-height: 600px) and (max-height: 700px) {
  .sty-pills { margin-bottom: 16px; }
  .sty-stat { margin-top: 16px; }
  .sty-big { font-size: 2.5rem; }
  .sty-bars { margin-top: 14px; }
  .sty-list { margin-top: 22px; gap: 10px; }
  .sty-cta { margin-top: 22px; }
}
@media (min-width: 1024px) and (min-height: 600px) and (max-height: 660px) {
  .sty-kick { display: none; }
  .sty-src { margin-top: 8px; }
  .sty-h { margin-top: 0; }
}
@media (min-width: 1024px) and (min-height: 600px) and (max-height: 620px) {
  .sty-cta { display: none; }
}

/* ---- stacked (phone, tablet, short screens) ---------------------------------------------------- */
@media not ((min-width: 1024px) and (min-height: 600px)) {
  .sty-pills, .sty-foot { display: none; }
  .sty-scroll { margin-top: clamp(64px, 12vw, 96px); }
  .sty-grid { display: grid; gap: clamp(80px, 14vw, 112px); }
  .sty-step { display: grid; gap: 36px; }
  .sty-kick { flex-wrap: wrap; gap: 8px 12px; }
  .sty-stage { height: clamp(440px, 66svh, 560px); }
  .sty-glow { width: min(560px, 140%); }
  .sty-cta { min-height: 40px; margin-top: 16px; }
}
@media (min-width: 720px) and (max-width: 1023px) {
  .sty-step { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 40px; }
}

/* ---- also made for: one slim strip ---------------------------------------------------------- */
.sty-more { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 16px 32px; margin-top: clamp(64px, 8vw, 104px); padding: 22px 26px; border-radius: var(--r-panel); background: rgb(255 255 255 / .035); box-shadow: inset 0 0 0 1px var(--night-line); }
.sty-more-txt { display: grid; gap: 4px; }
.sty-more-h { font-size: 1rem; line-height: 1.4; font-weight: 500; color: var(--night-text); }
.sty-more-txt p { font-size: .875rem; line-height: 1.5; color: var(--night-muted); text-wrap: pretty; }
.sty-more-list { display: flex; flex-wrap: wrap; gap: 8px; }
.sty-more-list li { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 12px 0 10px;padding-inline: 10px 12px; border-radius: 8px; background: rgb(255 255 255 / .05); box-shadow: inset 0 0 0 1px var(--night-line); font-size: .8125rem; font-weight: 500; color: var(--night-text); white-space: nowrap; }
.sty-more-list .ic { width: 16px; height: 16px; color: #d9cbf7; }
.sty-more-cta { white-space: nowrap; }
/* narrower: the line on top, then the chips with the link on the right */
@media (max-width: 1179px) {
  .sty-more { grid-template-columns: minmax(0, 1fr) auto; gap: 16px 24px; }
  .sty-more-txt { grid-column: 1 / -1; }
}
@media (max-width: 639px) {
  .sty-more { grid-template-columns: minmax(0, 1fr); padding: 22px 20px; }
  .sty-more-cta { justify-self: start; min-height: 40px; }
}
/* a source link inside a reason */
.sty-list p a { color: inherit; text-decoration: underline; text-decoration-color: rgb(255 255 255 / .22); text-underline-offset: 2px; white-space: nowrap; transition: color var(--d-fast) var(--ease); }
.sty-list p a:hover { color: var(--night-text); }
.sty-list p a .ic { display: inline-block; width: 11px; height: 11px; padding: 0; margin-inline-start: 1px; vertical-align: -1px; border-radius: 0; background: none; box-shadow: none; color: inherit; }

/* ==== 05-formats ==== */
/* Formats: one lesson as a carousel, an image post and a video post, in one of three app themes. The window
   follows the app (white, hairlines, Inter 13, rows with chevrons); every picture is drawn by the app's engine
   (_inc/showcase.php), one per theme, stacked: the chosen theme's shows. Sizes follow the window (container fx),
   so it fits a page's column as well as the homepage. Prefix .fx-* (window), .fxs (section). */

/* ---- the stage around the window ------------------------------------------------------ */
.fx-stage { padding: clamp(12px, 2.6vw, 36px); background: #f1edf9; box-shadow: inset 0 0 0 1px rgb(127 86 217 / .07); }
.fx { position: relative; container: fx / inline-size; border-radius: var(--r-panel); box-shadow: var(--shadow-float), 0 50px 100px -40px rgb(60 36 110 / .3); }
.fx .ic { width: 16px; height: 16px; }

/* top bar */
.fx-bar { gap: 10px; padding: 0 12px 0 14px;padding-inline: 14px 12px; }
.fx-logo { display: grid; width: 26px; height: 26px; flex: none; }
.fx-logo svg { width: 26px; height: 26px; }
.fx-bar .crumb { font-size: 14px; gap: 7px; margin-inline-start: 2px; white-space: nowrap; }
.fx-slash { color: var(--subtle); }
.fx-pills { display: flex; align-items: center; gap: 6px; min-width: 0; }
.fx-pill { height: 30px; padding: 0 10px; gap: 7px; font-size: 12.5px; white-space: nowrap; }
.fx-pill .k { color: var(--muted); font-weight: 400; margin-inline-end: -3px; }
.fx-pill .ic { width: 14px; height: 14px; color: var(--muted); }
.fx-kitpill { padding-inline-start: 4px; }
.fx-av { width: 20px; height: 20px; border-radius: 50%; object-fit: cover; flex: none; }
.fx-pill .fx-av { width: 22px; height: 22px; }
.fx-short { display: none; }

/* two-colour theme swatch (also used on the chips and in the rail) */
.fx-sw { position: relative; display: inline-block; width: 14px; height: 14px; border-radius: 50%; flex: none; background: linear-gradient(135deg, var(--a) 50%, var(--b) 50%); box-shadow: inset 0 0 0 1px rgb(31 26 46 / .12); }

/* ---- body: rail + canvas ---------------------------------------------------------------- */
.fx-body { display: grid; grid-template-columns: 248px minmax(0, 1fr); }
.fx-rail { display: flex; flex-direction: column; gap: 10px; padding: 18px 14px 16px; border-inline-end: 1px solid var(--app-line); background: #fcfbfe; }
.fx-rail > .app-label { padding: 0 4px; }
.fx-types { display: grid; gap: 4px; margin-bottom: 14px; }
.fx-type { display: flex; align-items: center; gap: 12px; width: 100%; padding: 8px; border-radius: 12px; text-align: start; transition: background-color var(--d-fast) var(--ease), box-shadow var(--d-fast) var(--ease); }
.fx-type:hover { background: var(--hover); }
.fx-type[aria-pressed="true"] { background: var(--card); box-shadow: var(--shadow-chip); }
.fx-ti { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; flex: none; background: var(--card); box-shadow: inset 0 0 0 1px var(--app-line); color: var(--muted); transition: background-color var(--d-menu) var(--ease), color var(--d-menu) var(--ease), box-shadow var(--d-menu) var(--ease); }
.fx-ti .ic { width: 18px; height: 18px; }
.fx-type[aria-pressed="true"] .fx-ti { background: var(--page-2); color: var(--ink); box-shadow: inset 0 0 0 1px var(--line-2); }
.fx-type b { display: block; font-size: 13px; line-height: 1.3; font-weight: 500; color: var(--ink); }
.fx-type small { display: block; margin-top: 1px; font-size: 12px; line-height: 1.35; color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.fx-style { display: grid; gap: 6px; }
.fx-style .app-row { min-height: 38px; padding: 0 10px 0 12px;padding-inline: 12px 10px; }
.fx-style .app-row .k { flex: none; }
.fx-style .v { gap: 7px; white-space: nowrap; min-width: 0; }
/* 31 Oct 2026 (Fernando: the rows touched the right edge): the brand kit is "Fernando" (not the full name), and a long
   theme, kit or font name ends in "…" inside its row instead of pushing the row past the rail */
.fx-style .app-row { min-width: 0; overflow: hidden; }
.fx-style .v > :is(span[data-fx-font], span[data-fx-theme-name], .fx-kit-name) { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.fx-style .v .ic { width: 12px; height: 12px; }
.fx-style .v > .ic { display: none; }   /* no caret: the rail is narrow, the name gets the room */
.fx-style .v > span[data-fx-theme-name], .fx-style .v > span[data-fx-font] { transition: opacity .2s var(--ease); }
.fx-dots { display: inline-flex; padding-inline-start: 4px; }
.fx-dots i { width: 14px; height: 14px; border-radius: 50%; margin-inline-start: -4px; box-shadow: 0 0 0 2px #fff, inset 0 0 0 1px rgb(31 26 46 / .12); transition: background-color .35s var(--ease); }
.fx-tip { margin-top: auto; display: flex; gap: 9px; align-items: flex-start; padding: 12px; border-radius: 12px; border: 1px dashed var(--line-2); font-size: 12px; line-height: 1.45; color: var(--muted); }
.fx-tip .ic { width: 14px; height: 14px; margin-top: 1px; color: var(--subtle); }

.fx-main { display: flex; flex-direction: column; min-width: 0; background: #f4f3f7; }
.fx-tool { display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 48px; padding: 0 18px; }
.fx-tool > b { font-size: 13px; font-weight: 500; white-space: nowrap; }
.fx-tool-r { display: flex; align-items: center; gap: 12px; font-size: 12px; color: var(--muted); white-space: nowrap; }
.fx-sync { display: inline-flex; align-items: center; gap: 8px; }
.fx-sync i { position: relative; width: 7px; height: 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 3px rgb(63 138 85 / .14); }
.fx-sync i::after { content: ""; position: absolute; inset: -2px; border-radius: 50%; border: 1.5px solid var(--success); opacity: 0; }
.fx-sync.is-pulse i { animation: fx-beat .5s var(--ease-out); }
.fx-sync.is-pulse i::after { animation: fx-ping 1s var(--ease-out); }
@keyframes fx-beat { 40% { transform: scale(1.5); } }
@keyframes fx-ping { 0% { opacity: .7; transform: scale(1); } 100% { opacity: 0; transform: scale(3.4); } }
.fx-size { padding-inline-start: 12px; border-inline-start: 1px solid var(--app-line); font-variant-numeric: tabular-nums; }

/* ---- the canvas: the formats at their true ratios, on one baseline -------------------- */
.fx-canvas { --u: min(232px, 19cqw); position: relative; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 16px; padding: 28px 20px 24px; isolation: isolate; }
.fx-canvas::before { content: ""; position: absolute; z-index: -1; inset-inline-start: 10%; inset-inline-end: 10%; bottom: 0; height: 60%; border-radius: 50%; background: radial-gradient(closest-side, rgb(178 150 236 / .16), transparent); pointer-events: none; }
/* two formats (no video until it's out): each a little larger, so the canvas keeps its height */
.fx-two .fx-canvas { --u: min(316px, 27cqw); }
.fx-seg { display: none; }
.fx-row { display: flex; align-items: flex-end; justify-content: center; gap: 4.6cqw; width: 100%; }
.fx-item { position: relative; flex: none; width: var(--u); margin: 0; display: flex; flex-direction: column; align-items: center; gap: 12px; transform-origin: 50% 100%; transition: opacity .45s var(--ease), transform .55s var(--ease-out), filter .45s var(--ease); cursor: pointer; -webkit-tap-highlight-color: transparent; }
.fx-item[data-fx-item="carousel"] { margin-inline-end: calc(var(--u) * .07); }
.fx-label { display: flex; gap: 6px; font-size: 12px; line-height: 1.3; color: var(--muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.fx-label b { font-weight: 500; color: var(--text-soft); transition: color var(--d-menu) var(--ease); }
.fx-item.is-sel .fx-label b { color: var(--ink); }
.fx-frame { position: relative; width: 100%; }
.fx-frame[data-r="1:1"] { aspect-ratio: 1 / 1; }
.fx-frame[data-r="4:5"] { aspect-ratio: 4 / 5; }
.fx-frame[data-r="9:16"] { aspect-ratio: 9 / 16; }
.fx-art { position: absolute; inset: 0; }
/* a slide: the app's picture in each theme, stacked; the chosen theme's fades in */
.fx-pics { position: absolute; inset: 0; border-radius: 6px; overflow: hidden; box-shadow: 0 0 0 1px rgb(24 21 31 / .06), 0 14px 30px -14px rgb(40 24 70 / .35); }
.fx-pics > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0; transition: opacity .45s var(--ease); }
.fx-pics > img.is-on { opacity: 1; }
.fx-under { display: flex; align-items: center; justify-content: center; gap: 6px; height: 32px; font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.fx-note { display: inline-flex; align-items: center; gap: 6px; }
.fx-note .ic { width: 14px; height: 14px; color: var(--subtle); }
.fx-count { min-width: 48px; text-align: center; color: var(--text-soft); }
.fx-of { color: var(--subtle); }
.fx-pb { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; color: var(--muted); transition: background-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease); }
.fx-pb:hover { background: rgb(31 26 46 / .06); color: var(--ink); }
.fx-pb .ic { width: 14px; height: 14px; }
.fx-play { width: 30px; height: 30px; margin-inline-end: 4px; border-radius: 8px; display: grid; place-items: center; background: var(--card); color: var(--ink); box-shadow: var(--shadow-btn); transition: transform var(--d-fast) var(--ease); }
.fx-play:hover { transform: scale(1.06); }
.fx-play:active { transform: scale(.96); }
.fx-play .ic { width: 13px; height: 13px; }

/* chosen in the rail: that format steps forward, the others wait */
.fx[data-focus] .fx-item { opacity: .5; filter: saturate(.6); transform: scale(.965); }
.fx[data-focus="image"] .fx-item[data-fx-item="image"],
.fx[data-focus="carousel"] .fx-item[data-fx-item="carousel"],
.fx[data-focus="video"] .fx-item[data-fx-item="video"] { opacity: 1; filter: none; transform: scale(1.045); z-index: 2; }

/* carousel deck: the slides stacked, the front one swipes away (data-k: place in the stack) */
.fx-card { position: absolute; inset: 0; z-index: 1; transform-origin: 50% 100%; transform: translateX(14%) scale(.88); opacity: 0; transition: transform .75s var(--ease-out), opacity .5s var(--ease); }
.fx-card[data-k="0"] { z-index: 5; transform: none; opacity: 1; }
.fx-card[data-k="1"] { z-index: 4; transform: translateX(7.5%) scale(.94); opacity: 1; }
.fx-card[data-k="2"] { z-index: 3; transform: translateX(14%) scale(.88); opacity: 1; }
.fx-card.is-prev { z-index: 6; transform: translateX(-26%) rotate(-7deg); opacity: 0; }
.fx-card[data-k="1"] .fx-pics, .fx-card[data-k="2"] .fx-pics { box-shadow: 0 0 0 1px rgb(24 21 31 / .05), 0 6px 18px -8px rgb(40 24 70 / .2); }

/* video post: the clip plays under the post's words, graded the way the theme grades photos */
.fx-vid { border-radius: 6px; overflow: hidden; background: #1b1714; box-shadow: 0 0 0 1px rgb(24 21 31 / .06), 0 14px 30px -14px rgb(40 24 70 / .35); }
.fx-v { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: filter .45s var(--ease); }
.fx[data-grade="warm"] .fx-v { filter: sepia(.28) saturate(1.1) contrast(1.02); }
.fx[data-grade="mono"] .fx-v { filter: grayscale(1) contrast(1.05); }
.fx-vid .fx-pics { box-shadow: none; border-radius: 0; }
/* the image post's layouts and the video post's designs, stacked: the one that shows fades in */
.fx-ims .fx-pics, .fx-vclip { opacity: 0; transition: opacity .55s var(--ease); }
.fx-ims .fx-pics[data-cur], .fx-vclip[data-cur] { opacity: 1; }
.fx-vclip { position: absolute; inset: 0; }
.fx-vbar { position: absolute; z-index: 3; inset-inline-start: 7.6%; inset-inline-end: 7.6%; top: 5.4%; height: 3px; border-radius: 3px; background: rgb(255 255 255 / .3); overflow: hidden; }
.fx-vbar i { display: block; height: 100%; background: #fff; transform-origin: 0 50%; transform: scaleX(0); }
.fx-vplay { position: absolute; z-index: 5; left: 50%; top: 40%; width: 44px; height: 44px; margin: -22px 0 0 -22px; border-radius: 50%; display: grid; place-items: center; background: rgb(255 255 255 / .92); color: var(--ink); box-shadow: var(--shadow-popover); opacity: 0; transform: scale(.85); transition: opacity .25s var(--ease), transform .35s var(--ease-out); pointer-events: none; }
.fx-vplay .ic { width: 16px; height: 16px; margin-inline-start: 2px; }
.fx.is-live:not(.is-playing) .fx-vplay { opacity: 1; transform: none; }

/* ---- the theme switcher ------------------------------------------------------------------ */
.fx-themes { display: flex; align-items: center; gap: 12px; padding: 10px 14px 10px 18px;padding-inline: 18px 14px; border-top: 1px solid var(--app-line); background: var(--card); }
.fx-chips { display: flex; gap: 6px; min-width: 0; }
.fx-chip { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 12px 0 9px;padding-inline: 9px 12px; border-radius: var(--r-ctl); box-shadow: inset 0 0 0 1px var(--app-line); font-size: 13px; font-weight: 500; color: var(--text-soft); white-space: nowrap; flex: none; transition: box-shadow var(--d-fast) var(--ease), color var(--d-fast) var(--ease), background-color var(--d-fast) var(--ease); }
.fx-chip:hover { color: var(--ink); box-shadow: inset 0 0 0 1px var(--line-3); }
.fx-chip[aria-pressed="true"] { color: var(--ink); background: var(--card); box-shadow: inset 0 0 0 1.5px var(--ink); }
.fx-chip .fx-sw { width: 16px; height: 16px; }
/* while themes preview on their own, a hairline ring fills around the chosen swatch */
.fx-chip .fx-sw::after { content: ""; position: absolute; inset: -3.5px; border-radius: 50%; background: conic-gradient(var(--ink) calc(var(--p, 0) * 1turn), transparent 0); -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 1.5px), #000 calc(100% - 1.5px)); mask: radial-gradient(farthest-side, transparent calc(100% - 1.5px), #000 calc(100% - 1.5px)); opacity: 0; transition: opacity .2s var(--ease); }
.fx-chip[aria-pressed="true"] .fx-sw::after { opacity: .5; }
.fx.is-manual .fx-chip .fx-sw::after { opacity: 0; }
.fx-applied { margin-inline-start: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); white-space: nowrap; }
.fx-applied .ic { width: 14px; height: 14px; color: var(--subtle); }

/* ---- under the window (homepage): what each format is for, then the next step ------------ */
.fx-foot { display: grid; grid-template-columns: repeat(var(--fx-n, 3), minmax(0, 1fr)) auto; gap: 28px 40px; align-items: start; margin-top: clamp(40px, 4.6vw, 60px); }
.fx-use { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 3px 16px; align-content: start; }
.fx-use-ic { grid-row: span 2; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--card); color: var(--ink); box-shadow: var(--shadow-chip); }
.fx-use-ic .ic { width: 19px; height: 19px; }
.fx-use h3 { font-size: 1.0625rem; line-height: 1.4; font-weight: 500; letter-spacing: -.012em; color: var(--ink); }
.fx-use p { font-size: .9375rem; line-height: 1.5; color: var(--muted); max-width: 30ch; text-wrap: pretty; }
.fx-cta { display: grid; gap: 12px; justify-items: start; align-self: center; }

/* ---- sizes: the window's own width (it may sit in a page's column) ------------------------ */
@container fx (max-width: 1100px) {
  .fx-pill-x:nth-child(2) { display: none; }
  .fx-applied { display: none; }
}
@container fx (max-width: 970px) {
  .fx-body { grid-template-columns: 224px minmax(0, 1fr); }
  .fx-rail { padding-inline: 12px; }
  .fx-style .app-row { padding: 0 9px 0 10px;padding-inline: 10px 9px; font-size: 12px; }
  .fx-style .v { gap: 5px; }
  .fx-pill-x { display: none; }
  .fx-canvas { --u: min(232px, 18.5cqw); padding-inline: 14px; }
  .fx-row { gap: 4cqw; }
}
/* no rail: a segmented control picks the format */
@container fx (max-width: 870px) {
  .fx-body { grid-template-columns: minmax(0, 1fr); }
  .fx-rail { display: none; }
  .fx-seg { display: inline-flex; }
  .fx-canvas { --u: min(220px, 25cqw); gap: 22px; padding-top: 4px; }
  .fx-two .fx-canvas { --u: min(290px, 30cqw); }
  .fx-row { gap: 5cqw; }
  .fx-chips { overflow-x: auto; scrollbar-width: none; margin: -4px 0; padding: 4px 0; }
  .fx-chips::-webkit-scrollbar { display: none; }
}
/* narrow (a phone, or a page's column): one format at a time, swipe or tap (home.js: NARROW) */
@container fx (max-width: 639px) {
  .fx-bar { height: 50px; padding: 0 8px 0 12px;padding-inline: 12px 8px; gap: 8px; }
  .fx-crumb2, .fx-bar .fx-slash { display: none; }
  .fx-long { display: none; }
  .fx-short { display: inline; }
  .fx-tool { height: 44px; padding: 0 14px; }
  .fx-size { display: none; }
  .fx-canvas { padding: 2px 0 14px; gap: 14px; }
  .fx-seg { width: calc(100% - 28px); }
  .fx-seg > button { flex: 1; justify-content: center; height: 40px; padding: 0 8px; font-size: 13.5px; }
  .fx-row { justify-content: flex-start; gap: 0; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .fx-row::-webkit-scrollbar { display: none; }
  .fx-item { flex: 0 0 100%; width: 100%; scroll-snap-align: center; scroll-snap-stop: always; cursor: default; }
  .fx-item[data-fx-item="carousel"] { order: 1; --u: min(244px, 63cqw); margin-inline-end: 0; }
  .fx-item[data-fx-item="image"] { order: 2; --u: min(264px, 68cqw); }
  .fx-item[data-fx-item="video"] { order: 3; --u: min(186px, 48cqw); }
  .fx-frame { width: var(--u); }
  .fx[data-focus] .fx-item { opacity: 1; filter: none; transform: none; }
  .fx-under { height: 40px; }
  .fx-pb { width: 40px; height: 40px; }
  .fx-play { width: 40px; height: 40px; }
  .fx-play .ic { width: 15px; height: 15px; }
  .fx-themes { padding: 10px 0; }
  .fx-themes-l { display: none; }
  .fx-chips { padding: 4px 12px; scroll-padding-inline: 12px; }
  .fx-chip { height: 40px; }
}
@media (max-width: 1239px) {
  .fx-foot { grid-template-columns: repeat(var(--fx-n, 3), minmax(0, 1fr)); }
  .fx-cta { grid-column: 1 / -1; grid-auto-flow: column; align-items: center; justify-content: start; gap: 20px; }
}
@media (max-width: 999px) {
  .fx-foot { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .fx-use p { max-width: 46ch; }
  .fx-cta { grid-auto-flow: row; margin-top: 8px; }
}
@media (max-width: 699px) {
  .fx-stage { padding: 8px; margin-inline: calc(var(--gutter) * -1 + 8px); border-radius: 20px; }
  .fx { border-radius: 16px; }
  .fx-use { grid-template-columns: 40px minmax(0, 1fr); }
  .fx-cta { width: 100%; justify-content: stretch; justify-items: stretch; }
  .fx-cta .btn { width: 100%; }
  .fx-cta .reassure { justify-self: center; }
}

/* ==== 06-inspiration ==== */
/* Inspiration: a wall of the app's real slide layouts (drawn by the app in each theme, 4:5), filtered by the
   app's categories, with a sticky theme switcher that swaps every layout to that theme at once.
   Prefix .ly-* (layouts). The theme tokens colour the "more layouts" tile. */

@property --ly-bg { syntax: '<color>'; inherits: true; initial-value: #f6f1e8; }
@property --ly-ink { syntax: '<color>'; inherits: true; initial-value: #25211d; }
@property --ly-soft { syntax: '<color>'; inherits: true; initial-value: #746b61; }
@property --ly-acc { syntax: '<color>'; inherits: true; initial-value: #c95732; }
@property --ly-on-acc { syntax: '<color>'; inherits: true; initial-value: #fff8f1; }
@property --ly-deep { syntax: '<color>'; inherits: true; initial-value: #4a3228; }
@property --ly-on-deep { syntax: '<color>'; inherits: true; initial-value: #f6f1e8; }
@property --ly-deep-acc { syntax: '<color>'; inherits: true; initial-value: #f0a27f; }

/* ---- themes: the app's own tokens (bg, text, muted, accent, fonts); no black backgrounds --- */
.ly [data-theme], .ly[data-theme] { --ly-hs: 1; --ly-lh: 1.06; --ly-tt: none; --ly-tex: none; --ly-r: 2cqw; --ly-rp: 99px; }
.ly [data-theme="warm-paper"], .ly[data-theme="warm-paper"] {
  --ly-bg: #f6f1e8; --ly-ink: #25211d; --ly-soft: #746b61; --ly-acc: #c95732; --ly-on-acc: #fff8f1;
  --ly-deep: #4a3228; --ly-on-deep: #f6f1e8; --ly-deep-acc: #f0a27f;
  --ly-fh: "Fraunces", Georgia, serif; --ly-fb: "Inter", sans-serif; --ly-w: 600; --ly-tr: -.02em; --ly-r: 1.6cqw;
}
.ly [data-theme="soft-studio"], .ly[data-theme="soft-studio"] {
  --ly-bg: #fff7df; --ly-ink: #172019; --ly-soft: #5d675f; --ly-acc: #e84f2a; --ly-on-acc: #fff9ea;
  --ly-deep: #1f3a2c; --ly-on-deep: #fff7df; --ly-deep-acc: #ff9a7a;
  --ly-fh: "Plus Jakarta Sans", Inter, sans-serif; --ly-fb: "Plus Jakarta Sans", Inter, sans-serif; --ly-w: 700; --ly-tr: -.035em; --ly-hs: .95; --ly-r: 3.4cqw;
}
.ly [data-theme="clear-lesson"], .ly[data-theme="clear-lesson"] {
  --ly-bg: #ffffff; --ly-ink: #0f172a; --ly-soft: #475569; --ly-acc: #2563eb; --ly-on-acc: #ffffff;
  --ly-deep: #1e3a8a; --ly-on-deep: #eff6ff; --ly-deep-acc: #93c5fd;
  --ly-fh: "Plus Jakarta Sans", Inter, sans-serif; --ly-fb: "Plus Jakarta Sans", Inter, sans-serif; --ly-w: 700; --ly-tr: -.04em; --ly-hs: .94; --ly-r: 2.6cqw;
}
.ly [data-theme="wellness"], .ly[data-theme="wellness"] {
  --ly-bg: #e9efe7; --ly-ink: #203a2b; --ly-soft: #5c7263; --ly-acc: #c4704f; --ly-on-acc: #fffaf5;
  --ly-deep: #203a2b; --ly-on-deep: #e9efe7; --ly-deep-acc: #eaa486;
  --ly-fh: "Lora", Georgia, serif; --ly-fb: "Plus Jakarta Sans", Inter, sans-serif; --ly-w: 500; --ly-tr: -.015em; --ly-hs: 1.02; --ly-lh: 1.1; --ly-r: 3.6cqw;
}
.ly [data-theme="notebook"], .ly[data-theme="notebook"] {
  --ly-bg: #fbf8ef; --ly-ink: #1f2a44; --ly-soft: #5b6479; --ly-acc: #e4572e; --ly-on-acc: #fffaf0;
  --ly-deep: #1f2a44; --ly-on-deep: #fbf8ef; --ly-deep-acc: #ff9f7f;
  --ly-fh: "Shantell Sans", "Comic Sans MS", cursive; --ly-fb: "Inter", sans-serif; --ly-w: 700; --ly-tr: -.015em; --ly-hs: .88; --ly-lh: 1.1; --ly-r: 2cqw;
  --ly-tex: repeating-linear-gradient(180deg, transparent 0 calc(6.4cqw - 1px), rgb(31 42 68 / .075) calc(6.4cqw - 1px) 6.4cqw);
}
.ly [data-theme="quiet-luxury"], .ly[data-theme="quiet-luxury"] {
  --ly-bg: #efe9e1; --ly-ink: #2b2420; --ly-soft: #7d7066; --ly-acc: #9c7a5b; --ly-on-acc: #fbf8f4;
  --ly-deep: #5a4636; --ly-on-deep: #f3eee8; --ly-deep-acc: #e3c9ad;
  --ly-fh: "Fraunces", Georgia, serif; --ly-fb: "DM Sans", Inter, sans-serif; --ly-w: 400; --ly-tr: -.025em; --ly-hs: 1.02; --ly-r: .4cqw; --ly-rp: .4cqw;
}
.ly [data-theme="brand-studio"], .ly[data-theme="brand-studio"] {
  --ly-bg: #f5f7fb; --ly-ink: #0e1726; --ly-soft: #5b6577; --ly-acc: #2f6bff; --ly-on-acc: #ffffff;
  --ly-deep: #1b2a4a; --ly-on-deep: #f5f7fb; --ly-deep-acc: #8fb0ff;
  --ly-fh: "Geist", Inter, sans-serif; --ly-fb: "Geist", Inter, sans-serif; --ly-w: 600; --ly-tr: -.045em; --ly-hs: .98; --ly-r: 2.6cqw;
}
.ly [data-theme="loud-yellow"], .ly[data-theme="loud-yellow"] {
  --ly-bg: #ffe600; --ly-ink: #2a2111; --ly-soft: #4a4030; --ly-acc: #ff3b30; --ly-on-acc: #ffffff;
  --ly-deep: #d42a20; --ly-on-deep: #ffe600; --ly-deep-acc: #ffffff;
  --ly-fh: "Anton", Impact, sans-serif; --ly-fb: "Inter", sans-serif; --ly-w: 400; --ly-tr: .005em; --ly-tt: uppercase; --ly-hs: 1.04; --ly-lh: 1.02; --ly-r: 0; --ly-rp: 0;
}
.ly [data-theme="blueprint"], .ly[data-theme="blueprint"] {
  --ly-bg: #0b3d91; --ly-ink: #eef4ff; --ly-soft: #a9c1ea; --ly-acc: #ffd166; --ly-on-acc: #0b3d91;
  --ly-deep: #eef4ff; --ly-on-deep: #0b3d91; --ly-deep-acc: #2563c9;
  --ly-fh: "Space Grotesk", Inter, sans-serif; --ly-fb: "Inter", sans-serif; --ly-w: 700; --ly-tr: -.035em; --ly-hs: .93; --ly-r: 0; --ly-rp: .6cqw;
}
.ly [data-theme="midnight-signal"], .ly[data-theme="midnight-signal"] {
  --ly-bg: #17203c; --ly-ink: #f8fafc; --ly-soft: #a3b1c6; --ly-acc: #38bdf8; --ly-on-acc: #0c1a33;
  --ly-deep: #e0f2fe; --ly-on-deep: #17203c; --ly-deep-acc: #0369a1;
  --ly-fh: "Space Grotesk", Inter, sans-serif; --ly-fb: "Inter", sans-serif; --ly-w: 700; --ly-tr: -.035em; --ly-hs: .93; --ly-r: 1.6cqw;
}

/* ---- the board: sticky theme bar on top, categories on the left, layouts on the right ---- */
.ly { --ly-top: calc(var(--header-h) + 12px); --ly-barh: 58px; }
.ly-board { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@media (min-width: 1000px) {
  .ly-board { grid-template-columns: 188px minmax(0, 1fr); grid-template-areas: "bar bar" "side main"; gap: 28px 36px; }
  .ly-bar { grid-area: bar; }
  .ly-side { grid-area: side; }
  .ly-main { grid-area: main; }
}
@media (min-width: 1200px) { .ly-board { grid-template-columns: 204px minmax(0, 1fr); gap: 28px 44px; } }

/* theme bar */
.ly-bar {
  position: sticky; top: var(--ly-top); z-index: 8;
  display: flex; align-items: center; gap: 6px; min-width: 0; padding: 6px;
  border-radius: 16px; background: rgb(255 255 255 / .9);
  -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4);
  box-shadow: var(--shadow-chip);
  transition: box-shadow .3s var(--ease), top .3s var(--ease);
}
.ly-bar.is-stuck { box-shadow: var(--shadow-popover), 0 18px 40px -22px rgb(40 24 70 / .3); }
.ly-themes { flex: 1; min-width: 0; display: flex; gap: 0; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; scroll-padding-inline: 12px; }
.ly-themes::-webkit-scrollbar { display: none; }
.ly-bar.is-overflow .ly-themes { -webkit-mask: linear-gradient(90deg, #000 calc(100% - 36px), transparent); mask: linear-gradient(90deg, #000 calc(100% - 36px), transparent); }
.ly-bar.is-overflow.is-end .ly-themes { -webkit-mask: linear-gradient(90deg, transparent, #000 36px); mask: linear-gradient(90deg, transparent, #000 36px); }
.ly-bar.is-overflow.is-mid .ly-themes { -webkit-mask: linear-gradient(90deg, transparent, #000 36px, #000 calc(100% - 36px), transparent); mask: linear-gradient(90deg, transparent, #000 36px, #000 calc(100% - 36px), transparent); }
.ly-th {
  flex: none; display: inline-flex; align-items: center; gap: 7px; height: 40px; padding: 0 11px 0 5px;padding-inline: 5px 11px; border-radius: 11px;
  font-size: .8125rem; font-weight: 500; color: var(--text-soft); white-space: nowrap; -webkit-tap-highlight-color: transparent;
  transition: background-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease), box-shadow var(--d-fast) var(--ease);
}
.ly-th:hover { background: var(--hover); color: var(--ink); }
.ly-th[aria-pressed="true"] { background: var(--page-2); color: var(--ink); box-shadow: inset 0 0 0 1px var(--line-2); }
.ly-th:focus-visible { outline-offset: -2px; border-radius: 11px; }
.ly-sw { position: relative; flex: none; width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; background: var(--a); color: var(--c); font: var(--fw, 600) 12px/1 var(--f); letter-spacing: -.02em; box-shadow: inset 0 0 0 1px rgb(31 26 46 / .1); transition: transform .3s var(--ease-out); }
.ly-sw::after { content: ""; position: absolute; inset-inline-end: -2px; bottom: -2px; width: 9px; height: 9px; border-radius: 50%; background: var(--b); box-shadow: 0 0 0 2px #fff; }
.ly-th[aria-pressed="true"] .ly-sw::after { box-shadow: 0 0 0 2px var(--page-2); }
.ly-th:hover .ly-sw { transform: scale(1.06); }

/* categories */
.ly-side { min-width: 0; }
.ly-side-label { display: none; }
.ly-cats { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; margin-inline: calc(-1 * var(--gutter)); padding: 2px var(--gutter); scroll-padding-inline: var(--gutter); overscroll-behavior-x: contain; }
.ly-cats::-webkit-scrollbar { display: none; }
.ly-cat {
  flex: none; display: inline-flex; align-items: center; justify-content: space-between; gap: 7px; height: 40px; padding: 0 14px; border-radius: 10px;
  font-size: .875rem; font-weight: 500; color: var(--text-soft); white-space: nowrap; -webkit-tap-highlight-color: transparent;
  transition: background-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease), box-shadow var(--d-fast) var(--ease);
}
.ly-cat .n { font-size: .75rem; font-weight: 500; color: var(--subtle); font-variant-numeric: tabular-nums; transition: color var(--d-fast) var(--ease); }
.ly-cat:hover { background: var(--hover); color: var(--ink); }
.ly-cat[aria-pressed="true"] { background: var(--card); color: var(--ink); box-shadow: var(--shadow-btn); }
.ly-cat[aria-pressed="true"] .n { color: var(--muted); }
.ly-side-note { display: none; }
@media (min-width: 1000px) {
  .ly-side { position: sticky; top: calc(var(--ly-top) + var(--ly-barh) + 22px); align-self: start; max-height: calc(100vh - var(--ly-top) - var(--ly-barh) - 36px); overflow-y: auto; scrollbar-width: none; transition: top .3s var(--ease); }
  .ly-side::-webkit-scrollbar { display: none; }
  .ly-side-label { display: block; padding: 0 12px 8px; font-size: .8125rem; font-weight: 500; color: var(--muted); }
  .ly-cats { display: grid; gap: 1px; margin: 0; padding: 0; overflow: visible; }
  .ly-cat { height: 34px; padding: 0 12px; border-radius: 10px; }
  .ly-cat .n { font-size: .8125rem; }
  .ly-side-note { display: flex; gap: 10px; align-items: flex-start; margin-top: 18px; padding: 14px 12px 0; border-top: 1px solid var(--line); font-size: .8125rem; line-height: 1.45; color: var(--muted); }
  .ly-side-note .ic { flex: none; width: 16px; height: 16px; margin-top: 1px; color: var(--text-soft); }
}
@media (min-width: 1000px) and (max-height: 820px) { .ly-side-note { display: none; } }

/* ---- the grid of layouts ------------------------------------------------------------------ */
.ly-main { min-width: 0; }
.ly-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 12px; padding-top: 6px; }
@media (min-width: 640px) { .ly-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 18px; } }
@media (min-width: 1000px) { .ly-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 20px; padding-top: 0; } }
@media (min-width: 1200px) { .ly-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* up to three columns, the wall starts with fewer tiles (All only) */
@media (max-width: 1199px) {
  .ly-grid.is-all.is-collapsed > [data-extra], .ly-grid.is-all.is-collapsed > .ly-moretile { display: none; }
}
.ly-tile { min-width: 0; }
.ly-tile figure { display: grid; gap: 11px; }
.ly-tile figure:focus { outline: none; }
.ly-shot { position: relative; border-radius: 12px; box-shadow: var(--shadow-slide); transition: transform .45s var(--ease-out), box-shadow .45s var(--ease-out); }
@media (hover: hover) and (pointer: fine) {
  .ly-tile:hover .ly-shot { transform: translateY(-4px); box-shadow: 0 0 0 1px rgb(24 21 31 / .05), 0 2px 4px rgb(24 21 31 / .05), 0 22px 40px -18px rgb(40 24 70 / .36); }
}
.ly-tile figcaption { display: grid; gap: 1px; padding: 0 2px; min-width: 0; }
.ly-tile figcaption b { font-size: .875rem; line-height: 1.35; font-weight: 500; letter-spacing: -.006em; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ly-tile figcaption span { font-size: .8125rem; line-height: 1.35; color: var(--muted); }
@media (max-width: 639px) { .ly-tile figcaption b { font-size: .8125rem; } .ly-tile figcaption span { font-size: .75rem; } }

/* entering after a filter */
.ly-tile.is-enter { animation: ly-enter .5s var(--ease-out) both; animation-delay: calc(var(--k, 0) * 32ms); }
@keyframes ly-enter { from { opacity: 0; transform: translateY(12px); } }

/* "and more" tile */
.ly-more {
  position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 4px;
  aspect-ratio: 4 / 5; padding: 9%; border-radius: 12px; overflow: hidden; isolation: isolate;
  background: var(--card); box-shadow: inset 0 0 0 1px var(--line-2); color: var(--ink);
  transition: box-shadow .3s var(--ease), transform .45s var(--ease-out);
}
.ly-more:hover { box-shadow: inset 0 0 0 1px var(--line-3), 0 22px 40px -22px rgb(40 24 70 / .3); transform: translateY(-4px); }
.ly-more:focus-visible { border-radius: 12px; outline-offset: 3px; }
.ly-stack { position: absolute; z-index: -1; top: 9%; inset-inline-start: 12%; inset-inline-end: 12%; height: 42%; }
.ly-stack i { position: absolute; top: 8%; width: 46%; aspect-ratio: 4 / 5; border-radius: 7px; box-shadow: 0 0 0 1px rgb(24 21 31 / .06), 0 12px 22px -12px rgb(40 24 70 / .4); transition: background-color .5s var(--ease), transform .5s var(--ease-out); }
.ly-stack i:nth-child(1) { left: 0; background: var(--ly-deep); transform: rotate(-8deg); }
.ly-stack i:nth-child(2) { left: 27%; top: 0; background: var(--ly-acc); transform: rotate(-1deg); z-index: 1; }
.ly-stack i:nth-child(3) { left: 54%; background: var(--ly-bg); transform: rotate(7deg); z-index: 2; }
.ly-stack i:nth-child(3)::before, .ly-stack i:nth-child(3)::after { content: ""; position: absolute; inset-inline-start: 14%; height: 6%; border-radius: 2px; background: var(--ly-ink); opacity: .8; }
.ly-stack i:nth-child(3)::before { top: 18%; width: 62%; }
.ly-stack i:nth-child(3)::after { top: 29%; width: 40%; }
.ly-stack i:nth-child(2)::before { content: ""; position: absolute; inset-inline-start: 14%; top: 18%; width: 55%; height: 6%; border-radius: 2px; background: var(--ly-on-acc); opacity: .85; }
.ly-more:hover .ly-stack i:nth-child(1) { transform: translateX(-6%) rotate(-11deg); }
.ly-more:hover .ly-stack i:nth-child(3) { transform: translateX(6%) rotate(10deg); }
.ly-more-n { font-size: clamp(2rem, 1.4rem + 1.6vw, 2.75rem); line-height: 1; font-weight: 300; letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.ly-more-t { font-size: .875rem; line-height: 1.35; color: var(--muted); max-width: 16ch; }
.ly-more-go { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; font-size: .875rem; font-weight: 500; }
.ly-more-go .ic { width: 14px; height: 14px; transition: transform var(--d-menu) var(--ease-out); }
.ly-more:hover .ly-more-go .ic { transform: translate(1px, -1px); }

/* show more (phones and tablets) and the closing CTAs */
.ly-reveal { display: flex; justify-content: center; margin-bottom: 40px; }
.ly-showmore .ic { width: 16px; height: 16px; }
@media (min-width: 1200px) { .ly-reveal { display: none; } }
.ly-after { margin-top: clamp(32px, 4.4vw, 56px); }
@media (min-width: 1000px) { .ly-after { display: grid; grid-template-columns: 188px minmax(0, 1fr); gap: 0 36px; } .ly-foot, .ly-reveal { grid-column: 2; } }
@media (min-width: 1200px) { .ly-after { grid-template-columns: 204px minmax(0, 1fr); gap: 0 44px; } }
.ly-foot { display: grid; justify-items: center; gap: 16px; text-align: center; }
.ly-foot .btn-row { justify-content: center; }
.ly-ai .ic { color: var(--violet); }
.ly-foot .reassure { display: block; max-width: 56ch; line-height: 1.5; text-wrap: balance; }
.ly-foot .reassure .ic { display: inline-block; vertical-align: -2px; margin-inline-end: 6px; }
@media (max-width: 639px) {
  .ly-foot .btn-row { width: 100%; }
  .ly-foot .btn { width: 100%; }
}
@media (min-width: 1000px) and (max-width: 1199px) { .ly-foot .btn-lg { --h: 48px; padding: 0 20px; } }

/* ---- the slides: the app's own, drawn in the chosen theme (vis/layouts.php); a theme swap fades in --- */
.ly-pic { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; border-radius: 12px; background: var(--ly-bg); }
.ly-pic.is-swap { animation: ly-swap .45s var(--ease-out) both; }
@keyframes ly-swap { from { opacity: .35; transform: scale(.985); } }

@media (prefers-reduced-motion: reduce) {
  .ly-pic.is-swap { animation: none; }
  .ly-tile.is-enter { animation: none; }
}

/* ==== 06b-extension ==== */
/* Chrome extension: right-click a post, it lands in Inspiration with every slide, then its style
   becomes a theme of your own. The browser art follows the app's own (final/ui/js/pages/extension.js),
   the panel follows the app's white panels. States live as data-* on .ext-scene (set by script.js).
   Prefix .ext-* */

/* ---- the stage ------------------------------------------------------------------------- */
.ext-stage { padding: 16px clamp(14px, 2.4vw, 28px) 0; background: #f1edf9; box-shadow: inset 0 0 0 1px rgb(127 86 217 / .07); }
.ext .ic { flex: none; }

/* steps + pause */
.ext-bar { position: relative; z-index: 9; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ext-steps { display: flex; gap: 2px; padding: 3px; border-radius: 12px; background: rgb(255 255 255 / .5); box-shadow: inset 0 0 0 1px rgb(127 86 217 / .08); }
.ext-step { position: relative; display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 14px 0 7px;padding-inline: 7px 14px; border-radius: 9px; font-size: .8125rem; font-weight: 500; color: var(--muted); white-space: nowrap; overflow: hidden; transition: background-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease), box-shadow var(--d-fast) var(--ease); }
.ext-step:hover { color: var(--ink); }
.ext-n { width: 22px; height: 22px; border-radius: 6px; display: grid; place-items: center; font-size: .6875rem; font-weight: 600; background: rgb(31 26 46 / .06); color: var(--muted); transition: background-color .2s var(--ease), color .2s var(--ease); }
.ext-s { display: none; }
.ext-step[aria-pressed="true"] { background: var(--card); color: var(--ink); box-shadow: 0 1px 2px rgb(24 21 31 / .1), 0 0 0 1px rgb(24 21 31 / .04); }
.ext-step[aria-pressed="true"] .ext-n { background: var(--ink); color: #fff; }
.ext-step.is-done .ext-n { background: var(--violet-soft); color: var(--violet-ink); }
.ext-prog { position: absolute; inset-inline-start: 16px; inset-inline-end: 16px; bottom: 3px; height: 2px; border-radius: 2px; overflow: hidden; background: rgb(127 86 217 / .14); opacity: 0; transition: opacity .3s var(--ease); }
.ext-prog::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: var(--violet); transform-origin: left center; transform: scaleX(0); }
.ext-step.is-run .ext-prog { opacity: 1; }
.ext-step.is-run .ext-prog::after { animation: ext-fill var(--ms, 5s) linear forwards; }
.ext-stage.is-paused .ext-step.is-run .ext-prog::after { animation-play-state: paused; }
@keyframes ext-fill { to { transform: scaleX(1); } }

.ext-bar-end { display: flex; align-items: center; gap: 14px; }
.ext-works { display: inline-flex; align-items: center; gap: 8px; font-size: .8125rem; color: var(--muted); }
.ext-works .ic { width: 16px; height: 16px; color: var(--text-soft); }
.ext-works .ic:first-of-type { margin-inline-start: 2px; }
.ext-pause { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px; border-radius: 10px; font-size: .8125rem; color: var(--muted); transition: background-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease); }
.ext-pause:hover { color: var(--ink); background: rgb(255 255 255 / .6); }
.ext-pause .ic { width: 14px; height: 14px; }

/* ---- the scene: browser (left) and the app panel (right) --------------------------------- */
.ext-scene {
  position: relative; height: 640px; margin-top: 16px; container: extscene / inline-size;
  --bw: min(620px, 54cqw); --pw: clamp(340px, 38cqw, 440px); --gap: clamp(18px, 2.8cqw, 36px);
  --x0: calc(50% - (var(--bw) + var(--gap) + var(--pw)) / 2);
  font-size: 13px; line-height: 1.4; color: var(--ink); letter-spacing: 0;
}
.ext-scene.is-instant *, .ext-scene.is-instant *::before, .ext-scene.is-instant *::after { transition: none !important; animation: none !important; }

/* the browser window */
.ext-win {
  position: absolute; z-index: 2; top: 0; bottom: 0; inset-inline-start: var(--x0); width: var(--bw);
  display: flex; flex-direction: column; border-radius: 14px 14px 0 0; background: #f4f2ee; container: extwin / inline-size;
  box-shadow: var(--shadow-float), 0 40px 80px -30px rgb(60 36 110 / .26);
  transform: translateX(calc((var(--pw) + var(--gap)) / 2)); transition: transform 1s var(--ease-out);
}
.ext-scene[data-split] .ext-win { transform: none; }
.ext-chrome { flex: none; display: flex; align-items: center; gap: 14px; height: 40px; padding: 0 12px 0 14px;padding-inline: 14px 12px; border-radius: 14px 14px 0 0; background: #f3f1f7; border-bottom: 1px solid var(--line); }
.ext-dots { display: flex; gap: 6px; }
.ext-dots i { width: 10px; height: 10px; border-radius: 50%; background: #dcd7e5; }
.ext-url { flex: 1; min-width: 0; max-width: 300px; display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 12px; border-radius: var(--r-pill); background: var(--card); box-shadow: inset 0 0 0 1px var(--line); font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; }
.ext-url .ic { width: 11px; height: 11px; }
.ext-tools { margin-inline-start: auto; display: flex; align-items: center; gap: 12px; color: var(--muted); }
.ext-tools > .ic { width: 16px; height: 16px; }
.ext-pin { position: relative; display: block; width: 20px; height: 20px; }
.ext-pin > svg { width: 20px; height: 20px; }
.ext-pin i { position: absolute; inset-inline-end: -5px; bottom: -4px; width: 13px; height: 13px; border-radius: 50%; display: grid; place-items: center; background: var(--success); color: #fff; box-shadow: 0 0 0 2px #f3f1f7; transform: scale(0); transition: transform .35s var(--ease-out); }
.ext-pin i .ic { width: 8px; height: 8px; }
.ext-scene[data-pin] .ext-pin i { transform: scale(1); }

/* LinkedIn, drawn lightly (no logos beyond the platform icon) */
.ext-li-nav { flex: none; display: flex; align-items: center; gap: 10px; height: 42px; padding: 0 16px; background: var(--card); border-bottom: 1px solid rgb(24 21 31 / .06); }
.ext-li-logo { width: 26px; height: 26px; color: #0a66c2; }
.ext-li-search { display: inline-flex; align-items: center; gap: 6px; width: 170px; height: 28px; padding: 0 10px; border-radius: 6px; background: #edf3f8; color: #6f7680; font-size: 12px; }
.ext-li-search .ic { width: 13px; height: 13px; }
.ext-li-icons { margin-inline-start: auto; display: flex; gap: 18px; }
.ext-li-icons i { width: 18px; height: 18px; border-radius: 5px; background: #ebe8f0; }
.ext-feed { flex: 1; min-height: 0; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) 340px minmax(0, 1fr); gap: 12px; padding: 14px 12px 0; }
.ext-rail { align-self: start; display: grid; gap: 8px; padding: 14px 12px; border-radius: 8px; background: var(--card); box-shadow: 0 0 0 1px rgb(24 21 31 / .05); }
.ext-rail i { height: 7px; border-radius: 4px; background: #eeecf2; }
.ext-rail i.s { width: 72%; } .ext-rail i.t { width: 46%; }
.ext-ghost-ava { width: 38px; height: 38px; border-radius: 50%; background: #e9e4f1; margin-bottom: 4px; }
.ext-rail-r { padding-top: 16px; }
.ext-post { align-self: start; border-radius: 8px 8px 0 0; background: var(--card); box-shadow: 0 0 0 1px rgb(24 21 31 / .06); overflow: hidden; }
.ext-post-h { display: flex; align-items: center; gap: 9px; padding: 12px 14px 8px; }
.ext-ava { width: 36px; height: 36px; flex: none; border-radius: 50%; display: grid; place-items: center; background: #f6dcd2; color: #8a3a22; font-size: 12px; font-weight: 600; }
.ext-who { display: flex; flex-direction: column; flex: 1; min-width: 0; line-height: 1.3; }
.ext-who b { font-size: 13px; font-weight: 600; color: var(--ink); }
.ext-who small { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; color: var(--muted); }
.ext-who small .ic { width: 10px; height: 10px; }
.ext-follow { display: inline-flex; align-items: center; gap: 3px; font-size: 12.5px; font-weight: 600; color: #0a66c2; }
.ext-follow .ic { width: 13px; height: 13px; }
.ext-post-t { padding: 0 14px 10px; font-size: 12.5px; line-height: 1.45; color: var(--text-soft); }
.ext-doc { position: relative; }
.ext-pic { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; }
.ext-th .ext-pic { border-radius: 6px; }
.ext-mine .ext-pic { border-radius: 8px; box-shadow: var(--shadow-slide); }
.ext-count { position: absolute; z-index: 3; inset-inline-end: 10px; top: 10px; display: inline-flex; align-items: center; height: 20px; padding: 0 8px; border-radius: var(--r-pill); background: rgb(31 26 46 / .62); color: #fff; font-size: 10.5px; font-weight: 500; }
.ext-next { position: absolute; z-index: 3; inset-inline-end: 10px; top: 50%; width: 28px; height: 28px; margin-top: -14px; border-radius: 50%; display: grid; place-items: center; background: rgb(255 255 255 / .94); color: var(--ink); box-shadow: 0 2px 8px rgb(31 26 46 / .25); }
.ext-next .ic { width: 13px; height: 13px; }

/* the saved post's own look (navy, cream, coral, Fraunces): what gets copied */
/* the saved carousel's sun, printed in halftone like every slide's print (prints.js) */

/* Chrome's context menu (+ the extension's submenu) */
.ext-menu, .ext-sub {
  position: absolute; z-index: 6; display: flex; flex-direction: column; padding: 5px; border-radius: 10px;
  background: rgb(255 255 255 / .98); box-shadow: var(--shadow-popover), 0 22px 44px -18px rgb(40 24 70 / .34);
  font-size: 12.5px; color: var(--text-soft); opacity: 0; transform: scale(.97); transform-origin: 0 0;
  transition: opacity .16s var(--ease), transform .22s var(--ease-out);
}
.ext-menu { inset-inline-start: var(--mx, 30%); top: var(--my, 40%); width: max-content; min-width: 196px; }
.ext-sub { inset-inline-start: var(--sx, 60%); top: var(--sy, 50%); width: max-content; min-width: 170px; }
.ext-scene[data-menu] .ext-menu, .ext-scene[data-menu="2"] .ext-sub { opacity: 1; transform: none; }
.ext-mi { display: flex; align-items: center; gap: 8px; height: 27px; padding: 0 9px; border-radius: 6px; white-space: nowrap; transition: background-color .12s var(--ease), color .12s var(--ease); }
.ext-mi > svg:first-child { width: 15px; height: 15px; }
.ext-caret { width: 11px; height: 11px; margin-inline-start: auto; color: var(--muted); }
.ext-sep { height: 1px; margin: 4px 6px; background: var(--line); }
.ext-mi-ac { color: var(--ink); font-weight: 500; }
.ext-scene[data-hl] [data-ext-save], .ext-scene[data-hl="both"] [data-ext-both] { background: #efecf6; color: var(--ink); }

/* the extension's toast, on the page */
.ext-toast { position: absolute; z-index: 7; left: 50%; bottom: 22px; display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px 0 12px;padding-inline: 12px 16px; border-radius: 12px; background: rgb(33 29 43 / .94); color: #fff; font-size: 13px; font-weight: 500; white-space: nowrap; box-shadow: 0 18px 40px -12px rgb(31 26 46 / .5); opacity: 0; transform: translate(-50%, 12px); transition: opacity .22s var(--ease), transform .4s var(--ease-out); }
.ext-toast .ic { width: 18px; height: 18px; color: #86d6a0; }
.ext-scene[data-toast] .ext-toast { opacity: 1; transform: translate(-50%, 0); }

/* ---- the app panel: the save in Inspiration, then "copy its style" ------------------------ */
.ext-panel {
  position: absolute; z-index: 1; top: 40px; inset-inline-start: calc(var(--x0) + var(--bw) + var(--gap)); width: var(--pw);
  border-radius: var(--r-panel); background: var(--card); overflow: hidden; container: extpanel / inline-size;
  box-shadow: var(--shadow-float), 0 40px 80px -30px rgb(60 36 110 / .26);
  opacity: 0; transform: translateX(36px); transition: opacity .45s var(--ease) .22s, transform 1s var(--ease-out);
}
.ext-scene[data-split] .ext-panel { opacity: 1; transform: none; }
.ext-ph { display: flex; align-items: center; gap: 9px; height: 50px; padding: 0 16px; border-bottom: 1px solid var(--line); }
.ext-ph-logo svg { width: 22px; height: 22px; }
.ext-crumb { display: flex; align-items: center; gap: 7px; min-width: 0; font-size: 13.5px; color: var(--muted); white-space: nowrap; }
.ext-crumb i { font-style: normal; color: var(--subtle); }
.ext-crumb b { font-weight: 500; color: var(--ink); }
.ext-ph-new { margin-inline-start: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); white-space: nowrap; }
.ext-ph-new .ic { width: 14px; height: 14px; color: #0a66c2; }
/* a long "5 slides · just now" (other languages) first shortens the crumb, never runs over the name */
.ext-ph-new { flex-shrink: 0; }
.ext-crumb { overflow: hidden; }
.ext-crumb > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.ext-crumb > b, .ext-crumb > i { flex-shrink: 0; }

.ext-saved { padding: 14px 16px; }
.ext-film { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.ext-th { position: relative; display: block; border-radius: 6px; box-shadow: 0 0 0 1px rgb(24 21 31 / .06), 0 4px 10px -6px rgb(24 21 31 / .3); overflow: hidden; opacity: 0; transform: translateY(10px); transition: opacity .4s var(--ease), transform .55s var(--ease-out); }
.ext-scene[data-film] .ext-th { opacity: 1; transform: none; transition-delay: 420ms; }
.ext-scene[data-film] .ext-th:nth-child(2) { transition-delay: 490ms; } .ext-scene[data-film] .ext-th:nth-child(3) { transition-delay: 560ms; }
.ext-scene[data-film] .ext-th:nth-child(4) { transition-delay: 630ms; } .ext-scene[data-film] .ext-th:nth-child(5) { transition-delay: 700ms; }
.ext-scan { position: absolute; top: -6px; bottom: -6px; inset-inline-start: 0; width: 24%; border-radius: 10px; pointer-events: none; background: linear-gradient(90deg, rgb(127 86 217 / 0), rgb(127 86 217 / .28) 50%, rgb(127 86 217 / 0)); mix-blend-mode: multiply; opacity: 0; }
.ext-scene[data-scan] .ext-scan { animation: ext-scan 1.5s var(--ease) forwards; }
@keyframes ext-scan { 0% { opacity: 0; transform: translateX(-40%); } 15%, 85% { opacity: 1; } 100% { opacity: 0; transform: translateX(400%); } }

.ext-acts { display: flex; gap: 6px; padding: 0 16px 14px; border-bottom: 1px solid var(--line); }
.ext-act { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px; border-radius: 8px; box-shadow: inset 0 0 0 1px var(--line-2); font-size: 12px; font-weight: 500; color: var(--text-soft); white-space: nowrap; transition: background-color .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease); }
.ext-act .ic { width: 14px; height: 14px; color: var(--muted); transition: color .2s var(--ease); }
.ext-scene[data-act] [data-ext-act] { background: var(--violet-soft); color: var(--violet-ink); box-shadow: inset 0 0 0 1px var(--violet-line); }
.ext-scene[data-act] [data-ext-act] .ic { color: var(--violet); }
/* long labels (other languages) shrink with an ellipsis instead of running out of the panel */
.ext-act { display: block; flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; line-height: 30px; }
.ext-act .ic { display: inline-block; margin-inline-end: 6px; vertical-align: -3px; }
.ext-act[data-ext-act] { flex-shrink: 0; }

.ext-x { display: grid; grid-template-columns: minmax(0, 43%) minmax(0, 1fr); gap: 18px; padding: 16px; }
.ext-mine { position: relative; align-self: start; }
.ext-after { position: absolute; inset: 0; z-index: 2; clip-path: inset(0 100% 0 0); transition: clip-path 1s var(--ease-out); }
.ext-scene[data-restyle] .ext-after { clip-path: inset(0 0 0 0); }
.ext-wipe { position: absolute; z-index: 3; top: -5px; bottom: -5px; inset-inline-start: 0; width: 2px; border-radius: 2px; background: var(--violet); box-shadow: 0 0 14px 3px rgb(127 86 217 / .45); opacity: 0; pointer-events: none; }
.ext-scene[data-wiping] .ext-wipe { animation: ext-wipe 1s var(--ease-out) forwards; }
@keyframes ext-wipe { 0% { left: 0; opacity: 0; } 12% { opacity: 1; } 80% { opacity: 1; } 100% { left: 100%; opacity: 0; } }

.ext-found { min-width: 0; display: flex; flex-direction: column; }
.ext-status { display: flex; align-items: center; gap: 6px; min-height: 18px; margin-bottom: 12px; font-size: 12px; color: var(--muted); white-space: nowrap; opacity: 0; transition: opacity .3s var(--ease); }
.ext-scene[data-act] .ext-status { opacity: 1; }
.ext-status .ic { width: 14px; height: 14px; color: var(--violet); }
.ext-st-b { display: none; }
.ext-scene[data-restyle] .ext-st-a { display: none; }
.ext-scene[data-restyle] .ext-st-b { display: inline; }
.ext-scene[data-restyle] svg.ext-st-b { display: block; color: var(--success); }
.ext-k { margin-bottom: 7px; font-size: 11.5px; font-weight: 500; color: var(--muted); }
.ext-k + .ext-sw { margin-bottom: 14px; }
.ext-sw { display: flex; gap: 8px; }
.ext-sw > span { display: grid; justify-items: center; gap: 5px; }
.ext-sw i { position: relative; width: 32px; height: 32px; border-radius: 50%; border: 1.5px dashed var(--line-3); }
.ext-sw i::after { content: ""; position: absolute; inset: -1.5px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgb(24 21 31 / .1); transform: scale(0); transition: transform .5s var(--ease-out); transition-delay: calc(var(--k) * 160ms); }
.ext-sw small { font: 500 9.5px/1 var(--mono); letter-spacing: .01em; color: var(--muted); opacity: 0; transition: opacity .3s var(--ease); transition-delay: calc(var(--k) * 160ms + 200ms); }
.ext-scene[data-colours] .ext-sw i::after { transform: scale(1); }
.ext-scene[data-colours] .ext-sw small { opacity: 1; }
.ext-fonts { display: grid; grid-template-columns: repeat(auto-fit, minmax(104px, 1fr)); gap: 6px; }
.ext-fonts > span { display: flex; align-items: center; gap: 8px; min-width: 0; height: 44px; padding: 0 10px; border-radius: 10px; border: 1px dashed var(--line-3); transition: border-color .3s var(--ease); transition-delay: calc(var(--k) * 180ms); }
.ext-fonts > span > * { opacity: 0; filter: blur(4px); transition: opacity .45s var(--ease), filter .6s var(--ease-out); transition-delay: inherit; }
.ext-fonts b { width: 26px; flex: none; font-size: 20px; line-height: 1; font-weight: 500; letter-spacing: -.02em; color: var(--ink); }
.ext-fonts .ext-grot { font-family: "Space Grotesk", Inter, sans-serif; font-weight: 700; }
.ext-fonts em { display: block; font-style: normal; font-size: 12.5px; font-weight: 500; color: var(--ink); line-height: 1.25; }
.ext-fonts small { display: block; font-size: 11px; color: var(--muted); line-height: 1.25; }
.ext-scene[data-fonts] .ext-fonts > span { border-style: solid; border-color: var(--line-2); }
.ext-scene[data-fonts] .ext-fonts > span > * { opacity: 1; filter: none; }

.ext-save { position: relative; align-self: stretch; display: grid; margin-top: 14px; height: 36px; padding: 0 14px; border-radius: 10px; background: var(--ink); color: #fff; font-size: 12.5px; font-weight: 500; white-space: nowrap; opacity: .28; transition: opacity .35s var(--ease), background-color .3s var(--ease), color .3s var(--ease), transform .12s var(--ease); }
.ext-save > span { grid-area: 1 / 1; display: inline-flex; align-items: center; justify-content: center; gap: 7px; transition: opacity .25s var(--ease), transform .3s var(--ease-out); }
.ext-save .ic { width: 14px; height: 14px; }
.ext-save-b { opacity: 0; transform: translateY(6px); }
.ext-scene[data-restyle] .ext-save { opacity: 1; }
.ext-scene[data-press] .ext-save { transform: scale(.96); }
.ext-scene[data-saved] .ext-save { background: var(--violet-soft); color: var(--violet-ink); }
.ext-scene[data-saved] .ext-save-a { opacity: 0; transform: translateY(-6px); }
.ext-scene[data-saved] .ext-save-b { opacity: 1; transform: none; }
.ext-scene[data-saved] .ext-save-b .ic { color: var(--violet); }

.ext-pf { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--line); background: #fcfbfe; font-size: 12px; color: var(--muted); }
.ext-pf .ic { width: 14px; height: 14px; color: var(--violet); }

/* the pointer */
.ext-cursor { position: absolute; z-index: 8; inset-inline-start: 0; top: 0; width: 22px; height: 22px; color: var(--ink); pointer-events: none; transform: translate(-60px, 560px); transition: transform .8s cubic-bezier(.45, 0, .2, 1), opacity .3s var(--ease); filter: drop-shadow(0 0 1px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(0 3px 5px rgb(31 26 46 / .28)); }
.ext-cursor > .ic { width: 22px; height: 22px; }
.ext-cursor i { position: absolute; inset-inline-start: -9px; top: -9px; width: 24px; height: 24px; border-radius: 50%; border: 2px solid var(--violet); opacity: 0; transform: scale(.3); }
.ext-cursor.is-click i { animation: ext-ring .5s var(--ease-out); }
@keyframes ext-ring { 0% { opacity: .9; transform: scale(.3); } 100% { opacity: 0; transform: scale(1.4); } }
.ext-cursor.is-click > .ic { transform: scale(.88); transform-origin: 12% 12%; transition: transform .1s var(--ease); }
.ext-scene[data-nocursor] .ext-cursor { opacity: 0; }

/* ---- under the stage: what it does, then the next step ------------------------------------ */
.ext-foot { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 28px 40px; align-items: start; margin-top: clamp(40px, 4.6vw, 60px); }
.ext-use { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 3px 16px; align-content: start; }
.ext-use-ic { grid-row: span 2; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--card); color: var(--ink); box-shadow: var(--shadow-chip); }
.ext-use-ic .ic { width: 19px; height: 19px; }
.ext-use h3 { font-size: 1.0625rem; line-height: 1.4; font-weight: 500; letter-spacing: -.012em; color: var(--ink); }
.ext-use p { font-size: .9375rem; line-height: 1.5; color: var(--muted); max-width: 32ch; text-wrap: pretty; }
.ext-cta { display: grid; gap: 14px; justify-items: start; align-self: center; }
.ext-cta .link { font-size: .9375rem; }
.ext-priv { display: flex; flex-wrap: wrap; gap: 10px 36px; margin-top: clamp(32px, 3.4vw, 44px); padding-top: 20px; border-top: 1px solid var(--line); font-size: .875rem; line-height: 1.5; color: var(--muted); }
.ext-priv li { display: flex; align-items: flex-start; gap: 8px; }
.ext-priv .ic { width: 15px; height: 15px; margin-top: 3px; color: var(--violet); }

/* ---- sizes -------------------------------------------------------------------------------- */
@media (max-width: 1239px) {
  .ext-foot { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ext-cta { grid-column: 1 / -1; grid-auto-flow: column; align-items: center; justify-content: start; gap: 24px; }
}
@media (max-width: 1079px) { .ext-works { display: none; } }

/* narrow scenes: the browser alone, the panel slides up over it like a sheet */
@container extscene (max-width: 859px) {
  .ext-win { left: 50%; width: min(600px, 100cqw); margin-left: calc(min(600px, 100cqw) / -2); transform: none; }
  .ext-panel { top: auto; bottom: 0; left: 50%; width: min(460px, 100cqw - 12px); margin-left: calc(min(460px, 100cqw - 12px) / -2); z-index: 3; border-radius: 18px 18px 0 0; transform: translateY(104%); transition: transform .8s var(--ease-sheet), opacity .3s var(--ease); box-shadow: var(--shadow-float), 0 -20px 60px -20px rgb(60 36 110 / .3); }
  .ext-scene[data-split] .ext-panel { transform: none; }
}
/* a narrow window: the feed without its side columns */
@container extwin (max-width: 579px) {
  .ext-feed { grid-template-columns: minmax(0, 340px); justify-content: center; }
  .ext-rail { display: none; }
}
@container extpanel (max-width: 419px) {
  .ext-act:nth-child(3) { display: none; }
  .ext-x { grid-template-columns: minmax(0, 40%) minmax(0, 1fr); gap: 14px; }
  .ext-sw { gap: 5px; }
  .ext-sw i { width: 30px; height: 30px; }
  .ext-save { padding: 0 10px; }
}
@container extpanel (max-width: 339px) {
  .ext-crumb > span, .ext-crumb > i { display: none; }
  .ext-x { gap: 12px; }
  .ext-status { font-size: 11px; }
  .ext-save { padding: 0 8px; font-size: 11.5px; }
  .ext-save > span { gap: 5px; }
}
@container extpanel (max-width: 299px) {
  .ext-status { white-space: normal; align-items: flex-start; line-height: 1.3; }
  .ext-save .ic { display: none; }
}
@container extscene (max-width: 599px) {
  .ext-feed { grid-template-columns: minmax(0, 1fr); padding: 10px 10px 0; }
  .ext-li-search { flex: 1; width: auto; }
  .ext-li-icons { gap: 14px; }
  .ext-li-icons i:nth-child(n+3) { display: none; }
  .ext-menu { min-width: 172px; font-size: 12px; }
  .ext-sub { min-width: 158px; font-size: 12px; }
  .ext-mi { height: 26px; padding: 0 8px; }
  .ext-ph { height: 44px; padding: 0 14px; }
  .ext-saved { padding: 10px 14px 12px; }
  .ext-saved-h { margin-bottom: 8px; }
  .ext-film { gap: 6px; }
  .ext-acts { padding: 0 14px 12px; }
  .ext-x { gap: 14px; padding: 14px; grid-template-columns: minmax(0, 41%) minmax(0, 1fr); }
  .ext-status { margin-bottom: 8px; font-size: 11.5px; }
  .ext-sw { gap: 6px; }
  .ext-sw i { width: 28px; height: 28px; }
  .ext-sw small { display: none; }
  .ext-k + .ext-sw { margin-bottom: 10px; }
  .ext-save { margin-top: 10px; }
  .ext-fonts > span { height: 36px; gap: 8px; padding: 0 8px; }
  .ext-fonts b { width: 24px; font-size: 17px; }
  .ext-fonts small { display: none; }
  .ext-save { height: 34px; padding: 0 12px; font-size: 12px; }
  .ext-pf { padding: 10px 14px; font-size: 11.5px; }
}

@media (max-width: 719px) {
  .ext-stage { margin-inline: calc(var(--gutter) * -1 + 8px); padding: 10px 8px 0; border-radius: 20px; }
  .ext-bar { gap: 8px; }
  .ext-steps { flex: 1; min-width: 0; }
  .ext-step { flex: 1 1 auto; justify-content: center; height: 40px; padding: 0 8px; gap: 0; font-size: .78125rem; }
  .ext-n, .ext-l { display: none; }
  .ext-s { display: inline; }
  .ext-prog { inset-inline-start: 14px; inset-inline-end: 14px; bottom: 4px; }
  .ext-pause { width: 40px; height: 40px; padding: 0; justify-content: center; }
  .ext-pause span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .ext-scene { height: 620px; margin-top: 10px; }
  .ext-foot { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .ext-use p { max-width: 46ch; }
  .ext-cta { grid-auto-flow: row; justify-content: stretch; justify-items: stretch; gap: 10px; margin-top: 6px; }
  .ext-cta .btn { width: 100%; }
  .ext-cta .link { justify-self: center; min-height: 44px; }
  .ext-priv { flex-direction: column; }
}
@media (min-width: 720px) and (max-width: 999px) {
  .ext-foot { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .ext-use p { max-width: 52ch; }
  .ext-cta { grid-column: auto; }
}

/* ==== 07-publish ==== */
/* Publish: three steps (in step with the demo), the editor's Caption view (final/ui/css/caption.css)
   with a Post panel, then the CTA. Prefix .pb-* (steps, window, caption card, Post panel). */

#publish .head { margin-bottom: clamp(36px, 4.4vw, 56px); }
#publish .head .t-h2 { max-width: 15em; }
/* the longer first line ("…already written.") gets a little more room, so the title stays on two lines */
@media (min-width: 1200px) { #publish .head { grid-template-columns: minmax(0, 62fr) minmax(0, 38fr); } }
@media (min-width: 960px) and (max-width: 1199px) {
  #publish .head { grid-template-columns: minmax(0, 1fr); }
  #publish .head .t-lead { justify-self: start; padding-bottom: 0; }
}
.pb-hl { display: block; text-wrap: balance; }

/* ---- the window ------------------------------------------------------------------- */
.pb-stage { position: relative; isolation: isolate; }
.pb-stage::before { content: ""; position: absolute; z-index: -1; inset: 10% -3% -6%; border-radius: 48px; background: radial-gradient(50% 60% at 28% 40%, rgb(214 196 250 / .5), transparent 70%), radial-gradient(45% 55% at 78% 70%, rgb(250 214 196 / .36), transparent 70%); filter: blur(30px); pointer-events: none; }
.pb-win { position: relative; border-radius: var(--r-panel); box-shadow: var(--shadow-float), 0 50px 100px -40px rgb(60 36 110 / .28); }
.pb-win .ic { width: 16px; height: 16px; }

/* top bar (editor.css .ed-top) */
.pb-top { position: relative; z-index: 2; height: 52px; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(max-content, 1fr); align-items: center; gap: 8px; padding: 0 12px 0 10px;padding-inline: 10px 12px; border-bottom: 1px solid var(--app-line); background: var(--card); user-select: none; -webkit-user-select: none; }   /* the right-hand buttons keep their width (longer words, e.g. "Publicación", once pushed them over the Design/Caption switch); the switch moves left a little instead */
.pb-tl, .pb-tr { display: flex; align-items: center; gap: 4px; min-width: 0; }
.pb-tr { justify-content: flex-end; gap: 6px; }
.pb-logo { display: grid; width: 28px; height: 28px; margin-inline-end: 8px; flex: none; }
.pb-logo svg { width: 28px; height: 28px; }
.pb-ib { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: var(--r-ctl); color: var(--ink); flex: none; }
.pb-ib .ic { width: 17px; height: 17px; }
.pb-back { color: var(--text-soft); margin-inline-start: 6px; box-shadow: -10px 0 0 -9px var(--app-line); }
.pb-undo { color: var(--ink); }
.pb-redo { color: var(--muted); opacity: .45; }
.pb-redo .ic { transform: scaleX(-1); }
.pb-crumb { font-size: 14px; color: var(--muted); padding: 0 4px; white-space: nowrap; }
.pb-slash { font-size: 14px; color: var(--subtle); }
.pb-title { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 6px; font-size: 14px; font-weight: 500; white-space: nowrap; min-width: 0; overflow: hidden; }
.pb-title .ic { width: 12px; height: 12px; color: var(--muted); }
.pb-save { display: inline-flex; align-items: center; gap: 5px; margin-inline-start: 4px; font-size: 12px; color: var(--subtle); white-space: nowrap; }
.pb-save .ic { width: 13px; height: 13px; }
.pb-spin { display: none; width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid currentColor; border-inline-end-color: transparent; animation: pb-rot .7s linear infinite; flex: none; }
.pb-save.is-saving .ic { display: none; }
.pb-save.is-saving .pb-spin { display: block; }
@keyframes pb-rot { to { transform: rotate(360deg); } }
.pb-seg { display: inline-flex; padding: 3px; border-radius: var(--r-ctl); background: #eeedf2; }
.pb-seg > span { display: inline-flex; align-items: center; justify-content: center; min-width: 72px; height: 28px; padding: 0 12px; border-radius: 7px; font-size: 13.5px; font-weight: 500; color: var(--muted); white-space: nowrap; }
.pb-seg > .on { background: var(--card); color: var(--ink); box-shadow: 0 0 0 1px var(--app-line), 0 1px 1px rgb(24 21 31 / .05); }
.pb-vr { width: 1px; height: 20px; margin: 0 2px; background: var(--app-line); flex: none; }
.pb-btn { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 11px; border-radius: var(--r-ctl); box-shadow: inset 0 0 0 1px var(--line-2); background: var(--card); font-size: 13px; font-weight: 500; white-space: nowrap; color: var(--ink); flex: none; }
.pb-btn.is-on { background: #f4f3f7; box-shadow: inset 0 0 0 1px var(--line-3); }
.pb-plat-r { color: var(--muted); font-weight: 400; margin-inline-start: -3px; }
.pb-win .pb-c { width: 11px; height: 11px; color: var(--muted); }
.pb-split { display: inline-flex; height: 34px; border-radius: var(--r-ctl); background: var(--ink); color: #fff; flex: none; }
.pb-dl { display: inline-flex; align-items: center; gap: 7px; padding: 0 12px; font-size: 13px; font-weight: 500; white-space: nowrap; }
.pb-dl-c { display: grid; place-items: center; width: 30px; box-shadow: inset 1px 0 0 rgb(255 255 255 / .16); }
.pb-dl-c .ic { width: 12px; height: 12px; }

/* three columns on the canvas */
.pb-main { display: grid; grid-template-columns: 232px minmax(0, 1fr) 340px; background: #f4f3f7; border-radius: 0 0 var(--r-panel) var(--r-panel); }

/* ---- left: the post, small ---------------------------------------------------------- */
.pb-pv { padding: 16px 0 18px 18px;padding-inline: 18px 0; min-width: 0; }
.pb-pv-h { display: flex; align-items: center; gap: 7px; height: 30px; margin-bottom: 8px; font-size: 12.5px; font-weight: 500; color: var(--text-soft); }
.pb-pv-h .ic { width: 15px; height: 15px; }
.pb-post { background: var(--card); border-radius: 12px; box-shadow: 0 0 0 1px var(--app-line), 0 8px 20px -14px rgb(24 21 31 / .2); overflow: hidden; }
.pb-post-h { display: flex; align-items: center; gap: 8px; padding: 10px 10px 6px; }
.pb-yn { width: 28px; height: 28px; border-radius: 50%; flex: none; object-fit: cover; }
/* Mara as a LinkedIn profile: her initials, not the character's face (30 Oct 2026, Fernando) */
.pb-ini { display: grid; place-items: center; background: linear-gradient(135deg, #b9a3f0, #8e72e0); color: #fff; font-size: 11px; font-weight: 600; letter-spacing: .03em; line-height: 1; user-select: none; }
.pb-post-who { min-width: 0; flex: 1; line-height: 1.25; }
.pb-post-who b { display: block; font-size: 12px; font-weight: 600; }
.pb-post-who small { display: flex; align-items: center; gap: 3px; font-size: 10.5px; color: var(--muted); }
.pb-post-who small .ic { width: 10px; height: 10px; }
.pb-win .pb-post-more { width: 16px; height: 16px; color: var(--muted); }
.pb-post-t { min-height: calc(3 * 16px); margin: 0 10px 9px; font-size: 11.5px; line-height: 16px; color: var(--ink); white-space: pre-line; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.pb-post-t.is-empty { color: var(--subtle); }
.pb-more { margin-inline-start: 4px; color: var(--muted); white-space: nowrap; }
.pb-doc { position: relative; }
.pb-doc-v { overflow: hidden; }
.pb-track { display: flex; transition: transform .55s var(--ease-out); }
.pb-track > .pb-sl { flex: 0 0 100%; }
.pb-sl img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; }
.pb-badge { position: absolute; z-index: 3; top: 8px; inset-inline-end: 8px; height: 20px; padding: 0 7px; border-radius: 99px; background: rgb(31 26 46 / .62); color: #fff; font-size: 10.5px; font-weight: 600; line-height: 20px; letter-spacing: .02em; font-variant-numeric: tabular-nums; backdrop-filter: blur(6px); }
.pb-nav { position: absolute; z-index: 3; top: 50%; width: 26px; height: 26px; margin-top: -13px; border-radius: 50%; display: grid; place-items: center; background: rgb(255 255 255 / .94); color: var(--ink); box-shadow: var(--shadow-chip); transition: opacity var(--d-fast) var(--ease), transform var(--d-fast) var(--ease); }
.pb-nav .ic { width: 13px; height: 13px; }
.pb-nav:hover { transform: scale(1.06); }
.pb-nav[disabled] { opacity: 0; pointer-events: none; }
.pb-prev { inset-inline-start: 6px; } .pb-next { inset-inline-end: 6px; }
.pb-nav::before { content: ""; position: absolute; inset: -7px; }
.pb-post-f { display: flex; justify-content: space-around; padding: 8px 6px 9px; border-top: 1px solid var(--app-line); font-size: 11px; font-weight: 500; color: var(--muted); }
.pb-post-f span { display: inline-flex; align-items: center; gap: 4px; }
.pb-post-f .ic { width: 14px; height: 14px; }
.pb-dots { display: flex; justify-content: center; gap: 5px; margin-top: 12px; }
.pb-dots i { width: 5px; height: 5px; border-radius: 50%; background: rgb(31 26 46 / .16); transition: background-color var(--d-menu) var(--ease), width var(--d-menu) var(--ease-out); }
.pb-dots i.on { width: 14px; border-radius: 3px; background: var(--ink); }
.pb-rc { margin-top: 16px; padding: 12px 12px 13px; border-radius: 12px; background: var(--card); box-shadow: 0 0 0 1px var(--app-line); }
.pb-rc-h { display: flex; align-items: center; gap: 6px; margin-bottom: 9px; font-size: 12.5px; font-weight: 600; }
.pb-win .pb-rc-h .ic { width: 15px; height: 15px; color: var(--success); }
.pb-checks { display: grid; gap: 7px; }
.pb-checks li { display: flex; align-items: flex-start; gap: 7px; font-size: 11.5px; line-height: 15px; color: var(--text-soft); }
.pb-win .pb-checks .ic { width: 14px; height: 14px; margin-top: 1px; color: var(--success); }
.pb-win .pb-checks li.is-writing .ic { color: var(--violet); }

/* ---- centre: the caption card (caption.css .cap-card) ---------------------------------- */
.pb-cap { position: relative; min-width: 0; min-height: 648px; }
.pb-card { position: absolute; inset: 16px 18px 18px; display: flex; flex-direction: column; background: var(--card); border-radius: 18px; box-shadow: 0 0 0 1px var(--app-line), 0 8px 24px -16px rgb(24 21 31 / .18); }
.pb-ctop { display: flex; align-items: center; gap: 8px; padding: 10px 14px 8px 10px;padding-inline: 10px 14px; }
.pb-tabs { display: flex; gap: 2px; min-width: 0; }
.pb-tab { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px; border-radius: 9px; font-size: 13px; font-weight: 500; color: var(--muted); white-space: nowrap; transition: background-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease); -webkit-tap-highlight-color: transparent; }
.pb-tab .ic { width: 15px; height: 15px; }
.pb-tab:hover { color: var(--ink); background: var(--hover); }
.pb-tab[aria-selected="true"] { background: #f0eef4; color: var(--ink); }
.pb-count { margin-inline-start: auto; font-size: 12px; color: var(--muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.pb-count.is-tight { color: var(--warning); }
.pb-tools { display: flex; align-items: center; gap: 2px; padding: 4px 8px; border-top: 1px solid var(--app-line); border-bottom: 1px solid var(--app-line); }
.pb-fb { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 32px; min-width: 32px; padding: 0 8px; border-radius: 8px; font-size: 13px; font-weight: 500; color: var(--ink); }
.pb-fb-t { padding: 0 9px; }
.pb-win .pb-spark { width: 15px; height: 15px; color: var(--violet); }
.pb-fb-vr { width: 1px; height: 18px; margin: 0 3px; background: var(--app-line); }
/* Rewrite ▾ is a real button here, with the app's menu */
.pb-rw { position: relative; }
.pb-fb-t { position: relative; transition: background-color var(--d-fast) var(--ease); -webkit-tap-highlight-color: transparent; }
.pb-fb-t::before { content: ""; position: absolute; inset: -4px 0; }
.pb-fb-t:hover, .pb-fb-t[aria-expanded="true"] { background: var(--hover); }
.pb-win .pb-fb-t .pb-c { transition: transform var(--d-menu) var(--ease-out); }
.pb-fb-t[aria-expanded="true"] .pb-c { transform: rotate(180deg); }
.pb-menu { position: absolute; z-index: 6; top: calc(100% + 6px); inset-inline-start: 0; width: 232px; padding: 5px; border-radius: 12px; background: var(--card); box-shadow: var(--shadow-popover); animation: pb-pop var(--d-menu) var(--ease-out); }
.pb-menu[hidden] { display: none; }
@keyframes pb-pop { from { opacity: 0; transform: translateY(-4px) scale(.98); } }
.pb-menu-h { padding: 7px 9px 5px; font-size: 11.5px; font-weight: 500; color: var(--muted); }
.pb-menu button { display: flex; align-items: center; gap: 9px; width: 100%; height: 34px; padding: 0 9px; border-radius: 8px; font-size: 13px; font-weight: 500; color: var(--ink); text-align: start; transition: background-color var(--d-fast) var(--ease); }
.pb-menu button:hover, .pb-menu button:focus-visible { background: var(--hover); outline: none; }
.pb-win .pb-menu .ic { width: 15px; height: 15px; color: var(--violet); flex: none; }
.pb-win .pb-menu .pb-menu-ok { margin-inline-start: auto; color: var(--ink); opacity: 0; }
.pb-menu [aria-checked="true"] .pb-menu-ok { opacity: 1; }
.pb-edit { position: relative; flex: 1; min-height: 0; }
.pb-edit::after { content: ""; position: absolute; inset-inline-start: 0; inset-inline-end: 10px; bottom: 0; height: 22px; background: linear-gradient(rgb(255 255 255 / 0), var(--card)); pointer-events: none; }
.pb-text { position: relative; height: 100%; overflow-y: auto; padding: 14px 62px 16px 18px;padding-inline: 18px 62px; font-size: 15px; line-height: 23px; letter-spacing: 0; color: var(--ink); white-space: pre-wrap; overflow-wrap: break-word; scrollbar-width: thin; scrollbar-color: rgb(31 26 46 / .14) transparent; outline: none; }
.pb-text:focus-visible { box-shadow: inset 0 0 0 2px var(--violet-line); border-radius: 8px; }
/* 30 Oct 2026 (Fernando): the wheel over the caption scrolls the page, not the caption; it scrolls once you're editing it */
.pb-text { overflow-y: hidden; }
.pb-card.is-editing .pb-text, .pb-text:focus { overflow-y: auto; }
/* a step above the window points at its part: a short violet ring */
.pb-card.is-flash, .pb-rc.is-flash, .pb-act.is-flash { animation: pb-flash 1.4s var(--ease-out); }
.pb-act.is-flash { border-radius: 12px; }
@keyframes pb-flash { 0%, 55% { box-shadow: 0 0 0 2px var(--violet), 0 0 0 7px rgb(127 86 217 / .16); } }
.pb-text[contenteditable="true"], .pb-text[contenteditable="plaintext-only"] { cursor: text; caret-color: var(--violet); }
.pb-card { transition: box-shadow var(--d-menu) var(--ease); }
.pb-card.is-editing { box-shadow: 0 0 0 1px var(--violet-line), 0 0 0 4px var(--violet-soft), 0 8px 24px -16px rgb(24 21 31 / .18); }
.pb-card.is-editing .pb-text:focus-visible { box-shadow: none; }
.pb-part { border-radius: 4px; transition: background-color 1.1s var(--ease), box-shadow 1.1s var(--ease); }
.pb-part.is-new { background: var(--violet-soft); box-shadow: 0 0 0 2px var(--violet-soft); }
/* Mia's caret, with her name beside it (like a collaborator's cursor) so it's clear who is writing.
   She always types at the end of a line, so the name sits in the empty space to the right. */
.pb-caret { position: relative; display: inline-block; width: 2px; height: 18px; margin: 0 0 -3px 1px;margin-inline: 1px 0; border-radius: 1px; background: var(--violet); animation: pb-blink 1s steps(2, start) infinite; }
.pb-caret b { position: absolute; inset-inline-start: 6px; top: 50%; transform: translateY(-50%); padding: 0 5px; border-radius: 4px; background: var(--violet); color: #fff; font-size: 10px; font-weight: 600; line-height: 14px; letter-spacing: .01em; white-space: nowrap; font-style: normal; pointer-events: none; user-select: none; -webkit-user-select: none; }
@keyframes pb-blink { to { background-color: transparent; } }
.pb-fold { position: absolute; z-index: 2; inset-inline-start: 10px; inset-inline-end: 10px; height: 0; border-top: 1.5px dashed var(--violet-line); pointer-events: none; transition: top .3s var(--ease-out); }
.pb-fold.is-scrolling { transition: none; }
.pb-fold span { position: absolute; inset-inline-end: -2px; top: -11px; height: 20px; padding: 0 7px; border-radius: 6px; background: var(--violet-soft); color: var(--violet-ink); font-size: 11px; font-weight: 600; line-height: 20px; white-space: nowrap; box-shadow: 0 0 0 3px var(--card); }
.pb-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 14px 10px; border-top: 1px solid var(--app-line); }
.pb-chip { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px 0 10px;padding-inline: 10px 12px; border-radius: 9px; background: var(--card); box-shadow: inset 0 0 0 1px var(--line-2); font-size: 12.5px; font-weight: 500; color: var(--text-soft); white-space: nowrap; transition: background-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease), box-shadow var(--d-fast) var(--ease), transform var(--d-fast) var(--ease); -webkit-tap-highlight-color: transparent; }
.pb-win .pb-chip .ic { width: 14px; height: 14px; color: var(--violet); }
.pb-chip:hover { color: var(--ink); box-shadow: inset 0 0 0 1px var(--line-3); }
.pb-chip:active { transform: scale(.97); }
.pb-chip[aria-pressed="true"] { background: var(--violet-soft); color: var(--violet-ink); box-shadow: inset 0 0 0 1px var(--violet-line); }
.pb-ask { display: flex; align-items: center; gap: 6px; margin: 0 12px 10px; padding: 4px 4px 4px 12px;padding-inline: 12px 4px; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--app-line); transition: box-shadow var(--d-fast) var(--ease); }
.pb-ask:focus-within { box-shadow: inset 0 0 0 1px var(--violet-line), 0 0 0 3px var(--violet-soft); }
.pb-ask input { flex: 1; min-width: 0; height: 32px; border: 0; outline: 0; background: transparent; font-size: 13.5px; color: var(--ink); }
.pb-ask input::placeholder { color: var(--subtle); }
.pb-send { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: var(--ink); color: #fff; flex: none; transition: background-color var(--d-fast) var(--ease); }
.pb-send:hover { background: var(--ink-2); }
.pb-win .pb-send .ic { width: 14px; height: 14px; transform: rotate(-90deg); }
.pb-foot { display: flex; align-items: center; gap: 8px; padding: 9px 12px 10px 16px;padding-inline: 16px 12px; border-top: 1px solid var(--app-line); }
.pb-by { display: inline-flex; align-items: center; gap: 8px; min-width: 0; font-size: 12px; color: var(--muted); }
.pb-by-t { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pb-by-m { display: inline-flex; flex: none; }
.pb-by-s { display: none; }
.pb-by-m .byl { --bs: 18px; }
.pb-by.is-writing .pb-by-t { background: linear-gradient(90deg, var(--muted) 0%, var(--muted) 35%, var(--violet) 50%, var(--muted) 65%, var(--muted) 100%) 0 0 / 300% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: pb-shine 1.8s linear infinite; }
@keyframes pb-shine { from { background-position: 100% 0; } to { background-position: 0 0; } }
.pb-copy { margin-inline-start: auto; display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 11px; border-radius: 9px; box-shadow: inset 0 0 0 1px var(--line-2); background: var(--card); font-size: 13px; font-weight: 500; color: var(--ink); flex: none; transition: box-shadow var(--d-fast) var(--ease), background-color var(--d-fast) var(--ease); }
.pb-copy:hover { box-shadow: inset 0 0 0 1px var(--line-3); background: #faf9fd; }
.pb-win .pb-copy .ic { width: 14px; height: 14px; }
.pb-editb { margin-inline-start: auto; }
.pb-editb + .pb-copy { margin-inline-start: 0; }
.pb-copy:disabled { opacity: .45; cursor: default; background: var(--card); box-shadow: inset 0 0 0 1px var(--line-2); }
.pb-card.is-editing .pb-editb { background: var(--violet-soft); color: var(--violet-ink); box-shadow: inset 0 0 0 1px var(--violet-line); }

/* ---- right: the Post panel (panels.css look) -------------------------------------------- */
.pb-side { display: flex; flex-direction: column; min-width: 0; background: var(--card); border-inline-start: 1px solid var(--app-line); border-radius: 0 0 var(--r-panel) 0;border-start-start-radius: 0;border-start-end-radius: 0;border-end-end-radius: var(--r-panel);border-end-start-radius: 0; }
.pb-sh { display: flex; align-items: center; gap: 8px; height: 52px; padding: 0 16px 0 18px;padding-inline: 18px 16px; border-bottom: 1px solid var(--app-line); }
.pb-sh > b { font-size: 14px; font-weight: 500; }
.pb-ready { margin-inline-start: auto; display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 500; color: var(--success); transition: color .3s var(--ease); }
.pb-win .pb-ready .ic { width: 15px; height: 15px; }
.pb-ready.is-wait { color: var(--violet-ink); }
.pb-win .pb-ready.is-wait .ic { width: 13px; height: 13px; color: var(--violet); animation: pb-pulse 1.4s var(--ease) infinite; }
@keyframes pb-pulse { 50% { opacity: .35; } }
.pb-sec { padding: 14px 16px 16px; border-bottom: 1px solid var(--app-line); }
.pb-label { display: flex; align-items: center; justify-content: space-between; margin-bottom: 9px; font-size: 12px; font-weight: 500; color: var(--muted); }
.pb-acc { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 12px 0 9px;padding-inline: 9px 12px; border-radius: var(--r-ctl); box-shadow: inset 0 0 0 1px var(--app-line); }
.pb-av { position: relative; width: 28px; height: 28px; border-radius: 50%; flex: none; display: grid; place-items: center; }
/* the initials sit up and left a touch, clear of the platform badge */
.pb-av-img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.pb-av-yn { background: linear-gradient(135deg, #c3adf4, #9b7ee3); color: #fff; font-size: 9.5px; font-weight: 600; letter-spacing: .02em; padding: 0 3px 3px 0;padding-inline: 0 3px; }
.pb-pl { position: absolute; inset-inline-end: -4px; bottom: -3px; width: 15px; height: 15px; border-radius: 50%; display: grid; place-items: center; background: var(--card); color: var(--ink); box-shadow: 0 0 0 1px var(--app-line); }
.pb-win .pb-pl .ic { width: 10px; height: 10px; }
.pb-acc-t { flex: 1; min-width: 0; line-height: 1.3; }
.pb-acc-t b { display: block; font-size: 13px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pb-acc-t small { display: block; font-size: 11.5px; color: var(--muted); }
.pb-win .pb-acc-ok { width: 17px; height: 17px; flex: none; color: var(--success); }
/* collapsible area (How to post it, once downloaded) */
.pb-fold-a { display: grid; grid-template-rows: 1fr; transition: grid-template-rows var(--d-morph) var(--ease-out), opacity .22s var(--ease); }
.pb-fold-a > div { min-height: 0; overflow: hidden; }
.pb-how:not(.is-open) { grid-template-rows: 0fr; opacity: 0; visibility: hidden; transition: grid-template-rows var(--d-morph) var(--ease-out), opacity .15s var(--ease), visibility 0s linear var(--d-morph); }
.pb-now-t { display: flex; align-items: center; gap: 8px; margin-top: 12px; padding: 10px 12px; border-radius: var(--r-ctl); background: #f4f3f7; font-size: 12.5px; line-height: 1.4; color: var(--text-soft); }
.pb-win .pb-now-t .ic { width: 15px; height: 15px; color: var(--violet); }
.pb-act { display: grid; grid-template-columns: minmax(0, 1fr); margin-top: 14px; }
.pb-act > * { grid-area: 1 / 1; }
.pb-go { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 42px; padding: 0 14px; border-radius: var(--r-ctl); background: var(--ink); color: #fff; font-size: 13.5px; font-weight: 500; white-space: nowrap; transition: background-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease), box-shadow var(--d-fast) var(--ease), opacity .2s var(--ease), transform var(--d-fast) var(--ease); }
.pb-go:hover { background: var(--ink-2); }
.pb-go:active { transform: scale(.985); }
.pb-win .pb-go .ic { width: 16px; height: 16px; }
.pb-go .pb-spin { width: 14px; height: 14px; }
.pb-go.is-busy .ic { display: none; }
.pb-go.is-busy .pb-spin { display: block; }
.pb-go.is-busy { pointer-events: none; }
.pb-ok { display: flex; align-items: center; gap: 8px; height: 42px; padding: 0 12px; border-radius: var(--r-ctl); background: #edf5ef; color: #2d6b40; font-size: 13px; font-weight: 500; opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .2s var(--ease), transform .3s var(--ease-out), visibility 0s linear .3s; }
.pb-win .pb-ok > .ic { width: 17px; height: 17px; color: var(--success); }
.pb-ok > span { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pb-act.is-ok .pb-ok { opacity: 1; visibility: visible; transform: none; transition: opacity .2s var(--ease), transform .3s var(--ease-out), visibility 0s; }
.pb-act.is-ok .pb-go { opacity: 0; pointer-events: none; }
/* the other platforms: download it ready-sized, then the steps to post it */
.pb-q { flex: 1; border-bottom: 0; padding-bottom: 16px; }
.pb-qp { display: flex; gap: 6px; color: var(--muted); }
.pb-win .pb-qp .ic { width: 13px; height: 13px; }
.pb-dl-t { font-size: 12.5px; line-height: 1.45; color: var(--text-soft); text-wrap: pretty; }
.pb-dlb { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 40px; margin-top: 12px; padding: 0 14px; border-radius: var(--r-ctl); background: var(--card); box-shadow: inset 0 0 0 1px var(--line-2); font-size: 13px; font-weight: 500; color: var(--ink); white-space: nowrap; transition: box-shadow var(--d-fast) var(--ease), background-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease), transform var(--d-fast) var(--ease); }
.pb-dlb:hover { box-shadow: inset 0 0 0 1px var(--line-3); background: #faf9fd; }
.pb-dlb:active { transform: scale(.985); }
.pb-win .pb-dlb .ic { width: 16px; height: 16px; }
.pb-dlb .pb-spin { width: 14px; height: 14px; }
.pb-dlb.is-busy { pointer-events: none; color: var(--text-soft); }
.pb-dlb.is-busy .ic { display: none; }
.pb-dlb.is-busy .pb-spin { display: block; }
.pb-dlb.is-done { background: #edf5ef; color: #2d6b40; box-shadow: none; }
.pb-dlb.is-done .ic { color: var(--success); }
.pb-how-h { margin-top: 14px; font-size: 12px; font-weight: 500; color: var(--muted); }
.pb-how-l { display: grid; gap: 7px; margin: 9px 0 0; padding: 0; list-style: none; counter-reset: pb-how; }
.pb-how-l li { counter-increment: pb-how; display: flex; align-items: center; gap: 10px; font-size: 12.5px; line-height: 1.35; color: var(--text-soft); }
.pb-how-l li::before { content: counter(pb-how); flex: none; width: 20px; height: 20px; border-radius: 6px; display: grid; place-items: center; background: #f4f3f7; font-size: 11px; font-weight: 600; color: var(--text-soft); font-variant-numeric: tabular-nums; }

/* ---- steps (above the window) + CTA (below it) ----------------------------------------- */
.pb-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-bottom: clamp(36px, 4.4vw, 56px); }
.pb-step { position: relative; }
/* each step is a button (30 Oct 2026, Fernando: click 01, 02, 03 to see that part of the window) */
.pb-step-b { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-content: start; gap: 5px 14px; width: 100%; height: 100%; margin: 0; padding: 22px 0 4px; border: 0; border-radius: 0; background: none; font: inherit; text-align: start; color: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.pb-step-b:focus-visible { outline: 2px solid var(--violet); outline-offset: 6px; border-radius: 6px; }
.pb-step-b b { transition: color var(--d-menu) var(--ease); }
.pb-bar { position: absolute; inset-inline-start: 0; inset-inline-end: 0; top: 0; height: 2px; border-radius: 2px; background: var(--line-2); overflow: hidden; }
.pb-bar i { position: absolute; inset: 0; border-radius: inherit; background: var(--ink); transform: scaleX(0); transform-origin: left center; }
.pb-n { grid-row: span 2; padding-top: 3px; font-size: .8125rem; line-height: 1.4; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--subtle); transition: color var(--d-menu) var(--ease); }
.pb-step b { font-size: 1.0625rem; line-height: 1.4; font-weight: 500; letter-spacing: -.012em; color: var(--muted); }
.pb-d { font-size: .9375rem; line-height: 1.45; color: var(--muted); text-wrap: balance; max-width: 38ch; }
/* 31 Oct 2026: like the editor's steps (.eds-tab): the step on show runs its timer bar and is in ink */
.pb-step-b:hover b, .pb-step-b[aria-pressed="true"] b, .pb-step-b[aria-pressed="true"] .pb-n { color: var(--ink); }
.pb-step-b.is-run .pb-bar i { animation: eds-fill var(--dur, 6s) linear forwards; }
.pb-steps.is-paused .pb-step-b.is-run .pb-bar i { animation-play-state: paused; }
.pb-cta { display: grid; gap: 12px; justify-items: center; margin-top: clamp(40px, 5vw, 60px); }

/* ---- smaller windows ------------------------------------------------------------------- */
@media (max-width: 1199px) {
  .pb-main { grid-template-columns: minmax(0, 1fr) 320px; }
  .pb-pv { display: none; }
  .pb-play, .pb-vr, .pb-redo, .pb-undo, .pb-crumb, .pb-slash, .pb-save { display: none; }
}
@media (max-width: 1099px) { .pb-plat { display: none; } }
@media (max-width: 999px) {
  .pb-logo, .pb-save, .pb-plat, .pb-crumb, .pb-slash { display: none; }
  .pb-tab span { display: none; }
  .pb-tab[aria-selected="true"] span { display: inline; }
}
@media (max-width: 859px) {
  .pb-main { grid-template-columns: minmax(0, 1fr); }
  .pb-cap { min-height: 0; }
  .pb-card { position: relative; inset: auto; margin: 12px; }
  .pb-edit { flex: none; }
  .pb-text { height: 272px; }
  .pb-side { border-inline-start: 0; border-top: 1px solid var(--app-line); border-radius: 0 0 var(--r-panel) var(--r-panel); }
  .pb-steps { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .pb-step-b { padding-top: 18px; }
}
@media (max-width: 719px) {
  .pb-stage { margin-inline: calc(var(--gutter) * -1 + 8px); }
  .pb-stage::before { inset: 8% 0 -4%; }
  .pb-win { border-radius: 20px; }
  .pb-top { grid-template-columns: auto minmax(0, 1fr) auto; padding: 0 8px 0 4px;padding-inline: 4px 8px; gap: 4px; }
  .pb-back { margin-inline-start: 0; box-shadow: none; }
  .pb-tl { min-width: 0; }
  .pb-title { display: none; }
  .pb-seg { justify-self: center; }
  .pb-seg > span { min-width: 64px; padding: 0 10px; font-size: 13px; }
  .pb-postbtn { display: none; }
  .pb-dl-l { display: none; }
  .pb-dl { padding: 0 10px; }
  .pb-dl-c { display: none; }
  .pb-card { margin: 8px; border-radius: 16px; }
  .pb-ctop { padding: 8px 10px 6px 6px;padding-inline: 6px 10px; }
  .pb-tab { height: 40px; min-width: 40px; justify-content: center; padding: 0 9px; }
  .pb-count { font-size: 11.5px; }
  .pb-fb-x { display: none; }
  .pb-tools { position: relative; }
  .pb-rw { position: static; }
  .pb-menu { inset-inline-start: auto; inset-inline-end: 8px; width: min(248px, calc(100% - 16px)); }
  .pb-menu button { height: 44px; font-size: 14px; }
  .pb-text { height: 250px; padding: 12px 54px 14px 14px;padding-inline: 14px 54px; font-size: 14.5px; line-height: 22px; }
  .pb-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding: 10px 10px; }
  .pb-chips::-webkit-scrollbar { display: none; }
  .pb-chips { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 32px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 32px), transparent); }
  .pb-chips::after { content: ""; flex: 0 0 18px; }
  .pb-chip { height: 40px; }
  .pb-ask { margin: 0 10px 10px; }
  .pb-ask input { height: 40px; font-size: 16px; }
  .pb-send { width: 40px; height: 40px; border-radius: 10px; }
  .pb-foot { padding: 8px 10px 8px 14px;padding-inline: 14px 10px; }
  .pb-copy { height: 40px; }
  .pb-sh { height: 48px; padding: 0 14px; }
  .pb-sec { padding: 14px 14px 16px; }
  .pb-acc { min-height: 50px; }
  .pb-go, .pb-ok { height: 46px; }
  .pb-dlb { height: 44px; }
  .pb-by-l { display: none; }
  .pb-by-s { display: inline; }
  .pb-cta { justify-items: stretch; }
  .pb-cta .btn { width: 100%; }
  .pb-cta .reassure { justify-self: center; }
}

/* ==== 08-features ==== */
/* Features: six small things, each shown live in a bento of white cards. Every visual is
   built from the slide component and the app's UI primitives (rows, seg, ask bar). */
#features .ft-l { display: block; }

/* ---- the bento --------------------------------------------------------------------------- */
.ft-grid { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 720px) {
  .ft-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ft-a-kit, .ft-a-exp { grid-column: span 2; }
}
@media (min-width: 1080px) {
  .ft-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-areas: "kit kit fit" "ask pic fit" "src exp exp"; }
  .ft-a-kit { grid-area: kit; } .ft-a-fit { grid-area: fit; } .ft-a-ask { grid-area: ask; }
  .ft-a-pic { grid-area: pic; } .ft-a-src { grid-area: src; } .ft-a-exp { grid-area: exp; }
}

.ft-card { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 8px; container: ftc / inline-size; border-radius: 22px; background: var(--card); box-shadow: var(--shadow-tile); transition: box-shadow var(--d-menu) var(--ease); }
@media (hover: hover) { .ft-card:hover { box-shadow: var(--shadow-popover); } }
.ft-vis {
  position: relative; flex: 1 0 auto; min-height: 296px; border-radius: 15px; overflow: hidden; isolation: isolate;
  background: radial-gradient(80% 70% at 50% 0%, rgb(255 255 255 / .85), rgb(255 255 255 / 0) 72%), #f3f1f9;
  box-shadow: inset 0 0 0 1px rgb(31 26 46 / .035);
}
.ft-copy { display: grid; gap: 6px; padding: 20px 16px 14px; }
.ft-copy p { max-width: 46ch; font-size: .9375rem; line-height: 1.55; color: var(--muted); text-wrap: pretty; }
/* loops stop off screen; CSS motion pauses with them */
.ft-card:not(.is-vis) .ft-vis *, .ft-card:not(.is-vis) .ft-vis *::after { animation-play-state: paused !important; }
.ft-vis .sl { --sl-r: 8px; }
/* slides the app drew (_inc/showcase.php), as pictures (30 Oct 2026: no made-up slides) */
.ft-vis .sc-pic { display: block; width: 100%; height: auto; border-radius: 6px; box-shadow: 0 0 0 1px rgb(24 21 31 / .05), 0 2px 4px rgb(24 21 31 / .05), 0 16px 30px -16px rgb(40 24 70 / .34); }

/* ---- 1 · brand kits ------------------------------------------------------------------------ */
/* the kit's colours (themes cream-orange-clean and nordic, the slides' themes) */
.ftk { --k-c1: #fbf5ec; --k-c2: #f2661c; --k-c3: #1b1917;
  display: flex; align-items: center; justify-content: center; gap: clamp(36px, 5vw, 72px); padding: 24px; }
.ftk[data-kit="b"] { --k-c1: #f3f0ea; --k-c2: #56799b; --k-c3: #23282d; }
.ftk-panel { position: relative; z-index: 2; width: 284px; flex: none; padding: 12px; border-radius: 16px; background: var(--card); box-shadow: var(--shadow-popover); font-size: 13px; line-height: 1.35; color: var(--ink); }
.ftk-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-inline-start: 4px; margin-bottom: 12px; }
.ftk-title { font-weight: 500; white-space: nowrap; }
.ftk .seg-sm > button { height: 26px; padding: 0 10px; font-size: 12px; }
.ftk-id { display: flex; align-items: center; gap: 11px; padding: 2px 4px 12px; }
.ftk-logo { position: relative; width: 38px; height: 38px; flex: none; display: grid; border-radius: 10px; }
.ftk-logo > img { grid-area: 1 / 1; width: 100%; height: 100%; border-radius: inherit; object-fit: cover; transition: opacity .35s var(--ease); }
.ftk-logo > img.is-face { border-radius: 50%; background: #f1e3d6; }
.ftk[data-kit="a"] [data-kv="b"], .ftk[data-kit="b"] [data-kv="a"] { opacity: 0; }
.ftk-who { min-width: 0; }
.ftk-who b { display: block; font-size: 14px; font-weight: 500; }
.ftk-who small { display: block; font-size: 12px; color: var(--muted); }
.ftk-rows { display: grid; gap: 6px; }
.ftk-row { display: flex; align-items: center; gap: 8px; height: 36px; padding: 0 10px 0 12px;padding-inline: 12px 10px; border-radius: var(--r-ctl); box-shadow: inset 0 0 0 1px var(--line); }
.ftk-row .k { color: var(--muted); }
.ftk-row .v { margin-inline-start: auto; display: inline-flex; align-items: center; gap: 7px; font-weight: 500; white-space: nowrap; }
.ftk-sw { gap: 0 !important; padding-inline-start: 4px; }
.ftk-sw i { width: 18px; height: 18px; margin-inline-start: -4px; border-radius: 50%; box-shadow: 0 0 0 2px #fff, inset 0 0 0 1px rgb(31 26 46 / .08); transition: background-color .6s var(--ease); }
.ftk-sw i:nth-child(1) { background: var(--k-c1); } .ftk-sw i:nth-child(2) { background: var(--k-c2); } .ftk-sw i:nth-child(3) { background: var(--k-c3); }
.ftk-mark { display: inline-flex; }
.ftk-mark .byl { --bs: 16px; }
.ftk-role { margin-inline-start: -3px; color: var(--muted); font-weight: 400; }

/* two slides, each one picture per kit (or per voice), crossfading */
.ftk-slides { position: relative; z-index: 1; width: 344px; height: 236px; flex: none; }
.ftk-s { position: absolute; top: 50%; display: grid; }
.ftk-s > .sc-pic { grid-area: 1 / 1; transition: opacity .45s var(--ease); }
.ftk-s1 { left: 0; width: 180px; z-index: 2; transform: translateY(-50%) rotate(-2deg); }
.ftk-s2 { left: 176px; width: 166px; z-index: 1; transform: translateY(-47%) rotate(3deg); }
.ftk [data-k] { transition: opacity .2s var(--ease); }
.ftk.is-swap [data-k] { opacity: 0; }
.ftk-note { position: absolute; z-index: 3; left: 50%; bottom: -12px; display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 11px 0 9px;padding-inline: 9px 11px; border-radius: 9px; background: var(--card); box-shadow: var(--shadow-popover); font-size: 12px; font-weight: 500; color: var(--ink); white-space: nowrap; opacity: 0; transform: translate(-50%, 6px); transition: opacity .3s var(--ease), transform .45s var(--ease-out); }
.ftk-note .ic { width: 15px; height: 15px; color: var(--success); }
.ftk.is-applied .ftk-note { opacity: 1; transform: translate(-50%, 0); }

/* ---- 2 · smart text fit ---------------------------------------------------------------------- */
.ftf { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 28px 22px; }
.ftf-slide { width: min(320px, 86%); }
.ftf-box { position: relative; flex: 1 1 auto; min-height: 0; margin-top: 7cqw; }
.ftf-box::before { content: ""; position: absolute; inset: -2.6cqw; border: 1px solid rgb(127 86 217 / .6); border-radius: 1.2cqw; pointer-events: none; }
.ftf-c { position: absolute; z-index: 3; width: 7px; height: 7px; margin: -3.5px; border-radius: 2px; background: #fff; box-shadow: 0 0 0 1px var(--violet); }
.ftf-c.tl { inset-inline-start: -2.6cqw; top: -2.6cqw; } .ftf-c.tr { inset-inline-end: -2.6cqw; top: -2.6cqw; }
.ftf-c.bl { inset-inline-start: -2.6cqw; bottom: -2.6cqw; } .ftf-c.br { inset-inline-end: -2.6cqw; bottom: -2.6cqw; }
.ftf .ftf-h { --fit: 15; margin: 0; font-size: calc(var(--fit) * 1cqw); line-height: 1.06; text-wrap: wrap; transition: font-size .3s var(--ease-out); }
.ftf .ftf-measure { position: absolute; inset-inline-start: 0; inset-inline-end: 0; top: 0; visibility: hidden; pointer-events: none; }
/* the ruler must resize at once, also under reduced motion (which gives everything a 1ms transition) */
.ftf .ftf-measure, .ftf .ftf-measure * { transition: none !important; }
.ftf-t::after { content: ""; display: inline-block; width: .06em; height: .86em; margin-inline-start: .05em; vertical-align: -.08em; border-radius: 1px; background: var(--violet); animation: ft-blink 1.05s steps(1) infinite; }
@keyframes ft-blink { 50% { opacity: 0; } }
.ftf-meter { display: flex; align-items: center; gap: 10px; width: min(320px, 86%); height: 42px; padding: 0 8px 0 12px;padding-inline: 12px 8px; border-radius: 12px; background: var(--card); box-shadow: var(--shadow-chip); font-size: 12.5px; color: var(--ink); white-space: nowrap; }
.ftf-meter .ic { width: 15px; height: 15px; color: var(--muted); }
.ftf-k { color: var(--muted); }
.ftf-track { --p: 90%; position: relative; flex: 1; min-width: 40px; height: 4px; border-radius: 4px; background: var(--page-3); }
.ftf-track::before { content: ""; position: absolute; inset-inline-start: 0; top: 0; bottom: 0; width: var(--p); border-radius: inherit; background: var(--violet); transition: width .3s var(--ease-out); }
.ftf-track i { position: absolute; top: 50%; inset-inline-start: var(--p); width: 12px; height: 12px; margin: -6px 0 0 -6px;margin-inline: -6px 0; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px var(--line-2), 0 1px 3px rgb(24 21 31 / .16); transition: left .3s var(--ease-out); }
.ftf-v { min-width: 44px; text-align: end; color: var(--muted); font-variant-numeric: tabular-nums; }
.ftf-v b { font-weight: 500; color: var(--ink); }
.ftf-strip { display: none; gap: 7px; }
.ftf-th { display: flex; flex-direction: column; align-items: center; gap: 7px; width: 52px; flex: none; }
.ftf-th .sl { --sl-r: 4px; box-shadow: 0 0 0 1px rgb(31 26 46 / .06), 0 1px 2px rgb(31 26 46 / .08); }
.ftf-th.is-on .sl { outline: 1.5px solid var(--ink); outline-offset: 2px; }
.ftf-th .sl-h { line-height: 1.06; text-wrap: wrap; }
.ftf-th .ftf-c, .ftf-th .ftf-measure { display: none; }
.ftf-th .ftf-box::before { display: none; }
.ftf-th .ftf-t::after { display: none; }
.ftf-th .ftf-h { transition: font-size .3s var(--ease-out); }
.ftf-th > b { order: 2; font-size: 11px; font-weight: 500; line-height: 1; color: var(--subtle); font-variant-numeric: tabular-nums; }
.ftf-th.is-on > b { color: var(--ink); }
@media (min-width: 1080px) { .ftf-strip { display: flex; } .ftf { gap: 16px; } }
.ftf-auto { display: inline-flex; align-items: center; height: 22px; padding: 0 7px; border-radius: 6px; background: var(--violet-soft); color: var(--violet-ink); font-size: 11px; font-weight: 600; letter-spacing: .02em; }

/* ---- 3 · ask AI ------------------------------------------------------------------------------ */
.fta, .ftp { display: flex; flex-direction: column; align-items: center; padding: 20px 14px 14px; }
/* the editor's slides, slide 1 selected; its cover crossfades from before to after */
.fta-row { display: flex; justify-content: center; gap: 10px; width: 100%; margin: auto 0; padding-top: 10px; }
.fta-s { position: relative; width: min(31%, 188px); flex: none; }
.fta-pic { position: relative; display: grid; border-radius: 6px; }
.fta-pic > .sc-pic { grid-area: 1 / 1; transition: opacity .45s var(--ease), filter .6s var(--ease-out); }
.fta-s.is-sel .fta-pic { outline: 2px solid var(--violet); outline-offset: 3px; border-radius: 7px; }
.fta-tag { position: absolute; z-index: 4; inset-inline-start: 0; top: -12px; padding: 2px 7px; border-radius: 6px; background: var(--violet); color: #fff; font-size: 10.5px; font-weight: 600; line-height: 1.4; white-space: nowrap; transform: translateY(-50%); }
.fta-s:not(.is-sel) { opacity: .92; }
.fta-after { opacity: 0; filter: blur(6px); }
.fta[data-view="after"] .fta-after { opacity: 1; filter: none; }
.fta[data-view="after"] .fta-before { opacity: 0; filter: blur(4px); }
.fta-sheen { position: absolute; inset: 0; z-index: 3; border-radius: 6px; pointer-events: none; opacity: 0; background: linear-gradient(105deg, transparent 30%, rgb(196 172 247 / .55) 48%, rgb(255 255 255 / .7) 52%, transparent 70%); background-size: 260% 100%; }
.fta[data-state="working"] .fta-sheen { opacity: 1; animation: ft-sheen 1.1s var(--ease) infinite; }
@keyframes ft-sheen { from { background-position: 120% 0; } to { background-position: -40% 0; } }
.fta-bar { position: relative; flex: none; width: min(360px, 100%); margin-top: 20px; display: block; padding: 0; font-size: 13px; }
.fta-ask, .fta-res { position: absolute; inset: 0; display: flex; align-items: center; gap: 8px; padding: 0 6px 0 6px; transition: opacity .3s var(--ease), visibility 0s linear .3s; }
.fta-ask .q { min-width: 0; color: var(--subtle); }
.fta[data-state="typing"] .fta-ask .q, .fta[data-state="working"] .fta-ask .q { color: var(--ink); }
.fta[data-state="typing"] [data-ask-q]::after { content: ""; display: inline-block; width: 1.5px; height: 15px; margin-inline-start: 1px; vertical-align: -3px; background: var(--violet); animation: ft-blink 1s steps(1) infinite; }
.fta[data-state="working"] .fta-ask .q { color: var(--violet-ink); }
.fta-ask .send { position: relative; transition: background-color var(--d-fast) var(--ease), transform var(--d-fast) var(--ease); }
.fta[data-state="working"] .fta-ask .send { background: var(--violet); }
.fta[data-state="working"] .fta-ask .send .ic { opacity: 0; }
.fta-spin { position: absolute; inset: 9px; border-radius: 50%; border: 1.5px solid rgb(255 255 255 / .35); border-top-color: #fff; opacity: 0; animation: ft-spin .8s linear infinite; }
.fta[data-state="working"] .fta-spin { opacity: 1; }
@keyframes ft-spin { to { transform: rotate(360deg); } }
.fta-res { justify-content: space-between; padding: 0 6px 0 12px;padding-inline: 12px 6px; opacity: 0; visibility: hidden; }
.fta[data-state="done"] .fta-ask { opacity: 0; visibility: hidden; }
.fta[data-state="done"] .fta-res { opacity: 1; visibility: visible; transition: opacity .35s var(--ease) .1s, visibility 0s; }
.fta-done { display: inline-flex; align-items: center; gap: 7px; font-weight: 500; color: var(--ink); white-space: nowrap; }
.fta-done .ic { width: 16px; height: 16px; color: var(--violet); }
.fta-res .seg-sm > button { height: 28px; padding: 0 11px; font-size: 12.5px; }

/* ---- 4 · AI pictures --------------------------------------------------------------------------- */
.ftp-slide { position: relative; width: 196px; margin: auto 0; }
/* the slide, one picture per style (showcase pic); the shown one develops */
.ftp-pics { position: relative; display: grid; }
.ftp-pics > .ftp-art { grid-area: 1 / 1; opacity: 0; transition: opacity .5s var(--ease); }
.ftp-pics > .ftp-art.is-on { opacity: 1; }
.ftp.is-dev .ftp-art.is-on { animation: ft-develop 1.7s var(--ease-out) both; }
@keyframes ft-develop { from { filter: blur(9px) saturate(.35) brightness(1.08); } 55% { filter: blur(2px) saturate(.8); } to { filter: none; } }
.ftp-dev { position: absolute; z-index: 3; left: 50%; top: 50%; display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 0 7px; border-radius: 99px; background: rgb(255 255 255 / .92); color: var(--violet-ink); font-size: 9.5px; font-weight: 600; letter-spacing: .02em; white-space: nowrap; opacity: 0; transform: translate(-50%, -50%) scale(.96); transition: opacity .3s var(--ease), transform .3s var(--ease-out); box-shadow: var(--shadow-chip); }
.ftp-dev .ic { width: 10px; height: 10px; color: var(--violet); }
.ftp.is-dev .ftp-dev { opacity: 1; transform: translate(-50%, -50%); }
.ftp-bar { position: relative; flex: none; margin-top: 14px; display: flex; gap: 2px; padding: 4px; border-radius: 14px; background: var(--card); box-shadow: var(--shadow-popover); white-space: nowrap; }
.ftp-bar .chip { height: 32px; padding: 0 12px; font-size: 12.5px; border-radius: 10px; }
.ftp-bar .chip[aria-pressed="true"] { background: var(--violet-soft); color: var(--violet-ink); box-shadow: inset 0 0 0 1px var(--violet-line); }

/* ---- 5 · start from anything ---------------------------------------------------------------------- */
.fts { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 34px 22px 20px;padding-inline: 20px 34px; }
.fts-wires { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; overflow: visible; }
.fts-wires path { fill: none; stroke: rgb(31 26 46 / .14); stroke-width: 1.2; stroke-dasharray: 2 4; stroke-linecap: round; transition: stroke .3s var(--ease); }
.fts-wires path.is-on { stroke: var(--violet); stroke-dasharray: 4 5; animation: ft-flow .7s linear infinite; }
@keyframes ft-flow { to { stroke-dashoffset: -9; } }
.fts-dot { fill: var(--violet); opacity: 0; transition: opacity .2s var(--ease); filter: drop-shadow(0 0 4px rgb(127 86 217 / .6)); }
.fts-dot.is-on { opacity: 1; }
.fts-list { position: relative; z-index: 2; display: grid; gap: 11px; min-width: 0; }
.fts-src { display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 13px 0 6px;padding-inline: 6px 13px; border-radius: 12px; background: var(--card); box-shadow: var(--shadow-chip); font-size: 12.5px; font-weight: 500; color: var(--text-soft); white-space: nowrap; transition: box-shadow .35s var(--ease), color .35s var(--ease); }
.fts-ic { width: 26px; height: 26px; flex: none; display: grid; place-items: center; border-radius: 8px; background: var(--page-2); color: var(--muted); transition: background-color .35s var(--ease), color .35s var(--ease); }
.fts-ic .ic { width: 15px; height: 15px; }
.fts-src.is-on { color: var(--ink); box-shadow: 0 0 0 1px var(--violet-line), var(--shadow-popover); }
.fts-src.is-on .fts-ic { background: var(--violet-soft); color: var(--violet); }
.fts-stack { position: relative; z-index: 2; width: 124px; height: 155px; flex: none; }
.fts-card { position: absolute; inset-inline-start: 0; top: 0; width: 124px; transform-origin: 50% 100%; transition: transform .75s var(--ease-out), opacity .5s var(--ease); }
.fts-card[data-pos="0"] { z-index: 3; transform: none; }
.fts-card[data-pos="1"] { z-index: 2; transform: translate(12px, -8px) rotate(6deg) scale(.94); }
.fts-card[data-pos="2"] { z-index: 1; transform: translate(22px, -14px) rotate(12deg) scale(.88); opacity: .85; }
.fts-card > .sc-pic { transition: filter .5s var(--ease); }
.fts-card[data-pos="1"] > .sc-pic { filter: brightness(.97); }
.fts-card[data-pos="2"] > .sc-pic { filter: brightness(.93); }
.fts-card.is-new { animation: ft-drop .75s var(--ease-out) both; }
@keyframes ft-drop { from { opacity: 0; transform: translate(-34px, 6px) rotate(-8deg) scale(.82); } }

/* ---- 6 · export and preview ------------------------------------------------------------------------ */
.ftx { display: flex; align-items: center; justify-content: center; gap: clamp(22px, 3.2vw, 40px); padding: 22px 24px; }
.ftx-check { width: 236px; flex: none; padding: 14px 14px 12px; border-radius: 16px; background: var(--card); box-shadow: var(--shadow-popover); font-size: 13px; line-height: 1.35; color: var(--ink); }
.ftx-ct { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; font-weight: 500; }
.ftx-ct .ic { width: 17px; height: 17px; color: var(--muted); transition: color .3s var(--ease); }
.ftx.is-ready .ftx-ct .ic { color: var(--success); }
.ftx-check ul { display: grid; gap: 10px; }
.ftx-check li { display: flex; align-items: center; gap: 9px; color: var(--muted); transition: color .3s var(--ease); }
.ftx-check li i { position: relative; width: 16px; height: 16px; flex: none; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--line-3); transition: background-color .25s var(--ease), box-shadow .25s var(--ease); }
.ftx-check li.is-run i::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 1.5px solid transparent; border-top-color: var(--ink); animation: ft-spin .7s linear infinite; }
.ftx-check li.is-ok { color: var(--ink); }
.ftx-check li.is-ok i { background: var(--success); box-shadow: none; animation: ft-pop .35s var(--ease-out); }
.ftx-check li.is-ok i::before { content: ""; position: absolute; left: 5.5px; top: 3.2px; width: 4px; height: 7.5px; border: solid #fff; border-width: 0 1.6px 1.6px 0; transform: rotate(45deg); }
@keyframes ft-pop { from { transform: scale(.6); } }
.ftx-ok { display: flex; align-items: center; gap: 8px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 12px; color: var(--muted); }
.ftx-dot { width: 6px; height: 6px; flex: none; border-radius: 50%; background: var(--subtle); transition: background-color .3s var(--ease); }
.ftx.is-ready .ftx-dot { background: var(--success); }
.ftx.is-ready .ftx-ok { color: var(--ink); }

.ftx-prev { display: grid; justify-items: center; gap: 12px; flex: none; }
.ftx-plats > button { width: 38px; padding: 0; justify-content: center; }
.ftx-plats .ic { width: 15px; height: 15px; }
.ftx-post { --w: 136px; --mh: 170px; width: calc(var(--w) + 12px); padding: 6px; border-radius: 14px; background: var(--card); box-shadow: var(--shadow-popover); transition: width .55s var(--ease-out); }
.ftx[data-plat="tiktok"] .ftx-post { --w: 121px; --mh: 214px; }
.ftx-ph, .ftx-pf { display: flex; align-items: center; gap: 6px; height: 22px; overflow: hidden; transition: height .5s var(--ease-out), opacity .3s var(--ease); }
.ftx-ph { padding: 0 2px 4px; }
.ftx-ph .ic { width: 12px; height: 12px; margin-inline-start: auto; color: var(--subtle); }
.ftx-av { width: 14px; height: 14px; flex: none; border-radius: 50%; object-fit: cover; background: #f1e3d6; }
.ftx-who { display: grid; min-width: 0; line-height: 1.15; }
.ftx-who b { font-size: 8.5px; font-weight: 600; color: var(--ink); white-space: nowrap; }
.ftx-who small { font-size: 7px; color: var(--muted); white-space: nowrap; }
.ftx[data-plat="instagram"] .ftx-av { box-shadow: 0 0 0 1.5px #fff, 0 0 0 2.6px #e3a07e; }
.ftx-media { position: relative; width: var(--w); height: var(--mh); border-radius: 5px; overflow: hidden; transition: width .55s var(--ease-out), height .55s var(--ease-out); }
.ftx-media > .sc-pic { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0; box-shadow: none; transition: opacity .4s var(--ease); }
.ftx[data-plat="tiktok"] [data-pm="feed"], .ftx:not([data-plat="tiktok"]) [data-pm="tall"] { opacity: 0; }
.ftx-count { position: absolute; z-index: 3; inset-inline-end: 5px; top: 5px; height: 15px; padding: 0 5px; border-radius: 99px; background: rgb(31 26 46 / .55); color: #fff; font-size: 8.5px; font-weight: 600; line-height: 15px; transition: opacity .3s var(--ease); }
.ftx-side { position: absolute; z-index: 3; inset-inline-end: 6px; bottom: 30px; display: grid; gap: 8px; color: #fff; opacity: 0; transition: opacity .3s var(--ease); }
.ftx-side .ic { width: 13px; height: 13px; filter: drop-shadow(0 1px 2px rgb(0 0 0 / .25)); }
.ftx-pf { padding: 4px 2px 0; color: var(--muted); }
.ftx-pf .ic { width: 12px; height: 12px; }
.ftx-li, .ftx-ig { display: none; align-items: center; gap: 7px; width: 100%; }
.ftx[data-plat="linkedin"] .ftx-li, .ftx[data-plat="instagram"] .ftx-ig { display: flex; }
.ftx-dots { display: flex; gap: 2px; margin: 0 auto; }
.ftx-dots b { width: 3px; height: 3px; border-radius: 50%; background: rgb(31 26 46 / .2); }
.ftx-dots b:first-child { background: #4a90e2; }
.ftx-bm { margin-inline-start: 0; }
.ftx[data-plat="instagram"] .ftx-count { opacity: 0; }
.ftx[data-plat="tiktok"] .ftx-ph, .ftx[data-plat="tiktok"] .ftx-pf { height: 0; padding-block: 0; opacity: 0; }
.ftx[data-plat="tiktok"] .ftx-count { opacity: 0; }
.ftx[data-plat="tiktok"] .ftx-side { opacity: 1; }
.ftx[data-plat="tiktok"] .ftx-media { border-radius: 9px; }

.ftx-out { width: 200px; flex: none; display: grid; gap: 8px; }
.ftx-label { padding-inline-start: 2px; font-size: 12px; font-weight: 500; color: var(--muted); }
.ftx-fmts { display: grid; gap: 6px; }
.ftx-fmt { display: flex; align-items: center; gap: 9px; height: 38px; padding: 0 12px; border-radius: var(--r-ctl); background: var(--card); box-shadow: inset 0 0 0 1px var(--line-2); font-size: 13px; font-weight: 500; color: var(--text-soft); transition: box-shadow var(--d-fast) var(--ease), color var(--d-fast) var(--ease); }
.ftx-fmt .ic { width: 16px; height: 16px; color: var(--muted); }
.ftx-fmt::after { content: ""; width: 14px; height: 14px; margin-inline-start: auto; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--line-3); transition: box-shadow var(--d-fast) var(--ease); }
.ftx-fmt:hover { color: var(--ink); box-shadow: inset 0 0 0 1px var(--line-3); }
.ftx-fmt[aria-pressed="true"] { color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink); }
.ftx-fmt[aria-pressed="true"] .ic { color: var(--ink); }
.ftx-fmt[aria-pressed="true"]::after { box-shadow: inset 0 0 0 4.5px var(--ink); }
.ftx-dl { display: flex; align-items: center; justify-content: center; gap: 7px; height: 38px; margin-top: 4px; border-radius: var(--r-ctl); background: var(--ink); color: #fff; font-size: 13px; font-weight: 500; }
.ftx-dl .ic { width: 15px; height: 15px; }
.ftx-meta { text-align: center; font-size: 11.5px; color: var(--muted); }

/* ---- close ---------------------------------------------------------------------------------------- */
.ft-end { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 28px; margin-top: clamp(40px, 5vw, 60px); }

/* ---- tablet + phone --------------------------------------------------------------------------------- */
@media (max-width: 1079px) {
  .ft-a-fit .ft-vis { min-height: 380px; }
  .ftf-slide { width: min(250px, 84%); }
  .ftf-meter { width: min(276px, 96%); }
}
@media (max-width: 719px) {
  .ft-grid { gap: 12px; }
  .ft-card { border-radius: 20px; padding: 6px; }
  .ft-vis { border-radius: 15px; }
  .ft-copy { padding: 16px 12px 12px; }
  /* phones: the small controls get a 44px tall hit area */
  .ft-vis .seg > button, .ftp-bar .chip { position: relative; }
  .ft-vis .seg > button::before, .ftp-bar .chip::before { content: ""; position: absolute; inset-inline-start: 0; inset-inline-end: 0; top: 50%; height: 44px; transform: translateY(-50%); }
}
/* each figure fits the card it's in (the homepage's bento, a feature page's header, the How it works column), not
   the window: container queries on the card (30 Oct 2026, Fernando: "they don't fit … on mobile") */
@container ftc (min-width: 860px) {
  .ftk { gap: clamp(48px, 7cqw, 96px); padding: 32px 28px; }
  .ftk-slides { width: 420px; height: 290px; }
  .ftk-s1 { width: 220px; }
  .ftk-s2 { inset-inline-start: 212px; width: 204px; }
  .fta-row { gap: 14px; }
  .fta-bar { width: min(420px, 100%); }
  .fts-stack, .fts-card { width: 168px; }
  .fts-stack { height: 210px; }
  .fts-card[data-pos="1"] { transform: translate(16px, -10px) rotate(6deg) scale(.94); }
  .fts-card[data-pos="2"] { transform: translate(30px, -18px) rotate(12deg) scale(.88); }
  .ftx-post { --w: 172px; --mh: 215px; }
  .ftx[data-plat="tiktok"] .ftx-post { --w: 146px; --mh: 260px; }
  .ftx-check { width: 250px; }
  .ftx-out { width: 212px; }
}
@container ftc (max-width: 779px) and (min-width: 600px) {
  .ftk { gap: 28px; padding: 24px 16px; }
  .ftk-panel { width: 260px; }
  .ftk-slides { width: 300px; }
  .ftk-s1 { width: 160px; }
  .ftk-s2 { inset-inline-start: 150px; width: 148px; }
  .ftx { gap: 22px; padding: 22px 16px; }
  .ftx-check { width: 214px; }
  .ftx-out { width: 176px; }
}
/* sources: tighter where the card is narrow */
@container ftc (max-width: 520px) {
  .fts { padding: 20px 26px 20px 12px;padding-inline: 12px 26px; gap: 10px; }
  .fts-list { gap: 8px; }
  .fts-src { height: 34px; padding-inline-end: 9px; font-size: 11.5px; gap: 7px; }
  .fts-ic { width: 24px; height: 24px; }
  .fts-stack, .fts-card { width: 92px; }
  .fts-stack { height: 115px; }
  .fts-card[data-pos="1"] { transform: translate(9px, -7px) rotate(6deg) scale(.94); }
  .fts-card[data-pos="2"] { transform: translate(16px, -12px) rotate(12deg) scale(.88); }
}
@container ftc (max-width: 599px) {
  /* kit and voice: the panel, then the two slides under it */
  .ftk { flex-direction: column; gap: 20px; padding: 18px 12px 34px; }
  .ftk-panel { width: min(100%, 320px); }
  .ftk-slides { width: min(100%, 300px); height: auto; aspect-ratio: 300 / 222; }
  .ftk-s1 { width: 52%; }
  .ftk-s2 { inset-inline-start: 48%; width: 49%; }
  .ftk-note { bottom: -26px; }
  /* export: check + preview side by side, formats below */
  .ftx { flex-wrap: wrap; gap: 16px 12px; padding: 18px 12px; }
  .ftx-check { width: auto; flex: 1 1 150px; min-width: 0; padding: 12px 10px; font-size: 11.75px; }
  .ftx-plats > button { width: 34px; }
  .ftx-check ul { gap: 9px; }
  .ftx-check li { gap: 7px; align-items: flex-start; }
  .ftx-check li i { margin-top: -.5px; }
  .ftx-ok { font-size: 11.5px; }
  .ftx-post { --w: 108px; --mh: 135px; }
  .ftx[data-plat="tiktok"] .ftx-post { --w: 92px; --mh: 164px; }
  .ftx-out { width: 100%; grid-template-columns: repeat(var(--ftx-n, 3), minmax(0, 1fr)); gap: 6px; }
  .ftx-label, .ftx-meta { display: none; }
  .ftx-fmts { display: contents; }
  .ftx-fmt { justify-content: center; height: 40px; padding: 0 8px; }
  .ftx-fmt::after { display: none; }
  .ftx-dl { grid-column: 1 / -1; height: 42px; margin-top: 0; }
}
@container ftc (max-width: 380px) {
  .ftk-role { display: none; }
  .fta-row { gap: 7px; }
  .fta-tag { font-size: 9.5px; padding: 1px 5px; }
}

/* ==== 09-proof ==== */
/* Reviews: the real quotes as a calm testimonial wall (one featured, two smaller),
   the Forbes feature, and a slow reel of slides in the editor's themes */

/* ---- the wall ---------------------------------------------------------------- */
.rv-grid { display: grid; gap: 16px; }
@media (min-width: 680px) {
  .rv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .rv-feature, .rv-press { grid-column: 1 / -1; }
}
@media (min-width: 1000px) {
  .rv-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
  .rv-feature { grid-column: 1; grid-row: 1 / span 2; }
}

.rv-card {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; flex-direction: column; gap: 22px;
  padding: clamp(24px, 2.4vw, 32px); min-height: 236px;
  border-radius: var(--r-panel); background: var(--card); box-shadow: var(--shadow-tile);
}
.rv-stars { display: inline-flex; gap: 3px; color: #e3895c; }
.rv-stars .ic { width: 15px; height: 15px; }
.rv-q { margin: 0; }
.rv-q p { font-size: clamp(1.375rem, 1.2rem + .55vw, 1.625rem); line-height: 1.28; font-weight: 300; letter-spacing: -.022em; color: var(--ink); text-indent: -.3em; text-wrap: balance; max-width: 19em; }

.rv-who { margin-top: auto; display: flex; align-items: center; gap: 12px; }
.rv-who b { display: block; font-size: .9375rem; line-height: 1.35; font-weight: 500; color: var(--ink); }
.rv-who small { display: block; font-size: .8125rem; line-height: 1.4; color: var(--muted); }
.rv-av {
  width: 40px; height: 40px; border-radius: 12px; flex: none; display: grid; place-items: center;
  font-size: .8125rem; font-weight: 600; letter-spacing: .02em; color: var(--violet-ink);
  background: var(--violet-soft); box-shadow: inset 0 0 0 1px rgb(127 86 217 / .1);
}
.rv-av-violet { background: radial-gradient(120% 120% at 30% 20%, #f3eefd, #e3d8fa); color: #5f3fb7; }
.rv-av-peach { background: radial-gradient(120% 120% at 30% 20%, #fcefe7, #f6d9c8); color: #9a5534; box-shadow: inset 0 0 0 1px rgb(200 110 70 / .12); }
.rv-av-mix { background: linear-gradient(135deg, #e6dbfb 0%, #f1e4f2 50%, #f8dccb 100%); color: #4f3593; }

/* the featured one: larger, on the lavender of the hero stage */
.rv-feature {
  gap: 28px; padding: clamp(28px, 3.4vw, 48px);
  background: #f3effb; box-shadow: inset 0 0 0 1px rgb(127 86 217 / .08);
}
.rv-glow { position: absolute; inset: 0; z-index: -1; pointer-events: none; background:
  radial-gradient(48% 60% at 92% 4%, rgb(255 255 255 / .95), transparent 72%),
  radial-gradient(52% 58% at 100% 100%, rgb(250 214 196 / .55), transparent 72%),
  radial-gradient(46% 54% at 6% 96%, rgb(214 196 250 / .5), transparent 72%); }
.rv-mark { width: clamp(40px, 4vw, 56px); height: auto; aspect-ratio: 1; margin: -6px 0 0 -4px;margin-inline: -4px 0; color: rgb(127 86 217 / .28); }
.rv-feature .rv-stars-lead { margin-top: auto; }
.rv-feature .rv-q { margin-top: -6px; }
.rv-feature .rv-q p { font-size: clamp(1.875rem, 1.25rem + 1.9vw, 2.625rem); line-height: 1.12; letter-spacing: -.034em; max-width: 13em; text-indent: -.28em; }
.rv-feature .rv-who { margin-top: 8px; }
.rv-feature .rv-av { width: 48px; height: 48px; font-size: .875rem; }
.rv-feature .rv-who b { font-size: 1rem; }

/* ---- the Forbes feature ----------------------------------------------------------- */
.rv-press {
  position: relative; isolation: isolate; overflow: hidden;
  display: grid; gap: 18px; align-items: center;
  padding: 28px 24px 30px; border-radius: var(--r-panel); background: var(--card); box-shadow: var(--shadow-tile);
}
.rv-press-logo { display: flex; }
.rv-press .forbes { width: 108px; height: auto; color: var(--ink); }
.rv-press-copy { display: grid; gap: 6px; max-width: 30ch; }
.rv-press-label { font-size: .8125rem; line-height: 1.4; font-weight: 500; color: var(--muted); }
.rv-press-title { font-size: clamp(1.25rem, 1.1rem + .45vw, 1.5rem); line-height: 1.25; font-weight: 400; letter-spacing: -.02em; color: var(--ink); text-wrap: balance; }
.rv-press-link { justify-self: start; min-height: 40px; }
/* the whole card is the link's hit area */
.rv-press-link::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.rv-press-link:focus-visible { outline: none; }
.rv-press:has(.rv-press-link:focus-visible) { outline: 2px solid var(--violet); outline-offset: 3px; }
.rv-press:hover .rv-press-link { color: var(--muted); }
.rv-press:hover .rv-press-link .ic { transform: translate(2px, -2px); }
.rv-orb { position: absolute; z-index: -1; width: 150px; height: 150px; inset-inline-end: -46px; bottom: -58px; transition: transform 1.2s var(--ease-out); }
.rv-press:hover .rv-orb { transform: translate(-6px, -6px) rotate(-8deg) scale(1.04); }
@media (min-width: 680px) {
  .rv-press { grid-template-columns: auto minmax(0, 1fr); gap: 4px 36px; padding: 30px 132px 26px 36px;padding-inline: 36px 132px; }
  .rv-press-logo { grid-row: 1 / span 2; padding-inline-end: 36px; border-inline-end: 1px solid var(--line); align-self: stretch; align-items: center; }
  .rv-press .forbes { width: 132px; }
  .rv-press-copy { max-width: none; }
  .rv-orb { width: 176px; height: 176px; inset-inline-end: -40px; bottom: -84px; }
}
@media (min-width: 1000px) {
  .rv-press { grid-template-columns: auto minmax(0, 1fr) auto; gap: 36px; padding: 30px 172px 30px 36px;padding-inline: 36px 172px; }
  .rv-press-logo { grid-row: auto; }
  .rv-press-link { justify-self: end; }
}

/* ---- the reel ------------------------------------------------------------------- */
.rv-reel {
  --sw: clamp(132px, 11.5vw, 172px); --gap: clamp(12px, 1.2vw, 18px);
  position: relative; margin-top: clamp(56px, 6vw, 88px); overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #fff 9%, #fff 91%, transparent);
  mask-image: linear-gradient(90deg, transparent, #fff 9%, #fff 91%, transparent);
}
.rv-track { display: flex; width: max-content; padding-block: 10px 22px; animation: rv-drift var(--rv-dur, 90s) linear infinite; will-change: transform; }
.rv-set { display: flex; gap: var(--gap); padding-inline-end: var(--gap); }
.rv-set > li { width: var(--sw); flex: none; transition: transform .6s var(--ease-out); }
.rv-pic { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; border-radius: 9px; box-shadow: var(--shadow-slide); }
.rv-reel:hover .rv-track, .rv-reel:focus-within .rv-track, .rv-reel.is-paused .rv-track { animation-play-state: paused; }
@media (hover: hover) { .rv-set > li:hover { transform: translateY(-4px); } }
@keyframes rv-drift { to { transform: translateX(-50%); } }

.rv-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin-top: clamp(24px, 3vw, 36px); }
.rv-foot-note { display: flex; align-items: center; gap: 10px; min-width: 0; }
.rv-foot-note .t-small { max-width: 64ch; text-wrap: pretty; }
.rv-pause { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px 0 10px;padding-inline: 10px 12px; border-radius: 9px; flex: none; font-size: .8125rem; font-weight: 500; color: var(--muted); box-shadow: inset 0 0 0 1px var(--line-2); background: var(--card); transition: color var(--d-fast) var(--ease), box-shadow var(--d-fast) var(--ease); }
.rv-pause:hover { color: var(--ink); box-shadow: inset 0 0 0 1px var(--line-3); }
.rv-pause .ic { width: 13px; height: 13px; }

/* reduced motion: a still row you can scroll */
.rv-reel.is-still { overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, transparent, #fff 3%, #fff 97%, transparent); mask-image: linear-gradient(90deg, transparent, #fff 3%, #fff 97%, transparent); }
.rv-reel.is-still::-webkit-scrollbar { display: none; }
.rv-reel.is-still .rv-track { animation: none; padding-inline: var(--gutter); }
.rv-reel.is-still .rv-set > li { scroll-snap-align: center; }
.rv-reel.is-still .rv-set[aria-hidden="true"] { display: none; }
#reviews.is-still .rv-pause { display: none; }

@media (max-width: 679px) {
  .rv-foot { flex-direction: column; align-items: stretch; }
  .rv-foot-note { align-items: flex-start; }
  .rv-foot .btn { width: 100%; --h: 48px; }
  .rv-pause { height: 40px; }
  .rv-card { min-height: 0; gap: 18px; }
  .rv-card .rv-who { margin-top: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .rv-track { animation: none; }
  .rv-orb, .rv-set > li { transition: none; }
}

/* ==== 10-pricing ==== */
/* Pricing: the app's three plans (final/ui/js/app/plans.js), ElevenLabs-style cards */
#pricing .head { margin-bottom: clamp(36px, 4.4vw, 56px); }
.head > .pr-side { display: grid; gap: 22px; justify-items: start; }
@media (min-width: 960px) {
  .head > .pr-side { justify-items: end; }
  .pr-side .t-lead { padding-bottom: 0; }
}

/* billing toggle (the app's pw-term, as a pill) */
.pr-term { padding: 4px; background: rgb(31 26 46 / .055); }
.pr-term > button { height: 38px; padding: 0 18px; font-size: .9375rem; gap: 8px; }
.pr-save { display: inline-flex; align-items: center; height: 20px; padding: 0 7px; border-radius: 6px; background: var(--violet-soft); color: var(--violet-ink); font-size: .6875rem; font-weight: 600; letter-spacing: .02em; transition: background-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease); }
.pr-term > [aria-pressed="false"] .pr-save { background: rgb(127 86 217 / .1); }

/* cards */
.pr-grid { display: grid; gap: 16px; }
@media (min-width: 900px) { .pr-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } }
.pr-card { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 28px 28px 32px; border-radius: var(--r-panel); background: var(--card); box-shadow: var(--shadow-tile); isolation: isolate; overflow: hidden; }
.pr-card.is-pop { box-shadow: 0 0 0 1.5px var(--ink), var(--shadow-float), 0 40px 80px -48px rgb(70 40 130 / .35); }
.pr-card.is-pop::before { content: ""; position: absolute; z-index: -1; inset-inline-start: 0; inset-inline-end: 0; top: 0; height: 260px; pointer-events: none; background:
  radial-gradient(55% 90% at 88% 0%, rgb(214 196 250 / .55), transparent 72%),
  radial-gradient(45% 70% at 18% 0%, rgb(250 214 196 / .38), transparent 72%); }
.pr-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 26px; }
.pr-name { font-size: 1.25rem; line-height: 1.3; font-weight: 500; letter-spacing: -.018em; color: var(--ink); }
.pr-flag { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 7px; background: var(--ink); color: #fff; font-size: .75rem; font-weight: 500; letter-spacing: .005em; white-space: nowrap; }
.pr-blurb { margin-top: 4px; font-size: .9375rem; line-height: 1.45; color: var(--muted); }

/* price: Inter 300, digits roll on the billing switch */
.pr-price { display: flex; align-items: baseline; gap: 8px; margin-top: 30px; }
.pr-amt { display: inline-flex; align-items: baseline; font-size: clamp(2.875rem, 2.3rem + 1.2vw, 3.375rem); line-height: 1; font-weight: 300; letter-spacing: -.045em; color: var(--ink); font-variant-numeric: tabular-nums; }
.pr-cur { margin-inline-end: .02em; }
.pr-num { display: inline-flex; }
.pr-d { position: relative; display: inline-grid; overflow: hidden; padding-block: .06em; margin-block: -.06em; }
.pr-d > span { grid-area: 1 / 1; }
.pr-per { font-size: .9375rem; color: var(--muted); letter-spacing: 0; }
.pr-bill { position: relative; display: grid; margin-top: 10px; font-size: .875rem; line-height: 1.45; color: var(--muted); }
.pr-bill > span { grid-area: 1 / 1; }
.pr-cta { margin-top: 24px; width: 100%; --h: 48px; font-size: .9375rem; }

.pr-rule { height: 1px; margin: 28px 0 22px; border: 0; background: var(--line); }
.pr-inc { margin-bottom: 14px; font-size: .8125rem; font-weight: 500; color: var(--muted); }
.pr-list { display: grid; gap: 13px; }
.pr-list li { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 12px; align-items: start; font-size: .9375rem; line-height: 1.45; color: var(--muted); }
.pr-list li b { font-weight: 500; color: var(--ink); }
.pr-list .ic { width: 18px; height: 18px; margin-top: 2px; color: var(--ink); }

/* the writers' prints next to "ghostwriters" (the app's halftone marks) */
.pr-marks { display: inline-flex; align-items: center; gap: 3px; padding-inline-start: 4px; }
.pr-marks .byl { --bs: 17px; }
.pr-marks .pr-more { margin-inline-start: 3px; font-size: .75rem; font-weight: 500; color: var(--muted); }
/* three seats */
.pr-seats { display: inline-flex; padding-inline-start: 6px; }
.pr-seats i { width: 22px; height: 22px; margin-inline-start: -5px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: .625rem; font-weight: 600; color: var(--ink); background: #ece5fb; box-shadow: 0 0 0 2px var(--card); }
.pr-seats i:nth-child(2) { background: #fbe3d6; } .pr-seats i:nth-child(3) { background: #e3ead6; }
/* a writer and a kit per client: three app rows */
.pr-clients { display: grid; gap: 6px; margin-top: 22px; padding: 6px; border-radius: var(--r-card); background: var(--page-2); }
.pr-client { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 40px; padding: 0 12px 0 9px;padding-inline: 9px 12px; border-radius: var(--r-ctl); background: var(--card); box-shadow: inset 0 0 0 1px var(--line); font-size: .8125rem; font-weight: 500; color: var(--ink); }
.pr-client i { width: 20px; height: 20px; border-radius: 6px; background: linear-gradient(135deg, var(--a) 50%, var(--b) 50%); box-shadow: inset 0 0 0 1px rgb(31 26 46 / .08); }
.pr-client small { font-size: .75rem; font-weight: 400; color: var(--muted); white-space: nowrap; }

/* reassurance under the cards */
.pr-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 32px; margin-top: 36px; }
.pr-trust li { display: inline-flex; align-items: center; gap: 8px; font-size: .875rem; color: var(--muted); }
.pr-trust .ic { width: 16px; height: 16px; color: var(--violet); }

@media (min-width: 900px) and (max-width: 1099px) {
  .pr-card { padding: 24px 22px 28px; }
  .pr-list li { font-size: .875rem; }
}
@media (min-width: 900px) and (max-width: 1239px) {
  /* narrow cards: the prints go under their line */
  .pr-list li { grid-template-columns: 18px minmax(0, 1fr); }
  .pr-list li:has(.pr-seats) { grid-template-columns: 18px minmax(0, 1fr) auto; }
  .pr-marks { grid-column: 2; justify-self: start; padding-inline-start: 0; margin-top: -4px; }
}
@media (max-width: 899px) {
  .pr-card.is-pop { order: -1; }
}
@media (min-width: 640px) and (max-width: 899px) {
  .pr-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pr-card.is-pop { grid-column: 1 / -1; }
}
@media (max-width: 719px) {
  .pr-side { width: 100%; }
  .pr-term { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
  .pr-term > button { justify-content: center; height: 40px; }
  .pr-card { padding: 24px 22px 26px; }
  .pr-price { margin-top: 24px; }
  .pr-trust { flex-direction: column; align-items: center; gap: 10px; margin-top: 28px; }
}


/* 15 Oct: on phones the final CTA (site.css) reaches 8px from the screen's edges, like every other stage
   on this page; the other pages keep it inside their gutter */
@media (max-width: 719px) {
  .fin { margin-inline: calc(var(--gutter) * -1 + 8px); border-radius: 20px; }
}
.lp .pb-go.is-press { transform: scale(.96); background: var(--ink-2); }
