/*
 * The Sneaky Line base (Brand Unification, Stage B). Loaded only where a family claims the request (body.sh-sl).
 * Every rule is scoped to body.sh-sl; tokens and values follow docs/SNEAKY-HOMEPAGE-V2-DESIGN-CONTRACT.md.
 * No @font-face (footer.css declares "Sneaky Display"), no --sh-* token, nothing from another host.
 * Motion: only under prefers-reduced-motion: no-preference, finite, transform/opacity/stroke-dashoffset only, armed by
 * sl.js (html.sl-armed); the resting state is the finished page.
 */

/* ---------- tokens ---------- */
:where(body.sh-sl) {
	--sl-ink: #122c3a; --sl-copy: #375568; --sl-muted: #587183; --sl-line: #c7ddeb; --sl-line-soft: #e1ecf2;
	--sl-teal: #246b5f; --sl-teal-deep: #173d39; --sl-sky: #6ec4e8; --sl-sky-soft: #edf8fc; --sl-night: #0f2230;
	--sl-assess: #246b5f; --sl-assess-wash: #e7f2ef;
	--sl-train: #2b8fd6; --sl-train-ink: #1b6fae; --sl-train-wash: #eaf4fd;
	--sl-eat: #3d9442; --sl-eat-ink: #2f7a34; --sl-eat-wash: #eef7ec;
	--sl-helpers: #d6336c; --sl-helpers-ink: #b0285a; --sl-helpers-wash: #fdf0f5; --sl-ring: #fbe7ef;
	--sl-learn: #b8740a; --sl-learn-ink: #8a5a06; --sl-learn-wash: #fbf1e1;
	--sl-plum: #7b244b; --sl-plum-deep: #5e1a39; --sl-rose: #f9e4ee; --sl-rose-soft: #fdf4f8; --sl-rose-line: #eccbdb;
	--sl-grad: linear-gradient(90deg, #3fb39d, #6ec4e8 40%, #4ea6ec 70%, #ec6a98);
	--sl-grad-v: linear-gradient(180deg, #3fb39d, #6ec4e8 40%, #4ea6ec 70%, #ec6a98);
	--sl-display: "Sneaky Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--sl-text: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
	--sl-ease: cubic-bezier(.2, .7, .2, 1); --sl-spring: cubic-bezier(.34, 1.56, .64, 1);
	--sl-gutter: clamp(20px, 4vw, 48px); --sl-max: 1240px;
	--sl-shadow-card: 0 30px 60px -44px rgba(18, 44, 58, .5);
	--sl-shadow-lift: 0 2px 4px rgba(18, 44, 58, .05), 0 34px 60px -30px rgba(18, 44, 58, .42);
	--sl-pillar: #246b5f; --sl-pillar-ink: #246b5f; --sl-pillar-wash: #edf8fc;
}
body.sh-sl-learn { --sl-pillar: #b8740a; --sl-pillar-ink: #8a5a06; --sl-pillar-wash: #fbf1e1; }
body.sh-sl-helpers { --sl-pillar: #d6336c; --sl-pillar-ink: #b0285a; --sl-pillar-wash: #fdf0f5; }
body.sh-sl-eat { --sl-pillar: #3d9442; --sl-pillar-ink: #2f7a34; --sl-pillar-wash: #eef7ec; }
body.sh-sl-train { --sl-pillar: #2b8fd6; --sl-pillar-ink: #1b6fae; --sl-pillar-wash: #eaf4fd; }
body.sh-sl-support { --sl-pillar: #7b244b; --sl-pillar-ink: #7b244b; --sl-pillar-wash: #fdf4f8; }

body.sh-sl .sl-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
body.sh-sl .sl-i { flex: none; display: inline-block; width: 1.15em; height: 1.15em; vertical-align: -.2em; }
body.sh-sl .sl-sr { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body.sh-sl .sl-scope, body.sh-sl .sl-scope *, body.sh-sl .sl-scope *::before, body.sh-sl .sl-scope *::after { box-sizing: border-box; }
body.sh-sl .sl-scope { color: var(--sl-copy); font: 400 17px/1.6 var(--sl-text); -webkit-font-smoothing: antialiased; }
/* a light reset: one class of weight, so every component rule (two classes and up) wins over it */
:where(body.sh-sl) .sl-scope :where(h1, h2, h3, h4, p, ul, ol, figure, blockquote) { margin: 0; }
:where(body.sh-sl) .sl-scope :where(ul.sl-list, ol.sl-list, .sl-next, .sl-can) { padding: 0; list-style: none; }
body.sh-sl .sl-scope img { max-width: 100%; }
body.sh-sl main#content.site-main.sl-scope { width: 100%; max-width: none; margin-inline: 0; padding-inline: 0; }

/* ---------- layout ---------- */
body.sh-sl .sl-wrap { width: min(var(--sl-max), 100% - 2 * var(--sl-gutter)); margin-inline: auto; }
body.sh-sl .sl-wrap--wide { width: min(1440px, 100% - 2 * var(--sl-gutter)); }
body.sh-sl .sl-wrap--read { width: min(1080px, 100% - 2 * var(--sl-gutter)); }
body.sh-sl .sl-band { position: relative; padding-block: clamp(48px, 6vw, 92px); }
body.sh-sl .sl-band--tight { padding-block: clamp(36px, 4.5vw, 64px); }
body.sh-sl .sl-band--flush-top { padding-top: 0; }
body.sh-sl .sl-band + .sl-band:not([class*="sl-band--"]) { border-top: 1px solid var(--sl-line-soft); }
body.sh-sl .sl-band--tint { background: linear-gradient(180deg, #f6fbfd, #eef7fb); }
body.sh-sl .sl-band--learn { background: linear-gradient(180deg, #fffaf2 0%, #fbf3e6 100%); }
body.sh-sl .sl-band--eat { background: linear-gradient(180deg, #fbfdfa 0%, #eef7ec 100%); }
body.sh-sl .sl-band--train { background: linear-gradient(180deg, #f8fbfe 0%, #eaf4fd 100%); }
body.sh-sl .sl-band--helpers { background: linear-gradient(180deg, #fffafc 0%, #fdf0f5 100%); }
body.sh-sl .sl-band--rose { background: radial-gradient(60% 80% at 50% 0%, rgba(255, 255, 255, .75), rgba(255, 255, 255, 0) 70%), linear-gradient(180deg, #fdf4f8 0%, #f9e4ee 100%); }
body.sh-sl .sl-band--night { background: var(--sl-night); color: #c3d4dd; overflow: hidden; }
body.sh-sl .sl-band--night :is(.sl-h2, .sl-h3) { color: #f2f8fb; }
body.sh-sl .sl-head { display: grid; gap: 12px; margin-bottom: clamp(24px, 3vw, 36px); }
body.sh-sl .sl-head--row { grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 12px 24px; }
body.sh-sl .sl-head--center { justify-items: center; text-align: center; }
body.sh-sl .sl-head--center .sl-note { max-width: 60ch; }
body.sh-sl .sl-stack { display: grid; gap: 12px; align-content: start; }
body.sh-sl .sl-split { display: grid; gap: clamp(28px, 4vw, 64px); grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 1024px) { body.sh-sl .sl-split { grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr); } }
@media (max-width: 767px) { body.sh-sl .sl-head--row { grid-template-columns: minmax(0, 1fr); } }

/* ---------- type ---------- */
body.sh-sl .sl-h1 { font: 800 clamp(2.4rem, 1.1rem + 4.4vw, 4.4rem)/.98 var(--sl-display); letter-spacing: -.035em; color: var(--sl-ink); text-wrap: balance; overflow-wrap: break-word; }
body.sh-sl .sl-h1--md { font-size: clamp(2.1rem, 1.1rem + 3.2vw, 3.6rem); line-height: 1.02; }
body.sh-sl .sl-h2 { font: 800 clamp(1.85rem, 1.1rem + 2.2vw, 3rem)/1.04 var(--sl-display); letter-spacing: -.03em; color: var(--sl-ink); text-wrap: balance; }
body.sh-sl .sl-h2--sm { font-size: clamp(1.55rem, 1.1rem + 1.2vw, 2.15rem); }
body.sh-sl .sl-h3 { font: 700 clamp(1.2rem, 1rem + .6vw, 1.5rem)/1.16 var(--sl-display); letter-spacing: -.018em; color: var(--sl-ink); text-wrap: balance; }
body.sh-sl .sl-t-card { font: 700 19px/1.22 var(--sl-display); letter-spacing: -.012em; color: var(--sl-ink); text-wrap: balance; }
body.sh-sl :is(.sl-h1, .sl-h2, .sl-h3, .sl-t-card) a { color: inherit; text-decoration: none; }
body.sh-sl :is(.sl-h2, .sl-h3, .sl-t-card) a:hover { color: var(--sl-pillar-ink); }
body.sh-sl .sl-lead { font-size: clamp(1.05rem, .98rem + .32vw, 1.22rem); line-height: 1.58; color: var(--sl-copy); max-width: 58ch; }
body.sh-sl .sl-note { font-size: 15px; line-height: 1.55; color: var(--sl-muted); }
body.sh-sl .sl-note a, body.sh-sl .sl-in-text { color: var(--sl-ink); font-weight: 650; text-decoration: underline; text-decoration-color: var(--sl-sky); text-decoration-thickness: 2px; text-underline-offset: 4px; }
body.sh-sl .sl-eyebrow { display: inline-flex; align-items: center; gap: 9px; font: 800 13px/1.2 var(--sl-text); letter-spacing: .14em; text-transform: uppercase; color: var(--sl-pillar-ink); }
body.sh-sl .sl-eyebrow .sl-i { width: 18px; height: 18px; }
body.sh-sl .sl-eyebrow--sm { font-size: 11.5px; letter-spacing: .12em; gap: 7px; }
body.sh-sl .sl-eyebrow--teal { color: var(--sl-teal); }
body.sh-sl .sl-eyebrow--helpers { color: var(--sl-helpers-ink); }
body.sh-sl .sl-eyebrow--learn { color: var(--sl-learn-ink); }
body.sh-sl .sl-eyebrow--eat { color: var(--sl-eat-ink); }
body.sh-sl .sl-eyebrow--train { color: var(--sl-train-ink); }
body.sh-sl .sl-eyebrow--plum { color: var(--sl-plum); }
body.sh-sl .sl-eyebrow--muted { color: var(--sl-muted); }
body.sh-sl .sl-kicker { font: 800 12px/1.25 var(--sl-text); letter-spacing: .1em; text-transform: uppercase; color: var(--sl-pillar-ink); }
body.sh-sl .sl-kicker time, body.sh-sl .sl-kicker .sl-quiet { color: var(--sl-muted); font-weight: 700; }
body.sh-sl .sl-meta { font: 600 13.5px/1.4 var(--sl-text); color: var(--sl-muted); }
body.sh-sl .sl-dot::before { content: "·"; margin: 0 7px; color: #9fb3c0; }
body.sh-sl .sl-ai { display: inline-flex; align-items: center; gap: 4px; font: 700 12.5px/1 var(--sl-text); color: var(--sl-helpers-ink); white-space: nowrap; }
body.sh-sl .sl-ai .sl-i { width: 11px; height: 11px; }
body.sh-sl .sl-fine { display: flex; gap: 8px; align-items: flex-start; max-width: 64ch; font-size: 14.5px; line-height: 1.5; color: var(--sl-muted); }
body.sh-sl .sl-fine .sl-i { width: 16px; height: 16px; margin-top: 3px; }
body.sh-sl .sl-fig { font: 800 30px/1 var(--sl-display); letter-spacing: -.02em; color: var(--sl-ink); font-variant-numeric: tabular-nums; }

/* ---------- buttons (52px pills; one primary per group) ---------- */
body.sh-sl .sl-btn, body.sh-sl .sl-btn:is(:hover, :focus, :active, :visited) {
	display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 52px; padding: 0 24px; margin: 0;
	border: 1.5px solid var(--sl-btn-bd, var(--sl-line)); border-radius: 999px; background: var(--sl-btn-bg, #fff); color: var(--sl-btn-fg, var(--sl-ink));
	font: 700 16px/1.15 var(--sl-text); text-align: center; text-decoration: none; white-space: nowrap; cursor: pointer; box-shadow: var(--sl-btn-shadow, none);
}
body.sh-sl .sl-btn:is(:hover, :focus-visible) { background: var(--sl-btn-bg-on, #fff); border-color: var(--sl-btn-bd-on, var(--sl-teal)); color: var(--sl-btn-fg-on, var(--sl-ink)); }
body.sh-sl .sl-btn .sl-i { width: 18px; height: 18px; }
body.sh-sl .sl-btn--ghost .sl-i { color: var(--sl-teal); width: 20px; height: 20px; }
body.sh-sl .sl-btn--primary { --sl-btn-bg: var(--sl-teal); --sl-btn-fg: #fff; --sl-btn-bd: transparent; --sl-btn-bg-on: var(--sl-teal-deep); --sl-btn-fg-on: #fff; --sl-btn-bd-on: transparent; --sl-btn-shadow: 0 14px 28px -16px rgba(36, 107, 95, .9), inset 0 1px 0 rgba(255, 255, 255, .18); }
body.sh-sl .sl-btn--plum { --sl-btn-bg: var(--sl-plum); --sl-btn-fg: #fff; --sl-btn-bd: transparent; --sl-btn-bg-on: var(--sl-plum-deep); --sl-btn-fg-on: #fff; --sl-btn-bd-on: transparent; --sl-btn-shadow: 0 14px 28px -16px rgba(123, 36, 75, .9); }
body.sh-sl .sl-btn--plum-line { --sl-btn-fg: var(--sl-plum); --sl-btn-bd: var(--sl-plum); --sl-btn-bg-on: var(--sl-rose); --sl-btn-fg-on: var(--sl-plum-deep); --sl-btn-bd-on: var(--sl-plum); }
body.sh-sl .sl-btn--sm, body.sh-sl .sl-btn--sm:is(:hover, :focus, :active, :visited) { min-height: 44px; padding: 0 18px; font-size: 15px; gap: 8px; }
body.sh-sl .sl-btn--icon, body.sh-sl .sl-btn--icon:is(:hover, :focus, :active) { width: 44px; min-height: 44px; padding: 0; }
body.sh-sl .sl-btn-orb { width: 34px; height: 34px; margin-right: -12px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .16); }
body.sh-sl .sl-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
@media (max-width: 479px) { body.sh-sl .sl-actions > .sl-btn:not(.sl-btn--icon) { flex: 1 1 100%; white-space: normal; } }

/* ---------- checklist (facts are a checklist, never pills) ---------- */
body.sh-sl .sl-can { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
body.sh-sl .sl-can li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; font-size: 16px; line-height: 1.45; color: var(--sl-ink); }
body.sh-sl .sl-can .sl-i { width: 22px; height: 22px; margin-top: 1px; color: var(--sl-pillar); }
body.sh-sl .sl-can--sm li { font-size: 15px; grid-template-columns: 20px minmax(0, 1fr); gap: 8px; }
body.sh-sl .sl-can--sm .sl-i { width: 18px; height: 18px; }
body.sh-sl .sl-can--row { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 10px 26px; }

/* ---------- masthead + stage ---------- */
body.sh-sl .sl-mast { position: relative; overflow: hidden; isolation: isolate; }
body.sh-sl .sl-mast-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(180deg, #fbfdfe, #eef7fb); }
body.sh-sl .sl-mast-bg::after { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(18, 44, 58, .1) 1.1px, rgba(18, 44, 58, 0) 1.7px); background-size: 22px 22px; -webkit-mask-image: radial-gradient(44% 60% at 76% 46%, #000 20%, transparent 75%); mask-image: radial-gradient(44% 60% at 76% 46%, #000 20%, transparent 75%); }
body.sh-sl .sl-mast--learn .sl-mast-bg { background: radial-gradient(46% 60% at 78% 36%, rgba(184, 116, 10, .16), rgba(184, 116, 10, 0) 70%), radial-gradient(30% 40% at 96% 92%, rgba(110, 196, 232, .2), rgba(110, 196, 232, 0) 70%), linear-gradient(180deg, #fffdf8 0%, #fdf6ea 100%); }
body.sh-sl .sl-mast--helpers .sl-mast-bg { background: radial-gradient(46% 60% at 76% 40%, rgba(214, 51, 108, .13), rgba(214, 51, 108, 0) 70%), radial-gradient(34% 40% at 98% 96%, rgba(110, 196, 232, .2), rgba(110, 196, 232, 0) 70%), linear-gradient(180deg, #fffbfd 0%, #fdf2f7 100%); }
body.sh-sl .sl-mast--eat .sl-mast-bg { background: radial-gradient(46% 60% at 76% 42%, rgba(61, 148, 66, .17), rgba(61, 148, 66, 0) 70%), radial-gradient(30% 40% at 4% 100%, rgba(184, 116, 10, .09), rgba(184, 116, 10, 0) 70%), linear-gradient(180deg, #fcfef9 0%, #eff8ec 100%); }
body.sh-sl .sl-mast--train .sl-mast-bg { background: radial-gradient(46% 60% at 76% 42%, rgba(43, 143, 214, .18), rgba(43, 143, 214, 0) 70%), radial-gradient(30% 40% at 0% 100%, rgba(63, 179, 157, .12), rgba(63, 179, 157, 0) 70%), linear-gradient(180deg, #fafdff 0%, #eaf4fd 100%); }
body.sh-sl .sl-mast--support .sl-mast-bg { background: radial-gradient(50% 70% at 80% 30%, rgba(236, 106, 152, .14), rgba(236, 106, 152, 0) 70%), linear-gradient(180deg, #fffbfd 0%, #fdf4f8 100%); }
body.sh-sl .sl-mast-inner { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; padding-block: clamp(26px, 4.4vw, 64px) clamp(36px, 5vw, 72px); }
body.sh-sl .sl-mast-copy { position: relative; z-index: 2; display: grid; gap: 18px; align-content: start; justify-items: start; max-width: 660px; min-width: 0; }
body.sh-sl .sl-mast-stage { position: relative; min-width: 0; }
body.sh-sl .sl-mast-edge { position: absolute; left: 0; right: 0; bottom: -1px; display: block; width: 100%; height: 26px; }
body.sh-sl .sl-mast-edge path { fill: none; stroke: url(#sl-grad) #6ec4e8; stroke-width: 3; stroke-linecap: round; vector-effect: non-scaling-stroke; }
@media (min-width: 1024px) { body.sh-sl .sl-mast-inner { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: center; gap: 40px; } }
body.sh-sl .sl-squig { position: relative; display: inline-block; white-space: nowrap; }
body.sh-sl .sl-squig svg { position: absolute; left: -4px; bottom: -.2em; width: calc(100% + 10px); height: .26em; overflow: visible; }
body.sh-sl .sl-squig path { fill: none; stroke: url(#sl-grad) #6ec4e8; stroke-width: 5; stroke-linecap: round; vector-effect: non-scaling-stroke; }
body.sh-sl .sl-crumbs, body.sh-sl .sl-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; margin: 0; padding: 0; list-style: none; font: 650 14px/1.3 var(--sl-text); color: var(--sl-muted); }
body.sh-sl .sl-crumbs a { display: inline-flex; align-items: center; min-height: 44px; color: var(--sl-ink); text-decoration: none; }
body.sh-sl .sl-crumbs a:hover { color: var(--sl-teal-deep); text-decoration: underline; }

/* ---------- faces ---------- */
body.sh-sl .sl-face { position: relative; display: inline-block; flex: none; width: var(--sl-fs, 56px); height: var(--sl-fs, 56px); }
body.sh-sl .sl-face img { display: block; width: 100%; height: 100%; max-width: none; border-radius: 50%; object-fit: cover; background: var(--sl-helpers-wash); box-shadow: 0 0 0 calc(var(--sl-fs, 56px) * .045 + 1px) #fff, 0 0 0 calc(var(--sl-fs, 56px) * .08 + 2px) var(--sl-ring), 0 14px 26px -16px rgba(18, 44, 58, .6); }
body.sh-sl .sl-face--spark::after { content: ""; position: absolute; right: -2%; top: -2%; width: 28%; height: 28%; border-radius: 50%; background: var(--sl-helpers) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M12 2.5c.5 4.6 2.9 7 9.5 9.5-6.6 2.5-9 4.9-9.5 9.5-.5-4.6-2.9-7-9.5-9.5 6.6-2.5 9-4.9 9.5-9.5z'/%3E%3C/svg%3E") center / 62% no-repeat; box-shadow: 0 0 0 3px #fff; }
body.sh-sl .sl-faces { display: flex; align-items: center; }
body.sh-sl .sl-faces .sl-face + .sl-face { margin-left: calc(var(--sl-fs, 40px) * -.28); }

/* ---------- nodes, badges ---------- */
body.sh-sl .sl-node { --sl-ns: 52px; width: var(--sl-ns); height: var(--sl-ns); border-radius: 50%; display: inline-grid; place-items: center; flex: none; color: #fff; background-color: var(--sl-node, var(--sl-teal)); background-image: radial-gradient(circle at 50% 28%, rgba(255, 255, 255, .42), rgba(255, 255, 255, 0) 60%); box-shadow: 0 0 0 5px #fff, 0 12px 24px -12px rgba(11, 58, 70, .5); }
body.sh-sl .sl-node .sl-i { width: 50%; height: 50%; }
body.sh-sl .sl-node--badge { --sl-ns: 40px; box-shadow: none; background-image: none; }
body.sh-sl .sl-node--assess { --sl-node: #246b5f; } body.sh-sl .sl-node--train { --sl-node: #2b8fd6; } body.sh-sl .sl-node--eat { --sl-node: #3d9442; }
body.sh-sl .sl-node--helpers { --sl-node: #d6336c; } body.sh-sl .sl-node--learn { --sl-node: #b8740a; } body.sh-sl .sl-node--plum { --sl-node: #7b244b; }
body.sh-sl .sl-node--sky { --sl-node: #1d6f97; } body.sh-sl .sl-node--cocoa { --sl-node: #8a5a06; } body.sh-sl .sl-node--slate { --sl-node: #557083; }

/* ---------- next on the line ---------- */
body.sh-sl .sl-next { position: relative; display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr); margin: 0; padding: 0; list-style: none; }
body.sh-sl .sl-next::before { content: ""; position: absolute; left: 25px; top: 30px; bottom: 30px; width: 4px; border-radius: 4px; background: var(--sl-grad-v); }
body.sh-sl .sl-next-stop { position: relative; display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 16px; align-items: start; align-content: start; padding: 4px 0; min-width: 0; }
body.sh-sl .sl-next-stop .sl-node { --sl-ns: 54px; position: relative; z-index: 1; }
body.sh-sl .sl-next-body { display: grid; gap: 4px; justify-items: start; min-width: 0; }
body.sh-sl .sl-next-title { font: 700 19px/1.25 var(--sl-display); color: var(--sl-ink); letter-spacing: -.01em; }
body.sh-sl .sl-next-body p { font-size: 15px; line-height: 1.5; color: var(--sl-copy); }
body.sh-sl .sl-next-body .sl-btn { margin-top: 10px; }
@media (min-width: 900px) {
	body.sh-sl .sl-next { grid-template-columns: repeat(var(--sl-stops, 3), minmax(0, 1fr)); gap: 28px; }
	body.sh-sl .sl-next--2 { --sl-stops: 2; } body.sh-sl .sl-next--3 { --sl-stops: 3; } body.sh-sl .sl-next--4 { --sl-stops: 4; }
	body.sh-sl .sl-next::before { left: calc(100% / var(--sl-stops, 3) / 2); right: calc(100% / var(--sl-stops, 3) / 2); top: 25px; bottom: auto; width: auto; height: 4px; background: var(--sl-grad); }
	body.sh-sl .sl-next-stop { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; gap: 14px; }
	body.sh-sl .sl-next-body { justify-items: center; }
}

/* ---------- covers ---------- */
body.sh-sl .sl-cover { position: relative; overflow: hidden; border-radius: 18px; aspect-ratio: 4 / 3; background: var(--sl-learn-wash); isolation: isolate; }
body.sh-sl .sl-cover--r1610 { aspect-ratio: 16 / 10; } body.sh-sl .sl-cover--r1 { aspect-ratio: 1; } body.sh-sl .sl-cover--r21 { aspect-ratio: 2 / 1; } body.sh-sl .sl-cover--r32 { aspect-ratio: 3 / 2; }
body.sh-sl .sl-cover > img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
body.sh-sl .sl-cover > svg.sl-art { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
body.sh-sl .sl-cover .sl-art-glyph { --sl-sw: 1.45; }
body.sh-sl .sl-cover-tag { position: absolute; left: 12px; top: 12px; z-index: 2; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 999px; background: rgba(255, 255, 255, .94); font: 800 11px/1 var(--sl-text); letter-spacing: .1em; text-transform: uppercase; color: var(--sl-learn-ink); }
body.sh-sl .sl-cover-tag .sl-i { width: 13px; height: 13px; }
body.sh-sl .sl-cover-stamp { position: absolute; right: 10px; bottom: 10px; z-index: 2; }
body.sh-sl .sl-cover-stamp .sl-face { --sl-fs: 34px; }
body.sh-sl .sl-cover-stamp .sl-face img { box-shadow: 0 0 0 2px #fff, 0 6px 14px -6px rgba(18, 44, 58, .6); }

/* ---------- cards ---------- */
body.sh-sl .sl-card { position: relative; background: #fff; border: 1px solid var(--sl-line-soft); border-radius: 24px; box-shadow: var(--sl-shadow-card); }
body.sh-sl .sl-stretch::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
body.sh-sl .sl-byline { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font: 650 14px/1.3 var(--sl-text); color: var(--sl-ink); }
body.sh-sl .sl-byline .sl-face { --sl-fs: 28px; }
body.sh-sl .sl-byline .sl-face img { box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--sl-ring); }
body.sh-sl .sl-dek { font-size: 16px; line-height: 1.55; color: var(--sl-copy); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
body.sh-sl .sl-dek--2 { -webkit-line-clamp: 2; }

/* ---------- search field and chips ---------- */
body.sh-sl .sl-search { position: relative; display: flex; align-items: center; gap: 8px; width: 100%; max-width: 580px; min-height: 64px; margin: 0; padding: 6px 6px 6px 22px; border-radius: 999px; background: #fff; border: 1.5px solid var(--sl-line); box-shadow: 0 18px 40px -30px rgba(18, 44, 58, .55); }
body.sh-sl .sl-search:focus-within { border-color: var(--sl-pillar); box-shadow: 0 0 0 4px var(--sl-pillar-wash), 0 18px 40px -30px rgba(18, 44, 58, .55); }
body.sh-sl .sl-search > .sl-i { width: 22px; height: 22px; color: var(--sl-pillar-ink); }
body.sh-sl .sl-search input[type="search"], body.sh-sl .sl-search input[type="text"] { flex: 1 1 auto; width: 100%; min-width: 0; height: 48px; margin: 0; padding: 0 4px; border: 0; border-radius: 0; background: none; box-shadow: none; outline: 0; font: 400 17px/1.3 var(--sl-text); color: var(--sl-ink); }
body.sh-sl .sl-search input::-webkit-search-cancel-button { cursor: pointer; }
body.sh-sl .sl-search .sl-btn { min-height: 50px; }
@media (max-width: 479px) { body.sh-sl .sl-search { padding-left: 16px; } body.sh-sl .sl-search .sl-btn { padding: 0 16px; } }
body.sh-sl .sl-chip { position: relative; display: inline-flex; cursor: pointer; }
body.sh-sl .sl-chip input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
body.sh-sl .sl-chip > span { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1.5px solid var(--sl-line); background: #fff; font: 650 15px/1 var(--sl-text); color: var(--sl-ink); white-space: nowrap; }
body.sh-sl .sl-chip > span small { font: 600 12.5px/1 var(--sl-text); color: var(--sl-muted); }
body.sh-sl .sl-chip input:checked + span { background: var(--sl-ink); border-color: var(--sl-ink); color: #fff; }
body.sh-sl .sl-chip input:checked + span small { color: #c9d9e2; }
body.sh-sl .sl-chip input:focus-visible + span { outline: 2px solid var(--sl-ink); outline-offset: 3px; }

/* ---------- pager ---------- */
body.sh-sl .sl-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--sl-line-soft); }
body.sh-sl .sl-pager ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
body.sh-sl .sl-pager ul :is(a, span) { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px; border-radius: 999px; border: 1.5px solid var(--sl-line); background: #fff; font: 700 15px/1 var(--sl-text); color: var(--sl-ink); text-decoration: none; }
body.sh-sl .sl-pager ul a:hover { border-color: var(--sl-teal); }
body.sh-sl .sl-pager ul .current { background: var(--sl-ink); border-color: var(--sl-ink); color: #fff; }
body.sh-sl .sl-pager ul .dots { border: 0; min-width: 20px; background: none; }
@media (max-width: 767px) { body.sh-sl .sl-pager ul li:not(:first-child):not(:last-child) { display: none; } }

/* ---------- Support (its own components, drawn in plum and rose) ---------- */
body.sh-sl .sl-sc-band { display: grid; gap: 16px; align-items: center; padding: 26px 28px; border-radius: 24px; background: linear-gradient(100deg, #fdf0f6, #fff 80%); border: 1px solid var(--sl-rose-line); box-shadow: inset 5px 0 0 var(--sl-plum); }
@media (min-width: 900px) { body.sh-sl .sl-sc-band { grid-template-columns: auto minmax(0, 1fr) auto; } }

/* ---------- live regions (sl.js): results swap in place ---------- */
body.sh-sl [data-sl-live-region] { position: relative; }
body.sh-sl [data-sl-live-region][aria-busy="true"] > * { opacity: .45; pointer-events: none; }
body.sh-sl [data-sl-live-focus]:focus { outline: none; }
body.sh-sl [data-sl-live-focus]:focus-visible { outline: 2px solid var(--sl-ink); outline-offset: 4px; }

/* ---------- reading progress (articles) ---------- */
body.sh-sl .sl-progress { position: fixed; left: 0; right: 0; top: 0; z-index: 99990; height: 3px; pointer-events: none; background: var(--sl-grad); transform-origin: 0 50%; transform: scaleX(0); }
body.admin-bar.sh-sl .sl-progress { top: 32px; }
@media (max-width: 782px) { body.admin-bar.sh-sl .sl-progress { top: 46px; } }

/* ---------- focus (ink ring, HK-084) ---------- */
body.sh-sl .sl-scope :focus-visible { outline: 2px solid #122c3a !important; outline-offset: 3px !important; box-shadow: 0 0 0 5px #fff !important; }

/* ---------- motion: armed by sl.js only when motion is welcome; the resting state is the finished page ---------- */
@media (prefers-reduced-motion: no-preference) {
	body.sh-sl .sl-btn { transition: transform .16s var(--sl-ease); }
	body.sh-sl .sl-btn:is(:hover, :focus-visible) { transform: translateY(-2px); }
	body.sh-sl .sl-lift { transition: transform .2s var(--sl-ease); }
	body.sh-sl .sl-lift:hover { transform: translateY(-3px); }
	body.sh-sl .sl-cover > :is(img, svg.sl-art) { transition: transform .5s var(--sl-ease); }
	body.sh-sl .sl-lift:hover .sl-cover > :is(img, svg.sl-art) { transform: scale(1.04); }
	html.sl-armed body.sh-sl [data-sl-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .6s var(--sl-ease), transform .6s var(--sl-ease); }
	html.sl-armed body.sh-sl [data-sl-reveal].is-in { opacity: 1; transform: none; }
	html.sl-armed body.sh-sl .is-in .sl-draw, html.sl-armed body.sh-sl .is-in.sl-draw { stroke-dasharray: 1; animation: sl-draw 1.2s var(--sl-ease) both; }
	html.sl-armed body.sh-sl .is-in .sl-pop { transform-box: fill-box; transform-origin: center; animation: sl-pop .55s var(--sl-spring) both; animation-delay: calc(var(--sl-d, 0) * 90ms + 250ms); }
	html.sl-armed body.sh-sl .is-in .sl-twinkle { transform-box: fill-box; transform-origin: center; animation: sl-glint .9s var(--sl-spring) both; animation-delay: calc(var(--sl-d, 0) * 90ms + 900ms); }
	html.sl-armed body.sh-sl .is-in .sl-rise { animation: sl-rise .7s var(--sl-ease) both; animation-delay: calc(var(--sl-d, 0) * 80ms); }
	html.sl-armed body.sh-sl .sl-next.is-in::before { animation: sl-grow 1.1s var(--sl-ease) both; }
	html.sl-armed body.sh-sl .sl-next.is-in .sl-node { animation: sl-pop .55s var(--sl-spring) both; }
	html.sl-armed body.sh-sl .sl-next.is-in .sl-next-stop:nth-child(2) .sl-node { animation-delay: .2s; }
	html.sl-armed body.sh-sl .sl-next.is-in .sl-next-stop:nth-child(3) .sl-node { animation-delay: .4s; }
	html.sl-armed body.sh-sl .sl-next.is-in .sl-next-stop:nth-child(4) .sl-node { animation-delay: .6s; }
	body.sh-sl .sl-search > .sl-i { transition: transform .3s var(--sl-spring); }
	body.sh-sl .sl-search.has-text > .sl-i { transform: rotate(-14deg) scale(1.12); }
	@keyframes sl-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
	@keyframes sl-pop { from { opacity: 0; transform: scale(.4); } to { opacity: 1; transform: scale(1); } }
	@keyframes sl-glint { 0% { opacity: 0; transform: scale(.3) rotate(-35deg); } 70% { opacity: 1; transform: scale(1.18) rotate(8deg); } 100% { opacity: 1; transform: none; } }
	@keyframes sl-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
	@keyframes sl-grow { from { transform: scaleX(0); } to { transform: none; } }
}
@media (prefers-reduced-motion: no-preference) and (max-width: 899px) {
	html.sl-armed body.sh-sl .sl-next.is-in::before { animation-name: sl-grow-v; transform-origin: 50% 0; }
	@keyframes sl-grow-v { from { transform: scaleY(0); } to { transform: none; } }
}
body.sh-sl .sl-next::before { transform-origin: 0 50%; }
@media (prefers-reduced-motion: reduce) {
	body.sh-sl *, body.sh-sl *::before, body.sh-sl *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
	body.sh-sl [data-sl-reveal] { opacity: 1; transform: none; }
	body.sh-sl :is(.sl-mast-stage, .sl-progress, .sl-search) { display: none; }
}
