/*
 * Software — the look. Everything lives inside a .sw root (blocks and the
 * product page) or under a .sw-mark (engine-rendered list pages), so it never
 * leaks into the rest of the site. "Midnight" re-maps the house tokens for a
 * dark surface; "Daylight" keeps the active UI style's own colours; "Clear"
 * (the last third of this file) is the calm, airy storefront.
 *
 * Order: tokens · pictures · chips & buttons · showcase · cards · reviews ·
 * trial · compatibility · product page · licence keys · viewer · motion ·
 * console · storefront parts (play, saved, player, bar, catalogue, hero,
 * listen, free, dialog) · the Clear look · small screens.
 */
@font-face { font-family: 'Fraunces'; src: url('../fonts/vx-software/fraunces.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }
.sw, body:has(.sw-mark) main { --sw-accent: var(--vx-accent, #7c6cff); }
.sw-dark, body:has(.sw-mark.sw-dark) main {
  --sw-bg: none;
  --bg: #08090d;
  --ink: #f4f5fa;
  --ink-2: #c9ccd9;
  --muted: #8e93a6;
  --line: #252836;
  --on-ink: #08090d;
  --surface-2: #0d0f15;
  --surface-3: #151823;
  --vx-card-bg: #10121a;
  --vx-card-line: #232634;
  --vx-card-shadow: 0 1px 0 rgba(255,255,255,.04), 0 24px 60px rgba(0,0,0,.45);
  --vx-soft: #171a26;
  background-color: var(--bg);
  color: var(--ink);
  color-scheme: dark;
}
.sw-light { --sw-bg: none; background-color: var(--bg, #fff); color: var(--ink); }
.vx-w[class*="vx-w-software-"] { padding: 0; background: none; }
.sw { position: relative; }
.sw-pad { padding: clamp(56px, 8vw, 112px) 0; }
.sw-alt.sw-dark { background-color: #0c0e14; }
.sw-alt.sw-light { background-color: var(--surface-2, #f5f5f7); }

:is(.sw-dark, body:has(.sw-mark.sw-dark) main) :is(h1, h2, h3, h4, .vx-h2, .vx-card-title, .vx-item-title, .bcos-display) { color: var(--ink); }
:is(.sw-dark, body:has(.sw-mark.sw-dark) main) :is(.vx-lead, .bcos-lead, .vx-prose, .vx-card-summary, .bcos-kicker, p, li, dd) { color: var(--ink-2); }
:is(.sw-dark, body:has(.sw-mark.sw-dark) main) a:not(.bcos-btn):not(.vx-card) { color: color-mix(in srgb, var(--sw-accent) 70%, #fff); }
:is(.sw-dark, body:has(.sw-mark.sw-dark) main) :is(.vx-field input:not([type=checkbox]):not([type=radio]), .vx-field select, .vx-field textarea, .vx-public-filters input, .vx-public-filters select) { background: #0d0f16; color: var(--ink); border-color: #2c3042; }
:is(.sw-dark, body:has(.sw-mark.sw-dark) main) :is(.vx-field label, .vx-field .vx-help, .vx-muted) { color: var(--muted); }
:is(.sw-dark, body:has(.sw-mark.sw-dark) main) .bcos-btn:not(.bcos-btn-ink) { color: var(--ink); border-color: #3a3e52; background: transparent; }
:is(.sw-dark, body:has(.sw-mark.sw-dark) main) .bcos-btn:not(.bcos-btn-ink):hover { border-color: var(--ink); }
:is(.sw-dark, body:has(.sw-mark.sw-dark) main) .bcos-btn-ink { background: var(--ink); color: #08090d; border-color: var(--ink); }
:is(.sw-dark, body:has(.sw-mark.sw-dark) main) .bcos-btn-ink:hover { background: #fff; }
:is(.sw-dark, body:has(.sw-mark.sw-dark) main) :is(.bcos-page-hero, .bcos-section) { background-color: transparent; border-color: var(--line); }
.sw .vx-head { max-width: 760px; margin-bottom: clamp(28px, 4vw, 48px); }
.sw .vx-h2 { font-size: clamp(30px, 4.2vw, 52px); line-height: 1.05; letter-spacing: -.025em; }
.sw .vx-more { margin-top: 36px; text-align: center; }

/* ── Pictures ── */
.sw-img { display: block; width: 100%; height: auto; }
.sw-zoom { all: unset; display: block; position: relative; width: 100%; cursor: zoom-in; border-radius: inherit; }
.sw-zoom:focus-visible { outline: 3px solid var(--sw-accent); outline-offset: 4px; }
.sw-zoom-hint { position: absolute; right: 14px; bottom: 14px; padding: 6px 11px; border-radius: 99px; background: rgba(8,9,13,.72); color: #fff; font-size: 12px; letter-spacing: .02em; opacity: 0; transform: translateY(4px); transition: opacity .2s, transform .2s; backdrop-filter: blur(8px); pointer-events: none; }
.sw-zoom:hover .sw-zoom-hint, .sw-zoom:focus-visible .sw-zoom-hint { opacity: 1; transform: none; }
.has-bg::before { content: ''; position: absolute; inset: 0; background-image: var(--sw-bg); background-size: cover; background-position: center; opacity: .5; pointer-events: none; }
.has-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, color-mix(in srgb, var(--bg) 35%, transparent), var(--bg) 96%); pointer-events: none; }
.has-bg > * { position: relative; z-index: 1; }

/* ── Chips, badges, price ── */
.sw-badge { display: inline-block; margin: 0 0 14px; padding: 5px 12px; border-radius: 99px; background: var(--sw-accent); color: #0a0a0f !important; font-size: 11.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; font-style: normal; }
.sw-chips, .sw-hero-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.sw-chip { display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border: 1px solid var(--line); border-radius: 99px; font-size: 13px; color: var(--ink-2, inherit); background: color-mix(in srgb, var(--ink) 4%, transparent); }
.sw-chip.is-format { font-weight: 700; letter-spacing: .04em; }
.sw-price { display: inline-flex; align-items: baseline; gap: 8px; }
.sw-price s { color: var(--muted); font-size: .8em; }
.sw-price strong { color: var(--ink); }
.sw-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.sw-buyform { display: inline-flex; margin: 0; }
.sw .bcos-btn { min-height: 46px; padding-inline: 22px; font-weight: 650; }
.sw-btn-price { opacity: .7; font-weight: 500; margin-left: 4px; }
.sw-dark .sw-btn-buy.bcos-btn-ink { background: var(--sw-accent); border-color: var(--sw-accent); color: #0a0a0f; }
.sw-dark .sw-btn-buy.bcos-btn-ink:hover { background: color-mix(in srgb, var(--sw-accent) 82%, #fff); }
.sw-stars { display: inline-block; position: relative; width: 5.4em; height: 1em; vertical-align: -.12em; font-size: 15px; background: currentColor; opacity: 1; color: color-mix(in srgb, var(--ink) 22%, transparent);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3 6.6 7.2.8-5.4 4.9 1.5 7.1L12 17.8 5.700 21.400l1.500-7.100L1.800 9.400 9 8.600z'/%3E%3C/svg%3E") left center / 1.08em 1em repeat-x;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3 6.6 7.2.8-5.4 4.9 1.5 7.1L12 17.8 5.700 21.400l1.500-7.100L1.800 9.400 9 8.600z'/%3E%3C/svg%3E") left center / 1.08em 1em repeat-x; }
.sw-stars span { position: absolute; inset: 0 auto 0 0; background: #ffc53d; }
.sw-avg { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 24px; }
.sw-avg strong { color: var(--ink); }

/* ── Showcase bands ── */
.sw-band { overflow: hidden; }
.sw-band + .sw-band { border-top: 1px solid var(--line); }
.sw-band-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 8fr); gap: clamp(24px, 5vw, 72px); align-items: center; padding-block: clamp(56px, 8vw, 110px); }
.sw-band-tall .sw-band-in { min-height: min(78vh, 820px); }
.sw-band-full .sw-band-in { min-height: 100vh; min-height: 100svh; }
.sw-band-left .sw-band-copy { order: 2; }
.sw-band-below .sw-band-in { grid-template-columns: minmax(0, 1fr); text-align: center; justify-items: center; }
.sw-band-below .sw-actions { justify-content: center; }
.sw .sw-band-title { margin: 0; font-size: clamp(44px, 7vw, 96px); line-height: .98; letter-spacing: -.04em; font-weight: 750; }
.sw-band-title a { color: inherit !important; text-decoration: none; }
.sw-band-tag { margin: 18px 0 30px; font-size: clamp(18px, 2vw, 24px); line-height: 1.35; max-width: 28ch; color: var(--ink-2); }
.sw-band-below .sw-band-tag { max-width: 40ch; }
.sw-band-media { display: block; position: relative; }
.sw-band-media::before { content: ''; position: absolute; inset: 8% 6%; background: radial-gradient(closest-side, color-mix(in srgb, var(--sw-accent) 55%, transparent), transparent); filter: blur(60px); opacity: .55; z-index: 0; }
.sw-band-media > * { position: relative; z-index: 1; }
.sw-band-right .sw-band-media, .sw-band-left .sw-band-media { width: 118%; }
.sw-band-left .sw-band-media { margin-left: -18%; }
.sw-band-media .sw-img { transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.sw-band-media:hover .sw-img { transform: scale(1.015); }

/* ── Cards ── */
.sw-card { overflow: hidden; display: flex; flex-direction: column; background: var(--vx-card-bg, #fff); border: 1px solid var(--vx-card-line, var(--line)); border-radius: var(--vx-radius, 18px); transition: transform .25s, border-color .25s; }
.sw-card:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--sw-accent) 60%, var(--line)); }
/* Above the title's stretched link, so play and save stay clickable when the box lifts on hover. */
.sw-card-top { position: relative; z-index: 2; }
.sw-card-media { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: radial-gradient(120% 90% at 50% 0%, color-mix(in srgb, var(--sw-accent) 34%, transparent), transparent 70%), color-mix(in srgb, var(--ink) 5%, transparent); }
.sw-card-media .sw-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: 4%; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.sw-card:hover .sw-card-media .sw-img { transform: scale(1.03); }
.sw-card-media .sw-badge { position: absolute; left: 14px; top: 14px; margin: 0; }
.sw-card .vx-card-body { display: flex; flex-direction: column; gap: 6px; padding: 20px 22px 22px; flex: 1; }
.sw-card-k { font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.sw-card .vx-card-title { margin: 0; font-size: 24px; letter-spacing: -.02em; }
.sw-card .vx-card-title a { color: inherit !important; text-decoration: none; }
.sw-card .vx-card-title a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.sw-card .vx-card-title a:focus-visible { outline: none; }
.sw-card:has(.vx-card-title a:focus-visible) { outline: 3px solid var(--sw-accent); outline-offset: 3px; }
.sw-card .vx-card-summary { margin: 0; }
.sw-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: auto 0 0; padding-top: 12px; font-size: 17px; }
.sw-card .sw-play { position: absolute; right: 14px; bottom: 14px; z-index: 2; }
.sw-card .sw-fav { position: absolute; right: 14px; top: 14px; z-index: 2; }
.sw-card.is-free .sw-price strong { padding: 3px 11px; border-radius: 99px; font-size: 13px; letter-spacing: .04em; background: color-mix(in srgb, var(--sw-accent) 22%, transparent); }

.sw-bundle { display: grid; grid-template-rows: auto 1fr; overflow: hidden; background: var(--vx-card-bg, #fff); border: 1px solid var(--vx-card-line, var(--line)); border-radius: var(--vx-radius, 18px); }
.sw-bundle-media { position: relative; aspect-ratio: 3 / 2; background: radial-gradient(90% 80% at 50% 10%, color-mix(in srgb, var(--sw-accent) 30%, transparent), transparent 72%), color-mix(in srgb, var(--ink) 4%, transparent); }
.sw-bundle-media .sw-zoom, .sw-bundle-media > .sw-img { position: absolute; inset: 0; height: 100%; }
.sw-bundle-media .sw-img { width: 100%; height: 100%; object-fit: contain; }
.sw-bundle-media .sw-badge { position: absolute; left: 16px; top: 16px; margin: 0; z-index: 2; }
.sw-bundle .vx-card-body { padding: 26px 28px 28px; display: flex; flex-direction: column; gap: 8px; }
.sw-bundle .vx-card-title { font-size: 30px; letter-spacing: -.02em; margin: 0; }
.sw-ticks { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.sw-ticks li { padding: 6px 12px; border-radius: 99px; border: 1px solid var(--line); font-size: 14px; }
.sw-ticks li.is-extra { border-style: dashed; color: var(--muted); }
.sw-ticks a { text-decoration: none; }
.sw-bundle-buy { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); }
.sw-reg { display: block; color: var(--muted); text-decoration: line-through; font-size: 14px; }
.sw-once { font-size: 15px; color: var(--ink-2); }
.sw-once strong { font-size: 26px; color: var(--ink); letter-spacing: -.02em; }
.sw-save { margin-left: 8px; font-style: normal; font-size: 13.5px; font-weight: 600; color: #1a9f5c; white-space: nowrap; }
.sw-bundle-fan { position: absolute; inset: 0; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; align-items: center; padding: 8% 6%; }
.sw-bundle-fan span { display: block; margin-inline: -9%; filter: drop-shadow(0 18px 30px rgba(0,0,0,.22)); transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.sw-bundle-fan span:nth-child(odd) { transform: translateY(5%) rotate(-3deg); }
.sw-bundle-fan span:nth-child(even) { transform: translateY(-5%) rotate(3deg); z-index: 1; }
.sw-bundle:hover .sw-bundle-fan span { transform: none; }
.sw-fan-1 { padding-inline: 22%; }
.sw-fan-2 { padding-inline: 14%; }

/* ── Reviews ── */
.sw-review { display: flex; flex-direction: column; gap: 10px; padding: 24px; background: var(--vx-card-bg, #fff); border: 1px solid var(--vx-card-line, var(--line)); border-radius: var(--vx-radius, 18px); }
.sw-review-t { margin: 4px 0 0; font-size: 19px; letter-spacing: -.01em; }
.sw-review-b { margin: 0; font-size: 15.5px; line-height: 1.6; flex: 1; }
.sw-review footer { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 14px; }
.sw-review footer strong { color: var(--ink); }
.sw-verified { color: #3ecf8e; font-size: 12.5px; }
.sw-review-m { flex-basis: 100%; color: var(--muted); font-size: 13px; }
.sw-carousel-track { display: grid; grid-auto-flow: column; grid-auto-columns: min(86vw, 380px); gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 2px 18px; scrollbar-width: thin; }
.sw-carousel-track > * { scroll-snap-align: start; }
.sw-carousel-nav { display: flex; gap: 10px; justify-content: flex-end; margin-top: 8px; }
.sw-carousel-nav .bcos-btn { min-height: 42px; padding-inline: 16px; }

/* ── Trial band, assurances ── */
.sw-trial { overflow: hidden; }
.sw-trial-in { padding-block: clamp(72px, 11vw, 150px); text-align: center; display: grid; justify-items: center; gap: 28px; }
.sw-trial .vx-head { margin: 0 auto 26px; text-align: center; }
.sw-trial .vx-h2 { font-size: clamp(34px, 5.4vw, 68px); }
.sw-trial-form .sw-trial-in { grid-template-columns: minmax(0, 1fr) minmax(0, 460px); text-align: left; align-items: center; justify-items: stretch; gap: clamp(28px, 5vw, 72px); }
.sw-trial-form .vx-head { text-align: left; margin: 0; }
.sw-trial-box { padding: 28px; border-radius: var(--vx-radius, 18px); border: 1px solid var(--line); background: color-mix(in srgb, var(--bg) 78%, transparent); backdrop-filter: blur(18px); }
.sw-assure { padding: 34px 0; border-block: 1px solid var(--line); }
.sw-assure-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 22px 32px; }
.sw-assure-list li { display: flex; gap: 14px; align-items: flex-start; }
.sw-assure-list i { font-size: 20px; color: var(--sw-accent); margin-top: 3px; }
.sw-assure-list strong { display: block; color: var(--ink); }
.sw-assure-list span { font-size: 14px; color: var(--muted); }

/* ── Compatibility ── */
.sw-compat { display: grid; gap: 26px; }
.sw-works { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.sw-works li { padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: color-mix(in srgb, var(--ink) 3%, transparent); }
.sw-works strong { display: block; color: var(--ink); font-size: 15px; }
.sw-works span { font-size: 13px; color: var(--muted); }
.sw-reqs { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.sw-reqs .vx-w-box { padding: 20px 22px; border: 1px solid var(--line); border-radius: 16px; background: color-mix(in srgb, var(--ink) 3%, transparent); }
.sw-reqs h3 { margin: 0 0 10px; font-size: 17px; display: flex; gap: 9px; align-items: center; }
.sw-reqs ul { margin: 0; padding-left: 18px; font-size: 14.5px; line-height: 1.6; }

/* ── Product page ── */
.sw-product-page { padding: 0; max-width: none; }
.sw-hero { overflow: hidden; }
.sw-hero-in { display: grid; justify-items: center; text-align: center; gap: clamp(28px, 5vw, 56px); padding-block: clamp(56px, 8vw, 104px) 0; }
.sw-hero-copy { display: grid; justify-items: center; max-width: 820px; }
.sw .sw-hero-title { margin: 0; font-size: clamp(54px, 10vw, 132px); line-height: .94; letter-spacing: -.05em; font-weight: 760; }
.sw-hero-tag { margin: 20px 0 22px; font-size: clamp(19px, 2.3vw, 27px); line-height: 1.3; max-width: 30ch; color: var(--ink-2); }
.sw-hero-rating { margin: 0 0 22px; font-size: 15px; }
.sw-hero-rating a { text-decoration: none; color: var(--ink-2) !important; }
.sw-hero .sw-actions, .sw-hero .sw-hero-meta { justify-content: center; }
.sw-hero-meta { margin-top: 22px; }
.sw-hero-media { position: relative; width: min(100%, 1320px); margin-bottom: clamp(-90px, -6vw, -40px); }
.sw-hero-media::before { content: ''; position: absolute; inset: 10% 8% 18%; background: radial-gradient(closest-side, color-mix(in srgb, var(--sw-accent) 60%, transparent), transparent); filter: blur(80px); opacity: .6; }
.sw-intro { padding-top: clamp(110px, 12vw, 170px); }
.sw-intro-text { max-width: 880px; margin: 0 auto; text-align: center; font-size: clamp(21px, 2.6vw, 32px); line-height: 1.4; letter-spacing: -.012em; color: var(--ink) !important; }
.sw-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 24px; margin: clamp(40px, 6vw, 72px) 0 0; text-align: center; }
.sw-stats dt { font-size: clamp(44px, 6vw, 80px); line-height: 1; letter-spacing: -.04em; font-weight: 750; background: linear-gradient(120deg, var(--ink), var(--sw-accent)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sw-stats dd { margin: 10px 0 0; color: var(--muted); font-size: 15px; }
.sw-feature { overflow: hidden; }
.sw-feature-in { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(24px, 5vw, 80px); align-items: center; padding-block: clamp(48px, 7vw, 100px); }
.sw-feature.is-flip .sw-feature-copy { order: 2; }
.sw-feature.no-pic .sw-feature-in { grid-template-columns: minmax(0, 760px); justify-content: center; text-align: center; }
.sw .sw-feature-copy h2 { margin: 0 0 16px; font-size: clamp(30px, 4vw, 52px); line-height: 1.04; letter-spacing: -.03em; }
.sw-feature-copy p { margin: 0; font-size: clamp(17px, 1.6vw, 20px); line-height: 1.55; }
.sw-feature-media { border-radius: clamp(12px, 1.6vw, 22px); overflow: hidden; border: 1px solid var(--line); box-shadow: 0 40px 100px rgba(0,0,0,.4), 0 0 120px color-mix(in srgb, var(--sw-accent) 16%, transparent); }
.sw-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.sw-grid li { padding: 22px; border: 1px solid var(--line); border-radius: 16px; background: color-mix(in srgb, var(--ink) 3%, transparent); display: grid; gap: 6px; }
.sw-grid strong { color: var(--ink); font-size: 17px; }
.sw-grid span { font-size: 14.5px; line-height: 1.5; color: var(--muted); }

.sw-film-stage { border-radius: clamp(12px, 1.6vw, 22px); overflow: hidden; border: 1px solid var(--line); box-shadow: 0 40px 100px rgba(0,0,0,.4); background: color-mix(in srgb, var(--ink) 4%, transparent); }
.sw-film-slide { margin: 0; }
.sw-film-slide[hidden] { display: none; }
.sw-film-strip { display: flex; gap: 12px; margin-top: 16px; overflow-x: auto; padding: 4px 2px 10px; }
.sw-film-thumb { all: unset; flex: 0 0 auto; width: clamp(96px, 14vw, 168px); border-radius: 10px; overflow: hidden; border: 2px solid transparent; cursor: pointer; opacity: .55; transition: opacity .2s, border-color .2s; }
.sw-film-thumb:hover, .sw-film-thumb:focus-visible { opacity: .9; }
.sw-film-thumb.is-on { opacity: 1; border-color: var(--sw-accent); }
.sw-shots { display: grid; gap: 20px; }
.sw-shots-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.sw-shots figure { margin: 0; border-radius: 16px; overflow: hidden; border: 1px solid var(--line); }

.sw-videos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 20px; }
.sw-video { position: relative; aspect-ratio: 16 / 9; border-radius: 18px; overflow: hidden; border: 1px solid var(--line); background: radial-gradient(90% 90% at 30% 20%, color-mix(in srgb, var(--sw-accent) 40%, transparent), transparent 70%), #0b0c12; }
.sw-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.sw-video-play { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 14px; text-decoration: none; color: #fff !important; text-align: center; }
.sw-video-btn { width: 78px; height: 78px; border-radius: 50%; background: #fff; color: #0a0a0f; display: grid; place-items: center; font-size: 24px; padding-left: 5px; transition: transform .2s; }
.sw-video-play:hover .sw-video-btn { transform: scale(1.08); }
.sw-video-t { font-weight: 650; font-size: 17px; }
.sw-video-t em { display: block; font-style: normal; font-weight: 400; font-size: 13px; opacity: .7; margin-top: 3px; }

.sw-tech { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(32px, 5vw, 72px); align-items: start; }
.sw-tech .vx-h2 { font-size: clamp(26px, 3vw, 36px); margin-bottom: 22px; }
.sw-rel { padding: 18px 0; border-top: 1px solid var(--line); }
.sw-rel h3 { margin: 0; font-size: 18px; }
.sw-rel h3 a { text-decoration: none; color: var(--ink) !important; }
.sw-rel .vx-muted { margin: 2px 0 10px; font-size: 13px; }
.sw-changes { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; font-size: 14.5px; }
.sw-tag { display: inline-block; min-width: 68px; text-align: center; padding: 2px 8px; border-radius: 6px; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; margin-right: 6px; }
.sw-tag-new { background: rgba(62,207,142,.18); color: #3ecf8e; }
.sw-tag-improved { background: rgba(91,157,255,.18); color: #6ea8ff; }
.sw-tag-fixed { background: rgba(255,197,61,.18); color: #e0a400; }
.sw-faq details { border-top: 1px solid var(--line); padding: 4px 0; }
.sw-faq details:last-child { border-bottom: 1px solid var(--line); }
.sw-faq summary { cursor: pointer; padding: 16px 0; font-size: 18px; font-weight: 600; color: var(--ink); list-style-position: outside; }
.sw-faq p { margin: 0 0 18px; font-size: 16px; line-height: 1.6; }
.sw-close { padding: clamp(72px, 10vw, 130px) 0; text-align: center; background-image: radial-gradient(70% 90% at 50% 100%, color-mix(in srgb, var(--sw-accent) 28%, transparent), transparent 70%); }
.sw.sw-close h2 { margin: 0; font-size: clamp(38px, 6vw, 76px); letter-spacing: -.04em; line-height: 1; }
.sw-close-price { margin: 18px 0 6px; font-size: clamp(24px, 3vw, 34px); display: flex; gap: 12px; justify-content: center; align-items: center; flex-wrap: wrap; }
.sw-close-price .sw-badge { margin: 0; }
.sw-close-terms { margin: 6px 0 0; color: var(--muted) !important; font-size: 14.5px; }
.sw-close .sw-actions { justify-content: center; margin-top: 26px; }
.sw-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; padding: 10px 0; border-top: 1px solid var(--line); background: color-mix(in srgb, var(--bg) 86%, transparent) !important; backdrop-filter: blur(18px); transform: translateY(100%); transition: transform .3s; }
.sw-sticky.is-on { transform: none; }
.sw-sticky[hidden] { display: none; }
.sw-sticky .bcos-wrap { display: flex; align-items: center; gap: 16px; }
.sw-sticky strong { font-size: 17px; color: var(--ink); }
.sw-sticky-actions { margin-left: auto; display: flex; gap: 10px; }
.sw-sticky .bcos-btn { min-height: 40px; padding-inline: 16px; }

/* ── Licence keys (order page, any theme) ── */
.sw-keys { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 10px; }
.sw-key { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 12px 14px; border: 1px solid var(--line, #e5e5e5); border-radius: 12px; }
.sw-key span strong { display: block; }
.sw-key span em { font-style: normal; font-size: 13px; color: var(--muted, #777); }
.sw-key code { font: 600 15px/1.2 ui-monospace, Menlo, Consolas, monospace; letter-spacing: .04em; padding: 8px 12px; border-radius: 8px; background: var(--surface-2, #f4f4f5); cursor: copy; user-select: all; }
.sw-key code.is-copied::after { content: ' ✓ copied'; font-family: inherit; font-weight: 400; color: #1a9f5c; letter-spacing: 0; }
.sw-key.is-revoked code { text-decoration: line-through; opacity: .5; }

/* ── Full-resolution viewer ── */
.sw-viewer { position: fixed; inset: 0; z-index: 1000; background: rgba(4,5,8,.96); display: grid; grid-template-rows: auto 1fr; color: #fff; }
.sw-viewer[hidden] { display: none; }
.sw-viewer-bar { display: flex; align-items: center; gap: 10px; padding: 10px 14px; font-size: 13.5px; }
.sw-viewer-bar span { margin-right: auto; opacity: .75; }
.sw-viewer-bar button { all: unset; cursor: pointer; min-width: 40px; height: 40px; padding: 0 12px; box-sizing: border-box; border-radius: 10px; display: grid; place-items: center; background: rgba(255,255,255,.1); font-size: 14px; }
.sw-viewer-bar button:hover, .sw-viewer-bar button:focus-visible { background: rgba(255,255,255,.22); }
.sw-viewer-stage { overflow: auto; display: grid; place-items: center; cursor: zoom-in; overscroll-behavior: contain; }
.sw-viewer-stage img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.sw-viewer.is-actual .sw-viewer-stage { place-items: start; cursor: grab; }
.sw-viewer.is-actual .sw-viewer-stage.is-drag { cursor: grabbing; }
.sw-viewer.is-actual .sw-viewer-stage img { max-width: none; max-height: none; }

/* ── Motion ── */
.sw-js [data-sw-rise] { opacity: 0; transform: translateY(26px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.sw-js [data-sw-rise].is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .sw-js [data-sw-rise] { opacity: 1; transform: none; transition: none; }
  .sw-band-media .sw-img, .sw-card, .sw-sticky { transition: none; }
}

/* ── Console ── */
.sw-report td, .sw-report th { font-size: 13.5px; }
.sw-report-h { margin: 22px 0 8px; }
.sw-grade { display: inline-block; padding: 3px 9px; border-radius: 99px; font-size: 12.5px; font-weight: 600; }
.sw-grade-hd { background: rgba(26,159,92,.14); color: #14804a; }
.sw-grade-ok { background: rgba(224,164,0,.16); color: #8a6400; }
.sw-grade-low { background: rgba(220,53,69,.14); color: #b42332; }
.sw-grade-na { background: rgba(120,120,128,.16); color: #666; }
.sw-opt { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 12px; }

@media (min-width: 900px) {
  .sw-band-left .sw-band-in { grid-template-columns: minmax(0, 8fr) minmax(0, 5fr); }
  .sw-feature.is-flip .sw-feature-in { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); }
}
@media (max-width: 899px) {
  .sw-band-in, .sw-feature-in, .sw-trial-form .sw-trial-in { grid-template-columns: minmax(0, 1fr); }
  .sw-band-in { text-align: center; justify-items: center; min-height: 0 !important; }
  .sw-band .sw-actions { justify-content: center; }
  .sw-band-left .sw-band-copy, .sw-feature.is-flip .sw-feature-copy { order: 0; }
  .sw-band-right .sw-band-media, .sw-band-left .sw-band-media { width: 100%; margin-left: 0; }
  .sw-band-tag { max-width: 34ch; }
  .sw-sticky strong { display: none; }
  .sw-sticky .sw-price { font-size: 15px; }
  .sw-trial-form .vx-head { text-align: center; margin: 0 auto; }
}
@media (max-width: 520px) {
  .sw .bcos-btn { padding-inline: 18px; }
  .sw-bundle .vx-card-body { padding: 20px; }
  .sw-sticky-actions .sw-btn-ghost { display: none; }
}

/* ═══ Storefront parts (every look) ═══════════════════════════════════════ */
.sw-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.sw-kicker { margin: 0 0 14px; font-size: 13px; font-weight: 650; letter-spacing: .1em; text-transform: uppercase; color: color-mix(in srgb, var(--sw-accent) 70%, var(--ink)); }
.sw-more { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; font-weight: 600; text-decoration: none; color: var(--ink) !important; }
.sw-more::after { content: '→'; transition: transform .2s; }
.sw-more:hover::after { transform: translateX(4px); }
.sw-link { all: unset; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; color: var(--ink); }
.sw-link:focus-visible, .sw-more:focus-visible { outline: 3px solid var(--sw-accent); outline-offset: 3px; border-radius: 6px; }

/* ── Play ── */
.sw-play { all: unset; box-sizing: border-box; cursor: pointer; flex: none; display: inline-grid; grid-auto-flow: column; place-items: center; width: 44px; height: 44px; border-radius: 99px; background: var(--ink); color: var(--bg, #fff); box-shadow: 0 6px 18px rgba(0,0,0,.16); transition: transform .2s, background-color .2s; -webkit-tap-highlight-color: transparent; }
.sw-play:hover { transform: scale(1.07); }
.sw-play:active { transform: scale(.96); }
.sw-play:focus-visible { outline: 3px solid var(--sw-accent); outline-offset: 3px; }
.sw-play-ic { display: block; width: 0; height: 0; margin-left: 3px; border-style: solid; border-width: 7px 0 7px 12px; border-color: transparent transparent transparent currentColor; }
.sw-play.is-playing .sw-play-ic { width: 12px; height: 14px; margin: 0; border: 0; background: linear-gradient(90deg, currentColor 0 4px, transparent 4px 8px, currentColor 8px 12px); }
.sw-play.is-loading .sw-play-ic { width: 16px; height: 16px; margin: 0; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; background: none; animation: sw-spin .7s linear infinite; }
.sw-play.is-big { width: 56px; height: 56px; }
.sw-play.is-big .sw-play-ic { transform: scale(1.2); }
.sw-play.has-label { width: auto; gap: 10px; padding: 0 20px 0 16px; font-weight: 600; font-size: 15px; }
@keyframes sw-spin { to { transform: rotate(360deg); } }

/* ── Saved list ── */
.sw-fav { all: unset; box-sizing: border-box; cursor: pointer; display: inline-grid; grid-auto-flow: column; gap: 8px; place-items: center; width: 40px; height: 40px; border-radius: 99px; background: rgba(255,255,255,.92); background: color-mix(in srgb, var(--bg, #fff) 92%, transparent); color: var(--ink); transition: transform .2s, opacity .2s; -webkit-tap-highlight-color: transparent; }
.sw-fav[hidden] { display: none; }
.sw-fav:hover { transform: scale(1.08); }
.sw-fav:focus-visible { outline: 3px solid var(--sw-accent); outline-offset: 3px; }
.sw-fav-ic { width: 18px; height: 18px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 20.5S3.5 15.4 3.5 9.3A4.6 4.6 0 0 1 12 6.9a4.6 4.6 0 0 1 8.5 2.400c0 6.100-8.500 11.200-8.500 11.200z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 20.5S3.5 15.4 3.5 9.3A4.6 4.6 0 0 1 12 6.9a4.6 4.6 0 0 1 8.5 2.400c0 6.100-8.500 11.200-8.500 11.200z'/%3E%3C/svg%3E") center / contain no-repeat; }
.sw-fav[aria-pressed="true"] { color: #e5484d; }
.sw-fav[aria-pressed="true"] .sw-fav-ic {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 20.5S3.5 15.4 3.5 9.3A4.6 4.6 0 0 1 12 6.9a4.6 4.6 0 0 1 8.5 2.400c0 6.100-8.500 11.200-8.500 11.200z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 20.5S3.5 15.4 3.5 9.3A4.6 4.6 0 0 1 12 6.9a4.6 4.6 0 0 1 8.5 2.400c0 6.100-8.500 11.200-8.500 11.200z'/%3E%3C/svg%3E"); }
.sw-fav.is-pop .sw-fav-ic { animation: sw-pop .35s cubic-bezier(.3,1.6,.5,1); }
@keyframes sw-pop { 40% { transform: scale(1.35); } }
.sw-fav.is-wide { width: auto; height: 46px; padding: 0 18px 0 14px; border: 1px solid color-mix(in srgb, var(--ink) 18%, transparent); background: transparent; font-weight: 600; font-size: 15px; backdrop-filter: none; }
@media (hover: hover) {
  .sw-card .sw-fav:not([aria-pressed="true"]) { opacity: 0; }
  .sw-card:hover .sw-fav, .sw-card .sw-fav:focus-visible { opacity: 1; }
}

/* ── In-page player ── */
.sw-player { display: flex; align-items: center; gap: 16px; width: 100%; max-width: 560px; margin: 22px 0 0; padding: 12px 16px 12px 12px; border: 1px solid color-mix(in srgb, var(--ink) 12%, transparent); border-radius: 22px; background: color-mix(in srgb, var(--bg, #fff) 70%, transparent); text-align: left; }
.sw-player-main { flex: 1; min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; }
.sw-player-top { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; color: var(--muted); }
.sw-player-cap { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sw-player-time { font-variant-numeric: tabular-nums; flex: none; }
.sw-wave { position: relative; height: 40px; cursor: pointer; border-radius: 6px; touch-action: none; color: var(--ink); --sw-wave-rest: color-mix(in srgb, currentColor 22%, transparent); }
.sw-wave canvas { display: block; width: 100%; height: 100%; }
.sw-wave:focus-visible { outline: 3px solid var(--sw-accent); outline-offset: 3px; }
.sw-ab { flex: none; display: inline-flex; padding: 3px; border-radius: 99px; background: color-mix(in srgb, var(--ink) 8%, transparent); }
.sw-ab button { all: unset; box-sizing: border-box; cursor: pointer; min-height: 34px; padding: 0 13px; display: grid; place-items: center; border-radius: 99px; font-size: 13px; font-weight: 600; color: var(--muted); transition: background-color .2s, color .2s; }
.sw-ab button[aria-pressed="true"] { background: var(--ink); color: var(--bg, #fff); }
.sw-ab button:focus-visible { outline: 3px solid var(--sw-accent); outline-offset: 2px; }
.sw-hero .sw-player { margin-inline: auto; }

/* ── The player bar: follows the visitor down the page and across pages ── */
.sw-dock { position: fixed; left: 50%; bottom: max(14px, env(safe-area-inset-bottom)); z-index: 80; width: min(900px, calc(100% - 24px)); display: flex; align-items: center; gap: 14px; padding: 10px 12px; border-radius: 22px; background: rgba(18,22,20,.9); color: #fff; -webkit-backdrop-filter: blur(22px) saturate(1.5); backdrop-filter: blur(22px) saturate(1.5); box-shadow: 0 24px 60px -12px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.08) inset; transform: translate(-50%, calc(100% + 40px)); transition: transform .45s cubic-bezier(.2,.9,.2,1); font-size: 14px; }
.sw-dock[hidden] { display: none; }
.sw-dock.is-on { transform: translate(-50%, 0); }
.sw-dock-art { flex: none; width: 46px; height: 46px; border-radius: 12px; overflow: hidden; background: color-mix(in srgb, var(--sw-accent, #7c6cff) 35%, #2a2f2c); display: grid; place-items: center; }
.sw-dock-art img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.sw-dock-meta { flex: 0 1 190px; min-width: 0; display: grid; line-height: 1.25; }
.sw-dock-meta a { color: #fff !important; text-decoration: none; font-weight: 650; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sw-dock-meta span { color: rgba(255,255,255,.62); font-size: 12.5px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sw-dock .sw-play { background: #fff; color: #121614; box-shadow: none; }
.sw-dock-skip { all: unset; box-sizing: border-box; cursor: pointer; flex: none; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: rgba(255,255,255,.8); font-size: 13px; }
.sw-dock-skip:hover, .sw-dock-skip:focus-visible { background: rgba(255,255,255,.14); color: #fff; }
.sw-dock-skip[hidden] { display: none; }
.sw-dock .sw-wave { flex: 1 1 120px; min-width: 60px; height: 34px; color: #fff; --sw-wave-rest: rgba(255,255,255,.26); }
.sw-dock-time { flex: none; min-width: 34px; font-variant-numeric: tabular-nums; color: rgba(255,255,255,.62); font-size: 12.5px; }
.sw-dock .sw-ab { background: rgba(255,255,255,.12); }
.sw-dock .sw-ab button { color: rgba(255,255,255,.7); min-height: 32px; }
.sw-dock .sw-ab button[aria-pressed="true"] { background: #fff; color: #121614; }
.sw-dock .sw-ab[hidden] { display: none; }
.sw-dock-go { flex: none; display: inline-grid; place-items: center; min-height: 38px; padding: 0 16px; border-radius: 99px; background: var(--sw-accent, #fff); color: #101311 !important; font-weight: 650; text-decoration: none; white-space: nowrap; }
.sw-dock-go:hover { filter: brightness(1.08); }
.sw-dock-x { all: unset; box-sizing: border-box; cursor: pointer; flex: none; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; color: rgba(255,255,255,.6); font-size: 15px; }
.sw-dock-x:hover, .sw-dock-x:focus-visible { background: rgba(255,255,255,.14); color: #fff; }
.sw-dock :focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
body.sw-dock-open { padding-bottom: 92px; }
body.sw-dock-open .sw-sticky { display: none; }

/* ── Catalogue ── */
.sw-store { padding: clamp(44px, 6vw, 84px) 0 clamp(56px, 8vw, 104px); }
.sw-store-head { max-width: 720px; margin: 0 0 clamp(28px, 4vw, 44px); }
.sw-store-head .sw-avg { margin: 18px 0 0; }
.sw-store-head .sw-more { min-height: 0; }
.sw .sw-store-title { margin: 0 0 12px; font-size: clamp(38px, 5.4vw, 64px); line-height: 1.02; letter-spacing: -.035em; }
.sw-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 20px; margin: 0 0 22px; }
.sw-tabs { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 4px; border-radius: 99px; background: color-mix(in srgb, var(--ink) 7%, transparent); }
.sw-tabs button { all: unset; box-sizing: border-box; cursor: pointer; min-height: 38px; padding: 0 16px; display: inline-flex; align-items: center; gap: 6px; border-radius: 99px; font-size: 14.5px; font-weight: 600; color: var(--muted); transition: background-color .2s, color .2s; }
.sw-tabs button[hidden] { display: none; }
.sw-tabs button span { font-size: 12px; font-weight: 500; opacity: .6; font-variant-numeric: tabular-nums; }
.sw-tabs button:hover { color: var(--ink); }
.sw-tabs button.is-on { background: var(--bg, #fff); color: var(--ink); box-shadow: 0 1px 3px rgba(0,0,0,.14); }
.sw-tabs button:focus-visible, .sw-cats button:focus-visible { outline: 3px solid var(--sw-accent); outline-offset: 2px; }
.sw-find { display: flex; flex-wrap: wrap; gap: 10px; }
.sw-search input, .sw-sort select { box-sizing: border-box; height: 46px; border: 1px solid color-mix(in srgb, var(--ink) 14%, transparent); border-radius: 99px; background-color: transparent; color: var(--ink); font: inherit; font-size: 15px; }
.sw-search input { width: min(260px, 60vw); padding: 0 18px 0 42px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.500-3.500'/%3E%3C/svg%3E") 15px center / 18px no-repeat; }
.sw-sort select { padding: 0 36px 0 16px; }
.sw-search input:focus-visible, .sw-sort select:focus-visible { outline: 3px solid color-mix(in srgb, var(--sw-accent) 60%, transparent); outline-offset: 1px; border-color: var(--sw-accent); }
.sw-cats { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 30px; }
.sw-cats button { all: unset; box-sizing: border-box; cursor: pointer; min-height: 36px; padding: 0 15px; display: inline-flex; align-items: center; border-radius: 99px; border: 1px solid color-mix(in srgb, var(--ink) 14%, transparent); font-size: 14px; color: var(--ink-2, var(--ink)); transition: background-color .2s, border-color .2s, color .2s; }
.sw-cats button:hover { border-color: var(--ink); }
.sw-cats button.is-on { background: var(--ink); border-color: var(--ink); color: var(--bg, #fff); }
.sw-catalog [data-sw-item][hidden] { display: none; }
.sw-catalog .sw-bundle { grid-column: 1 / -1; grid-template-rows: none; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
.sw-catalog .sw-bundle-media { aspect-ratio: auto; min-height: 280px; }
.sw-catalog .sw-bundle .vx-card-body { justify-content: center; }
.sw-js .sw-catalog.is-shuffling [data-sw-item]:not([hidden]) { animation: sw-in .4s cubic-bezier(.2,.7,.2,1) both; }
@keyframes sw-in { from { opacity: 0; transform: translateY(10px); } }
.sw-none { margin: 40px 0; text-align: center; }
.sw-none[hidden], .sw-seen[hidden] { display: none; }
.sw-seen { margin-top: clamp(48px, 7vw, 88px); padding-top: 28px; border-top: 1px solid var(--line); }
.sw .sw-seen-h { margin: 0 0 16px; font-size: 15px; font-weight: 600; letter-spacing: 0; color: var(--muted); }
.sw-seen-row { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 6px; scrollbar-width: thin; }
.sw-seen-row a { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; padding: 8px 18px 8px 8px; border-radius: 16px; border: 1px solid color-mix(in srgb, var(--ink) 10%, transparent); text-decoration: none; color: var(--ink) !important; transition: border-color .2s; }
.sw-seen-row a:hover { border-color: var(--ink); }
.sw-seen-row img { width: 52px; height: 52px; border-radius: 11px; object-fit: contain; padding: 4px; background: color-mix(in srgb, var(--sw-accent) 14%, color-mix(in srgb, var(--ink) 5%, transparent)); }
.sw-seen-row strong { display: block; font-size: 15px; }
.sw-seen-row span span { font-size: 13px; color: var(--muted); }

/* ── Store hero ── */
.sw-home { overflow: hidden; }
.sw-home-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(28px, 5vw, 72px); align-items: center; padding-block: clamp(48px, 7vw, 96px) clamp(64px, 9vw, 120px); position: relative; z-index: 1; }
.sw .sw-home-title { margin: 0; font-size: clamp(42px, 6.2vw, 80px); line-height: 1; letter-spacing: -.04em; font-weight: 650; text-wrap: balance; }
.sw-home-lead { margin: 22px 0 30px; max-width: 44ch; font-size: clamp(17px, 1.55vw, 20px); line-height: 1.55; color: var(--ink-2, var(--ink)); }
.sw-home .sw-actions { gap: 12px 22px; }
/* the hero's words, one set per plug-in on show: stacked in one cell (as tall as the longest, so nothing below moves) and cross-faded */
.sw-home-says { display: grid; }
.sw-home-say { grid-area: 1 / 1; min-width: 0; align-self: start; opacity: 0; visibility: hidden; transition: opacity .7s ease, visibility 0s .7s; }
.sw-home-say.is-on { opacity: 1; visibility: visible; transition: opacity .9s ease .3s; }
.sw-home-say .sw-home-lead { min-height: 4.65em; }
@media (prefers-reduced-motion: reduce) { .sw-home-say, .sw-home-say.is-on { transition: none; } }
.sw-home-facts { list-style: none; margin: 34px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 14px; color: var(--muted); }
.sw-home-facts li { display: inline-flex; align-items: center; gap: 8px; }
.sw-home-facts li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--sw-accent); }
.sw-home-stage { position: relative; }
.sw-home-media { display: block; border-radius: clamp(22px, 3vw, 36px); padding: clamp(18px, 4vw, 52px) clamp(18px, 4vw, 52px) clamp(92px, 9vw, 120px); background: radial-gradient(110% 90% at 50% 0%, color-mix(in srgb, var(--sw-accent) 30%, transparent), transparent 70%), color-mix(in srgb, var(--ink) 5%, transparent); }
.sw-home-media .sw-img { transition: transform .7s cubic-bezier(.2,.7,.2,1); filter: drop-shadow(0 30px 40px rgba(0,0,0,.18)); }
.sw-home-media:hover .sw-img { transform: translateY(-6px); }
.sw-home-tag { position: absolute; left: clamp(12px, 2vw, 22px); right: clamp(12px, 2vw, 22px); bottom: clamp(12px, 2vw, 22px); display: flex; align-items: center; gap: 14px; padding: 12px 18px 12px 12px; border-radius: 20px; background: color-mix(in srgb, var(--bg, #fff) 82%, transparent); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); box-shadow: 0 10px 30px -12px rgba(0,0,0,.25); }
.sw-home-tag a { flex: 1; min-width: 0; display: grid; text-decoration: none; color: var(--ink) !important; line-height: 1.3; }
.sw-home-tag a strong { font-size: 16px; }
.sw-home-tag a span { font-size: 13.5px; color: var(--muted); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sw-home-tag .sw-price { font-weight: 600; }
.sw-home-wave { position: absolute; inset: auto 0 0 0; height: 120px; pointer-events: none; opacity: .5; }
.sw-home-wave i { position: absolute; inset: 0; width: 200%; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 120' preserveAspectRatio='none'%3E%3Cpath d='M0 60 C 75 10, 75 10, 150 60 S 225 110, 300 60 S 375 10, 450 60 S 525 110, 600 60' fill='none' stroke='%23000' stroke-width='1' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") 0 0 / 50% 100% repeat-x; opacity: .14; animation: sw-drift 26s linear infinite; }
.sw-home-wave i:nth-child(2) { animation-duration: 38s; animation-direction: reverse; opacity: .09; transform-origin: center; scale: 1 .6; }
.sw-home-wave i:nth-child(3) { animation-duration: 54s; opacity: .06; scale: 1 1.3; }
.sw-dark .sw-home-wave i { filter: invert(1); }
@keyframes sw-drift { to { translate: -50% 0; } }

/* ── Listen ── */
.sw-listen-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.vx-sec .sw.sw-listen .vx-head { margin: 0; text-align: left; max-width: none; }
.vx-sec .sw.sw-listen .vx-head .vx-lead { text-align: left; margin: 0; }
.sw-listen .sw-actions { margin-top: 26px; gap: 12px 22px; }
.sw-listen-media { display: block; border-radius: clamp(22px, 3vw, 36px); padding: clamp(18px, 4vw, 56px); background: radial-gradient(110% 90% at 50% 0%, color-mix(in srgb, var(--sw-accent) 30%, transparent), transparent 70%), color-mix(in srgb, var(--ink) 5%, transparent); }
.sw-listen-media .sw-img { filter: drop-shadow(0 30px 40px rgba(0,0,0,.18)); transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.sw-listen-media:hover .sw-img { transform: translateY(-6px); }

/* ── Free products ── */
.sw-free-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 16px; }
.sw-free-item { display: grid; grid-template-columns: 120px minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 14px 20px 14px 14px; border-radius: 22px; background: var(--vx-card-bg, var(--bg, #fff)); border: 1px solid var(--vx-card-line, var(--line)); }
.sw-free-media { display: block; aspect-ratio: 1; border-radius: 14px; background: color-mix(in srgb, var(--sw-accent) 16%, color-mix(in srgb, var(--ink) 4%, transparent)); display: grid; place-items: center; padding: 10px; }
.sw-free-copy h3 { margin: 0 0 4px; font-size: 19px; letter-spacing: -.01em; }
.sw-free-copy h3 a { color: var(--ink) !important; text-decoration: none; }
.sw-free-copy p { margin: 0; font-size: 14.5px; color: var(--muted); }
.sw-free-copy .sw-free-soon { margin-top: 6px; font-size: 12.5px; font-weight: 600; letter-spacing: .02em; color: var(--sw-accent, var(--ink)); }
.sw-free-go { display: flex; align-items: center; gap: 10px; }
.sw-free-go .sw-play { background: transparent; color: var(--ink); border: 1px solid color-mix(in srgb, var(--ink) 18%, transparent); box-shadow: none; }

/* ── Download dialog ── */
.sw-dialog { box-sizing: border-box; width: min(440px, calc(100% - 28px)); padding: 30px; border: 0; border-radius: 26px; background: #fff; color: #17201b; box-shadow: 0 40px 100px -20px rgba(0,0,0,.45); font: inherit; }
.sw-dialog::backdrop { background: rgba(14,18,16,.5); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.sw-dialog[open] { animation: sw-in .3s cubic-bezier(.2,.8,.2,1); }
.sw-dialog h2 { margin: 0 0 8px; font-size: 26px; line-height: 1.15; letter-spacing: -.02em; color: inherit; }
.sw-dialog p { margin: 0 0 18px; font-size: 15px; line-height: 1.5; color: #5d6862; }
.sw-dialog label { display: block; font-size: 13px; font-weight: 600; margin: 0 0 6px; color: #17201b; }
.sw-dialog input[type=email] { box-sizing: border-box; width: 100%; height: 50px; padding: 0 16px; border: 1px solid #cfd6d1; border-radius: 14px; font: inherit; font-size: 16px; color: #17201b; background: #fff; }
.sw-dialog input[type=email]:focus-visible { outline: 3px solid color-mix(in srgb, var(--sw-accent, #2f6b4f) 45%, transparent); border-color: var(--sw-accent, #2f6b4f); }
.sw-dialog-check { display: flex !important; gap: 10px; align-items: flex-start; margin: 14px 0 0 !important; font-weight: 400 !important; font-size: 14px !important; color: #5d6862 !important; cursor: pointer; }
.sw-dialog-check input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: #17201b; }
.sw-dialog-go { all: unset; box-sizing: border-box; cursor: pointer; display: grid; place-items: center; width: 100%; height: 52px; margin-top: 20px; border-radius: 99px; background: #17201b; color: #fff; font-weight: 650; font-size: 16px; transition: background-color .2s; }
.sw-dialog-go:hover { background: #2a3a31; }
.sw-dialog-go:focus-visible { outline: 3px solid var(--sw-accent, #2f6b4f); outline-offset: 3px; }
.sw-dialog-go[disabled] { opacity: .6; cursor: progress; }
.sw-dialog-x { all: unset; cursor: pointer; position: absolute; right: 14px; top: 14px; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: #5d6862; font-size: 16px; }
.sw-dialog-x:hover, .sw-dialog-x:focus-visible { background: #eef1ee; color: #17201b; }
.sw-dialog-err { margin: 10px 0 0 !important; color: #c0392b !important; font-size: 14px !important; }
.sw-dialog-err:empty { display: none; }
.sw-dialog-fine { margin: 14px 0 0 !important; font-size: 12.5px !important; text-align: center; }
.sw-dialog-hp { position: absolute; left: -9999px; }
.sw-dialog-done { text-align: center; }
.sw-dialog-done i { display: grid; place-items: center; width: 60px; height: 60px; margin: 0 auto 16px; border-radius: 50%; background: #e3f4ea; color: #1a8f56; font-style: normal; font-size: 26px; }
.sw-dialog-done a { color: #17201b; font-weight: 600; }

/* ═══ The Clear look ══════════════════════════════════════════════════════
 * One accent, soft panels behind every picture, hairlines instead of boxes,
 * sentence-case pills. Colours come from the site palette: --ink is the text
 * colour, --th-accent the brand colour, --sw-accent each product's own tint.
 */
.sw-clean, body:has(.sw-mark.sw-clean) main {
  --sw-bg: none;
  --sw-paper: color-mix(in srgb, var(--th-accent, #2f6b4f) 5%, #faf9f6);
  --sw-panel: color-mix(in srgb, var(--sw-accent) 13%, #f3f2ed);
  --sw-hair: color-mix(in srgb, var(--ink) 11%, transparent);
  --bg: #fff;
  --ink-2: color-mix(in srgb, var(--ink) 78%, #fff);
  --muted: color-mix(in srgb, var(--ink) 56%, #fff);
  --line: var(--sw-hair);
  --vx-card-bg: #fff;
  --vx-card-line: var(--sw-hair);
  --vx-card-shadow: none;
  --vx-radius: 24px;
  background-color: var(--bg);
  color: var(--ink);
}
.sw-clean, body:has(.sw-mark.sw-clean) main { --sw-accent: var(--vx-accent, var(--th-accent, #2f6b4f)); }
/* A product's own tint has to be worked out where its accent is set. */
.sw-clean [style*="--sw-accent"] { --sw-panel: color-mix(in srgb, var(--sw-accent) 13%, #f3f2ed); }
.sw-alt.sw-clean { background-color: var(--sw-paper); }
.sw-clean.sw-pad { padding: clamp(56px, 7.5vw, 104px) 0; }
.sw.sw-clean :is(h1, h2, h3) { color: var(--ink); }
.sw.sw-clean .vx-head, .vx-sec .sw.sw-clean .vx-head { max-width: 640px; margin: 0 0 clamp(28px, 4vw, 44px); text-align: left; }
.sw.sw-clean .vx-head .vx-lead, .vx-sec .sw.sw-clean .vx-head .vx-lead { margin: 0; text-align: left; }
.sw.sw-clean .vx-h2 { margin: 0 0 12px; font-size: clamp(30px, 3.6vw, 46px); line-height: 1.06; letter-spacing: -.03em; font-weight: 650; text-wrap: balance; }
.sw.sw-clean .vx-lead { font-size: clamp(16.5px, 1.4vw, 19px); line-height: 1.55; color: var(--muted); }
.sw.sw-clean .bcos-kicker { margin: 0 0 14px; font-size: 13px; font-weight: 650; letter-spacing: .1em; text-transform: uppercase; color: color-mix(in srgb, var(--sw-accent) 70%, var(--ink)); }
.sw.sw-clean .bcos-kicker .bcos-dot { display: none; }
.sw.sw-clean .vx-more { margin-top: clamp(24px, 3vw, 36px); text-align: left; }
.sw.sw-clean .vx-more .bcos-btn, .sw.sw-clean .sw-rel ~ p .bcos-btn { min-height: 44px; padding: 0; border: 0; border-radius: 6px; background: none; gap: 7px; }
.sw.sw-clean .vx-more .bcos-btn::after, .sw.sw-clean .sw-rel ~ p .bcos-btn::after { content: '→'; transition: transform .2s; }
.sw.sw-clean .vx-more .bcos-btn:hover::after, .sw.sw-clean .sw-rel ~ p .bcos-btn:hover::after { transform: translateX(4px); }
.sw.sw-clean a:not(.bcos-btn):not(.sw-dock-go) { color: var(--ink); }
.sw-serif :is(.sw-home-title, .sw-hero-title, .sw-store-title, .sw-band-title, .vx-h2, .sw-feature-copy h2, .sw-stats dt), .sw-serif.sw-close h2, body:has(.sw-mark.sw-serif) main :is(h1, .vx-h2) { font-family: 'Fraunces', 'Iowan Old Style', Georgia, serif; font-weight: 480 !important; letter-spacing: -.025em !important; font-optical-sizing: auto; }

/* Buttons */
.sw.sw-clean .bcos-btn { min-height: 48px; padding: 0 26px; border-radius: 99px; font-size: 16px; font-weight: 600; letter-spacing: 0; text-transform: none; box-shadow: none; transition: background-color .2s, border-color .2s, color .2s, transform .2s; }
.sw.sw-clean .bcos-btn:active { transform: scale(.98); }
.sw.sw-clean .bcos-btn-ink, .sw.sw-clean .sw-btn-buy { background: var(--ink); border: 1px solid var(--ink); color: #fff; }
.sw.sw-clean .bcos-btn-ink:hover, .sw.sw-clean .sw-btn-buy:hover { background: color-mix(in srgb, var(--ink) 82%, var(--th-accent, #fff)); border-color: transparent; color: #fff; }
.sw.sw-clean .sw-btn-ghost, .sw.sw-clean .bcos-btn:not(.bcos-btn-ink):not(.sw-btn-buy) { background: transparent; border: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); color: var(--ink); }
.sw.sw-clean .sw-btn-ghost:hover, .sw.sw-clean .bcos-btn:not(.bcos-btn-ink):not(.sw-btn-buy):hover { border-color: var(--ink); background: transparent; color: var(--ink); }
.sw-clean .sw-btn-price { opacity: .7; font-weight: 500; }
.sw-clean .sw-badge { padding: 5px 11px; background: #fff; color: var(--ink) !important; font-size: 11px; letter-spacing: .08em; box-shadow: 0 1px 0 var(--sw-hair), 0 4px 14px -6px rgba(0,0,0,.2); }
.sw-clean .sw-chip { border-color: var(--sw-hair); background: none; color: var(--ink-2); }
.sw-clean .sw-stars { font-size: 13px; }
.sw-clean .sw-stars span { background: var(--ink); }
.sw-clean .has-bg::before { opacity: .16; }

/* Cards: a soft panel, then words — no boxes */
.sw-clean .sw-card { overflow: visible; background: none; border: 0; border-radius: 0; box-shadow: none; }
.sw-clean .sw-card:hover { transform: none; }
.sw-clean .sw-card-top { border-radius: var(--vx-radius); overflow: hidden; background: var(--sw-panel); transition: transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s; }
.sw-clean .sw-card:hover .sw-card-top { transform: translateY(-5px); box-shadow: 0 26px 44px -26px color-mix(in srgb, var(--sw-accent) 70%, rgba(0,0,0,.5)); }
.sw-clean .sw-card-media { aspect-ratio: 4 / 3; background: none; }
.sw-clean .sw-card-media .sw-img { padding: 11% 9%; filter: drop-shadow(0 16px 22px rgba(0,0,0,.16)); }
.sw-clean .sw-card .vx-card-body { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 14px; align-items: baseline; padding: 16px 4px 0; }
.sw-clean .sw-card-k { display: none; }
.sw-clean .sw-card .vx-card-title { font-size: 19px; font-weight: 650; letter-spacing: -.015em; }
.sw-clean .sw-card .vx-card-summary { grid-column: 1 / -1; font-size: 15px; line-height: 1.45; color: var(--muted); }
.sw-clean .sw-card-foot { display: contents; }
.sw-clean .sw-card .sw-price { grid-column: 2; grid-row: 1; font-size: 16px; font-weight: 600; }
.sw-clean .sw-card .sw-price s { font-weight: 400; }
.sw-clean .sw-card .sw-stars { grid-column: 1 / -1; margin-top: 6px; }
.sw-clean .sw-card.is-free .sw-price strong { background: color-mix(in srgb, var(--th-accent, var(--sw-accent)) 16%, #fff); color: color-mix(in srgb, var(--th-accent, var(--sw-accent)) 60%, var(--ink)); font-size: 12.5px; }
.sw-clean .sw-card .sw-play { background: #fff; color: var(--ink); box-shadow: 0 6px 18px -4px rgba(0,0,0,.22); }
.sw-clean .sw-card .sw-play.is-playing { background: var(--ink); color: #fff; }

/* Bundles */
.sw-clean .sw-bundle { border: 0; border-radius: var(--vx-radius); background: var(--sw-paper); }
.sw-clean .sw-bundle-media { aspect-ratio: 16 / 9; background: color-mix(in srgb, var(--ink) 7%, var(--sw-paper)); }
.sw-clean .sw-catalog .sw-bundle-media { aspect-ratio: auto; min-height: 250px; }
.sw-clean .sw-bundle .vx-card-body { padding: clamp(22px, 3vw, 40px); gap: 10px; }
.sw-clean .sw-bundle .sw-card-k { display: block; font-size: 12.5px; letter-spacing: .08em; }
.sw-clean .sw-bundle .vx-card-title { font-size: clamp(24px, 2.6vw, 32px); font-weight: 650; }
.sw-clean .sw-bundle .vx-card-summary { color: var(--muted); font-size: 16px; }
.sw-clean .sw-ticks { margin: 6px 0 4px; gap: 6px; }
.sw-clean .sw-ticks li { padding: 5px 12px; background: #fff; border-color: transparent; font-size: 13.5px; }
.sw-clean .sw-ticks li.is-extra { background: none; border: 1px dashed color-mix(in srgb, var(--ink) 22%, transparent); }
.sw-clean .sw-bundle-buy { border-top: 0; padding-top: 14px; }
.sw-clean .sw-reg { font-size: 13.5px; }
.sw-clean .sw-once strong { font-size: 28px; }
.sw-clean .sw-save { color: color-mix(in srgb, var(--th-accent, #1a9f5c) 70%, var(--ink)); }

/* Reviews, assurances, trial band */
.sw-clean .sw-review { border: 0; background: var(--sw-paper); padding: 28px; gap: 12px; }
.sw-alt.sw-clean .sw-review { background: #fff; }
.sw-clean .sw-review-t { font-size: 18px; }
.sw-clean .sw-review footer { border-top: 0; padding-top: 4px; }
.sw-clean .sw-verified { color: color-mix(in srgb, var(--th-accent, #1a9f5c) 70%, var(--ink)); }
.sw-clean .sw-carousel-nav { justify-content: flex-start; margin-top: 14px; }
.sw.sw-clean .sw-carousel-nav .bcos-btn { min-height: 44px; width: 44px; padding: 0; }
.sw-clean.sw-assure { padding: 44px 0; border-block: 1px solid var(--sw-hair); }
.sw-clean .sw-assure-list i { color: var(--ink); font-size: 18px; }
.sw-clean .sw-assure-list strong { font-size: 15px; }
.sw-clean.sw-trial { background-color: var(--sw-paper); }
.sw-clean .sw-trial-in { padding-block: clamp(64px, 9vw, 120px); }
.vx-sec .sw.sw-clean.sw-trial .vx-head { margin: 0 auto 26px; text-align: center; }
.vx-sec .sw.sw-clean.sw-trial .vx-head .vx-lead { text-align: center; }
.vx-sec .sw.sw-clean.sw-trial-form .vx-head { text-align: left; margin: 0; }
.vx-sec .sw.sw-clean.sw-trial-form .vx-head .vx-lead { text-align: left; }
.sw-clean .sw-trial-box { border: 0; background: #fff; border-radius: var(--vx-radius); box-shadow: 0 30px 60px -40px rgba(0,0,0,.35); }
.sw-clean .sw-works li, .sw-clean .sw-reqs .vx-w-box, .sw-clean .sw-grid li { border: 0; background: var(--sw-paper); border-radius: 18px; }
.sw-alt.sw-clean :is(.sw-works li, .sw-reqs .vx-w-box, .sw-grid li) { background: #fff; }

/* Showcase bands */
.sw-clean.sw-band + .sw-band { border-top: 0; }
.sw.sw-clean .sw-band-title { font-size: clamp(38px, 5vw, 68px); line-height: 1; letter-spacing: -.035em; font-weight: 650; }
.sw-clean .sw-band-tag { color: var(--muted); }
.sw-clean .sw-band-media::before { display: none; }
.sw-clean.sw-band-right .sw-band-media, .sw-clean.sw-band-left .sw-band-media { width: 100%; margin-left: 0; padding: clamp(18px, 4vw, 56px); border-radius: clamp(22px, 3vw, 36px); background: var(--sw-panel); box-sizing: border-box; }
.sw-clean .sw-band-media .sw-img { filter: drop-shadow(0 30px 40px rgba(0,0,0,.18)); }
.sw-clean.sw-band-tall .sw-band-in { min-height: 0; }

/* Hero, listen, free */
.sw-clean.sw-home { background: linear-gradient(180deg, var(--sw-paper), #fff); }
.sw-clean .sw-home-media, .sw-clean .sw-listen-media { background: var(--sw-panel); }
.sw-clean .sw-player { border-color: var(--sw-hair); background: #fff; }
.sw-clean .sw-free-item { border: 0; background: #fff; }
.sw-clean .sw-free-media { background: var(--sw-panel); }

/* Product page */
.sw-clean.sw-hero { background: linear-gradient(180deg, var(--sw-paper), #fff 85%); }
.sw-clean .sw-hero-in { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); justify-items: stretch; align-items: center; text-align: left; padding-block: clamp(40px, 6vw, 88px); }
.sw-clean .sw-hero-copy { justify-items: start; max-width: none; }
.sw.sw-clean .sw-hero-title { font-size: clamp(44px, 6vw, 84px); line-height: .98; letter-spacing: -.04em; font-weight: 650; }
.sw-clean .sw-hero-tag { margin: 18px 0 20px; max-width: 26ch; font-size: clamp(19px, 2vw, 25px); color: var(--ink-2); }
.sw-clean .sw-hero-rating { margin: 0 0 20px; }
.sw-clean.sw-hero .sw-actions, .sw-clean.sw-hero .sw-hero-meta { justify-content: flex-start; }
.sw-hero-terms { margin: 14px 0 0; font-size: 14px; color: var(--muted); }
.sw-clean.sw-hero .sw-player { margin-inline: 0; }
.sw-clean .sw-hero-media { width: 100%; margin: 0; box-sizing: border-box; padding: clamp(18px, 4vw, 56px); border-radius: clamp(22px, 3vw, 36px); background: var(--sw-panel); }
.sw-clean .sw-hero-media::before { display: none; }
.sw-clean .sw-hero-media .sw-img { filter: drop-shadow(0 30px 40px rgba(0,0,0,.18)); }
.sw-clean .sw-zoom-hint { background: rgba(255,255,255,.86); color: var(--ink); }
.sw-clean.sw-intro { padding-top: clamp(28px, 4vw, 56px); }
.sw-clean .sw-intro-text { max-width: 820px; margin: 0; text-align: left; font-size: clamp(20px, 2.3vw, 29px); line-height: 1.42; }
.sw-clean .sw-stats { text-align: left; gap: 20px 40px; padding-top: clamp(28px, 4vw, 48px); margin-top: clamp(32px, 5vw, 56px); border-top: 1px solid var(--sw-hair); }
.sw-clean .sw-stats dt { font-size: clamp(38px, 4.6vw, 60px); background: none; -webkit-background-clip: border-box; background-clip: border-box; color: var(--ink); font-weight: 650; }
.sw-clean .sw-feature-in { padding-block: clamp(40px, 6vw, 84px); }
.sw.sw-clean .sw-feature-copy h2 { font-size: clamp(28px, 3.4vw, 44px); line-height: 1.08; font-weight: 650; text-wrap: balance; }
.sw-clean .sw-feature-copy p { color: var(--muted); }
.sw-clean .sw-feature-media, .sw-clean .sw-film-stage, .sw-clean .sw-shots figure { border: 0; box-shadow: none; background: var(--sw-panel); border-radius: clamp(20px, 2.6vw, 32px); }
.sw-clean .sw-film-thumb { background: var(--sw-panel); }
.sw-clean .sw-film-thumb.is-on { border-color: var(--ink); }
.sw-clean .sw-grid strong { font-size: 16px; }
.sw-clean .sw-tag-new { background: #e3f4ea; color: #17794a; }
.sw-clean .sw-tag-improved { background: #e6eefc; color: #2757b5; }
.sw-clean .sw-tag-fixed { background: #fbf0d3; color: #7d5a00; }
.sw-clean .sw-faq summary { font-size: 17px; padding: 18px 0; }
.sw-clean .sw-faq p { color: var(--muted); }
.sw-clean.sw-close { margin: 0 auto clamp(40px, 6vw, 72px); width: min(1120px, calc(100% - 2.5rem)); padding: clamp(48px, 7vw, 88px) clamp(16px, 4vw, 48px); border-radius: clamp(24px, 3vw, 40px); background: var(--sw-panel); background-image: none; }
.sw-clean.sw-close .bcos-wrap { width: 100%; }
.sw.sw-clean.sw-close h2 { font-size: clamp(34px, 4.6vw, 60px); font-weight: 650; letter-spacing: -.035em; }
.sw-clean .sw-close-price .sw-badge { box-shadow: none; }
.sw-clean.sw-sticky { background: rgba(255,255,255,.84) !important; border-top: 1px solid var(--sw-hair); }
.sw.sw-clean.sw-sticky .bcos-btn { min-height: 40px; padding-inline: 18px; font-size: 15px; }

/* The rest of the site under Clear: the same headings and the same primary button
   on pages this template does not draw (help, forms, cart, sign-in). */
body.sw-site-serif main :is(h1, h2), body.sw-site-serif.bcos-auth h1 { font-family: 'Fraunces', 'Iowan Old Style', Georgia, serif; font-weight: 480; letter-spacing: -.025em; }
body.sw-site-clean .bcos-btn-ink { background: var(--ink); border-color: var(--ink); color: #fff; }
body.sw-site-clean .bcos-btn-ink:hover { background: color-mix(in srgb, var(--ink) 82%, var(--th-accent, #fff)); border-color: transparent; color: #fff; }
body.sw-site-clean .bcos-page-hero .bcos-display { font-size: clamp(38px, 5.4vw, 64px); line-height: 1.02; }

/* Engine list pages (bundles, release notes, reviews) under Clear */
body:has(.sw-mark.sw-clean) main .vx-card:not(.sw-card):not(.sw-bundle):not(.sw-review) { border-color: var(--sw-hair); box-shadow: none; }

/* ═══ Video demos ════════════════════════════════════════════════════════ */
.sw-card-vid { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .35s; pointer-events: none; }
.is-vid-on .sw-card-vid { opacity: 1; }
.sw-card-top .sw-play, .sw-card-top .sw-fav, .sw-card-media .sw-badge { z-index: 2; }
.sw-watch-row { margin: 16px 0 0; }
.sw-watch { display: inline-flex; align-items: center; gap: 10px; min-height: 40px; font-weight: 600; text-decoration: none; color: var(--ink) !important; }
.sw-watch .sw-play-ic { width: 0; margin: 0; border-width: 6px 0 6px 10px; }
.sw-watch:hover { text-decoration: underline; text-underline-offset: 4px; }
.sw-watch:focus-visible { outline: 3px solid var(--sw-accent); outline-offset: 3px; border-radius: 6px; }
.sw-hero .sw-watch-row { text-align: inherit; }
.sw-video.is-native { background: #0b0c10; }
.sw-video.is-native video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #0b0c10; }
.sw-videos:has(> .is-native:only-child) { grid-template-columns: minmax(0, 1fr); }
.sw-vdlg { box-sizing: border-box; width: min(1200px, calc(100% - 24px)); padding: 0; border: 0; border-radius: 22px; background: #000; overflow: visible; box-shadow: 0 40px 120px -20px rgba(0,0,0,.6); }
.sw-vdlg::backdrop { background: rgba(8,10,9,.78); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.sw-vdlg[open] { animation: sw-in .3s cubic-bezier(.2,.8,.2,1); }
.sw-vdlg-box { aspect-ratio: 16 / 9; border-radius: 22px; overflow: hidden; }
.sw-vdlg-box video, .sw-vdlg-box iframe { display: block; width: 100%; height: 100%; border: 0; background: #000; }
.sw-vdlg-x { all: unset; box-sizing: border-box; cursor: pointer; position: absolute; right: 0; top: -48px; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.16); color: #fff; font-size: 16px; }
.sw-vdlg-x:hover, .sw-vdlg-x:focus-visible { background: rgba(255,255,255,.3); }

/* ═══ Customer area (/my-account) ════════════════════════════════════════ */
.sw-acct { padding: clamp(36px, 5vw, 72px) 0 clamp(56px, 8vw, 104px); }
.sw-acct .bcos-wrap { max-width: 1040px; }
.sw-acct-head { display: flex; align-items: center; gap: 18px; margin: 0 0 26px; }
.sw-acct-avatar { flex: none; width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--th-accent, var(--sw-accent)) 18%, #fff); color: var(--ink); font-weight: 650; font-size: 22px; letter-spacing: .02em; }
.sw .sw-acct-title { margin: 0; font-size: clamp(30px, 4vw, 46px); line-height: 1.05; letter-spacing: -.03em; }
.sw-acct-head p { margin: 6px 0 0; color: var(--muted); font-size: 15px; }
.sw-acct-ok { color: color-mix(in srgb, var(--th-accent, #1a9f5c) 75%, var(--ink)); font-size: 13.5px; white-space: nowrap; }
.sw-acct-out { margin-left: auto; align-self: flex-start; }
.sw-acct-out::after { content: none; }
.sw-acct-tabs { margin: 0 0 28px; }
.sw-acct-tabs a { box-sizing: border-box; min-height: 40px; padding: 0 18px; display: inline-flex; align-items: center; gap: 6px; border-radius: 99px; font-size: 15px; font-weight: 600; color: var(--muted) !important; text-decoration: none; }
.sw-acct-tabs a span { font-size: 12px; font-weight: 500; opacity: .6; }
.sw-acct-tabs a:hover { color: var(--ink) !important; }
.sw-acct-tabs a.is-on { background: var(--bg, #fff); color: var(--ink) !important; box-shadow: 0 1px 3px rgba(0,0,0,.14); }
.sw-acct-tabs a:focus-visible { outline: 3px solid var(--sw-accent); outline-offset: 2px; }
.sw-acct-flash { margin: -8px 0 24px; padding: 14px 18px; border-radius: 14px; background: color-mix(in srgb, var(--th-accent, #1a9f5c) 12%, #fff); font-size: 15px; }
.sw-acct-flash.is-err { background: #fdecea; color: #8a1f17; }
.sw-acct-callout, .sw-acct-empty { padding: clamp(28px, 4vw, 44px); border-radius: 24px; background: var(--sw-paper, #f6f5f1); }
.sw .sw-acct-callout h2, .sw .sw-acct-empty h2 { margin: 0 0 10px; font-size: clamp(22px, 2.4vw, 28px); letter-spacing: -.02em; }
.sw-acct-callout p, .sw-acct-empty p { max-width: 60ch; margin: 0 0 18px; color: var(--muted); line-height: 1.55; }
.sw-acct-fine { margin: 14px 0 0 !important; font-size: 13.5px; color: var(--muted); }
.sw-acct-fine a, .sw-own-new a, .sw-own-links a { color: var(--ink) !important; }
.sw-acct-stats { display: flex; flex-wrap: wrap; gap: 12px 40px; margin: 0 0 26px; }
.sw-acct-stats div { display: flex; align-items: baseline; gap: 8px; }
.sw-acct-stats dt { font-size: 28px; font-weight: 650; letter-spacing: -.02em; color: var(--ink); }
.sw-acct-stats dd { margin: 0; color: var(--muted); font-size: 14.5px; }
.sw-own-list { display: grid; gap: 16px; }
.sw-own { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px; padding: 16px; border-radius: 24px; border: 1px solid var(--sw-hair, var(--line)); background: var(--bg, #fff); }
.sw-own-pic { position: relative; border-radius: 16px; background: var(--sw-panel, #f1f0eb); display: grid; place-items: center; padding: 14px; align-self: start; aspect-ratio: 4 / 3; }
.sw-own-pic .sw-img { filter: drop-shadow(0 10px 16px rgba(0,0,0,.16)); }
.sw-own-pic .sw-play { position: absolute; right: 10px; bottom: 10px; width: 38px; height: 38px; background: #fff; color: var(--ink); }
.sw-own-main { min-width: 0; padding: 4px 4px 4px 0; display: grid; gap: 12px; align-content: start; }
.sw-own-top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 20px; align-items: flex-start; }
.sw .sw-own-top h2 { margin: 0; font-size: 24px; letter-spacing: -.02em; }
.sw-own-top h2 a { color: var(--ink) !important; text-decoration: none; }
.sw-own-meta { margin: 4px 0 0; font-size: 14px; color: var(--muted); }
.sw-own-acts .bcos-btn { gap: 8px; }
.sw-own-off { font-size: 14px; color: #8a1f17; }
.sw-own-new { margin: 0; font-size: 14.5px; color: var(--ink-2); }
.sw-own-new span { display: inline-block; margin-right: 6px; padding: 2px 8px; border-radius: 6px; background: #e3f4ea; color: #17794a; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.sw-own-key { padding: 12px 14px; border-radius: 14px; background: var(--sw-paper, #f6f5f1); }
.sw-own-key-top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-size: 14px; }
.sw-own-key-top > span { color: var(--muted); }
.sw-own-key code { font: 600 15px/1.2 ui-monospace, Menlo, Consolas, monospace; letter-spacing: .04em; padding: 7px 11px; border-radius: 9px; background: #fff; cursor: copy; user-select: all; }
.sw-own-key code.is-copied::after { content: ' ✓ copied'; font-family: inherit; font-weight: 400; color: #1a9f5c; letter-spacing: 0; }
.sw-own-key code:focus-visible { outline: 3px solid var(--sw-accent); outline-offset: 2px; }
.sw-own-key em { margin-left: auto; font-style: normal; color: var(--muted); }
.sw-own-key.is-revoked code { text-decoration: line-through; opacity: .5; }
.sw-own-devs { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 4px; }
.sw-own-devs li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 2px; font-size: 14px; border-top: 1px solid var(--sw-hair, var(--line)); }
.sw-own-devs form { margin: 0; }
.sw-own-devs .sw-link { font-size: 13.5px; color: var(--muted); min-height: 32px; }
.sw-own-devs .sw-link:hover { color: #b42332; }
.sw-own-links { margin: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 14px; }
.sw-acct-more { margin-top: clamp(40px, 6vw, 72px); }
.sw .sw-acct-h { margin: 0 0 18px; font-size: 22px; letter-spacing: -.02em; }
.sw-acct-orders { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--sw-hair, var(--line)); }
.sw-acct-orders li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; align-items: center; gap: 10px 22px; padding: 16px 4px; border-bottom: 1px solid var(--sw-hair, var(--line)); }
.sw-acct-orders li div { min-width: 0; display: grid; gap: 2px; }
.sw-acct-orders li div span { font-size: 14px; color: var(--muted); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sw-acct-orders .sw-more { min-height: 36px; }
.sw-own-new span.is-old { background: #eef0ee; color: #4b544f; }
.sw-acct-pill { padding: 3px 10px; border-radius: 99px; font-size: 12.5px; font-weight: 600; background: #eef0ee; color: #4b544f; }
.sw-acct-pill:is(.is-paid, .is-fulfilled, .is-delivered) { background: #e3f4ea; color: #17794a; }
.sw-acct-pill:is(.is-pending, .is-awaiting) { background: #fbf0d3; color: #7d5a00; }
.sw-acct-pill:is(.is-refunded, .is-cancelled) { background: #fdecea; color: #8a1f17; }
.sw-acct-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 18px; align-items: start; }
.sw-acct-card { padding: clamp(22px, 3vw, 32px); border-radius: 24px; background: var(--sw-paper, #f6f5f1); }
.sw-acct-card form { display: grid; gap: 14px; }
.sw-acct-card label { display: grid; gap: 6px; font-size: 13.5px; font-weight: 600; color: var(--ink); }
.sw-acct-card label small { font-weight: 400; color: var(--muted); }
.sw-acct-card input:not([type=checkbox]) { box-sizing: border-box; width: 100%; height: 48px; padding: 0 14px; border: 1px solid color-mix(in srgb, var(--ink) 16%, transparent); border-radius: 13px; background: #fff; font: inherit; font-size: 16px; color: var(--ink); }
.sw-acct-card input:disabled { background: transparent; color: var(--muted); }
.sw-acct-card input:focus-visible { outline: 3px solid color-mix(in srgb, var(--sw-accent) 45%, transparent); border-color: var(--sw-accent); }
.sw-acct-card .sw-acct-fine { margin: -6px 0 0 !important; }
.sw-acct-check { display: flex !important; align-items: center; gap: 10px; font-weight: 400 !important; font-size: 15px !important; }
.sw-acct-check input { width: 18px; height: 18px; accent-color: var(--ink); }
.sw-acct-card .bcos-btn { justify-self: start; }
@media (max-width: 700px) {
  .sw-own { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .sw-own-pic { aspect-ratio: 16 / 9; }
  .sw-acct-orders li { grid-template-columns: minmax(0, 1fr) auto; }
  .sw-acct-orders li .sw-acct-pill { grid-row: 2; justify-self: start; }
  .sw-acct-head { flex-wrap: wrap; }
  .sw-acct-out { margin-left: 0; order: 3; flex-basis: 100%; min-height: 0; }
}

/* ═══ Help chat (every public page) ══════════════════════════════════════ */
.sw-chat-btn { all: unset; box-sizing: border-box; position: fixed; right: max(18px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom)); z-index: 90; display: inline-flex; align-items: center; gap: 9px; height: 52px; padding: 0 20px 0 16px; border-radius: 99px; background: var(--ink, #16241c); color: #fff; font: 600 15px/1 var(--font, system-ui, sans-serif); cursor: pointer; box-shadow: 0 14px 34px -10px rgba(0,0,0,.45); transition: transform .2s, box-shadow .2s; -webkit-tap-highlight-color: transparent; }
.sw-chat-btn:hover { transform: translateY(-2px); box-shadow: 0 18px 40px -10px rgba(0,0,0,.5); }
.sw-chat-btn:focus-visible { outline: 3px solid var(--th-accent, #2f6b4f); outline-offset: 3px; }
.sw-chat-ic { width: 20px; height: 20px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H9l-5 4v-4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H9l-5 4v-4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z'/%3E%3C/svg%3E") center / contain no-repeat; }
.sw-chat-btn.is-open .sw-chat-btn-t { display: none; }
.sw-chat-btn.is-open { width: 52px; padding: 0; justify-content: center; }
.sw-chat-dot { position: absolute; top: 6px; right: 6px; width: 11px; height: 11px; border-radius: 50%; background: #e5484d; box-shadow: 0 0 0 2px #fff; }
.sw-chat-dot[hidden] { display: none; }
body.sw-dock-open .sw-chat-btn, body.sw-dock-open .sw-chat { bottom: calc(max(14px, env(safe-area-inset-bottom)) + 84px); }
.sw-chat { position: fixed; right: max(18px, env(safe-area-inset-right)); bottom: calc(max(18px, env(safe-area-inset-bottom)) + 64px); z-index: 91; width: min(380px, calc(100vw - 24px)); height: min(600px, calc(100vh - 120px)); height: min(600px, calc(100dvh - 120px)); display: flex; flex-direction: column; border-radius: 24px; background: #fff; color: #18201b; box-shadow: 0 40px 90px -24px rgba(0,0,0,.42), 0 0 0 1px rgba(0,0,0,.06); overflow: hidden; opacity: 0; transform: translateY(12px) scale(.98); transform-origin: bottom right; transition: opacity .22s, transform .22s; font: 15px/1.45 var(--font, system-ui, sans-serif); }
.sw-chat[hidden] { display: none; }
.sw-chat.is-on { opacity: 1; transform: none; }
.sw-chat-h { display: flex; align-items: center; gap: 10px; padding: 16px 14px 14px 20px; background: var(--ink, #16241c); color: #fff; }
.sw-chat-h div { flex: 1; min-width: 0; display: grid; }
.sw-chat-h strong { font-size: 16px; }
.sw-chat-h span { font-size: 12.5px; opacity: .72; }
.sw-chat-h span::before { content: ''; display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: #5ad38a; vertical-align: 1px; }
.sw-chat-x { all: unset; box-sizing: border-box; cursor: pointer; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: rgba(255,255,255,.8); }
.sw-chat-x:hover, .sw-chat-x:focus-visible { background: rgba(255,255,255,.14); color: #fff; }
.sw-chat-log { flex: 1; overflow-y: auto; padding: 16px 14px 6px; display: flex; flex-direction: column; gap: 10px; overscroll-behavior: contain; background: #fafaf7; }
.sw-msg { display: grid; gap: 6px; max-width: 86%; justify-items: start; }
.sw-msg-b { padding: 10px 14px; border-radius: 18px 18px 18px 6px; background: #fff; box-shadow: 0 1px 0 rgba(0,0,0,.06), 0 0 0 1px rgba(0,0,0,.05); white-space: normal; overflow-wrap: anywhere; }
.sw-msg.is-visitor { align-self: flex-end; justify-items: end; }
.sw-msg.is-visitor .sw-msg-b { background: var(--ink, #16241c); color: #fff; border-radius: 18px 18px 6px 18px; box-shadow: none; }
.sw-msg.is-staff .sw-msg-b { background: color-mix(in srgb, var(--th-accent, #2f6b4f) 12%, #fff); }
.sw-msg.is-system { align-self: center; max-width: 92%; justify-items: center; text-align: center; }
.sw-msg.is-system .sw-msg-b { background: none; box-shadow: none; font-size: 13px; color: #6a736e; padding: 4px 8px; }
.sw-msg-who { font-size: 12px; color: #6a736e; padding-left: 4px; }
.sw-msg-link { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 14px; border-radius: 99px; background: #fff; color: #18201b !important; font-size: 13.5px; font-weight: 600; text-decoration: none; box-shadow: 0 0 0 1px rgba(0,0,0,.1); }
.sw-msg-link::after { content: '→'; }
.sw-msg-link:hover { box-shadow: 0 0 0 1px #18201b; }
.sw-msg-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.sw-msg-chips button { all: unset; box-sizing: border-box; cursor: pointer; min-height: 34px; padding: 0 13px; display: inline-flex; align-items: center; border-radius: 99px; border: 1px solid rgba(0,0,0,.14); background: #fff; font-size: 13.5px; color: #18201b; text-align: left; }
.sw-msg-chips button:hover { border-color: #18201b; }
.sw-msg-chips button.is-human { background: #18201b; color: #fff; border-color: #18201b; }
.sw-msg-chips button:focus-visible, .sw-msg-link:focus-visible, .sw-chat-link:focus-visible { outline: 3px solid var(--th-accent, #2f6b4f); outline-offset: 2px; }
.sw-chat-typing { display: flex; gap: 4px; padding: 4px 22px 8px; background: #fafaf7; }
.sw-chat-typing[hidden] { display: none; }
.sw-chat-typing i { width: 7px; height: 7px; border-radius: 50%; background: #9aa39e; animation: sw-blink 1.2s infinite; }
.sw-chat-typing i:nth-child(2) { animation-delay: .2s; }
.sw-chat-typing i:nth-child(3) { animation-delay: .4s; }
@keyframes sw-blink { 0%, 80%, 100% { opacity: .25; } 40% { opacity: 1; } }
.sw-chat-f { display: flex; align-items: flex-end; gap: 8px; padding: 10px 12px; border-top: 1px solid rgba(0,0,0,.07); background: #fff; }
.sw-chat-f[hidden] { display: none; }
.sw-chat-f textarea { flex: 1; box-sizing: border-box; min-height: 44px; max-height: 120px; padding: 11px 14px; border: 1px solid rgba(0,0,0,.14); border-radius: 22px; resize: none; font: inherit; color: inherit; background: #fff; }
.sw-chat-f textarea:focus-visible { outline: 3px solid color-mix(in srgb, var(--th-accent, #2f6b4f) 40%, transparent); border-color: var(--th-accent, #2f6b4f); }
.sw-chat-f button { all: unset; box-sizing: border-box; cursor: pointer; flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--ink, #16241c); color: #fff; }
.sw-chat-f button i { width: 18px; height: 18px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 11l18-8-8 18-2-8-8-2z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 11l18-8-8 18-2-8-8-2z'/%3E%3C/svg%3E") center / contain no-repeat; }
.sw-chat-f button:focus-visible { outline: 3px solid var(--th-accent, #2f6b4f); outline-offset: 2px; }
.sw-chat-human { display: grid; gap: 8px; padding: 14px; border-top: 1px solid rgba(0,0,0,.07); background: #fff; }
.sw-chat-human[hidden] { display: none; }
.sw-chat-human p { margin: 0; font-size: 13.5px; color: #4d5651; }
.sw-chat-human input { box-sizing: border-box; height: 44px; padding: 0 14px; border: 1px solid rgba(0,0,0,.14); border-radius: 12px; font: inherit; }
.sw-chat-human button[type=submit] { all: unset; box-sizing: border-box; cursor: pointer; height: 46px; border-radius: 99px; display: grid; place-items: center; background: var(--ink, #16241c); color: #fff; font-weight: 600; }
.sw-chat-human button[disabled] { opacity: .6; }
.sw-chat-err { color: #b42332 !important; }
.sw-chat-err:empty { display: none; }
.sw-chat-foot { display: flex; justify-content: space-between; padding: 0 16px 10px; background: #fff; }
.sw-chat-link { all: unset; cursor: pointer; font-size: 13px; color: #4d5651; text-decoration: underline; text-underline-offset: 3px; padding: 4px 2px; }
.sw-chat-link[hidden] { display: none; }
@media (max-width: 520px) {
  .sw-chat { right: 0; left: 0; bottom: 0 !important; width: 100%; height: 100%; height: 100dvh; border-radius: 0; }
  body.sw-chat-open { overflow: hidden; }
  body.sw-chat-open .sw-chat-btn { display: none; }
  .sw-chat-btn { height: 48px; padding: 0 16px 0 14px; }
  .sw-chat-btn .sw-chat-btn-t { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) { .sw-chat, .sw-chat-btn { transition: none; } .sw-chat-typing i { animation: none; opacity: .6; } }

/* ═══ Customer portal (/my-account/…) ════════════════════════════════════ */
.sw-portal { padding: clamp(24px, 4vw, 56px) 0 clamp(56px, 8vw, 96px); }
.sw-pt { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: clamp(20px, 3vw, 44px); align-items: start; }
.sw-pt-side { position: sticky; top: 84px; display: grid; gap: 14px; }
.sw-pt-me { display: flex; align-items: center; gap: 12px; padding: 4px 4px 10px; }
.sw-pt-me .sw-acct-avatar { width: 48px; height: 48px; font-size: 17px; }
.sw-pt-me div { min-width: 0; display: grid; }
.sw-pt-me strong { font-size: 16px; color: var(--ink); }
.sw-pt-me span { font-size: 13px; color: var(--muted); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sw-pt-nav { display: grid; gap: 2px; }
.sw-pt-nav a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 14px; border-radius: 14px; color: var(--ink-2) !important; text-decoration: none; font-size: 15px; font-weight: 500; transition: background-color .15s, color .15s; }
.sw-pt-nav a i { width: 18px; text-align: center; color: var(--muted); }
.sw-pt-nav a span { flex: 1; }
.sw-pt-nav a b { min-width: 22px; padding: 1px 8px; border-radius: 99px; background: color-mix(in srgb, var(--ink) 8%, transparent); font-size: 12px; font-weight: 600; text-align: center; color: var(--ink-2); }
.sw-pt-nav a b.is-hot { background: var(--th-accent, #2f6b4f); color: #fff; }
.sw-pt-nav a:hover { background: color-mix(in srgb, var(--ink) 5%, transparent); color: var(--ink) !important; }
.sw-pt-nav a.is-on { background: var(--sw-paper, #f6f5f1); color: var(--ink) !important; font-weight: 650; }
.sw-pt-nav a.is-on i { color: var(--ink); }
.sw-pt-nav a:focus-visible, .sw-pt-out:focus-visible { outline: 3px solid var(--sw-accent); outline-offset: 2px; }
.sw-pt-help { display: grid; gap: 6px; padding: 16px; border-radius: 18px; background: var(--sw-paper, #f6f5f1); }
.sw-pt-help strong { font-size: 15px; color: var(--ink); }
.sw-pt-help span { font-size: 13.5px; color: var(--muted); line-height: 1.45; }
.sw.sw-clean .sw-pt-help .bcos-btn { min-height: 40px; margin-top: 6px; font-size: 14px; justify-self: start; padding: 0 16px; }
.sw-pt-out { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px; font-size: 14px; color: var(--muted) !important; text-decoration: none; }
.sw-pt-out:hover { color: var(--ink) !important; }
.sw-pt-main { min-width: 0; display: grid; gap: 20px; align-content: start; }
.sw-pt-head p { margin: 6px 0 0; color: var(--muted); font-size: 15px; }
.sw-pt-head .fa-check-circle { color: color-mix(in srgb, var(--th-accent, #1a9f5c) 75%, var(--ink)); }
.sw-pt-main .sw-acct-flash { margin: 0; }
.sw-pt-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; }
.sw-pt-stats a { display: grid; gap: 2px; padding: 16px 18px; border-radius: 18px; background: var(--sw-paper, #f6f5f1); text-decoration: none; transition: transform .2s; }
.sw-pt-stats a:hover { transform: translateY(-2px); }
.sw-pt-stats dt { font-size: 30px; font-weight: 650; letter-spacing: -.02em; color: var(--ink); line-height: 1.1; }
.sw-pt-stats dd { margin: 0; font-size: 13.5px; color: var(--muted); }
.sw-pt-card { padding: clamp(18px, 2.4vw, 26px); border-radius: 22px; border: 1px solid var(--sw-hair, var(--line)); background: var(--bg, #fff); }
.sw-pt-card.is-accent { border: 0; background: color-mix(in srgb, var(--th-accent, #2f6b4f) 9%, #fff); }
.sw-pt-card-h { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 0 0 14px; }
.sw .sw-pt-card-h h2 { margin: 0; font-size: 19px; letter-spacing: -.01em; }
.sw-pt-card-h .sw-more { min-height: 0; font-size: 14px; }
.sw-pt-empty { margin: 0 0 12px; color: var(--muted); font-size: 15px; }
.sw-pt-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.sw-pt-col { display: grid; gap: 20px; }
.sw-pt-thumb { flex: none; width: 52px; height: 52px; border-radius: 12px; display: grid; place-items: center; padding: 5px; box-sizing: border-box; background: var(--sw-panel, #f1f0eb); }
.sw-pt-thumb .sw-img { filter: drop-shadow(0 4px 6px rgba(0,0,0,.15)); }
.sw-pt-mini, .sw-pt-updates, .sw-pt-dl { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.sw-pt-mini li, .sw-pt-updates li, .sw-pt-dl li { display: flex; align-items: center; gap: 14px; padding: 8px 0; border-top: 1px solid var(--sw-hair, var(--line)); }
.sw-pt-mini li:first-child, .sw-pt-updates li:first-child, .sw-pt-dl li:first-child { border-top: 0; }
.sw-pt-mini li > div, .sw-pt-updates li > div, .sw-pt-dl li > div { flex: 1; min-width: 0; display: grid; }
.sw-pt-mini strong, .sw-pt-updates strong, .sw-pt-dl strong { font-size: 15px; color: var(--ink); }
.sw-pt-mini span, .sw-pt-updates span, .sw-pt-dl span { font-size: 13.5px; color: var(--muted); }
.sw-pt-updates a:not(.bcos-btn) { color: var(--ink) !important; }
.sw-pt-new { font-style: normal; font-size: 12.5px; font-weight: 600; color: color-mix(in srgb, var(--th-accent, #1a9f5c) 75%, var(--ink)); }
.sw-pt-icon-btn { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--ink) 16%, transparent); color: var(--ink) !important; text-decoration: none; font-size: 0; }
.sw-pt-icon-btn i { font-size: 15px; }
.sw-pt-icon-btn:hover { background: var(--ink); color: #fff !important; }
.sw.sw-clean .sw-pt-updates .bcos-btn, .sw.sw-clean .sw-pt-dl .bcos-btn { min-height: 40px; padding: 0 16px; font-size: 14px; gap: 8px; }
.sw-pt-row { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-top: 1px solid var(--sw-hair, var(--line)); text-decoration: none; color: var(--ink) !important; }
.sw-pt-card-h + .sw-pt-row, .sw-acct-h + .sw-pt-row { border-top: 0; }
.sw-pt-row > div { flex: 1; min-width: 0; display: grid; }
.sw-pt-row strong { font-size: 15px; font-weight: 600; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sw-pt-row span:not(.sw-acct-pill) { font-size: 13px; color: var(--muted); }
a.sw-pt-row:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.sw-pt-chat { margin: 0 0 14px; font-size: 14.5px; color: var(--ink-2); }
.sw-acct-pill:is(.is-waiting) { background: #fbf0d3; color: #7d5a00; }
.sw-acct-pill:is(.is-open) { background: #e3f4ea; color: #17794a; }
.sw-pt-bundle { margin: 18px 0 0; padding: 14px 18px; border-radius: 16px; background: var(--sw-paper, #f6f5f1); font-size: 15px; color: var(--ink-2); }
.sw-pt-bundle a { color: var(--ink) !important; font-weight: 600; }
.sw-pt-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; }
.sw-pt-actions form { margin: 0; }
.sw-pt-keys { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 16px; }
.sw-pt-key { display: grid; gap: 14px; padding: 18px; border-radius: 22px; border: 1px solid var(--sw-hair, var(--line)); background: var(--bg, #fff); }
.sw-pt-key header { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; align-items: center; }
.sw-pt-key header div { display: grid; }
.sw-pt-key header strong { font-size: 16px; color: var(--ink); }
.sw-pt-key header span { font-size: 13px; color: var(--muted); }
.sw-pt-key header code { grid-column: 1 / -1; font: 600 15px/1.2 ui-monospace, Menlo, Consolas, monospace; letter-spacing: .04em; padding: 10px 12px; border-radius: 11px; background: var(--sw-paper, #f6f5f1); cursor: copy; user-select: all; text-align: center; }
.sw-pt-key header code.is-copied::after { content: ' ✓ copied'; font-family: inherit; font-weight: 400; color: #1a9f5c; letter-spacing: 0; }
.sw-pt-key.is-revoked header code { text-decoration: line-through; opacity: .5; }
.sw-pt-seats { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.sw-pt-seats i { width: 22px; height: 8px; border-radius: 4px; background: color-mix(in srgb, var(--ink) 10%, transparent); }
.sw-pt-seats i.is-used { background: var(--th-accent, #2f6b4f); }
.sw-pt-seats span { margin-left: 6px; font-size: 13px; color: var(--muted); }
.sw-pt-key .sw-own-devs { margin: 0; }
.sw-pt-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.sw-pt-table th { text-align: left; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); padding: 0 8px 8px 0; }
.sw-pt-table td { padding: 10px 8px 10px 0; border-top: 1px solid var(--sw-hair, var(--line)); color: var(--ink-2); }
.sw-pt-orders { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.sw-pt-orders > li { padding: 18px 20px; border-radius: 22px; border: 1px solid var(--sw-hair, var(--line)); background: var(--bg, #fff); display: grid; gap: 12px; }
.sw-pt-order-h { display: flex; align-items: center; gap: 14px; }
.sw-pt-order-h > div { flex: 1; display: grid; }
.sw-pt-order-h strong { font-size: 16px; color: var(--ink); }
.sw-pt-order-h span:not(.sw-acct-pill) { font-size: 13px; color: var(--muted); }
.sw-pt-lines { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.sw-pt-lines li { display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px 4px 4px; border-radius: 12px; background: var(--sw-paper, #f6f5f1); font-size: 14px; }
.sw-pt-lines img { width: 30px; height: 30px; border-radius: 8px; object-fit: cover; }
.sw-pt-order-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.sw.sw-clean .sw-pt-order-acts .bcos-btn { min-height: 40px; padding: 0 16px; font-size: 14px; gap: 8px; }
.sw-pt-transcript { display: flex; flex-direction: column; gap: 10px; padding: 16px; margin: 0 0 14px; border-radius: 16px; background: #fafaf7; max-height: 520px; overflow-y: auto; }
.sw-pt-sec { display: flex; align-items: center; gap: 16px; padding: 12px 0; border-top: 1px solid var(--sw-hair, var(--line)); }
.sw-acct-h + .sw-pt-sec { border-top: 0; }
.sw-pt-sec > div { flex: 1; display: grid; gap: 2px; }
.sw-pt-sec strong { font-size: 15px; color: var(--ink); }
.sw-pt-sec span { font-size: 13.5px; color: var(--muted); line-height: 1.45; }
.sw-pt-sec form { margin: 0; }
.sw.sw-clean .sw-pt-sec .bcos-btn, .sw.sw-clean .sw-pt-close .bcos-btn { min-height: 40px; padding: 0 16px; font-size: 14px; flex: none; gap: 8px; }
.sw-pt-close { margin-top: 10px; padding-top: 12px; border-top: 1px solid var(--sw-hair, var(--line)); }
.sw-pt-close summary { cursor: pointer; font-size: 14px; color: #8a1f17; }
.sw-pt-close form { display: grid; gap: 10px; margin-top: 10px; }
.sw-pt-close textarea { box-sizing: border-box; width: 100%; padding: 10px 12px; border: 1px solid color-mix(in srgb, var(--ink) 16%, transparent); border-radius: 12px; font: inherit; }
.sw-pt-main .sw-acct-more { margin-top: 12px; }
.sw-pt-main .sw-own { grid-template-columns: 180px minmax(0, 1fr); }
@media (max-width: 1000px) {
  .sw-pt-grid { grid-template-columns: minmax(0, 1fr); }
  .sw-pt-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .sw-pt { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .sw-pt-side { position: static; gap: 10px; }
  .sw-pt-nav { display: flex; overflow-x: auto; gap: 6px; margin: 0 -1rem; padding: 0 1rem 4px; scrollbar-width: none; }
  .sw-pt-nav a { flex: none; min-height: 40px; padding: 0 14px; border: 1px solid var(--sw-hair, var(--line)); border-radius: 99px; font-size: 14px; }
  .sw-pt-nav a i { display: none; }
  .sw-pt-nav a.is-on { background: var(--ink); color: #fff !important; border-color: var(--ink); }
  .sw-pt-nav a.is-on b { background: rgba(255,255,255,.2); color: #fff; }
  .sw-pt-help, .sw-pt-out { display: none; }
  .sw-pt-main .sw-own { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 620px) {
  .sw-pt-updates li, .sw-pt-dl li { flex-wrap: wrap; }
  .sw-pt-updates li > div, .sw-pt-dl li > div { flex: 1 1 calc(100% - 70px); }
  .sw-pt-updates li .bcos-btn, .sw-pt-dl li .bcos-btn { margin-left: 66px; }
  .sw-pt-actions { gap: 4px 18px; }
  .sw-pt-actions .sw-more { min-height: 36px; }
}
@media (max-width: 520px) {
  .sw-pt-sec { flex-wrap: wrap; }
  .sw-pt-table th:nth-child(4), .sw-pt-table td:nth-child(4) { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .sw-home-wave i, .sw-play.is-loading .sw-play-ic { animation: none; }
  .sw-dock, .sw-card-top, .sw-home-media .sw-img, .sw-listen-media .sw-img, .sw-bundle-fan span { transition: none; }
  .sw-js .sw-catalog.is-shuffling [data-sw-item]:not([hidden]), .sw-dialog[open] { animation: none; }
}

@media (min-width: 900px) {
  .sw-listen.is-flip .sw-listen-copy { order: 2; }
  .sw-listen.is-flip .sw-listen-in { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); }
}
@media (max-width: 899px) {
  .sw-home-in, .sw-listen-in, .sw-clean .sw-hero-in { grid-template-columns: minmax(0, 1fr); }
  .sw-catalog .sw-bundle { grid-template-columns: minmax(0, 1fr); }
  .sw-catalog .sw-bundle-media { min-height: 0; aspect-ratio: 3 / 2; }
  .sw-clean.sw-band .sw-band-in { text-align: left; justify-items: stretch; }
  .sw-clean.sw-band .sw-actions { justify-content: flex-start; }
  .sw-dock { gap: 10px; padding: 8px 10px; }
  .sw-dock-meta { flex: 1 1 0; }
  .sw-dock .sw-wave { position: absolute; left: 22px; right: 22px; top: auto; bottom: 0; height: 3px; min-width: 0; flex: none; border-radius: 3px 3px 0 0; overflow: hidden; }
  .sw-dock-time, .sw-dock-skip { display: none; }
}
@media (max-width: 620px) {
  .sw-tools { align-items: stretch; }
  .sw-find { width: 100%; }
  .sw-search { flex: 1; }
  .sw-search input { width: 100%; }
  .sw-cats { flex-wrap: nowrap; overflow-x: auto; margin-inline: -1rem; padding-inline: 1rem; scrollbar-width: none; }
  .sw-cats button { flex: none; }
  .sw-player { flex-wrap: wrap; gap: 12px 14px; }
  .sw-player .sw-ab { width: 100%; }
  .sw-player .sw-ab button { flex: 1; }
  .sw-clean .sw-catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 12px; }
  .sw-clean .sw-catalog .sw-card .vx-card-body { grid-template-columns: minmax(0, 1fr); padding: 12px 2px 0; }
  .sw-clean .sw-catalog .sw-card .vx-card-title { font-size: 17px; }
  .sw-clean .sw-catalog .sw-card .vx-card-summary { font-size: 13.5px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .sw-clean .sw-catalog .sw-card .sw-price { grid-column: 1; grid-row: auto; margin-top: 4px; font-size: 15px; }
  .sw-clean .sw-catalog .sw-card-top { border-radius: 18px; }
  .sw-catalog .sw-card .sw-play { right: 10px; bottom: 10px; width: 40px; height: 40px; }
  .sw-catalog .sw-card .sw-fav { right: 8px; top: 8px; width: 36px; height: 36px; }
  .sw-catalog .sw-card-media .sw-badge { left: 10px; top: 10px; }
  .sw-free-item { grid-template-columns: 84px minmax(0, 1fr); }
  .sw-free-go { grid-column: 1 / -1; justify-content: space-between; }
  .sw-free-go .bcos-btn { flex: 1; }
  .sw-home-tag .sw-price { display: none; }
  .sw-dock-go { display: none; }
  .sw-dock .sw-play { order: -1; }
  .sw-dock .sw-ab button { padding: 0 11px; font-size: 12.5px; }
  .sw-dialog { padding: 24px 20px; }
}
@media (max-width: 440px) {
  .sw-dock-art { display: none; }
  .sw-dock { padding-left: 8px; }
  .sw-clean.sw-close { width: calc(100% - 1.4rem); }
}

/* ═══ Catalogue: sales, downloads per system, bundle pages ═══ */
.sw-salebar { position: relative; z-index: 60; background: var(--sw-sale, #2f6b4f); color: #fff; text-align: center; font-size: 14px; }
.sw-salebar a { display: block; padding: 10px 16px; color: inherit; text-decoration: none; }
.sw-salebar strong { font-weight: 650; }
.sw-salebar .sw-count { font-variant-numeric: tabular-nums; opacity: .9; }
.sw-salebar-go { margin-left: 8px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.sw-count { font-variant-numeric: tabular-nums; white-space: nowrap; }
.sw-badge.is-sale { background: var(--sw-sale, #2f6b4f); color: #fff; }
.sw-sale-tag { grid-column: 1 / -1; margin: 6px 0 0; font-size: 13px; color: var(--sw-sale, var(--sw-accent)); }
.sw-sale-tag a { color: inherit; font-weight: 600; text-decoration: none; }
.sw-sale-tag.is-big { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin: 4px 0 18px; padding: 8px 14px; border-radius: 999px; font-size: 14px;
  background: color-mix(in srgb, var(--sw-sale, #2f6b4f) 12%, transparent); }

/* Get it for your system */
.sw-plats { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.sw-plat { padding: 20px; border-radius: 22px; background: var(--sw-paper, #f6f5f1); border: 1px solid transparent; transition: border-color .3s, box-shadow .3s; }
.sw-plat.is-yours { border-color: color-mix(in srgb, var(--sw-accent) 45%, transparent); box-shadow: 0 18px 40px -28px color-mix(in srgb, var(--sw-accent) 80%, transparent); background: var(--bg, #fff); }
.sw-plat header { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.sw-plat header i { font-size: 22px; color: var(--ink); width: 26px; text-align: center; }
.sw-plat header h3 { margin: 0; font-size: 18px; letter-spacing: -.01em; }
.sw-plat-yours { margin-left: auto; font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: color-mix(in srgb, var(--sw-accent) 14%, transparent); color: var(--sw-accent); }
.sw-plat ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sw-plat li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 0; border-top: 1px solid var(--sw-hair, var(--line)); }
.sw-plat li:first-child { border-top: 0; padding-top: 0; }
.sw-plat li > div { display: grid; gap: 2px; min-width: 0; }
.sw-plat li strong { font-size: 15px; color: var(--ink); }
.sw-plat li span, .sw-plat li em { font-size: 13px; color: var(--muted); font-style: normal; }
.sw-plat li .bcos-btn { flex: none; }
.sw-plat-lock { flex: none; font-size: 13px; color: var(--muted); }
.sw-sum { font-size: 12px; color: var(--muted); }
.sw-sum summary { cursor: pointer; width: max-content; }
.sw-sum code { display: block; margin-top: 4px; font: 11px/1.5 ui-monospace, Menlo, Consolas, monospace; word-break: break-all; cursor: copy; user-select: all; }
.sw-store-btn { flex: none; display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px 8px 12px; border-radius: 12px; background: #111; color: #fff !important; text-decoration: none; line-height: 1.1; }
.sw-store-btn i { font-size: 22px; }
.sw-store-btn span { display: grid; font-size: 16px; font-weight: 600; }
.sw-store-btn small { font-size: 10.5px; font-weight: 400; opacity: .8; }
.sw-store-btn:hover { background: #000; }
.sw-own-builds { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 520px) { .sw-plat li { flex-wrap: wrap; } .sw-plat li .bcos-btn, .sw-plat li .sw-store-btn { width: 100%; justify-content: center; } }

/* Sales */
.sw-salehero { padding: clamp(48px, 8vw, 110px) 0 clamp(36px, 6vw, 70px); background: linear-gradient(160deg, color-mix(in srgb, var(--sw-sale) 16%, var(--bg, #fff)), var(--bg, #fff) 70%); }
.sw-salehero-in { display: grid; gap: clamp(24px, 4vw, 56px); align-items: center; }
@media (min-width: 900px) { .sw-salehero-in { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); } }
.sw-salehero .sw-kicker { color: var(--sw-sale); }
.sw-salehero-big { margin: 10px 0 6px; font-size: clamp(30px, 4.5vw, 52px); letter-spacing: -.03em; line-height: 1.05; color: var(--ink); }
.sw-salehero-big strong { color: var(--sw-sale); }
.sw-salehero-when { font-size: 16px; color: var(--muted); }
.sw-salehero-when .sw-count { font-weight: 650; color: var(--ink); }
.sw-salehero-lead { max-width: 56ch; font-size: 17px; line-height: 1.6; }
.sw-salehero-media img { border-radius: 26px; }
.sw-salehero.is-ended { filter: grayscale(.6); }
.sw-cards { display: grid; gap: clamp(18px, 2.4vw, 30px); margin: 18px 0 40px; }
.sw-cards.sw-cols-3 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.sw-cards.sw-cols-2 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); }
.sw-salecard { overflow: hidden; border-radius: 24px; background: var(--sw-paper, #f6f5f1); }
.sw-salecard-media { position: relative; display: block; aspect-ratio: 16 / 8; background: color-mix(in srgb, var(--sw-sale) 22%, #f3f2ed); }
.sw-salecard-media img { width: 100%; height: 100%; object-fit: cover; }
.sw-salecard-art { position: absolute; inset: 0; display: grid; place-items: center; font-size: 64px; color: color-mix(in srgb, var(--sw-sale) 75%, #fff); }
.sw-salecard-media .sw-badge { position: absolute; top: 14px; left: 14px; background: var(--sw-sale); color: #fff; }
.sw-salecard.is-ended { opacity: .6; }
.sw-salecard .vx-card-body { padding: 18px 20px 22px; }

/* Bundle page */
.sw-bundle-sum { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin: 6px 0 18px; font-size: 18px; }
.sw-bundle-sum strong { font-size: 30px; letter-spacing: -.02em; color: var(--ink); }
.sw-bundle-more { margin: 4px 0 10px; font-size: 14px; }
.sw-bundle-more a { font-weight: 600; text-decoration: none; }
.sw-inside { display: grid; gap: clamp(24px, 4vw, 48px); }
.sw-inside-row { display: grid; gap: clamp(16px, 3vw, 40px); align-items: center; }
@media (min-width: 860px) { .sw-inside-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .sw-inside-row.is-flip .sw-inside-media { order: 2; } }
.sw-inside-media { position: relative; border-radius: 26px; overflow: hidden; background: var(--sw-panel, #f3f2ed); }
.sw-inside-media .sw-img { padding: 8%; filter: drop-shadow(0 18px 26px rgba(0,0,0,.18)); }
.sw-inside-copy h3 { margin: 4px 0 6px; font-size: clamp(24px, 3vw, 34px); letter-spacing: -.02em; }
.sw-inside-copy h3 a { color: inherit; text-decoration: none; }
.sw-inside-copy p { font-size: 16px; line-height: 1.6; }
.sw-inside-price { font-size: 14px !important; color: var(--muted); }
.sw-inside-extras { padding: 22px; border-radius: 22px; background: var(--bg, #fff); }
.sw-maths { width: 100%; border-collapse: collapse; font-size: 16px; }
.sw-maths td { padding: 12px 0; border-bottom: 1px solid var(--sw-hair, var(--line)); }
.sw-maths td:last-child { text-align: right; font-variant-numeric: tabular-nums; }
.sw-maths tfoot td { color: var(--muted); }
.sw-maths tr.is-total td { font-size: 20px; font-weight: 650; color: var(--ink); border-bottom: 0; }

/* ── Help chat: attachments (pictures, audio, video, files) ── */
.sw-chat-f button.sw-chat-attach { flex: 0 0 auto; width: 40px; height: 44px; border: 0; border-radius: 50%; background: transparent no-repeat center / 22px 22px; box-shadow: none; color: inherit; cursor: pointer; opacity: .7;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316241c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5l-8.6 8.6a5.5 5.5 0 0 1-7.8-7.8l8.9-8.9a3.7 3.7 0 0 1 5.2 5.2l-8.9 8.9a1.8 1.8 0 0 1-2.6-2.6l8.2-8.2'/%3E%3C/svg%3E"); }
.sw-chat-f button.sw-chat-attach:hover { opacity: 1; background-color: rgba(0,0,0,.06); transform: none; }
.sw-chat-f button.sw-chat-attach:focus-visible { outline: 3px solid color-mix(in srgb, var(--th-accent, #2f6b4f) 40%, transparent); opacity: 1; }
.sw-chat-files { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 12px 0; background: #fff; border-top: 1px solid rgba(0,0,0,.07); }
.sw-chat-files[hidden] { display: none; }
.sw-chat-files + .sw-chat-f { border-top: 0; }
.sw-chat-chip { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 4px 6px 4px 10px; border-radius: 99px; background: color-mix(in srgb, var(--th-accent, #2f6b4f) 10%, #fff); font-size: 12.5px; overflow-wrap: anywhere; }
.sw-chat-chip button { flex: 0 0 auto; width: 20px; height: 20px; border: 0; border-radius: 50%; background: rgba(0,0,0,.08); font-size: 10px; line-height: 1; cursor: pointer; }
.sw-chat.is-drop { outline: 3px dashed var(--th-accent, #2f6b4f); outline-offset: -6px; }
.sw-msg-files { display: grid; gap: 6px; max-width: 100%; margin-top: 4px; }
.sw-msg.is-visitor .sw-msg-files { justify-items: end; }
.sw-msg-img { display: block; max-width: 220px; border-radius: 14px; overflow: hidden; box-shadow: 0 0 0 1px rgba(0,0,0,.08); }
.sw-msg-img img { display: block; width: 100%; height: auto; max-height: 260px; object-fit: cover; }
.sw-msg-media { display: grid; gap: 3px; max-width: 250px; }
.sw-msg-media audio { width: 250px; max-width: 100%; height: 40px; }
.sw-msg-media video { width: 100%; max-height: 220px; border-radius: 12px; background: #000; }
.sw-msg-cap { font-size: 11.5px; color: #6a736e; overflow-wrap: anywhere; }
.sw-msg-file { display: inline-block; max-width: 250px; padding: 9px 13px; border-radius: 12px; background: #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.1); color: inherit; font-size: 13.5px; text-decoration: none; overflow-wrap: anywhere; }
.sw-msg-file::before { content: "↓ "; color: var(--th-accent, #2f6b4f); font-weight: 700; }
.sw-msg-file:hover { box-shadow: 0 0 0 1px var(--th-accent, #2f6b4f); }

/* Add to cart on a card; demos and the specs table on a bundle page */
.sw-addform { margin: 10px 0 0; position: relative; z-index: 2; }
.sw-clean .sw-card .sw-addform { grid-column: 1 / -1; }
.sw-add { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border-radius: 99px; border: 1px solid color-mix(in srgb, var(--ink) 22%, transparent); color: var(--ink); font-size: 14.5px; font-weight: 600; transition: background .2s, color .2s, border-color .2s; }
.sw-add:hover { background: var(--ink); border-color: var(--ink); color: var(--bg, #fff); }
.sw-add:focus-visible { outline: 3px solid var(--sw-accent); outline-offset: 2px; }
.sw-add.is-busy { opacity: .55; cursor: progress; }
.sw-bundle-btns { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.sw-bundle-btns .sw-addform { margin: 0; }
.sw-bundle-btns .sw-add { min-height: 46px; padding: 0 20px; font-size: 15px; }
.sw-demos { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 22px; margin-top: 26px; }
.sw-demo h3 { margin: 0 0 10px; font-size: 17px; }
.sw-specs-wrap { overflow-x: auto; margin: 0 0 28px; }
.sw-specs { width: 100%; border-collapse: collapse; font-size: 15px; }
.sw-specs th, .sw-specs td { padding: 11px 14px 11px 0; text-align: left; border-bottom: 1px solid var(--line, rgba(0,0,0,.1)); white-space: nowrap; }
.sw-specs thead th { font-size: 12.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.sw-specs tbody th { font-weight: 600; }
.sw-specs tbody th a { color: inherit; }
.sw-bundle-buy { position: relative; z-index: 2; }
.sw-bundle-btns .sw-overview { min-height: 46px; padding: 0 20px; font-size: 15px; text-decoration: none; }
.sw-bundle-btns { flex: 1 1 100%; }
.sw-bundle-btns .sw-add, .sw-bundle-btns .sw-overview { padding: 0 16px; }
.sw-bundle-btns .sw-btn-price { display: none; }

/* Bundles with a cover picture; the bundle page: what is inside as a grid, section links in the sticky bar */
.sw-bundle-media:has(.sw-img), .sw-clean .sw-catalog .sw-bundle-media:has(.sw-img), .sw-catalog .sw-bundle-media:has(.sw-img) { aspect-ratio: 16 / 9; min-height: 0; }
.sw-bundle-hero .sw-hero-media .sw-img { border-radius: clamp(14px, 2vw, 26px); }
.sw-bundle-page .sw-inside { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: clamp(22px, 3vw, 36px) clamp(18px, 2.4vw, 28px); }
.sw-bundle-page .sw-inside-row { grid-template-columns: minmax(0, 1fr); gap: 14px; align-items: start; align-content: start; }
.sw-bundle-page .sw-inside-row.is-flip .sw-inside-media { order: 0; }
.sw-bundle-page .sw-inside-media { border-radius: 18px; }
.sw-bundle-page .sw-inside-copy h3 { font-size: 21px; margin: 2px 0 4px; }
.sw-bundle-page .sw-inside-copy p { font-size: 15px; line-height: 1.5; margin: 0 0 4px; }
.sw-bundle-page .sw-inside-extras { grid-column: 1 / -1; }
.sw-sticky-nav { display: none; gap: 22px; margin: 0 auto 0 28px; font-size: 14.5px; }
.sw-sticky-nav a { color: inherit; text-decoration: none; opacity: .72; }
.sw-sticky-nav a:hover { opacity: 1; }
.sw-sticky-actions { display: inline-flex; align-items: center; gap: 10px; }
.sw-sticky-actions .sw-addform, .sw-actions .sw-addform { margin: 0; }
.sw-actions .sw-add { min-height: 48px; padding: 0 22px; font-size: 15.5px; }
@media (min-width: 900px) { .sw-sticky-nav { display: flex; } }
@media (max-width: 640px) { .sw-sticky-actions .sw-addform { display: none; } }
.sw-bundle-page [id] { scroll-margin-top: 90px; }
/* The help button steps up while the buy bar is showing, so it never covers the buttons */
body:has(.sw-sticky.is-on) .sw-chat-btn { bottom: calc(max(14px, env(safe-area-inset-bottom)) + 72px); }

/* Spec sheet: DAW support and system requirements */
.sw-compat-h { margin: 14px 0 -8px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.sw-compat-note { margin: 0 0 -10px; font-size: 15px; color: var(--muted); }
.sw-works { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.sw-works li { display: flex; flex-direction: column; justify-content: center; min-height: 58px; padding: 10px 16px; }
.sw-reqs ul { list-style: none; padding: 0; display: grid; gap: 6px; }
.sw-reqs li { position: relative; padding-left: 22px; }
.sw-reqs li::before { content: ''; position: absolute; left: 2px; top: .62em; width: 8px; height: 8px; border-radius: 50%; background: color-mix(in srgb, var(--th-accent, #2f6b4f) 70%, transparent); }

/* DAW tiles with the host's logo; operating systems in their own colours */
.sw-works li.has-logo { align-items: flex-start; gap: 8px; min-height: 92px; padding: 16px 18px 14px; }
.sw-works-logo { display: flex; align-items: center; height: 30px; }
.sw-works-logo img { display: block; max-height: 28px; max-width: 124px; width: auto; height: auto; object-fit: contain; }
.sw-works li.has-logo strong { font-size: 13.5px; font-weight: 600; color: var(--muted); }
.sw-clean .sw-works li.has-logo, .sw-alt.sw-clean .sw-works li.has-logo { background: #fff; box-shadow: 0 0 0 1px var(--sw-hair); }
.sw-os { --os: var(--ink); position: relative; overflow: hidden; }
.sw-os.is-windows, .sw-os-chip.is-windows { --os: #0078d4; }
.sw-os.is-macos, .sw-os-chip.is-macos { --os: #1d1d1f; }
.sw-os.is-linux, .sw-os-chip.is-linux { --os: #e6a100; }
.sw-os::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--os); }
.sw-reqs .sw-os h3 { gap: 12px; font-size: 18px; margin-bottom: 14px; }
.sw-os-ic { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: color-mix(in srgb, var(--os) 10%, #fff); color: var(--os); font-size: 20px; }
.sw-reqs .sw-os li::before { background: var(--os); opacity: .75; }
.sw-os-chip i { color: var(--os, inherit); }

/* Bundle page tidy-up: even tiles, a lone "more bundles" card laid on its side */
.sw-bundle-page .sw-inside-media { aspect-ratio: 1800 / 1320; display: grid; }
.sw-bundle-page .sw-inside-media > a { display: grid; place-items: center; min-height: 0; }
.sw-bundle-page .sw-inside-media .sw-img { width: 100%; height: 100%; object-fit: contain; }
@media (min-width: 860px) {
  .sw-cards.sw-cols-2 > .sw-bundle:only-child { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: center; }
  .sw-cards.sw-cols-2 > .sw-bundle:only-child .sw-bundle-media { width: 100%; min-width: 0; }
}

/* Blocks: ways to pay, one bundle in full */
.nf-pay { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.nf-pay li { display: inline-flex; align-items: center; height: 40px; padding: 0 14px; border-radius: 8px; border: 1px solid var(--sw-hair, rgba(0,0,0,.14)); font-size: 13px; font-weight: 700; }
.nf-pay li.has-img { padding: 0; border: 0; }
.nf-pay img { display: block; width: 64px; height: 40px; }
.sw-demos.is-stack { grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 18px 0; }
.sw-one-bundle .sw-bundle-sum { margin: 6px 0 4px; }

/* Learn: guides at /learn and the "Guides with …" band on product pages. */
.nf-learn-list { list-style: none; margin: 0 0 18px; padding: 0; }
.nf-learn-list li { border-top: 1px solid var(--line); }
.nf-learn-list li:last-child { border-bottom: 1px solid var(--line); }
.nf-learn-list a { display: block; padding: 16px 0; text-decoration: none; color: var(--ink) !important; }
.nf-learn-list strong { display: block; font-size: 18px; }
.nf-learn-list span { display: block; margin-top: 4px; font-size: 15px; line-height: 1.5; color: var(--muted); }
.nf-learn-list a:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.nf-learn-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 18px; }
.nf-learn-card { display: flex; flex-direction: column; gap: 8px; padding: 22px; border: 1px solid var(--line); border-radius: var(--vx-radius, 18px); background: var(--vx-card-bg, transparent); text-decoration: none; color: var(--ink) !important; transition: border-color .15s, transform .15s; }
.nf-learn-card:hover { border-color: var(--ink); transform: translateY(-2px); }
.nf-learn-card em { font-style: normal; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.nf-learn-card strong { font-size: 19px; line-height: 1.3; }
.nf-learn-card p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--muted); }
.nf-learn-body { font-size: 17px; line-height: 1.7; }
.nf-learn-body h2 { margin-top: 2.2rem; }
.nf-learn-body ol, .nf-learn-body ul { padding-left: 1.3rem; margin: 0 0 1rem; }
.nf-learn-body li { margin: .3rem 0; }
.nf-learn-body blockquote { margin: 1.2rem 0; padding: .2rem 0 .2rem 1rem; border-left: 3px solid var(--sw-accent, var(--ink)); color: var(--muted); }
.nf-learn-meta { margin: 10px 0 0; font-size: 14px; color: var(--muted); }

/* Press kit (/press). */
.nf-press-facts { margin: 0 0 2rem; border-top: 1px solid var(--line); }
.nf-press-facts > div { display: grid; grid-template-columns: minmax(0, 10rem) minmax(0, 1fr); gap: 4px 18px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.nf-press-facts dt { font-weight: 600; color: var(--ink); }
.nf-press-facts dd { margin: 0; color: var(--ink); }
@media (max-width: 560px) { .nf-press-facts > div { grid-template-columns: 1fr; } }
.nf-press-k { margin: 1rem 0 .3rem; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.nf-press-copy { margin: 0 0 1rem; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; font-size: 16px; line-height: 1.6; color: var(--ink); user-select: all; }
.nf-press-release summary { cursor: pointer; font-weight: 600; padding: 10px 0; }
.nf-press-release pre { white-space: pre-wrap; word-break: break-word; font: 15px/1.6 inherit; font-family: inherit; padding: 16px; border: 1px solid var(--line); border-radius: 12px; margin: 0; }
.nf-press-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 22px; }
.nf-press-item { margin: 0; }
.nf-press-item img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; border-radius: 12px; }
.nf-press-item figcaption { display: grid; gap: 2px; margin-top: 8px; }
.nf-press-item em { font-style: normal; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.nf-press-item strong a { color: var(--ink) !important; text-decoration: none; }
.nf-press-item span { font-size: 14px; color: var(--muted); }
.nf-press-logos { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 16px; }
.nf-press-logo { display: grid; gap: 8px; place-items: center; padding: 22px 16px 14px; border: 1px solid var(--line); border-radius: 12px; text-decoration: none; color: var(--muted) !important; font-size: 13px; background: #fff; }
.nf-press-logo.is-dark { background: #1d1d1f; color: #c7c7cc !important; }
.nf-press-logo img { max-width: 100%; height: 56px; object-fit: contain; }
